Mehrsprachigkeit bei Websites, Internationalisierung
Mehrsprachigkeit ist bei Websites exportorientierter Unternehmen keine Seltenheit, sondern ein Muss. Neben Deutsch spielt Englisch die wichtigste Rolle bei der Internationalisierung, aber zunehmend auch "exotischere" Sprachen wie Tschechisch, Russisch, oder gar Chinesisch. Der Exportmarkt bestimmt, welche Sprachen für die Website des Unternehmens eine wichtige Rolle spielen.
Zeichensätze
Das erste Problem sind die Zeichensätze, sobald es weg vom gewohnten ISO-8859-1 geht (oder dessen aktuellerer Variante ISO-8859-15). Dieser Standard deckt nur westeuropäische Sprachen ab, schon beim Tschechischen muß stattdessen ISO-8859-2 gewählt werden. Unübersichtlich bis unmöglich wird das spätestens, wenn weitere Sprachen hinzukommen, oder gar Inhalte verschiedener Sprachen gleichzeitig dargestellt werden müssen.
Zeichensatz-Esperanto Unicode
Seit den 4er-Versionen der Browser und dank aktueller Betriebssysteme
ist die Benutzung des Zeichensatz-Esperanto
Unicode die Lösung der Wahl.
In der 16-Bit-BMP-Variante erlaubt Unicode bis zu 216 = 65.536 Zeichen,
die in der Praxis ausreichend sind.
Am eigenen Rechner hat man zwar Zeichensätze, die viele der 65.000 Zeichen auch darstellen können,
aber das reicht nicht für alle Sprachen.
Wenn man z.B. auch chinesische oder koreanische Zeichen darstellen möchte,
kommt man nicht um die Nachinstallation entsprechender Erweiterungen herum.
Bei Windows gibt es im Windows-Update für den IE6 eine Reihe von Sprachpaketen,
die hierzu dienen. Alternativ kann man in XP über die Systemsteuerung / Ländereinstellungen Sprachpakete nachinstallieren.
Unicode definiert nur die Zeichen und Codes, nicht aber die Übertragung im Web
– und hier kommt das Unicode Transformation Format, kurz UTF ins Spiel.
UTF-8
UTF gibt es in verschiedenen Varianten,
wobei die Variante UTF-8 die im heutigen Web verträglichste ist.
In UTF-8 werden die meisten Zeichen wie gewohnt in nur einem Byte codiert,
die Zeichencodes bis 127
entsprechen 1:1 dem altbewährten
ASCII.
Vorbei sind die Zeiten, da man Umlaute umständlich als ä
anstatt einfach ä codieren musste.
Im Gegenteil erschweren solche altertümlichen Codierungen sogar die Weiterverarbeitung,
und kosten zudem mehr Speicherplatz.
Für das chinesische gibt es zwar Codierungen, die weniger Bytes im Schnitt für Texte benötigen,
wie zum Beispiel Big5, aber ein solcher Misch-Masch, der zunehmend weniger unterstützt wird,
ist untragbar, wenn man mehr als nur Chinesisch verwalten muss.
Zukunft haben auf absehbare Zeit nur Unicode und die UTF-Definitionen.
UTF-8 in ASP.NET
Um UTF-8 im Praxisbetrieb zu nutzen, sind
in der web.config-Datei folgende Angaben zu treffen:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" />
Im Editor der Wahl, meist VS.NET 2005,
ist beim Menüpunkt Datei / Erweiterte Speicheroptionen
die Einstellung Unicode (UTF8 ohne Signatur) - Codepage 65001 zu wählen.
Dieses Format macht weniger Probleme als UTF-8 mit Signatur.
Die Signatur, auch BOM genannt,
kann ältere Browser oder Editoren verwirren,
was wohl erst mit der Zeit keine Rolle mehr spielen wird.
Achtung:
Für manche Ausgaben ist es notwendig, weiterhing ISO-8859-1 zu verwenden,
um Kompatibilität zu gewährleisten, z.B. falls
CSV-Ausgaben auch von älteren Anwendungen
benutzt werden müssen.
Hier kann man für die spezifische Seite die Codierung umstellen:
Response.ContentEncoding = System.Text.Encoding.GetEncoding("iso-8859-1");
Meta-Tags
In der Theorie eigentlich überflüssig, doch in der Praxis unabdingbar
ist das Setzen des Meta-Tags, das den benutzten Zeichensatz angibt.
Eigentlich sendet ja schon der Webserver die Informationen über den verwendeten Zeichensatz
in den "unsichtbaren" Header-Antworten mit.
Ohne eine Angabe im HTML-Quelltext selbt sind aber ansonsten sogar
verbreitete Browser (respektive der
IE6) manchmal verwirrt,
und zwar spätestens, wenn dieselbe Seite aus dem lokalen Cache geholt wird.
Zu Zeichensalat kommt es oftmals auch, wenn man eine solche HTML-Seite
vom Browser aus ins Dateisystem abspeichert und danach von dort aus anzeigen möchte.
Kaum ein Browser erkennt dabei noch sicher den korrekten Zeichensatz.
Die folgende Angabe gehört daher in den Header-Bereich einer jeden ausgelieferten Webseite:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Diese Angabe sollte dabei vor dem title-Tag erscheinen,
da ja dort schon fremdsprachige Zeichen vorkommen können, die der Browser
ansonsten für eine "Schätzung" - best guess -
des verwendeten Zeichensatzes benutzen könnte.
Übrigens:
Ein manchmal gesehenes Meta-Tag mit name="content-type" gibt es nicht,
seine Verwendung ist daher unsinnig.
Datenbank
Bei professionellen Websites werden die Daten über ein
CMS verwaltet,
das die eigentlichen Inhalte in einer Datenbank ablegt.
Mehrsprachige Inhalte können schon seit mehr als einem Jahrzehnt
in guten Datenbanken im Unicode abgespeichert werden.
Beim Microsoft SQL-Server
ist hierzu nvarchar oder ntext zu wählen.
Wichtig ist natürlich, für jede Zeile oder jedes Feld zu vermerken, in welcher Sprache es vorliegt. Einfache Tabellen müssen in eine sprachunabhängige Basistabelle und eine relational dazugehörige Tabelle mit einer zusätzlichen Zeile je Sprachversion aufgeteilt werden.
Für die Codierung der Sprachversion bietet sich die ISO 639 an.
Die Sortierung von Datensätzen per ORDER BY oder durch einen gruppierte Index
benötigt auch Beachtung, wenn die Anwendung eine sprachspezifische und korrekte Sortierung benötigt.
HTML / XHTML
Im HTML-Quelltext selbst ist die verwendete Sprache anzugeben. Die primäre Sprache einer Seite ist im Header anzugeben:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
Bei der Angabe ist eine Codierung gemäß
RFC 4646 zu verwenden
– welche in der Praxis aber die ISO 639-Codes als Teilmenge enthält.
Es gibt sogar einen Validator für RFC 4646-Codes.
Wenn einzelne Fragmente der Seite andere Sprachen verwenden,
so ist dies durch das lang-Attribut anzuzeigen, das als Universalattribut
bei allen Tags verwendet werden kann.
Das Wort <span lang="en">Tag</span> ist ein englisches Wort für Etikett oder Trennzeichen.
Diese Kennzeichnung dient nicht nur Screenreadern für Blinde zur richtigen Aussprache beim Vorlesen, sondern auch Suchmaschinen zur korrekten Einordnung eines Wortes oder Abschnitts, oder Rechtschreibprüfungen.
bdo, dir, ltr und rtl
Nein, mit rtl ist nicht der Sender aus Luxemburg gemeint,
sondern es steht für right to left und gibt eine für uns ungewohnte Schreibrichtung wieder,
die z.B. im Arabischen oder Hebräischen benutzt wird.
Eigentlich sollte der Browser in Abhängigkeit von den verwendeten Zeichen und der gewählten Sprache
die Schreibrichtung automatisch richtig wählen, aber manchmal kann etwas Nachhilfe hier angebracht sein.
Um nun dem HTML-Browser die korrekte Anzeige zu ermöglichen,
und gemischtsprachige Inhalte zu ermöglichen, kann man das Universalattribut dir benutzen,
oder das spezielle Tag bdo.
bdo ist die Abkürzung von bidirectional order,
und gibt somit die Schreibrichtung an.
ltr ist die für uns gewohnte Schreibrichtung von links nach rechts.
bdo im Einsatz: Dies ist ein Test.dir mit dem Wert rtldir mit dem Wert ltrDatum und Zahlenangaben
Datums- und Zeitangaben sollten in der Datenbank in der Weltzeit UTC gespeichert werden.
Bei der Ausgabe kann dann per .ToLocalTime die Zeit an die konkrete Ortszeit gewandelt werden
– oder auch nicht, wenn z.B. eine weltweite Kampagne sich auf einen einzigen Zeitpunkt bezieht.
Bei der Ausgabe eines Datums oder einer Zahl sind die nationalen Besonderheiten zu beachten.
So ist zum Beispiel der 12.10.2007 ist im englischen Sprachraum als 10/12/2007 anzuzeigen,
die Zahl 1.000.000 ist als 1,000,000 anzuzeigen.
Noch komplizierter wird es, wenn man ein Datum in langer Schreibweise mit Monatsnamen
z.B. in Arabisch ausgeben muss.
Gottseidank hat .NET für solche Fälle schon einiges vorverdrahtet.
Als Beispiel die Ausgabe des aktuellen Datums und einer Zahl in verschiedenen Sprachen:
| Kultur | Code | NativeName | Sprache | Zahl |
|---|---|---|---|---|
| Arabisch (Saudi-Arabien) | ar-SA | العربية (المملكة العربية السعودية) | 22/ذو القعدة/1429 04:36:08 م | 123,456.78 |
| Bulgarisch (Bulgarien) | bg-BG | български (България) | 20 Ноември 2008 г. 16:36:08 | 123 456,78 |
| Katalanisch (Katalanisch) | ca-ES | català (català) | dijous, 20 / novembre / 2008 16:36:08 | 123.456,78 |
| Chinesisch (Taiwan) | zh-TW | 中文(台灣) | 2008年11月20日 下午 04:36:08 | 123,456.78 |
| Tschechisch (Tschechische Republik) | cs-CZ | čeština (Česká republika) | 20. listopadu 2008 16:36:08 | 123 456,78 |
| Dänisch (Dänemark) | da-DK | dansk (Danmark) | 20. november 2008 16:36:08 | 123.456,78 |
| Deutsch (Deutschland) | de-DE | Deutsch (Deutschland) | Donnerstag, 20. November 2008 16:36:08 | 123.456,78 |
| Griechisch (Griechenland) | el-GR | ελληνικά (Ελλάδα) | Πέμπτη, 20 Νοεμβρίου 2008 4:36:08 μμ | 123.456,78 |
| Englisch (USA) | en-US | English (United States) | Thursday, November 20, 2008 4:36:08 PM | 123,456.78 |
| Finnisch (Finnland) | fi-FI | suomi (Suomi) | 20. marraskuuta 2008 16:36:08 | 123 456,78 |
| Französisch (Frankreich) | fr-FR | français (France) | jeudi 20 novembre 2008 16:36:08 | 123 456,78 |
| Hebräisch (Israel) | he-IL | עברית (ישראל) | יום חמישי 20 נובמבר 2008 16:36:08 | 123,456.78 |
| Ungarisch (Ungarn) | hu-HU | magyar (Magyarország) | 2008. november 20. 16:36:08 | 123 456,78 |
| Isländisch (Island) | is-IS | íslenska (Ísland) | 20. nóvember 2008 16:36:08 | 123.456,78 |
| Italienisch (Italien) | it-IT | italiano (Italia) | giovedì 20 novembre 2008 16.36.08 | 123.456,78 |
| Japanisch (Japan) | ja-JP | 日本語 (日本) | 2008年11月20日 16:36:08 | 123,456.78 |
| Koreanisch (Korea) | ko-KR | 한국어 (대한민국) | 2008년 11월 20일 목요일 오후 4:36:08 | 123,456.78 |
| Holländisch (Niederlande) | nl-NL | Nederlands (Nederland) | donderdag 20 november 2008 16:36:08 | 123.456,78 |
| Norwegisch, Bokmål (Norwegen) | nb-NO | norsk, bokmål (Norge) | 20. november 2008 16:36:08 | 123 456,78 |
| Polnisch (Polen) | pl-PL | polski (Polska) | 20 listopada 2008 16:36:08 | 123 456,78 |
| Portugiesisch (Brasilien) | pt-BR | Português (Brasil) | quinta-feira, 20 de novembro de 2008 16:36:08 | 123.456,78 |
| Rumänisch (Rumänien) | ro-RO | română (România) | 20 noiembrie 2008 16:36:08 | 123.456,78 |
| Russisch (Russland) | ru-RU | русский (Россия) | 20 ноября 2008 г. 16:36:08 | 123 456,78 |
| Kroatisch (Kroatien) | hr-HR | hrvatski (Hrvatska) | 20. studeni 2008 16:36:08 | 123.456,78 |
| Slowakisch (Slowakien) | sk-SK | slovenčina (Slovenská republika) | 20. novembra 2008 16:36:08 | 123 456,78 |
| Albanien (Albanisch) | sq-AL | shqipe (Shqipëria) | 2008-11-20 4:36:08.MD | 123.456,78 |
| Schwedisch (Schweden) | sv-SE | svenska (Sverige) | den 20 november 2008 16:36:08 | 123 456,78 |
| Thailändisch (Thailand) | th-TH | ไทย (ไทย) | 20 พฤศจิกายน 2551 16:36:08 | 123,456.78 |
| Türkisch (Türkei) | tr-TR | Türkçe (Türkiye) | 20 Kasım 2008 Perşembe 16:36:08 | 123.456,78 |
| Urdu (Islamische Republik Pakistan) | ur-PK | اُردو (پاکستان) | 20 نومبر, 2008 4:36:08 PM | 123,456.78 |
| Indonesisch (Indonesien) | id-ID | Bahasa Indonesia (Indonesia) | 20 Nopember 2008 16:36:08 | 123.456,78 |
| Ukrainisch (Ukraine) | uk-UA | україньска (Україна) | 20 листопада 2008 р. 16:36:08 | 123 456,78 |
| Weißrussisch (Weißrussland) | be-BY | Беларускі (Беларусь) | 20 лістапада 2008 16:36:08 | 123 456,78 |
| Slowenisch (Slowenien) | sl-SI | slovenski (Slovenija) | 20. november 2008 16:36:08 | 123.456,78 |
| Estnisch (Estland) | et-EE | eesti (Eesti) | 20. november 2008. a. 16:36:08 | 123 456,78 |
| Lettisch (Lettland) | lv-LV | latviešu (Latvija) | ceturtdiena, 2008. gada 20. novembrī 16:36:08 | 123 456,78 |
| Litauisch (Litauen) | lt-LT | lietuvių (Lietuva) | 2008 m. lapkričio 20 d. 16:36:08 | 123.456,78 |
| Farsi (Iran) | fa-IR | فارسى (ايران) | Thursday, November 20, 2008 04:36:08 ب.ظ | 123,456.78 |
| Vietnamesisch (Vietnam) | vi-VN | Tiếng Việt (Việt Nam) | 20 Tháng Mười Một 2008 4:36:08 CH | 123.456,78 |
| Armenisch (Armenien) | hy-AM | Հայերեն (Հայաստան) | 20 Նոյեմբեր, 2008 16:36:08 | 123,456.78 |
| Aserbaidschanisch (lateinisch, Aserbaidschan) | az-Latn-AZ | Azərbaycanılı (Azərbaycanca) | 20 noyabr 2008 16:36:08 | 123 456,78 |
| Baskisch (Baskisch) | eu-ES | euskara (euskara) | osteguna, 2008.eko azaroak 20 16:36:08 | 123.456,78 |
| Mazedonisch (ehemalige jugoslawische Republik Mazedonien) | mk-MK | македонски јазик (Македонија) | четврток, 20 ноември 2008 16:36:08 | 123.456,78 |
| Afrikaans (Südafrika) | af-ZA | Afrikaans (Suid Afrika) | 20 November 2008 04:36:08 nm | 123,456.78 |
| Georgisch (Georgien) | ka-GE | ქართული (საქართველო) | 2008 წლის 20 11, ხუთშაბათი 16:36:08 | 123 456,78 |
| Färöisch (Färöer-Inseln) | fo-FO | føroyskt (Føroyar) | 20. november 2008 16.36.08 | 123.456,78 |
| Hindi (Indien) | hi-IN | हिंदी (भारत) | 20 नवम्बर 2008 16:36:08 | 1,23,456.78 |
| Malaiisch (Malaysia) | ms-MY | Bahasa Malaysia (Malaysia) | 20 November 2008 16:36:08 | 123.456,78 |
| Kasachisch (Kasachstan) | kk-KZ | Қазақ (Қазақстан) | 20 қараша 2008 ж. 16:36:08 | 123 456,78 |
| Kirgisisch (Kirgisistan) | ky-KG | Кыргыз (Кыргызстан) | 20-Ноябрь 2008-ж. 16:36:08 | 123 456,78 |
| Kiswahili (Kenia) | sw-KE | Kiswahili (Kenya) | Thursday, November 20, 2008 4:36:08 PM | 123,456.78 |
| Usbekisch (lateinisch, Usbekistan) | uz-Latn-UZ | U'zbek (U'zbekiston Respublikasi) | 2008 yil 20-noyabr 16:36:08 | 123 456,78 |
| Tatarisch (Russland) | tt-RU | Татар (Россия) | 20 ноябрь 2008 16:36:08 | 123 456,78 |
| Punjabi (Indien) | pa-IN | ਪੰਜਾਬੀ (ਭਾਰਤ) | 20 ਨਵੰਬਰ 2008 ਵੀਰਵਾਰ ਸ਼ਾਮ 04:36:08 | 1,23,456.78 |
| Gujarati (Indien) | gu-IN | ગુજરાતી (ભારત) | 20 નવેમ્બર 2008 16:36:08 | 1,23,456.78 |
| Tamil (Indien) | ta-IN | தமிழ் (இந்தியா) | 20 நவம்பர் 2008 16:36:08 | 1,23,456.78 |
| Telugu (Indien) | te-IN | తెలుగు (భారత దేశం) | 20 నవంబర్ 2008 16:36:08 | 1,23,456.78 |
| Kannada (Indien) | kn-IN | ಕನ್ನಡ (ಭಾರತ) | 20 ನವೆಂಬರ್ 2008 16:36:08 | 1,23,456.78 |
| Marathi (Indien) | mr-IN | मराठी (भारत) | 20 नोव्हेंबर 2008 16:36:08 | 1,23,456.78 |
| Sanskrit (Indien) | sa-IN | संस्कृत (भारतम्) | 20 नवम्बर 2008 गुरुवासरः 16:36:08 | 1,23,456.78 |
| Mongolisch (kyrillisch, Mongolei) | mn-MN | Монгол хэл (Монгол улс) | 2008 оны 11 дүгээр сарын 20 16:36:08 | 123 456,78 |
| Galizisch (Galizisch) | gl-ES | galego (galego) | xoves, 20 de novembro de 2008 16:36:08 | 123.456,78 |
| Konkani (India) | kok-IN | कोंकणी (भारत) | 20 नोवेम्बर 2008 16:36:08 | 1,23,456.78 |
| Syrisch (Syrien) | syr-SY | ܣܘܪܝܝܐ (سوريا) | 20 ܬܫܪܝ ܐܚܪܝ, 2008 04:36:08 ܒ.ܛ | 123,456.78 |
| Divehi (Malediven) | dv-MV | ދިވެހިބަސް (ދިވެހި ރާއްޖެ) | 22/ذو القعدة/1429 16:36:08 | 123,456.78 |
| Arabisch (Irak) | ar-IQ | العربية (العراق) | 20 تشرين الثاني, 2008 04:36:08 م | 123,456.78 |
| Chinesisch (VR China) | zh-CN | 中文(中华人民共和国) | 2008年11月20日 16:36:08 | 123,456.78 |
| Deutsch (Schweiz) | de-CH | Deutsch (Schweiz) | Donnerstag, 20. November 2008 16:36:08 | 123'456.78 |
| Englisch (Großbritannien) | en-GB | English (United Kingdom) | 20 November 2008 16:36:08 | 123,456.78 |
| Spanisch (Mexiko) | es-MX | Español (México) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123,456.78 |
| Französisch (Belgien) | fr-BE | français (Belgique) | jeudi 20 novembre 2008 16:36:08 | 123.456,78 |
| Italienisch (Schweiz) | it-CH | italiano (Svizzera) | giovedì, 20. novembre 2008 16:36:08 | 123'456.78 |
| Holländisch (Belgien) | nl-BE | Nederlands (België) | donderdag 20 november 2008 16:36:08 | 123.456,78 |
| Norwegisch, Nynorsk (Norwegen) | nn-NO | norsk, nynorsk (Noreg) | 20. november 2008 16:36:08 | 123 456,78 |
| Portugiesisch (Portugal) | pt-PT | português (Portugal) | quinta-feira, 20 de Novembro de 2008 16:36:08 | 123.456,78 |
| Serbisch (Lateinisch, Serbien) | sr-Latn-CS | srpski (Srbija) | 20. novembar 2008 16:36:08 | 123.456,78 |
| Schwedisch (Finnland) | sv-FI | svenska (Finland) | den 20 november 2008 16:36:08 | 123 456,78 |
| Aserbaidschanisch (kyrillisch, Aserbaidschan) | az-Cyrl-AZ | Азәрбајҹан (Азәрбајҹан) | 20 нојабр 2008 16:36:08 | 123 456,78 |
| Malaiisch (Brunei Darussalam) | ms-BN | Bahasa Malaysia (Brunei Darussalam) | 20 November 2008 16:36:08 | 123.456,78 |
| Usbekisch (kyrillisch, Usbekistan) | uz-Cyrl-UZ | Ўзбек (Ўзбекистон) | 2008 йил 20-ноябр 16:36:08 | 123 456,78 |
| Arabisch (Ägypten) | ar-EG | العربية (مصر) | 20 نوفمبر, 2008 04:36:08 م | 123,456.780 |
| Chinesisch (Hongkong S.A.R.) | zh-HK | 中文(香港特别行政區) | Thursday, 20 November, 2008 16:36:08 | 123,456.78 |
| Deutsch (Österreich) | de-AT | Deutsch (Österreich) | Donnerstag, 20. November 2008 16:36:08 | 123.456,78 |
| Englisch (Australien) | en-AU | English (Australia) | Thursday, 20 November 2008 4:36:08 PM | 123,456.78 |
| Spanisch (Spanien) | es-ES | español (España) | jueves, 20 de noviembre de 2008 16:36:08 | 123.456,78 |
| Französisch (Kanada) | fr-CA | français (Canada) | 20 novembre 2008 16:36:08 | 123 456,78 |
| Serbisch (Kyrillisch, Serbien) | sr-Cyrl-CS | српски (Србија) | 20. новембар 2008 16:36:08 | 123.456,78 |
| Arabisch (Libyen) | ar-LY | العربية (ليبيا) | 20 نوفمبر, 2008 04:36:08 م | 123,456.78 |
| Chinesisch (Singapur) | zh-SG | 中文(新加坡) | 星期四, 20 十一月, 2008 PM 4:36:08 | 123,456.78 |
| Deutsch (Luxemburg) | de-LU | Deutsch (Luxemburg) | Donnerstag, 20. November 2008 16:36:08 | 123.456,78 |
| Englisch (Kanada) | en-CA | English (Canada) | November 20, 2008 4:36:08 PM | 123,456.78 |
| Spanisch (Guatemala) | es-GT | Español (Guatemala) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123,456.78 |
| Französisch (Schweiz) | fr-CH | français (Suisse) | jeudi, 20. novembre 2008 16:36:08 | 123'456.78 |
| Arabisch (Algerien) | ar-DZ | العربية (الجزائر) | 20 نوفمبر, 2008 16:36:08 | 123,456.78 |
| Chinesisch (Macao S.A.R.) | zh-MO | 中文(澳門特别行政區) | 星期四, 20 十一月, 2008 16:36:08 | 123,456.78 |
| Deutsch (Liechtenstein) | de-LI | Deutsch (Liechtenstein) | Donnerstag, 20. November 2008 16:36:08 | 123'456.78 |
| Englisch (Neuseeland) | en-NZ | English (New Zealand) | Thursday, 20 November 2008 4:36:08 p.m. | 123,456.78 |
| Spanisch (Costa Rica) | es-CR | Español (Costa Rica) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123.456,78 |
| Französisch (Luxemburg) | fr-LU | français (Luxembourg) | jeudi 20 novembre 2008 16:36:08 | 123 456,78 |
| Arabisch (Marokko) | ar-MA | العربية (المملكة المغربية) | 20 نونبر, 2008 16:36:08 | 123,456.78 |
| Englisch (Irland) | en-IE | English (Eire) | 20 November 2008 16:36:08 | 123,456.78 |
| Spanisch (Panama) | es-PA | Español (Panamá) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123,456.78 |
| Französisch (Fürstentum Monaco) | fr-MC | français (Principauté de Monaco) | jeudi 20 novembre 2008 16:36:08 | 123 456,78 |
| Arabisch (Tunesien) | ar-TN | العربية (تونس) | 20 نوفمبر, 2008 16:36:08 | 123,456.780 |
| Englisch (Südafrika) | en-ZA | English (South Africa) | 20 November 2008 04:36:08 PM | 123,456.78 |
| Spanisch (Dominikanische Republik) | es-DO | Español (República Dominicana) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123,456.78 |
| Arabisch (Oman) | ar-OM | العربية (عمان) | 20 نوفمبر, 2008 04:36:08 م | 123,456.78 |
| Englisch (Jamaika) | en-JM | English (Jamaica) | Thursday, November 20, 2008 04:36:08 PM | 123,456.78 |
| Spanisch (Venezuela) | es-VE | Español (Republica Bolivariana de Venezuela) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123.456,78 |
| Arabisch (Jemen) | ar-YE | العربية (اليمن) | 20 نوفمبر, 2008 04:36:08 م | 123,456.78 |
| Englisch (Karibik) | en-029 | English (Caribbean) | Thursday, November 20, 2008 4:36:08 PM | 123,456.78 |
| Spanisch (Kolumbien) | es-CO | Español (Colombia) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123.456,78 |
| Arabisch (Syrien) | ar-SY | العربية (سوريا) | 20 تشرين الثاني, 2008 04:36:08 م | 123,456.78 |
| Englisch (Belize) | en-BZ | English (Belize) | Thursday, 20 November 2008 04:36:08 PM | 123,456.78 |
| Spanisch (Peru) | es-PE | Español (Perú) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123,456.78 |
| Arabisch (Jordanien) | ar-JO | العربية (الأردن) | 20 تشرين الثاني, 2008 04:36:08 م | 123,456.780 |
| Englisch (Trinidad und Tobago) | en-TT | English (Trinidad y Tobago) | Thursday, 20 November 2008 04:36:08 PM | 123,456.78 |
| Spanisch (Argentinien) | es-AR | Español (Argentina) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123.456,78 |
| Arabisch (Libanon) | ar-LB | العربية (لبنان) | 20 تشرين الثاني, 2008 04:36:08 م | 123,456.78 |
| Englisch (Zimbabwe) | en-ZW | English (Zimbabwe) | Thursday, November 20, 2008 4:36:08 PM | 123,456.78 |
| Spanisch (Ecuador) | es-EC | Español (Ecuador) | jueves, 20 de noviembre de 2008 16:36:08 | 123.456,78 |
| Arabisch (Kuwait) | ar-KW | العربية (الكويت) | 20 نوفمبر, 2008 04:36:08 م | 123,456.780 |
| Englisch (Republik Philippinen) | en-PH | English (Philippines) | Thursday, November 20, 2008 4:36:08 PM | 123,456.78 |
| Spanisch (Chile) | es-CL | Español (Chile) | jueves, 20 de noviembre de 2008 16:36:08 | 123.456,78 |
| Arabisch (Vereinigte Arabische Emirate) | ar-AE | العربية (الإمارات العربية المتحدة) | 20 نوفمبر, 2008 04:36:08 م | 123,456.78 |
| Spanisch (Uruguay) | es-UY | Español (Uruguay) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123.456,78 |
| Arabisch (Bahrain) | ar-BH | العربية (البحرين) | 20 نوفمبر, 2008 04:36:08 م | 123,456.780 |
| Spanisch (Paraguay) | es-PY | Español (Paraguay) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123.456,78 |
| Arabisch (Katar) | ar-QA | العربية (قطر) | 20 نوفمبر, 2008 04:36:08 م | 123,456.78 |
| Spanisch (Bolivien) | es-BO | Español (Bolivia) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123.456,78 |
| Spanisch (El Salvador) | es-SV | Español (El Salvador) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123,456.78 |
| Spanisch (Honduras) | es-HN | Español (Honduras) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123,456.78 |
| Spanisch (Nicaragua) | es-NI | Español (Nicaragua) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123,456.78 |
| Spanisch (Puerto Rico) | es-PR | Español (Puerto Rico) | jueves, 20 de noviembre de 2008 04:36:08 p.m. | 123,456.78 |
| Samisch, Süd- (Norwegen) | sma-NO | åarjelsaemiengiele (Nöörje) | rahkan 20. b. 2008 16:36:08 | 123 456,78 |
| Samisch, Lule- (Norwegen) | smj-NO | julevusámegiella (Vuodna) | basádismáno 20. b. 2008 16:36:08 | 123 456,78 |
| Bosnisch (Kyrillisch, Bosnien und Herzegowina) | bs-Cyrl-BA | босански (Босна и Херцеговина) | 20. новембар 2008 16:36:08 | 123.456,78 |
| Rätoromanisch (Schweiz) | rm-CH | Rumantsch (Svizra) | gievgia, 20 november 2008 16:36:08 | 123'456.78 |
| Maori | mi-NZ | Reo Māori (Aotearoa) | Tāite, 20 Whiringa-ā-rangi 2008 4:36:08 p.m. | 123,456.78 |
| Mohawk (Mohawk) | moh-CA | Kanien'kéha (Canada) | Okaristiiáhne, Kentenhkó:Wa 20, 2008 4:36:08 PM | 123,456.78 |
| Mapudungun (Chile) | arn-CL | Mapudungun (Chile) | jueves, 20 de noviembre de 2008 16:36:08 | 123.456,78 |
| Irisch (Irland) | ga-IE | Gaeilge (Éire) | 20 Samhain 2008 16:36:08 | 123,456.78 |
| Samisch, Nord- (Schweden) | se-SE | davvisámegiella (Ruoŧŧa) | skábmamánu 20. b. 2008 16:36:08 | 123 456,78 |
| Samisch, Inari- (Finnland) | smn-FI | sämikielâ (Suomâ) | skammâmáánu 20. p. 2008 16:36:08 | 123 456,78 |
| Serbisch (Lateinisch, Bosnien und Herzegowina) | sr-Latn-BA | srpski (Bosna i Hercegovina) | 20. novembar 2008 16:36:08 | 123.456,78 |
| Quechua (Peru) | quz-PE | runasimi (Peru Suyu) | Ch' askachaw, 20 de Ayamarq'a de 2008 04:36:08 p.m. | 123,456.78 |
| Lëtzebuergisch (Luxemburg) | lb-LU | Lëtzebuergesch (Luxembourg) | Donneschdeg 20 November 2008 16:36:08 | 123 456,78 |
| Südliches Sotho (Südafrika) | ns-ZA | Sesotho sa Leboa (Afrika Borwa) | 20 Dibatsela 2008 04:36:08 PM | 123,456.78 |
| Quechua (Bolivien) | quz-BO | runasimi (Bolivia Suyu) | Ch' askachaw, 20 de Ayamarq'a de 2008 04:36:08 p.m. | 123.456,78 |
| Samisch, Skolt- (Finnland) | sms-FI | sääm´ǩiõll (Lää´ddjânnam) | skamm´mannu 20. p. 2008 16:36:08 | 123 456,78 |
| Samisch, Süd- (Schweden) | sma-SE | åarjelsaemiengiele (Sveerje) | rahkan 20. b. 2008 16:36:08 | 123 456,78 |
| Kroatisch (Bosnien und Herzegowina) | hr-BA | hrvatski (Bosna i Hercegovina) | 20. studeni 2008 16:36:08 | 123.456,78 |
| Pilipino (Philippinen) | fil-PH | Filipino (Pilipinas) | Huebes, Nobyembre 20, 2008 4:36:08 PM | 123,456.78 |
| Paschtu (Afghanistan) | ps-AF | پښتو (افغانستان) | 22/ذو القعدة/1429 4:36 غ.و | 123،456,78 |
| Friesisch (Niederlande) | fy-NL | Frysk (Nederlân) | Tongersdei 20 novimber 2008 16:36:08 | 123.456,78 |
| Nepalesisch (Nepal) | ne-NP | नेपाली (नेपाल) | बिहीवार, नोभेम्बर 20, 2008 4:36:08 अपराह्ण | 1,23,456.78 |
| Samisch, Lule- (Schweden) | smj-SE | julevusámegiella (Svierik) | basádismáno 20. b. 2008 16:36:08 | 123 456,78 |
| Walisisch | cy-GB | Cymraeg (y Deyrnas Unedig) | 20 Tachwedd 2008 16:36:08 | 123,456.78 |
| Samisch, Nord- (Finnland) | se-FI | davvisámegiella (Suopma) | skábmamánu 20. b. 2008 16:36:08 | 123 456,78 |
| Serbisch (Kyrillisch, Bosnien und Herzegowina) | sr-Cyrl-BA | српски (Босна и Херцеговина) | 20. новембар 2008 16:36:08 | 123.456,78 |
| Quechua (Ecuador) | quz-EC | runasimi (Ecuador Suyu) | Ch' askachaw, 20 de Ayamarq'a de 2008 16:36:08 | 123.456,78 |
| Samisch, Nord- (Norwegen) | se-NO | davvisámegiella (Norga) | skábmamánu 20. b. 2008 16:36:08 | 123 456,78 |
| Maltesisch | mt-MT | Malti (Malta) | Il-Ħamis, 20 ta' Novembru 2008 16:36:08 | 123,456.78 |
| Bosnisch (Lateinisch, Bosnien und Herzegowina) | bs-Latn-BA | bosanski (Bosna i Hercegovina) | 20. novembar 2008 16:36:08 | 123.456,78 |
| Zulu | zu-ZA | isiZulu (iNingizimu Afrika) | 20 uNovemba 2008 04:36:08 PM | 123,456.78 |
| Xhosa | xh-ZA | isiXhosa (uMzantsi Afrika) | 20 eyeNkanga 2008 04:36:08 PM | 123,456.78 |
| Setswana (Südafrika) | tn-ZA | Setswana (Aforika Borwa) | 20 Ngwanatsele 2008 04:36:08 PM | 123,456.78 |
| Inuktitut (Lateinisch, Kanada) | iu-Latn-CA | Inuktitut (Kanatami) (kanata) | Sit, Nuvipiri 20,2008 4:36:08 PM | 123,456.78 |
Man beachte, das wir in Thailand schon das 26. Jahrhundert schreiben, in Saudi-Arabien dagegen erst im 15. Jahrhundert angekommen sind – das lässt nachdenklich werden …
Wenn der verwendete Browser in einigen der aufgelisteten Sprachen viereckige Kästchen anzeigt, fehlt dem System wohl der geeignete Zeichensatz, oder aber der Browser lehnt diese (fälschlicherweise) ab. Apples Safari für Windows zum Beispiel hat hier noch einige wenige Darstellungsfehler auf Windows Vista.
Für eine einzelne Webseite kann man die verwendete Kultur,
die in der web.config eingestellt wurde, abändern.
Ein einzelnes Template kann durch spezielle Page-Direktiven
auf eine andere Kultur eingestellt werden:
<%@ Page UICulture="de" Culture="de-DE" …
Oder mit automatischer Auswahl anhand der im Browser des Nutzers eingestellten Language(s):
<%@ Page UICulture="auto:de" Culture="auto:de-DE" …
Wenn einzelne Fragmente der Seite anders-sprachig ausgegeben werden müssen,
so kann dies meist durch Nutzung der .ToString-Methode geschehen.
Es gibt dabei eigentlich immer eine Methodensignatur, bei der eine Kultur mit angegeben werden kann,
wie im folgenden Beispiel dargestellt:
Fazit
Diese eher rein technischen Erwägungen streifen nur einen kleinen Teil dessen,
was für erfolgreiche multinationale Sites zu beachten ist.
In loser Folge werden weitere Artikel zu diesem weitem Themengebiet folgen.
Eine Checkliste mit Informationen zu den Basistechniken finden sich in der
Checklist for Globalized ASP.Net Web Applications.
Andere wichtige Themen sind Domain-Management, Filterung, rechtliche und kulturelle Unterschiede.
Für den arabischen UND den amerikanischen Raum zum Beispiel
müssen wir regelmäßig Spuren von Nackheit ausfiltern.
Das Stichwort dazu: no nudes for the prudes .
