[asp.net] [c#] localization in aspdotnet applicatie

Pagina: 1
Acties:

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:08
Bij het bedrijf waar ik werk ben ik bezig met het maken van een ASP.NET applicatie die op den duur meertalig moet worden. Momenteel zijn alle strings gewoon hardcoded in de source. Ik ben bezig met het bekijken hoe we de applicatie het beste meertalig kunnen krijgen.

DotNet heeft hiervoor resource files, welke je gemakkelijk op meerdere manieren kunt creëren. Ik heb gekozen om alles in .resx bestanden te maken, de XML-gebaseerde variant dus. Met ResGen zet ik deze bestanden om naar .resources bestanden.

Nu moet ik deze bestanden gaan gebruiken in de applicatie. Ik heb flink wat informatie uit de Framework SDK gehaald maar het is me nog steeds niet allemaal duidelijk.

De applicatie waar ik aan werk heeft als naam webapplicatie.dll (na compile). Verder zijn er nog gerelateerde dll bestanden te weten webapplicatie.data.dll en webapplicatie.logic.dll.

Als directory structuur heb ik onder de webapplicatie-hoofdmap een directory text, met daarin subdirectories 'en', 'nl' en 'ru' (:+). Hierin staan ook mijn .resources bestanden. Het is me ook al gelukt om deze met al.exe (assembly linker) te compileren naar een .dll bestand. Maar hier gaat mijn vraag voornamelijk over.

• Is het nou de bedoeling dat ik de applicatie (webapplicatie.dll) samen met mijn .resources bestand tezamen compileer naar één webapplicatie.resources.dll, waarbij ik voor elke afzonderlijke taal dus zo'n bestand krijg, die ik vervolgens kan verspreiden? Want dat wordt me in het geheel niet duidelijk. In de SDK zie ik als voorbeeld een webapplicatie.dll waarbij staat 'contains the default resources'. Dus wat is die "hoofd-dll" nou eigenlijk :?.

Verder, als ik in de ASP.NET control codebehind het volgende invoeg:

code:
1
2
3
4
5
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");

Assembly a = Assembly.Load("webapplicatie");
ResourceManager rm = new ResourceManager("webapplicatie", a);
Response.Write(rm.GetString("mijnmooieknopje"));


is dat dan voldoende om de applicatie in de juiste taal te krijgen?

Ik heb al gistermiddag eindeloos lang gezocht naar informatie, maar er is helaas weinig over te vinden, zowel informatie van Microsoft als op andere sites. Het woord resources werkt daarnaast ook nog tegen, omdat het een algemene term is die veelvuldig wordt gebruikt.

Zijn er mensen hier die hier meer vanaf weten en mij hiermee verder kunnen helpen?