Je ne peux vraiment pas recommander d'avoir différents fichiers HTML. Les bonnes pratiques de localisation recommandent de séparer les traductions du code.
La méthode la plus rapide, la plus simple et la moins obstructive que je connaisse est d'utiliser Google ARB. Considérez d'avoir le code HTML d'exemple suivant :
Testing ARB...
Ceci est un test.
Il est maintenant nécessaire d'extraire le contenu localisable. Il est possible de le faire soit en utilisant l'outil d'extraction que ARB fournit extractor tool, soit si vos pages sont très simples, vous pouvez même le faire manuellement :
Testing ARB...
Ceci est un test.
Ensuite, créons le fichier de ressources pour ces messages et fournir également la traduction :
arb.register(
"test",
{
"MSG_HTML_TITLE": "Testing ARB",
"MSG_BODY_TEST": "Ceci est un test.",
"MSG_CURR_LOCALE": "...et la langue sélectionnée est \"{currentLocale}\".",
"@MSG_CURR_LOCALE": {
"placeholders": {
"0": {
"description": "Cette variable afficherait la locale actuelle.",
"example": "fr"
}
}
}
}
);
arb.register(
"test:de",
{
"MSG_HTML_TITLE": "ARB auf Probe",
"MSG_BODY_TEST": "C'est un test.",
"MSG_CURR_LOCALE": "...und die ausgewählte Sprache ist \"{currentLocale}\".",
"@MSG_CURR_LOCALE": {
"placeholders": {
"0": {
"description": "Cette variable afficherait la locale actuelle.",
"example": "fr"
}
}
}
}
);
Enfin, ajoutez le code JavaScript à l'HTML. Fournissez également un moyen simple d'obtenir la locale sélectionnée à partir de l'URL; c'est-à-dire ./index.html?locale=de
Testing ARB...
Ceci est un test.
function main(){
var locale = arb.getParamFromUrl('locale');
if (!locale){
locale = 'en';
}
arb.setResourceSelector(locale);
// Localisation JavaScript
var r$ = arb.getResource("test");
document.write(arb.msg(r$.MSG_CURR_LOCALE, {'currentLocale': locale}));
// Ceci doit apparaître après tout le contenu HTML traduisible
arb.localizeHtml();
}
main();
Le code de cet exemple peut être trouvé ici.