2010-09-06 6 views
0

J'ai une confirmation de javascript. Mon texte est en anglais, mais si je vais changer la langue/culture de mon projet asp.net mvc, confirmez est de cource encore anglais.lire la culture actuelle du projet mvc asp.net et changer la langue dans le javascript confirmer

Je peux le contrôler manuellement et écrire juste deux méthodes javascript (pour les deux langues) mais ce n'est pas si propre je pense. Et si je vais avoir plus de 3 langues ce sera plus sale.

Pourriez-vous me donner quelques conseils comment puis-je résoudre mon problème?

Le meilleur pour moi est d'avoir confirmation avec une métabalise ou quelque chose où puis-je donner mon texte à partir de fichiers de ressources.

Répondre

1
<script language="javascript"> 
var confirmMessage = "<%= localizedConfirmMessage %>"; 

// use confirmMessage when showing confirm popup 
... 
</script> 
+0

C'est ce que je fais normalement, donc je sais que ça marche :) – Nealv

0

Vous pouvez faire fichier séparé avec les chaînes uniquement, par exemple:

var MultilanguageStrings = { 
    'savingConfirmation': { 
     'en': 'Do you want to save changes?', 
     'pl': 'Czy chcesz zapisać zmiany?' 
    }, 
    'fatalError': { 
     'en': 'Fatal error occured.', 
     'pl': 'Wystąpił krytyczny błąd.' 
    }, 
    'get': function (key, lang) { 
     if (this[key] === undefined) 
      return 'Error. There is no such message.'; 
     if (lang == 'en' && this[key]['en'] === undefined) 
      return 'Error. There is no such message.'; 
     if (this[key][lang] === undefined) 
      return this.get(key, 'en'); 
     return this[key][lang]; 
    } 
}; 

Et que faire le fichier généré dynamiquement des informations qui soutient la langue:

var currentLanguage = 'en'; 

Vous pouvez également obtenir cette information de manière différente (par exemple AJAX) mais la solution ci-dessus a cet avantage, que votre code est déjà chargé et currentLanguage est défini.

Ensuite, dans votre vente de code:

... 
if (confirm(MultilanguageStrings.get('savingConfirmation', currentLanguage))) { 
... 

Vous pouvez envelopper tout en 1 variable globale, ce serait plus propre. N'oubliez pas non plus de remplacer la méthode MultilanguageStrings.get.

Questions connexes