更改特定应用程序的时间格式

UTF*_*F-8 5 time locale

我想对某些应用程序使用特定的语言环境,但不想对系统的其余部分使用特定的语言环境。我该怎么做呢?

UTF*_*F-8 7

理论部分

在通过更改环境创建特定进程之前,您可以更改区域设置或仅更改它的一部分。

通过启动gnome-calculator来检查它

env LC_NUMERIC=de_DE.UTF-8 gnome-calculator
Run Code Online (Sandbox Code Playgroud)

如果您当前使用句点作为小数点并通过

env LC_NUMERIC=en_IE.UTF-8 gnome-calculator
Run Code Online (Sandbox Code Playgroud)

如果您当前使用逗号作为小数点。

gnome-calculator过程将使用在调用之前声明的语言环境。

请注意,如果您关闭应用程序并通过 Dash 打开它或只是gnome-calculator在终端中调用,这不会持续存在。事实上,它是特定于流程的,您可以使用 的多个实例gnome-calculator,其中一些使用句点,一些使用逗号作为小数点。通过gnome-calculator在不同的终端中运行来检查它。它将使用您的正常设置。

寻找正确的语言环境

您不需要找到满足您所有需求的单一语言环境。相反,在特定的本地化类别中找到与您想要的内容相匹配的内容就足够了。在这里,我们只关心可以通过操作环境变量来改变的时间格式LC_TIME

您可能对国际时间格式 ( ISO 8601 ) 或您知道时间格式的某个国家/地区的时间格式感兴趣。对于前者,请使用en_DK.UTF-8. 对于后者,请使用小写字母的语言的 2 个字母缩写、下划线、大写的县的 2 个字母缩写,然后使用.UTF-8. 例如,en_IE.UTF-8是爱尔兰英语,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
Run Code Online (Sandbox Code Playgroud)

您现在可以操作副本,以便您的更改仅影响用户本地版本。

在文本编辑器中打开它。无论您使用命令行还是图形方式都没有关系。普通 Ubuntu 带有 GEdit 作为其默认的图形文本编辑器:

gedit ~/.local/share/applications/firefox.desktop
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,因为您使用了 GEdit 没有的 Ubuntu 风格,只需使用nano

nano ~/.local/share/applications/firefox.desktop
Run Code Online (Sandbox Code Playgroud)

找到以 开头的行Exec=。对于 Firefox,它是Exec=firefox %u. 然后使用后面的任何内容,Exec=并使用您想要的语言环境将其转换为这种格式,而不是en_DK.UTF-8

Exec=env LC_TIME=en_DK.UTF-8 firefox %u
Run Code Online (Sandbox Code Playgroud)

当然,您需要替换en_DK.UTF-8为您想要使用的任何语言环境。

保存文件。

进行更改后,您需要使桌面文件可执行。您复制的文件是可执行的,但该属性未被复制,因此您需要为新文件再次设置它。这样做,运行以下命令:

chmod +x ~/.local/share/applications/firefox.desktop
Run Code Online (Sandbox Code Playgroud)

现在,重新启动您的应用程序。

Dash 通常会自动更新桌面文件,但在速度较慢的系统上,可能需要一段时间。或者至少在某些版本中确实如此。如果它不能立即工作,请注销并重新登录。