Графический интерфейс wxpython, имеющий статический японский текст и китайский статический текст - PullRequest
0 голосов
/ 06 февраля 2010

Мы хотим поддерживать локализацию статического текста (метки, метки кнопок и т. Д.) Для японского и китайского языков в wxpython. Мы хотим, чтобы только статический текст внутри элементов GUI был изменен, жесткое кодирование японских или китайских символов в метке (статические текстовые поля) сделало бы для нас работу. Любая помощь о том, как добиться этого, будет полезна.

Спасибо

1 Ответ

0 голосов
/ 07 февраля 2010

см .: wx.GetTranslation

http://wiki.wxpython.org/Internationalization

Что я делаю, так это использую _ = wx.GetTranslation в верхней части моих скриптов и заключаю любые строки в _ ("Моя строка")

Я использую этот пакетный скрипт: http://code.google.com/p/gui2exe/source/browse/trunk/scripts/gen_lang, чтобы запустить скрипт mki18n.py, найденный в вики. По сути, он запускает команду «gettext» над вашим исходным кодом и выбирает строки для перевода, которые соответствуют формату _ («»).

Затем вы добавляете каталог сообщений в wxPython:

self.locale = wx.Locale(wx.LANGUAGE_JAPANESE, wx.LOCALE_LOAD_DEFAULT)
langdir = os.path.join('path', 'to', 'locale', 'folder')
self.locale.AddCatalogLookupPathPrefix(langdir)
self.locale.AddCatalog("program-name")

Конечно, вам придется разрешить пользователю выбирать предпочитаемый язык и сопоставить wx.LANGUAGE_ * с этого. например,

languages = ( (_("English"), wx.LANGUAGE_ENGLISH),
              (_("English (United Kingdom)"), wx.LANGUAGE_ENGLISH_UK),
              (_("Japanese"), wx.LANGUAGE_JAPANESE),
              (_("Portuguese"), wx.LANGUAGE_PORTUGUESE),
              (_("Dutch"), wx.LANGUAGE_DUTCH),
              (_("German"), wx.LANGUAGE_GERMAN),
              (_("Russian"), wx.LANGUAGE_RUSSIAN) )


self.locale = wx.Locale(languages[user.preference.language], wx.LOCALE_LOAD_DEFAULT)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...