lire la culture actuelle du projet asp.net de mvc et la langue de changement confirmer javascript

StackOverflow https://stackoverflow.com/questions/3651808

Question

J'ai une confirmation javascript. Mon texte est en anglais, mais si je vais changer la langue / culture de mon asp.net projet mvc confirmation est Evidement, toujours anglais.

Je peux CONTROLL manuellement et il suffit d'écrire deux méthodes javascript (pour les deux langues), mais il n'y a pas si propre que je pense. Et si je vais avoir plus de 3 langues sera son plus sale.

Pourriez-vous me donner un pourboire comment puis-je résoudre mon problème?

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

Était-ce utile?

La solution

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

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

Autres conseils

Vous pouvez faire fichier js séparé avec chaînes seulement, 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 du fichier généré dynamiquement des informations qui soutient la langue:

var currentLanguage = 'en';

Vous pouvez également obtenir ces informations par différentes voies (par exemple AJAX), mais la solution ci-dessus a cet avantage, que votre code est déjà chargé et currentLanguage est réglé.

Ensuite, dans votre vente de code:

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

Vous pouvez envelopper tout en 1 variable globale, qui serait plus propre. Rappelez-vous aussi pas à la méthode Ecraser MultilanguageStrings.get.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top