Ik ben een methode aan het bedenken om m'n applicatie mbv xml/xsl verschillende talen te laten ondersteunen.
Nu heb ik hier al een werkende methode gevonden, maar dat is nog niet helemaal wat ik wil; Ik wil namelijk ook de mogelijkheid hebben om waardes van attributen evt te kunnen vertalen.
Nu heb ik de volgende methode bedacht en vraag me af of dat een correcte methode is en/of iemand anders hier een betere implementatie voor heeft bedacht.
Voorbeeldje, ik heb de volgende xml-code:
daar gooi ik m'n translate.xsl stylesheet overheen (die als parameter een language meekrijgt, bijv 'en-us') die het
gebruikmakend van een dictionary.xml:
omzet naar de volgende code:
waarna ik deze xml code mbv een xsl-stylesheet kan omzetten naar de desgewenste output.
Wat het dus in dit geval doet: Zoek elke tag met de 'translate' namespace, vervang de waarde ervan met de overeenkomende waarde in het dictionary.xml bestand in de meegegeven taal en haal de namespace ervan weg. doe hetzelfde met attributen met de 'translate' namespace.
Comments plz
Nu heb ik hier al een werkende methode gevonden, maar dat is nog niet helemaal wat ik wil; Ik wil namelijk ook de mogelijkheid hebben om waardes van attributen evt te kunnen vertalen.
Nu heb ik de volgende methode bedacht en vraag me af of dat een correcte methode is en/of iemand anders hier een betere implementatie voor heeft bedacht.
Voorbeeldje, ik heb de volgende xml-code:
code:
1
2
3
4
5
6
| <form> <translate:header>formHeader</translate:header> <field type="input" name="username" translate:label="usernamefieldlabel"/> <field type="secret" name="password" translate:label="passwordfieldlabel"/> <button type="submit" name="submit" translate:label="submitbuttonlabel"/> </form> |
daar gooi ik m'n translate.xsl stylesheet overheen (die als parameter een language meekrijgt, bijv 'en-us') die het
gebruikmakend van een dictionary.xml:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| <labels>
<label name="formHeader">
<translation xml:lang="en-us">Login</translation>
<translation xml:lang="de">Anmelden</translation>
<translation xml:lang="nl">Inloggen</translation>
</label>
<label name="usernamefieldlabel">
<translation xml:lang="en-us">Username</translation>
<translation xml:lang="de">Benutzername</translation>
<translation xml:lang="nl">Gebruikersnaam</translation>
</label>
<label name="passwordfieldlabel">
<translation xml:lang="en-us">Password</translation>
<translation xml:lang="de">Passwort</translation>
<translation xml:lang="nl">Wachtwoord</translation>
</label>
<label name="submitbuttonlabel">
<translation xml:lang="en-us">Login</translation>
<translation xml:lang="de">Anmelden</translation>
<translation xml:lang="nl">Inloggen</translation>
</label>
</labels> |
omzet naar de volgende code:
code:
1
2
3
4
5
6
| <form> <header>Login</translate:header> <field type="input" name="username" label="Username"/> <field type="secret" name="password" label="Password"/> <button type="submit" name="submit" label="Submit"/> </form> |
waarna ik deze xml code mbv een xsl-stylesheet kan omzetten naar de desgewenste output.
Wat het dus in dit geval doet: Zoek elke tag met de 'translate' namespace, vervang de waarde ervan met de overeenkomende waarde in het dictionary.xml bestand in de meegegeven taal en haal de namespace ervan weg. doe hetzelfde met attributen met de 'translate' namespace.
Comments plz