Partager via


Procédure pas à pas : déploiement de solutions localisées en bac à sable par le biais d’ssemblys satellites

Cette rubrique explique comment créer des versions localisées de solutions en bac à sable (sandbox) et qui contiennent un ou plusieurs assemblys.

Dernière modification : jeudi 14 avril 2011

S’applique à : SharePoint Foundation 2010

Le processus de déploiement d’une solution solutions en bac à sable (sandbox) localisée diffère sur plusieurs points du déploiement d’une solution solutions de batterie de serveurs localisée.

Notes

Cette rubrique part du principe que vous avez suivi la procédure indiquée dans Préparation de la création de solutions SharePoint localisées, et que l’anglais et l’espagnol sont disponibles sur votre batterie de développement (vous pouvez cependant opter pour deux autres langues).

). L’exemple suivant dans cette rubrique constitue une solution en bac à sable (sandbox) contenant un composant WebPart simple. Cependant, la technique décrite, à savoir la création des assemblys satellites, s’applique à tout solution en bac à sable (sandbox) qui inclut un ou plusieurs assemblys. Seules les ressources incluses dans les assemblys sont localisées par la technique décrite dans cette rubrique. Pour savoir comment localiser le nom et la description d’une Fonctionnalité tel qu’il apparaît dans une galerie de fonctionnalités, voir Procédure : localiser les attributs de fonctionnalité dans une solution bac à sable (bac à sable).

Notes

Vous pouvez localiser les chaînes incluses dans le fichier .webpart d’un solution en bac à sable (sandbox) uniquement si les fichiers de ressources localisées ont été installés séparément sur le système de fichiers, dans le cadre d’une solution de batterie de serveurs. Dans la plupart des cas où vous créez une solution en bac à sable (sandbox), la raison en est que vous ne disposez pas des autorisations nécessaires pour installer solutions de batterie de serveurs sur les batteries cibles. Dans de tels cas, il n’existe aucun moyen pratique de localiser le fichier .webpart dans une solution en bac à sable (sandbox). En d’autres termes, le nom du composant WebPart dans la galerie de composants WebPart est le même dans les sites pour toutes les langues.

Pour créer les fichiers de ressources localisées

  1. Dans Microsoft Visual Studio, démarrez un projet SharePoint vide. Utilisez le type de projet en bac à sable. Dans l’exemple suivant, le projet s’intitule LocalizedWebPart.

  2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, puis sélectionnez Propriétés.

  3. Dans la fenêtre Propriétés, ouvrez l’onglet Ressources.

  4. Cliquez sur le lien Ce projet ne situé au milieu de la fenêtre. Un fichier Resources.resx est créé dans le dossier Properties de l’Explorateur de solutions, puis le fichier entraîne l’ouverture de l’Éditeur de ressources de Visual Studio. Une fois terminé, ce fichier de ressources par défaut contient alors les chaînes utilisées sur tous les sites dans les langues pour lesquelles vous ne comptez pas fournir de version localisée de ces chaînes. Ainsi, la langue utilisée pour les chaînes dans ce fichier doivent correspondre à la langue la plus à même de constituer une seconde langue des utilisateurs de SharePoint, pour laquelle vous ne fournissez pas de traduction des chaînes. L’anglais est habituellement utilisé dans ce sens, mais des exceptions peuvent exister. Par exemple, si votre Fonctionnalité doit être utilisée principalement dans des pays ayant été auparavant des colonies francophones, le français peut s’avérer une seconde langue plus habituelle pour vos utilisateurs que l’anglais. L’exemple suivant de cette rubrique fait appel à l’anglais comme langue par défaut.

  5. Le composant WebPart à intégrer au projet nécessite quatre chaînes :

    • Texte d’un bouton

    • Texte par défaut attribué à une étiquette

    • Texte pour l’étiquette lorsque le bouton est cliqué un nombre pair de fois

    • Texte pour l’étiquette lorsque le bouton est cliqué un nombre impair de fois

    Ajoutez les chaînes portant les noms et valeurs suivants au fichier de ressources.

    Nom

    Valeur

    ButtonText

    Click this button!

    EvenLabelText

    The button has been clicked an even number of times. Click it again.

    InitialLabelText

    The button has never been clicked.

    OddLabelText

    The button has been clicked an odd number of times. Click it again.

    Vous devez à présent créer des fichiers de ressources à part pour toutes les langues étrangères pour lesquelles vous fournissez des chaînes localisées et les ajouter au dossier Properties de l’Explorateur de solutions. Les étapes restantes de cette procédure représentent une façon d’accomplir cette tâche.

  6. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, puis sélectionnez Ouvrir le dossier dans l’Explorateur Windows.

  7. Ouvrez le dossier Properties.

  8. Pour toutes les langues étrangères pour lesquelles vous fournissez des chaînes localisées, créez une copie du fichier Resources.aspx dans le même dossier. Chaque fichier doit porter un nom répondant au même modèle, à savoir reprendre le Resources.LCID.resx, où LCID correspond au code d’une culture linguistique. Dans le cadre de l’exemple suivant, créez deux fichiers : Resources.en-us.resx pour l’anglais et Resources.es-es.resx pour l’espagnol.

  9. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, choisissez Ajouter, puis sélectionnez Élément existant. Une boîte de dialogue Parcourir s’ouvre avec le dossier du projet comme dossier actif.

  10. Ouvrez le dossier Properties.

  11. Sélectionnez tous les fichiers de ressources linguistiques que vous avez créés (mais pas le fichier Resources.resx par défaut), puis cliquez sur Ajouter. Les fichiers sont ajoutés à la racine du projet dans l’Explorateur de solutions.

  12. Sélectionner tous ces nouveaux fichiers dans l’Explorateur de solutions, puis faites-les glisser sur le dossier Propriétés. Vous êtes alors invité à indiquer s’il faut écraser les fichiers. Cliquez sur Oui.

  13. Double-cliquez sur l’un d’eux pour l’ouvrir dans l’Éditeur de ressources.

  14. Remplacez la Valeur de chaque ligne par sa traduction. Ne modifiez rien dans la colonne Nom. Pour le fichier Resources.es-es.resx repris dans l’exemple suivant, utilisez les chaînes suivantes en espagnol.

    Nom

    Valeur

    ButtonText

    ¡Presiona este botón!

    EvenLabelText

    El botón ha sido presionado un número de veces par. Presiónalo nuevamente

    InitialLabelText

    El botón nunca ha sido presionado.

    OddLabelText

    El botón ha sido presionado un número de veces impar. Presiónalo nuevamente.

  15. Répétez les deux dernières étapes pour chaque fichier de ressources linguistique.

    Notes

    Lorsque le fichier de ressources linguistique est destiné à la même langue que vous utilisez comme langue par défaut (comme c’est le cas pour le fichier Resources.en-us.resx de l’exemple qui suit), vous n’avez bien sûr pas besoin de modifier le fichier. Dans de nombreux cas, il n’est pas nécessaire de disposer d’un fichier linguistique pour une même langue utilisée dans le fichier de ressources linguistique par défaut, particulièrement lorsque les seules ressources dans ces fichiers constituent des chaînes. Les fichiers de ressources peuvent en effet contenir des images, des icônes, d’autres fichiers et tout autre type de ressource. Vous aurez parfois besoin du fichier de ressources par défaut pour utiliser une image ou autre ressource de sa contrepartie dans un fichier linguistique quelconque.

Pour créer une classe Resources et ses assemblys satellites, puis les ajouter au package de la solution

  1. Dans Visual Studio, dans le menu Générer, sélectionnez Générer la solution. Visual Studio réalise deux opérations :

    • Le code MSIL (Microsoft Intermediate Language) est généré et inséré dans l’assembly principal du projet :

      • un nouvel espace de nom est créé, intitulé Projet.Properties, où Projet correspond au nom du projet Visual Studio.

      • Une classe intitulée Resources est déclarée dans cet espace de nom.

      • Une propriété static se voit ajoutée à la nouvelle classe pour chaque chaîne dans le fichier de ressources linguistique par défaut.

    • Pour chaque langue étrangère, un sous-dossier est créé soit sous le dossier Debug, soit sous le dossier Release de votre projet, en fonction de votre configuration cible, puis se voit attribuée un nom mentionnant l’ID (LCID) de la langue. Dans chacun de ces dossiers se trouve un assembly intitulé Projet.resources.dll qui contient une version compilée des chaînes destinées à la langue. Ces éléments portent le nom d’assemblys satellites.

  2. Les assemblys satellites doivent être ajoutés au package de la solution. Dans l’Explorateur de solutions, double-cliquez sur le fichier *.package pour l’ouvrir dans le concepteur de package.

  3. Cliquez sur l’onglet Avancé en bas du concepteur.

  4. Cliquez sur Ajouter, puis sélectionnez Ajouter un assembly existant.

    Notes

    Ne sélectionnez pas Ajouter un assembly de la sortie du projet. Pour les besoins du Concepteur de package, les assemblys satellites ne sont pas considérées comme sortie du projet.

  5. Dans la boîte de dialogue Ajouter un assembly existant, cliquez sur le bouton représenté par les points de suspension (...) et accédez à l’un des assemblys satellites dans le sous-dossier d’une langue sous Debug (ou Release le cas échéant). Cliquez sur Ouvrir.

  6. Laissez la Cible de déploiement sur sa valeur Global Assembly Cache. (Il s’agit d’une technicité. Les assemblys dans solutions en bac à sable (sandbox) ne sont pas déployés dans le GAC. Pour plus d’informations, voir Où les assemblys sont-ils déployés dans les solutions en bac à sable (sandbox) ?.)

  7. Dans le champ Emplacement, vous devez ajouter le sous-dossier de la langue au nom de l’assembly satellite. Par exemple, pour l’assembly satellite de l’espagnol dans le sous-dossier es-es, ajoutez « es-es\ » devant le nom de l’assembly. Une fois terminé, la valeur Emplacement correspond à LCID\Projet.resources.dll ; par exemple, es-es\LocalizedWebPart.resources.resx.

    Notes

    Une fois prêt à modifier la configuration cible de Debug à Release, vous devez supprimer tous les assemblys satellites du projet, les régénérer, puis les rajouter à partir des sous-dossiers LCID du dossier Release de votre projet. Si vous devez fréquemment modifier les configurations cibles, créez un dossier en tant qu’homologue des dossiers Debug et Release. Créez un script post-génération chargé de copier ces sous-dossiers LCID dans votre nouveau dossier. Ajoutez ensuite les assemblys du nouvel emplacement au package de solution. Seul le script doit être modifié lorsque vous adaptez les configurations cibles.

  8. Répétez the quatre dernières étapes pour chaque assembly satellite, puis enregistrez tous les fichiers.

Pour créer le composant WebPart de l’exemple et référencer les chaînes localisées

  1. Dans l’Explorateur de solutions, ajoutez un élément de Composant WebPart SharePoint au projet. Dans l’exemple suivant, le composant WebPart s’intitule OneButton.

  2. Dans l’Explorateur de solutions, ouvrez le fichier du code du composant WebPart. L’exemple suivant s’appuie sur du code C# ; son fichier avec son extension s’intitule par conséquent OneButton.cs.

  3. Ajoutez deux champs protected à la classe personnalisée du composant WebPart, tel qu’illustré dans le code suivant.

    protected Button button1;
    protected Label label1;
    
  4. Ajoutez le code suivant à la méthode CreateChildControls :

    button1 = new Button();
    label1 = new Label();
    
    button1.Text = Properties.Resources.ButtonLabel;    
    label1.Text = Properties.Resources.InitialLabelText;
    
    button1.Click += new EventHandler(button1_Click);
    
    Controls.Add(button1);
    Controls.Add(new LiteralControl("<br />"));
    Controls.Add(label1); 
    

    L’on peut y voir que deux lignes attribuent des valeurs aux chaînes en se référant aux propriétés de la classe Resources que Visual Studio génère et insère dans l’assembly principal. L’accesseur get de chacune de ces propriétés renvoie une chaîne de l’assembly satellite associé à la langue du site Web actif. S’il n’existe aucun assembly satellite pour la langue en question, la chaîne définie dans le fichier de ressources par défaut est renvoyée.

  5. Ajoutez le gestionnaire d’événement suivant à la classe personnalisée du composant WebPart.

    void button1_Click(object sender, EventArgs e)
    {           
        if ((label1.Text == Properties.Resources.InitialLabelText) 
             || (label1.Text == Properties.Resources.EvenLabelText))
        {
            label1.Text = Properties.Resources.OddLabelText;
        }
        else
        {
            label1.Text = Properties.Resources.EvenLabelText;
        }       
    }
    
  6. Générez la solution et créez son package.

Pour tester la localisation

  1. Déployez le package de la solution dans la galerie de solutions d’une collection de sites ayant été créée dans l’une des langues étrangères, puis activez la solution.

  2. Accédez à la page Paramètres du site, puis ouvrez la galerie des fonctionnalités soit de la collection de sites, soit du site Web racine, selon que l’étendue de votre Fonctionnalité correspond à Site ou à Web (l’exemple suivant reprend l’étendue Site car les Fonctionnalités qui contiennent les composants WebPart ne doivent être déployées qu’avec cette étendue).

  3. Activez la Fonctionnalité.

  4. Accédez à un Page de composants WebPart quelconque, ajoutez le composant WebPart à la page, puis utilisez-le. Ses chaînes doivent s’afficher dans la langue du site Web.

  5. Répétez the quatre dernières étapes pour toutes les langues étrangères pour lesquelles vous avez créé un assembly satellite.

  6. Répétez le déploiement et l’activation pour certaines collections de sites en langue étrangère pour lesquelles vous n’avez pas créé de fichier de ressources linguistiques. Les chaînes du composant WebPart doivent correspondre à celles que vous avez placées dans le fichier de ressources par défaut.

Voir aussi

Concepts

Préparation de la création de solutions SharePoint localisées

Où les assemblys sont-ils déployés dans les solutions en bac à sable (sandbox) ?

Meilleures pratiques en matière de développement de solutions bac à sable (sandbox)

Autres ressources

Localisation de solutions en mode bac à sable (sandbox)