From efb460942536fcd35aa50fc6dbeb6aeea6917642 Mon Sep 17 00:00:00 2001 From: SkyJJ Date: Tue, 23 Jun 2020 13:48:59 +0200 Subject: Add translation parser plugin support --- doc/classes/EditorPlugin.xml | 18 ++++++++++ doc/classes/EditorTranslationParserPlugin.xml | 48 +++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 doc/classes/EditorTranslationParserPlugin.xml (limited to 'doc') diff --git a/doc/classes/EditorPlugin.xml b/doc/classes/EditorPlugin.xml index 2fa791a9df..99fe9b4bb5 100644 --- a/doc/classes/EditorPlugin.xml +++ b/doc/classes/EditorPlugin.xml @@ -142,6 +142,15 @@ Adds a custom submenu under [b]Project > Tools >[/b] [code]name[/code]. [code]submenu[/code] should be an object of class [PopupMenu]. This submenu should be cleaned up using [code]remove_tool_menu_item(name)[/code]. + + + + + + + Registers a custom translation parser plugin for extracting translatable strings from custom files. + + @@ -464,6 +473,15 @@ Removes a menu [code]name[/code] from [b]Project > Tools[/b]. + + + + + + + Removes a registered custom translation parser plugin. + + diff --git a/doc/classes/EditorTranslationParserPlugin.xml b/doc/classes/EditorTranslationParserPlugin.xml new file mode 100644 index 0000000000..c7d796ec30 --- /dev/null +++ b/doc/classes/EditorTranslationParserPlugin.xml @@ -0,0 +1,48 @@ + + + + Plugin for adding custom parsers to extract strings that are to be translated from custom files (.csv, .json etc.). + + + Plugins are registered via [method EditorPlugin.add_translation_parser_plugin] method. To define the parsing and string extraction logic, override the [method parse_text] method in script. + The extracted strings will be written into a POT file selected by user under "POT Generation" in "Localization" tab in "Project Settings" menu. + Below shows an example of a custom parser that extracts strings in a CSV file to write into a POT. + [codeblock] + tool + extends EditorTranslationParserPlugin + + func parse_text(text, extracted_strings): + var split_strs = text.split(",", false, 0) + for s in split_strs: + extracted_strings.append(s) + #print("Extracted string: " + s) + + func get_recognized_extensions(): + return ["csv"] + [/codeblock] + + + + + + + + + Gets the list of file extensions to associate with this parser, e.g. [code]["csv"][/code]. + + + + + + + + + + + Override this method to define a custom parsing logic to extract the translatable strings. + + + + + + -- cgit v1.2.3