Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

Localisation et JavaScript – utilisation des ScriptResources et WebResources – ASP.net Ajax

Lorsque l’on fait une application web contenant du JavaScript, tôt ou tard se pose la question de la localisation, c’est à dire l’affichage des textes en différentes langues. ASP.net Ajax propose une solution utilisant les ressources .net, les fichiers resx.

Afin de mettre en place cette solution, plusieurs étapes sont nécessaires. Tout d’abord il faut utiliser un projet de type “Class Library” puis ajouter un fichier JavaScript que l’on inclut en “Embedded Resource”, il faut également rajouter les fichiers de ressources contenant les différents textes.

image

Il faut ensuite indiquer que notre fichier JavaScript est une WebResource, nous allons pour cela utiliser l’attribut WebResource. Le premier argument, correspond au nom de votre ressource, il est composé du namespace et du nom du fichier, vous pouvez retrouver ce nom en utilisant Reflector.

[assembly: WebResource("ClassLibrary1.Pouet.js", "application/x-javascript")]

Il est également nécessaire d’indiquer que notre WebResource est un ScriptResource, on utilise pour cela l’attribut ScriptResource. C’est ici que l’on associe le fichier Javascript avec notre fichier de ressource. Le premier argument correspond au nom de la WebRessource, le second au nom de la ressource contenant le texte, le dernier au nom de l’objet contenant le texte coté client.

[assembly: ScriptResource("ClassLibrary1.Pouet.js", "ClassLibrary1.Pouet", "Pouet.Res")]

Il ne reste plus qu’à ajouter votre fichier JavaScript à votre page, pour cela 2 possibilités :

public class MyControl : ScriptControl { // ... protected override IEnumerable<ScriptDescriptor> GetScriptDescriptors() { yield break; } protected override IEnumerable<ScriptReference> GetScriptReferences() { yield return new ScriptReference("ClassLibrary1.Pouet.js", typeof(MyControl).Assembly.FullName); } }
  • Soit vous ajoutez votre script via le ScriptManager :

<asp:ScriptManager runat="server"> <Scripts> <asp:ScriptReference Assembly="ClassLibrary1" Name="ClassLibrary1.Pouet.js" /> </Scripts> </asp:ScriptManager>

Dans les 2 cas, votre page pointera vers un nouveau fichier JavaScript :

image

On peut voir qu’un nouvel objet à été créé côté client. Cet objet contient les différents textes localisés. Il est alors possible d’accéder aux ressources via :

alert(Pouet.Res.Hello)

Comment est géré le choix de la langue à utiliser ?

Tout comme ASP.net, le choix de la ressource à utiliser est sélectionné en fonction de la culture du thread courant.

Il est possible de spécifier cette culture au niveau du web.config via la section system.web/globalization. Les valeurs possibles sont “auto” pour utiliser la langue du navigateur ou une culture existante par exemple “FR-fr”

<configuration> ... <system.web> ... <globalization uiCulture="auto"/> </system.web> </configuration>

Et vous ? Comment gérez-vous la localisation en JavaScript ?

Posted: lundi 7 septembre 2009 16:44 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

lesaint a dit :

Merci pour cet article interessant, néanmoins j'aimerais une precision sur quelle classe les attributs WebRessource et ScriptRessource sont-ils appliqués.

Bon coding.

# septembre 24, 2009 10:56

Zied Nemili a dit :

très intéressant, c'est une manière très élégante. Pour ma part j'ai opté pour un moyen très simple aussi mais un peu moins élégant que ta solution. En fait tu écris un fichier xml avec des pairs key / value. Par la suite tu définis un service qui renvoie le contenu de ce fichier xml en json, la transformation peut se faire soit par un fichier xslt soit par le sérialiseur JSON. Côté client on récupère un objet JSON en faisant un eval dessus qu'on peut utiliser facilement.

On peut également écrire les pairs key/value directement en json et le renvoyer tel qu'il est mais je ne l'ai pas fait parce que je pense qu'un fichier xml reste plus clair et plus lisible.

# septembre 29, 2009 22:34

discodog a dit :

Sympa,ya même paperblog qui fait référence à ton billet ;)

<span style="display: none">http://www.paperblog.fr/2000195/faststone-capture-un-outil-agreable-pour-faire-des-captures-d-ecran/</span>

# novembre 20, 2009 19:43
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01