Translation updates, updated submodule.

This commit is contained in:
Storm Dragon
2026-02-28 00:16:01 -05:00
parent 2e5e4b4c04
commit 2857507da7
7 changed files with 2037 additions and 2017 deletions
-49
View File
@@ -1,49 +0,0 @@
// Project-local learn sounds configuration.
// Keep this file in the game root so libstorm-nvgt can stay untouched.
void configure_project_learn_sounds() {
learn_sounds_reset_configuration();
// Skip entries can be full file paths or directories ending with "/".
learn_sounds_add_skip_entry("sounds/quests/bone1.ogg");
learn_sounds_add_skip_entry("sounds/quests/bone2.ogg");
learn_sounds_add_skip_entry("sounds/quests/bone3.ogg");
learn_sounds_add_skip_entry("sounds/quests/bone4.ogg");
learn_sounds_add_skip_entry("sounds/quests/bone5.ogg");
learn_sounds_add_skip_entry("sounds/quests/bone6.ogg");
learn_sounds_add_skip_entry("sounds/quests/bone7.ogg");
learn_sounds_add_skip_entry("sounds/quests/bone8.ogg");
learn_sounds_add_skip_entry("sounds/actions/fishpole.ogg");
learn_sounds_add_skip_entry("sounds/actions/hit_ground.ogg");
learn_sounds_add_skip_entry("sounds/menu/");
learn_sounds_add_skip_entry("sounds/nature/");
learn_sounds_add_skip_entry("sounds/pets/");
learn_sounds_add_skip_entry("sounds/quests/");
learn_sounds_add_description(
"sounds/actions/bad_cast.ogg",
"Your cast missed the water and landed in nearby foliage where it is unlikely to attract fish.");
learn_sounds_add_description(
"sounds/actions/cast_strength.ogg",
"When casting release control when over water. When catching release when sound is over player.");
learn_sounds_add_description("sounds/enemies/enter_range.ogg",
"An enemy is in range of your currently wielded weapon.");
learn_sounds_add_description("sounds/enemies/exit_range.ogg",
"An enemy is no longer in range of your currently wielded weapon.");
learn_sounds_add_description("sounds/actions/falling.ogg", "Lowers in pitch as the fall progresses.");
learn_sounds_add_description("sounds/enemies/invasion.ogg", "The war drums pound! Prepare for combat!");
learn_sounds_add_description("sounds/items/miscellaneous.ogg",
"You picked up an item for which there is no specific sound.");
learn_sounds_add_description("sounds/enemies/goblin1.ogg", "Inhabits mountainous regions.");
learn_sounds_add_description("sounds/enemies/undead_resident1.ogg",
"Not quite a zombie nor a vampyr. These undead remember they used to have a home, and "
"maybe there's food there...");
learn_sounds_add_description("sounds/enemies/wight1.ogg",
"More powerful undead. They do not lose track of you when you are in the base.");
learn_sounds_add_description("sounds/enemies/vampyr1.ogg", "Ever hungry, they feed upon your residents.");
learn_sounds_add_description("sounds/enemies/vampyr2.ogg", "Ever hungry, they feed upon your residents.");
learn_sounds_add_description("sounds/enemies/vampyr3.ogg", "Ever hungry, they feed upon your residents.");
learn_sounds_add_description("sounds/enemies/vampyr4.ogg", "Ever hungry, they feed upon your residents.");
learn_sounds_add_description("sounds/enemies/yeti1.ogg", "Inhabits snowy regions.");
learn_sounds_add_description("sounds/enemies/zombie1.ogg", "Basic undead.");
}
+471 -304
View File
File diff suppressed because it is too large Load Diff
+523 -682
View File
File diff suppressed because it is too large Load Diff
+523 -682
View File
File diff suppressed because it is too large Load Diff
+464 -297
View File
File diff suppressed because it is too large Load Diff
+55 -2
View File
@@ -196,6 +196,58 @@ def unescape_string_literal(literal_body: str) -> str:
return "".join(result)
def parse_string_literal_sequence(expr: str) -> Optional[str]:
expr = expr.strip()
if not expr or expr[0] != '"':
return None
parts: List[str] = []
i = 0
length = len(expr)
while i < length:
while i < length and expr[i].isspace():
i += 1
if i >= length:
break
if expr[i] != '"':
return None
i += 1
literal_chars: List[str] = []
escape = False
while i < length:
ch = expr[i]
if escape:
literal_chars.append("\\" + ch)
escape = False
i += 1
continue
if ch == "\\":
escape = True
i += 1
continue
if ch == '"':
i += 1
break
literal_chars.append(ch)
i += 1
else:
return None
parts.append(unescape_string_literal("".join(literal_chars)))
if not parts:
return None
return "".join(parts)
def expression_to_template(expr: str) -> Optional[str]:
expr = expr.strip()
if not expr:
@@ -217,8 +269,9 @@ def expression_to_template(expr: str) -> Optional[str]:
template_parts.append(passthrough_template)
continue
if len(part) >= 2 and part[0] == '"' and part[-1] == '"':
template_parts.append(unescape_string_literal(part[1:-1]))
literal_sequence = parse_string_literal_sequence(part)
if literal_sequence is not None:
template_parts.append(literal_sequence)
else:
placeholder_count += 1
template_parts.append(f"{{arg{placeholder_count}}}")