Page MenuHome GnuPG

Kleopatra: missing German translations in kf5
Closed, ResolvedPublic

Description

Found the following missing translations:

  1. "Valid until (between %1 and %2):" (Schlüsselgenerierung, Erweiterte Einstellungen)
  2. Unter Extras -> Zwischenablage: 4 von 5 Unterpunkten nicht übersetzt
  3. Lookup on server (nur im Fenstertitel unübersetzt)
  4. "Publish on keyserver afterwards" (im Fenster Beglaubigung)
  5. "Enter a message to encrypt or decrypt…" Notepad-Placeholdertext
  6. "GnuPG VS-Desktop Audit Log Viewer" (nur Fenstertitel unübersetzt)

Details

Version
Gpg4win-Beta-75

Event Timeline

ebo triaged this task as Normal priority.Tue, Nov 12, 3:02 PM
ebo created this task.
  1. Unter Extras -> Zwischenablage: 4 von 5 Unterpunkten nicht übersetzt
  2. Lookup on server (nur im Fenstertitel unübersetzt)
  3. "Publish on keyserver afterwards" (im Fenster Beglaubigung)
  4. "Enter a message to encrypt or decrypt…" Notepad-Placeholdertext

All of those messages are in kleopatra.po in our gpg4win/24.05. In master 4 is gone or was changed, and 2, 3, and 5 got a context. In any case, the translations should be there. Looks like a bug in the packaging of the translations. (BTW, the title "Lookup on Server" is translated as "Auf Server suchen ...", i.e. identical to the menu entry.)

  1. "Valid until (between %1 and %2):" (Schlüsselgenerierung, Erweiterte Einstellungen)

Here the problem is that the code containing this text was moved from kleopatra to libkleo, i.e. the translation is now in libkleopatra.po in master. Maybe the libkleopatra.po from master could be merged into the final kleopatra.po.

  1. "GnuPG VS-Desktop Audit Log Viewer" (nur Fenstertitel unübersetzt)

Do you mean "GnuPG Audit Log Viewer"? If yes, then the same as for 2-5 applies except that the message is in libkleopatra.po in our gpg4win/24.05 branch.

The problem seems to be that the msgcat commands in gen-tarball.sh (gpg4win repo) are used with --use-first and that seems to ignore msgctxt when looking for duplicate msgids.

With --use-first we get

$ msgcat --use-first po/de/kleopatra_new.po kleopatra-24.05-de-full-translation.po > po/de/kleopatra_final_usefirst.po
$ msgfmt --statistics po/de/kleopatra_final_usefirst.po
1939 translated messages, 38 fuzzy translations, 1 untranslated message.

Without it we get

$ msgcat po/de/kleopatra_new.po kleopatra-24.05-de-full-translation.po > po/de/kleopatra_final.po
$ msgfmt --statistics po/de/kleopatra_final.po
2130 translated messages, 42 fuzzy translations, 1 untranslated message.

i.e. much more messages (likely messages without msgctxt which have a msgctxt in the master branch), but also 4 more fuzzy translations (which result in 4 more untranslated messages). Those fuzzies could be fixed and then I think all would be good. (I haven't check libkleopatra.po).

The additional fuzzies

msgctxt "NAME OF TRANSLATORS"
msgid "Your names"

and

msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"

could be fixed by removing the conflicting/outdated translations in our "local l10n" file kleopatra-24.05-de-full-translation.po.

And then there are the following additional two fuzzies

#. #-#-#-#-#  kleopatra_new.po (kleopatra)  #-#-#-#-#
#. +> trunk6 stable6
#: src/commands/addadskcommand.cpp:106
#, fuzzy, kde-format
msgctxt "@info"
msgid ""
"<p>An error occurred while trying to add an ADSK to <b>%1</b>:</p><p>%2</p>"
msgstr ""
"#-#-#-#-#  kleopatra_new.po (kleopatra)  #-#-#-#-#\n"
"<p>Beim Versuch, zu <b>%1</b> einen ADSK hinzuzufügen, ist ein Fehler "
"aufgetreten:</p><p>%2</p>\n"
"#-#-#-#-#  kleopatra-24.05-de-full-translation.po (kleopatra)  #-#-#-#-#\n"
"<p>Beim Versuch, zu <b>%1</b>einen ADSK hinzuzufügen, ist ein Fehler "
"aufgetreten:</p><p>%2</p>"

#. #-#-#-#-#  kleopatra_new.po (kleopatra)  #-#-#-#-#
#. +> trunk6 stable6
#: src/commands/addsubkeycommand.cpp:167 src/commands/addsubkeycommand.cpp:168
#, fuzzy, kde-format
msgid ""
"<p>An error occurred while trying to add a new subkey to <b>%1</b>:</"
"p><p>%2</p>"
msgstr ""
"#-#-#-#-#  kleopatra_new.po (kleopatra)  #-#-#-#-#\n"
"<p>Beim Versuch, zu <b>%1</b> einen neuen Unterschlüssel hinzuzufügen, ist "
"ein Fehler aufgetreten:</p><p>%2</p>\n"
"#-#-#-#-#  kleopatra-24.05-de-full-translation.po (kleopatra)  #-#-#-#-#\n"
"<p>Beim Versuch, zu <b>%1</b>einen neuen Unterschlüssel hinzuzufügen, ist "
"ein Fehler aufgetreten:</p><p>%2</p>"

Unless I'm missing something the newer translations in master have a trailing "\n" which makes no sense. The original texts don't have a trailing "\n". This should be fixed in the translations in summit.

I have removed the --use-first from the msgcat command that merges the combined messages from KDE's svn and the po file in our repo with the local l10n files for libkleo and kleopatra in gpg4win/packages.

@ebo You should fix the two fuzzies mentioned in the previous comment by removing the trailing "\n"s. Moreover, there seem to be 38 fuzzy messages and 1 untranslated message in kleopatra, but those might be messages that are not used in our branch. libkleo looks good (no fuzzy, no untranslated).

FWIW, Andre had to introduce --use-first to fix another problem.

Andre's comment was "Use use first to avoid double translations that confuse it.".

The problem with using msgcat without --use-first is that messages with different translations are merged and marked as fuzzy which essentially makes them untranslated (because fuzzy messages are omitted when compiling the po files). I guess that's what Andre meant with "confuse it".

The problem with using msgcat with --use-first is that msgcat then omits a message without msgctxt if there is another message with identical msgid but with msgctxt. In case of Kleopatra message contexts have been added to a lot of messages in master (mostly not by us). This made those messages (and their translations) incompatible with the context-less messages in our gpg4win/24.05 branch. The translations of the context-less messages are preserved in the po files in our branch and in the kleopatra-24.05-de-full-translation.po in the gpg4win repo, but they are thrown away if --use-first is used.

I didn't see an option to convince msgcat to treat messages with same msgid but different msgctxt as different messages so that they are both preserved when --use-first is used. As far as I can see our best option is to use msgcat without --use-first and to make sure that we don't have any fuzzy messages in the merged po files (or at least not more fuzzy messages than in the po file retrieved from KDE's svn). gen-tarball.sh prints the statistics of the merged po file, e.g.

Using summit for de
Adding translations to de with:
1916 translated messages, 39 fuzzy translations, 1 untranslated message.
[...]
Adding local l10n file kleopatra-24.05-de-full-translation.po which contains:
1907 translated messages.
Final translation statistics for de: 
2132 translated messages, 40 fuzzy translations, 1 untranslated message.

For comparison the result of using msgcat with --use-first is

1939 translated messages, 38 fuzzy translations, 1 untranslated message.

i.e. almost 200 translated messages are missing. While some of those missing message may have become obsolete many other messages have really gone missing as the small sample found by Eva shows.

I see. Thanks for explaining. we can of course contact the gettext author (whom I happen to know).

Forget the explanation. msgcat --use-first works correctly. We didn't use it correctly for our purposes. msgcat --use-first took the first translation of the context-less messages. This happened to be marked-as-obsolete messages in the main po file (because KDE keeps obsolete messages for easier recovery). And since they were marked as obsolete they were dropped when the po file were compiled. The script now removes obsolete messages before merging in additional po files. This way non-obsolete messages in the additional po files don't get shadowed anymore by obsolete messages in the main po files.

ikloecker changed the task status from Open to Testing.Wed, Nov 13, 4:36 PM
ikloecker moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

All missing translations mentioned in the original description should now be there (once a new kleopatra snapshot is created).

I added this to gpg4win master. I assume that this branch will be used for VSD 3.3 and Gpg4win 4.4.

ebo claimed this task.
ebo moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

Fixed in Gpg4win-Beta-94