2010-09-03 6 views
0

Dans mon projet, il y a des codes javascript incorporés et non-incorporés. Et j'ai fait la localisation des codes embarqués comme ci-dessous et ça marche.Comment localiser un fichier javascript non intégré avec une ressource?

CN.DEFAULT_CONFIG = { 
    strings : { 
     year: '<%=GetGlobalResourceObject("Resource", "YEAR") %>' 

... .. . Mais, cette méthode ne fonctionne pas pour les codes javascript non incorporés. Comment puis-je faire la localisation pour eux?

+0

Référez-vous à cette question similaire: http://stackoverflow.com/q/104022/114029 –

Répondre

1

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.

+0

Merci pour votre réponse. Après avoir fait ce que vous avez dit ci-dessus, comment puis-je l'exécuter? Comme les codes intégrés, suis-je censé utiliser celui-ci <% = GetGlobalResourceObject (...)%> ou un autre? – emre

+0

Non, vous les utilisez comme n'importe quelle autre construction JS. J'espère que la modification clarifie. – annakata

Questions connexes