Изменение формата времени для конкретного приложения

Я хочу использовать определенную локаль для некоторого приложения, но не для остальной части моей системы. Как это сделать?

4
задан 7 September 2017 в 03:04

6 ответов

Теоретическая часть

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

Проверьте это, запустив gnome-calculator через

env LC_NUMERIC=de_DE.UTF-8 gnome-calculator

, если в данный момент вы используете десятичную точку и через

env LC_NUMERIC=en_IE.UTF-8 gnome-calculator

, если в настоящее время вы используете запятую как десятичную точку.

] Процесс gnome-calculator будет использовать язык, указанный перед его вызовом.

Обратите внимание, что это не сохраняется, если вы закрываете приложение и открываете его через Dash или просто вызываете gnome-calculator в терминале. Фактически, это зависит от процесса, и вы можете использовать несколько экземпляров gnome-calculator, некоторые из них используют периоды, а некоторые из них используют запятые в качестве их десятичных точек. Проверьте это, запустив gnome-calculator в другом терминале. Он будет использовать ваши обычные настройки.

Поиск правильной локали

Вам не нужно искать ни одного локали, который бы соответствовал вашим потребностям во всем. Вместо этого достаточно найти тот, который соответствует тому, что вы хотите в определенной категории локализации. Здесь нам только нужен формат времени, который можно изменить, манипулируя переменной окружения LC_TIME.

Возможно, вас интересует международный формат времени (ISO 8601) или формат времени для какой-либо страны из которых вы знаете формат времени. Для первого используйте en_DK.UTF-8. Для последнего используйте 2-буквенную аббревиатуру языка строчными буквами, символ подчеркивания, аббревиатуру 2 буквы для графства заглавными буквами, а затем .UTF-8. Например, en_IE.UTF-8 является ирландским английским, de_DE.UTF-8 является немецким немецким, de_CH.UTF-8 является швейцарским немецким, а fr_CH.UTF-8 является швейцарским французским.

Практическая часть

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

Вы, вероятно, запускаете свое приложение через Dash. Если вы это сделаете, вы используете файл рабочего стола. Найдите свой рабочий стол. Это либо в /usr/share/applications, либо в ~/.local/share/applications. Первый является общесистемным, последний является специфичным для пользователя.

Я буду использовать Firefox в качестве примера приложения. Это рабочий файл /usr/share/applications/firefox.desktop.

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

cp /usr/share/applications/firefox.desktop ~/.local/share/applications

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

Откройте его в текстовом редакторе. Неважно, используете ли вы одну командную строку или графическую. Обычный Ubuntu поставляется с GEdit в качестве графического текстового редактора по умолчанию:

gedit ~/.local/share/applications/firefox.desktop

Если это не работает, потому что вы используете аромат Ubuntu, который не поставляется с GEdit, просто используйте nano: [ ! d18]

nano ~/.local/share/applications/firefox.desktop

Найдите строку, начинающуюся с Exec=. Для Firefox это Exec=firefox %u. Затем возьмите все, что приходит после Exec=, и получите его в этом формате с нужной вами локалью вместо en_DK.UTF-8:

Exec=env LC_TIME=en_DK.UTF-8 firefox %u

Конечно, вам нужно заменить en_DK.UTF-8 на любой язык, который вы хотите

Сохраните файл.

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

chmod +x ~/.local/share/applications/firefox.desktop

Теперь перезапустите приложение.

Dash обычно обновляет файлы рабочего стола автоматически, но на медленных системах это может занять некоторое время. Или, по крайней мере, это было в некоторой версии. Если он не работает мгновенно, выйдите из системы и снова запустите.

6
ответ дан 22 May 2018 в 18:43
  • 1
    @EliahKagan Да, я на самом деле протестировал его на этот раз (Ubuntu 16.04; Unity 7.4.0). Как с Firefox, так и с Gnome Calculator. Exec=bash -c "(LC_NUMERIC=de_DE.UTF-8; gnome-calculator)" делает Gnome Calculator использовать запятую в качестве десятичной точки в моей системе, даже если она обычно использует период. Причина, по которой я не использую env, состоит в том, что она очень ограничена, что означает, что я должен думать о том, что будет и что не сработает. Я просто хочу, чтобы сила полного удара была везде, где она выглядела как полная сила удара. Причина, по которой я использую подоболочку, заключается в том, что я хочу убедиться, что изменения содержатся. – UTF-8 7 September 2017 в 18:28
  • 2
    Когда мы отходим от темы, мы должны продолжить обсуждение в чате . – UTF-8 7 September 2017 в 19:22

Теоретическая часть

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

Проверьте это, запустив gnome-calculator через

env LC_NUMERIC=de_DE.UTF-8 gnome-calculator

, если в данный момент вы используете десятичную точку и через

env LC_NUMERIC=en_IE.UTF-8 gnome-calculator

, если в настоящее время вы используете запятую как десятичную точку.

] Процесс gnome-calculator будет использовать язык, указанный перед его вызовом.

Обратите внимание, что это не сохраняется, если вы закрываете приложение и открываете его через Dash или просто вызываете gnome-calculator в терминале. Фактически, это зависит от процесса, и вы можете использовать несколько экземпляров gnome-calculator, некоторые из них используют периоды, а некоторые из них используют запятые в качестве их десятичных точек. Проверьте это, запустив gnome-calculator в другом терминале. Он будет использовать ваши обычные настройки.

Поиск правильной локали

Вам не нужно искать ни одного локали, который бы соответствовал вашим потребностям во всем. Вместо этого достаточно найти тот, который соответствует тому, что вы хотите в определенной категории локализации. Здесь нам только нужен формат времени, который можно изменить, манипулируя переменной окружения LC_TIME.

Возможно, вас интересует международный формат времени (ISO 8601) или формат времени для какой-либо страны из которых вы знаете формат времени. Для первого используйте en_DK.UTF-8. Для последнего используйте 2-буквенную аббревиатуру языка строчными буквами, символ подчеркивания, аббревиатуру 2 буквы для графства заглавными буквами, а затем .UTF-8. Например, en_IE.UTF-8 является ирландским английским, de_DE.UTF-8 является немецким немецким, de_CH.UTF-8 является швейцарским немецким, а fr_CH.UTF-8 является швейцарским французским.

Практическая часть

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

Вы, вероятно, запускаете свое приложение через Dash. Если вы это сделаете, вы используете файл рабочего стола. Найдите свой рабочий стол. Это либо в /usr/share/applications, либо в ~/.local/share/applications. Первый является общесистемным, последний является специфичным для пользователя.

Я буду использовать Firefox в качестве примера приложения. Это рабочий файл /usr/share/applications/firefox.desktop.

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

cp /usr/share/applications/firefox.desktop ~/.local/share/applications

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

Откройте его в текстовом редакторе. Неважно, используете ли вы одну командную строку или графическую. Обычный Ubuntu поставляется с GEdit в качестве графического текстового редактора по умолчанию:

gedit ~/.local/share/applications/firefox.desktop

Если это не работает, потому что вы используете аромат Ubuntu, который не поставляется с GEdit, просто используйте nano: [ ! d18] nano ~/.local/share/applications/firefox.desktop

Найдите строку, начинающуюся с Exec=. Для Firefox это Exec=firefox %u. Затем возьмите все, что приходит после Exec=, и получите его в этом формате с нужной вами локалью вместо en_DK.UTF-8:

Exec=env LC_TIME=en_DK.UTF-8 firefox %u

Конечно, вам нужно заменить en_DK.UTF-8 на любой язык, который вы хотите

Сохраните файл.

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

chmod +x ~/.local/share/applications/firefox.desktop

Теперь перезапустите приложение.

Dash обычно обновляет файлы рабочего стола автоматически, но на медленных системах это может занять некоторое время. Или, по крайней мере, это было в некоторой версии. Если он не работает мгновенно, выйдите из системы и снова запустите.

6
ответ дан 18 July 2018 в 07:18

Теоретическая часть

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

Проверьте это, запустив gnome-calculator через

env LC_NUMERIC=de_DE.UTF-8 gnome-calculator

, если в данный момент вы используете десятичную точку и через

env LC_NUMERIC=en_IE.UTF-8 gnome-calculator

, если в настоящее время вы используете запятую как десятичную точку.

] Процесс gnome-calculator будет использовать язык, указанный перед его вызовом.

Обратите внимание, что это не сохраняется, если вы закрываете приложение и открываете его через Dash или просто вызываете gnome-calculator в терминале. Фактически, это зависит от процесса, и вы можете использовать несколько экземпляров gnome-calculator, некоторые из них используют периоды, а некоторые из них используют запятые в качестве их десятичных точек. Проверьте это, запустив gnome-calculator в другом терминале. Он будет использовать ваши обычные настройки.

Поиск правильной локали

Вам не нужно искать ни одного локали, который бы соответствовал вашим потребностям во всем. Вместо этого достаточно найти тот, который соответствует тому, что вы хотите в определенной категории локализации. Здесь нам только нужен формат времени, который можно изменить, манипулируя переменной окружения LC_TIME.

Возможно, вас интересует международный формат времени (ISO 8601) или формат времени для какой-либо страны из которых вы знаете формат времени. Для первого используйте en_DK.UTF-8. Для последнего используйте 2-буквенную аббревиатуру языка строчными буквами, символ подчеркивания, аббревиатуру 2 буквы для графства заглавными буквами, а затем .UTF-8. Например, en_IE.UTF-8 является ирландским английским, de_DE.UTF-8 является немецким немецким, de_CH.UTF-8 является швейцарским немецким, а fr_CH.UTF-8 является швейцарским французским.

Практическая часть

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

Вы, вероятно, запускаете свое приложение через Dash. Если вы это сделаете, вы используете файл рабочего стола. Найдите свой рабочий стол. Это либо в /usr/share/applications, либо в ~/.local/share/applications. Первый является общесистемным, последний является специфичным для пользователя.

Я буду использовать Firefox в качестве примера приложения. Это рабочий файл /usr/share/applications/firefox.desktop.

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

cp /usr/share/applications/firefox.desktop ~/.local/share/applications

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

Откройте его в текстовом редакторе. Неважно, используете ли вы одну командную строку или графическую. Обычный Ubuntu поставляется с GEdit в качестве графического текстового редактора по умолчанию:

gedit ~/.local/share/applications/firefox.desktop

Если это не работает, потому что вы используете аромат Ubuntu, который не поставляется с GEdit, просто используйте nano: [ ! d18] nano ~/.local/share/applications/firefox.desktop

Найдите строку, начинающуюся с Exec=. Для Firefox это Exec=firefox %u. Затем возьмите все, что приходит после Exec=, и получите его в этом формате с нужной вами локалью вместо en_DK.UTF-8:

Exec=env LC_TIME=en_DK.UTF-8 firefox %u

Конечно, вам нужно заменить en_DK.UTF-8 на любой язык, который вы хотите

Сохраните файл.

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

chmod +x ~/.local/share/applications/firefox.desktop

Теперь перезапустите приложение.

Dash обычно обновляет файлы рабочего стола автоматически, но на медленных системах это может занять некоторое время. Или, по крайней мере, это было в некоторой версии. Если он не работает мгновенно, выйдите из системы и снова запустите.

6
ответ дан 24 July 2018 в 18:46

Я предпочитаю сценарий оболочки оболочки для этого. Сначала создайте скрипт с помощью текстового редактора по вашему выбору. Пример скрипта:

$ cat ~/bin/firefox
#!/bin/sh
export LC_TIME=en_DK.UTF-8
exec /usr/bin/firefox $@

Затем сделайте его выполнимым:

chmod +x ~/bin/firefox

Преимущества с помощью этого метода:

Нет локальной копии файла .desktop, который будет отменять возможные изменения в исходном файле .desktop при обновлении пакета. Работает как при запуске приложения из графической среды, так и при запуске с терминала.
1
ответ дан 22 May 2018 в 18:43

Я предпочитаю сценарий оболочки оболочки для этого. Сначала создайте скрипт с помощью текстового редактора по вашему выбору. Пример скрипта:

$ cat ~/bin/firefox #!/bin/sh export LC_TIME=en_DK.UTF-8 exec /usr/bin/firefox $@

Затем сделайте его выполнимым:

chmod +x ~/bin/firefox

Преимущества с помощью этого метода:

Нет локальной копии файла .desktop, который будет отменять возможные изменения в исходном файле .desktop при обновлении пакета. Работает как при запуске приложения из графической среды, так и при запуске с терминала.
1
ответ дан 18 July 2018 в 07:18

Я предпочитаю сценарий оболочки оболочки для этого. Сначала создайте скрипт с помощью текстового редактора по вашему выбору. Пример скрипта:

$ cat ~/bin/firefox #!/bin/sh export LC_TIME=en_DK.UTF-8 exec /usr/bin/firefox $@

Затем сделайте его выполнимым:

chmod +x ~/bin/firefox

Преимущества с помощью этого метода:

Нет локальной копии файла .desktop, который будет отменять возможные изменения в исходном файле .desktop при обновлении пакета. Работает как при запуске приложения из графической среды, так и при запуске с терминала.
1
ответ дан 24 July 2018 в 18:46

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

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