web-dev-qa-db-fra.com

Où sont définis les noms d'interface des éléments du programme de lancement s'ils ne figurent pas dans le fichier .desktop?

Nommer un lanceur

- Dans la plupart des cas ...
L'interface du lanceur, dans la plupart des cas, est définie dans la (première) ligne, en commençant par:

Name=

de son fichier .desktop correspondant:

enter image description here

- Dénomination localisée à partir du fichier .desktop
Pour le nommage localisé , certaines applications (comme Thunderbird) utilisent des listes étendues avec des noms spécifiques à launguage:

enter image description here


- Mais où est le nom localisé défini s'il n'est pas défini dans le fichier .desktop?
Dans certains cas cependant, l’icône est nommée différemment, mais le nom n’est nulle part dans le fichier .desktop:

enter image description here

Où ce nom est-il associé au fichier .desktop?

Le contexte

Il y a quelques années, j'ai écrit le éditeur QLE Quicklist . Cette version utilisait les noms d'interface internationale. Je le réécris maintenant dans Gtk+, mais il me faut trouver un moyen fiable d'afficher les noms des lanceurs localisés.

Remarque

Sans doute, cette question est liée à celui-ci , mais pas exactement une dupe; J'aimerais savoir où sont stockées les informations pour récupérer moi-même le ou les noms localisés.


MODIFIER

Pour preuve, le contenu de gnome-screenshot.desktop, nommé Scermafdruk localisé (traduit: Capture d'écran ). Aucune trace de la chaîne "Scermafdruk" dans le fichier ...

[AU]

[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;
4
Jacob Vlijm

Comme vous l'avez découvert lors des tests, l'entrée responsable d'un tel comportement est la suivante:

X-Ubuntu-Gettext-Domain=gnome-screenshot

De https://wiki.ubuntu.com/UbuntuDevelopment/Internationalisation/Packaging :

ENTREES DE BUREAU

Les traductions de entrées du burea (fichiers .desktop) sont également supprimées et incluses dans les packs de langues.

Contrairement à ce que font les autres distributions (sauf OpenSUSE actuellement), les traductions ne doivent pas figurer dans les fichiers .desktop eux-mêmes (traductions statiques), mais plutôt dans le même fichier .mo de l'application, à partir duquel elles sont ensuite chargées à l'exécution. . Nous le faisons afin de pouvoir les traduire dans Launchpad et de les envoyer dans des packs de langue, de manière à ce qu’ils puissent être édités et mis à jour par les traducteurs d’Ubuntu.

Le chargement à l'exécution se fait par les correctifs to correctif glib et kdelibs , qui reconnaît le X-Ubuntu-Gettext-Domain clé supplémentaire Nous ajoutons à tous les fichiers .desktop Ubuntu et ajoutons la prise en charge de gettext lors de leur chargement. Notez que si le fichier .desktop contient déjà des traductions, ces traductions statiques seront préférées.

L'ajout de la clé X-Ubuntu-Gettext-Domain = est effectué pendant la phase de compilation dans le package, soit automatiquement avec le système de génération de package, soit (de plus en plus rarement) avec des correctifs.

En d'autres termes, cela signifie que la version corrigée de glib et kdelib sous Ubuntu utilise la touche X-Ubuntu-Gettext-Domain pour ajouter la prise en charge de gettext au moment de l'exécution si une traduction n'est pas disponible par d'autres moyens dans le fichier du poste de travail, traduction qui est extraite de la Le fichier .mo de l'application.

Notez également que cela implique que la prise en charge de la touche X-Ubuntu-Gettext-Domain est une implémentation spécifique à Ubuntu et que les fichiers du bureau utilisant X-Ubuntu-Gettext-Domain ne sont portables que sur les distributions utilisant la même version corrigée de glib/kdelib.

1
kos