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

#macos #shell #decimal-point

#macos #оболочка #десятичная точка

Вопрос:

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

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

Комментарии:

1. Вам действительно нужны сценарии оболочки? Знаете ли вы, что есть возможность использовать Swift-скрипты, чтобы вы могли получить их с помощью этого, используя Foundation.framework ?

2. @Larme Это для приложения Automator, поэтому оно не обязательно должно быть оболочкой. Просто все остальное в нем до сих пор является оболочкой. Я не верю, что я мог бы использовать Foundation.framework в приложении Automator, не так ли?

Ответ №1:

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

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