<\/HEAD>
Jak jsem ve svém posledním příspěvku představil způsob, jak vytvořit vlastní widget<\/A> pro Web Appbuilder, rád bych vysvětlil možnosti vícejazyčné podpory ve vašem widgetu.<\/P>
NLS<\/H4>Řetězce pro naše poslední widgety jsou momentálně více či méně pevně zakódovány v souborech Setting.html a Widget.html. Pokud chcete tyto řetězce nahradit jazykem nastaveným v prohlížeči nebo portálu, musíte označit řetězce a vytvořit knihovnu řetězců. To se provádí pro Setting.html i Widget.html na různých místech uvnitř struktury widgetu.<\/P>Setting.html<\/H4>Složka setting obsahuje složku nazvanou nls. Uvnitř vytvoříte složku pro každý jazyk, který chcete podporovat, a počáteční soubor strings.js s řetězci, které by měly být ve výchozím nastavení použity v nastavení widgetu. Soubor strings.js se skládá ze skutečných výchozích řetězců a indikátoru, zda je podporován jediný jazyk (v našem příkladu podporujeme pouze "de"):<\/P><SPAN class="token function">define<\/SPAN><SPAN class="punctuation token">(<\/SPAN><SPAN class="punctuation token">{<\/SPAN>
root<SPAN class="punctuation token">:<\/SPAN> <SPAN class="punctuation token">(<\/SPAN><SPAN class="punctuation token">{<\/SPAN>
ZoomSetCheckboxText<SPAN class="punctuation token">:<\/SPAN> <SPAN class="string token">"Zobrazit úroveň přiblížení"<\/SPAN><SPAN class="punctuation token">,<\/SPAN>
ScaleSetCheckboxText<SPAN class="punctuation token">:<\/SPAN> <SPAN class="string token">"Zobrazit měřítko"<\/SPAN><SPAN class="punctuation token">,<\/SPAN>
configText<SPAN class="punctuation token">:<\/SPAN> <SPAN class="string token">"Nastavit konfiguraci:"<\/SPAN>
<SPAN class="punctuation token">}<\/SPAN><SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">,<\/SPAN>
<SPAN class="string token">"de"<\/SPAN><SPAN class="punctuation token">:<\/SPAN> <SPAN class="number token">1<\/SPAN><SPAN class="punctuation token">,<\/SPAN>
<SPAN class="string token">"es"<\/SPAN><SPAN class="punctuation token">:<\/SPAN> <SPAN class="number token">0<\/SPAN>
<SPAN class="punctuation token">}<\/SPAN><SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">;<\/SPAN><SPAN class="line-numbers-rows"><SPAN><\/SPAN><SPAN><\/SPAN><SPAN><\/SPAN><SPAN><\/SPAN><SPAN><\/SPAN><SPAN><\/SPAN><SPAN><\/SPAN><SPAN><\/SPAN><SPAN><\/SPAN><\/span><\/CODE><\/PRE><P>Mohli jste si všimnout, že používáme proměnnou nazvanou "ZoomSetCheckboxText" a "ScaleSetCheckboxText" a definujeme obsah proměnné pomocí základních řetězců. Tyto řetězce by měly být použity všude tam, kde jsou proměnné použity. Umisťujeme proměnné do souboru Setting.html. Nyní to vypadá trochu jinak, protože nomenklatura vypadá trochu zvláštně:<\/P><PRE class="lia-code-sample line-numbers language-none"><CODE> <SPAN class="token tag"><span class="token tag"><span class="punctuation token"><<\/>span></span></span>
<span class="token tag"><span class="token tag"><span class="punctuation token"><div</span></span> <span class="attr-name token">class</span>=<span class="attr-value token">"title"</span></span>${nls.configText}<span class="token tag"><span class="token tag"><span class="punctuation token"></div></span></span></span>
<span class="token tag"><span class="token tag"><span class="punctuation token"><div</span></span> <span class="attr-name token">class</span>=<span class="attr-value token">"row"</span></span>
<span class="token tag"><span class="token tag"><span class="punctuation token"><input</span></span> <span class="attr-name token">type</span>=<span class="attr-value token">"checkbox"</span> <span class="attr-name token">id</span>=<span class="attr-value token">"ZoomSetCheckbox"</span> <span class="attr-name token">data-dojo-attach-point</span>=<span class="attr-value token">"ZoomSetCheckbox"</span></span>><\input>
<p style=\"display:inline\">${nls.ZoomSetCheckboxText}<\p>
<\div>
<div class=\"row\">
<input type=\"checkbox\" id=\"ScaleSetCheckbox\" data-dojo-attach-point=\"ScaleSetCheckbox\"></input>
<p style=\"display:inline\">${nls.ScaleSetCheckboxText}<\p>
</div>
</div>${'<EMOJI_10>'}<SPAn>${'<EMOJI_11>'}${'<EMOJI_12>'}${'<EMOJI_13>'}${'<EMOJI_14>'}${'<EMOJI_15>'}${'<EMOJI_16>'}${'<EMOJI_17>'}${'<EMOJI_18>'}${'<EMOJI_19>'}${'<EMOJI_20>'}${'<EMOJI_21>'}</SPAn>Všechny řetězce jsou definovány pomocí schématu "${nls.xyz}". To umožňuje použití řetězců a automatický překlad podle vaší definice v souboru strings.js.
Samozřejmě také potřebujeme definovat překlad do němčiny ve vašem případě. To se provádí uvnitř podsložky "de" ve složce nls. Tam umístíme druhý soubor strings.js, který obsahuje německé řetězce:<\/P><SPAn function=\"define\"><SPAn punctuation=\"(\"><SPAn punctuation=\"{\">
"ZoomSetCheckboxText": "Zeige Zoomlevel",
"ScaleSetCheckboxText": "Zeige Maßstab",
"configText": "Einstellung"
class="punctuation token">,</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>Všimněte si odlišného použití indikátorů řetězců ve srovnání s výchozím souborem strings.js v nadřazené složce.Widget.html
Widget samotný funguje podobně. Uvnitř složky Widget vytvoříte složku nls s podsložkami týkajícími se požadovaných jazyků, které chcete podporovat. Seznam podporovaných jazyků lze vidět zde:

Opět nahrazujeme řetězce použité v původním souboru schématem "${nls.xyz}":
<div class="ZoomLeveLInfo">