2 votes

Définir le LANG pour SublimeText depuis Unity

J'essaie d'exécuter SublimeText avec l'addon de contrôle des paquets et à chaque fois que je l'ouvre en utilisant le lanceur Unity, je reçois cette erreur.

enter image description here

Jusqu'à présent, j'ai essayé de suivre les instructions fournies par Aide de la communauté Ubuntu Le problème n'a pas été résolu par le fait de le régler à tous les endroits mentionnés et de redémarrer l'ordinateur.

J'ai également suivi les étapes trouvées sur le contrôle des paquets github en vain.

Cela fonctionne lorsque je lance SublimeText à partir de la ligne de commande, donc je suppose que c'est un problème spécifique à Unity, est-ce que quelqu'un sait comment définir correctement le LANG lors du lancement de SublimeText à partir de Unity ?

Edit : Ajout des détails de l'installation, J'ai installé en utilisant le .deb 64-bit SublimeText3 trouvé ici, http://c758482.r82.cf2.rackcdn.com/sublime-text_build-3059_amd64.deb

Le contrôle des paquets a été installé à l'aide de la méthode simple décrite ici, https://sublime.wbond.net/installation

1voto

Sylvain Pineau Points 59212

J'ai installé sublimetext en utilisant la méthode ppa et Package control avec la "méthode simple" décrite aquí Il fonctionne avec Ubuntu 13.10 (Unity).

Pour reproduire votre problème, j'ai essayé de forcer LANG-C à démarrer sublimetext en modifiant le fichier .desktop. Je pense que vous pouvez essayer le même tweak pour le démarrer en forçant cette fois-ci LANG=en_US.UTF-8 :

sudo gedit /usr/share/applications/sublime-text.desktop

Et copiez les lignes suivantes dans le fichier :

[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=bash -c "LANG=en_US.UTF-8 /opt/sublime_text/sublime_text %F"
Terminal=false
MimeType=text/plain;
Icon=sublime-text
Categories=TextEditor;Development;Utility;
StartupNotify=true
Actions=Window;Document;

X-Desktop-File-Install-Version=0.21

[Desktop Action Window]
Name=New Window
Exec=bash -c "LANG=en_US.UTF-8 /opt/sublime_text/sublime_text -n"
OnlyShowIn=Unity;

[Desktop Action Document]
Name=New File
Exec=bash -c "LANG=en_US.UTF-8 /opt/sublime_text/sublime_text --command new_file"
OnlyShowIn=Unity;

0voto

CNSKnight Points 101

Je viens d'avoir ce problème sous Ubuntu 14.04 LTS. Mon LANG est défini au niveau du système, mais le gestionnaire de paquets sublimetext 3 ne le prend pas en compte.

J'ai juste fait la solution de contournement et mis LANG=en_US.UTF-8 avant le chemin d'accès à l'application dans son lanceur d'icônes.

0voto

smajtkst Points 121

J'ai eu exactement le même problème avec sublimeT3. D'abord sur un terminal j'ai lancé la commande suivante :

$echo $LOCAL

Et la sortie était une ligne vide.

Ensuite, j'ai couru :

$locale

Et voici le résultat :

LANG=
LANGUAGE=en_US
LC_CTYPE=POSIX
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=POSIX
LC_MONETARY=POSIX
LC_MESSAGES=POSIX
LC_PAPER=POSIX
LC_NAME=POSIX
LC_ADDRESS=POSIX
LC_TELEPHONE=POSIX
LC_MEASUREMENT=POSIX
LC_IDENTIFICATION=POSIX
LC_ALL=POSIX

J'ai essayé de réinitialiser les paramètres locaux à l'aide de certaines des réponses données aquí mais tout a échoué, à chaque fois la commande "locale" donnait le même résultat. Même mon /etc/default/locale semble être la bonne :

$cat /etc/default/locale

Sortie :

LANG=en_US.UTF-8
LC_NUMERIC="es_CO.UTF-8"
LC_TIME="es_CO.UTF-8"
LC_MONETARY="es_CO.UTF-8"
LC_PAPER="es_CO.UTF-8"
LC_NAME="es_CO.UTF-8"
LC_ADDRESS="es_CO.UTF-8"
LC_TELEPHONE="es_CO.UTF-8"
LC_MEASUREMENT="es_CO.UTF-8"
LC_IDENTIFICATION="es_CO.UTF-8"

C'est pourquoi je me suis demandé si quelque chose n'était pas en train d'écraser les variables d'environnement. Mon .pam_environment semblait correct :

$cat .pam_environment

Sortie :

LANGUAGE=en_US:en
LANG=en_US.UTF-8
LC_NUMERIC=es_CO.UTF-8
LC_TIME=es_CO.UTF-8
LC_MONETARY=es_CO.UTF-8
LC_PAPER=es_CO.UTF-8
LC_NAME=es_CO.UTF-8
LC_ADDRESS=es_CO.UTF-8
LC_TELEPHONE=es_CO.UTF-8
LC_MEASUREMENT=es_CO.UTF-8
LC_IDENTIFICATION=es_CO.UTF-8
PAPERSIZE=letter

J'ai donc exécuté la commande suivante qui m'a donné un indice sur ce qui se passait :

$cat .bashrc | grep LANG

Voici le résultat :

unset LANG

Je ne sais pas quand ni comment, mais je me suis retrouvé avec deux lignes dans mon .bashrc qui remplaçaient la valeur des variables "locale". Je ne vais pas coller tout le fichier bash, mais les deux lignes clés étaient les suivantes :

unset LANG
export LC_ALL=POSIX

En les commentant dans le fichier bash et en redémarrant, voilà ! ma locale a été configurée comme prévu, et sublimeT3 a cessé de se plaindre. Cela fait plus d'un an que cela a été formulé, mais peut-être que cela pourrait aider quelqu'un d'autre !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X