Фреймворк Swing для мультиязычного приложения
Можно ли использовать каркас приложения Swing для реализации многоязычных приложений Swing? Если так, как это должно быть сделано? Должен ли я использовать несколько файлов.properties, по одному для каждого языка? Как я могу сообщить системе, какой файл свойств использовать? Кто-нибудь знает хороший учебник для этого?
4 ответа
Вы можете поместить следующее в свой базовый класс панели (или где-нибудь еще и подключить его):
public ResourceMap getResourceMap() {
if (resourceMap == null) {
ApplicationContext context = getContext();
if (context != null) {
resourceMap = context.getResourceMap(getResourceStartClass(),
getResourceStopClass());
}
}
return resourceMap;
}
public ApplicationContext getContext() {
if (applicationContext == null) {
Application app = getApplication();
if (app != null) {
applicationContext = app.getContext();
}
}
return applicationContext;
}
public Application getApplication() {
if (application == null) {
application = Application.getInstance();
}
return application;
}
Взгляните на класс ResourceBundle и этот учебник.
NB: этот класс не привязан к Swing, его можно использовать в консольных или веб-приложениях)
Оригинальный проект сейчас мертв, но вы можете использовать его в качестве форка. Наиболее активным является BSAF.
Краткий ответ: да, может, и да, вы должны.
Вот небольшая легкая в использовании реклама: http://chaoticjava.com/posts/the-quiet-revolution-part-i-jsr-296/
Тем не менее, предупреждаю: по данным сайта JSR http://jcp.org/en/jsr/detail?id=296 В настоящее время он неактивен.