Endlich mein erstes Thema zum Thema Programmieren :)
Vor kurzem stand ich vor dem Problem, dass ein Web Unterstützung für Indien bieten musste.
Als Besonderheit in englischer Sprache.
Nun hatte ich das Web und Web Service darauf ausgelegt, die CultureInfo-Klasse zu nutzen, um Zahlen, Währungen und Datümer zu formatieren.
Als dann das en-IN-Web aufgesetzt wurde, flog mir aber als erstes eine Exception um die Ohren:
“Culture name ‘en-in’ is not supported.”
Und so stand ich erstmal da. Sicherheitshalber Wiki befragt: Ja, englisch ist Amtssprache in Indien. Andere Cultures getestet: Alles ok.
Wo lag der Fehler?
Nach ein bißchen Recherche bei bing, bin ich dann auf den Blog “IFormattable” von Christopher Atkins gestoßen.
In seinem Artikel “Dealing with Globalization Differences in Windows Versions” erklärt er, dass die Unterstützung der en-IN-Culture nicht auf allen Systemen vorhanden ist. Darunter fallen Windows XP und Windows Server 2003.
Auf Vista und Windows Server 2008 ist die Unterstützung hingegen gegeben.
Glücklicherweise kann man die Cultures mit Hilfe der CultureAndRegionInfoBuilder-Klasse von einem dieser Systeme exportieren und auf dem Ziel-System importieren. Oder man kann sie sich direkt hier herunterladen.
Der Import gestaltet sich denkbar einfach:
CultureAndRegionInfoBuilder cib = null;
cib = CultureAndRegionInfoBuilder.CreateFromLdml("enIN.ldml");
cib.Register();
Man muss lediglich darauf achten, dass die Culture nicht schon vorhanden ist, da sonst eine Exception auftritt.
Für diejenigen, die sich damit nicht beschäftigen wollen, habe ich noch eine kleine Anwendung geschrieben, mit der man auf das Vorhandensein der Culture prüfen und/oder diese de-/installieren kann:
CultureRegisterer_bin.rar (51,34 kb)
CultureRegisterer_source.rar (12,21 kb)
Das muss ich bei Gelegenheit noch ausbauen, damit man damit auch exportieren, und vor allem die Culture auch angeben kann.