Onde colocar as cadeias de teclas i18n em Java
Ao fazer a internacionalização em Java, você atribui uma chave de cadeia a cada mensagem. Qual é a melhor prática, sobre onde colocar essas chaves de seqüência de caracteres. O objetivo é permitir uma refatoração fácil (por exemplo, alterações no nome da chave), código limpo e legível, separação de preocupações, mas ainda não duplicação de chaves / mensagens, mesmo que sejam chamadas de diferentes partes do códig
//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);
}
Algumas outras propostas? Qual é melhor? Estou no IDE Eclipse, se isso tornar a parte da refatoração mais clar
Clarificação: nos exemplos acima, "mensagens" é do tipo ResourceBundl