Методы для модульной настройки сообщений локали? - PullRequest
0 голосов
/ 23 июня 2009

Там много уровней для настройки программ.

Во-первых, конечно, говорите на вашем языке , создавая сообщения i18n, в которых такие инструменты, как gettext и xgettext отлично справляются с работой.

Другое приходит, когда вам нужно изменить значение некоторых сообщений, чтобы соответствовать цели вашего проекта.

Вопрос : возможно ли сохранить настроенные сообщения в отдельном файле в дополнение к стандартному переводу, и могут ли стандартные инструменты понять, что настроенные сообщения имеют приоритет?

Это поможет предотвратить передачу этих сообщений в общедоступный репозиторий и перезаписать шаблонный текст при обновлении.

edit: , так как не так много людей заботятся о локализации, я думаю, что целесообразно собирать ответы для любой платформы, однако в данный момент мне интересно реализовать этот python / django.

Ответы [ 2 ]

1 голос
/ 24 июня 2009

Я думаю, мощные средства Qt i18n (см. здесь ) могут удовлетворить ваши потребности - конечно, они также доступны в Python, благодаря обычным, благословенным PyQt ! -)

1 голос
/ 23 июня 2009

В Java эти локализованные строки обрабатываются ResourceBundles. ResourceBundles имеют концепцию вариантов. Например, у вас может быть базовый английский ресурс, который называется messages_en.propertie s. Затем вы можете настроить для конкретного варианта английского языка с message_en_US.properties или message_en_UK.properties.

США и Великобритания являются кодами стран ISO, но вы также можете настроить свои собственные пользовательские варианты, которые просто содержат те строки, которые вы хотите настроить. Например:

#messages_en.properties
button.click=Click
label.go=Go

#messages_en_ZZ.properties
button.click=Click Me

Установив языковой стандарт на en_ZZ, ваше приложение сначала заглянет в messages_en_ZZ.properties, чтобы увидеть, существует ли настроенная строка, а затем вернется к messages_en.properties для ваших стандартных переводов. [Больше информации о приоритете загрузки ResourceBundle] [1]

[1]: http://java.sun.com/javase/6/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader)

...