Är der någon som kan tipsa lite lätt hur man kan gå tillväga för skapa flerspråkstöd till en webbplats, dvs att man tex kan ändra språk från svenska till engelska på en webbplats. Det du pratar om är Satelit Assemblies. Typ Kompilerade Resource files innehållande nycklar och ord för en viss kultur. Att du kan kompilera dem är för att öka prestandan. Du kan köra rena text filer (Resource files) om du vill. Tack för tipset Johan! Jag ska ta en titt på det här med Satelit Assemblies och se vilken lösning som kan tänkas vara mest optimal. Glöm inte att markera inlägget som löst om du är nöjd med ditt svarSpråkstöd
Jag har hört att man kan använda sig av en dll men nackdelen med detta är att man måste kompilera om den när man lägger till fler ord som ska översättas? Det skulle vara intressant att höra era erfarenheter i frågan.
Idagsläget har jag alla översättningar i en databas.Sv: Språkstöd
Dessa fungerar väldigt enkelt.
<code>
[strings]
tack=Thanx!
tillbaka=Back ...
...
</code>
OBS! Nu drar jag en snabb genomgång, ej super detaljerad (har tidsbegränsning :-( )
Du sätter upp den koltur du vill ha i din global.asax (då den gör dem globala) annars måste du sätta kulturen på varje aspx sida (vilket är ett onödigt jobb.)
Typ:
<code>
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-us")
</code>
Du sparar din resurs fil med strings.en-us.txt i en resource mapp.
PS! Du kan ange vad du vill framför koden. ex Nisse.en-us.text, se bara till så du anger det i nedan koddär det nu står strings DS.
Sedan kommer .Net classerna automatiskt leta upp denna då du anger kultur med samma kod. en-us i detta fall.
Sedan kan du hämta ditt värde på typ detta sätt:
OBS! Garanterar inte att detta fungerar då jag bara slängde ihop det en snabbis.
<code>
Public Shared resourceManager As ResourceManager
Public Shared cultureInfo As CultureInfo
ResourceManager.CreateFileBasedResourceManager("strings", _
Server.MapPath("resources") & Path.DirectorySeparatorChar, Nothing)
cultureInfo = New CultureInfo(SelectedCulture)
TextBox.Text = resourceManager .GetString("promptName", cultureInfo)
</code>
Då det är lite bökigt att dra det så här kort så rekomenderar jag dig att du letar upp info ang Satelit Assemblies eller om CultureInfo m.m. i SDK:n
//Johan N
"This posting is provided "AS IS" with no warranties, and confers no
rights."Sv: Språkstöd
Sv: Språkstöd
PS. Glöm detta inlägget.. kom hit från framsidan och såg inte att det redan var markerat som löst.
---
<b>Andreas Håkansson
Student of Software Engineering</b>