[kde-russian] Fwd: KDE russian: единицы измерения в kweather

Evgeniy Ivanov =?iso-8859-1?q?powerfox_=CE=C1_kde=2Eru?=
Сб Апр 19 23:40:58 MSD 2008


Андрей Черепанов пишет:
> 17 апреля 2008 Gregory Mokhin написал:
>   
>> ---------- Forwarded message ----------
>> From: Сергей <students-s на mail.ru>
>> Date: 2008/4/17
>> Subject: KDE russian: единицы измерения в kweather
>> To: mok на kde.ru
>>
>>
>> Это сообщение отправлено с сайта http://kde.ru. Автор сообщения:
>> Сергей <students-s на mail.ru>
>>
>> Здравствуйте.
>> Очень нравится аплет kweather. Только одно неудобство у него есть -
>> давление показывается в гПа, скорость ветра - в км/ч. А в России все
>> мерят в мм. рт. ст. и в м/с.
>> Я не настолько силен в программировании, чтобы это исправить, поэтому
>> хочу задать этот вопрос разработчикам (переводчикам). Единственно, что
>> я мог разобрать - это откуда аплет получает данные и что в файле
>> /usr/share/locale/ru/LC_MESSAGES/kweather.mo прописаны такие единицы
>> измерения. Нужно только в код программы добавить конвертирование из
>> одних в другие. И направление ветра вместо английских букв N, W, E, S
>> поставить русские С, З, В, Ю.
>> Можете ли вы это сделать? Всем бы удобнее было.
>>     
> Вот ссылка на дискуссию, где всё написано: 
> http://kde.ru/forum/viewtopic.php?p=9086
>
>   
С форумом у меня ничего не вышло (ошибка отправки письма активации), 
поэтому пишу здесь.

В принципе, проблему можно решить в 5 минут без написания дополнительных 
модулей, в стиле, описанном в документации Qt:

Localization is the process of adapting to local conventions, for 
example presenting dates and times using the locally preferred formats. 
Such localizations can be accomplished using appropriate tr() strings.
    void Clock::setTime(const QTime& t)
    {
        if ( tr("AMPM") == "AMPM" ) {
            // 12-hour clock
        } else {
            // 24-hour clock
        }
    }
In the example, for the US we would leave the translation of "AMPM" as 
it is and thereby use the 12-hour clock branch; but in Europe we would 
translate it as something else (anything else, e.g. "EU") and this will 
make the code use the 24-hour clock branch.

К тому же изменения нужно внести всего-то в WeatherLib::pressure и 
WeatherLib::wind (а это функции в 2 строки).

Конечно, вариант с добавлением модуля в KLocale намного красивее, пример 
из date:
return KGlobal::locale()->formatDateTime(localDateTime, 
KLocale::LongDate); //возвращает строку.
Но думаю, что изменение в API очень сложная работа (в плане того, что 
попадёт в код такое изменение намного позже того, что я предложил выше).

Жду ваших комментариев. Если вы считаете, что первый вариант приемлем, 
то сделаю. Кажется, ветка 4.1 ещё не заморожена и, если пошевелемся, то 
к релизу 4.1 всё будет ок.

P.S. Возможно, что если использовать российские станции погоды, то всё 
будет ок. По-моему, у меня такой проблемы не было. Программа просто 
загружает с сайта станции текстовый файл и отображает его содержимое (я 
смотрел довольно поверхностно, но должено быть именно так).


-- 
Best Regards,
Evgeniy





Подробная информация о списке рассылки kde-russian