som var och en innehåller strängar som skall skrivas ut på siten. Det fungerar till 100% men jag har nu stött på ett tråkigt problem: Tanken är att administratörerna sedan skall kunna redigera dessa filer från en webbsida. Enligt vad jag har förstått måste hela projektet buildas om efter att resourcefilerna har redigerats. Fast när jag läser på http://samples.gotdotnet.com/QuickStart/howto/default.aspx?url=/quickstart/howto/doc/ResourcesCustomReader.aspx blir jag osäker på om projektet verkligen behöver buildas om. Det verkar ju heltokigt att man inte skulle kunna redigera filerna från en webbsida? I så fall skulle jag behöva använda en databas istället.
Vi hade en liknande lösning för flerspåkstöd och vi var tvungna att kompilera vid varje ändring, MEN .resx är väl en slags xml-filer så det borde ju inte behövas?
Men hur gjorde ni för att någon som inte hade tillgång till kompilatorn skulle kunna göra ändringar? .resx är xml-filer ja, vad använde ni då eftersom ni också behövde kompilera om vid varje ändring?
Vi hade aldrig det problemet eftersom vi själva byggde upp resx-filerna (behövde tills vidare bara svenska och engelska). Men visst har vi tänkt tanken att bygga en webb där en administratör (utan tillgång till själva projektet) ska kunna lägga till ett språk.
Jag sitter här och provar lite men det verkar inte fungera att ändra direkt i dessa filer utan att kompilera om. Om jag däremot kompilerar så går ändringarna igenom. Jag gissar att .resx-filerna bakas in i din dll-fil? Det går ju att helt ta bort resx-filerna från katalogen och ändå ta fram innehållet i dem...
Aha, ja det ser jag nu. Ja, då lär det ju inte fungera... det var inte jag som gjorde språkstödet så jag har inte så bra koll på hur den fungerar.
Nej, jag tror inte att en databas är det bästa sättet, åtminstone inte om det är många små textformateringar som ska göras. Vi har exempelvis en jäkla massa buttons, labels och andra kontroller där textattributet sätts till respektive språk beroende på dina nationella inställningar. Om vi skulle använda en databas till detta skulle det ju innebära mängder med anrop och en hel del kod. Jag tror att det bästa är att du själv gör en xml-fil för respektive språk och hämtar respektive text från dessa.
Kan administratören då redigera xml-filen? Har du något exempel på hur jag sedan hämtar infon därifrån? Vad är fördelen med att använda en xml-fil istället för databas?
Angående databas så känns det inte bra heller, men hade det inte gått att komma undan med endast ett databasanrop?
Kan administratören då redigera xml-filen? Har du något exempel på hur jag sedan hämtar infon därifrån? Vad är fördelen med att använda en xml-fil istället för databas?
Fördelen med en xml-fil är ju att den är väldigt behändig. Visst, om du gör en webb som uppdaterar en databas eller ett xml-dokument så spelar det ju ingen större roll för slutanvändaren. Men ett xml-dokument är ju betydligt mer behändigt att använda i "rå-format", det finns ju mängder med program och verktyg för att redigera dem och vill du ha en enkel översikt av din språkfil så är det bara att öppna dokumentet i din webbläsare (direkt eller genom en xsl(t)) oavsett vilken miljö du arbetar med. En databas skickar man inte runt på samma sätt, är definitivt inte lika överblickbar och den är bökigare att sätta upp.
XML är ett utmärkt medium för laging, inte minst av olika språk, även om det naturligtvis går att använda en databas också.
Angående databas så känns det inte bra heller, men hade det inte gått att komma undan med endast ett databasanrop?
Jag antar att du nu (precis som vi) har en klass där du hämtar respektive text för varje språk (beroende på vilken nationell inställning du har). För varje kontroll vi sätter en text på så gör vi ett anrop till klassen vilken returnerar rätt text på rätt språk. Du får göra på samma sätt med den skillnaden att du hämtar text från ett xml-dokument eller en databas istället.
Gaah, inga <%%>... ;) Tro mig det blir en soppa till slut, då kan man lika gärna hoppa tillbaka till asp. ALLA textformateringar sätter du naturligtvis i koden, ALL text hämtar du från ett media som är till för lagring.
Jag tror inte att någon vill/kan göra en massa include-filer, tanken är ju att en person utan några kunskaper i programmering ska kunna lägga till ett språk.
Ska du kunna bygga upp en webb där administratören kan lägga till ett nytt språk måste dessa data kunna sparas, även om det kanske är möjligt att skapa en includefil on the fly så lär det vara bökigt.
Du måste dessutom ha en include för varje sida om du inte vill hämta ALLA texter varje gång en sida exekveras, alltså även sådana texter som inte används. Det blir många filer till slut...
Hittade hur man kan editera .resx filerna utan att byggaa om applikationen eller för den delen använda Visual studio.
Man ska använda Windows Resource Localization Editor, vilken finns i bin bibloteket till SDK som WinRes.exe. Programmet är helt stand-alone så det ska bara vara att skicka över det (och filen att översätta) till de som ska sköta översättningen och låta de göra det. Sen stoppa in den översatta .resx filen i projektet.
Ok, tack för tipset. Det skulle alltså gå, fast nu har jag byggt om så att jag lagrar fraserna i XML-filer istället. Det var inga större problem, väldigt enkelt att redigera dem mha http://www.webforum.nu/showthread.php?s=&threadid=46727
261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2