Вопрос или проблема
Я бы хотел запустить программу для генеалогии Gramps на языке (английском), отличном от моего локального (испанского). Мне удалось успешно запустить Gramps
в терминале через
LANG=en_GB gramps
Теперь я хотел бы добавить эту команду в файл .desktop в /usr/share/applications/
, чтобы иметь возможность запускать Gramps
на английском языке, но не могу заставить его работать так
EXEC=LANG=en_GB gramps
Что я могу сделать?
Редактировать:
Для заинтересованных: совет от Джейкоба ниже помог мне запустить Gramps на английском языке через файл .desktop. Кроме того, я использовал следующие команды, чтобы gramps
в терминале запускался на английском:
echo 'LANGUAGE=en_GB PATH=/usr/bin/gramps:$PATH' >> ~/.bash_profile
source ~/.bash_profile
echo 'alias gramps="LANGUAGE=en_GB /usr/bin/gramps"' >> ~/.bashrc
source ~/.bashrc
Выйдите из системы и войдите снова!
Я установил Gramp и попробовал его здесь, и это действительно должно работать:
Exec=/bin/bash -c "LANGUAGE=en_GB gramps"
LANGUAGE=
имеет приоритет над LANG=
Примечание
Убедитесь, что запускаете приложение из локального файла .desktop
: после редактирования локального файла убедитесь, что вы вышли из системы и вошли снова перед тем, как запустить его еще раз.
Более общий способ, по сравнению с правкой файла .desktop, ~/.bashrc и т. д., это создать файл ~/bin/gramps и задать ему следующее содержание:
#!/bin/sh
export LANGUAGE=en_GB
exec /usr/bin/gramps $@
Также выполните chmod +x ~/bin/gramps
. В следующий раз при входе в систему английский язык будет языком отображения независимо от того, как вы запускаете gramps.
Мое решение:
[Desktop Entry]
Encoding=UTF-8
Name=PhotoFiltre Studio X
Comment=PlayOnLinux
Type=Application
**Exec=env LC_ALL="pl_PL.UTF8" /usr/share/playonlinux/playonlinux --run "PhotoFiltre Studio X" %F**
Icon=/home/gajowy/.PlayOnLinux//icones/full_size/PhotoFiltre Studio X
Name[fr_FR]=PhotoFiltre Studio X
StartupWMClass=pfstudiox.exe
Categories=Graphics;RasterGraphics;
Jeg har læst disse svar – skal jeg virkelig være nørd for at instelere Gramps? Er det den eneste måde at instelere programmer i Ubuntu at gøre det i terminalen?! Jeg prøvede også at instelere Apache, som ikke lykkedes, bør man/jeg donere for at få programmet! Jeg synes det er svært med den kodning
Ответ или решение
Конечно, я помогу вам разобраться с проблемой изменения системного языка для приложения Gramps через файл .desktop. Для начала давайте рассмотрим теоретическую часть.
Теория
Файлы .desktop — это специальные файлы, используемые в среде рабочего стола Linux, для описания приложений и их параметров запуска. Они хранятся в директориях вроде /usr/share/applications/
и содержат информацию о приложении, такую как его имя, комментарии, иконку, а также команду, которую нужно выполнить для его запуска, определяемую параметром Exec
.
Когда вы хотите изменить язык запускаемого приложения, вы можете использовать окружение системы для временной модификации переменных, таких как LANG
или LANGUAGE
, которые определяют, на каком языке будет отображаться интерфейс.
Пример применения
В вашем случае для запуска Gramps с языком, отличным от системного, вы можете изменить файл .desktop
, добавив к команде запуска предварительную установку нужных переменных окружения. Проблема решается с помощью корректного использования команд Unix и оболочки Bash.
Рассмотрим пример, как правильно структурировать строку Exec
в файле .desktop:
Exec=/bin/bash -c "LANGUAGE=en_GB gramps"
Основное внимание следует уделить использованию оболочки (/bin/bash -c
), которая позволяет выполнять команду в контексте заданного командного интерпретатора. Это позволяет корректно установить переменные окружения, прежде чем запустить приложение.
Применение
-
Создайте или измените Local .desktop файл: Чтобы изменение не затрагивало всю систему, скопируйте оригинальный файл в директорию
~/.local/share/applications/
и работайте с ним. -
Редактирование файла: Откройте файл с помощью текстового редактора и измените строку
Exec
, добавив команду с оболочкой:Exec=/bin/bash -c "LANG=en_GB LANGUAGE=en_GB gramps"
-
Проверка переменных окружения: Переменные
LANG
иLANGUAGE
помогут вам настроить язык. Учтите, чтоLANGUAGE
имеет приоритет надLANG
. -
Перезагрузка графического сеанса: Иногда, чтобы файл конфигурации обновился, нужно завершить текущий сеанс рабочего стола и войти заново.
Безопасный запуск из командной строки
Для того, чтобы всегда запускать Gramps на английском языке с терминала, вы можете использовать механизм alias и или создать отдельный скрипт:
-
Создайте скрипт:
Создайте файл~/bin/gramps
со следующим содержимым:#!/bin/sh export LANGUAGE=en_GB exec /usr/bin/gramps "$@"
Сделайте скрипт исполняемым:
chmod +x ~/bin/gramps
. -
Использование alias:
Добавьте следующую строку в ваш
~/.bashrc
или~/.bash_profile
:alias gramps='LANGUAGE=en_GB /usr/bin/gramps'
После этого приложение Gramps будет всегда запускаться с английским интерфейсом независимо от текущих системных настроек языка.
Заключение
Внедрение изменений через окружение системного языка позволяет гибко настраивать работу приложений под конкретные нужды пользователя, не изменяя глобальные параметры системы. Такие тонкие настройки делают использование Linux более разнообразным и удобным. В случае, если вы столкнетесь с проблемами при настройке, убедитесь, что все переменные и пути указаны правильно, и не забудьте перезапустить сеанс рабочего стола для применения изменений. Надеюсь, это руководство было для вас полезным и помогло решить проблему.