gettext (gettext-commons) или придерживайтесь Java i18n - PullRequest
3 голосов
/ 17 сентября 2010

В настоящее время мы работаем с нашей платформой.База кода для платформы и продукта, построенного на этой платформе, огромна и имеет много жестко закодированных строк (кроме пользовательского интерфейса, где мы экстернализовали метки и т. Д.).

Мне нужны некоторые предложения по использованию gettext или Java i18n.У меня есть только ограниченное понимание преимуществ и понимания gettext.Что будет предоставлять gettext, кроме того, что уже предоставляется Java i18n?

Заранее спасибо.

1 Ответ

4 голосов
/ 17 сентября 2010

Для меня ведущая причина (из Руководства Gettext Commons ) будет:

I18n также поддерживает правильную обработку множественного числа:

System.out.println(i18n.trn("Copied file.", "Copied files.", 1));
// will print "Copied file."

System.out.println(i18n.trn("Copied file.", "Copied files.", 4));
// will print "Copied files."

Этот пример не самый лучший.Должно быть сказано «поддерживает правильную обработку множественного числа в целевых языках ».Это потому, что есть языки, которые могут иметь более одной формы множественного числа (на самом деле таких языков довольно много).

Кроме того, у вас будет запасной язык (я думаю, английский), интегрированный в вашхороший исходный код (я считаю, что лучше показывать текст на английском, чем название ключа).

Единственное, что у меня есть, но оно может быть недействительным: хотя Gettext Commons выпущены на условияхЛицензия Apache 2.0 требует наличия установленного в системе Gnu gettext и (поправьте меня, если я ошибаюсь) лицензию GPL (или лицензию L-GPL, если вы работаете в Linux).Если мои предположения верны, это будет означать, что если ваше приложение предназначено только для Linux, вам придется открыть его.

...