Java i18n:использовать один инструмент доступа ResourceBundle для каждого пакета или один для всего проекта?

StackOverflow https://stackoverflow.com/questions/2067336

Вопрос

Я ничего не знаю об интернационализации.

У меня есть проект с несколькими пакетами.Я использую встроенный в Eclipse мастер "Externalize Strings" для извлечения строковых констант из моих классов в файл свойств и замены этих строк вызовами статического средства доступа.Так что вместо

System.out.println("Hello, world!");

В итоге я получаю

System.out.println(Messages.getString("MyKey"));

и a Messages служебный класс в каждом пакете (который обеспечивает статический getString метод для получения желаемой строки из ResourceBundle [в данном случае .properties файл]).Лучше ли иметь Messages класс в каждом пакете, или иметь один Messages класс для всего проекта?

Это было полезно?

Решение

Я за файл глобальной локализации.У вас будут дублирующиеся ключи ("OK", "Cancel"), которые потребовали бы дублирования или вложения, а взаимодействие с внешними специалистами по локализации упростится, если ресурсы будут объединены.

Другие советы

Я бы оставил по одному на упаковку.Таким образом, обслуживание / рефакторинг / модульное тестирование намного упрощаются.

Кроме того, нет глобальных зависимостей от одного файла.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top