我在服务器(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 上专门介绍语言环境的页面它几乎解释了需要的一切,包括环境变量。