Procédure : localisation des colonnes, types de contenu et listes
Dernière modification : mardi 7 décembre 2010
S’applique à : SharePoint Foundation 2010
Dans cet article
Scénario
Création d’un projet SharePoint
Création d’une fonctionnalité avec étendue de collection de sites
Ajouter des ressources globales au projet
Création de colonnes de site, d’un type de contenu et d’une définition de liste
Création d’une fonctionnalité pour définir une instance de liste
Ajout de ressources de fonctionnalité
Tester le projet
Cette procédure explique comment fournir et consommer les ressources de localisation pour les colonnes, les types de contenu, et les listes que vous créez et déployez. Les tâches illustrées dans la procédure incluent :
Utilisation d’expressions de ressources dans les définitions XML des colonnes, types de contenu et listes.
Déploiement des ressources de localisation spécifiques à une seule fonctionnalité.
Déploiement des ressources de localisation qui peuvent être partagées par plusieurs fonctionnalités.
Conditions requises
Pour les conditions requises, voir Conditions de développement de solutions SharePoint. En outre, les conditions spécifiques requises pour compléter cette procédure sont les suivantes :
Au moins un pack de langue Microsoft SharePoint Foundation 2010.
Pour plus d’informations sur le téléchargement et l’installation des packs de langue, voir Packs de langue pour SharePoint Foundation 2010.
Une collection de sites SharePoint Foundation qui inclut au moins un site Web pour lequel vous avez activé la prise en charge d’autres langues.
Pour plus d’informations sur l’activation de la prise en charge d’autres langues, voir Autoriser plusieurs langues pour l’interface utilisateur du site (éventuellement en anglais).
Scénario
Dans cette procédure, vous créez un projet SharePoint dans Microsoft Visual Studio 2010, intitulé WingtipReports. Le projet inclut deux fonctionnalités, l’une avec une étendue au niveau du site afin qu’elle puisse être activée pour une collection de sites complète, et l’autre avec une étendue Web afin qu’elle puisse être activée pour les sites Web de la collection.
La première fonctionnalité ajoute plusieurs nouveaux éléments à la collection de sites, y compris plusieurs colonnes de site personnalisées ; un contenu de site personnalisé nommé Weekly Status Report (Rapport d’état hebdomadaire) ; et un modèle de liste personnalisé intitulé Weekly Status Reports (Rapports d’état hebdomadaires). Tous ces éléments sont localisés en remplaçant les chaînes d’affichage codées en dur par les expressions de ressources Microsoft ASP.NET qui extraient les valeurs de chaînes localisées des fichiers de ressource de langue (.resx). Ces fichiers sont installés comme ressources globales et, par conséquent, peuvent être partagés par d’autres fonctionnalités créées lors de déploiements distincts par les développeurs de Wingtip.
Une seconde fonctionnalité, ayant le Web comme étendue, fournit une instance de la liste Weekly Status Reports. La plus grande part du texte affiché pour cette instance est assurée par les colonnes de site et par les types de contenu de site provisionnés lorsque la première fonctionnalité est activée. (Pour cette raison, la seconde fonctionnalité est définie comme ayant une dépendance d’activation par rapport à la première fonctionnalité.) Cependant, l’instance de liste possède de fait son propre titre et sa propre description, et ce texte est localisé en extrayant les traductions d’un autre ensemble de fichiers de ressources. Comme ces ressources localisent une seule instance de liste, elles sont installées comme ressources locales, accessibles seulement à la fonctionnalité qui les installe.
Création d’un projet SharePoint
D’abord, créez un projet SharePoint dans Visual Studio 2010, et intitulez le projet WingtipReports.
Pour créer un projet SharePoint
Démarrez Visual Studio 2010 en tant qu’administrateur.
Affichez la boîte de dialogue Nouveau projet en pointant sur Nouveau dans le menu Fichier, puis en cliquant sur Nouveau projet.
Développez le nœud SharePoint sous Visual C# ou Visual Basic, puis cliquez sur 2010.
Dans le volet Modèles, cliquez sur Projet SharePoint vide, modifiez le nom du projet en WingtipReports, puis cliquez sur OK.
L’Assistant Personnalisation de SharePoint s’ouvre.
Dans la page Spécifier le site et le niveau de sécurité pour le débogage, entrez l’URL du site SharePoint auquel vous voulez ajouter le nouvel élément de champ personnalisé, ou utilisez l’emplacement par défaut (http://< nom système>/).
Dans la section Quel est le niveau de confiance de cette solution SharePoint ?, sélectionnez Déployer en tant que solution de batterie.
Cliquez sur Terminer.
Le projet apparaît dans l’Explorateur de solutions.
Dans l’Explorateur de solutions, cliquez sur le nœud du projet, puis appuyez sur F4.
La fenêtre Propriétés s’ouvre.
Attribuez à la propriété Inclure un assembly dans le package la valeur False.
Le projet n’a pas de code et n’a pas besoin de déployer un assembly.
Appuyez sur Ctrl+Maj+S pour tout enregistrer.
Création d’une fonctionnalité avec étendue de collection de sites
Le principal élément majeur que vous devez ajouter à ce projet est une fonctionnalité qui peut être utilisée pour configurer les définitions XML des colonnes de site, un type de contenu de site et un modèle de liste, en plus des ressources de localisation pour prendre en charge chacun de ces éléments. Cette fonctionnalité aura une étendue de collection de sites afin que les éléments que fournit la fonctionnalité soient accessibles à tous les sites Web de la collection de sites.
Pour créer une fonctionnalité avec étendue de collection de sites
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier Fonctionnalités, puis cliquez sur Ajouter une fonctionnalité.
Un dossier intitulé Fonctionnalité1 vient s’ajouter et le Concepteur de fonctionnalités s’ouvre.
Cliquez avec le bouton droit sur le dossier Fonctionnalité1, sélectionnez Renommer et tapez WeeklyStatusReport.
Dans le Concepteur de fonctionnalités, remplacez la valeur générée automatiquement pour le champ Titre par la chaîne suivante :
$Resources:WeeklyStatusFeature
Cette chaîne est une expression ASP.NET. Le signe dollar ($) signifie qu’une expression suit. Le préfixe Resources indique le type d’expression. Le suffixe après les deux points (:) désigne la valeur de l’expression qui sera résolue. Dans ce cas, WeeklyStatusFeature est le nom d’une clé d’un fichier de ressources. SharePoint Foundation évalue l’expression et la remplace par la valeur localisée qu’il trouve dans un fichier de ressources. Plus loin dans la procédure, vous créerez un fichier de ressource qui contient la paire clé/valeur correcte.
Il se peut que, parfois, vous rencontriez des expressions de ressources telles que celle-ci :
$Resources:wingtip,WeeklyStatusFeature
La valeur avant la virgule (,) spécifie un nom de fichier de base pour le fichier de ressources, wingtip. Vous pouvez utiliser la même syntaxe pour l’expression de ressource de cette étape, mais à l’étape 8, vous définissez une propriété qui rend inutile la spécification d’un nom de fichier de base.
Dans le champ Description, collez la chaîne suivante :
$Resources:WeeklyStatusFeatureDesc
Dans la liste Étendue, sélectionnez Site.
Si la fenêtre Explorateur de package n’est pas ouverte, dans le menu Affichage, pointez sur Autres fenêtres, puis cliquez sur Explorateur de package.
Dans l’Explorateur de package, cliquez sur le nœud de $Resources:WeeklyStatusFeature, et appuyez sur F4 pour afficher la fenêtre Propriétés.
Dans la fenêtre Propriétés, définissez la propriété Fichier de ressources par défaut avec la valeur wingtip.
Modifiez la valeur de la propriété Chemin d’accès du déploiement en WingtipReports.
Appuyez sur Ctrl+Maj+S pour tout enregistrer.
Ajouter des ressources globales au projet
L’étape suivante consiste à ajouter les fichiers de ressources de localisation à la solution SharePoint. Les fichiers que vous ajoutez dans cette étape sont déployés comme ressources globales. Celles-ci sont installées dans le dossier %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\Resources sur tous les serveurs de la batterie, où ils peuvent être partagés par de nombreuses fonctionnalités, y compris celles que les autres utilisateurs déploient. L’hypothèse de travail de cette procédure est que vous voulez utiliser les colonnes de site et les types de contenu que vous créez dans d’autres fonctionnalités que vous développez dans les projets futurs.
Dans cette phase du projet, vous créez deux fichiers de ressources. D’abord, vous créez un fichier de ressources pour prendre en charge la langue par défaut du site Web. Puis, vous créez un second fichier de ressources pour l’une des autres langues prises en charge par le site Web. Dans un environnement de production, vous pouvez créer et déployer plusieurs autres fichiers de ressources spécifiques à une langue.
Pour ajouter les fichiers de ressources globaux
Dans l’Explorateur de solutions, cliquez sur le nœud du projet. Puis, dans le menu Projet, cliquez sur Ajouter un dossier mappé SharePoint.
Dans la boîte de dialogue Ajouter un dossier mappé SharePoint, sélectionnez Ressources, puis cliquez sur OK.
Un dossier Ressources vient s’ajouter au projet. Vérifiez les propriétés du dossier. Notez que la propriété DeploymentLocation a la valeur {SharePointRoot}\Resources.
Dans l’Explorateur de solutions, sélectionnez le dossier Ressources, puis, dans le menu Projet, sélectionnez Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, développez le nœud pour Visual C# si votre langage de développement est C#, ou Éléments communs si vous travaillez en Visual Basic. Sélectionnez Général. Dans le volet des modèles, sélectionnez Fichier de ressources. Nommez le fichier Wingtip.resx, puis cliquez sur Ajouter.
Le fichier de ressources est ajouté au projet et s’ouvre dans l’éditeur de ressources managées.
Conseil Chaque fois que vous définissez des fichiers dans le dossier des ressources globales, une bonne solution consiste à choisir des noms de fichier uniques pour éviter les conflits de noms avec les ressources configurées par d’autres applications. Par convention, préfixez le nom de fichier par le nom de votre entreprise. Par exemple, si votre compagnie se nomme Wingtip Toys, les noms des fichiers de ressources que vous déployez peuvent tous commencer par « Wingtip ».
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le fichier de ressources que vous venez de créer, puis sélectionnez Ouvrir avec.
Dans la boîte de dialogue Ouvrir avec, sous Choisissez le programme à utiliser pour ouvrir ce fichier, sélectionnez Éditeur XML (Texte). Puis, cliquez sur OK.
La ressource s’ouvre dans l’éditeur XML.
Dans l’éditeur XML, faites défiler l’écran jusqu’en bas du fichier, et insérez une ligne blanche juste au-dessus de la balise finale </root>. Placez le point d’insertion sur la ligne blanche, puis collez le code XML suivant dans le fichier.
<data name="Accomplishments" xml:space="preserve"> <value>Accomplishments (invariant)</value> </data> <data name="BlockingIssues" xml:space="preserve"> <value>Blocking Issues (invariant)</value> </data> <data name="Direction" xml:space="preserve"> <value>LTR</value> <comment>Can be LTR, RTL, or none</comment> </data> <data name="FromDate" xml:space="preserve"> <value>From (invariant)</value> </data> <data name="PlanForNextWeek" xml:space="preserve"> <value>Plan For Next Week (invariant)</value> </data> <data name="SubmittedBy" xml:space="preserve"> <value>Submitted By (invariant)</value> </data> <data name="ToDate" xml:space="preserve"> <value>To (invariant)</value> </data> <data name="WeeklyStatusFeature" xml:space="preserve"> <value>Weekly Status Reports (invariant)</value> </data> <data name="WeeklyStatusFeatureDesc" xml:space="preserve"> <value>Provides support for weekly status report lists. (invariant)</value> </data> <data name="WeeklyStatusListTemplate" xml:space="preserve"> <value>Weekly Status Reports List (invariant)</value> </data> <data name="WeeklyStatusListTemplateDesc" xml:space="preserve"> <value>A list of weekly progress reports. (invariant)</value> </data> <data name="WeeklyStatusReportCT" xml:space="preserve"> <value>Weekly Status Report (invariant)</value> </data> <data name="WeeklyStatusReportCTDesc" xml:space="preserve"> <value>Add a new weekly status report. (invariant)</value> </data>
Appuyez sur Ctrl+S pour enregistrer le fichier. Puis, dans le menu Fichier, cliquez sur Fermer pour fermer le fichier.
Dans l’Explorateur de solutions, sélectionnez le fichier Wingtip.resx. Dans le menu Édition, cliquez sur Copier. Puis cliquez sur Coller.
Un fichier intitulé Copie de Wingtip.resx est ajouté au dossier Ressources.
Cliquez avec le bouton droit sur le fichier intitulé Copie de Wingtip.resx, puis cliquez sur Renommer. Renommez le fichier en Wingtip.langue-PAYS/RÉGION.resx où langue désigne le code à deux lettres correspondant à la langue par défaut de votre site Web et PAYS/RÉGION le code à deux lettres de la sous-culture.
Par exemple, si la langue par défaut est Français (France), le nom du fichier de ressources est Wingtip**.fr-FR**.resx.
Pour plus d’informations sur les identificateurs de langage, voir la classe System.Globalization.CultureInfo.
Important
Dans les expressions de ressources, vous référencez un fichier de ressources en utilisant son nom de fichier de base, tel que « Wingtip ». Quand SharePoint Foundation extrait une valeur de ressource, il recherche un fichier de ressources ayant ce nom, suivi d’un identificateur de langue qui correspond à la valeur de la propriété CurrentUICulture du thread en cours d’exécution. SharePoint Foundation s’attend à trouver une correspondance exacte. Par exemple, si l’identificateur de langue du thread en cours est « pt-BR », SharePoint Foundation recherche un fichier de ressources ayant le nom « NomFichierDeBase.pt-BR.resx ». Il ignore les fichiers qui ont le même code de langue, mais un code de sous-culture différent, comme « NomFichierDeBase.pt.resx » et « NomFichierDeBase.pt-PT.resx ».
Si SharePoint Foundation ne trouve pas de fichier de ressources qui correspond à l’identificateur de langue du thread en cours d’exécution, il recherche un fichier de ressources de secours. Le premier choix de secours est un fichier de ressources correspondant à la culture indifférente – à savoir, un fichier de ressources qui n’a pas d’identificateur de langue en fin du nom de fichier. Par exemple, dans le projet en cours, le fichier de ressources de la culture indifférente est Wingtip.resx. Si SharePoint Foundation ne peut pas trouver de fichier de ressources pour la culture indifférente, il essaie de retourner à la langue par défaut. S’il ne trouve pas de fichier de ressources pour la langue par défaut, il affiche le nom de la ressource.
Répétez les étapes 9 et 10, cette fois en ajoutant l’identificateur propre à la culture et correspondant à une autre langue activée sur votre site Web.
Ouvrez les deux fichiers de ressources spécifiques à la culture que vous venez de créer, puis remplacez le mot « invariant » par l’identificateur de langue du fichier. Par exemple, dans Wingtip.en-US.resx, « Accomplishments (invariant) » devient « Accomplishments (en-US) ».
Pour cette procédure, il n’est pas nécessaire de traduire les valeurs de chaînes. Il suffit, à la place, d’ajouter un identificateur de langue à une chaîne non traduite. Lorsque vous testez le composant WebPart, l’identificateur de langue indique la langue affichée.
Appuyez sur Ctrl+Maj+S pour enregistrer.
Création de colonnes de site, d’un type de contenu et d’une définition de liste
Maintenant, il est temps de consommer les ressources globales que vous venez de créer. Dans cette phase du projet, vous créez plusieurs colonnes de site personnalisées, puis définissez un type de contenu qui utilise les colonnes. Enfin, vous créez une définition de liste fondée sur le type de contenu.
Pour créer les colonnes de site, le type de contenu et la définition de liste
Dans l’Explorateur de solutions, cliquez sur le nœud du projet. Puis, dans le menu Projet, cliquez sur Ajouter un nouvel élément.
Développez le nœud SharePoint sous Visual C# ou Visual Basic, puis cliquez sur 2010.
Dans le volet Modèles, cliquez sur Élément vide, modifiez le nom de l’élément en Champs, puis cliquez sur Ajouter.
Un dossier Champs apparaît dans l’Explorateur de solutions. Sous le dossier se trouve un fichier nommé Elements.xml.
Si Elements.xml n’est pas ouvert dans l’éditeur, ouvrez-le.
Dans Elements.xml, ajoutez les définitions de champ suivantes entre les balises d’ouverture et de fermeture <Elements> et </Elements>.
<Field ID="{fcc46300-de6e-481e-ac2c-5bc369946712}" Name="SubmittedBy" DisplayName="$Resources:SubmittedBy" Type="User" List="UserInfo" ShowField="NameWithPicture" UserSelectionMode="PeopleOnly" UserSelectionScope="0" Required="TRUE" /> <Field ID="{ab597cd8-5392-4c9a-bf99-51de026408d0}" Name="FromDate" DisplayName="$Resources:FromDate" Type="DateTime" Format="DateOnly" Required="TRUE" > <Default>[today]</Default> </Field> <Field ID="{a69582b1-6756-40af-ab7a-7beab306afc9}" Name="ToDate" DisplayName="$Resources:ToDate" Type="Calculated" Format="DateOnly" ResultType="DateTime" ReadOnly="TRUE" Required="FALSE"> <Formula>=StartDate+7</Formula> <FieldRefs> <FieldRef Name="FromDate"/> </FieldRefs> </Field> <Field ID="{3aaad916-127b-48ad-9c07-9b20d5c82aea}" Name="Accomplishments" DisplayName="$Resources:Accomplishments" Type="Note" NumLines="10" RichText="TRUE" RichTextMode="FullHtml" Required="TRUE"/> <Field ID="{300423a8-5cd6-43de-be09-58318aebe443}" Name="PlanForNextWeek" DisplayName="$Resources:PlanForNextWeek" Type="Note" NumLines="6" RichText="TRUE" RichTextMode="FullHtml" Required="FALSE" /> <Field ID="{a757c55d-85de-40ca-9cc9-b2ba31a0221d}" Name="BlockingIssues" DisplayName="$Resources:BlockingIssues" Type="Note" NumLines="4" RichText="TRUE" RichTextMode="FullHtml" Required="FALSE" />
Appuyez sur Ctrl+S pour enregistrer Elements.xml, puis fermez le fichier.
Dans l’Explorateur de solutions, cliquez sur le nœud du projet. Puis, dans le menu Projet, cliquez sur Ajouter un nouvel élément.
Dans le volet Modèles, cliquez sur Type de contenu, modifiez le nom de l’élément en Types de contenu, puis cliquez sur Ajouter.
Dans l’Assistant de personnalisation SharePoint, sous De quel type de contenu de base ce type de contenu doit-il hériter ?, sélectionnez Élément. Puis, cliquez sur Terminer.
Un dossier Types de contenu s’affiche dans l’Explorateur de solutions. Sous le dossier se trouve un autre fichier nommé Elements.xml.
Dans le nouveau fichier Elements.xml, supprimez tout ce qui se trouve entre les balises d’ouverture et de fermeture <Elements> et </Elements>. puis, insérez la définition de type de contenu suivante.
<!-- Parent ContentType: Item (0x01) --> <ContentType ID="0x010013573845130047cdb90148d52e593cef" Name="$Resources:WeeklyStatusReportCT" Group="Custom Content Types" Description="$Resources:WeeklyStatusReportCTDesc" Inherits="TRUE" Version="0"> <FieldRefs> <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <FieldRef ID="{fcc46300-de6e-481e-ac2c-5bc369946712}" Name="SubmittedBy" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <FieldRef ID="{ab597cd8-5392-4c9a-bf99-51de026408d0}" Name="FromDate" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <FieldRef ID="{a69582b1-6756-40af-ab7a-7beab306afc9}" Name="ToDate" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="FALSE"/> <FieldRef ID="{3aaad916-127b-48ad-9c07-9b20d5c82aea}" Name="Accomplishments" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <FieldRef ID="{300423a8-5cd6-43de-be09-58318aebe443}" Name="PlanForNextWeek" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <FieldRef ID="{a757c55d-85de-40ca-9cc9-b2ba31a0221d}" Name="BlockingIssues" Required="FALSE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> </FieldRefs> </ContentType>
Appuyez sur Ctrl+S pour enregistrer Elements.xml, puis fermez le fichier.
Dans l’Explorateur de solutions, cliquez sur le nœud du projet. Puis, dans le menu Projet, cliquez sur Ajouter un nouvel élément.
Dans le volet Modèles, cliquez sur Définition de liste du type de contenu, modifiez le nom de l’élément en Définitions de liste, puis cliquez sur Ajouter.
Dans l’Assistant de personnalisation SharePoint, sous Quel est le nom complet de la définition de liste ?, collez l’expression de ressource suivante :
$Resources:WeeklyStatusListTemplate
Assurez-vous que la valeur de Quel type de contenu souhaiteriez-vous pour votre définition de liste ? soit $Resources:WeeklyStatusReportCT (WingtipReports\ContentTypes).
Désactivez la case à cocher Ajouter une instance de liste pour cette définition de liste, puis cliquez sur Terminer.
Un dossier Définitions de liste s’affiche dans l’Explorateur de solutions. Sous le dossier se trouve un autre fichier nommé Elements.xml, ainsi qu’un fichier Schema.xml.
Dans le nouveau fichier Elements.xml, remplacez la valeur de l’attribut Description par l’expression de ressource suivante :
$Resources:WeeklyStatusListTemplateDesc"
Appuyez sur Ctrl+S pour enregistrer Elements.xml, puis fermez le fichier.
Dans l’Explorateur de solutions, double-cliquez sur WeeklyStatusReport.feature pour l’ouvrir dans le Concepteur.
Dans le Concepteur de fonctionnalités, vérifiez que la liste sous Éléments dans la fonctionnalitéinclut ces éléments :
Ressources
Champs
Types de contenu
Définitions de liste
Cliquez sur Manifeste (vers le bas). Vérifiez que le manifeste est identique (sauf pour la valeur d’attribut Id) au code XML suivant :
<Feature xmlns="https://schemas.microsoft.com/sharepoint/" DefaultResourceFile="wingtip" Description="$Resources:WeeklyStatusFeatureDesc" Id="e18a0885-083e-43f6-94fe-b6d378a2468c" Scope="Site" Title="$Resources:WeeklyStatusFeature"> <ElementManifests> <ElementManifest Location="Resources\Elements.xml" /> <ElementManifest Location="Fields\Elements.xml" /> <ElementManifest Location="ContentTypes\Elements.xml" /> <ElementManifest Location="ListDefinitions\Elements.xml" /> <ElementFile Location="ListDefinitions\Schema.xml" /> </ElementManifests> </Feature>
Création d’une fonctionnalité pour définir une instance de liste
La tâche suivante consiste à ajouter une seconde fonctionnalité, ayant le Web comme étendue, puis à ajouter la définition d’une instance de liste à la fonctionnalité. L’élément Feature qui définit la fonctionnalité et l’élément ListInstance qui définit l’instance de liste utilisent les expressions de ressources pour les attributs clés. La tâche finale du projet consiste à créer les fichiers de ressources qui fournissent les valeurs de ces expressions.
Comme cette fonctionnalité dépend des éléments déployés par la première fonctionnalité que vous avez créée, vous définirez une dépendance d’activation pour la nouvelle fonctionnalité. Elle ne peut pas être activée tant que la fonctionnalité dont elle dépend ne l’a pas été.
Pour créer une fonctionnalité qui définit une instance de liste
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier Fonctionnalités, puis cliquez sur Ajouter une fonctionnalité.
Un dossier intitulé Fonctionnalité1 vient s’ajouter et le Concepteur de fonctionnalités s’ouvre.
Cliquez avec le bouton droit sur le dossier Fonctionnalité1, sélectionnez Renommer et tapez WeeklyStatusList.
Dans le Concepteur de fonctionnalités, remplacez la valeur générée automatiquement pour le champ Titre par la chaîne suivante :
$Resources:WeeklyStatusListFeature
Dans le champ Description, collez la chaîne suivante :
$Resources:WeeklyStatusListFeatureDesc
Vérifiez que la liste Étendue a pour valeur Web.
Cliquez sur Dépendances d’activité de fonctionnalité (vers le bas) pour développer le volet des dépendances. Puis, cliquez sur Ajouter.
La boîte de dialogue Ajouter des dépendances d’activation de fonctionnalité s’ouvre.
Cliquez sur $Resources:WeeklyStatusFeature, puis sur Ajouter.
Dans l’Explorateur de solutions, cliquez sur le nœud du projet. Puis, dans le menu Projet, cliquez sur Ajouter un nouvel élément.
La boîte de dialogue Ajouter un nouvel élément s’affiche.
Développez le nœud SharePoint sous Visual C# ou Visual Basic, puis cliquez sur 2010.
Dans le volet Modèles, cliquez sur Instance de liste. Acceptez le nom par défaut, puis cliquez sur Ajouter.
Dans l’Assistant de personnalisation SharePoint, remplacez la valeur de Quel est le nom complet de la liste ? par la chaîne suivante :
$Resources:WeeklyStatusList
Vérifiez que la valeur de Quelle liste voulez-vous instancier ? soit $Resources:WeeklyStatusListTemplate (WingtipReports\ListDefinitions).
Remplacez la valeur de Description par la chaîne suivante :
$Resources:WeeklyStatusListDesc
Assurez-vous que la case à cocher Ajouter une instance de liste à la barre de lancement rapide est activée, puis cliquez sur Terminer.
Un dossier nommé InstanceListe1 apparaît dans l’Explorateur de solutions ; le fichier Elements.xml apparaît dans le dossier et s’ouvre dans l’éditeur. Notez que les expressions de ressources sont les valeurs des attributs Title et Description de l’élément ListInstance.
Appuyez sur Ctrl+Maj+S pour enregistrer.
Ajout de ressources de fonctionnalité
La dernière tâche consiste à créer les ressources de localisation pour l’instance de liste et la fonctionnalité qui la déploie. Comme ces ressources sont propres à une fonctionnalité, elles peuvent être créées comme ressources locales plutôt que comme ressources globales.
Pour ajouter des ressources locales à une fonctionnalité
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier WeeklyStatusList, puis cliquez sur Ajouter une ressource de fonctionnalité.
Dans la boîte de dialogue Ajouter une ressource, pour Sélectionnez la culture du fichier de ressources, sélectionnez Langue indifférente (Pays indifférent). Puis, cliquez sur OK.
Le fichier de ressources s’ajoute au dossier WeeklyStatusList. Notez que le nom de fichier de base est Ressources. Les ressources locales à une fonctionnalité utilisent toujours ce nom de base. Quand la fonctionnalité est déployée, les fichiers de ressources locales sont placés dans un dossier Ressources, sous le dossier Feature du système de fichiers.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le fichier de ressources que vous venez de créer, puis sélectionnez Ouvrir avec.
Dans la boîte de dialogue Ouvrir avec, sous Choisissez le programme à utiliser pour ouvrir ce fichier, sélectionnez Éditeur XML (Texte). Puis, cliquez sur OK.
La ressource s’ouvre dans l’éditeur XML.
Dans l’éditeur XML, faites défiler l’écran jusqu’en bas du fichier, et insérez une ligne blanche juste au-dessus de la balise finale </root>. Placez le point d’insertion sur la ligne blanche, puis collez le code XML suivant dans le fichier.
<data name="WeeklyStatusList" xml:space="preserve"> <value>Weekly Status Reports (invariant)</value> </data> <data name="WeeklyStatusListDesc" xml:space="preserve"> <value>Use the Weekly Status Reports list to submit progress reports. (invariant)</value> </data> <data name="WeeklyStatusListFeature" xml:space="preserve"> <value>Weekly Status Report List (invariant)</value> </data> <data name="WeeklyStatusListFeatureDesc" xml:space="preserve"> <value>Creates a weekly status report list. (invariant)</value> </data>
Appuyez sur Ctrl+S pour enregistrer le fichier de ressources, puis fermez-le.
Répétez les étapes 1 à 6, cette fois en créant un fichier de ressources pour la langue par défaut de votre site Web. À l’étape 5, remplacez le mot « invariant » par le code de la langue par défaut (par exemple, « fr-FR »).
Répétez les étapes 1 à 6, cette fois en créant un fichier de ressources pour une autre langue prise en charge par votre site Web. À l’étape 5, remplacez le mot « invariant » par le code de la langue par défaut (par exemple, « es-ES »).
Dans l’Explorateur de solutions, double-cliquez sur WeeklyStatusList.feature pour ouvrir la fonctionnalité dans le Concepteur.
Vérifiez que le seul élément sous Éléments dans la fonctionnalité soit InstanceListe1 (WingtipReports).
Dans le Concepteur de fonctionnalités, cliquez sur Manifeste (vers le bas). Vérifiez que le manifeste soit similaire au code XML suivant :
<Feature xmlns="https://schemas.microsoft.com/sharepoint/" Title="$Resources:WeeklyStatusListFeature" Description="$Resources:WeeklyStatusListFeatureDesc" Id="30444f12-2c40-4d2a-92dd-68a30192f0ae" Scope="Web"> <ActivationDependencies> <ActivationDependency FeatureDescription="$Resources:WeeklyStatusFeatureDesc" FeatureId="e18a0885-083e-43f6-94fe-b6d378a2468c" FeatureTitle="$Resources:WeeklyStatusFeature" /> </ActivationDependencies> <ElementManifests> <ElementManifest Location="ListInstance1\Elements.xml" /> <ElementFile Location="Resources\Resources.en-US.resx" /> <ElementFile Location="Resources\Resources.es-ES.resx" /> </ElementManifests> </Feature>
Votre manifeste aura une valeur différente pour l’attribut Id. Les noms de culture des fichiers de ressources peuvent aussi être différents.
Appuyez sur Ctrl+Maj+S pour enregistrer.
Tester le projet
Testez le projet pour vous assurer qu’il fonctionne correctement.
Pour tester le projet
Dans Visual Studio, appuyez sur F5 pour démarrer le débogage.
Le volet Sortie affiche le processus de génération et de déploiement. Enfin, le site Web s’affiche dans le navigateur.
Dans le menu Lancement rapide, recherchez un lien de navigation à la liste Weekly Status Reports. Le titre du lien doit afficher le titre de la liste dans la langue d’affichage par défaut du site.
Cliquez sur la flèche à côté de votre nom d’utilisateur dans le coin supérieur droit de la page. Cliquez sur Langue d’affichage, puis cliquez sur le nom de l’autre langue que vous avez utilisée dans la procédure. Vérifiez que le titre du lien pour la liste Weekly Status Reports s’affiche alors dans cette autre langue.
Cliquez sur le lien à la liste Weekly Status Reports. Puis, cliquez sur Ajouter un nouvel élément ou l’équivalent dans l’autre langue.
Le formulaire Nouvel élément s’affiche.
Vérifiez que tous les champs du formulaire sont affichés dans l’autre langue.
En poursuivant de la même façon, vérifiez que les colonnes de site, le type de contenu et le modèle de liste consomment tous correctement les ressources de localisation.
Vérifiez que Weekly Status Reports est une fonctionnalité de collection de sites et que Weekly Status Report List est une fonctionnalité de site.
Voir aussi
Tâches
Procédure pas à pas : localisation d’un composant WebPart