leggere la cultura attuale del progetto asp.net MVC e cambia lingua in confermano javascript
-
01-10-2019 - |
Domanda
ho una conferma javascript. Il mio testo è in inglese, ma se cambierò la lingua / cultura del mio asp.net mvc progetto conferma è di cource ancora inglese.
I può controllare manualmente e basta scrivere due metodi javascript (per entrambe le lingue), ma non è così pulito penso. E se avrò più di 3 lingue la sua sarà più sporca.
Potreste darmi qualche consiglio su come posso risolvere il mio problema?
migliore per me è quello di avere conferma con un po 'metatag o qualcosa in cui posso dare il mio testo da file di risorse fuori.
Soluzione
<script language="javascript">
var confirmMessage = "<%= localizedConfirmMessage %>";
// use confirmMessage when showing confirm popup
...
</script>
Altri suggerimenti
Si può fare di file js separato solo con le stringhe, per esempio:.
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];
}
};
file E di make generato dinamicamente js con le informazioni che è impostata la lingua:
var currentLanguage = 'en';
È anche possibile ottenere queste informazioni dal modo diverso (ad esempio AJAX), ma la soluzione di cui sopra ha questo vantaggio, che il codice è già caricato e currentLanguage
è impostato.
Poi, nel tuo inserire il codice:
...
if (confirm(MultilanguageStrings.get('savingConfirmation', currentLanguage))) {
...
Si consiglia di avvolgere tutto in 1 variabile globale, che sarebbe più accurato.
Ricorda anche di non il metodo di sovrascrittura MultilanguageStrings.get
.