diff options
Diffstat (limited to 'editor/localization_editor.h')
-rw-r--r-- | editor/localization_editor.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/editor/localization_editor.h b/editor/localization_editor.h new file mode 100644 index 0000000000..6e0d7ce61f --- /dev/null +++ b/editor/localization_editor.h @@ -0,0 +1,110 @@ +/*************************************************************************/ +/* localization_editor.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#ifndef LOCALIZATION_EDITOR_H +#define LOCALIZATION_EDITOR_H + +#include "core/object/undo_redo.h" +#include "editor_file_dialog.h" +#include "scene/gui/tree.h" + +class LocalizationEditor : public VBoxContainer { + GDCLASS(LocalizationEditor, VBoxContainer); + + enum LocaleFilter { + SHOW_ALL_LOCALES, + SHOW_ONLY_SELECTED_LOCALES, + }; + + Tree *translation_list; + + EditorFileDialog *translation_file_open; + + Button *translation_res_option_add_button; + EditorFileDialog *translation_res_file_open_dialog; + EditorFileDialog *translation_res_option_file_open_dialog; + Tree *translation_remap; + Tree *translation_remap_options; + Tree *translation_filter; + bool translation_locales_list_created; + OptionButton *translation_locale_filter_mode; + Vector<TreeItem *> translation_filter_treeitems; + Vector<int> translation_locales_idxs_remap; + + Label *ts_name; + Label *ts_data_status; + Label *ts_data_info; + Button *ts_install; + + Tree *translation_pot_list; + EditorFileDialog *pot_file_open_dialog; + EditorFileDialog *pot_generate_dialog; + + UndoRedo *undo_redo; + bool updating_translations; + String localization_changed; + + void _translation_file_open(); + void _translation_add(const PackedStringArray &p_paths); + void _translation_delete(Object *p_item, int p_column, int p_button); + + void _translation_res_file_open(); + void _translation_res_add(const PackedStringArray &p_paths); + void _translation_res_delete(Object *p_item, int p_column, int p_button); + void _translation_res_select(); + void _translation_res_option_file_open(); + void _translation_res_option_add(const PackedStringArray &p_paths); + void _translation_res_option_changed(); + void _translation_res_option_delete(Object *p_item, int p_column, int p_button); + + void _translation_filter_option_changed(); + void _translation_filter_mode_changed(int p_mode); + + void _pot_add(const PackedStringArray &p_paths); + void _pot_delete(Object *p_item, int p_column, int p_button); + void _pot_file_open(); + void _pot_generate_open(); + void _pot_generate(const String &p_file); + void _update_pot_file_extensions(); + + void _install_ts_data(); + +protected: + void _notification(int p_what); + static void _bind_methods(); + +public: + void add_translation(const String &p_translation); + void update_translations(); + + LocalizationEditor(); +}; + +#endif // LOCALIZATION_EDITOR_H |