Skip to content

i18n: add Italian (it) UI dictionary - #48

Closed
paki81 wants to merge 2 commits into
ffind-dev:mainfrom
paki81:i18n-italian
Closed

paki81 wants to merge 2 commits into
ffind-dev:mainfrom
paki81:i18n-italian

Conversation

@paki81

@paki81 paki81 commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

What

Adds an Italian (it) UI dictionary, following the "one dictionary file + one <script> tag" recipe noted in i18n.js:

  • app/web/i18n/it.js — all 557 keys translated; identical key set, order and {placeholder} sets as en.js (verified)
  • app/web/index.html — loads i18n/it.js after de.js
  • tests/test_i18n.py — the consistency checks now iterate a DICTS tuple covering every shipped dictionary instead of hard-coding en.js/de.js, so a new dictionary cannot silently drift from en.js

Behavior

resolveLang() picks it automatically for it / it-* browser locales; everyone else is untouched (English fallback unchanged). manual.file points at manual.html — an Italian manual can follow as a separate contribution.

Testing

  • pytest tests/ — 532 passed (includes all test_i18n.py checks, now covering it.js)
  • Verified live on a Debian 13 LXC install: it.js is served, the page renders in Italian with an Italian browser locale

paki81 and others added 2 commits October 22, 2026 10:53
Adds app/web/i18n/it.js with all 557 keys translated, loads it in
index.html, and extends tests/test_i18n.py so the consistency checks
run over every shipped dictionary instead of en/de only.

manual.file points at the English manual until a translated one exists;
an it-IT browser gets the Italian UI automatically via resolveLang().
Point the Italian dictionary's manual.file at a full Italian translation
of the user manual, keeping every anchor id identical so UI deep links
keep working. The deep-link test now resolves the manual each dictionary
points to instead of hardcoding the English and German files.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@paki81

paki81 commented Oct 22, 2026

Copy link
Copy Markdown
Contributor Author

Added a second commit with the Italian user manual (app/web/manuale.html):

  • Full translation of manual.html; every anchor id is identical, so data-manual deep links resolve in Italian too
  • it.js now points manual.file at manuale.html
  • test_manual_deep_links_resolve_in_every_manual (renamed) now collects the manual each shipped dictionary references via its manual.file entry instead of hardcoding manual.html/handbuch.html — new languages are covered automatically

All 532 tests pass, including the 16 i18n checks.

ffind-dev added a commit that referenced this pull request Oct 22, 2026
- it.js: "incomplete" tooltips no longer read as a double negative ({what}
  arrives as negative English text from the backend, e.g. "no address to
  poll"); the live mode is "ARMATO" instead of "ATTIVO", which also meant
  "dry-run on" and "enabled".
- Stamp test covers /i18n/it.js; dictionary header comments name all three.
- READMEs and both manuals list Italian as a UI language; the manual stays
  English/German, the Italian UI links to the English one.
- CHANGELOG entry under [Unreleased].
@ffind-dev

Copy link
Copy Markdown
Owner

Hi @paki81, thank you very much for this contribution.

I merged your first commit (1eb9ecd) exactly as it is, so it's in main under your name. On top of it there is a small follow-up commit (bdc1966) with two wording fixes from my review.

I decided not to take the Italian manual (manuale.html). The manual would have to be updated for every release, and I can't check/verify Italian content myself.
The UI dictionary is manageable: the strings are short, and with AI I can keep them in sync. Keeping a complete manual in sync purely through AI is a different matter. It explains shutdown, fail-safe and cluster behaviour, and a translation drifting unnoticed out of date is too risky for me there.

Longer term I expect to drop the German manual as well and keep a single English manual for everyone. UI languages like Italian can be added as needed. Until then, the Italian UI links to the English manual.

Because the manual commit isn't part of main, GitHub won't mark this PR as merged automatically, so I'll close it by hand. Your translation is in, thanks again!

@ffind-dev ffind-dev closed this Oct 22, 2026
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