如何在 Debian 上的命令行软件中更改语言

如何在 Debian 上的命令行软件中更改语言

我在服务器(Debian GNU/Linux 6.0.6(squeeze))上使用“exif”,与我的开发计算机(通过 MacPort 的 Mac OS X)不同,它以法语运行:

exif -h
Utilisation: exif [OPTION...] fichier
  -v, --version                      Display software version
  -i, --ids                          Montre les ID plutôt que les noms des marqueurs
  -t, --tag=marqueur                 Sélection du marqueur
      --ifd=IFD                      Sélection de l'IFD
  -l, --list-tags                    Liste tous les marqueurs EXIF
  -|, --show-mnote                   Show contents of tag MakerNote
      --remove                       Supprime le marqueur ou l'ifd
  -s, --show-description             Montre la description du marqueur
  -e, --extract-thumbnail            Extrait la vignette
  -r, --remove-thumbnail             Supprime la vignette
  -n, --insert-thumbnail=FICHIER     Insère le FICHIER comme vignette
      --no-fixup                     Do not fix existing tags in files
  -o, --output=FICHIER               Write data to FILE
      --set-value=STRING             Value of tag
  -c, --create-exif                  Create EXIF data if not existing
  -m, --machine-readable             Output in a machine-readable (tab delimited) format
  -w, --width=WIDTH                  Width of output
  -x, --xml-output                   Output in a XML format
  -d, --debug                        Show debugging messages

我检查了我的 /etc/default/locale,它是

LANG=fr_FR
LANGUAGE=fr_FR:fr

我改变了

LANG=en_EN
LANGUAGE=en_EN:en

没有任何后果。有没有关于如何强制这台机器用英文执行这个软件的提示?因为我需要英文的 exif-data 标签 :)

谢谢 !

答案1

/etc/default/locale文件设置了呃……“全局”默认值。这意味着,任何“顶级”shell 在启动时都会读取这些默认值,然后遗传通过其运行的进程。

长话短说,这意味着这些默认值适用于:

  • 所有守护进程(在后台运行的程序)都是使用位于的 shell 脚本启动的/etc/init.d
  • 您在登录会话中运行的交互式 shell。

因此,仅仅更改该文件就需要重新启动。

但是,由于该文件的内容只是一个 shell 脚本,它设置了一堆所谓的“环境变量”,为了影响一个特定的程序,您只需让该程序看到这些变量的不同内容。

实现这一点的最简单的方法就是将它们的分配放在程序运行之前,也就是说,在 shell 提示符下你可以执行以下操作:

$ LANG=en exif -h

并看到exif用英语与您交谈($此处的字符表示 shell 提示符 - 请不要输入它)。

第二种方法是让当前 shell 中的所有程序都看到变量的新内容;这是通过“导出”它们来完成的,正如@clarkw 所示:导出的变量及其内容由从 shell 运行的所有进程的环境继承,因此以下方法也有效:

$ export LANG=en
$ exif -h

或者

$ LANG=en
$ export LANG
$ exif -h

这些环境变量在locale(1)手册页

/etc/default/locale最后一条建议:不要手动更改内容— 使用 Debian 的方式来管理它:运行

# dpkg-reconfigure locales

它将首先询问您要编译和安装哪些语言环境(您可以跳过此步骤),然后选择哪一个作为默认语言环境。

更新:这是Debian wiki 上专门介绍语言环境的页面它几乎解释了需要的一切,包括环境变量。

相关内容