Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用接口更改java应用程序的语言?_Java_Interface_Localization - Fatal编程技术网

如何使用接口更改java应用程序的语言?

如何使用接口更改java应用程序的语言?,java,interface,localization,Java,Interface,Localization,目前,我正在为应用程序中所需的所有字符串使用一个接口。我从应用程序中的任何位置访问接口(称为StringConstants)。该接口以荷兰语设置所有字符串,但我还想添加一个语言切换选项(英语)。更改我正在使用的界面的诀窍是什么,还是应该为我想使用的每种语言创建一个界面 以下是我当前使用的接口代码: package constants; public interface StringConstants { //LabyrintUI// public String APP_TITL

目前,我正在为应用程序中所需的所有字符串使用一个接口。我从应用程序中的任何位置访问接口(称为StringConstants)。该接口以荷兰语设置所有字符串,但我还想添加一个语言切换选项(英语)。更改我正在使用的界面的诀窍是什么,还是应该为我想使用的每种语言创建一个界面

以下是我当前使用的接口代码:

package constants;

public interface StringConstants {
    //LabyrintUI//
    public String APP_TITLE = "Labyrint";
    public String APP_VERSION = "Versie 1.0";
    public String MENU_TITLE = "Labyrint - Menu";
    public String MOEILIJKHEID1 = "Gemakkelijk";
    public String MOEILIJKHEID2 = "Normaal";
    public String MOEILIJKHEID3 = "Moeilijk";
    public String BTN_SPEEL_TITLE = "Speel";
    public String BTN_OPTIES_TITLE = "Opties";
    public String BTN_STOP_TITLE = "Stop";
    public String BTN_RESET_SCORES_TITLE = "Verwijder de highscores";
    public String BTN_SPELREGELS_TITLE = "Spelregels";
    public String BTN_OVER_TITLE = "Over";
    public String BTN_DEFAULT_SETTINGS_TERUG_ZETTEN_TITLE = "Standaardinstellingen terugzetten";
    public String BTN_OPSLAAN_TITLE = "Opslaan";
    public String LBL_MOEILIJKHEIDSGRAAD_TITLE = "Moeilijkheidsgraad";
    public String LBL_GELUID_TITLE = "Geluid";
    public String LBL_SCORES_TITLE = "Highscores";
    public String LBL_LAST_SCORE_TITLE = "Laatste score";
    public String MI_NIEUWSPEL_TITLE = "Nieuw spel";
    public String MI_NIEUWSPEL_TOOLTIP_TEXT = "Nieuw spel starten";
    public String MI_SPEEL_OF_PAUZE_TITLE_PAUSE = "Pauzeer";
    public String MI_SPEEL_OF_PAUZE_TOOLTIP_TEXT_PAUSE = "Pauzeer het huidig spel";
    public String MI_SPEEL_OF_PAUZE_TITLE_PLAY = "Speel";
    public String MI_SPEEL_OF_PAUZE_TOOLTIP_TEXT_PLAY = "Hervat het huidig spel";
    public String MI_STOPSPEL_TITLE = "Stop";
    public String MI_STOPSPEL_TOOLTIP_TEXT = "Stop het huidig spel";
    public String MI_GELUID_TITLE_OFF = "Geluid uit";
    public String MI_GELUID_TOOLTIP_TEXT_OFF = "Zet geluid uit";
    public String MI_GELUID_TITLE_ON = "Geluid aan";
    public String MI_GELUID_TOOLTIP_TEXT_ON = "Zet geluid aan";

    //BORD//
    public String VAK_BEGIN_VALUE = "BEGIN";
    public String VAK_LEEG_VALUE = "LEEG";
    public String VAK_MUUR_VALUE = "MUUR";
    public String VAK_LAVA_VALUE = "LAVA";
    public String VAK_DOORGANG_VALUE = "DOORGANG";
    public String VAK_EINDE_VALUE = "EINDE";

    //LINKERPANEEL//
    public String HIGHSCORE_NOT_FOUND_TEXT = "Nog geen highscore gevonden...";

    //DIALOGS//
    public String ABOUT_DIALOG_CONTENT = APP_TITLE + " is een app gemaakt door Vincent Devaux en Thibault Helsmoortel.";
    public String NIEUW_SPEL_DIALOG_TITLE = APP_TITLE + " - Nieuw spel";
    public String NIEUW_SPEL_DIALOG_CONTENT = "Weet u zeker dat u uw huidig spel wilt stoppen om een nieuw spel te beginnen?";
    public String STOP_SPEL_DIALOG_TITLE = APP_TITLE + " - Spel stoppen";
    public String STOP_DPEL_DIALOG_CONTENT = "Weet u zeker dat u uw huidig spel wilt stoppen?";
    public String SLUIT_APP_DIALOG_TITLE = APP_TITLE + " - Labyrint sluiten";
    public String SLUIT_APP_DIALOG_CONTENT = "Weet u zeker dat u het spel wilt verlaten?";
    public String SPELREGELS_DIALOG_TITLE = APP_TITLE + " - Spelregels";
    public String SPELREGELS_DIALOG_CONTENT = "Spelregels:" + "\n";
    public String SPELREGELS = "Doel van het spel: geraak met je speler zo snel mogelijk aan het einde." +
            "\n-Gebruik de doorgangen om je sneller door het labyrint te verplaatsen." +
            "\n-Zorg ervoor dat het spook je niet vangt." +
            "\n-Daag een vriend uit en verbeter zijn tijd.";
    public String BTN_JA_TITLE = "Ja";
    public String BTN_ANNULEREN_TITLE = "Annuleren";
    public String BTN_OK_TITLE = "Ok";
    public String VRAAG_SPELERNAAM_TITLE = APP_TITLE + " - Naam invoeren";
    public String VRAAG_SPELERNAAM_TIJD = "Je eindigde in ";
    public String VRAAG_SPELERNAAM_NAAM = "\nVul je naam in:";
    public String FOUTMELDING_LEZEN_SCORES = "Er is een fout opgetreden bij het lezen van de scores. ";
    public String FOUTMELDING_SCHRIJVEN_SCORES = "Er is een fout opgetreden bij het schrijven van de scores. ";
    public String GAME_OVER_DIALOG = "Game over!";
    public String SCORES_VERWIJDEREN_DIALOG_TITLE = APP_TITLE + " - Scores verwijderen";
    public String SCORES_VERWIJDEREN_DIALOG_CONTENT = "Weet je zeker dat je alle scores wilt verwijderen?\nAlle scores zullen verwijdert worden!";

    //PROPERTIES//
    public String INITIAL_USER_NAME = System.getProperty("user.name");
    public String FILE_SEPARATOR = System.getProperty("file.separator");
    public String LINE_SEPARATOR = System.getProperty("line.separator");
    public String KEYBOARD_FORMAT = System.getProperty("user.country.format");
    public String CUSTOM_PROPS_HEADLINE = "Customsettings";
    public String PROP_MOEILIJKHEIDSGRAAD = "moeilijkheidsgraad";
    public String PROP_GELUID = "geluid";
    public String SCORES_MAKKELIJK_HEADLINE = "Scores Makkelijk";
    public String SCORES_NORMAAL_HEADLINE = "Scores Normaal";
    public String SCORES_MOEILIJK_HEADLINE = "Scores Moeilijk";

    //ANDERE//
    public String FILE_DEFAULT_SETTINGS_PATH = "src" + FILE_SEPARATOR + "bestanden" + FILE_SEPARATOR + "settings" + FILE_SEPARATOR + "default.ini";
    public String FILE_CUSTOM_SETTINGS_PATH = "src" + FILE_SEPARATOR + "bestanden" + FILE_SEPARATOR + "settings" + FILE_SEPARATOR + "custom.ini";
}

为每种语言使用和*.properties文件。

请检查下面的帖子,这可能对您有用

但使用i18n的更好方法是将属性文件与ResourceBoundle类一起使用

谢谢
Satya

使用ResourceBundle。您正在使用contant接口反模式。这些字段是公共静态最终字符串,即常量。它们不能被推翻。关于Java中的几乎所有内容,有一个关于国际化的教程:嗯,如果你使用ResourceBundle,如果我做对了,你也需要一个区域设置。荷兰语没有标准的语言环境,这是一个问题吗?不,不是。只要使用
newlocale(“nl”)
这似乎是非常硬编码的,我正在寻找一个平滑的解决方案。无论如何谢谢你!我对此做了很多研究,但没错,ResourceBundle正是我所需要的!