Skip to content

Italian translation - #2668

Open
RobertoD91 wants to merge 8 commits into
iNavFlight:maintenance-10.xfrom
RobertoD91:italian-translation
Open

Italian translation#2668
RobertoD91 wants to merge 8 commits into
iNavFlight:maintenance-10.xfrom
RobertoD91:italian-translation

Conversation

@RobertoD91

Copy link
Copy Markdown
Contributor

Hi, this PR adds an Italian translation.

To be transparent: this work was mostly done with AI (opus 4.8). I took advantage of it because, for work-related reasons, I currently have access to a subscription with a large token allowance.

I ran the GitHub Actions on my fork, and all configurators seem to work. I tested them on windows, mac (arm and intel) and linux.

I also asked some friends to take a look at the translation.

Any feedback is welcome.

Add Italian translation

* AI used: Claude Opus 4.8
* Add locale/it/messages.json
* Register the it language in js/localization.js
* Restore missing Italian accents (à è é ì ò ù) across the translation
* Translate strings present in en but missing in it, including navigation groups, GPS presets, profile titles, settings search, OSD entries, and 9.x strings
* Complete Italian coverage: 100% translated, 0 fallback strings
* Translate all OSD items and help descriptions for a consistent OSD tab
* Translate new 9.x strings related to power limiting, motor wizard, map layers (GEO), backup/restore, flashing warnings, and settings migration
* Keep technical terms and CLI identifiers in English, consistently with the German translation
* Keep language_bg in Cyrillic
* Normalize terminology across the file:
    * aeromobile -> velivolo
    * tornare a casa -> tornare a Home
    * fai clic destro -> clicca con il tasto destro
* Exclude unrelated changes to ci.yml and copilot-instructions.md

Validation:

* 2264 en/it keys aligned
* 0 missing accents
* 0 unaccented occurrences of the verb è
* 0 double spaces
@qodo-code-review

Copy link
Copy Markdown
Contributor

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@github-actions

github-actions Bot commented Jun 25, 2026

Copy link
Copy Markdown

Configurator test build ready — commit e6c37e8

Download build artifacts for PR #2668

Available platforms (scroll to the Artifacts section at the bottom of the run page):

  • Windows x64 (ZIP, MSI) and x32 (ZIP, MSI)
  • macOS arm64 (ZIP, DMG) and x64 (ZIP, DMG)
  • Linux x64 (DEB, RPM, ZIP) and aarch64 (DEB, RPM, ZIP)

A GitHub login is required to download artifacts. Build is for testing only.

Translate all i18n-keyed strings still in English (598 keys), across every
tab: adjustments, PID/gyro/notch filtering, ezTune, braking, launch,
configuration, RTH/navigation, blackbox, firmware flasher, sensors, mixer,
mission/waypoint, etc.

- currentLanguage set to "it" (was "en")
- Technical terms and acronyms kept in English (GPS, OSD, VTX, ESC, PID,
  RC, IMU, throttle, mixer, gyro, notch, Blackbox, Airmode, Roll/Pitch/Yaw
  axes, etc.) — ~220 short labels/identifiers intentionally stay in English
- HTML and placeholders ($1/$2/$3) preserved and verified on every string
- Terminology unified: "mezzo"/"aeromobile" -> "velivolo"
- Verified: 0 missing accents, 0 unaccented "è" verbs, en/it aligned

AI used: Claude Opus 4.8
@sonarqubecloud

Copy link
Copy Markdown

@sensei-hacker
sensei-hacker changed the base branch from maintenance-9.x to maintenance-10.x August 3, 2026 17:47
@sensei-hacker

sensei-hacker commented Aug 3, 2026

Copy link
Copy Markdown
Member

The Opus translation looks like a really good start! A few types of issues remain:

Incomplete Sensor Status Descriptions

Critical technical information is missing from Italian translations for sensor status indicators:

sensorStatusGyro:

  • English: "Gyroscope — Blue: healthy, Red: error, Dark: not detected"
  • Italian: "Giroscopio"
  • Issue: Italian translation is truncated to just the sensor name. The color-coding legend (Blue=healthy, Red=error, Dark=not detected) is completely missing. This deprives Italian users of critical diagnostic information.

sensorStatusMag:

  • English: "Magnetometer — Blue: healthy, Red: error, Dark: not detected"
  • Italian: "Magnetometro"
  • Issue: Same problem as gyroscope - truncated to sensor name only.

sensorStatusBaro:

  • English: "Barometer — Blue: healthy, Red: error, Dark: not detected"
  • Italian: "Barometro"
  • Issue: Same truncation pattern.

Impact: Italian users cannot understand what the sensor status color indicators mean. This is moderately severe for user experience.

Missing HTML Formatting Tags

Example:

  • Key: tabSwitchWaitForOperation
  • English: "You <span style="color: red">can't do this right now, please wait for current operation to complete..."
  • Italian: "Non puoi farlo adesso, attendi il completamento dell'operazione in corso..."
  • Issue: The HTML <span> tag with red color styling is removed in Italian. The word "can't" should be styled red to match the English emphasis. This is minor UI consistency issue.

Impact: Low - visual consistency only, meaning is preserved.

Not everything capitalized is an acronym to be preserved

Opus apparently though that where words such as BARO and RAW were capitalized, they must be acronyms and should not be translated. But it translated the same words when in lower case.

The above are examples only, and do not cover every adjustment needed.

Side note - Haiku found those when asked to review 1/3rd of the file, at 1/5th the cost of Opus. :)

I may be useful to give Sonnet the examples and have it look for others, then have humans carefully check it.

@RobertoD91

Copy link
Copy Markdown
Contributor Author

Thank you for the feedback! I'll work on it asap! Glad to help!

RobertoD91 pushed a commit to RobertoD91/inav-configurator that referenced this pull request Aug 4, 2026
Rebased onto maintenance-10.x (the new base of upstream PR iNavFlight#2668) and:

- Translate the 50 new 10.x strings: Map Generator tab (tiles, SD sync,
  cache), fixed-wing Auto Speed settings, OSD framerate, GPS diagnostics
  OSD element, CRSF sensor port, servo mixer target validation

Address review feedback from PR iNavFlight#2668 (checked over the whole file, not
just the cited examples):
- Restore the color legend in all 8 sensor status strings (Gyro, Accel,
  Mag, Baro, GPS, Optical flow, Sonar, Airspeed): "Blu: funzionante,
  Rosso: errore, Scuro: non rilevato"
- Restore missing HTML: red span in tabSwitchWaitForOperation; align
  stale initialSetupResetText and sensorDataFlashFreeSpace with English
- Capitalization audit: uppercase emphasis is preserved in translation
  (FALLITO, AZIONE RICHIESTA, ANGOLI, TUTTE...); RAW kept as-is; fixed
  "e DISABILITATA" -> "è DISABILITATA" (uppercase predicate had escaped
  earlier accent checks) and grammar in "Cancella TUTTO il cablaggio"

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016BPosEyF54DDwykLeaJCgk
RobertoD91 pushed a commit to RobertoD91/inav-configurator that referenced this pull request Aug 7, 2026
Full review of all 2301 EN->IT string pairs (12 parallel reviewers +
adversarial verification), beyond the examples cited in upstream PR iNavFlight#2668:

- 16 accent fixes that escaped earlier pattern-based passes ("un'utilita",
  "e nell'intervallo", "Si,", "giu", "l'autorita", verb "e" before spans)
- 12 grammar fixes: "l'velivolo" -> "il velivolo" (regex artifact),
  "uscendo portata" -> "uscendo dalla portata", "il UAV" -> "l'UAV",
  "Rate stabilizzate" -> "stabilizzati", made-up word "invelabile" ->
  "impossibile da pilotare", "multirotore" plural agreement
- 9 mistranslations: "centigradi" -> "centesimi di grado" (centidegrees),
  "Tipo assistenza satellitare" -> "a terra" (Ground Assistance),
  "GPS: bloccato" -> "GPS: lock acquisito", stale "Timer Output" ->
  "Gruppi di output (Timer)", "[%]" removed to match EN
- 34 terminology alignments: RC "rate" kept in English (Rate ROLL/PITCH/
  YAW, Rate ed Expo, ezTune Rate), "casa" -> "Home", "aeromobili" ->
  "velivoli", "Default:" -> "Predefinito:", Firmware Flasher tool name,
  "trim" kept in English
- 3 stale strings realigned with current English (channel map A/E/T/R
  legend, reset-to-defaults button, unit-type help "only")
- 2 untranslated Soaring strings translated

All fixes machine-validated: HTML tags and $N placeholders identical to
English, key alignment 2314=2314 unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016BPosEyF54DDwykLeaJCgk
@RobertoD91

Copy link
Copy Markdown
Contributor Author

Ok, I fixed the reported issues, merged maintenance-10.x into my branch and translated the new strings.
I did a merge instead of a rebase to avoid a force push. Is that the right approach?

I noticed that the github action isn't uploading the mac arm artifacts. I'll take a look and open a new issue for it, as it seems unrelated to this translation. In the meantime, I'll run the ci on my fork for testing.

I still have a few doubts about some stylistic choices. As soon as I have a compiled version, I'll review them manually.

@RobertoD91

RobertoD91 commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

I went through every tab and found no visual glitches (the only one was on the landing page, which I fixed with my latest commit).

There are some raw HTML tags showing up, but they also appear in English, so they shouldn't be related to my translation:
image
image

TODO:

  • decide whether to keep "modes" in English or translate it as "modalità" (now is "modalità)
  • I have some doubts about a few fields in Advanced Tuning (cruise vs "crociera", hand launch, etc.)
  • in OSD, "grafico direzione" for the compass heading graph is not clear, changed to "Indicatore di rotta"
  • in JavaScript programming, find a better alternative to "transpila"
  • in CLI I would keep "diff all" and "clean screen" as they are

Unrelated:

  • in Mission Control I can't find "No layers loaded" as a translatable string (hard coded)
  • in OSD, after switching language you need to type something in the search bar to get the texts to refresh
  • many entries in the LED strip tab don't seem to be translatable (hard coded)

@RobertoD91

Copy link
Copy Markdown
Contributor Author

The fail in the build-mac is unrelated to my PR. The [FAILED: Command failed: hdiutil detach /Volumes/INAV-Configurator is casual. I will propose a fix...

@sonarqubecloud

sonarqubecloud Bot commented Aug 8, 2026

Copy link
Copy Markdown

@RobertoD91

Copy link
Copy Markdown
Contributor Author
  • decide whether to keep "modes" in English or translate it as "modalità" (now is "modalità)

"Modalità"

  • in JavaScript programming, find a better alternative to "transpila"

I choose "converti", "transplita" isn't on Treccani

@RobertoD91

Copy link
Copy Markdown
Contributor Author

I think this translation is ready to be merged, but any feedback is welcome.

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.

3 participants