Localiser les solutions SharePoint

Le processus de préparation de vos applications afin qu’elles puissent être utilisées dans le monde entier est appelé localisation. La localisation traduit des ressources vers une culture spécifique. Pour plus d’informations, consultez Applications de globalisation et localisation. Cette rubrique fournit une vue d’ensemble de la localisation d’une solution SharePoint.

Pour localiser une solution, vous supprimez les chaînes codées en dur du code et vous les extrayez dans des fichiers de ressources. Un fichier de ressources est un fichier XML avec une extension .resx. Le fichier de ressources contient les versions traduites des chaînes utilisées dans votre solution. Pour plus d’informations, consultez Ressources dans les applications.

Notes

Ajoutez uniquement des ressources de chaîne aux fichiers de ressources de la solution SharePoint. Bien que l’éditeur de ressources permette d’ajouter des ressources autres que des chaînes, celles-ci ne sont pas déployées sur SharePoint.

Fichiers de ressources

Il existe trois types de fichiers de ressources : par défaut, indépendant de la langue et spécifique à la langue.

Type de fichier de ressources Description
Default Également appelés ressources de secours, les fichiers de ressources par défaut contiennent des chaînes localisées pour la culture par défaut, comme l’anglais. Ils sont utilisés si aucun fichier de ressources localisées pour la langue spécifiée n’est trouvé. Les ressources par défaut n’ont pas de fichiers distincts, elles sont stockées dans l’assembly d’applications principal.
Indépendant de la langue Fichier de ressources qui contient des chaînes localisées pour une langue, mais pas une culture spécifique. Par exemple, « fr » pour français.
Spécifiques au langage Fichier de ressources qui contient des chaînes localisées pour une langue et une culture. Par exemple, « fr-CA » pour français canadien.

Pour plus d’informations, consultez Organisation hiérarchique des ressources pour la localisation.

Pour spécifier les fichiers de ressources par défaut dans les projets SharePoint que vous développez dans Visual Studio, choisissez Langue invariable (Pays invariable) dans la liste de cultures de la boîte de dialogue Ajouter une ressource lorsque vous ajoutez un fichier de ressources.

Ajouter un fichier de ressources

Les commandes permettant d’ajouter des fichiers de ressources se trouvent dans le menu contextuel du nœud de solution et des nœuds de fonctionnalités dans l’Explorateur de solutions.

Pour ajouter un fichier de ressources global à une solution SharePoint

  1. Dans Visual Studio, ouvrez une solution SharePoint.

  2. Dans l’Explorateur de solutions, choisissez un nœud de projet SharePoint. Dans la barre de menus, choisissez Projet>Ajouter un nouvel élément.

  3. Dans la boîte de dialogue Ajouter un nouvel élément, choisissez le modèle Fichier de ressources global, puis cliquez sur le bouton Ajouter.

    Notes

    Le modèle d’élément de projet Fichier de ressources global s’affiche uniquement lorsqu’un élément de projet SharePoint est sélectionné.

  4. Dans la boîte de dialogue Ajouter une ressource, choisissez une culture pour le fichier de ressources, par exemple l’anglais (États-Unis).

    Cette étape ajoute un fichier de ressources global à votre solution au format {Resource_x_}.{culture}.resx, comme Resource1.en-US.resx.

  5. Lorsque l’Éditeur de ressources s’ouvre dans Visual Studio, ajoutez des ressources au fichier de ressources.

Pour ajouter un fichier de ressources de fonctionnalité à une fonctionnalité SharePoint

  1. Si la solution SharePoint n’est pas déjà ouverte dans Visual Studio, ouvrez-la.

  2. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le nom d’une fonctionnalité sous le nœud Fonctionnalité, puis choisissez Ajouter une ressource de fonctionnalité.

    Cette étape ajoute un fichier de ressources à la fonctionnalité au format {ResourceFileName}.{culture}{.resx}, comme Feature1.en-US.resx.

  3. Lorsque l’Éditeur de ressources s’ouvre dans Visual Studio, ajoutez des ressources au fichier de ressources.

Localiser des solutions SharePoint Visual Studio

Lorsque vous localisez une solution, vous devez tenir compte de toutes les informations textuelles que votre solution affiche aux utilisateurs. Les messages d’information, les messages d’erreur et les chaînes d’interface utilisateur doivent être traduits et ces traductions doivent être placées dans les fichiers de ressources.

Chaque chaîne d’un fichier de ressources a un identificateur unique. Utilisez le même identificateur pour la chaîne traduite dans chaque fichier de ressources. Par exemple, si « String1 » est l’identificateur de la première chaîne du fichier de ressources par défaut, utilisez le même identificateur pour la première chaîne dans les fichiers de ressources spécifiques à la langue.

Il existe généralement trois domaines que vous localisez dans les applications SharePoint Visual Studio : fonctionnalités, balisage de page ASPX et code. À des fins d’illustration, les sections suivantes supposent que vous disposez d’une solution SharePoint que vous souhaitez localiser en allemand et en japonais. La langue par défaut est l'anglais.

Localiser les fonctionnalités

Pour localiser une fonctionnalité, vous devez remplacer le titre et la description codés en dur de la fonctionnalité par une expression qui fait référence au titre et à la chaîne traduits dans le fichier de ressources localisées. Vous effectuez cette modification dans le Concepteur de fonctionnalités dans Visual Studio.

Pour localiser votre fonctionnalité anglaise en allemand et en japonais, vous ajoutez trois éléments de projet du fichier de ressources à votre projet : un pour l’anglais, un pour l’allemand et un pour le japonais. Les fichiers de ressources de fonctionnalité ne peuvent pas être utilisés pour localiser le balisage ASPX ou le codage. Des fichiers de ressources distincts sont requis pour eux.

Après avoir créé les fichiers de ressources de fonctionnalité, ajoutez-y des chaînes traduites. Accédez aux chaînes localisées avec une expression au format suivant :

$Resources:String ID

Les ressources de fonctionnalité dans Visual Studio sont toujours nommées ressources. Si vous sélectionnez une langue autre que Langue invariable, un ID de culture est ajouté au nom du fichier de ressources. Par exemple, si vous ajoutez un fichier de ressources de fonctionnalité de langue invariable (par défaut), il est appelé Resources.resx. Si vous ajoutez une ressource de fonctionnalité spécifique à la langue en sélectionnant une culture Japonais (Japon), le fichier est appelé Resources.ja-JP.resx. Les noms des fichiers de ressources de fonctionnalité sont automatiquement attribués et ne peuvent pas être modifiés.

L’étendue des ressources de fonctionnalité est locale par rapport à la fonctionnalité à laquelle elles sont ajoutées. Pour créer des ressources qui peuvent être utilisées par n’importe quel fichier de fonctionnalité ou d’élément dans la solution, ajoutez un élément de projet Fichier de ressources globales au lieu d’un fichier de ressources de fonctionnalité. L’élément de projet Fichier de ressources globales se trouve dans le dossier 2010 sous SharePoint dans la boîte de dialogue Ajouter un nouvel élément. Les fichiers de ressources globales sont déployés dans le dossier \Ressources du dossier racine SharePoint.

Pour localiser une fonctionnalité

  1. Dans l’Explorateur de solutions, ouvrez le menu contextuel du nœud Feature1, puis choisissez Ajouter une ressource de fonctionnalité.

  2. Dans la boîte de dialogue Ajouter une ressource, choisissez Langue indifférente dans la liste comme culture du fichier de ressources de fonctionnalité de langue par défaut.

  3. Répétez l’étape précédente pour chaque langue localisée, en choisissant les langues de votre choix pour les fichiers de ressources de fonctionnalités localisées.

    Des fichiers de ressources de fonctionnalités distincts sont créés : un pour la langue par défaut et un pour chaque langue localisée que vous souhaitez prendre en charge.

  4. Ouvrez chaque fichier de ressources dans l’Éditeur de ressources, puis entrez tous les ID de chaîne et leurs valeurs.

    Par exemple, dans le fichier de ressources de fonctionnalité par défaut, entrez un ID de chaîne de Titre avec la valeur Mon titre de fonctionnalité et un deuxième ID de chaîne Description avec la valeur Ma description de fonctionnalité. Pour chaque fichier de ressources localisé, utilisez les mêmes ID de chaîne que ceux utilisés dans la ressource de fonctionnalité par défaut, mais entrez des chaînes localisées pour les valeurs.

  5. Après avoir entré toutes les valeurs de ressource, ouvrez le menu contextuel de la fonctionnalité (par exemple, Feature1.feature), puis choisissez Concepteur de vues pour ouvrir la fonctionnalité dans le Concepteur de fonctionnalités.

  6. Pour localiser les champs Titre et Description dans la fonctionnalité, utilisez le format suivant pour entrer des valeurs dans leurs zones :

    $Resources:Identificateur de chaîne

    Par exemple, entrez $Resources:Titre dans la zone Titre de la fonctionnalité et $Resources:Description dans la zone Description de la fonctionnalité.

    Les ID de chaîne doivent correspondre à ceux utilisés dans les fichiers de ressources.

  7. Choisissez la touche F5 pour générer et exécuter l’application.

  8. Dans SharePoint, ouvrez le menu Actions du site, choisissez Paramètres du site, puis, dans la section Actions du site, choisissez le lien Gérer les fonctionnalités du site.

  9. Dans SharePoint, remplacez la langue d’affichage par défaut.

    Le titre et la description de la fonctionnalité localisée s’affichent dans l’application. Pour afficher les ressources localisées, un module linguistique doit être installé sur le serveur SharePoint qui correspond à la culture du fichier de ressources.

Localiser le balisage de page ASPX

Pour localiser les pages ASP.NET, vous ajoutez trois éléments de projet Fichier de ressources à votre projet : un pour l’anglais, un pour l’allemand et un pour le japonais. Si vous n’avez pas besoin de localiser du code en plus du balisage, vous pouvez ajouter des fichiers de ressources globales.

Généralement, les pages ASP.NET (.aspx) utilisent des valeurs de chaîne codées en dur. Pour localiser ces chaînes, remplacez-les par des expressions qui référencent des ressources localisées.

Pour localiser le balisage ASPX

  1. Ajoutez des fichiers de ressources distincts : un pour le langage par défaut et un pour chaque langage localisé.

    Si vous localisez uniquement le balisage et non le code, ajoutez un élément de projet Fichier de ressources globales. Si vous localisez le code et le balisage, ajoutez un élément de projet Fichier de ressources.

    1. Pour ajouter un fichier de ressources globales, dans l’Explorateur de solutions, ouvrez le menu contextuel d’un élément de projet SharePoint, puis choisissez Ajouter>Nouvel élément. Sous le nœud SharePoint 2010, choisissez le modèle Fichier de ressources globales.

    2. Pour ajouter un fichier de ressources, dans l’Explorateur de solutions, ouvrez le menu contextuel d’un élément de projet SharePoint, puis choisissez Ajouter>Nouvel élément. Choisissez le modèle Fichier de ressources.

    Notes

    Veillez à ajouter les fichiers de ressources à un élément de projet SharePoint pour activer la propriété Type de déploiement. Cette propriété est requise plus loin dans cette procédure. Si votre solution n’a pas d’élément de projet SharePoint, vous pouvez ajouter un projet SharePoint vide et supprimer son fichier Elements.xml par défaut.

  2. Donnez au fichier de ressources de langage par défaut un nom de votre choix en ajoutant une extension .resx, telle que MyAppResources.resx. Utilisez le même nom de base pour chaque fichier de ressources localisé, mais ajoutez l’identifiant de culture. Par exemple, nommez une ressource localisée en allemand MyAppResources.de-DE.resx.

  3. Remplacez la valeur de la propriété Type de déploiement de chaque fichier de ressources par AppGlobalResource pour qu’ils soient déployés dans le dossier App_GlobalResources du serveur. Le dossier App_GlobalResources se trouve dans C:\inetpub\wwwroot\wss\VirtualDirectories\<numéro de port>\App_GlobalResources.

  4. Si vous utilisez les ressources pour localiser le code en plus du balisage ASPX, laissez la valeur de la propriété Action de génération de chaque fichier comme Ressource incorporée. Si vous utilisez les fichiers de ressources uniquement pour localiser le balisage, vous pouvez éventuellement modifier la valeur de propriété des fichiers en Contenu. Pour plus d’informations, consultez Localiser des solutions SharePoint.

    Notes

    Si vous utilisez des fichiers de ressources non globales, déplacez-les dans le dossier d’élément de projet pour activer la propriété Type de déploiement et d’autres propriétés spécifiques à SharePoint.

  5. Ouvrez chaque fichier de ressources et ajoutez des chaînes localisées, en utilisant les mêmes ID de chaîne dans chaque fichier.

  6. Dans le balisage XML de la page ou du contrôle ASPX, remplacez les chaînes codées en dur par des valeurs qui utilisent le format suivant :

    <%$Resources:Resource File Name, String ID%>
    

    Par exemple, pour localiser le texte d’un contrôle d’étiquette sur une page d’application, vous devez modifier :

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="Label text"></asp:Label>
    </asp:Content>
    

    to

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="<%$Resources:MyAppResources,String1%>"></asp:Label>
    </asp:Content>
    
  7. Choisissez la touche F5 pour générer et exécuter l’application.

  8. Dans SharePoint, remplacez la langue d’affichage par défaut.

    Les chaînes localisées apparaissent dans l’application. Pour afficher les ressources localisées, un module linguistique doit être installé sur le serveur SharePoint qui correspond à la culture du fichier de ressources.

Localiser du code

En plus de localiser les chaînes de fonctionnalités et le balisage ASP.NET, vous devez également localiser les chaînes de message et les chaînes d’erreur qui apparaissent dans votre code de solution. Les messages d’erreur et d’information localisés sont contenus dans des assemblies satellites. Les assemblies satellites contiennent des chaînes visibles par les utilisateurs, telles que le texte de l’interface utilisateur et les messages de sortie comme des exceptions.

Visual Studio utilise le modèle hub-and-spoke .NET Framework standard. Le hub, ou l’assembly de programmes principal, contient les ressources de langue par défaut. Les spokes, ou assemblies satellites, contiennent les ressources spécifiques à la langue. Pour plus d’informations, consultez Empaquetage et déploiement de ressources. Les assemblies satellites sont compilés à partir de fichiers de ressources (.resx). Lorsque vous ajoutez des fichiers de ressources spécifiques à la langue à votre projet et au package de solution, Visual Studio compile les fichiers de ressources dans des assemblies satellites nommés {Project Name}.resources.dll.

Pour localiser du code

  1. Dans Explorateur de solutions, ouvrez le menu contextuel d’un élément de projet, puis choisissez Ajouter>Module.

    Choisissez le modèle Fichier de ressources.

    Notes

    Veillez à ajouter le fichier de ressources à un élément de projet SharePoint afin que la propriété Type de déploiement soit disponible. Cette propriété est requise plus loin dans cette procédure.

  2. Donnez au fichier de ressources de langage par défaut un nom de votre choix devant une extension .resx, par exemple MyAppResources.resx.

  3. Répétez les étapes 1 et 2 pour ajouter des fichiers de ressources distincts à l’élément de projet SharePoint : un pour chaque langue localisée.

    Utilisez le même nom de base pour chaque fichier de ressources localisé, mais ajoutez l’identifiant de culture. Par exemple, nommez une ressource localisée en allemand MyAppResources.de-DE.resx.

  4. Ouvrez chaque fichier de ressources et ajoutez des chaînes localisées. Utilisez les mêmes identifiants de chaîne dans chaque fichier.

  5. Remplacez la valeur de la propriété Type de déploiement de chaque fichier de ressource par AppGlobalResource pour que chaque fichier soit déployé dans le dossier App_GlobalResources du serveur.

  6. Conservez la valeur de la propriété Action de génération de chaque fichier en tant que Ressource incorporée.

    Les ressources incorporées sont compilées dans la DLL du projet.

  7. Générez le projet pour créer les DLL satellites de ressources.

  8. Dans le Concepteur de packages, choisissez l’onglet Avancé, puis ajoutez l’assembly satellite.

  9. Dans la zone Emplacement, ajoutez un dossier d’identifiant de culture au chemin d’accès d’emplacement, tel que de-DE\<Project Item Name>.resources.dll.

  10. Si votre solution ne référence pas déjà l’assembly System.Web, ajoutez-y une référence et ajoutez une directive dans votre code à System.Web.

  11. Recherchez toutes les chaînes codées en dur dans votre code qui sont visibles par les utilisateurs, telles que le texte de l’interface utilisateur, les erreurs et le texte de message. Remplacez-les par un appel à la méthode GetGlobalResourceObject à l’aide de la syntaxe suivante :

    HttpContext.GetGlobalResourceObject("Resource File Name", "String ID")
    
  12. Appuyez sur la touche F5 pour générer et exécuter l’application.

  13. Dans SharePoint, remplacez la langue d’affichage par défaut.

    Les chaînes localisées apparaissent dans l’application. Pour afficher les ressources localisées, un module linguistique doit être installé sur le serveur SharePoint qui correspond à la culture du fichier de ressources.

Le code non localisé utilise des valeurs de chaîne codées en dur. Pour localiser les chaînes de code, remplacez-les par des appels à GetGlobalResourceObject, qui est une méthode qui référence des ressources localisées.

Localisation du code du composant web

Les composants web incluent une fonctionnalité d’éditeur de propriétés personnalisées qui inclut des attributs de code qui utilisent des chaînes codées en dur, telles que WebDisplayName, Category et WebDescription. Pour remplacer les valeurs de chaîne pour ces attributs, créez une classe distincte qui dérive de la classe d’attributs. Dans ces classes, définissez la propriété de l’attribut. La propriété de l’attribut dépend de la classe de base. Par exemple, la propriété de l’attribut WebDisplayName est DisplayNameValue et la propriété de l’attribut WebDescription est DescriptionValue.

Dans la classe dérivée, référencez l’ID de chaîne du fichier de ressources et l’objet ResourceManager pour obtenir la valeur localisée de l’ID de chaîne. Retourne cette valeur à l’attribut de l’éditeur de propriétés.

Voir aussi