2011-01-21 5 views
1

Mon projet devrait supporter différentes langues pour l'interface graphique (espagnol, anglais, allemand, etc.). J'utilise CodeIgniter, donc je n'ai aucun problème avec les vues PHP en utilisant Language Class. Je peux charger des vars précédemment définis sur PHP pour créer des vues dans différentes langues.Changer la langue du contenu dynamique en utilisant Javascript

Le problème vient ici:

Certaines fonctions (beaucoup d'entre eux en fait) utiliser Javascript: menu contextuel personnalisé pour certains éléments, différents DIVs créés dynamiquement, etc. La plupart de ces fonctionnalités sont créées dynamiquement, je Je ne peux pas connaître la langue sélectionnée (je peux créer beaucoup de code dupliqué, un pour chaque langue, mais c'est trop redondant).

Je dois trouver un moyen de traduire ce contenu dans la nouvelle langue précédemment sélectionnée par l'utilisateur.

Par exemple:

L'utilisateur le clic droit et le menu contextuel ont les options suivantes (créées dynamiquement en utilisant Javascript):

  • Salut
  • Au revoir

Lorsque la l'utilisateur change la langue de la page en «espagnol», le menu contextuel devrait afficher:

  • Hola
  • Adios

Est-il possible d'enregistrer certaines variables avec tous les noms dans des langues différentes, puis charger pour créer les menus?

Désolé pour le grand poste. J'espère que tout le monde peut m'aider ou m'apporter un petit pourboire.

Répondre

1

Il existe plusieurs systèmes à utiliser lorsque vous voulez que i18n (abréviation de «internationalisation») fonctionne dans une langue côté serveur ainsi que dans le langage JavaScript côté client.

ceci est un exemple que j'ai trouvé pour PHP et JavaScript: http://doc.silverstripe.org/sapphire/en/topics/i18n

Je l'ai fait en PHP, Ruby et Python. En général, il y a une façon d'y parvenir. Vous créez une bibliothèque de texte. cette bibliothèque contient des pointeurs vers des parties spécifiques de ce texte. Dans votre code, vous utilisez ce pointeur pour faire référence à ce morceau de texte.L'exemple ci-dessus vous fournit un moyen de créer une bibliothèque en PHP pouvant être compilée en un équivalent JavaScript que vous pouvez appeler en JavaScript. Fondamentalement, il sépare complètement copywriting et autre texte du code.

J'espère que cela vous aidera sur votre chemin.

+0

Probablement c'est la solution la plus proche de ce que je cherche. Merci yopefonic, je vais essayer l'i18n. –

0

Est-il possible de sauver quelques des variables avec tous les noms langues différentes, puis chargez à créer les menus?

Je suppose que vous demandez si vous pouvez enregistrer ces préférences utilisateur?

Si oui stocker un cookie sur l'ordinateur de l'utilisateur


Si vous ne voulez pas, et que vous voulez stocker toutes les variantes de langues, vous pouvez stocker dans un tableau qui peut être chargé par javascript

+0

Oui, c'est l'une des solutions que je pensais. Merci pour le conseil! –

Questions connexes