Есть ли способ вернуть текущий региональный десятичный разделитель и разделитель тысяч в сценарии оболочки в macOS?

Мне нужен способ вернуть текущие десятичные разделители и разделители тысяч на основе настройки региона. Я знаю, что вы можете получить разделители на основе языка, используя locale decimal_point и locale thousands_sep, и если у вас установлены пользовательские разделители, вы можете использовать defaults read -g AppleICUNumberSymbols, но я не могу найти способ вернуть значения на основе региона.

Например, на странице «Системные настройки языка и региона» предпочтительным языком является английский, а в качестве региона — Франция. Я хочу что-то, что будет возвращаться для разделителя тысяч и для десятичного разделителя.


person apple_alex    schedule 09.10.2020    source источник
comment
Вам действительно нужны сценарии оболочки? Знаете ли вы, что есть возможность использовать сценарии Swift, поэтому вы можете получить его с помощью Foundation.framework?   -  person Larme    schedule 09.10.2020
comment
@Larme Это для приложения Automator, поэтому оно не обязательно должно быть оболочкой. Просто все остальное в нем пока что оболочка. Я не думаю, что смогу использовать Foundation.framework в приложении Automator, не так ли?   -  person apple_alex    schedule 09.10.2020


Ответы (1)


Хорошо, поэтому, основываясь на предложениях Ларме о Foundation.framework, я придумал следующее решение, которое даст мне то, что я хочу, в сценарии оболочки, используя osascript для доступа к NSNumberFormatter:

osascript -e 'use framework "Foundation"' -e 'return (decimalSeparator of init() of alloc() of NSNumberFormatter of current application as string)'

person apple_alex    schedule 09.10.2020