In meinen bisherigen Beispielen für Features und Inhaltstypen habe ich die Namen und Bezeichnungen direkt als Text in die entsprechende XML-Datei geschrieben. Dies hat den Nachteil, dass diese Features und Definitionsdateien sprachabhängig sind. MOSS 2007 bzw. WSS V3 bietet jedoch auch die einfache Verwendung von Resource-Dateien. Hierzu hat man prinzipiell 2 Möglichkeiten:
- Globale Resource-Datei: Erweitern oder Erstellen einer Resource-Datei im Verzeichnis „C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\Resources“. Bestehende Resource-Dateien sollten prinzipiell nicht angepasst werden, da die Gefahr besteht, dass diese beim nächsten Service Pack bzw. einem Patch wieder überschrieben werden.
- Lokale Resource-Datei im Feature: Dieser Ansatz hat den Vorteil, dass sich die Resource-Datei nur auf das aktuelle Feature bezieht.
Ich möchte an dieser Stelle die Verwendung von lokalen Resourcen bechreiben, die sich auf das aktuelle Feature beziehen. Als Beispiel werde ich die Felddefinitionen aus Teil 2 (Websitespalten per Feature erzeugen) verwenden.
Um lokale Resourcen zu verwenden sind die folgenden Schritte notwendig:
1. Unterverzeichnis Resources innerhalb des Feature-Verzeichnisses anlegen
2. Resource-Datei (.resx) mit den notwendigen Elementen und Texten erstellen. Am einfachsten erstellt man eine Resourcen-Datei mit Visual Studio .NET 2005
a. Visual Studio .NET 2005 starten
b. Menü: File -> New -> File
c. Unter Categories z.B. C# und in Templates Resource File auswählen

d. Die Texte können nun direkt mit Schlüssel und Wert eingegeben und als Standard unter dem Namen Resources.resx im Verzeichnis Resources innerhalb des Feature Verzeichnisses abgespeichert werden:
e. Sind sprachabhängige Texte notwendig, kann man die Resource-Datei mit dem sprachspezifischen Namensteil gespeichert werden. Für Deutsche Texte wäre dies de-DE:

3. Texte aus der Resource-Datei in feature.xml und sonstigen Definitionsdateien verwenden. Dies erfolgt durch die Verwendung des Bezeichners $Resources, gefolgt vom Schlüssel. Beispielsweise verwendet die folgende feature.xml Datei eine Resource-Datei, die im Unterverzeichnis Resources liegt:
<Feature Id="F3079CA0-7B39-49de-AF51-255D3CE9759D"
Title="$Resources:Title"
Description="$Resources:Description"
Version="1.0.0.0"
Scope="Site"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml" />
</ElementManifests>
</Feature>
4. Innerhalb der Datei elements.xml erfolgt der Zugriff in gleicher Weise:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field ID="{5024022C-ED24-4959-8A9C-D4E9D0E97A0C}"
Name="DocNo"
Group="$Resources:Group"
Type="Text"
DisplayName="Dokument-Nr."
SourceID=http://schemas.microsoft.com/sharepoint/v3/fields
StaticName="DocNo"
ShowInEditForm="FALSE"
ShowInFileDlg="FALSE"
ShowInNewForm="FALSE"
Required="FALSE"/>
...