Localize remaining hardcoded UI strings and persist language preference

Replaces the last hardcoded English strings (initial-scene modals, game
menu save status messages) with locale-loaded text, adds a shared
LOCALE_LIST so the settings dropdown and locale manager stay in sync,
and persists the chosen language into savemeta_t across all platforms.
Also fixes two message buffers that were too small for their longest
translations.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-04 21:39:24 -05:00
parent 1ddc298a74
commit 7357b4a5df
19 changed files with 417 additions and 50 deletions
+4
View File
@@ -120,6 +120,9 @@ errorret_t saveMetaLoadLinux(savemeta_t *out) {
out->deadzone = saveJsonReadFloatLinux(
root, "deadzone", SAVE_META_DEADZONE_DEFAULT
);
out->language = saveJsonReadUInt8Linux(
root, "language", SAVE_META_LANGUAGE_DEFAULT
);
out->exists = true;
yyjson_doc_free(doc);
@@ -136,6 +139,7 @@ errorret_t saveMetaWriteLinux(savemeta_t *meta) {
errorChain(saveJsonWriterInitLinux(&writer));
saveJsonWriterAddUInt32Linux(&writer, "version", meta->version);
saveJsonWriterAddFloatLinux(&writer, "deadzone", meta->deadzone);
saveJsonWriterAddUInt8Linux(&writer, "language", meta->language);
errorret_t ret = saveJsonWriterSaveLinux(&writer, path);
saveJsonWriterDisposeLinux(&writer);