Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   C# [WPF]Standardkultur... (https://www.delphipraxis.net/82574-%5Bwpf%5Dstandardkultur.html)

Khabarakh 15. Dez 2006 21:05


[WPF]Standardkultur...
 
Als ich heute Mittag in den SDK-Beispielen umhergewandert bin, staunte ich nicht schlecht, als eine Textbox meine Eingabe mit 100 multiplizieren wollte - das Dezimalkomma wurde als Tausender-Trennzeichen interpretiert, wie es eben im englischsprachigen Raum so üblich ist. Ein kleiner Test verwandelte mein Staunen in Schrecken :stupid: :
XML-Code:
<StackPanel>
   <Slider Name="slider" Height="20" Minimum="0" Maximum="100" Value="42.42"/>
   <TextBox Height="20" Text="{Binding ElementName=slider, Path=Value, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
Zitat:

FrameworkElement.Language
The language information for this element. The default value is an XmlLanguage with its IetfLanguageTag value set to the string "en-US".
Nun denke ich mir nur noch eines: Toll. Soll ich nun etwa in den Konstruktor jeder Page ein
Delphi-Quellcode:
Self.Language := System.Windows.Markup.XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.IetfLanguageTag);
einfügen? Waruuum :stupid: ? Und noch schöner, darf ich nun erwarten, dass zumindest jedes kleinere WPF-Programm, dass über den großen See zu uns schippert, mein armes Dezimalkomma verstößt, weil der Programmierer eben diese Zeile vergessen hat :wall: ?

Reinhard Kern 16. Dez 2006 14:19

Re: [WPF]Standardkultur...
 
Zitat:

Zitat von Khabarakh
Als ich heute Mittag in den SDK-Beispielen umhergewandert bin, staunte ich nicht schlecht, als eine Textbox meine Eingabe mit 100 multiplizieren wollte - das Dezimalkomma wurde als Tausender-Trennzeichen interpretiert, wie es eben im englischsprachigen Raum so üblich ist. Ein kleiner Test verwandelte mein Staunen in Schrecken :stupid: :
XML-Code:
<StackPanel>
   <Slider Name="slider" Height="20" Minimum="0" Maximum="100" Value="42.42"/>
   <TextBox Height="20" Text="{Binding ElementName=slider, Path=Value, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
Zitat:

FrameworkElement.Language
The language information for this element. The default value is an XmlLanguage with its IetfLanguageTag value set to the string "en-US".
Nun denke ich mir nur noch eines: Toll. Soll ich nun etwa in den Konstruktor jeder Page ein
Delphi-Quellcode:
Self.Language := System.Windows.Markup.XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.IetfLanguageTag);
einfügen? Waruuum :stupid: ? Und noch schöner, darf ich nun erwarten, dass zumindest jedes kleinere WPF-Programm, dass über den großen See zu uns schippert, mein armes Dezimalkomma verstößt, weil der Programmierer eben diese Zeile vergessen hat :wall: ?

Hallo,

es gibt keine Standardkultur, sondern drei davon:

1. Man kümmert sich überhaupt nicht um nationale Details und macht alles auf Englisch. Das sind alle Amerikaner und die Unix-Programmierer der ganzen Welt.

2. Man lässt Windows machen, was Windows macht, und kümmert sich nur dann um solche Sachen, wenn trotzdem ein Problem auftaucht. Das ist fast der gesamte Rest der Welt bis auf

3. Man setzt konsequent nationale Einstellungen und Anpassungen um. Das ist eine kleine radikale Minderheit vorwiegend aus Angehörigen von Kleinvölkern mit aussterbenden Sprachen. Der Aufwand kann aber gewaltig werden - wo kriegt man hierzulande eine Tastatur für Urdu?

Du musst dich nur entscheiden, zu welcher Fraktion du gehören willst.

Gruss Reinhard

Khabarakh 18. Dez 2006 15:30

Re: [WPF]Standardkultur...
 
Interessante Einteilung, aber zeige mir einmal ad hoc ein halbwegs professionelles Programm eines Amerikaners oder Pakistaners, das trotz deutschem Gebietsschema einen Dezimalpunkt verlangt. Nun, ich meinerseits kann dir einige zeigen, nämlich einen gesamten Ordner aus dem Windows SDK mit hunderten von WPF-Projekten...
Aber wozu du zur Lokalisation eine pakistanische Tastatur benötigst, das würde mich einmal interessieren. Meiner Meinung nach habe ich in meinem Projektkonzept einen Fehler gemacht, wenn ich nicht einfach eine Textdatei an einen Übersetzungsdienst schicken kann und das gesamte Programm sich dann automatisch der Übersetzung anpasst, also besonders Größe und Position der Controls.

Reinhard Kern 18. Dez 2006 15:50

Re: [WPF]Standardkultur...
 
Zitat:

Zitat von Khabarakh
Interessante Einteilung, aber zeige mir einmal ad hoc ein halbwegs professionelles Programm eines Amerikaners oder Pakistaners, das trotz deutschem Gebietsschema einen Dezimalpunkt verlangt. Nun, ich meinerseits kann dir einige zeigen, nämlich einen gesamten Ordner aus dem Windows SDK mit hunderten von WPF-Projekten...
Aber wozu du zur Lokalisation eine pakistanische Tastatur benötigst, das würde mich einmal interessieren. Meiner Meinung nach habe ich in meinem Projektkonzept einen Fehler gemacht, wenn ich nicht einfach eine Textdatei an einen Übersetzungsdienst schicken kann und das gesamte Programm sich dann automatisch der Übersetzung anpasst, also besonders Größe und Position der Controls.

Hallo,

ich weiss nicht so recht, was du damit sagen willst, der erste und der zweite Satz scheinen sich zu widersprechen - egal wie du das meinst, dass ein Komma nicht akzeptiert wird, ist bei technisch-wissenschaftlichen Programmen der Normalfall. Besonders übel ist die Gewohnheit, dazu auch keine Fehler zu melden: ich will Impedanzen berechnen und gebe dazu die Dielektrizätskonstante von Leiterplatten mit 4,6 an, und weil die Ergebnisse seltsam sind, komme ich irgendwann drauf, dass das Programm 4,6 einfach kommentarlos als 4,0 einliest (in dem Fall warens Australier).

Lokalisations-Systeme habe ich schon unter CP/M gebastelt, lange bevor es Windows gab, aber vor der Auslieferung sollte man ein Programm auch mindestens 1 mal testen. Ausserdem musste ich für Maschinen für die Sowjetunion natürlich die russische Tastatur mitliefern.

Gruss Reinhard

Khabarakh 18. Dez 2006 16:14

Re: [WPF]Standardkultur...
 
Nun ja, ich bin Software- und kein Maschinenbauer, also gehe ich davon aus, dass die Tastatur beim Kunden schon vorhanden ist ;) .
Mir ist gerade jedenfalls spontan kein einziges Programm eingefallen, das mir mein Komma geklaut hat - außer eben dem erwähnten SDK-Beispiel. Und das sollte eigentlich auch die Norm sein, schließlich berücksichtigt ein Edit verbunden mit StrToFloat normalerweise automatisch meine Windowseinstellungen, sei das Programm mit Delphi, C++, Java, ... geschrieben. Auch in Winforms funktionierte das noch wunderbar. Und genau diese Änderung von Microsoft, in ihrer GUI-API der Zukunft nun auf einmal Englisch als Standard festzusetzen, das wurmt mich doch etwas und führte zu diesem Thread.
Ich bin mir nicht einmal sicher, ob sie sich dieses Stilbruchs selbst bewusst sind. Das hier habe ich gerade im offiziellen Avalon-Forum gefunden:
Zitat:

Zitat von Alik Khavin - MSFT (!)
The default for xml:lang might be en-US. I agree that it would be much better for the sample to use CurrentCulture if xml:lang is not set.

Gut, ich kann die Page-Vorlagen von VS so ändern, dass der obige Code automatisch in jeden Konstruktor geschrieben wird, aber das muss Microsoft erst einmal den anderen zehntausenden Programmieren klar machen. Bei so etwas könnte ich Kopfweh bekommen :wall: .


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz