python — Не могу поставить русский язык вывода OWM

Задал через конфиг здесь вывод на русском языке информации про погоду с помощью Open Weather Map. Бьюсь уже пол часа, он отказывается принимать русский язык. Через конфиг внутри такая же проблема. Ведь не может быть вывод на английском просто потому что у меня на компьютере стоит английский язык? В чем проблема?

import amino
import gtts
import requests
import os
import random
from pyowm import OWM
from termcolor import colored
from gtts import gTTS
from pyowm.utils.config import get_default_config
from pyowm.utils import timestamps, formatting
from threading import Thread
def main(data):
    Thread(target=on_message, args=(data, )).start()
def on_message(data: amino.objects.Event):
    global ban
    global tim
    global nom
    chatId: str = data.message.chatId
    nickname: str = data.message.author.nickname
    content: str = data.message.content
    messageId: str = data.message.messageId
    message_time: int = int(data. message.createdTime[17:19])
    userId: str= data.message.author.userId
    if content.lower().startswith("!погода"):
        config_dict = get_default_config()
        config_dict['language'] = 'ru'  
        owm = OWM('da1b5955f35250db10beb26ee0fd88a9', config_dict)
        mgr = owm.weather_manager()
        place = data.message.content.split("@")[1].replace("@", "")[0: 50]
        monitoring = owm.weather_manager().weather_at_place(place)
        weather = monitoring.weather
        status = weather.temperature('celsius') 
        sub_client.send_message(message=(f' {status} in {place}'), chatId=data.message.chatId)
  • python
  • бот
  • openweathermap
  • weather
4

Не работает. Увы. {‘temp’: 27.12, ‘temp_max’: 27.29, ‘temp_min’: 25.52, ‘feels_like’: 28.31, ‘temp_kf’: None} in Киев

Все работает. Название города у вас приходит локализованным, а «in» вы в коде сами добавляете в последней строке:

sub_client. send_message(message=(f' {status} in {place}'), chatId=data.message.chatId)

Чтобы вместо полного словаря status выводилась температура, нужно получить из status значение по какому-то из ключей, пример:

sub_client.send_message(message=(f' {status["temp"]} градусов (ощущается как {status["feels_like"]}) в {place}'), chatId=data.message.chatId)

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

python — Не получается указать русский язык и вывести погоду в pyowm

Решил написать простецкий код для погоды и позже перенести в бота, но возникла пробелема ещё в написании основной части. Когда пытаюсь указать русский язык, пишет » _ init _() got an unexpected keyword argument ‘language'». Если же убрать его, то есть ещё одна проблема в «print(«В городе » + place + » сейчас » + w.get_detailed_status())

«. Пишет » ‘Weather’ object has no attribute ‘get_detailed_status'». Если же без «get», то вот «‘str’ object is not callable»

import pyowm
owm = pyowm.OWM('MyToken', language = 'ru')
place = input("В каком городе вы хотите узнать погоду?: ")
mgr = owm.weather_manager()
observation = mgr.weather_at_place(place)
w = observation.weather
temp = w.temperature('celsius')["temp"]
print("В городе " + place + " сейчас " + w.get_detailed_status())
print("Температура в городе " + str(temp) )
print (w)
if temp < 10:
    print("Сейчас холодно.  Оденься, как танк!")
elif temp < 20:
    print("Сейчас холодно. Оденься")
else:
    print("Сегодня тепло. Одевайся полегче")
  

  • python
  • pyowm

Указать язык можно через словарь конфигурации, который передаётся вторым аргументом в OWM.

Пример:

from pyowm.owm import OWM
from pyowm.utils.config import get_default_config
config_dict = get_default_config()
config_dict['language'] = 'ru'
owm = OWM('MyToken', config_dict)
place = 'Москва'  # input('В каком городе вы хотите узнать погоду?: ')
mgr = owm.weather_manager()
observation = mgr.weather_at_place(place)
weather = observation.weather
temp = weather.temperature('celsius')['temp']
status = weather.detailed_status
print(f'В городе {place} сейчас {status}')
print(f'Температура в городе {temp}')
if temp < 10:
    print('Сейчас холодно. Оденься, как танк!')
elif temp < 20:
    print('Сейчас холодно. Оденься')
else:
    print('Сегодня тепло.
Одевайся полегче')

Попробуйте так:

import pyowm
#owm = pyowm.OWM('MyToken', language = 'ru')
owm = pyowm.OWM('7c6d5748acf9.......17c86eMyToken')
place = input("В каком городе вы хотите узнать погоду?: ")
#mgr = owm.weather_manager()
#observation = mgr.weather_at_place(place)
observation = owm.weather_at_place(place)
#w = observation.weather
w = observation.get_weather()
#temp = w.temperature('celsius')["temp"]
temp = w.get_temperature('celsius')["temp"]
print(f"В городе {place} сейчас {temp}")      #w.get_detailed_status())
#print("Температура в городе " + str(temp) )
#print (w)
if temp < 10:
    print("Сейчас холодно. Оденься, как танк!")
elif temp < 20:
    print("Сейчас холодно. Оденься")
else:
    print("Сегодня тепло. Одевайся полегче")

15/05/2021 — Работающий способ вывода информации на русском языке!!!

from pyowm import OWM
from pyowm.utils.config import get_default_config
place = input(" Введите город/страну: ")
config_dict = get_default_config()
config_dict['language'] = 'ru' 
owm = OWM( 'a99967bc9ee70d5b4bd387902982f400', config_dict  )
mgr = owm.
weather_manager() observation = mgr.weather_at_place(place) w = observation.weather reg = owm.city_id_registry() list_of_locations = reg.locations_for('moscow', country='RU') moscow = list_of_locations[0] lat = moscow.lat # 55.75222 lon = moscow.lon # 37.615555 temp = w.temperature('celsius')["temp"] status = w.detailed_status print("В городе " + place + " сейчас " + str(status)) print("Температура сейчас в районе " + str(temp)) if temp < 10: print("\n\nСейчас ппц как холодно, одевайся как танк!") elif temp < 20: print("\n\nСейчас холодно, одевайся потеплее.") else: print("\n\nТемпература норм, одевай что угодно.") print()

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

sublimetext2 — Проверка орфографии на нескольких языках в Sublime Text 3

спросил

Изменено 4 года назад

Просмотрено 2к раз

У меня два словаря: ru_RU и en_US. Как я могу использовать его вместе в проверке орфографии Sublime Text 3? Является ли это возможным?

  • sublimetext2
  • sublimetext3
  • sublimetext
  • sublime-text-plugin

В настоящее время это невозможно. Это было упомянуто в официальном списке проблем для ST3 — подробности см. в этом выпуске.

У меня это работает, используя эти шаги.

  1. Загрузите свой словарь (например, с GitHub или по рецепту README. md в этом репозитории).

  2. Создайте папку в конфигурации Sublime Text 3 (например, «Язык — испанский»), это будет имя, отображаемое в меню ST, и переместите словарь в эту папку.

    ~/.config/sublime-text-3/Пакеты/Язык — испанский

  3. Убедитесь, что проверка орфографии и словари активны в ваших настройках предпочтений:

    «spell_check»: правда, «словарь»: [ «Пакеты/язык — английский/en_US.dic», «Пакеты/язык — испанский/испанский.dic» ],

  4. Теперь можно переключить текущую проверку орфографии:

Вид > Словарь > Язык — испанский > Испанский

Для меня было решено по этой инструкции: https://www.sublimetext.com/docs/3/spell_checking.html

Я загрузил файлы dict из: https://github.com/SublimeText/Dictionaries

Затем я просто копирую файлы словаря в кодировке UTF-8 (в моем случае испанский ) в Packages/Language - Spanish/ (вы можете получить к нему доступ из Preferences/ Просмотр пакетов ).

Затем активируйте, добавив эту строку в настройки пользователя

 "spell_check": правда,
 

Или через меню Просмотр/Проверка орфографии .

Словарь можно выбрать в меню View/Dictionary .

Было бы непросто создать аффикс для «объединенного» языка, например, 2 диктора, работающих одновременно. В моем случае мне бы хотелось, чтобы Spanglish dict… пришлось над этим поработать.

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.

sublimetext3 — Изменить / добавить подсветку синтаксиса для языка в Sublime 2/3

Подсветка синтаксиса управляется используемой вами темой, доступной через Настройки -> Цветовая схема . Темы выделяют различные ключевые слова, функции, переменные и т. д. с помощью областей видимости, которые определяются серией регулярных выражений, содержащихся в файле .tmLanguage в каталоге/пакете языка. Например, файл JavaScript.tmLanguage назначает области source.js и variable.language.js ключевому слову this . Поскольку Sublime Text 3 использует .sublime-package формат файла zip для хранения всех настроек по умолчанию, редактировать отдельные файлы не очень просто.

К сожалению, не все темы содержат все области действия, поэтому вам придется поэкспериментировать с разными, чтобы найти ту, которая хорошо выглядит и обеспечивает желаемое выделение. Существует ряд тем, включенных в Sublime Text, и многие другие доступны через Управление пакетами, которые я настоятельно рекомендую установить, если вы еще этого не сделали. Убедитесь, что вы следуете указаниям ST3.

Так получилось, что я разработал Неоновую цветовую схему , доступную через Управление пакетами, на которую вы, возможно, захотите взглянуть. Моей главной целью, помимо того, что я пытался сделать так, чтобы широкий спектр языков выглядел как можно лучше, было определить как можно больше разных областей применения — гораздо больше, чем включено в стандартные темы. Хотя определение языка JavaScript не такое тщательное, как, например, в Python, Neon по-прежнему имеет гораздо большее разнообразие, чем некоторые значения по умолчанию, такие как 9.0053 Monokai или Solarized .

Я должен отметить, что я использовал определение языка @int3h Better JavaScript для этого изображения вместо того, которое поставляется с Sublime. Его можно установить через Package Control.

ОБНОВЛЕНИЕ

Недавно я обнаружил другое определение языка замены JavaScript — JavaScriptNext — ES6 Syntax . Он имеет больше возможностей, чем базовый JavaScript или даже лучший JavaScript. На том же коде это выглядит так:

Кроме того, поскольку я изначально написал этот ответ, @skuroda выпустил PackageResourceViewer через Управление пакетами. Это позволяет вам легко просматривать, редактировать и/или извлекать части или целые пакеты .sublime-package . Итак, если вы выберете, вы можете напрямую редактировать цветовые схемы, включенные в Sublime.

ДРУГОЕ ОБНОВЛЕНИЕ

С выпуском почти всех пакетов по умолчанию на Github изменения происходят быстро и яростно. Старый синтаксис JS был полностью переписан, чтобы включить лучшие части синтаксиса JavaScript Next ES6, и теперь он полностью совместим с ES6, насколько это возможно. А ton других изменений были внесены, чтобы покрыть угловые и краевые случаи, улучшить согласованность и просто сделать его лучше в целом. Новый синтаксис был включен в (на данный момент) последнюю сборку для разработчиков 3111.

Если вы хотите использовать какой-либо из новых синтаксисов с текущей бета-сборкой 3103, просто клонируйте репозиторий Github куда-нибудь и свяжите JavaScript. (или любые языки, которые вы хотите) в каталог Packages — найдите его в своей системе, выбрав Настройки -> Обзор пакетов... . Затем просто выполняйте git pull в исходном каталоге репо время от времени, чтобы обновлять любые изменения, и вы сможете наслаждаться последними и лучшими! Я должен отметить, что репозиторий использует новый формат .sublime-syntax вместо старого .tmLanguage , поэтому они не будут работать со сборками ST3 до 3084 или со ST2 (в обоих случаях вы должны были обновить в любом случае до последней бета-версии или сборки для разработчиков).