Hallo 
Ik ben even aan het stoeien gegaan met localizations in VS2005. Wat ik wil proberen is het maken van een applicatie met een standaard taal (Engels, de main assembly), en na het compileren wil ik andere talen eraan kunnen toevoegen, zonder de main assembly te moeten compileren. De vertaling gebeurt via een tekstbestand.
Daarbij heb ik interesse in de namespace "<MainApp>.properties" met daarin het object "Resources". Met dit object heb ik toegang tot de resources in "resources.resx", die standaard door VS2005 wordt aangemaakt. De gegevens die ik invul zijn de engelse teksten. Dus de default language.
Maar dan, stel dat ik een vertaling maak naar het Nederland, van dit resources bestand:
1. Met resgen maak ik hiervan een tekstbestand
2. Ik pas wat strings aan in het tekstbetand.
3. met diezelfde resgen maak ik weer een resources file:
4. En van diezelfde resources maak ik een assembly:
De uitkomst, MainApp.nl-NL.Resources.dll, plaats ik in een map "nl-NL" onder /bin/debug.
In de code vertel ik nu dat de Culture Nederlands is (even om te testen):
[code]Properties.Resources.Culture = new CultureInfo("nl-NL");[code]
Maar wat ik ook doe, ik blijf de tekst uit de oorspronkelijke resources file krijgen (dus Engels) ipv Nederlands (uit nl.txt).
Zie ik iets over het hoofd? Kan dit uberhaupt wel op deze manier?
Ik ben even aan het stoeien gegaan met localizations in VS2005. Wat ik wil proberen is het maken van een applicatie met een standaard taal (Engels, de main assembly), en na het compileren wil ik andere talen eraan kunnen toevoegen, zonder de main assembly te moeten compileren. De vertaling gebeurt via een tekstbestand.
Daarbij heb ik interesse in de namespace "<MainApp>.properties" met daarin het object "Resources". Met dit object heb ik toegang tot de resources in "resources.resx", die standaard door VS2005 wordt aangemaakt. De gegevens die ik invul zijn de engelse teksten. Dus de default language.
Maar dan, stel dat ik een vertaling maak naar het Nederland, van dit resources bestand:
1. Met resgen maak ik hiervan een tekstbestand
2. Ik pas wat strings aan in het tekstbetand.
3. met diezelfde resgen maak ik weer een resources file:
code:
1
| resgen nl.txt MainApp.nl.resources |
4. En van diezelfde resources maak ik een assembly:
code:
1
| al /t:lib /embed:MainApp.nl.resources /culture:nl-NL /out:MainApp.nl-NL.resources.dll |
De uitkomst, MainApp.nl-NL.Resources.dll, plaats ik in een map "nl-NL" onder /bin/debug.
In de code vertel ik nu dat de Culture Nederlands is (even om te testen):
[code]Properties.Resources.Culture = new CultureInfo("nl-NL");[code]
Maar wat ik ook doe, ik blijf de tekst uit de oorspronkelijke resources file krijgen (dus Engels) ipv Nederlands (uit nl.txt).
Zie ik iets over het hoofd? Kan dit uberhaupt wel op deze manier?