Skip to content

manpages: AI-assisted translation gap-fill for it/fr/de/es - #580

Merged
mrjimenez merged 4 commits into
amule-project:masterfrom
got3nks:fix/manpage-translations-ai
May 11, 2026
Merged

manpages: AI-assisted translation gap-fill for it/fr/de/es#580
mrjimenez merged 4 commits into
amule-project:masterfrom
got3nks:fix/manpage-translations-ai

Conversation

@got3nks

@got3nks got3nks commented May 11, 2026

Copy link
Copy Markdown
Contributor

Fills the remaining untranslated entries in docs/man/po/manpages-$lang.po for Italian, French, German, and Spanish.

Scope per language

Lang New translations Fuzzy fixes Manpages regenerated
it 8 2 amule.it.1, amulecmd.it.1, amuled.it.1
fr 8 2 amule.fr.1, amulecmd.fr.1, amuled.fr.1
de 8 2 amule.de.1, amulecmd.de.1, amuled.de.1
es 1 1 amule.es.1, amulecmd.es.1, amuled.es.1

Spanish has a smaller commit because #547 already covered most of the gap — this completes parity by adding the --disable-fatal entry and removing the synonym typo fuzzy that the other languages got too.

The untranslated strings are all upstream additions since the last per-language translation pass — the search-filters block in amulecmd.1 (--type, --extension, --avail, --min-size, --max-size, the leading "Optional filters can be placed…" paragraph, and the trailing example) and the --disable-fatal description in amule.1 / amuled.1. The two fuzzy entries at amulecmd.1:140 (English typo synonimsynonym) and amulecmd.1:212 (msgid ReloadShow) are the same in every language.

AI-disclosure

Every translation added or substantively changed by this PR was generated by an AI translator (not by a human translator). Every such entry is preceded by a translator comment:

# AI-GENERATED — please review.

Please have a native speaker review these before this PR merges. A reviewer can list every AI-touched entry per file with:

grep -B 0 -A 8 "AI-GENERATED" docs/man/po/manpages-\$lang.po

There are exactly 10 markers per file for it/fr/de (8 new + 2 fuzzy revisits) and 1 marker for es (1 new entry; the fuzzy at amulecmd.1:140 in es only had its English msgid fixed for a typo, so the existing translation stayed correct and no AI marker is needed there).

Translation conventions

Consistent across all four languages:

  • Roff macros preserved verbatim: I<...>, B<...>, \\(mu, \\(lq/\\(rq are not translated.
  • aMule command-line flags preserved verbatim: B<--min-size>, B<--type>, B<exit> etc. are command names a user must type literally; translating them would break the manpage as a usage reference.
  • Technical loanwords kept in established forms per language conventions: systemd, watchdog, headless, assertion/aserción/Assertion left in the form native software documentation typically uses.
  • One semantic fuzzy fix per language at amulecmd.1:212: prior translations were for the old English msgid "Reload shared files list.", which has since changed to "Show shared files list.". Updated translations to "Mostra…" / "Affiche…" / "anzeigen" / "Mostrar…".
  • fr-specific fix at amulecmd.1:140: the prior French translation rendered B<exit> as B<quitter>, but B<...> is the literal command name (there is no quitter command at the amulecmd prompt). Corrected to keep B<exit> verbatim.

Languages not included

Hungarian (hu), Turkish (tr), Russian (ru), and Traditional Chinese (zh_TW) .po files retain their existing state in this PR. Better to leave a string untranslated (the manpage's English fallback at runtime is then used) than land a poor AI translation that gets propagated through future copy-paste reuse. If a native speaker wants to translate those entries, they can do so in a follow-up.

Validation

Each language's manpages-$lang.po was passed through po4a 0.74 with --force and the resulting translated .1 files are included in their respective commits. po4a's 80% threshold is comfortably cleared for every affected manpage in every language.

got3nks added 4 commits May 11, 2026 13:16
Italian manpage catalog had 8 strings with empty msgstr (mostly the
new search-filters block from amulecmd.1 plus the --disable-fatal
text from amule.1 / amuled.1, all introduced upstream since the last
Italian translation pass) and 2 entries flagged fuzzy by po4a after
the English msgid drifted away from what the prior translation
matched. Filling these restores the Italian manpages above po4a's
80% threshold for the strings they touch.

All 9 new/changed translations are marked with a `# AI-GENERATED -
please review.` translator comment so a native reviewer can spot
them with grep. The fuzzy at amulecmd.1:140 only had the typo "synonim"
-> "synonym" change in its msgid, so the existing translation was
already correct and only the #, fuzzy flag is removed (no AI marker
added since no translation change). The fuzzy at amulecmd.1:212 had
a real semantic msgid change ("Reload" -> "Show") that left the
prior translation actively wrong; it is replaced and marked.

Translations preserve roff macros (I<...>, B<...>, \\(mu, \\(lq/\\(rq)
and aMule-specific terminology untranslated (B<--min-size>, B<--type>
as command-line flags; systemd, watchdog, headless as technical
terms; assertion left in English as the wxWidgets / C++ term).

Regenerated affected translated manpages (amule.it.1, amulecmd.it.1,
amuled.it.1) via po4a 0.74 so source and generated artefacts stay in
sync.
French manpage catalog had 8 strings with empty msgstr (the new
search-filters block from amulecmd.1 plus the --disable-fatal text
from amule.1 / amuled.1) and 2 entries flagged fuzzy after the
English msgid drifted.

The amulecmd.1:140 fuzzy was particularly bad: the prior French
translation rendered B<exit> as B<quitter>, but the roff B<...>
macro is the literal command name -- there is no `quitter' command
to type at the amulecmd prompt. Fixed to keep B<exit> verbatim.

amulecmd.1:212 had a real semantic msgid change (Reload -> Show)
that left the prior French translation actively wrong; replaced.

All 10 new/changed translations marked with `# AI-GENERATED -
please review.` for a native French reviewer to spot-check. Roff
macros (I<...>, B<...>, \\(mu, \\(lq/\\(rq), aMule command-line
flags (B<--min-size>, B<--type>), and technical terms (systemd,
watchdog, assertion) left untranslated.

Regenerated amule.fr.1, amulecmd.fr.1, amuled.fr.1 via po4a 0.74.
German manpage catalog had 8 strings with empty msgstr (the new
search-filters block from amulecmd.1 and the --disable-fatal text
from amule.1 / amuled.1) and 2 entries flagged fuzzy after the
English msgid drifted.

The amulecmd.1:140 fuzzy carried a pre-existing typo: the German
translation read 'Synonim' (the same misspelling the original
English msgid had); fixed to 'Synonym' alongside removing the fuzzy
flag. amulecmd.1:212 had a real semantic msgid change (Reload ->
Show) and the prior translation was actively wrong; replaced.

All 10 new/changed translations marked with `# AI-GENERATED -
please review.` for a native German reviewer to spot-check. Roff
macros (I<...>, B<...>, \\(mu, \\(lq/\\(rq), aMule command-line flags
(B<--min-size>, B<--type>), and technical loanwords (systemd,
Watchdog, headless, Assertion) left in their established German
software-docs forms.

Regenerated amule.de.1, amulecmd.de.1, amuled.de.1 via po4a 0.74.
The Spanish manpage catalog was already brought up above po4a's 80%
threshold for amulecmd.1 in amule-project#547; this commit completes the parity
with the it/fr/de translation passes in this PR by adding the two
remaining strings the other languages got:

  - amule.1:45 / amuled.1:53 -- the new --disable-fatal description
    added upstream around the same time the search-filters block
    landed in amulecmd.1.

  - amulecmd.1:140 -- the previously-fuzzy "A synonym of..." entry.
    The Spanish translation was already correct ('Un sinónimo del
    comando B<exit>.'); only the typo 'synonim' -> 'synonym' changed
    in the English msgid, so just removing the #, fuzzy flag is
    sufficient (no AI marker since no translation change).

The deeper backlog of pre-existing Spanish translation gaps (~46
amulecmd/amulegui/amuleweb/ed2k/alc/alcc/cas/wxcas strings that have
been untranslated since long before this PR) is intentionally left
for a separate "fill backlog Spanish gaps" follow-up to keep this PR
focused and per-language commits comparable in scope.

The --disable-fatal translation is marked `# AI-GENERATED -- please
review.` for a native Spanish reviewer.

Regenerated amule.es.1, amulecmd.es.1, amuled.es.1 via po4a 0.74.
@mrjimenez
mrjimenez merged commit 927f162 into amule-project:master May 11, 2026
12 checks passed
@got3nks
got3nks deleted the fix/manpage-translations-ai branch May 11, 2026 13:46
ngosang pushed a commit to ngosang/amule that referenced this pull request Jul 24, 2026
…oltip (amule-project#581)

Two IP-filter UX fixes from issue amule-project#580:

- LoadFromFile treated a 0-byte ipfilter.dat as a load failure ("unknown
  format encountered"), because the archive/format detector does not
  recognise an empty file. An empty file is a valid "no ranges" list
  (a user who cleared it, or an auto-update that has not populated it
  yet), so return 0 quietly instead.

- Reword the "Paranoid handling of non-matching IPs" tooltip. The old
  "Use with caution" gave no hint whether caution applied to enabling or
  disabling; the new text says what the check does (anti-spoofing) and
  that disabling it is the risk. Catalogs regenerated via update-po.sh.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants