UTF-8 Asked: 2017-09-07 16:04:24 +0800 CST2017-09-07 16:04:24 +0800 CST 2017-09-07 16:04:24 +0800 CST 更改特定应用程序的时间格式 772 我想为某些应用程序使用特定的语言环境,但不为我的系统的其余部分使用。我该怎么做呢? time 2 个回答 Voted Best Answer UTF-8 2017-09-07T16:04:24+08:002017-09-07T16:04:24+08:00 理论部分 在通过更改环境来创建特定进程之前,您可以更改区域设置或仅更改其中的一部分。 gnome-calculator通过启动来检查它 env LC_NUMERIC=de_DE.UTF-8 gnome-calculator 如果您当前使用句点作为小数点并通过 env LC_NUMERIC=en_IE.UTF-8 gnome-calculator 如果您当前使用逗号作为小数点。 该gnome-calculator进程将使用调用前声明的语言环境。 gnome-calculator请注意,如果您关闭应用程序并通过 Dash 打开它或只是在终端中调用,这不会持续存在。实际上,它是特定于进程的,您可以使用 的多个实例gnome-calculator,其中一些使用句点,一些使用逗号作为小数点。gnome-calculator通过在不同的终端中运行来检查它。它将使用您的正常设置。 寻找正确的语言环境 您无需找到与您的所有需求相匹配的单一语言环境。相反,在特定本地化类别中找到与您想要的内容相匹配的内容就足够了。在这里,我们只关心可以通过操作环境变量来改变的时间格式LC_TIME。 您可能对国际时间格式 ( ISO 8601 ) 或您知道时间格式的某个国家/地区的时间格式感兴趣。对于前者,使用en_DK.UTF-8. 对于后者,使用小写字母的语言的 2 个字母缩写、下划线、大写字母的县的 2 个字母缩写,然后.UTF-8. 例如,en_IE.UTF-8is 爱尔兰英语、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 如果由于您使用 GEdit 未附带的 Ubuntu 风格而无法正常工作,请使用nano: 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 通常会自动更新桌面文件,但在速度较慢的系统上,可能需要一段时间。或者至少在某些版本中确实如此。如果它不能立即工作,请注销并重新登录。 Gunnar Hjalmarsson 2017-09-09T14:25:37+08:002017-09-09T14:25:37+08:00 我更喜欢使用包装器外壳脚本来执行此操作。首先使用您选择的文本编辑器创建脚本。示例脚本: $ cat ~/bin/firefox #!/bin/sh export LC_TIME=en_DK.UTF-8 exec /usr/bin/firefox $@ 然后使其可执行: chmod +x ~/bin/firefox 这种方法的优点: 更新软件包时,没有文件的本地副本.desktop会覆盖对原始文件的可能更改。.desktop 从图形环境启动应用程序和从终端启动应用程序都有效。
理论部分
在通过更改环境来创建特定进程之前,您可以更改区域设置或仅更改其中的一部分。
gnome-calculator
通过启动来检查它如果您当前使用句点作为小数点并通过
如果您当前使用逗号作为小数点。
该
gnome-calculator
进程将使用调用前声明的语言环境。gnome-calculator
请注意,如果您关闭应用程序并通过 Dash 打开它或只是在终端中调用,这不会持续存在。实际上,它是特定于进程的,您可以使用 的多个实例gnome-calculator
,其中一些使用句点,一些使用逗号作为小数点。gnome-calculator
通过在不同的终端中运行来检查它。它将使用您的正常设置。寻找正确的语言环境
您无需找到与您的所有需求相匹配的单一语言环境。相反,在特定本地化类别中找到与您想要的内容相匹配的内容就足够了。在这里,我们只关心可以通过操作环境变量来改变的时间格式
LC_TIME
。您可能对国际时间格式 ( ISO 8601 ) 或您知道时间格式的某个国家/地区的时间格式感兴趣。对于前者,使用
en_DK.UTF-8
. 对于后者,使用小写字母的语言的 2 个字母缩写、下划线、大写字母的县的 2 个字母缩写,然后.UTF-8
. 例如,en_IE.UTF-8
is 爱尔兰英语、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
.找到要操作的桌面文件后,将其复制到用户的桌面文件夹:
您现在可以操作副本,以便您的更改仅影响用户本地版本。
在文本编辑器中打开它。无论您使用的是命令行还是图形,都没有关系。普通 Ubuntu 带有 GEdit 作为其默认的图形文本编辑器:
如果由于您使用 GEdit 未附带的 Ubuntu 风格而无法正常工作,请使用
nano
:找到以 开头的行
Exec=
。对于 Firefox,它是Exec=firefox %u
. 然后使用Exec=
您想要的语言环境将其转换为这种格式,而不是en_DK.UTF-8
:当然,您需要用
en_DK.UTF-8
您想要使用的任何语言环境进行替换。保存文件。
进行更改后,您需要使桌面文件可执行。您复制的文件是可执行的,但该属性未复制,因此您需要为新文件再次设置它。这样做,运行以下命令:
现在,重新启动您的应用程序。
Dash 通常会自动更新桌面文件,但在速度较慢的系统上,可能需要一段时间。或者至少在某些版本中确实如此。如果它不能立即工作,请注销并重新登录。
我更喜欢使用包装器外壳脚本来执行此操作。首先使用您选择的文本编辑器创建脚本。示例脚本:
然后使其可执行:
这种方法的优点:
.desktop
会覆盖对原始文件的可能更改。.desktop