feat(lang): add Hungarian language#348
Conversation
feat(lang): add Hungarian language
📝 WalkthroughWalkthroughAdds ChangesHungarian localization
Estimated code review effort: 1 (Trivial) | ~3 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 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 `@locale/hu.yml`:
- Around line 156-159: Update the Hungarian translations for '%d of %d nodes
online' and 'Filter: %d of %d nodes' to remove the English fragments and use
consistent, fully Hungarian wording in both plural variants, while preserving
the existing format placeholders.
- Line 131: Update the Hungarian translations for both dynamic modem-preset
labels, including the entry at “Modem Preset: %s” and its other variant,
replacing the English label with consistent Hungarian wording while preserving
the %s placeholder.
- Line 4: Replace the untranslated value for the “1 of 1 nodes online” locale
entry with its Hungarian translation, removing the `~` placeholder while
preserving the entry’s existing key and formatting.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
| hu: | ||
| Reboot into BaseUI?: Újraindítás BaseUI módba? | ||
| no new messages: nincs új üzenet | ||
| 1 of 1 nodes online: ~ |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
set -euo pipefail
printf '== locale/hu.yml ==\n'
if [ -f locale/hu.yml ]; then
cat -n locale/hu.yml
else
echo 'locale/hu.yml not found'
fi
printf '\n== candidate locale files ==\n'
find . -maxdepth 3 -type f \( -path './locale/*' -o -path './locales/*' -o -path './i18n/*' \) | sed 's#^\./##' | sort | head -200
printf '\n== search for locale loading / YAML null handling ==\n'
rg -n --hidden --glob '!**/node_modules/**' --glob '!**/dist/**' --glob '!**/build/**' '\b(locale|locales|i18n|yaml|yml)\b|load.*yaml|parse.*yaml|fallback' .Repository: meshtastic/device-ui
Length of output: 12861
🏁 Script executed:
set -euo pipefail
cat -n locale/hu.yml 2>/dev/null || true
rg -n --hidden --glob '!**/node_modules/**' --glob '!**/dist/**' --glob '!**/build/**' 'fallback|yaml|yml|locale|locales|i18n|null translation|missing translation' .Repository: meshtastic/device-ui
Length of output: 25984
🏁 Script executed:
set -euo pipefail
printf 'Files:\n'
find locale -maxdepth 1 -type f | sort
printf '\nhu.yml:\n'
sed -n '1,40p' locale/hu.ymlRepository: meshtastic/device-ui
Length of output: 1988
🏁 Script executed:
set -euo pipefail
printf '== generated Hungarian entry ==\n'
rg -n -A3 -B2 "1 of 1 nodes online|hu_lang|hu_singulars|hu_plurals" locale/lv_i18n.c
printf '\n== README / docs on omitted or null translations ==\n'
sed -n '1,220p' locale/README.md
printf '\n== YAML null handling in locale generator references ==\n'
rg -n "null|omit|missing|fallback|empty string|~" locale -g '!locale/lv_i18n.c' -g '!locale/lv_i18n.h'Repository: meshtastic/device-ui
Length of output: 32607
🏁 Script executed:
set -euo pipefail
sed -n '3400,3460p' locale/lv_i18n.c
printf '\n---\n'
sed -n '3460,3505p' locale/lv_i18n.c
printf '\n---\n'
sed -n '1,120p' locale/lv_i18n.hRepository: meshtastic/device-ui
Length of output: 5081
Translate this entry. ~ leaves the source string in place, so this label will still show the English text instead of Hungarian.
🤖 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 `@locale/hu.yml` at line 4, Replace the untranslated value for the “1 of 1
nodes online” locale entry with its Hungarian translation, removing the `~`
placeholder while preserving the entry’s existing key and formatting.
| 'Region: %s': 'Régió: %s' | ||
| 'User name: %s': 'Felhasználónév: %s' | ||
| 'Device Role: %s': 'Eszköz szerepe: %s' | ||
| 'Modem Preset: %s': 'Modem preset: %s' |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Translate the dynamic modem-preset labels.
Both variants leave “Modem preset” in English while surrounding labels are Hungarian. Preserve %s, but translate the label consistently.
Also applies to: 140-140
🤖 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 `@locale/hu.yml` at line 131, Update the Hungarian translations for both
dynamic modem-preset labels, including the entry at “Modem Preset: %s” and its
other variant, replacing the English label with consistent Hungarian wording
while preserving the %s placeholder.
| '%d of %d nodes online': | ||
| one: '%d / %d node online' | ||
| other: '%d / %d node online' | ||
| 'Filter: %d of %d nodes': 'Szűrő: %d / %d node-ok' |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Remove English fragments from the node-status translations.
The pluralized and filtered node messages still expose node and online/node-ok, leaving these user-facing strings partially untranslated. Use consistent Hungarian text for both plural variants.
🤖 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 `@locale/hu.yml` around lines 156 - 159, Update the Hungarian translations for
'%d of %d nodes online' and 'Filter: %d of %d nodes' to remove the English
fragments and use consistent, fully Hungarian wording in both plural variants,
while preserving the existing format placeholders.
pls add hungarian lang !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Summary by CodeRabbit