Il existe plusieurs façons d'atteindre cet objectif (les ressources incorporées, les gestionnaires et les méthodes ajax existent avec divers avantages et inconvénients), mais si vous devez le faire sur un fichier natif, vous pouvez utiliser les gestionnaires de script ajax comme here.
En quelques mots, vous créez une base de script localisé contenant tout les fonctions, les objets, les chaînes, foo dont vous avez besoin:
\webresources\scripts\localised\base.js
... puis ajouter des variations localisées tout comme vous en utilisant le modèle de nommage ressource:
\webresources\scripts\localised\base.fr.js
\webresources\scripts\localised\base.en-US.js
... puis ajoutez une référence dans le gestionnaire de script ainsi:
<asp:ScriptManager ID="YourScriptManager" runat="server" EnableScriptLocalization="true">
<Scripts>
<asp:ScriptReference Path="\webresources\scripts\localised\base.js" ResourceUICultures="fr,en-US"/>
</Scripts>
</asp:ScriptManager>
(Je ne suis pas sûr à 100% la liste CSV des cultures là-bas, mais je pense que c'est correct)
Modifier: Utilisation
Vous pouvez alimenter base.js avec
// Default culture version
var translations = {
hello : "Hello!"
}
... base.fr.js avec:
// En Français
var translations = {
hello : "Bonjour!"
}
..base.en-US.js avec:
// Americanified
var translations = {
hello : "Howdy!"
}
... puis utilisez simplement translations.hello
dans votre code invariant et obtenez la culture qui vous convient.
Vous pouvez ajouter des méthodes entières dans ces fichiers (pour les calculs de date, le formatage, etc.) ou quoi que ce soit. La clé est de réaliser qu'ils sont exclusifs les uns aux autres et qu'il est donc important qu'ils aient la même ... Interface par manque d'un meilleur mot afin qu'ils puissent être orthogonaux à tout ce qui les consomme.
Référez-vous à cette question similaire: http://stackoverflow.com/q/104022/114029 –