Hello, +1 from me as well, and thanks for processing the initial data and providing us with the list of affected packages. I will ask SUSE Packagers to start proactively working on their packages soon. Thanks for driving this initiative. Kristyna Dne 15. 07. 24 v 20:04 Stanislav Brabec napsal(a):
In 2003, the upstream desktop files translation had a bad quality, as well as desktop tree menu. To prevent ugly and half translated desktop menu, SuSE Linux (actually Novell Linux Desktop 9) introduced the %suse_update_desktop_file macro. It was even mandatory many years ago, and even now it is still recommended in the documentation.[1]
This macro does: - Provides SUSE specific desktop translations that don't sync with the upstream. - Provides SUSE specific modification of desktop Categories that don't sync with the upstream. - Provides SUSE specific modifications of Name, GenericName or Comment that don't sync with the upstream.
Nowadays, upstream translations got another 20 years of development. Also Desktop Categories specification[2] was updated, and the upstream specification now covers all aspects of former X-SuSE -* Categories extensions.
Additionally, the whole concept of %suse_update_desktop_file completely contradicts our policy "Upstream first"[3].
Keeping things as they are, even introduces regressions of the menu and its translation, as nobody updates these texts that diverged from the upstream 20 years ago.
That is why I think that %suse_update_desktop_file is now completely obsolete, and it just adds a huge amount of the downstream translation work. We should either upstream it or drop it.
If it still brings improvement to the upstream desktop file, it should be sent to the upstream. If it provides a regression, it should be dropped. If it adds obsolete X-SuSE-* desktop Categories instead of modern specification compliant ones, it should be dropped.
Current status: %suse_update_desktop_files is used in Factory for 1052 desktop files in 859 packages. It means 3156 strings translation and 1052 desktop files that need to be checked. All of them introduce translatability in the Weblate project [4], some of them modify Categories, GenericName, Comment or even Name (i. e. the application has different names in openSUSE and the upstream (for example: "GNU Image Manipulation Program" is "GIMP" in openSUSE Leap).
In summary, it generates a huge amount of translators' work. 1,377,072 words to be translated in sum for supported languages! And most of them just duplicate the upstream translation effort.
My plan: 1) Modify %suse_update_desktop_file: a) Whenever %suse_update_desktop_file performs a real change, the user will be warned and asked to review it and send it to the upstream. b) Whenever %suse_update_desktop_file adds obsolete Categories, the user should be warned. c) Whenever %suse_update_desktop_file modifies existing upstream data (Name, GenericName, Comment, existing translations), the user should be warned. 2) Indicate packages, where %suse_update_desktop_file is the only way to translate the desktop. It could be valid for some YaST packages and maybe more. Change them to use the standard way to translate packages in the upstream, e. g. translations as part of the code in the Git repository. Or, if the desktop file is introduced in the spec file (e. g. firefox), create a substitute for update-desktop-files. 3) Turn everything above into an error. 4) Remove %suse_update_desktop_file completely. 5) Drop update-desktop-files package[5] and desktop-file-translations in Weblate[4]
References: [1] https://en.opensuse.org/openSUSE:Packaging_Conventions_RPM_Macros#%suse_upda... [2] https://specifications.freedesktop.org/menu-spec/latest/apa.html [3] https://en.opensuse.org/openSUSE:Packaging_Patches_guidelines#When_to_send_t... [4] https://l10n.opensuse.org/projects/desktop-file-translations/ [5] https://build.opensuse.org/package/show/openSUSE:Factory/update-desktop-file...