Hlavní menu
Nástroje |
WebFav.I18n HistoryHide minor edits - Show changes to output 22 February 2007, 17:39
by
- Changed lines 41-48 from:
Když jen upravíte jazykové hlášky a nezměníte klíče, tak se bez restartu budou zobrazovat staré jazykové hlášky. to:
Když jen upravíte jazykové hlášky a nezměníte klíče, tak se bez restartu budou zobrazovat staré jazykové hlášky. !!Pozor! Nebezpečí! Ve verzi 6.2.2 sem narazil na napříjemné chování. Když zadáte escape sekvenci zanku v UTF-8 a místo [@\uXXXX@] zadáte třeba [@\uXXX@], tak se vám už po restartu servru nepodaří přihlásit se a dostat se do systému. V adresáři [@WEB-INF/classes/@] si ale můžete najít posledně upravovaný [@properties@] soubor přeložený do [@class@] a tam ho smazat. Se štěstím se to povede. Bohužel se může stát, že dojde k revertu databáze podle poslední exportované verze. Další možnost je dostat se do [=OpenCMS=] přez plugin do [[ Eclipse -> WebFav.Eclipse-u ]] [[ LaughingPanda -> WebFav.OpenCMSVFSInEclipse ]] a tam dohledat chybu a opravit ji, nebo se nabourat přímo do databáze (to ale budete muset být už opravdu zoufalí). 17 December 2006, 13:08
by
- Changed lines 2-3 from:
Vytvoříme si nový [[modul -> WebFav.Modul]]. Necháme si vygenerovat základní adresáře pro práci. Pracovat budeme v adresáři [@pages@]. Naše I18N [@*.properties@] soubory budou uložené v adresáři [@classes/{jmeno-modulu}/@]. Kde [@jmeno-modulu@] je adresářová struktúra odpovídající balíkům javovovských tříd podle zadaného názvu modulu např: [@cz.zcu.fav.kiv@]. to:
Vytvoříme si nový [[modul -> WebFav.Modul]]. Necháme si vygenerovat základní adresáře pro práci. Pracovat budeme v adresáři [@pages@]. Naše I18N [@*.properties@] soubory budou uložené v adresáři [@classes/{jmeno-modulu}/@]. Kde [@jmeno-modulu@] je adresářová struktúra odpovídající balíkům javovských tříd podle zadaného názvu modulu např: [@cz.zcu.fav.kiv@]. 17 December 2006, 13:06
by
- Changed lines 2-3 from:
Vytvoříme si nový [[modul -> WebFav.Modul]]. Necháme si vygenerovat základní adresáře pro práce. Pracovat budeme v adresáři [@pages@]. Naše I18N [@*.properties@] soubory budou uložené v adresáři [@classes/{jmeno-modulu}/@]. Kde [@jmeno-modulu@] je adresářová struktúra odpovídající balíkům javovovských tříd podle zadaného názvu modulu např: [@cz.zcu.fav.kiv@]. to:
Vytvoříme si nový [[modul -> WebFav.Modul]]. Necháme si vygenerovat základní adresáře pro práci. Pracovat budeme v adresáři [@pages@]. Naše I18N [@*.properties@] soubory budou uložené v adresáři [@classes/{jmeno-modulu}/@]. Kde [@jmeno-modulu@] je adresářová struktúra odpovídající balíkům javovovských tříd podle zadaného názvu modulu např: [@cz.zcu.fav.kiv@]. 13 December 2006, 18:58
by
- Changed lines 39-40 from:
Po každé úpravě [@*.properties@] souborů je NUTNÉ restartovat server. Jinak se [@*.properties@] nepřeloží a zobrazí se 500, protože server vyhodil výjimku, že nezná nové klíče. to:
Po každé úpravě [@*.properties@] souborů je NUTNÉ restartovat server. Jinak classloader nezná [@*.properties@] a zobrazí se 500, protože server vyhodil výjimku, že nezná nové klíče. 13 December 2006, 03:11
by
- Changed lines 27-35 from:
*TODO* to:
Scriplet dáva více volnosti v tom jak zvolit zdroje. Je možné se napojit najednou na několik zdrojů a podobně. K tomu samému slouží i [@taglib@] JSTL. Následující funguje v JSP bez problémů, bohužel OpenCMS si s tím neumělo poradit a tak je to jenom přání, aby to fungovalo. V obou následujích případech předpokladám, že už máme získaný řetězec [@locale@]. #Použijeme [@taglib fmt@] a to: [@<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>@]. Přidáme do kontextu náš řetězec [@locale@]: [@pageContext.setAttribute("locale", locale);@] a můžeme definovat lokalizaci: [@<fmt:setLocale value="${locale}" />@]. Teď už jenom definujeme zdroj [@<fmt:setBundle basename="cz.zcu.fav.kiv.TestBundle" />@] a voláme naše lokalizované texty: [@<fmt:message key="test.value01" />@] #Použijeme jinou verzi [@fmt@], která umožní použití direktív v definici [@locale@] a to [@<%@ taglib prefix="fmt_rt" uri="http://java.sun.com/jstl/fmt_rt" %>@]. Teď už můžeme použít: [@<fmt_rt:setLocale value="<%=locale%>" />@]. Vše ostatní je stejné jako v předchozím bode. Kdybychom chtěli definovat více [@basename@] tak můžeme použít ještě atribut [@var@]: [@<fmt:setBundle basename="cz.zcu.fav.kiv.TestBundle" var="test" />@] a pak když hledáme hlášku, tak přídáme atribut: [@<fmt:message key="test.value01" bundle="${test}"/>@]. 13 December 2006, 02:26
by
- Changed line 19 from:
*TODO* to:
Changed line 27 from:
to:
*TODO* 13 December 2006, 02:24
by
- Added lines 1-33:
! Příklady I18N Vytvoříme si nový [[modul -> WebFav.Modul]]. Necháme si vygenerovat základní adresáře pro práce. Pracovat budeme v adresáři [@pages@]. Naše I18N [@*.properties@] soubory budou uložené v adresáři [@classes/{jmeno-modulu}/@]. Kde [@jmeno-modulu@] je adresářová struktúra odpovídající balíkům javovovských tříd podle zadaného názvu modulu např: [@cz.zcu.fav.kiv@]. Dál se samožrejmě můžeme zanořovat a vytvářet pod-adresáře podle libosti a podle toho rozlišit co k čemu náleží. #V [@classes/{jmeno-modulu}/@] vytvoříme **[@TestBundle.properties@] - defaultní jazyková mutace. Když není specifiková jazyková mutace, nebo hláška není nalezena v některé konkrétní jazykové mutace, nebo požadovaná jazyková mutace neexistuje, tak se použije tato jazyková verze. **[@TestBundle_de.properties@] - německá jazyková mutace **[@TestBundle_en.properties@] - anglická jazyková mutace #V každém z vytvořených souborů si vytvoříme následující řádky **[@test.value01=***@], [=***=] je text v dané jazykové mutaci (ahoj, Hallo, hello) **[@test.value02=***@], [=***=] je text v dané jazykové mutaci (soused, Nachbar, neighbour) Máme připravené lokalizované texte, které budeme zobrazovat podle lokalizace uživatelského prohlížeče. V adresáři [@pages@] vytvoříme [@.jsp@] soubor. Máme několik možností jak zobrazit lokalizované texty: #Scriplet #JSTL *TODO* !!!Scriplet #Definujeme se nějakým způsobem lokalizaci, např.: [@Locale locale = Locale.ENGLISH;@] nebo [@Locale locale = new Locale("cs");@] nebo jiným způsobem, který nám vyhovuje. #Nalezneme zdroj: [@ String bundle = jmeno-modulu + ".TestBundle";@] #Spojíme se se zdrojem jazykových hlášek: [@ResourceBundle testBundle = PropertyResourceBundle.getBundle( bundle, locale );@] #Upravíme import: [@<% page import="java.util.ResourceBundle, java.util.PropertyResourceBundle" %>@] #Dál už voláme jazykové hlášky podle klíčů: [@<%= testBundle.getString("test.value01") %>@] !!!JSTL !!Chyby Když zadáte špatně zdroj, tak se místo lokalizovaného textu zobrazí text: [@???test.value01???@]. Když však zadáte špatně klíč, tak server reaguje trošku radikálněji a to chybovou hláškou a chybou 500. !!Důležité Po každé úpravě [@*.properties@] souborů je NUTNÉ restartovat server. Jinak se [@*.properties@] nepřeloží a zobrazí se 500, protože server vyhodil výjimku, že nezná nové klíče. Když jen upravíte jazykové hlášky a nezměníte klíče, tak se bez restartu budou zobrazovat staré jazykové hlášky. |