4.1.2.5.3 Custom Localization

Vlastní jazykové nastavení umožňuje uživateli použít v aplikaci uživatelsky modifikované texty, které nejsou součástí aplikačního balíčku. K jazykovému nastavení slouží stringy ve formátu JSON.

Texty pro uživatelské překlady jsou volitelně uloženy v souboru translationMap.json v externím úložišti (fyzická nebo emulovaná SD karta), který odpovídá cestě: 

/sdcard/hipmo-localization/translationMap.json.

Složka hipmo-localization je automaticky vytvořena na první dostupné SD kartě po spuštění aplikace. Pokud je v zařízení více SD karet nebo s nimi uživatel manipuluje a netuší, kterou použít, může si po spuštění aplikace ověřit, na které SD kartě byla složka vytvořena.

Název souboru musí být ve formátu "translationMap.json", tedy bez případných dalších (jazykových) přípon nebo vsuvek. Např. translationMap-cs.json je špatně.

Struktura souboru textů

JSON s uživatelskými překlady textů obsahuje kořenový element data, který je polem jednotlivých elementů s překladem:

{"data":[

translation,

translation,

    ...

translation

]}

Každý element translation má strukturu:

{"key":{"hint":"hint_string","value":"translated_string"}}

kde

  • key – klíč textového řetězce (nahrazuje name v strings.xml)
  • hint_string – význam textu 
  • translated_string – jeho uživatelský překlad

Příklad:

{"title_call_declined":{"hint":"Call declined","value":"Hovor odmítnut"}}

Doporučujeme měnit (editovat) pouze translated_string, hint_string může být pozměněn v případě, pokud to shledáte účelné. 

Varování

Nedoporučujeme měnit klíč textového řetězce KEY, vystavujete se riziku nepředvídatelného chování aplikace.

Aplikace zjistí, zda v asset existuje soubor odpovídající aktuálnímu nastavení Locale v zařízení. Pokud ano, doplní v něm obsažené klíče do mapy. Při shodě klíčů se staré hodnoty nahradí novými.

Aplikace ověří stav přepínače Custom Localization v nastavení. Pokud je funkce zapnuta a zároveň existuje v zařízení příslušný soubor s uživatelskými překlady, doplní v něm obsažené klíče do mapy obdobně, jako je uvedeno výše.

Upozornění

Nepřeložené stringy se zobrazují do anglického jazyka.