From 8b5748c76880afe86bf631bfee110fa49c8dc36a Mon Sep 17 00:00:00 2001 From: Jk Date: Fri, 22 Dec 2023 23:31:10 +0100 Subject: [PATCH 1/2] Add support for russian locale thanks to @a184ot --- CHANGELOG.md | 6 + README.md | 1 + .../locale/ru-RU/LC_MESSAGES/messages.mo | Bin 0 -> 21361 bytes .../locale/ru-RU/LC_MESSAGES/messages.po | 1084 +++++++++++++++++ 4 files changed, 1091 insertions(+) create mode 100644 metar_taf_parser/locale/ru-RU/LC_MESSAGES/messages.mo create mode 100644 metar_taf_parser/locale/ru-RU/LC_MESSAGES/messages.po diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c42d99..8f4cf8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## [1.8.0] - 2023-12-TBD + +### Added + +- Support of Russian locale thanks to [@a184ot](https://github.com/a184ot) + ## [1.7.1] - 2023-12-09 ### Fixed diff --git a/README.md b/README.md index bc246d8..5d815d1 100644 --- a/README.md +++ b/README.md @@ -268,5 +268,6 @@ The following locales are supported: - de - pl - it +- ru To add or complete locales please see [CONTRIBUTING](CONTRIBUTING.md) \ No newline at end of file diff --git a/metar_taf_parser/locale/ru-RU/LC_MESSAGES/messages.mo b/metar_taf_parser/locale/ru-RU/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..9910d10b65c0bcecb29b739d32e891b0e8acd6d6 GIT binary patch literal 21361 zcmds-d4OD1m4_cYghh;~fGi~n1feVG&O!o2?DUc}^hQ@F0YpNjyV6~zyQ-xdiUFe-|O3NE8F^Zo8S_3FLq>LiT*H3hf7 zclUG8J?Gr}s`A5$hu-P&Iqo3OI|Xh$((|%B|M_^8dfw<8Jnyw|r}1mX9~fUW9`r`P z-Rs~nv_I2WXS~?hYP`a@#5inRWxU0BH$0Z{J_(P8+l`M~`IE+Hto-Lt^S^B62cPKo zKi+s6RQ-8Sslht<_ud(tBRJ-e~e7)uGwEP3c&%u*ux5xM$<4eY)sZ{-$#*2+t zz|$xnhNr?ijGL|eDaca17ohg%u#-LSb?^-14C5untBpD1O~$*84;h~@ej6g9_dI+( zJmgKD$D?-=lnG3OC%`6%2;P&9;xe+adXpBn#QJPP4dezNgg<3+|c z*t~5_zu*#KZo+0W9g*&)1dOx zjm^e|#(pUMtuStc(&Hwm^?Vje{>P#8S%8}F$58!#1GV16&hpoL8dQ9m31u${sQziF zxN{v;zgwW>yC16E4ybldLbdz8mA?el{)n@Eo(#2~8Yns64%M#}s^2?}Lr`+AgOdA0 zR{lxjZYa5nQ2zfslpF_7^2a$5s=mh93^mUpsPQsT^Zy;xzHWqS{~*+OPZ+-kWjDWp zvg;FY0@Y7}+W&b_dhUm+f3NW_E8hmS{x3tx_l)r+;}LK3%TF~VNx{GXuqXX3ej{WC2i5+_T6__n zY>XMtGM;CwGtPw4&)cEKy&N71`=I=I2+o2Vtp1Bo^L`Ufg+GIb!&6YE%HING@O
iy= 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 literal 0 HcmV?d00001 diff --git a/metar_taf_parser/locale/ru-RU/LC_MESSAGES/messages.po b/metar_taf_parser/locale/ru-RU/LC_MESSAGES/messages.po new file mode 100644 index 0000000..5943c3c --- /dev/null +++ b/metar_taf_parser/locale/ru-RU/LC_MESSAGES/messages.po @@ -0,0 +1,1084 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0" +"Content-Type: text/plain; charset=UTF-8" +"Content-Transfer-Encoding: 8bit" +"X-Generator: prop2po" +"Project-Id-Version: metar_taf_parser" +"Language: ru_RU" +#: +msgid "CloudQuantity.BKN" +msgstr "разорванная" + +#: +msgid "CloudQuantity.FEW" +msgstr "незначительная" + +#: +msgid "CloudQuantity.NSC" +msgstr "нет значительной облачности" + +#: +msgid "CloudQuantity.OVC" +msgstr "сплошная" + +#: +msgid "CloudQuantity.SCT" +msgstr "рассеянная" + +#: +msgid "CloudQuantity.SKC" +msgstr "ясное небо" + +#: +msgid "CloudType.AC" +msgstr "Высоко-кучевые" + +#: +msgid "CloudType.AS" +msgstr "Высокослоистые" + +#: +msgid "CloudType.CB" +msgstr "Кучево-дождевые" + +#: +msgid "CloudType.CC" +msgstr "Перисто-кучевые" + +#: +msgid "CloudType.CI" +msgstr "Перистые" + +#: +msgid "CloudType.CS" +msgstr "Перисто-слоистые" + +#: +msgid "CloudType.CU" +msgstr "Кучевые" + +#: +msgid "CloudType.NS" +msgstr "Слоисто-дождевые" + +#: +msgid "CloudType.SC" +msgstr "Слоисто-кучевые" + +#: +msgid "CloudType.ST" +msgstr "Слоистые" + +#: +msgid "CloudType.TCU" +msgstr "Кучевые башенковидные" + +#: +msgid "DepositBrakingCapacity.//" +msgstr "нет данных" + +#: +msgid "DepositBrakingCapacity.91" +msgstr "плохая" + +#: +msgid "DepositBrakingCapacity.92" +msgstr "плохая/средняя" + +#: +msgid "DepositBrakingCapacity.93" +msgstr "средняя" + +#: +msgid "DepositBrakingCapacity.94" +msgstr "средняя/хорошая" + +#: +msgid "DepositBrakingCapacity.95" +msgstr "хорошая" + +#: +msgid "DepositBrakingCapacity.99" +msgstr "цифры ненадежны" + +#: +msgid "DepositBrakingCapacity.default" +msgstr "коэффициент сцепления {0}" + +#: +msgid "DepositCoverage.NOT_REPORTED" +msgstr "нет данных" + +#: +msgid "DepositCoverage.LESS_10" +msgstr "менее 10%" + +#: +msgid "DepositCoverage.FROM_11_TO_25" +msgstr "от 11% до 25%" + +#: +msgid "DepositCoverage.FROM_26_TO_50" +msgstr "от 26% до 50%" + +#: +msgid "DepositCoverage.FROM_51_TO_100" +msgstr "от 51% до 100%" + +#: +msgid "DepositThickness.//" +msgstr "нет данных" + +#: +msgid "DepositThickness.00" +msgstr "менее 1 мм" + +#: +msgid "DepositThickness.92" +msgstr "10 cm" + +#: +msgid "DepositThickness.93" +msgstr "15 cm" + +#: +msgid "DepositThickness.94" +msgstr "20 cm" + +#: +msgid "DepositThickness.95" +msgstr "25 cm" + +#: +msgid "DepositThickness.96" +msgstr "30 cm" + +#: +msgid "DepositThickness.97" +msgstr "35 cm" + +#: +msgid "DepositThickness.98" +msgstr "40 см или более" + +#: +msgid "DepositThickness.99" +msgstr "закрыта" + +#: +msgid "DepositThickness.default" +msgstr "{0} мм" + +#: +msgid "DepositType.NOT_REPORTED" +msgstr "нет данных" + +#: +msgid "DepositType.CLEAR_DRY" +msgstr "чистая и сухая" + +#: +msgid "DepositType.DAMP" +msgstr "влажный" + +#: +msgid "DepositType.WET_WATER_PATCHES" +msgstr "влажная или местами вода" + +#: +msgid "DepositType.RIME_FROST_COVERED" +msgstr "изморозь или иней" + +#: +msgid "DepositType.DRY_SNOW" +msgstr "сухой снег" + +#: +msgid "DepositType.WET_SNOW" +msgstr "влажный снег" + +#: +msgid "DepositType.ICE" +msgstr "лед" + +#: +msgid "DepositType.COMPACTED_SNOW" +msgstr "уплотненный или укатанный снег" + +#: +msgid "DepositType.FROZEN_RIDGES" +msgstr "замерзшие колеи или борозды" + +#: +msgid "DepositType.SLUSH" +msgstr "слякоть" + +#: +msgid "Descriptive.BC" +msgstr "клочья" + +#: +msgid "Descriptive.BL" +msgstr "низовая метель" + +#: +msgid "Descriptive.DR" +msgstr "поземок" + +#: +msgid "Descriptive.FZ" +msgstr "замерзающий" + +#: +msgid "Descriptive.MI" +msgstr "поземный" + +#: +msgid "Descriptive.PR" +msgstr "частичный" + +#: +msgid "Descriptive.SH" +msgstr "ливни" + +#: +msgid "Descriptive.TS" +msgstr "гроза" + +#: +msgid "Error.prefix" +msgstr "Произошла ошибка. Код ошибки n°" + +#: +msgid "ErrorCode.AirportNotFound" +msgstr "Аэропорт не найден для этого сообщения." + +#: +msgid "ErrorCode.InvalidMessage" +msgstr "Введенное сообщение неверное." + +#: +msgid "Flag.AMD" +msgstr "Измененный TAF" + +#: +msgid "Flag.AUTO" +msgstr "автоматический МЕТАР" + +#: +msgid "Flag.CNL" +msgstr "отмененный TAF" + +#: +msgid "Flag.COR" +msgstr "исправленый METAR/TAF" + +#: +msgid "Flag.NIL" +msgstr "нет данных" + +#: +msgid "IcingIntensity.0" +msgstr "Обледенения нет" + +#: +msgid "IcingIntensity.1" +msgstr "Слабое обледенение" + +#: +msgid "IcingIntensity.2" +msgstr "Слабое обледенение в облаках" + +#: +msgid "IcingIntensity.3" +msgstr "Слабое обледенение в осадках" + +#: +msgid "IcingIntensity.4" +msgstr "Умеренное обледенение" + +#: +msgid "IcingIntensity.5" +msgstr "Умеренное обледенение в облаках" + +#: +msgid "IcingIntensity.6" +msgstr "Умеренное обледенение в осадках" + +#: +msgid "IcingIntensity.7" +msgstr "Сильное обледенение" + +#: +msgid "IcingIntensity.8" +msgstr "Сильное обледенение в облаках" + +#: +msgid "IcingIntensity.9" +msgstr "Сильное обледенение в осадках" + +#: +msgid "Indicator.M" +msgstr "менее чем" + +#: +msgid "Indicator.P" +msgstr "более чем" + +#: +msgid "Intensity.-" +msgstr "Слабый" + +#: +msgid "Intensity.+" +msgstr "Сильный" + +#: +msgid "Intensity.RE" +msgstr "Последний" + +#: +msgid "Intensity.VC" +msgstr "В непосредственной близости" + +#: +msgid "Phenomenon.BR" +msgstr "дымка" + +#: +msgid "Phenomenon.DS" +msgstr "пыльная буря" + +#: +msgid "Phenomenon.DU" +msgstr "пыль взвешенная в воздухе" + +#: +msgid "Phenomenon.DZ" +msgstr "морось" + +#: +msgid "Phenomenon.FC" +msgstr "смерч" + +#: +msgid "Phenomenon.FG" +msgstr "туман" + +#: +msgid "Phenomenon.FU" +msgstr "дым" + +#: +msgid "Phenomenon.GR" +msgstr "град" + +#: +msgid "Phenomenon.GS" +msgstr "ледяная крупа" + +#: +msgid "Phenomenon.HZ" +msgstr "мгла" + +#: +msgid "Phenomenon.IC" +msgstr "ледяные кристаллы" + +#: +msgid "Phenomenon.PL" +msgstr "град" + +#: +msgid "Phenomenon.PO" +msgstr "пыльный или снежный вихрь" + +#: +msgid "Phenomenon.PY" +msgstr "брызги" + +#: +msgid "Phenomenon.RA" +msgstr "дождь" + +#: +msgid "Phenomenon.SA" +msgstr "песок" + +#: +msgid "Phenomenon.SG" +msgstr "снежная крупа" + +#: +msgid "Phenomenon.SN" +msgstr "снег" + +#: +msgid "Phenomenon.SQ" +msgstr "шквал" + +#: +msgid "Phenomenon.SS" +msgstr "песчаная буря" + +#: +msgid "Phenomenon.UP" +msgstr "неизвестные осадки" + +#: +msgid "Phenomenon.VA" +msgstr "вулканический пепел" + +#: +msgid "Phenomenon.TS" +msgstr "гроза" + +#: +msgid "Remark.AO1" +msgstr "автоматизированная станция без детектора осадков" + +#: +msgid "Remark.AO2" +msgstr "автоматизированная станция с детектором осадков" + +#: +msgid "Remark.ALQDS" +msgstr "все квадраты" + +#: +msgid "Remark.Barometer.0" +msgstr "Росло, а затем падало" + +#: +msgid "Remark.Barometer.1" +msgstr "Росло, затем не изменялось или росло, затем росло медленнее" + +#: +msgid "Remark.Barometer.2" +msgstr "не изменялось или неустойчиво росло" + +#: +msgid "Remark.Barometer.3" +msgstr "Уменьшалось или не изменялось, затем росло; или росло, затем росло быстрее" + +#: +msgid "Remark.Barometer.4" +msgstr "Неизменное" + +#: +msgid "Remark.Barometer.5" +msgstr "Росло, а затем падало" + +#: +msgid "Remark.Barometer.6" +msgstr "Росло, затем не изменялось или росло, затем росло медленнее" + +#: +msgid "Remark.Barometer.7" +msgstr "не изменялось или неустойчиво росло" + +#: +msgid "Remark.Barometer.8" +msgstr "Не изменялось или увеличивалось, затем падало; или падало, затем падало быстрее" + +#: +msgid "Remark.BASED" +msgstr "базовый" + +#: +msgid "Remark.Ceiling.Height" +msgstr "нижняя граница облаков колеблется между {0} и {1} футами" + +#: +msgid "Remark.Ceiling.Second.Location" +msgstr "нижняя граница облаков {0} футов, измерена вторым датчиком, расположенным в {1}" + +#: +msgid "Remark.DSNT" +msgstr "отдалённый" + +#: +msgid "Remark.FCST" +msgstr "прогноз" + +#: +msgid "Remark.FUNNELCLOUD" +msgstr "смерч" + +#: +msgid "Remark.Hail" +msgstr "крупный град диаметром {0} дюймов" + +#: +msgid "Remark.Hail.LesserThan" +msgstr "крупный град диаметром менее {0} дюймов" + +#: +msgid "Remark.Hourly.Maximum.Temperature" +msgstr "6-часовая максимальная температура {0}°C" + +#: +msgid "Remark.Hourly.Maximum.Minimum.Temperature" +msgstr "24-часовая максимальная температура {0}°C и 24-часовая минимальная температура {1}°C" + +#: +msgid "Remark.Hourly.Minimum.Temperature" +msgstr "6-часовая минимальная температура {0}°C" + +#: +msgid "Remark.Hourly.Temperature" +msgstr "температура за прошедший час {0}°C" + +#: +msgid "Remark.Hourly.Temperature.Dew.Point" +msgstr "за прошедший час температура {0}°C и точка росы {1}°C" + +#: +msgid "Remark.Ice.Accretion.Amount" +msgstr "{0}/100 дюйма льда за последние {1} час(а)" + +#: +msgid "Remark.HVY" +msgstr "сильный" + +#: +msgid "Remark.LGT" +msgstr "слабый" + +#: +msgid "Remark.LTG" +msgstr "молния" + +#: +msgid "Remark.MOD" +msgstr "умеренный" + +#: +msgid "Remark.Obscuration" +msgstr "{0} слой на высоте {1} футов состоящий из {2}" + +#: +msgid "Remark.ON" +msgstr "на" + +#: +msgid "Remark.NXT" +msgstr "следующий" + +#: +msgid "Remark.PeakWind" +msgstr "пиковый ветер {1} узлов от {0} градусов на {2}:{3}" + +#: +msgid "Remark.Precipitation.Amount.Hourly" +msgstr "{0}/100 дюйма осадков выпали за последний час" + +#: +msgid "Remark.Precipitation.Amount.3.6" +msgstr "{1} дюйма(ов) осадков выпали за последний час" + +#: +msgid "Remark.Precipitation.Amount.24" +msgstr "{0} дюймов осадков выпали за последние 24 часа" + +#: +msgid "Remark.Precipitation.Beg" +msgstr "{0} {1} начиная с {2}:{3}" + +#: +msgid "Remark.Precipitation.Beg.End" +msgstr "{0} {1} , начинающийся в {2}:{3} , заканчивается в {4}:{5}" + +#: +msgid "Remark.Precipitation.End" +msgstr "{0} {1} заканчивается в {2}:{3}" + +#: +msgid "Remark.Pressure.Tendency" +msgstr "{0} гектоПаскалей за последние 3 часа" + +#: +msgid "Remark.PRESFR" +msgstr "быстрое падение давления" + +#: +msgid "Remark.PRESRR" +msgstr "давление растет быстро" + +#: +msgid "Remark.Second.Location.Visibility" +msgstr "видимость {0} SM, измеренная вторым датчиком, расположенным в {1}" + +#: +msgid "Remark.Sea.Level.Pressure" +msgstr "давление уровня моря {0} HPa" + +#: +msgid "Remark.Sector.Visibility" +msgstr "видимость {1} SM в направлении {0}" + +#: +msgid "Remark.SLPNO" +msgstr "давление уровня моря недоступно" + +#: +msgid "Remark.Snow.Depth" +msgstr "глубина снега {0} дюймов" + +#: +msgid "Remark.Snow.Increasing.Rapidly" +msgstr "глубина снега увеличилась на {0} дюймов за последний час с общей глубиной на земле {1} дюймов" + +#: +msgid "Remark.Snow.Pellets" +msgstr "{0} снежная крупа" + +#: +msgid "Remark.Sunshine.Duration" +msgstr "{0} минут солнечного света" + +#: +msgid "Remark.Surface.Visibility" +msgstr "приземная видимость {0} статутных миль" + +#: +msgid "Remark.Thunderstorm.Location" +msgstr "гроза {0} станции" + +#: +msgid "Remark.Thunderstorm.Location.Moving" +msgstr "гроза {0} станции, движется в направлении {1}" + +#: +msgid "Remark.Tornadic.Activity.Beginning" +msgstr "{0} начинающийся в {1}:{2} {3} SM {4} станции" + +#: +msgid "Remark.Tornadic.Activity.BegEnd" +msgstr "{0} начинается в {1}:{2} заканчивается в {3}:{4} {5} SM {6} станции" + +#: +msgid "Remark.Tornadic.Activity.Ending" +msgstr "{0} заканчивается в {1}:{2} {3} SM {4} станции" + +#: +msgid "Remark.TORNADO" +msgstr "торнадо" + +#: +msgid "Remark.Tower.Visibility" +msgstr "видимость с вышки {0} статутных миль " + +#: +msgid "Remark.Variable.Prevailing.Visibility" +msgstr "преобладающая переменная видимости между {0} и {1} SM" + +#: +msgid "Remark.Variable.Sky.Condition" +msgstr "облачный слой варьируется между {0} и {1}" + +#: +msgid "Remark.Variable.Sky.Condition.Height" +msgstr "облачный слой на {0} футах колеблется между {1} и {2}" + +#: +msgid "Remark.VIRGA" +msgstr "дождь не достигающий земли" + +#: +msgid "Remark.Virga.Direction" +msgstr "дождь не достигающий земли {0} от станции" + +#: +msgid "Remark.WATERSPOUT" +msgstr "смерч" + +#: +msgid "Remark.Water.Equivalent.Snow.Ground" +msgstr "водяной эквивалент снега {0} дюймов " + +#: +msgid "Remark.WindShift" +msgstr "сдвиг ветра в {0}:{1}" + +#: +msgid "Remark.WindShift.FROPA" +msgstr "сдвиг ветра при прохождении фронта в {0}:{1}" + +#: +msgid "MetarFacade.InvalidIcao" +msgstr "Неверный код Icao." + +#: +msgid "Converter.D" +msgstr "уменьшение" + +#: +msgid "Converter.E" +msgstr "Восток" + +#: +msgid "Converter.ENE" +msgstr "Восток Северо-Восток" + +#: +msgid "Converter.ESE" +msgstr "Восток Юго-Восток" + +#: +msgid "Converter.N" +msgstr "Север" + +#: +msgid "Converter.NE" +msgstr "Северо-восток" + +#: +msgid "Converter.NNE" +msgstr "Север Северо-Восток" + +#: +msgid "Converter.NNW" +msgstr "Север Северо-запад" + +#: +msgid "Converter.NSC" +msgstr "без существенных изменений" + +#: +msgid "Converter.NW" +msgstr "Северо-запад" + +#: +msgid "Converter.S" +msgstr "Юг" + +#: +msgid "Converter.SE" +msgstr "Юго-Восток" + +#: +msgid "Converter.SSE" +msgstr "Юг Юго-Восток" + +#: +msgid "Converter.SSW" +msgstr "Юг - Юго-Запад" + +#: +msgid "Converter.SW" +msgstr "Юго-Запад" + +#: +msgid "Converter.U" +msgstr "восходящий" + +#: +msgid "Converter.VRB" +msgstr "Переменный" + +#: +msgid "Converter.W" +msgstr "Запад" + +#: +msgid "Converter.WNW" +msgstr "Запад Северо-Запад" + +#: +msgid "Converter.WSW" +msgstr "Запад Юго-Запад" + +#: +msgid "WeatherChangeType.FM" +msgstr "С" + +#: +msgid "WeatherChangeType.BECMG" +msgstr "Устойчивые изменения" + +#: +msgid "WeatherChangeType.INTER" +msgstr "Периодический" + +#: +msgid "WeatherChangeType.TEMPO" +msgstr "Временами" + +#: +msgid "WeatherChangeType.PROB" +msgstr "Вероятность" + +#: +msgid "TimeIndicator.AT" +msgstr "в" + +#: +msgid "TimeIndicator.FM" +msgstr "С" + +#: +msgid "TimeIndicator.TL" +msgstr "до" + +#: +msgid "ToString.airport" +msgstr "аэропорт" + +#: +msgid "ToString.altimeter" +msgstr "высотомер (hPa)" + +#: +msgid "ToString.amendment" +msgstr "внесение поправок" + +#: +msgid "ToString.auto" +msgstr "авто" + +#: +msgid "ToString.baseHeight" +msgstr "нижний край в футах" + +#: +msgid "ToString.cavok" +msgstr "cavok" + +#: +msgid "ToString.clouds" +msgstr "облака" + +#: +msgid "ToString.day.month" +msgstr "день месяца" + +#: +msgid "ToString.day.hour" +msgstr "час дня" + +#: +msgid "ToString.deposit.braking" +msgstr "коэффициент сцепления" + +#: +msgid "ToString.deposit.coverage" +msgstr "покрытие" + +#: +msgid "ToString.deposit.thickness" +msgstr "толщина" + +#: +msgid "ToString.deposit.type" +msgstr "состояние покрытия" + +#: +msgid "ToString.depth" +msgstr "толщина слоя в футах" + +#: +msgid "ToString.descriptive" +msgstr "описательный" + +#: +msgid "ToString.dew.point" +msgstr "точка росы" + +#: +msgid "ToString.end.day.month" +msgstr "последний день месяца" + +#: +msgid "ToString.end.hour.day" +msgstr "последний час суток" + +#: +msgid "ToString.flags" +msgstr "флаги" + +#: +msgid "ToString.height.feet" +msgstr "высота (ft)" + +#: +msgid "ToString.height.meter" +msgstr "высота (м)" + +#: +msgid "ToString.intensity" +msgstr "интенсивность" + +#: +msgid "ToString.indicator" +msgstr "показатель" + +#: +msgid "ToString.message" +msgstr "исходное сообщение" + +#: +msgid "ToString.name" +msgstr "имя" + +#: +msgid "ToString.nosig" +msgstr "изменения не ожидаются" + +#: +msgid "ToString.phenomenons" +msgstr "явления" + +#: +msgid "ToString.probability" +msgstr "вероятность" + +#: +msgid "ToString.quantity" +msgstr "количество" + +#: +msgid "ToString.remark" +msgstr "примечание" + +#: +msgid "ToString.report.time" +msgstr "время отчета" + +#: +msgid "ToString.runway.info" +msgstr "информация о взлетно-посадочных полосах" + +#: +msgid "ToString.start.day.month" +msgstr "день начала месяца" + +#: +msgid "ToString.start.hour.day" +msgstr "час начала дня" + +#: +msgid "ToString.start.minute" +msgstr "минута начала" + +#: +msgid "ToString.temperature" +msgstr "температура (°C)" + +#: +msgid "ToString.temperature.max" +msgstr "максимальная температура (°C)" + +#: +msgid "ToString.temperature.min" +msgstr "минимальная температура (°C)" + +#: +msgid "ToString.trend" +msgstr "тренд" + +#: +msgid "ToString.trends" +msgstr "тренды" + +#: +msgid "ToString.type" +msgstr "тип" + +#: +msgid "ToString.visibility.main" +msgstr "основная видимость" + +#: +msgid "ToString.visibility.min" +msgstr "минимальная видимость" + +#: +msgid "ToString.visibility.min.direction" +msgstr "минимальное направление видимости" + +#: +msgid "ToString.visibility.max" +msgstr "максимальная видимость" + +#: +msgid "ToString.vertical.visibility" +msgstr "вертикальная видимость (ft)" + +#: +msgid "ToString.weather.conditions" +msgstr "погодные условия" + +#: +msgid "ToString.wind.direction" +msgstr "направление" + +#: +msgid "ToString.wind.direction.degrees" +msgstr "направление (в градусах)" + +#: +msgid "ToString.wind.gusts" +msgstr "порывы" + +#: +msgid "ToString.wind.min.variation" +msgstr "минимальное изменение ветра" + +#: +msgid "ToString.wind.max.variation" +msgstr "максимальное изменение ветра" + +#: +msgid "ToString.wind.speed" +msgstr "скорость" + +#: +msgid "ToString.wind.unit" +msgstr "единицы измерения" + +#: +msgid "TurbulenceIntensity.0" +msgstr "Нет" + +#: +msgid "TurbulenceIntensity.1" +msgstr "Слабая турбулентность" + +#: +msgid "TurbulenceIntensity.2" +msgstr "Умеренная турбулентность при ясном небе, время от времени" + +#: +msgid "TurbulenceIntensity.3" +msgstr "Умеренная турбулентность при ясном небе, часто" + +#: +msgid "TurbulenceIntensity.4" +msgstr "Умеренная турбулентность в облаках, время от времени" + +#: +msgid "TurbulenceIntensity.5" +msgstr "Умеренная турбулентность в облаках, часто" + +#: +msgid "TurbulenceIntensity.6" +msgstr "Сильные турбулентность при ясном небе, время от времени" + +#: +msgid "TurbulenceIntensity.7" +msgstr "Сильная турбулентность при ясном небе, часто" + +#: +msgid "TurbulenceIntensity.8" +msgstr "Сильная турбулентности в облаках, время от времени" + +#: +msgid "TurbulenceIntensity.9" +msgstr "Сильная турбулентности в облаках, часто" + +#: +msgid "TurbulenceIntensity.X" +msgstr "Экстремальная турбулентность" + From 6f0e8563d82bdbb45889280e530b98bdb1c26710 Mon Sep 17 00:00:00 2001 From: Jk Date: Sat, 23 Dec 2023 18:41:11 +0100 Subject: [PATCH 2/2] Rework formatting on model representation --- CHANGELOG.md | 6 +- metar_taf_parser/model/model.py | 121 ++++++++------------------------ 2 files changed, 35 insertions(+), 92 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f4cf8d..263905c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,15 @@ # Change Log -## [1.8.0] - 2023-12-TBD +## [1.8.0] - 2024-01-04 ### Added - Support of Russian locale thanks to [@a184ot](https://github.com/a184ot) +### Fixed + +- Reformat object representation. Removed breaking lines in formatting. + ## [1.7.1] - 2023-12-09 ### Fixed diff --git a/metar_taf_parser/model/model.py b/metar_taf_parser/model/model.py index ebe48b0..a9df052 100644 --- a/metar_taf_parser/model/model.py +++ b/metar_taf_parser/model/model.py @@ -18,7 +18,7 @@ def _set_name(self, value): self._name = value def __repr__(self): - return 'Country[name={name}]'.format(name=self.name) + return f'Country[name={self.name}]' name = property(_get_name, _set_name) @@ -76,12 +76,8 @@ def _set_unit(self, value): self._unit = value def __repr__(self): - return """Wind[speed={speed}, direction={direction}, gust={gust}, degrees={degrees} - unit={unit}, min_variation={min_variation}, max_variation={max_variation} - ] - """.format(speed=self.speed, direction=self.direction, - gust=self.gust, degrees=self.degrees, unit=self._unit, - min_variation=self.min_variation, max_variation=self.max_variation) + return f'Wind[speed={self.speed}, direction={self.direction}, gust={self.gust}, degrees={self.degrees}, '\ + f'unit={self.unit}, min_variation={self.min_variation}, max_variation={self.max_variation}]' speed = property(_get_speed, _set_speed) direction = property(_get_direction, _set_direction) @@ -104,7 +100,7 @@ def _set_height(self, value): self._height = value def __repr__(self): - return 'WindShear[height={height}'.format(height=self.height) + super().__repr__() + ']' + return f'WindShear[height={self.height}' + super().__repr__() + ']' height = property(_get_height, _set_height) @@ -134,10 +130,8 @@ def _set_min_direction(self, value): self._min_direction = value def __repr__(self): - return """Visibility[distance={distance}, min_distance={min_distance} - , min_direction={min_direction}]""".format(distance=self.distance, - min_direction=self.min_direction, - min_distance=self.min_distance) + return f'Visibility[distance={self.distance}, min_distance={self.min_distance}, '\ + f'min_direction={self.min_direction}]' distance = property(_get_distance, _set_distance) min_distance = property(_get_min_distance, _set_min_distance) @@ -172,11 +166,7 @@ def is_valid(self): return len(self._phenomenons) != 0 or self._descriptive == Descriptive.THUNDERSTORM def __repr__(self): - return 'WeatherCondition[intensity={intensity}, descriptive={descriptive}, phenomenons={phenomenons}]'.format( - intensity=self.intensity, - descriptive=self.descriptive, - phenomenons=self.phenomenons - ) + return f'WeatherCondition[intensity={self.intensity}, descriptive={self.descriptive}, phenomenons={self.phenomenons}]' intensity = property(_get_intensity, _set_intensity) descriptive = property(_get_descriptive, _set_descriptive) @@ -208,11 +198,7 @@ def _set_hour(self, value): self._hour = value def __repr__(self): - return 'TemperatureDated[temperature={temperature}, day={day}, hour={hour}]'.format( - temperature=self.temperature, - day=self.day, - hour=self.hour - ) + return f'TemperatureDated[temperature={self.temperature}, day={self.day}, hour={self.hour}]' temperature = property(_get_temperature, _set_temperature) day = property(_get_day, _set_day) @@ -287,21 +273,9 @@ def _set_braking_capacity(self, value): self._braking_capacity = value def __repr__(self): - return """ - RunwayInfo[name={name}, min_range={min_range}, max_range={max_range}, - trend={trend}, indicator={indicator}, deposit_type={deposit_type}, - coverage={coverage}, thickness={thickness}, braking_capacity={braking_capacity}] - """.format( - name=self.name, - min_range=self.min_range, - max_range=self.max_range, - trend=self.trend, - indicator=self.indicator, - deposit_type=self.deposit_type, - coverage=self.coverage, - thickness=self.thickness, - braking_capacity=self.braking_capacity - ) + return f'RunwayInfo[name={self.name}, min_range={self.min_range}, max_range={self.max_range}, '\ + f'trend={self.trend}, indicator={self.indicator}, deposit_type={self.deposit_type}, '\ + f'coverage={self.coverage}, thickness={self.thickness}, braking_capacity={self.braking_capacity}]'\ name = property(_get_name, _set_name) min_range = property(_get_min_range, _set_min_range) @@ -340,11 +314,7 @@ def _get_type(self): return self._type def __repr__(self): - return 'Cloud[height={height}, quantity={quantity}, type={type}]'.format( - height=self.height, - quantity=self.quantity, - type=self.type - ) + return f'Cloud[height={self.height}, quantity={self.quantity}, type={self.type}]' height = property(_get_height, _set_height) quantity = property(_get_quantity, _set_quantity) @@ -376,11 +346,7 @@ def _set_depth(self, depth: int): self._depth = depth def __repr__(self): - return 'Icing[intensity={intensity}, base_height={base_height}, depth={depth}]'.format( - intensity=self.intensity, - base_height=self.base_height, - depth=self.depth - ) + return f'Icing[intensity={self.intensity}, base_height={self.base_height}, depth={self.depth}]' intensity = property(_get_intensity, _set_intensity) base_height = property(_get_base_height, _set_base_height) @@ -413,11 +379,7 @@ def _set_depth(self, depth: int): self._depth = depth def __repr__(self): - return 'Turbulence[intensity={intensity}, base_height={base_height}, depth={depth}]'.format( - intensity=self.intensity, - base_height=self.base_height, - depth=self.depth - ) + return f'Turbulence[intensity={self.intensity}, base_height={self.base_height}, depth={self.depth}]' intensity = property(_get_intensity, _set_intensity) base_height = property(_get_base_height, _set_base_height) @@ -442,10 +404,7 @@ def add_icing(self, icing: Icing): self._icings.append(icing) def __repr__(self): - return 'turbulence={turbulence}, icings={icings}'.format( - turbulence=self.turbulence, - icings=self.icings - ) + return f'turbulence={self.turbulence}, icings={self.icings}' turbulence = property(_get_turbulence) icings = property(_get_icings) @@ -522,15 +481,9 @@ def add_weather_condition(self, wc: WeatherCondition): return True def __repr__(self): - return """ - wind={wind}, visibility={visibility}, vertical_visibility={vertical_visibility}, - wind_shear={wind_shear}, cavok={cavok}, remark={remark}, - clouds={clouds}, weather_conditions={weather_conditions} - """.format(wind=self.wind, visibility=self.visibility, - vertical_visibility=self.vertical_visibility, - cavok=self.cavok, remark=self.remark, - wind_shear=self.wind_shear, - clouds=str(self.clouds), weather_conditions=self.weather_conditions) + return f'wind={self.wind}, visibility={self.visibility}, vertical_visibility={self.vertical_visibility}, '\ + f'wind_shear={self.wind_shear}, cavok={self.cavok}, remark={self.remark}, '\ + f'clouds={self.clouds}, weather_conditions={self.weather_conditions}' wind = property(_get_wind, _set_wind) visibility = property(_get_visibility, _set_visibility) @@ -558,7 +511,7 @@ def _set_start_hour(self, value: int): self._start_hour = value def __repr__(self): - return 'start_day={start_day}, start_hour={start_hour}'.format(start_day=self.start_day, start_hour=self.start_hour) + return f'start_day={self.start_day}, start_hour={self.start_hour}' start_day = property(_get_start_day, _set_start_day) start_hour = property(_get_start_hour, _set_start_hour) @@ -624,14 +577,8 @@ def _is_nil(self): return Flag.NIL in self._flags def __repr__(self): - return 'day={day}, time={time}, message={message}, station={station}, trends={trends}, flags={flags}, '.format( - day=self.day, - time=self.time, - message=self.message, - station=self.station, - trends=self.trends, - flags=self.flags - ) + super().__repr__() + return (f'day={self.day}, time={self.time}, message={self.message}, station={self.station}, ' + f'trends={self.trends}, flags={self.flags}, ' + super().__repr__()) day = property(_get_day, _set_day) time = property(_get_time, _set_time) @@ -687,13 +634,7 @@ def add_runway_info(self, runway_info: RunwayInfo): self._runways_info.append(runway_info) def __repr__(self): - return 'Metar[' + super().__repr__() + ', temperature={temperature}, dew_point={dew_point}, altimeter={altimeter}, nosig={nosig}, runways_info={runways_info}]'.format( - temperature=self.temperature, - dew_point=self.dew_point, - altimeter=self.altimeter, - nosig=self.nosig, - runways_info=self.runways_info, - ) + return 'Metar[' + super().__repr__() + f', temperature={self.temperature}, dew_point={self.dew_point}, altimeter={self.altimeter}, nosig={self.nosig}, runways_info={self.runways_info}]' temperature = property(_get_temperature, _set_temperature) dew_point = property(_get_dew_point, _set_dew_point) @@ -745,11 +686,7 @@ def fms(self): return list(filter(lambda trend: trend.type == WeatherChangeType.FM, self.trends)) def __repr__(self): - return 'TAF[' + AbstractWeatherCode.__repr__(self) + ITafGroups.__repr__(self) + ', validity={validity}, max_temperature={max_temperature}, min_temperature={min_temperature}]'.format( - validity=self.validity, - max_temperature=self.max_temperature, - min_temperature=self.min_temperature - ) + return 'TAF[' + AbstractWeatherCode.__repr__(self) + ITafGroups.__repr__(self) + f', validity={self.validity}, max_temperature={self.max_temperature}, min_temperature={self.min_temperature}]' validity = property(_get_validity, _set_validity) max_temperature = property(_get_max_temperature, _set_max_temperature) @@ -765,7 +702,7 @@ def _get_type(self): return self._type def __repr__(self): - return super().__repr__() + ', type={type}'.format(type=self.type) + return super().__repr__() + f', type={self.type}' type = property(_get_type) @@ -784,7 +721,7 @@ def _set_time(self, value: time): self._time = value def __repr__(self): - return 'MetarTrendTime[type={type}, time={time}]'.format(type=self.type, time=self.time) + return f'MetarTrendTime[type={self.type}, time={self.time}]' type = property(_get_type) time = property(_get_time, _set_time) @@ -803,7 +740,8 @@ def add_time(self, value: MetarTrendTime): self._times.append(value) def __repr__(self): - return 'MetarTrend[' + super().__repr__() + ', times={times}'.format(times=self.times) + return 'MetarTrend[' + super().__repr__() + f', times={self.times}' + times = property(_get_times) @@ -826,7 +764,8 @@ def _set_probability(self, prob: int): self._probability = prob def __repr__(self): - return 'TAFTrend[' + ITafGroups.__repr__(self) + ', ' + AbstractTrend.__repr__(self) + ', validity={validity}, probability={probability}'.format(validity=self.validity, probability=self.probability) + return 'TAFTrend[' + ITafGroups.__repr__(self) + ', ' + AbstractTrend.__repr__(self) + f', validity={self.validity}, probability={self.probability}' + probability = property(_get_probability, _set_probability) validity = property(_get_validity, _set_validity) @@ -869,6 +808,6 @@ def _set_start_minutes(self, value: int): self._start_minutes = value def __repr__(self): - return 'FMValidity[' + super().__repr__() + ', strart_minutes={start_minutes}]'.format(start_minutes=self.start_minutes) + return 'FMValidity[' + super().__repr__() + f', strart_minutes={self.start_minutes}]' start_minutes = property(_get_start_minutes, _set_start_minutes)