Diskuze: Podpora více jazyků
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 2 zpráv z 2.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
To o čem píšeš, se anglicky nazývá internationalization, zkráceně i18n. Pokud ovládáš angličtinu, můžeš pro inspiraci zkusit zadat toto slovo do Google a podívat se na nějaké tutoriály.
V Javě existuje třída ResourceBundle, která umožňuje načítat texty pro daný jazyk z textových souborů na classpath. Každý textový řetězec má svůj unikátní kód. V programu se pak pracuje s těmito kódy místo konkrétních textů v daném jazyce.
Příklad
Soubor messages_cs.properties (čeština):
yes = Ano
Soubor messages_en.properties (angličtina):
yes = Yes
Soubor messages_de.properties (němčina):
yes = Ja
Příklad použití:
ResourceBundle bundle = ResourceBundle.getBundle("messages", locale);
String text = bundle.getString("yes");
JButton button = new JButton(text);
Některé frameworky (např. Spring) mají své vlastní implementace resource bundle, ale základ bývá stejný.
Zobrazeno 2 zpráv z 2.