Avatar
Matěj Kripner
Redaktor
Avatar
Matěj Kripner:

Zdravím,
chtěl bych do své aplikace zabudovat podporu více jazyků. Jednalo by se pouze o text. Teoreticky vím jak na to - nějak bych měl uložené všechny hlášky v různých jazycích a podle toho, jak si uživatel navolí bych je zobrazoval. Chci se ale zeptat, jestli někdo s tímto tématem už máte nějaké zkušenosti a pokud ano, na co bych si měl dávat pozor a jak to celkově udělat, abych z toho po pár týdnech vývoje nebyl vyřízenej. Budu rád za každou rozumnou radu.

Odpovědět 29.11.2014 10:23
"We reject kings, presidents and voting. We believe in rough consensus and running code" David Clark
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na Matěj Kripner
Silvinios:

To o čem píšeš, se anglicky nazývá internationali­zation, 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.pro­perties (čeština):

yes = Ano

Soubor messages_en.pro­perties (angličtina):

yes = Yes

Soubor messages_de.pro­perties (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ý.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 29.11.2014 11:40
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.