ИМХО Лучшее место для определения этих ключей и связанных с ними строк - это файлы NLS.n И вы должны сохранить их в файлах ResourceBundle.

нтернационализации в Java вы назначаете строковый ключ каждому сообщению. Как лучше всего размещать эти строковые ключи? Цель состоит в том, чтобы обеспечить простой рефакторинг (например, изменение имени ключа), чистый и читаемый код, разделение проблем, но при этом не дублировать ключи / сообщения, даже если они вызваны из разных частей кода.

//bad way, strings directly in code
messages.getString("hello_key");

-

// better way, use String constants
public static final String HELLO_KEY = "hello_key";
...
messages.getString(HELLO_KEY);

-

// other (better?) way, put all keys in one huge central class
public class AllMessageKeys {
  public static final String HELLO_KEY = "hello_key";
  ...
}

public class Foo {
  ...
  messages.getString(AllMessageKeys.HELLO_KEY);
}

-

// other (better?) way, put all keys in neighbor class
public class FooMessageKeys {
  public static final String HELLO_KEY = "hello_key";
}

public class Foo {
  ...
  messages.getString(FooMessageKeys.HELLO_KEY);
}

Есть еще предложения? Какой лучше? Я нахожусь в Eclipse IDE, если это делает детали рефакторинга более понятными.

Пояснение: в приведенных выше примерах «сообщения» имеют тип ResourceBundle.

Ответы на вопрос(7)

Ваш ответ на вопрос