4 votes

I18n pour le contenu HTML statique

Je construis un site web sur le front d'une API REST (ce qui supporte i18n) et je ne suis pas sûr de la meilleure façon d'aborder l'internationalisation. J'ai examiné les solutions js et html mais elles semblent toutes inférieures aux options côté serveur.

Étant donné que la plupart des pages contiennent du contenu statique qui a juste besoin de support de localisation, les JSP pourraient-elles être une bonne solution? JSF semble être exagéré.

3voto

Shervin Points 1614

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.

-1voto

Madhu Points 1719

1) Si vous avez uniquement un contenu statique, créez différents fichiers html avec des langues différentes et placez-les dans un dossier séparé, puis accédez au site comme suit

pour l'anglais
http://yourdomain.com/en/english_index.html

pour le français
http://yourdomain.com/fr/french_index.html

2) JSP est également une bonne option si vous avez besoin de manipulations dynamiques. Il a une bonne option pour maintenir le bundle de ressources i18n.

Je suggère d'opter pour l'option 1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X