Фреймворк 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 В настоящее время он неактивен.

Другие вопросы по тегам