Лучший способ убедиться, что ваше приложение Linux & GTK поддерживает i18n и локализацию? - PullRequest
1 голос
/ 18 августа 2010

Меня интересует «лучший подход», чтобы убедиться, что ваше приложение на базе Linux и GTK с самого начала создано для поддержки i18n и локализации с минимальными затратами труда.

Я всегда слышал, что локализация может быть реальной проблемой для реализации, поэтому мне интересно, есть ли хорошие рекомендации и / или подходы, которые могут помочь сделать i18n и поддержку локализации в приложении более понятными

Вот пример руководства, которое я прочитал, однако это специфично для Microsoft Windows ... Обзор глобализации и локализации WPF

Ответы [ 2 ]

6 голосов
/ 18 августа 2010

Использовать gettext .Это стандартный метод поддержки I18N в Linux (и может использоваться на других платформах).

Документация выглядит устрашающе, но в основном сводится к изменению кода с:

printf("Hello World!");

to

printf(gettext("Hello World!"));

, тогда программа xgettext извлечет все строки в gettext() в PO-файлы, которые можно редактировать с помощью таких инструментов, как poedit


Вот хороший краткий учебник по использованию gettext: Учебник по поддержке родного языка с использованием GNU gettext .Это в основном охватывает типичный рабочий процесс использования gettext.Другая хорошая статья посвящена PHP: Gettext - O'Reilly Media .Поищите в Google "учебник по gettext", и вы, вероятно, найдете больше.

1 голос
/ 18 августа 2010

Я думаю, что вы имеете в виду интернационализацию ... Если вы интернационализируете свою программу с самого начала, а не позже, локализация будет легкой.

Некоторые вещи, на которые следует обратить внимание:

  • Не используйте сцепленные строки.
  • Не используйте сцепленные строки.
  • Не думайте, что порядок прилагательных / существительных одинаков на каждом языке
  • Помните, когдаВы разрабатываете свой пользовательский интерфейс, чтобы другие языки были в целом длиннее или короче.Например, немецкий язык примерно в 1,5 раза длиннее, в то время как японский и китайский языки не требуют одинакового пространства.
  • Используйте несколько слов, чтобы донести ваше сообщение.Зачем?Каждое слово будет стоить вам, когда вы переведете свои ресурсы.
  • Сохранение даты / времени в UTC
...