[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt System-Dezimal-Separator per JavaScript herausfinden

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

System-Dezimal-Separator per JavaScript herausfinden

Hans Haesler
  
Beiträge gesamt: 5826

24. Aug 2012, 11:12
Beitrag # 1 von 5
Bewertung:
(1962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Liebe Experten,

Mac OS X > Systemeinstellungen > Sprache & Text > Formate.

Wenn im lokalen Menü "Region" der Artikel "Deutschland" gewählt ist, dann erscheint der Dezimal-Separator in den Bedienfeldern von InDesign oder in Excel-Zellen als Komma.

Wählt man "Schweiz" und startet den Mac neu (User ab- und wieder anmelden reicht auch), dann steht vor allen Nach"komma"-Stellen ein Punkt.

Mein Problem: Wie finde ich heraus, ob Punkt oder Komma eingestellt ist?

Ganz einfach, dachte ich:

Code
var decSep = $.decimalPoint; 

Weil für einen aktuellen Auftrag die Region "Deutschland" gewählt war, kam prompt dieses Ergebnis: ",".
Umstellen auf "Schweiz", Neustart. Erneute Abfrage. Ergebnis: immer noch ein Komma.

Okay: Im OMV steht die Erklärung "The character used as the decimal point character in formatted numeric output."
Anscheinend gibt es keinen direkten Weg, das Separator-Zeichen zu erfahren. Oder doch?

Eine Suche, was alles mit getenv() greifbar ist, ergab keine brauchbaren Resultate.

Auch dieses gefundene Snippet geht nicht. Das heisst, es zeigt ein Komma, statt den erwarteten Punkt:

Code
var n = 1.1; 
n = n.toLocaleString().substring(1, 2);
alert (n);

Besten Dank im voraus.

Gruss, Hans
X

System-Dezimal-Separator per JavaScript herausfinden

-hans-
Beiträge gesamt: 748

24. Aug 2012, 13:00
Beitrag # 2 von 5
Beitrag ID: #499834
Bewertung:
(1933 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Hans,

wenn's nur um macianische Arbeitsplätze geht, dann könntest Du vllt. eine simple Überprüfung per eingeschobenem AS machen:

Code
try 
0.1 + "0,5"
on error
display dialog "locale Sep = \".\""
end try


Ist der lokale Separator "," dann funzt die Berechnung, ansonsten nicht.


als Antwort auf: [#499824]

System-Dezimal-Separator per JavaScript herausfinden

-hans-
Beiträge gesamt: 748

24. Aug 2012, 13:53
Beitrag # 3 von 5
Beitrag ID: #499840
Bewertung:
(1911 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
oder:
Code
do shell script "defaults read .GlobalPreferences AppleLocale " 



als Antwort auf: [#499834]

System-Dezimal-Separator per JavaScript herausfinden

Hans Haesler
  
Beiträge gesamt: 5826

24. Aug 2012, 14:06
Beitrag # 4 von 5
Beitrag ID: #499845
Bewertung:
(1903 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans-Gerd,

besten Dank. Den ersten Trick hatte ich schon in ähnlicher Form in einigen AppleScripts verwendet.

Jetzt benötige ich aber eine Lösung per JavaScript und sowohl für Mac als auch für Win.

Für den Fall, dass eine direkte Abfrage nicht möglich ist, habe ich mir einen Workaround ausgedacht. Muss aber zuerst testen, ob es damit klappen wird.

Gruss, Hans


als Antwort auf: [#499840]

System-Dezimal-Separator per JavaScript herausfinden

Hans Haesler
  
Beiträge gesamt: 5826

26. Aug 2012, 22:35
Beitrag # 5 von 5
Beitrag ID: #499929
Bewertung:
(1790 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

anscheinend weiss niemand Rat. Und mein Workaround funktioniert nicht. Deshalb habe ich das Problem nun anders "gelöst".

Es geht um folgendes: Das Script FarbenMuster sollte auch mit Werten gefüttert werden können, welche Nachkommastellen enhalten (siehe http://www.hilfdirselbst.ch/...i?post=499928#499928)

Beim Erzeugen der Farbfelder ist nur der Punkt als Dezimal-Separator möglich. Das vorgängige Ersetzen eventueller Kommas durch Punkte ist einfach.

Wenn der System-Dezimal-Separator als Komma definiert ist, wird in den Farbfeldoptionen ein Punkt automatisch in ein Komma verwandelt. Aber beim Erzeugen des Farbfelds darf der Name nicht mehr weggelassen werden. Dann würde er zwar automatisch erzeugt, doch die Nachkommastellen erscheinen nicht im Bedienfeld. Deshalb muss der Name zugewiesen werden.

Komma oder Punkt? Das Script kann nicht herausfinden, was im System eingestellt ist. Aber es "weiss", was in der ".csv"-Datei steckt. Deshalb wird dieser Separator auch im Bedienfeld-Namen erscheinen. Sollte dieses Detail nicht mit jenem in den Optionen übereinstimmen, dann ist der Anwender selber schuld ...

Gruss, Hans


als Antwort auf: [#499845]
X