Repository navigation
feat(l10n): Add Italian localization (part of #12) - #235
Conversation
c52506b to
a7ddb9f
Compare
iliyami
left a comment
There was a problem hiding this comment.
Thank you @nnevskij, this is excellent work. I went through all 617 entries side by side with the English, German, and French strings. The Italian reads naturally, the "tu" tone is consistent, terminology matches Apple's (Cestino, Accesso completo al disco, Impostazioni di Sistema), every %ld, {browser}, and {url} placeholder is intact, there are no duplicate keys, and nothing German, French, or Traditional Chinese has is missing. Merged with current main, the full suite passes (1,052 tests, 0 failures).
A few things before this can come out of draft:
Housekeeping
- Please change "closes #12" to "part of #12" in the title, body, and commit message. #12 tracks every language, so it should stay open after Italian lands.
- Version: main is about to move to 1.25.3 (#237 and #238), so please bump
VERSIONandMCConstants.appVersionto 1.25.4 when you rebase. The PR body also still mentions 520 strings and 1.24.3. - Four entries can never match because their keys contain a literal backslash-n instead of a real line break:
Localization.swiftlines 2180, 2328, 2404, and 2587. The working versions already exist (around 2026, 2063, 2103, 2115), so these four can simply be deleted.
Tests
4. The per-module localization tests added with the five new modules loop over de/fr/ru/zh-Hant only, so gaps in Italian there wouldn't be caught. Adding .it to those loops is a one-word change each: LocalizationTests.swift around lines 233, 307, 337, and 381, and BrowserExtensionsLocalizationTests.swift:59. I tried it locally and they all pass. Note the line 233 loop also checks for em dashes (see 5).
Wording
5. Em dashes: the app avoids them in translations (German and French use a colon). Seven Italian entries still have one: lines 2155, 2217, 2219, 2225, 2276, 2330, 2392. For example "Scansione completata: nulla da pulire".
6. "保留" (the KEPT badge on duplicates): "CONSERVA" reads like an imperative. "CONSERVATA" (or "CONSERVATO") would describe the state, and the sentence that mentions it ("contrassegnate come CONSERVA") should match.
7. "受保护,无法退出" ("Protected, cannot quit"): "impossibile uscire" sounds like you can't exit. Suggest "Protetto: impossibile forzare l'uscita".
8. Line 2103: "Per cartelle inizio grandi" is a bit awkward. Suggest "Con cartelle Inizio molto grandi possono volerci 5–15 minuti", and capitalizing "Inizio" (the Italian Finder name for Home) in its other uses too (2147, 2164, 2221, 2248, 2436, 2634).
9. "可疑" is "Sospetta" while the description at 2065 says "contrassegnati come Sospetti". Please pick one form.
10. Line 2535 calls System Junk "File di sistema non necessari", but its sidebar name is "File non necessari". Using the sidebar name helps people find it.
Optional, only if you agree: "junk" appears as "non necessari", "inutili", and "superfluo" in different places, and snapshots as both "snapshot" and "istantanee" (Apple uses "istantanee"). One term each would be a nice polish.
A README mention ("Italiano" in the language list and switcher) can come in a follow-up PR, the way French did it in #215.
If you'd rather not deal with some of these, just say so and I'm happy to push the fixes onto your branch myself. Grazie mille!
a7ddb9f to
589eb3e
Compare
|
Merged, grazie mille @nnevskij! You addressed every point quickly and carefully, and Italian is now the seventh interface language. It ships in v1.25.4. If you'd like to add Italian to the README too (the "Interface languages" paragraph and the language switcher, like French did in #215), that would be very welcome as a follow-up PR. |
Part of #12.
Adds full Italian localization across the entire app (613 strings):
AppLanguage.itwith support forit,it-IT, andit-CHregional identifiersVERSIONandMCConstants.appVersionLocalizationTestsandBrowserExtensionsLocalizationTests)