Рейтинг:3

Интернационализация bash-скриптов

флаг jp

Я хочу получить языковой стандарт, чтобы я мог вызвать соответствующую функцию справки для определенного языка. я могу использовать место действия чтобы получить ЯЗЫК или же ЯЗЫК переменная. Но нужна помощь, чтобы реализовать проверку с условием для конкретного языка.

место действия
ЯЗЫК=en_US.UTF-8
ЯЗЫК=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
ЛК_ВСЕ=
sudodus avatar
флаг jp
Какой чек? Какой конкретно язык? Должны ли многие или все возможные языки разветвляться на собственные функции справки? Я думаю, вам нужен либо оператор case, либо оператор if.
флаг jp
На данный момент у меня будут справочные функции на английском, французском и итальянском языках: `help_en`, `help_fr`, `help_it`. Можно просто сделать `comlang="$LANG"`. Тогда нужно будет сопоставить `en`, `fr`, `it` в `comlang` и `case`.
bac0n avatar
флаг cn
Я думаю, что он закрылся раньше времени.
флаг jp
Это то, что происходит довольно часто. Проклятие умеренности и рвения вмешиваться!
bac0n avatar
флаг cn
Связано: [Как добавить поддержку локализации] (http://mywiki.wooledge.org/BashFAQ/098), или вы можете использовать `gettext`.
Рейтинг:6
флаг jp

Следующий сценарий может быть частью вашего сценария оболочки bash.

#!/бин/баш

функция help_fr () {
    эхо "Француз"
}
#
функция help_it () {
    эхо "итальяно"
}
#
функция help_ru () {
    эхо "английский"
}

# главный

курланг="${ЯЗЫК:0:2}"

случай "$curlang" в
 фр)
  help_fr
  ;;
 Это)
  Помоги
  ;;
 *) # предполагается английский язык по умолчанию
  help_ru
  ;;
эсак
флаг jp
Большое спасибо @sudodus
sudodus avatar
флаг jp
@ Фатипати, я рад, что смог тебе помочь. Всегда пожалуйста :-)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.