extends EditorTranslationParserPlugin const DialogueConstants = preload("./constants.gd") const DialogueSettings = preload("./settings.gd") const DialogueManagerParseResult = preload("./components/parse_result.gd") func _parse_file(path: String, msgids: Array, msgids_context_plural: Array) -> void: var file: FileAccess = FileAccess.open(path, FileAccess.READ) var text: String = file.get_as_text() var data: DialogueManagerParseResult = DialogueManagerParser.parse_string(text, path) var known_keys: PackedStringArray = PackedStringArray([]) # Add all character names if settings ask for it if DialogueSettings.get_setting("export_characters_in_translation", true): var character_names: PackedStringArray = data.character_names for character_name in character_names: if character_name in known_keys: continue known_keys.append(character_name) msgids_context_plural.append([character_name.replace('"', '\\"'), "dialogue", ""]) # Add all dialogue lines and responses var dialogue: Dictionary = data.lines for key in dialogue.keys(): var line: Dictionary = dialogue.get(key) if not line.type in [DialogueConstants.TYPE_DIALOGUE, DialogueConstants.TYPE_RESPONSE]: continue if line.translation_key in known_keys: continue known_keys.append(line.translation_key) if line.translation_key == "" or line.translation_key == line.text: msgids_context_plural.append([line.text.replace('"', '\\"'), "", ""]) else: msgids_context_plural.append([line.text.replace('"', '\\"'), line.translation_key.replace('"', '\\"'), ""]) func _get_recognized_extensions() -> PackedStringArray: return ["dialogue"]