Fragensteller
CultureInfo: Welche Sprachen und welche landesspezifischen Eigenheiten (das Komma für die Nachkommastellen) braucht man?

Allgemeine Diskussion
-
Hallo!
Vorneweg will ich nur kurz erwähnen, dass ich irgendwo ziemlich dicht an der Benutzeroberfläche die Funktionalität des Commit, aber nicht des Rollbacks gesehen habe. Leider weiß ich nicht mehr, wo das war.
Beim CultureInfo ist wichtig, dass man die richtige Sprache und auch die richtigen landesspezifischen Besonderheiten nutzen kann. Da würde für mich viel Sinn machen, wenn man von Microsoft Listboxen hätte, um den Nutzer bzw. EDV- Leiter das für ihn richtige auswählen zu lassen. Bei Englisch macht es Sinn, dass man auf jeden Fall das Englisch der USA kann und bei Deutsch dass man das Deutsch in der BRD hat. Aber es gibt auch das Englisch der Briten, wo man schon bei dem "o" und dem "ou" sieht, dass das anders ist. In der Schweiz scheinen die Kinder beim Überqueren der Straße zu lernen "Lueg links, Lueg rechts". Das Lueg erinnert mich an das "look" im Englischen, aber ich kenne das Wort aus dem Deutsch der Deutschen nicht. Wenn man Indisch oder Chinesisch nicht kann, macht es wenig Sinn von Englisch in Englisch oder Deutsch in Deutsch (das der Schweiz) übersetzt. Aber der Kunde ist König und wenn man in Großbritannien oder der Schweiz das in der eigenen Sprache braucht, sollte das vor allem eine Frage des Preises sein.
Beim Arabisch weiß ich nur, dass es Sinn macht, denselben Bildschirm mit der Koordinate x von links dann mit der Koordinate Breite - x dann von rechts nach links vollautomatisch aufzubauen. Aber ich weiß nicht, ob es da eine Variante gibt, die man allen Arabern anbieten kann? Da würde für mich bei Arabisch Sinn machen, wenn ich mir ein CultureInfo mit der richtigen Sprache und den Besonderheiten stellvertretend definieren könnte. Das wäre dann in der Tat ein CultureInfo, das es für ein ganz spezielles Land gibt. Aber ich würde lieber das mein Arabisch nennen wollen.
Hat jemand da noch andere Ideen?
Klaus Kühl
Alle Antworten
-
Hallo Klaus,
brauchen wird man vor allem die Sprache, die man versteht. Das ist natürlich am ehesten die Muttersprache, aber auch Englisch ist sehr weit verbreitet. Ich würde mir als Privater Entwickler wahrscheinlich nicht die Mühe machen zwischen den verschiedenen Deutsch zu unterscheiden. Beim US-, britischen und den anderen Englisch-Varianten dagegen gibt es teilweise wirklich große Unterschiede, die je nach Software auch wichtig zu beachten sind. Das sind dann nicht mehr nur trotzdem zu verstehende Dinge wie ou statt o.
Als Unternehmen das mit der Entwicklung Geld verdient sehe ich es noch ein wenig anders. Wenn ein großer Kunde aus der Schweiz kommt, lohnt sich die Übersetzung vielleicht um das eigene Image zu verbessern.
Was andere Sprache betrifft kann ich nicht mal meine Meinung nieder schreiben - speziell beim arabischen weiß ich auch nur das das gesamte Layout immer gespiegelt aussieht.
Die CultureInfo-Klasse von .NET stellt wirklich nur das Grundlegende zur Verfügung, was die .NET eigenen Klassen teilweise zur Formatierung brauchen. Trotzdem kann man anhand eines solchen Objekts seine Lokalisierung aufbauen.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Vielen Dank!
Ich weiß, dass man mit dem Autokennzeichen die Lokalisierung aufbauen kann. Aber das CutureInfo kann wohl mehr. Die Schweiz hat ein Autokennzeichen, aber wohl drei offizielle Sprachen (auch Italienisch). Das Autokennzeichen braucht auch nicht wirklich weniger Speicherplatz als das CutlureInfo. Beim CultureInfo könnte man zuerst fragen, welche Sprache es sein soll und danach welches Land das sein soll. Aber bei der Schweiz macht es mehr Sinn, erstmal klarzustellen, dass das die Schweiz ist. Dann kann man alle drei Alternativen, aber nicht mehr anbieten.
Bei der Schweiz könnte man auch vielleicht den Bildschirm in der Sprache der Firma anbieten, aber bei den Meldungen (Fehler und so weiter) dann die Sprache des Nutzers verwenden. Bei den Eingaben ist die Frage, ob man das dann nicht in dem Format der Firma, sondern des Nutzers machen will? Ich halte es nicht für gelungen, wenn man die Fehlermeldungen im XAML- File hinterlegt. Denn bei den Meldungen kann man immer wieder andere Meldungen einführen. Deshalb immer wieder das XAML- File zu ändern, könnte ineffektiv sein.
Wir haben unsere Türken, unsere Soldaten der USA und Gastwissenschaftler. Da kann man also, wenn man Türkisch und Englisch bei seiner Software kann, dies auch in Deutschland anwenden. Deshalb würde ich die (Fehler-) Meldungen in einer Datenbank haben wollen, damit man sie übersetzen kann. Auf der einen Seite erspart man sich eine Menge Arbeit, wenn man dieselbe Meldung überall verwendet. Auf der anderen Seite braucht man den Namen des XAML- Files, um zu wissen, welche Meldung man auch braucht (in dem speziellen Fall) und um dann auch Karteileichen (Meldungen, die man nicht mehr braucht) wieder zu entsorgen.- Bearbeitet Klaus Kühl Freitag, 29. Mai 2015 18:27
-
Hallo,
WPF bietet von sich aus eine Übersetzungsmöglichkeit mit Hilfe von Ressourcenwörterbüchern. Diese werden dann aber fest mit einkompiliert. Siehe dazu: Übersicht über WPF-Globalisierung und -Lokalisierung
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Hallo Herr Lambert!
Da haben Sie einen interessanten Link genannt. Das xml:lang Attrigute würde ich gerne aus dem Programm heraus setzen. Bei SizeTocontent fällt mir auf, dass es im Augenblick nicht eindeutig gelöst ist, wann man in der TextBox, dem TextBlock oder der ComboBox die Width angeben muss, wenn man auch noch mit Stackpanels arbeitet. Deshalb gehe ich davon aus, ich benutze zu oft die Eigenschaft Width.
Ich käme auch noch auf die Idee mit der Texteigenschaft das, was im Label/ dem Textblock steht, aus der Datenbank zu holen. Da habe ich dann auch im Griff, das, was übbersetzt werden muss, übersetzt darzustellen und zum Beispiel die gleiche gif Datei für ein Bild anzuzeigen.
Bei den Fonts könnte es Sinn machen, dei Font- Families in ASP-NET gleich so groß zu machen, dass man immer alle Sprachen abdeckt. Da bin ich als Programmierer aber wohl überfordert, schon weil ich noch keinen indischen Text gesehen habe.
Bei Arabisch macht es also Sinn, dass man vielleicht nur eine bool- Variable hat, um das dann vollautomatisch spiegelverkehrt anzuzeigen.
Wenn man übersetzen will, muss man ganz klar den Text im Feld darstellen können. Da würde ich als Alternative zum TextWrapping auch die Möglichkeit haben, die TextBox so weit zu machen (mit der Width zum Beispiel) dass jede Übersetzung in dass Feld passt. Wenn man mal in einer Sprache das TextWrapping braucht, aber in der anderen Sprache aber nicht, dann ist ganz klar, dass das in jeder Sprache schon vom Layout her anders aussieht.
Bei der Navigation kann Microsoft, wenn man die bool- Variable zur Umschaltung auf rechts nach links hat, ganz einfach auch die beiden Buttons in der Anzeige vertauschen, so dass der Programmierer die gleiche Aktion auslösen kann, wie wenn das von links nach rechts dargestellt ist, aer eben nicht arabisch ist.
Vielen Dank!
-
Hallo Klaus Kühl,
in die Diskussion möchte ich einbringen, dass Lokalisierung mehr ist als nur Texte übersetzen. Neben den verschiedenen Textlängen müssen auch Formatierungen, Symbole, Farben und möglicherweise auch Bedienungsabläufe angepasst werden. Eine Datenbank die nur Übersetzungstexte enthält ist daher regelmäßig ungeeignet.
Optisch sieht es auch sehr unschön aus, wenn man in Dialogen Platz für den längsten Text lässt - leere Bereiche die für den Nutzer nicht nachvollziehbar sind.In .net hat man typischerweise kulturspezifische Ressourcen, diese liegen später in einem Unterordner mit entsprechender Culture-Kennung (z. B. "de" für Deutsch) und beinhalten Bibliotheken mit den zur Kultur gehörenden Ressourcen. Die Verwendung unter Visual Studio gestaltet sich eigentlich recht simpel und erlaubt es einfach neue Kulturressourcen anzulegen. Wenn die zur im Betriebsystem passenden Culture-Ressourcen da sind, werden diese beim Start der .net Anwendung automatisch verwendet (für Webanwendungen gilt ähnliches aufgrund der mitgesendeten Culture-Info beim Seitenaufruf).
Ob eine Lokalisierung lohnt, muss man anhand seiner Zielgruppe abwägen - möglicherweise ist die Zielgruppe auch bereit bei der Lokalisierung zu helfen.
Gruß
- Florian
-
Hallo Florian!
In der Tat scheint die Lokalisierung ein Problem zu sein. Das fängt ja schon damit an, dass man im Norddeutschland das Ade bzw. Adele in Süddeutschland nicht wirklich kennt. Fakt ist aber wohl, dass in ganz Deutschland das Komma zum Abtrennen der Nachkommastellen und der Punkt zum Trennen von je drei Stellen vor dem Komma genutz wird. Da ist wirklich die Frage, ob man in Deutschland es allen Ernstes anbieten wollen, dass der Nutzer das so sieht wie in den USA oder in Großbritannien.
-
Hallo!
Heute habe ich festgestellt, es gibt die CultureInfos dsb-DE und hsb-DE. Da ich früher Verwandte in Lübben im Spreewald besucht habe, weiß ich, das ist Minderheitenschutz in der damaligen DDR. Es könnte aber sein, dass man in der DDR nicht massenhaft diese Sprachen gelernt hat. Wenn es diese CultureInfos gibt, wird man mehr Leute erreichen, wenn man auch so etwas wie Schwäbisch oder Plattdeutsch in genau dem richtigen Ort kann. Ich schätze, Microsoft ist definitiv nicht in der Lage alle Sprachen zu kennen. Vielleicht führt man da ein Forum ein, auf dem man seine eigene Sprache im Land registrieren kann? Wichtig wird wohl sein, dass immer das erste '-' die Sprache von dem Land trennt. Wenn das das letzte '-' ist, dann kann man verwechseln ob bei drei jeweils mit '-' konkatenierten Codes der mittlere Code zur Sprache oder zum Land gehört. Da wäre es narrensicherer, wenn man zusätzlich zu dem '-' noch ein Zeichen wie '=', das es dann nur einmal im String gibt, einführt, um ganz klar optisch erkennbar und automatisch parsebar die Sprache vom Land zu trennen.
Vielen Dank,
Klaus Kühl
-
Hallo Klaus Kühl,
bei dsb-DE und hsb-DE handelt es sich um Sorbisch, eine slawische Sprache - die in den beiden Regionen auch als Amtssprache verwendet wird.
Für die entsprechenden Codes gibt es eine Norm und zwar die ISO 639. In der genannten ISO 639 findet sich auch die Kennung für Schwäbisch (639-2 und 639-3).Gruß
- Florian
-
Ich wollte nur mal schnell meine 2cents in den Raum werfen.
Ich programmiere fast immer mit CurrentCulture. Dann kann der Admin einstellen welche Sprachen genutzt werden sollen (sofern es sich hier nur um Kleinigkeiten wie besondere Buchstaben aus UTF-8-Dateien handelt, etc.). Ist natürlich mit Vorsicht zu genießen wenn dann plötzlich Kommata als Punkte dargestellt werden oder ähnliches. Das kann dann ganz schnell nach Hinten losgehen ;)
-
Hallo!
Ich möchte zu bedenken geben, dass in der BRD man aus Minderheitenschutz gemacht hat, dass der Südschleswigsche Wählerverband mit seiner einen Stimme darüber entschieden hat, wer in Schleswig- Holstein den Ministerpräsidenten stellt, aber Dänisch als Sprache in Deutschland gibt es wohl definitiv offiziell nicht. Da ist die große Frage, wie man mit China umgehen will? Wenn es bei uns Sorbisch gibt, wäre erstaunlich, wenn es in China in der Tat nur vier Sprachen tatsächlich geben würde. Aber wenn jeder seine eigene Sprache definiert, wird das etwas sein, das die Regierung in China wohl nicht unterstützen will. Ich würde darauf achten, in der Datenbank grundsätzlich mit NVARCHAR und NCHAR zu arbeiten, damit man den UTF-8 Code tatsächlich hat. Aber wenn man UTF-16 können will, dann sind die Strings noch einmal so lang.
Bei so etwas wie das Komma und dem Punkt, würde ich das daran festmachen, in welchem Land man ist. Unsere Türken (die vielleicht dann auch in Deutschland geboren sind) wissen, was man da in Deutschland braucht. Auch von mir würde ich erwarten, dass ich, wenn ich in den USA bin, damit klar komme, dass Punkt und Komma ganz anders funktionieren. Da ist die Frage, ob man mir in den USA damit kommen darf, dass ich das auf einmal in deutscher Schrift sehe? In den USA müsste ich, weil ich in den USA bin, unterscheiden müssen, dass das eben in den USA anders ist als in Deutschland. Da ist also die große Frage, für wie flexibel man den Nutzer ansieht? Wenn der Admin einstellen kann, was der Nutzer sieht, gibt es einen, der das verwaltet und zwar im Namen des Nutzers. Wenn man den intelligenten Menschen ernst nimmt, könnte man dem Nutzer die Möglichkeit geben, diese Entscheidung selber zu treffen.
Klaus Kühl
-
Hallo Klaus Kühl,
Dänisch gibt es sehr wohl in Deutschland und ist in Schleswig-Holstein eine anerkannte Sprache. Was Du da schreibst sind allerdings politische Fragen, welche nur indirekt Einfluss auf die Softwarelokalisierung haben - den für den Nutzer, der eine bestimmte Sprache verwenden will, ist es unerheblich ob diese am Standort anerkannt ist.
Genauso unerheblich ist es für die vom Anwender gewünschte Sprache an welchem Standort sich dieser gerade befindet. Ich würde es daher grundsätzlich nicht vom Standort abhängig machen, in welcher Sprache die Software ausgeführt wird.
Der erste relevante Punkt zur Feststellung der geeigneten Sprache, ist die Umgebung meiner Software, d. h. welche Systemeinstellungen sind dort vorgenommen. Ich erfahre also vom Betriebssystem welche Sprache eingestellt ist, welches Dezimaltrennzeichen vom Anwender verwendet wird (denn dort ist es eingestellt und kann ggfls. vom Anwender angepasst werden). Neben dem Dezimaltrennzeichen sind dort natürlich noch weitere Formatierungen vorgesehen, z. B. Datums und Zeitformate. Es wird also regelmäßig keinen Grund geben dort zu raten, sondern man kann einfach die eingestellten Formatierungen aus den Systemeinstellungen verwenden.
Gruß
- Florian
-
Hallo!
In diesem Zusammenhang ist auch die Frage, ab wann es ein neues Land gibt? Denn der Kunde des Software- Entwicklers muss, um Handel treiben zu können, an die richtige Postleitzahl im richtigen Land liefern können und dann auch die Rechnung in der richtigen Währung verbuchen können. Deshalb wird es für den Software- Entwickler zu lange dauern, bis ein Land allgemein anerkannt ist. Palästina war ja sehr lange für die UNO nicht existent. Jetzt gibt es aktuell die Krim als Teil der Ukraine, die jetzt entweder ein eigener Staat ist oder zu Russland gehört. Da wird auch in diesem Fall es für den Software- Entwickler zu spät sein, wenn die Ukraine offiziell bestätigt, die Kirm gehört nicht mehr zu der Ukraine.
Da macht hier also ein Forum mit klaren Regeln Sinn, auf dem man sein neues Land mit der richtigen Währung einreichen kann. Dann aber hat man wegen der klaren Regeln nicht wirklich die Möglichkeit zu verhindern, dass es in Deutschland das atomwaffenfreie Dorf bzw. die atomwaffenfreie Stadt ganz offiziell ein eigener Staat ist. In der Tat wird der Software- Entwickler mit der Definition des neuen Landes viel Politik machen. Da ist die Frage, ob es geben darf, dass aus dem Code für das Land auf einmal eine Kombination mit dem "-" gibt? Da ist auch die Frage ob es tatsächlich stimmt, dass es in einem Land nur eine Währung gibt? In Zusammenhang mit dem Grexit hat man auch zwei Währungen oder zu der einen Währung Schuldscheine, die es nur in Griechenland gibt, diskutiert. Auch bei den Schuldscheinen muss man das klar von den Euro- Geldscheinen trennen, wenn man auch Rechnungen von Firmen außerhalb von Griechenland bezahlen will. Der Handwerker wird wohl mit seiner EDV nicht die Möglichkeit haben in zwei Währungen parallel zu wirtschaften.
Vielen Dank
Klaus Kühl