Próbuję zrobić stronę w różnych językach z xml/xsl. Chcę mieć tylko jeden xml i jeden xsl. Na mojej stronie Url mam parametr pLanguage, który myślę, że mogę użyć, aby sprawdzić, czy wybrałem język angielski lub holenderski.Jak zrobić I18N z xsl i xml
Próbowałem z tego kodu, ale nie wiem, jak mogę umieścić go razem:
Najpierw robię zmiennych wszystkich słów, kto ma zostały przetłumaczone tak:
<xsl:variable name="lang.pageTitle" select="'This is the title in English'"/>
Aby dostać pageTitle w szablonie I teraz można używać
<xsl:value-of select="$lang.pageTitle"/>
Myślałem zastąpić pierwszą linię kodu powyżej za pomocą if-else, aby sprawdzić, czy mój język WYBRANEGO jest EN lub NL jak jes s:
<xsl:choose>
<xsl:when test="$choosenLanguage = ‘NL’">
<xsl:variable name="lang.pageTitle" select="Titel in het nederlands'"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="lang.pageTitle" select="'This is the title in English'"/>
</xsl:otherwise>
</xsl:choose>
Ale pojawia się błąd: java.lang.IllegalArgumentException: nie można analizować numer argumentu $ lang.opdracht
Dlaczego nie używać atrybutu 'xml: lang' i funkcji' lang ($ pLang) '? – DanMan
@DanMan, tak, jest to całkowicie możliwe. Nie jestem pewien, czy to podejście może być nadal stosowane, jeśli mamy różne ciągi w tym samym języku, ale z innym nastawieniem - np. tekst dla użytkownika końcowego i dla użytkownika pośredniego. Jeśli nie można tego zrobić używając tylko 'xml: lang' i funkcji' lang() ', technika w tej odpowiedzi będzie nadal obowiązywać. –