webForumDet fria alternativet

Språkstöd

.NET

15 svar · 612 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Någon som kan tipsa lite lätt hur man går tillväga för skapa flerspråkstöd till en webbplats, dvs att man ska kunna ändra språk från svenska till engelska.

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? Det skulle vara intressant att höra era erfarenheter i frågan.

Medlem sedan dec. 20025 871 inlägg
#2

Cookies?

Medlem sedan jan. 20012 204 inlägg
#3

Testa en sökning här, Network hade något tips om att man kunde använda resx filerna, fattade dock inte så mycket ;)

Medlem sedan juni 20001 257 inlägg
#4

Jag har svarat på den frågan ett antal gånger och jag ger samma svar igen: http://archive.devx.com/dotnet/articles/oc022102/

Medlem sedan maj 20011 312 inlägg
#5

Jag försökte söka lite på Network men hittade inte de inlägg du referera till. Har du möjlighet att skicka en länk.

Tack för tipset kristoffer! Jag ska ta och läsa igenom artiklarna.

Medlem sedan sep. 20011 914 inlägg
Medlem sedan juni 20001 257 inlägg
Medlem sedan maj 20011 312 inlägg
#8

Hej kristoffer och övriga! Jag har läst det som stått och det har varit en intressant läsning. Många förespråkade att man skulle använda XML men om man har det i en databas i stället. Vad har det för fördelar respektive nackdelar i jämförelse med XML?

Medlem sedan apr. 20012 266 inlägg
#9

Personligen tycker jag att det skulle vara lättare att underhålla med XML och Serialization, vill man ändra något öppnar man bara upp sin xml fil och sparar så är det klart. Kan tyckas vara lika lätt med en databas men det blir svårare att få en lätt struktur för all text. Med XML kan varje språk på ett lätt sätt få en egen xml fil, då blir det lätt att lägga till nya språk då det endast är att skapa en ny xml fil i princip.

Medlem sedan juni 20011 732 inlägg
#10

.resx-filerna (resursfiler) är ju finurligt om du använder vs.net eftersom de redan finns där och att du på ett enkelt och strukturerat sätt kan ha en språkfil för respektive sida. Om du däremot bara ska överätta texter i knappar och dyligt så skulle jag slänga ihop ett vanligt xml-dokument och samla upp alla språk i detta enda dokument.

En liten kort förklaring till kodexemplet i länken då. Vi hade två språkfiler (kan naturligtvis vara oändligt många språk) för samtliga sidor och en klass Language för att hantera detta. Du skickar helt enkelt in en sträng (namnet, name i din resx-fil) som sedan returnera värdet (value i din resx-fil). Beroende på språk så hämtas alltså value från den fil som innehåller det aktuella språket (filnamnet innehåller landsbeteckningen, vi döpte filerna till strings.sv.resx osv...). Vilket land du kommer ifrån läses av från dina nationella inställningar på din dator och om språket inte finns så hämtar man förslagsvis den engelska översättningen.

Alltså, för att använda klassen gör du precis som vanligt, skickar in en sträng och du får tillbaka en sträng, exempelvis:

//I koden:
MyLabel.Text = Language.Text("translate");

//i din resx-fil
name             value      ...
-----------------------------------------------
translate       översätt
whatever      vadsomhelst     
osv

Klassen i sig gör inga konstigheter, den kollar var du kommer ifrån och i vilken fil den ska läsa och vad den ska returnera (beroende på vilken sträng du skickar in). Det fungerade bra för oss då och gör det nu också, har inte gjort något mer som rkäver olika språk sedan dess. :) Men om det är den ultimata lösningen låter jag vara osagt.

Medlem sedan juli 20011 084 inlägg
#11

.resx-filerna (resursfiler) är ju finurligt om du använder vs.net eftersom de redan finns där...

Går det lika bra i asp med till exempel c#.net?

Medlem sedan juni 20011 732 inlägg
#12

Går det lika bra i asp med till exempel c#.net?

Vet inte riktigt hur du menar, bakåtkompatibiliteten finns ju på så sätt att du kan använda gammal asp tillsammans med .net men du kan inte programmera asp med c#, asp i sig är ju ett scriptspråk (vb-script).

red:
Möjligtvis att man kan göra det med COM men det är över mitt huvud och där ser jag inte nyttan. :)

Medlem sedan juli 20011 084 inlägg
#13

Okej klumpigt formulerat av mig, jag menade ju asp.net :OO

Men du skrev ju vs.net och som jag förstått det så kan även c#.net användas tillsammans med asp.net. Och är det då någon skillnad eller fungerar det på samma sätt (med resx-filerna)?

Medlem sedan apr. 20012 266 inlägg
#14

mozilla: vs.net är benämningen på ett utvecklingsverktyg från Microsoft, Visual Studio .NET. C#.NET som många skriver är ett programmeringspråk för .NET, det är även VB.NET. Dessa språk kan användas för att göra en ASP.NET sida.

NETwork, är det inte så att resx filerna måste kompileras vid ändringar?

/red, detta byttes mot dessa.

Medlem sedan juni 20011 732 inlägg
#15

vs.net = Visual Studio.net, editeringsverktyget nummero uno alltså... och jag använder c# i mitt exempel så ja, det fungerar ju. ;)

Det är ingen skillnad i hur du använder resursfilerna mer än att språken som sådana naturligtvis har olika syntax.

Medlem sedan juni 20011 732 inlägg
#16

NETwork, är det inte så att resx filerna måste kompileras vid ändringar?

Jaa, men jag har för mig att jag läste här någonstans att det inte behövdes ändå... kanske jag har drömt men det låter ju inte orimligt (det är ju egentligen vanliga xml-dokument?). En stor nackdel annars.

Red:
Det var visst kollegan som skrev att det inte behövdes, finns tydligen något program som följer med VS där man kan ändra i dem utan att behöva kompilera... ska fråga i mörrn. :)

370 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
233 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
241 ms — ändringar (db)