Added a few translation helpers

This commit is contained in:
2025-05-25 14:25:07 -05:00
parent 6a39e1f2df
commit 48f3e57a44
9 changed files with 35 additions and 16 deletions

Binary file not shown.

View File

@@ -64,8 +64,11 @@ msgstr[1] "Received {quantity} {item}."
msgid "quest.test_quest.title"
msgstr "Test Quest"
msgid "quest.test_quest.objective_onion.title"
msgstr "Savenge an Onion"
msgid "quest.test_quest.onion.title"
msgstr "Scavenge Onions"
msgid "quest.test_quest.onion.description"
msgstr "Find and collect {quantity} {item} and bring them back to {npc}."
#
# ITEMS

View File

@@ -116,7 +116,7 @@ run={
[internationalization]
locale/translations=PackedStringArray("res://locale/en_AU.mo")
locale/translations=PackedStringArray("res://locale/en_AU.po")
locale/language_filter=["ja"]
locale/country_filter=["JP"]

View File

@@ -17,5 +17,9 @@ metadata/_custom_type_script = "uid://dn0kxbe85n40f"
[node name="Find Onion" type="Node" parent="Quests/Test Quest"]
script = ExtResource("3_l8p7p")
title = "quest.test_quest.objective_onion.title"
title = "quest.test_quest.onion.title"
description = "quest.test_quest.onion.description"
objectiveType = null
itemType = 2
quantity = 2
metadata/_custom_type_script = "uid://de1ao4huhy0hm"

View File

@@ -81,3 +81,4 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
text = "Quest Objective Information"
autowrap_mode = 2

View File

@@ -1,6 +1,6 @@
class_name Quest extends Node
@export var title:String = ""
@export_multiline var title:String = ""
@export var questKey:QuestSystem.QuestKey = QuestSystem.QuestKey.TEST_QUEST
var questStarted:bool = false
@@ -29,3 +29,7 @@ func isStarted() -> bool:
func objectiveUpdated(objective:QuestObjective) -> void:
QUEST.questUpdated.emit(self)
func getLocaleData() -> Dictionary[String, String]:
var dict: Dictionary[String, String] = {}
return dict

View File

@@ -4,7 +4,8 @@ enum Type {
Item,
}
@export var title:String = ""
@export_multiline var title:String = ""
@export_multiline var description:String = ""
@export var objectiveType:Type = Type.Item
@export var itemType:Item.Type = Item.Type.POTION
@@ -38,3 +39,9 @@ func _onPlayerInventoryUpdated() -> void:
func isCompleted() -> bool:
return completed
func getLocaleData() -> Dictionary[String, String]:
var dict:Dictionary[String, String] = {}
dict.item = ITEM.getItemName(itemType, quantity)
dict.quantity = LOCALE.formatInteger(quantity)
return dict

View File

@@ -104,3 +104,6 @@ func setLocale(language:Language, region:Region) -> void:
TranslationServer.set_locale(l)
localeChanged.emit(l)
print("Locale set to: " + l)
func formatInteger(integer:int) -> String:
return TextServerManager.get_primary_interface().format_number(str(integer))

View File

@@ -62,7 +62,10 @@ func setQuestObjective(objective = null):
var questObjective = quest.objectives[objective]
questObjectiveList.select(objective)
questObjectiveInfo.text = questObjective.title + "\n"
# Setup Description
var data = quest.getLocaleData()
data.merge(questObjective.getLocaleData())
questObjectiveInfo.text = tr(questObjective.description).format(data)
func open(questKey = null) -> void:
@@ -77,19 +80,13 @@ func close() -> void:
func isOpen() -> bool:
return self.visible
# Private methods
func _updateQuestList():
questList.clear()
questList.deselect_all()
for questKey in QUEST.quests:
var q = QUEST.quests[questKey]
var n = q.title;
if q.isCompleted():
n += " (Complete)"
elif q.isStarted():
n += " (Started)"
questList.add_item(n)
questList.add_item(q.title)
# Event handlers