Skip to content

feat(color): add Slovakian 🇸🇰 translation - #6830

Open
brano2378 wants to merge 4 commits into
EdgeTX:mainfrom
brano2378:SK-translation
Open

feat(color): add Slovakian 🇸🇰 translation#6830
brano2378 wants to merge 4 commits into
EdgeTX:mainfrom
brano2378:SK-translation

Conversation

@brano2378

@brano2378 brano2378 commented Nov 26, 2025

Copy link
Copy Markdown

Fixes #

Summary of changes:
Hello,
I make SLOVAK (SK) translation for EDGETX please check and input to the system..Many thanks for support

Summary by CodeRabbit

  • New Features
    • Added Slovak (sk) language support across the radio UI, simulator, and generated language packs.
    • Added Slovak bootloader text (USB/firmware install, navigation, erase/flash, DFU/UF2) and integrated Slovak into translation selection and availability.
    • Updated translation/sort generation tooling to include sk_SK.UTF-8 and Slovak-specific function ordering.
  • Bug Fixes
    • Refined Czech bootloader wording (“Drzet dlouho …”).
  • Tests
    • Added a Slovak translation coverage test.

@pfeerick pfeerick added this to the 3.0 milestone Dec 5, 2025
@pfeerick pfeerick changed the title Sk translation for EDGETX feat: add Slovakian 🇸🇰 translation Dec 5, 2025
@pfeerick

pfeerick commented Dec 5, 2025

Copy link
Copy Markdown
Member

Thanks for this... it needs a little more done to integrate it into EdgeTX proper, but you've done the hard work for us (the translation) :) I'll try and do the finishing bits next week.

@pfeerick pfeerick self-assigned this Dec 5, 2025
@brano2378

brano2378 commented Dec 5, 2025 via email

Copy link
Copy Markdown
Author

@pfeerick pfeerick left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks mostly ok, and both firmware and simulator build now. For now, I'm focusing on colourlcd support, but work is needed on B&W still (for the accent symbols). Can you review/update the language strings I added the recent commits.

Comment thread radio/src/translations/bl_translations.h
Comment thread radio/src/cfn_sort.cpp Outdated
@philmoz

philmoz commented Jan 7, 2026

Copy link
Copy Markdown
Collaborator

It looks like the translations use unicode characters; but the PR does not contain any B&W font files for the special characters. This will likely not work on B&W radios.

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 937096f7-3b98-4023-b4c5-d38c952f97ff

📥 Commits

Reviewing files that changed from the base of the PR and between e008629 and 7c3078f.

📒 Files selected for processing (1)
  • radio/src/translations/translations.cpp
🚧 Files skipped from review as they are similar to previous changes (1)
  • radio/src/translations/translations.cpp

📝 Walkthrough

Walkthrough

Adds Slovak localization across UI and bootloader strings, simulator language bundles, firmware language registration, build wiring, locale generation, and function sorting. Also corrects a Czech bootloader instruction wording.

Changes

Slovak translation support

Layer / File(s) Summary
Slovak translation definitions
radio/src/translations/i18n/sk.h, radio/src/translations/bl_translations.h, radio/src/tests/test_sk.cpp
Adds Slovak UI and bootloader strings, translation test declarations, conditional LCD and firmware-mode messages, and updates one Czech bootloader phrase.
Runtime translation registration
radio/src/translations/sim/lang_sk.cpp, radio/src/translations/translations.h, radio/src/translations/translations.cpp, radio/src/CMakeLists.txt
Builds and declares skLangStrings, selects the Slovak header, registers the language table for both display configurations, enables Slovak text availability, and includes it in the all-languages simulator build.
Slovak function-sort generation
tools/cfn_sorter.cpp, tools/cfn_sorter.sh, radio/src/cfn_sort.cpp
Adds the Slovak locale and compilation step, then provides Slovak function ordering in cfn_sorted[].

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant SlovakDefinitions
  participant SimulatorBundle
  participant TranslationRegistry
  participant SorterTooling
  SlovakDefinitions->>SimulatorBundle: provide Slovak TR_ definitions
  SimulatorBundle->>TranslationRegistry: build skLangStrings
  TranslationRegistry->>TranslationRegistry: register Slovak language tables
  SorterTooling->>SorterTooling: compile Slovak locale and generate function ordering
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding Slovak translation support.
Description check ✅ Passed The description matches the template structure and states the feature, though the Fixes reference is left unspecified.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@radio/src/translations/bl_translations.h`:
- Line 425: Correct the TR_BL_NO_VERSION translation value from "Zadna verzia"
to the ASCII Slovak form "Ziadna verzia", preserving the existing macro name and
formatting.

In `@radio/src/translations/i18n/sk.h`:
- Line 77: Translate the TR_MAIN_RADIO_SETTINGS string into Slovak while
preserving the existing macro name and formatting.
- Around line 1434-1439: Translate the newly added shortcut strings in the
Slovak translation definitions, updating TR_KEY_SHORTCUTS, TR_CURRENT_SCREEN,
TR_SHORT_PRESS, TR_LONG_PRESS, TR_OPEN_QUICK_MENU, and TR_QUICK_MENU_FAVORITES
from English to Slovak while preserving their macro names and formatting.
- Line 645: Correct the color LCD translation in TR_PRESSANYKEY by changing
“Stač klávesu” to “Stlač klávesu”, while leaving the other translation
unchanged.
- Around line 1317-1327: Correct the Slovak language names in the TR_VOICE_*
definitions, especially the truncated Portuguese translation, and review the
adjacent entries for any other omitted letters. Use the standard Slovak
spellings while preserving each macro’s existing language mapping and
formatting.
- Line 1070: Update the TR_AFHDS3_POWER_SOURCE translation definition to remove
the redundant nested TR macro and provide the properly translated Slovak string
directly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ba059eae-ca22-4e5e-b059-e4f0c3e5db34

📥 Commits

Reviewing files that changed from the base of the PR and between 640fc18 and 5a2a131.

📒 Files selected for processing (9)
  • radio/src/CMakeLists.txt
  • radio/src/cfn_sort.cpp
  • radio/src/translations/bl_translations.h
  • radio/src/translations/i18n/sk.h
  • radio/src/translations/sim/lang_sk.cpp
  • radio/src/translations/translations.cpp
  • radio/src/translations/translations.h
  • tools/cfn_sorter.cpp
  • tools/cfn_sorter.sh

#define TR_BL_DFU_MODE "DFU rezim"
#define TR_BL_PLUG_USB "Pripojit USB kabel"
#define TR_BL_COPY_UF2 "Kopirovat firmware.uf2 na EDGETX_UF2 uloziste"
#define TR_BL_NO_VERSION "Zadna verzia"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Correct the translation for "No version".

Since "Zadna" means "Rear" in Slovak, "Ziadna" (without diacritics) is the correct ASCII representation of "Žiadna" (No/None).

♻️ Proposed fix
-#define TR_BL_NO_VERSION              "Zadna verzia"
+#define TR_BL_NO_VERSION              "Ziadna verzia"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#define TR_BL_NO_VERSION "Zadna verzia"
`#define` TR_BL_NO_VERSION "Ziadna verzia"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@radio/src/translations/bl_translations.h` at line 425, Correct the
TR_BL_NO_VERSION translation value from "Zadna verzia" to the ASCII Slovak form
"Ziadna verzia", preserving the existing macro name and formatting.

#define TR_QM_STATS "Štatistiky"
#define TR_QM_DEBUG "Debug"
#define TR_MAIN_MODEL_SETTINGS "Hlavné nastavenia"
#define TR_MAIN_RADIO_SETTINGS "Radio Settings"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Translate the main radio settings string.

This string remains in English.

♻️ Proposed fix
-#define TR_MAIN_RADIO_SETTINGS          "Radio Settings"
+#define TR_MAIN_RADIO_SETTINGS          "Nastavenia rádia"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#define TR_MAIN_RADIO_SETTINGS "Radio Settings"
`#define` TR_MAIN_RADIO_SETTINGS "Nastavenia rádia"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@radio/src/translations/i18n/sk.h` at line 77, Translate the
TR_MAIN_RADIO_SETTINGS string into Slovak while preserving the existing macro
name and formatting.

#define TR_PRESS_ANY_KEY_TO_SKIP TR("\003Klávesa >>> preskočiť", "Klávesa >>> preskočiť")
#define TR_THROTTLE_NOT_IDLE TR("\003Páka plynu je pohnutá", "Páka plynu nie je na nule")
#define TR_ALARMSDISABLED "Alarmy sú zakázané"
#define TR_PRESSANYKEY TR("\006Stlač klávesu", "Stač klávesu")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix the typo in the color LCD translation.

The word "Stač" is missing an 'l' and should be "Stlač".

♻️ Proposed fix
-#define TR_PRESSANYKEY                 TR("\006Stlač klávesu", "Stač klávesu")
+#define TR_PRESSANYKEY                 TR("\006Stlač klávesu", "Stlač klávesu")
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#define TR_PRESSANYKEY TR("\006Stlač klávesu", "Stač klávesu")
`#define` TR_PRESSANYKEY TR("\006Stlač klávesu", "Stlač klávesu")
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@radio/src/translations/i18n/sk.h` at line 645, Correct the color LCD
translation in TR_PRESSANYKEY by changing “Stač klávesu” to “Stlač klávesu”,
while leaving the other translation unchanged.

#define TR_AFHDS3_ONE_TO_ONE_TELEMETRY TR("Unicast/Tel.", "Unicast/Telemetria")
#define TR_AFHDS3_ONE_TO_MANY "Multicast"
#define TR_AFHDS3_ACTUAL_POWER TR("Act. pow", "Aktuálny výkon")
#define TR_AFHDS3_POWER_SOURCE TR("Power src.", TR("Power src.", "Power source"))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Simplify the nested macro and translate the string.

The nested TR macro is redundant. Additionally, the string remains untranslated.

♻️ Proposed fix
-#define TR_AFHDS3_POWER_SOURCE         TR("Power src.", TR("Power src.", "Power source"))
+#define TR_AFHDS3_POWER_SOURCE         TR("Zdroj nap.", "Zdroj napájania")
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#define TR_AFHDS3_POWER_SOURCE TR("Power src.", TR("Power src.", "Power source"))
`#define` TR_AFHDS3_POWER_SOURCE TR("Zdroj nap.", "Zdroj napájania")
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@radio/src/translations/i18n/sk.h` at line 1070, Update the
TR_AFHDS3_POWER_SOURCE translation definition to remove the redundant nested TR
macro and provide the properly translated Slovak string directly.

Comment on lines +1317 to +1327
#define TR_VOICE_HUNGARIAN "Maďarčina"
#define TR_VOICE_ITALIANO "Taliančina"
#define TR_VOICE_POLISH "Poľština"
#define TR_VOICE_PORTUGUES "Portugačina"
#define TR_VOICE_RUSSIAN "Ruština"
#define TR_VOICE_SLOVAK "Slovenčina"
#define TR_VOICE_SWEDISH "Švédčina"
#define TR_VOICE_TAIWANESE "Tchajwančina"
#define TR_VOICE_JAPANESE "Japončina"
#define TR_VOICE_HEBREW "Hebrečina"
#define TR_VOICE_UKRAINIAN "Ukrainčina"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix typographical errors in standard language names.

Several standard language names are missing letters in Slovak.

📝 Proposed fixes
-#define TR_VOICE_FRANCAIS               "Francúština"
+#define TR_VOICE_FRANCAIS               "Francúzština"
 `#define` TR_VOICE_HUNGARIAN              "Maďarčina"
 `#define` TR_VOICE_ITALIANO               "Taliančina"
 `#define` TR_VOICE_POLISH                 "Poľština"
-#define TR_VOICE_PORTUGUES              "Portugačina"
+#define TR_VOICE_PORTUGUES              "Portugalčina"
 `#define` TR_VOICE_RUSSIAN                "Ruština"
 `#define` TR_VOICE_SLOVAK                 "Slovenčina"
 `#define` TR_VOICE_SWEDISH                "Švédčina"
 `#define` TR_VOICE_TAIWANESE              "Tchajwančina"
 `#define` TR_VOICE_JAPANESE               "Japončina"
-#define TR_VOICE_HEBREW                 "Hebrečina"
-#define TR_VOICE_UKRAINIAN              "Ukrainčina"
+#define TR_VOICE_HEBREW                 "Hebrejčina"
+#define TR_VOICE_UKRAINIAN              "Ukrajinčina"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@radio/src/translations/i18n/sk.h` around lines 1317 - 1327, Correct the
Slovak language names in the TR_VOICE_* definitions, especially the truncated
Portuguese translation, and review the adjacent entries for any other omitted
letters. Use the standard Slovak spellings while preserving each macro’s
existing language mapping and formatting.

Comment on lines +1434 to +1439
#define TR_KEY_SHORTCUTS "Key Shortcuts"
#define TR_CURRENT_SCREEN "Current Screen"
#define TR_SHORT_PRESS "Short Press"
#define TR_LONG_PRESS "Long Press"
#define TR_OPEN_QUICK_MENU "Open Quick Menu"
#define TR_QUICK_MENU_FAVORITES "Quick Menu Favorites" No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Translate the key shortcut strings.

These recently added strings remain in English.

♻️ Proposed fixes
-#define TR_KEY_SHORTCUTS          "Key Shortcuts"
-#define TR_CURRENT_SCREEN         "Current Screen"
-#define TR_SHORT_PRESS            "Short Press"
-#define TR_LONG_PRESS             "Long Press"
-#define TR_OPEN_QUICK_MENU        "Open Quick Menu"
-#define TR_QUICK_MENU_FAVORITES   "Quick Menu Favorites"
+#define TR_KEY_SHORTCUTS          "Klávesové skratky"
+#define TR_CURRENT_SCREEN         "Aktuálna obrazovka"
+#define TR_SHORT_PRESS            "Krátke stlačenie"
+#define TR_LONG_PRESS             "Dlhé stlačenie"
+#define TR_OPEN_QUICK_MENU        "Otvoriť rýchle menu"
+#define TR_QUICK_MENU_FAVORITES   "Obľúbené v rýchlom menu"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#define TR_KEY_SHORTCUTS "Key Shortcuts"
#define TR_CURRENT_SCREEN "Current Screen"
#define TR_SHORT_PRESS "Short Press"
#define TR_LONG_PRESS "Long Press"
#define TR_OPEN_QUICK_MENU "Open Quick Menu"
#define TR_QUICK_MENU_FAVORITES "Quick Menu Favorites"
`#define` TR_KEY_SHORTCUTS "Klávesové skratky"
`#define` TR_CURRENT_SCREEN "Aktuálna obrazovka"
`#define` TR_SHORT_PRESS "Krátke stlačenie"
`#define` TR_LONG_PRESS "Dlhé stlačenie"
`#define` TR_OPEN_QUICK_MENU "Otvoriť rýchle menu"
`#define` TR_QUICK_MENU_FAVORITES "Obľúbené v rýchlom menu"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@radio/src/translations/i18n/sk.h` around lines 1434 - 1439, Translate the
newly added shortcut strings in the Slovak translation definitions, updating
TR_KEY_SHORTCUTS, TR_CURRENT_SCREEN, TR_SHORT_PRESS, TR_LONG_PRESS,
TR_OPEN_QUICK_MENU, and TR_QUICK_MENU_FAVORITES from English to Slovak while
preserving their macro names and formatting.

@pfeerick pfeerick added color Related generally to color LCD radios firmware (fw) General radio firmware issue, not colorlcd or B&W specific labels Jul 16, 2026
@pfeerick pfeerick changed the title feat: add Slovakian 🇸🇰 translation feat(color): add Slovakian 🇸🇰 translation Jul 16, 2026
pfeerick and others added 4 commits August 27, 2026 02:05
Adds full Slovak translations for firmware, bootloader, and simulator,
plus custom function sorting tooling updates.
The committed Slovak custom-function sort order was stale relative to
the current sk.h translation strings and not alphabetized like the
other language blocks. Re-ran cfn_sorter.sh to bring it back in sync.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Every language relies on radio/src/tests/test_<lang>.cpp compiling
against string_list.h to catch missing TR_* macros, but sk.h had no
corresponding test file so Slovak was silently skipped by this check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
isTextLangAvail() excluded LANG_SK for colorLCD, even though the
Slovak string table (skLangStrings) already exists, so it never
appeared in the Text language picker. Keep the exclusion for
non-colorLCD (B&W) radios since those lack Unicode font support for
Slovak diacritics.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

color Related generally to color LCD radios firmware (fw) General radio firmware issue, not colorlcd or B&W specific translation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants