Battery "Bars" mode: localise the menu label

Replace the hardcoded "Bars" literal with a proper language string
(battery_bars) so the Battery display-mode menu value is translated and
voice-prompt safe. German is "Balken"; other supported languages get an
appropriate term. Bumps LANGUAGE_TAG_VERSION for the struct change.

Menu value voice announcement routes through the language table like any
other option value (plays silence until the voice-prompt pack is rebuilt
with a recording); the battery-status announce key already speaks the
percentage in Bars mode.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Marcus Kida 2026-07-24 08:55:25 +02:00
parent 4ec5cfdd4c
commit bc9e5cb655
22 changed files with 23 additions and 3 deletions

View file

@ -345,6 +345,7 @@ const stringsTable_t catalanLanguage=
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Barres", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t croatianLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Trake", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t czechLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Pruhy", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t danishLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Bjælker", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t dutchLanguage =
.sms_own_id_only = "Alleen mijn ID", // MaxLen: 16
.message_from = "Bericht van", // MaxLen: 16
.delete_message = "Bericht wissen?", // MaxLen: 16
.battery_bars = "Balken", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t englishLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Bars", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t finnishLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Palkit", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t frenchLanguage =
.sms_own_id_only = "Mon ID seul", // MaxLen: 16
.message_from = "Message de", // MaxLen: 16
.delete_message = "Suppr. message?", // MaxLen: 16
.battery_bars = "Barres", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t germanLanguage =
.sms_own_id_only = "Nur eigene ID", // MaxLen: 16
.message_from = "Nachricht von", // MaxLen: 16
.delete_message = "Nachricht lösch.", // MaxLen: 16
.battery_bars = "Balken", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t hungarianLanguage=
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Sávok", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t italianLanguage =
.sms_own_id_only = "Solo mio ID", // MaxLen: 16
.message_from = "Messaggio da", // MaxLen: 16
.delete_message = "Elimina msg?", // MaxLen: 16
.battery_bars = "Barre", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t japaneseLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Bar", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t polishLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Paski", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t portuguesBrazilLanguage =
.sms_own_id_only = "Só meu ID", // MaxLen: 16
.message_from = "Mensagem de", // MaxLen: 16
.delete_message = "Apagar msg?", // MaxLen: 16
.battery_bars = "Barras", // MaxLen: 16
};
/*********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t portuguesLanguage =
.sms_own_id_only = "Só meu ID", // MaxLen: 16
.message_from = "Mensagem de", // MaxLen: 16
.delete_message = "Apagar msg?", // MaxLen: 16
.battery_bars = "Barras", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t romanianLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Bare", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t slovenianLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Stolpci", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t spanishLanguage =
.sms_own_id_only = "Solo mi ID", // MaxLen: 16
.message_from = "Mensaje de", // MaxLen: 16
.delete_message = "¿Borrar mensaje?", // MaxLen: 16
.battery_bars = "Barras", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t swedishLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Staplar", // MaxLen: 16
};
/********************************************************************
*

View file

@ -345,6 +345,7 @@ const stringsTable_t turkishLanguage =
.sms_own_id_only = "My ID only", // MaxLen: 16
.message_from = "Message from", // MaxLen: 16
.delete_message = "Delete message?", // MaxLen: 16
.battery_bars = "Çubuklar", // MaxLen: 16
};
/********************************************************************
*

View file

@ -35,7 +35,7 @@
#else
#define LANGUAGE_TAG_MAGIC_NUMBER { 'G', 'D', '7', '7' }, { 'L', 'A', 'N', 'G' } // Never change this tag.
#endif
#define LANGUAGE_TAG_VERSION { 0x00, 0x00, 0x00, 0x06 } // Bump the version each time the language struct is changed
#define LANGUAGE_TAG_VERSION { 0x00, 0x00, 0x00, 0x07 } // Bump the version each time the language struct is changed
typedef struct
{
@ -353,6 +353,7 @@ typedef struct
const char sms_own_id_only[LANGUAGE_TEXTS_LENGTH];
const char message_from[LANGUAGE_TEXTS_LENGTH];
const char delete_message[LANGUAGE_TEXTS_LENGTH];
const char battery_bars[LANGUAGE_TEXTS_LENGTH]; // "Bars" battery header display mode
} stringsTable_t;
#endif // _OPENGD77_UILANGUAGE_H_

View file

@ -321,8 +321,7 @@ static void updateScreen(bool isFirstRun)
rightSideUnitsStr = "V";
break;
case BATTERY_UNIT_BARS:
// Plain literal -> rightSideVar (voice-safe), like the Screen Dim entry above.
snprintf(rightSideVar, SCREEN_LINE_BUFFER_SIZE, "%s", "Bars");
rightSideConst = currentLanguage->battery_bars;
break;
default: // BATTERY_UNIT_PERCENTAGE
rightSideUnitsPrompt = PROMPT_PERCENT;