none
Localisation des fichiers javascript dans SharePoint 2010 RRS feed

  • Question

  • Bonjour,

    j'aimerais avoir vos idées comment localiser des fichiers javascript dans SharePoint. par exemple dans les notifications SharePoint  à partir d'une modal dialog : SP.UI.Notify.addNotification("[Text à localiser]",false)

    Merci


    Cheers,
    • Déplacé Hengzhe Li mardi 21 février 2012 06:42 merge forum (Origine :Développement Sharepoint 2010)
    vendredi 16 septembre 2011 17:51

Réponses

  • Bonjour,

    Sauf à mettre en place un WebService exposant vos fichiers de ressources, vous ne pourrez pas y accéder depuis du code javascript.

    Pour gérer cette problématique, SharePoint utilise simplement plusieurs fichiers .js (un pour chaque langue).

    Vous pouvez d'ailleurs bénéficier de ce modèle assez facilement :

    • Regardez les dossiers de langue dans le répertoire C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ (1036 pour le français, 1033 pour l'anglais, ...)
    • Repérez dans ces dossier les fichiers de même nom portant l'extension ".js" : ils correspondent à une version linguistique différente.
    • Déployez vos fichiers localisés dans ces dossiers, et référencez les dans vos pages à l'aide du controle ScriptLink. Par exemple 

    <SharePoint:ScriptLink language="javascript" name="customscripts.js" Defer="true" runat="server" Localizable="true" />
    

    Remarquez l'attribut "Localizable" : c'est lui qui indiquera à SharePoint d'aller chercher le bon fichier.

    Si vous voulez ajouter vos fichiers à une bibliothèque plutôt qu'au répertoire LAYOUTS, il vous y prendre autrement. Il vous faudra notamment pouvoir bénéficier des fonctionnalités de Publishing de SharePoint Server. L'alternative dans ce cas sera d'utiliser la classe SPUrlExpressionBuilder (SPUrl dans votre code aspx). Cette classe supporte le token "~language". Par exemple, une adresse "~sitecollection/scriptslibrary/~language" sera remplacée par l'adresse du site racine de la bibliothèque, suivi de "/scriptslibrary/" puis le code de langue approprié.

    Au final, vous aurez à gérer vos ressources en partie dans des fichiers resx (pour votre code serveur) et dans des fichiers js (pour votre code client). Pour éviter trop d'accès à des fichiers différents, il peut être intéressant de créer un unique fichier de ressources js que vous utiliserez systématiquement sur chacunes de vos pages.

    Est ce que ce contenu vous aide ?


    Sébastien PICAMELOT - http://blogs.developpeur.org/gribouillon/

    lundi 19 septembre 2011 10:00
    Modérateur

Toutes les réponses

  • Bonjour,

    Pouvez-vous préciser votre question? J'ai pas tout compris... ;-)

    Merci d'avance.


    Pascal P
    http://sharepoint-afterwork.fr
    Nouveaux site en FR
    Twitter: @PascalPoeck
    vendredi 16 septembre 2011 18:20
  • En fait j'ai un site SharePoint 2010 a localisé (français/Anglais) j'ai des fichiers ressources dans le App_GlobalResources, ça pose pas de problèmes dans les aspx, cs, content type etc....

    mais le problèmes c'est que quand j'ai des fichiers javascript qui doivent afficher des messages, les petites notifications SharePoint en haut à gauche en dessous du ruban exemple: les messages ("élément supprimé") quand je supprime un élément de ma liste.

    j'ai crée mes propres notifications mais mes messages ne sont pas localisés et je trouve pas de moyen d'avoir la localisation (français/anglais) dans mes fichiers js.

    ???!!!!


    Cheers,
    vendredi 16 septembre 2011 19:04
  • Bonjour,

    Sauf à mettre en place un WebService exposant vos fichiers de ressources, vous ne pourrez pas y accéder depuis du code javascript.

    Pour gérer cette problématique, SharePoint utilise simplement plusieurs fichiers .js (un pour chaque langue).

    Vous pouvez d'ailleurs bénéficier de ce modèle assez facilement :

    • Regardez les dossiers de langue dans le répertoire C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ (1036 pour le français, 1033 pour l'anglais, ...)
    • Repérez dans ces dossier les fichiers de même nom portant l'extension ".js" : ils correspondent à une version linguistique différente.
    • Déployez vos fichiers localisés dans ces dossiers, et référencez les dans vos pages à l'aide du controle ScriptLink. Par exemple 

    <SharePoint:ScriptLink language="javascript" name="customscripts.js" Defer="true" runat="server" Localizable="true" />
    

    Remarquez l'attribut "Localizable" : c'est lui qui indiquera à SharePoint d'aller chercher le bon fichier.

    Si vous voulez ajouter vos fichiers à une bibliothèque plutôt qu'au répertoire LAYOUTS, il vous y prendre autrement. Il vous faudra notamment pouvoir bénéficier des fonctionnalités de Publishing de SharePoint Server. L'alternative dans ce cas sera d'utiliser la classe SPUrlExpressionBuilder (SPUrl dans votre code aspx). Cette classe supporte le token "~language". Par exemple, une adresse "~sitecollection/scriptslibrary/~language" sera remplacée par l'adresse du site racine de la bibliothèque, suivi de "/scriptslibrary/" puis le code de langue approprié.

    Au final, vous aurez à gérer vos ressources en partie dans des fichiers resx (pour votre code serveur) et dans des fichiers js (pour votre code client). Pour éviter trop d'accès à des fichiers différents, il peut être intéressant de créer un unique fichier de ressources js que vous utiliserez systématiquement sur chacunes de vos pages.

    Est ce que ce contenu vous aide ?


    Sébastien PICAMELOT - http://blogs.developpeur.org/gribouillon/

    lundi 19 septembre 2011 10:00
    Modérateur
  • Merci,

    c'est très instructif, je vais opter pour la solution des js localisés dans le dossier /_layouts/

    encore une fois merci


    Cheers,
    lundi 19 septembre 2011 17:34
  • Bonjour,

    Je suis sur l'intégration d'un site multilangue sur Sharepoint 2013 avec les features de publications d'activées.

    Je test votre deuxième méthode, mais le token ~language n'est pas interprété alors que ~sitecollection est bien interprété.

    Auriez-vous une idée ?

    mardi 21 avril 2015 08:16