Как я могу настроить язык системы?

В системе Администрирование Поддержка языков Текст. Я могу выбрать только стандартные локали, но я бы хотел их настроить. Например, в Windows я мог настроить такие вещи, как формат времени и даты, единицы измерения, десятичный разделитель, валюта и т. Д. Вручную - как я могу сделать это в Ubuntu?

23
задан 13 January 2011 в 16:34

2 ответа

Не уверен, какую настройку вы хотите, но вы можете установить некоторые переменные локали, используя ~/.locale. Например, чтобы получать сообщения на английском языке, но по немецкому времени и тому подобное я использую

export LC_ALL=""
export LANG="en_GB.utf8"
export LC_CTYPE="de_DE.utf8"
export LC_NUMERIC="de_DE.utf8"
export LC_TIME="de_DE.utf8"
export LC_COLLATE="de_DE.utf8"
export LC_MONETARY="de_DE.utf8"
export LC_MESSAGES="en_GB.utf8"
export LC_PAPER="de_DE.utf8"
export LC_NAME="en_GB.utf8"
export LC_ADDRESS="de_DE.utf8"
export LC_TELEPHONE="de_DE.utf8"
export LC_MEASUREMENT="de_DE.utf8"
export LC_IDENTIFICATION="de_DE.utf8"

Также возможно создание пользовательских локалей. Смотрите, например это руководство для дат.

0
ответ дан 13 January 2011 в 16:34

Этот ответ продемонстрирует, как полностью настроить локаль, дополнительно с помощью существующей локали в качестве основы. Тип локали, которая будет использоваться в этом ответе, i18n введите; такой тип локали будет подразумеваться в каждом упоминании о слове "локаль" в теле ответа.

Найдите руководство

Первая вещь необходимо настроить локаль, узнают формат локали. У этого веб-редактора локали есть всестороннее описание каждого поля в локали, несмотря на то, чтобы не быть применимым просто любым в сразу же способ. Это будет руководством по использованию.

Необходимые инструменты

Единственные инструменты необходимо работать с локалями,

  1. Текстовый редактор. Любой сделает, хотя VIM будет экс-ячейка.
  2. text-to-unicode преобразователь. Больше всего ожидалось бы, что Вы не имели один, таким образом, я предоставлю Вам простой. Считайте следующий подраздел для получения его.

Я рекомендую Вам создать каталог и сохранить все связанное с работой, которую Вы сделаете на локали к нему.

Преобразователь Text-to-unicode (encodestr)

Примечание: при использовании необычных символов, у Вас могут быть проблемы со сценарием, который я пишу ниже; Вы могли бы хотеть смотреть на альтернативные сценарии, связанные nass.

Сохраните следующий код в файл. Этот файл будет определен Вашей системой как сценарий Python, который в порядке, потому что это - то. Это руководство предполагает, что Вы назвали сценарий encodestr.

#!/usr/bin/python

def encode(string):
    newstring = str()
    for ch in string:
        newstring += "<U%04X>" % ord(ch)
    return newstring

if __name__ == '__main__':
    import sys
    print encode(sys.argv[1])

После сохранения его дайте разрешение выполнения файла - это пригодится. Можно сделать тот наутилус использования, или путем выполнения от терминала следующей команды, на каталоге, в котором Вы сохранили сценарий: chmod +x encodestr.

Можно теперь протестировать этот сценарий путем работы того же каталога: ./encodestr hello. Необходимо получить вывод, равный <U0068><U0065><U006C><U006C><U006F>.

Измените существующую локаль

Изменение существующей локали является самым легким случаем, поскольку идеально Вы выберете локаль, которая соответствует Вашим потребностям почти полностью, в этом случае необходимо сделать только маленькие модификации. Для адаптации его можно использовать руководство для знания, какой из разделов является теми, Вы хотите измениться, и как можно изменить их. Все установленные локали находятся в /usr/share/i18n/locales, однако руководство содержит в значительной степени каждую локаль, когда-либо созданную.

Однако первая вещь, которую Вы заметите при открытии локали, состоит в том, что Вы считаете английские слова так же как странный <UXXXX> коды. Необходимо будет смочь создать эти коды - это то, где encodestr сценарий появляется.

Когда Вы знаете, какие разделы необходимо изменить, необходимо знать каждое поле, содержавшееся в разделе.

Например, LC_TIME раздел содержит поле t_fmt, и многие другие. Каждое поле имеет свое собственное описание на руководстве.

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

Например, поле t_fmt принимает текст и общие strfmt переменные.

Как раз в то самое время, когда Вы знаете, что записать на полях, Вы хотите изменить, прокрутить текст encodestr сценарий для получения его закодированного эквивалента.

Примечание: Не каждое поле должно быть закодировано, использовать существующую локаль в качестве ссылки в случае необходимости.

Например, если Вы хотите иметь формат времени Time: %T в t_fmt поле, выполненное ./encodestr "Time: %T"; это возвратится <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054> и таким образом, у Вас будет строка t_fmt <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054> в Вашей локали (в он - соответствующий раздел, конечно).

После изменения каждого поля, Вы хотели, необходимо будет продолжить устанавливать локаль на системе, таким образом, это сможет использоваться. Продолжите двигаться к разделу установки для этого.

Создание локали с нуля

В противоположность изменению того другой метод можно использовать для создания пользовательской локали, работает над ним с нуля. Это не очень трудно - снова - при использовании руководства. Вот полезная подсказка хотя: можно скопировать разделы с других локалей без фактической копии и методов вклеивания. Просто необходимо следовать за этим форматом:

LC_SECTION
copy "locale"
END LC_SECTION

Где LC_SECTION раздел, который Вы хотите изменить, и locale локаль, с которой Вы хотите скопировать тот раздел.

Например, если бы Вы хотите скопировать формат времени в английской локали, у Вас был бы этот текст Вашим пользовательским файлом локали:

LC_TIME
copy "en_GB"
END LC_TIME

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

Установка пользовательской локали

Шаги, которые я собираюсь показать ниже, не могут быть оптимальными, но работа.

  1. Скомпилируйте свою локаль. Не паникуйте! Это занимает время. Просто выполните команду sudo localedef -i custom -f UTF-8 custom.UTF-8 -c -v где custom название Вашей локали.

  2. Скопируйте свою локаль в /usr/share/i18n/locales/ каталог. Вам определенно будет нужен sudo priviledges, чтобы сделать это, и можно сделать это с командой sudo cp locale /usr/share/i18n/locales/ где locale имя файла Вашей пользовательской локали.

  3. Укажите свою локаль в /var/lib/locales/supported.d/. Например, создайте имя файла /var/lib/locales/supported.d/asd и добавьте строку custom UTF-8, где пользовательский название Вашей локали.

  4. Выполните волшебную команду. Я на самом деле не знаю то, что точно делает эта команда, но это крайне важно. Выполненный sudo locale-gen. Является самым вероятным, что это генерирует ссылки на доступные локали при необходимости.

  5. Скажите Вашей системе использовать локаль. Если Вы хотите, чтобы локаль использовалась на способе в масштабе всей системы, измените /etc/environment файл. В противном случае можно изменить Ваш ~/.profile файл или любой другой тот, который получен при запуске. Если Вы не знаете то, что не волнуют последние средства, просто используйте ~/.profile файл. Знать то, что необходимо записать в нем, первый показ locale команда. Это должно выпустить список с объектами как LANGUAGE, LC_MESSAGES, LC_CTYPE и многие другие. Вы запишете для каждого из разделов, которые Вы хотите (перечисленный предыдущей командой), на отдельных строках, этом SECTION="locale" где SECTION раздел и locale название Вашей пользовательской локали.

Например, если Вы хотите использовать формат времени из Нидерландов, но английский язык, запишите:

LANGUAGE="en_GB:en"
LC_TIME="nl_NL"

Примечание: Если Вы хотите использовать одну локаль для каждой установки локали, записать LC_ALL="locale" где locale название Вашей пользовательской локали. Если Вы хотите использовать локаль для всего, но для языка, можно записать LANG="locale" и (на другой строке, конечно) LANGUAGE="locale":XX где XX 2 алфавитных кода для языка, который Вы хотите.

Например, если Вы хотите использовать голландскую локаль и английский язык, Вы могли бы использовать:

LANG="nl_NL"
LANGUAGE="nl_NL:en"

Вы закончили

В следующий раз, когда Вы входите в систему, Ваша локаль должна использоваться. Можно протестировать это путем выполнения locale управляйте снова.

Прокомментируйте о несоответствиях или ложных операторах в этом руководстве!

28
ответ дан 13 January 2011 в 16:34

Другие вопросы по тегам:

Похожие вопросы: