When doing internationalization in Java, you assign a string key to each message. What\'s the best practice, on where to place those string keys. Goal is to allow easy refactori
String constants are the way to go. Where you define them, it really depends on your code structure and usage of keys. For example:
From refactoring point of view it's a bit more complicated (requires more changes) to move the constants from one class to another than to rename them or to change their value.
When changing their value you have no way of automatically change the defined resource.