xiandie/ui/text_helper.gd

35 lines
787 B
GDScript

@tool
extends Node
@export var property_name := "text"
@export var translation_key := ""
@export var vertical := false
@export_tool_button("刷新") var refresh = _refresh.bind(true)
func _ready() -> void:
_refresh()
# res://asset/dialogue/item_description.zh_CN.translation
var items_translation = preload("uid://c1x5bqwulamey") as Translation
func _refresh(from_tool := false):
if property_name and translation_key:
var msg = tr(translation_key)
if from_tool:
msg = items_translation.get_message(translation_key)
msg = msg.replace("{br}", "\n")
if vertical:
var new_text = ""
for c in msg:
new_text += c + "\n"
msg = new_text
set(property_name, msg)
func _notification(what: int) -> void:
if what == NOTIFICATION_TRANSLATION_CHANGED:
_refresh()