Flerspråkiga hemsidor med .NET

Mes Recou kan man sedan ange textsträngar, bilder och andra resurser som ska vara specifika för en speciell kultur.

Globala resurser

Globala resursfiler läggs i App_GlobalResources och man kan få fram värderna genom följande uttryck:

<asp:Literal runat="server" Text="<%$ Resources:NamnPåResursFil, MinSträngNyckel%>" />

<asp:Localize runat="server" ID="CategoryTitle" Text="Category" meta:resourcekey="MyKey" />

Kompilera med Resgen

Man måste (inte nödvändigt) kompilera filerna med hjälp av verktyget Resgen.exe som följer med SDK Visual Studio. Verktyget kan köras från cmd-promten och finns i följande sökväg. "C:\Program\Microsoft Visual Studio 8\SDK\v2.0\Bin\ResGen"

Ett tips är också att skapa ett eget verktyg i Visual Studo för att snabbt kunna kompilera Resursfilerna. Gör enligt följande:

1. Klicka "External tools"
2. Lägg in sökvägen till .exe-filen "C:\Program\Microsoft Visual Studio 8\SDK\v2.0\Bin\ResGen.exe" på "command"
3. Välj "$(ItemPath)" på "Arguments"
4. Namnge och spara ditt verktyg
5. Öppna resursfilen och klicka på det nya verktyget
6. Den kompilerade filen "Resource.resources" har nu skapats

Lokala resurser

Lokala resursfiler lägger man i mappen App_LocalResources och döper dem efter namnet på sidan.

Ifrån koden anropar man dem så här:

string value = GetLocalResourceObject("MyKeyName").ToString();

Eller på ASPX-sidor (i exemplet lägger man till nyckeln "MyLabelKey.Text" i resursfilen):

<asp:Label EnableViewState="false" meta:resourcekey="MyLabelKey" runat="server" />

Skapa din egen resource provider

Om man inte vill använda de inbyggda resursfilerna i ramverket kan man skapa en egen provider. Läs inlägget ASP.NET 2.0 & lokalisering för mer information om hur man skapar en sådan provider för att tex läsa textsträngarna från en databas. Perfekt om man vill utveckla ett separat administrationsgränssnitt för att ge slutanvändaren möjlighet att uppdatera texterna.

Fler resurser på ämnet

Se introduktionsfilm från Microsoft
http://msdn.microsoft.com/msdnmag/issues/06/08/BasicInstincts/
http://www.longhornjunkies.net/QuickStartv20/aspnet/doc/localization.aspx

By Jesper Lind
1