启动器的命名
- 在大多数情况下...
启动器
的接口名称,在大多数情况下,在(第一)行中定义,以:
Name=
其对应.desktop
文件:
- 来自 .desktop 文件
的本地化命名
对于本地化命名,一些应用程序(如 Thunderbird)使用带有特定语言名称的扩展列表:
- 但是,如果本地化名称没有在 .desktop 文件中定义,那么它在哪里定义?
然而,在某些情况下,图标的名称不同,但文件中没有该名称.desktop
:
该名称与.desktop
文件的关联在哪里?
语境
几年前,我编写了QLE Quicklist 编辑器。该版本使用国际接口名称。我现在正在重写它Gtk+
,但需要找到一种可靠的方法来显示本地化的启动器名称。
笔记
毫无疑问,这个问题与这个有关,但不完全是一个骗局;我想知道信息存储在哪里以自己获取本地化名称。
编辑
作为证明,gnome-screenshot.desktop
名为Scermafdruk的内容已本地化(翻译:截图)。文件中没有字符串“Scermafdruk”的痕迹......
[澳大利亚]
[Desktop Entry]
Name=Screenshot
Comment=Save images of your screen or individual windows
Keywords=snapshot;capture;print;
Exec=gnome-screenshot --interactive
Terminal=false
Type=Application
Icon=applets-screenshooter
StartupNotify=true
Categories=GTK;GNOME;Utility;
NotShowIn=KDE;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-utils
X-GNOME-Bugzilla-Component=screenshot
Actions=Screen;Window;Area
X-Ubuntu-Gettext-Domain=gnome-screenshot
[Desktop Action Screen]
Name=Take a Screenshot of the Whole Screen
Exec=gnome-screenshot
OnlyShowIn=Unity;
[Desktop Action Window]
Name=Take a Screenshot of the Current Window
Exec=gnome-screenshot -w
OnlyShowIn=Unity;
[Desktop Action Area]
Name=Take a Screenshot of a Selected Area
Exec=gnome-screenshot -a
OnlyShowIn=Unity;
正如您在测试时发现的那样,负责这种行为的条目是:
来自https://wiki.ubuntu.com/UbuntuDevelopment/Internationalisation/Packaging:
换句话说,这意味着如果在桌面文件中无法通过其他方式获得翻译,则Ubuntu 的修补版本
glib
和kdelib
Ubuntu 上的版本使用密钥在运行时添加 gettext 支持,从应用程序的 .mo 文件中检索到的翻译。X-Ubuntu-Gettext-Domain
另请注意,这意味着对
X-Ubuntu-Gettext-Domain
密钥的支持是特定于 Ubuntu 的实现,并且使用 的桌面文件X-Ubuntu-Gettext-Domain
只能在使用相同补丁版本glib
/的发行版之间移植kdelib
。