Skip to content

i18n: Italian - #2419

Merged
callumalpass merged 8 commits into
mainfrom
feat/i18n-italian
Oct 26, 2026
Merged

callumalpass merged 8 commits into
mainfrom
feat/i18n-italian

Conversation

@callumalpass

@callumalpass callumalpass commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Summary

Stacked on feat/lingui-port / #2418, not main. Integrates i18n/plugin-it (3bb58647): 2,716 complete Italian UI entries.

  • Add Italiano to bundled resources and the settings picker; normalize regional Italian preferences using the existing negotiation/persistence path.
  • Adopt kit 49bea0aa (SHA-256 4b08df26d7474b26bd90492a1835716f938488b06a73cd3b55943414bc0cbd82), refreshing the npm lock. Replace this vendored dependency with its published version at merge time. Matching Italian UI tarball verified; this plugin has no shared UI dependency/catalogues, so no unused dependency or artificial --compose path is added.
  • Italian date-fns presentation and generated Bases cardinal/ordinal CLDR rules; existing stored IDs, dates and user labels stay stable.
  • Ten-locale immutable pack export/publication manifests and tests, including a real it.json pack and English-only downloadable build graph. No publication occurs.
  • 74 reviewed identical tokens/names/loanwords, no English prose; one exact noteCount:other exception for Italian plural note. Preserve 2,710/2,716 translator values, correcting day/week/year abbreviations, N/D, Senza chiave and the official Obsidian Base label. Extraction canonicalizes PO formatting without changing source IDs/context.
  • NLP selection remains independent. No NLP files changed. Real tests confirm Italian triggers, numeric dates and recurrence work. Pre-existing limitations: chrono-node has no Italian parser, so domani is not recognized; core NLP preview labels such as Due: remain English across locales. No misleading language remapping or parser API rewrite is introduced.
  • Release notes acknowledge @starise ([FR]: Italian translation #1955).

Validation

  • rpnpm --pull dist --pull coverage run check:ci-workflow: 20 existing workflow shell gates passed, Node 22; no workflow changes/dispatch. Includes ten-locale strict authored completeness, source sync/guards, plugin CLDR + English-arm + obsolete-PO gates, translation contracts, lint, docs, typecheck, pack fixtures, coverage and production builds/export.
  • 766 Jest suites / 5,051 tests passed; existing 70 skipped suites, 1,005 skipped tests and 4 todos unchanged in policy. Integration: 5 suites / 77 tests passed, 12 existing skips. Source/Italian fixtures: 62 passed.
  • rpnpm run test:fresh-catalogues: passed, regenerating ignored release-note input before fresh typecheck, deleting catalogue JSON, then the full 766 suites / 5,051 tests and standalone docs. No authored PO deletion/fallback bypass. Final documentation/strict-source gate rerun also passed.
  • rpnpm --pull dist run check:language-pack-builds http://127.0.0.1:19290/tasknotes: passed. Bundled 4,264,038 bytes / downloadable 3,612,122 bytes, both below unchanged 5,000,000-byte budget. Exact graphs: all ten catalogues / English only. Italian pack 158,896 bytes, SHA-256 da4d6591a54be8ed38fdbe49fdca4d22e8130c8dfcbab682db7982c2bb56c705; no remote writes.
  • Native Obsidian 1.14.2, isolated vault/profile/Xvfb/CDP, minified bundled artifact with matching digest: 4/4 passed. Italian synchronous cold start, ten locales, en/it/ja/de/ru picker/command/plurals; Italian/German visible dates, persisted independent UI/NLP settings and actual Italian NLP fill-form; en/it/de/ru pointer-drag/create/order; en/it/de field-label and persisted-data boundaries. Disposable fixtures/settings restored; owned process stopped. Four successful screenshot-bearing traces retained locally.
  • Durable details: docs/development/i18n-italian-acceptance.json; local evidence under test-results/lingui-bundled and dist. Native harness fixes handle cold bootstrap, hidden measuring dropdown clones, in-progress JSON saves, cancellation and CDP-safe fixture creation.

Hosted Actions is not claimed; existing PR workflow filters do not target this stacked base. Current mobile/downloadable-native acceptance and native-speaker certification are not claimed. No merges, tags, releases, deployments, R2 writes, dispatches, canonical checkout edits or subagents.

@callumalpass
callumalpass changed the base branch from feat/lingui-port to main October 26, 2026 10:15
@callumalpass
callumalpass marked this pull request as ready for review October 26, 2026 10:15
fix(i18n): revise Italian translation
@callumalpass
callumalpass merged commit c36c4fe into main Oct 26, 2026
3 checks passed
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