Add translations for additional menu options and improve header display in UI

This commit is contained in:
pdxlocations
2026-01-22 16:59:01 -08:00
parent 9452d74596
commit 6527e7cf89
4 changed files with 62 additions and 2 deletions
+15
View File
@@ -1,4 +1,19 @@
#field_name, "Human readable field name with first word capitalized", "Help text with [warning]warnings[/warning], [note]notes[/note], [underline]underlines[/underline], \033[31mANSI color codes\033[0m and \nline breaks."
Main Menu, "Main Menu", ""
User Settings, "User Settings", ""
Channels, "Channels", ""
Radio Settings, "Radio Settings", ""
Module Settings, "Module Settings", ""
App Settings, "App Settings", ""
Export Config File, "Export Config File", ""
Load Config File, "Load Config File", ""
Config URL, "Config URL", ""
Reboot, "Reboot", ""
Reset Node DB, "Reset Node DB", ""
Shutdown, "Shutdown", ""
Factory Reset, "Factory Reset", ""
Exit, "Exit", ""
[User Settings]
user, "User"
longName, "Node long name", "If you are a licensed HAM operator and have enabled HAM mode, this must be set to your HAM operator call sign."
+15
View File
@@ -1,4 +1,19 @@
#field_name, "Human readable field name with first word capitalized", "Help text with [warning]warnings[/warning], [note]notes[/note], [underline]underlines[/underline], \033[31mANSI color codes\033[0m and \nline breaks."
Main Menu, "Главное меню", ""
User Settings, "Настройки пользователя", ""
Channels, "Каналы", ""
Radio Settings, "Настройки радио", ""
Module Settings, "Настройки модулей", ""
App Settings, "Настройки приложения", ""
Export Config File, "Экспорт конфигурации", ""
Load Config File, "Загрузить конфигурацию", ""
Config URL, "URL конфигурации", ""
Reboot, "Перезагрузить", ""
Reset Node DB, "Сбросить БД узлов", ""
Shutdown, "Выключить", ""
Factory Reset, "Сброс до заводских", ""
Exit, "Выход", ""
[User Settings]
user, "Пользователь"
longName, "Полное имя ноды", "Если вы являетесь лицензированным оператором HAM и включили режим HAM, этот режим должен быть установлен в качестве позывного вашего оператора HAM."
+16 -1
View File
@@ -60,6 +60,21 @@ def reload_translations() -> None:
field_mapping, help_text = parse_ini_file(translation_file)
def get_translated_header(menu_path: List[str]) -> str:
if not menu_path:
return ""
transformed_path = transform_menu_path(menu_path)
translated_parts = []
for idx, part in enumerate(menu_path):
if idx == 0:
translated_parts.append(field_mapping.get(part, part))
continue
full_key = ".".join(transformed_path[:idx])
translated_parts.append(field_mapping.get(full_key, part))
return " > ".join(translated_parts)
def display_menu() -> tuple[object, object]:
# if help_win:
# min_help_window_height = 6
@@ -92,7 +107,7 @@ def display_menu() -> tuple[object, object]:
menu_pad = curses.newpad(len(menu_state.current_menu) + 1, w - 8)
menu_pad.bkgd(get_color("background"))
header = " > ".join(word.title() for word in menu_state.menu_path)
header = get_translated_header(menu_state.menu_path)
if len(header) > w - 4:
header = header[: w - 7] + "..."
menu_win.addstr(1, 2, header, get_color("settings_breadcrumbs", bold=True))
+16 -1
View File
@@ -64,6 +64,21 @@ def get_app_settings_help_path_parts(menu_path: List[str]) -> List[str]:
return parts
def get_app_settings_header(menu_path: List[str]) -> str:
if not menu_path:
return ""
translated_parts = []
for idx, part in enumerate(menu_path):
if idx == 0:
translated_parts.append(field_mapping.get(part, part))
continue
if part in ("Main Menu", "App Settings"):
continue
full_key = ".".join(get_app_settings_path_parts(menu_path[: idx + 1]))
translated_parts.append(lookup_app_settings_label(full_key, part))
return " > ".join(translated_parts)
# Compute an effective width that fits the current terminal
def get_effective_width() -> int:
# Leave space for borders; ensure a sane minimum
@@ -237,7 +252,7 @@ def display_menu() -> tuple[Any, Any, List[str]]:
menu_pad.bkgd(get_color("background"))
# Display the menu path
header = " > ".join(menu_state.menu_path)
header = get_app_settings_header(menu_state.menu_path)
if len(header) > w - 4:
header = header[: w - 7] + "..."
menu_win.addstr(1, 2, header, get_color("settings_breadcrumbs", bold=True))