Merge Sphinx translations with Weblate translations, add classref for es fr it ru uk zh_TW

This commit is contained in:
Rémi Verschelde
2025-09-15 11:05:15 +02:00
parent 9d91e8c01f
commit fdce63ed70
13844 changed files with 2529255 additions and 9105 deletions

View File

@@ -0,0 +1,190 @@
:github_url: hide
.. DO NOT EDIT THIS FILE!!!
.. Generated automatically from Godot engine sources.
.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/EditorTranslationParserPlugin.xml.
.. _class_EditorTranslationParserPlugin:
EditorTranslationParserPlugin
=============================
**Успадковує:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Плагін для додавання користувацьких парсерів для вилучення рядків, які повинні бути перекладені з користувацьких файлів (.csv, .json тощо).
.. rst-class:: classref-introduction-group
Опис
--------
**EditorTranslationParserPlugin** викликається, коли файл аналізується для вилучення рядків, які потребують перекладу. Щоб визначити логіку парсингу та вилучення рядків, перевизначте метод :ref:`_parse_file()<class_EditorTranslationParserPlugin_private_method__parse_file>` у скрипті.
Поверненим значенням має бути :ref:`Array<class_Array>` :ref:`PackedStringArray<class_PackedStringArray>`\ s, по одному для кожного вилученого перекладуваного рядка. Кожен запис має містити ``[msgid, msgctxt, msgid_plural, comment]``, де всі, крім ``msgid``, є необов’язковими. Порожні рядки ігноруватимуться.
Витягнуті рядки будуть записані у POT-файл, вибраний користувачем у розділі "Генерація POT" на вкладці "Локалізація" в меню "Налаштування проекту".
Нижче наведено приклад спеціального аналізатора, який витягує рядки з файлу CSV для запису в POT.
.. tabs::
.. code-tab:: gdscript
@tool
extends EditorTranslationParserPlugin
func _parse_file(path):
було правильно: Array[PackedStringArray] = []
var file = FileAccess.open(шлях, FileAccess.READ)
var text = file.get_as_text()
var split_strs = text.split(",", false)
для s у split_strs:
ret.append(PackedStringArray([s]))
#print("Видобутий рядок: " + s)
return ret
func _get_recognized_extensions():
return ["csv"]
.. code-tab:: csharp
using Godot;
[Tool]
public partial class CustomParser : EditorTranslationParserPlugin
{
public override Godot.Collections.Array<string[]> _ParseFile(string path)
{
Godot.Collections.Array<string[]> ret;
using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);
string text = file.GetAsText();
string[] splitStrs = text.Split(",", allowEmpty: false);
foreach (String s у splitStrs)
{
ret.Add([s]);
//GD.Print($"Видобутий рядок: {s}");
}
return ret;
}
public override string[] _GetRecognizedExtensions()
{
return ["csv"];
}
}
Щоб додати перекладний рядок, пов’язаний із контекстом, множиною чи коментарем:
.. tabs::
.. code-tab:: gdscript
# Це додасть повідомлення з msgid «Тест 1», msgctxt «контекст», msgid_plural «тест 1 множини» та коментар «тест 1 коментар».
ret.append(PackedStringArray(["Тест 1", "контекст", "тест 1 множини", "тест 1 коментар"]))
# Це додасть повідомлення з msgid "Тест без контексту" та msgid_plural "множина".
ret.append(PackedStringArray(["Тест без контексту", "", "множина"]))
# Це додасть повідомлення з msgid "Тільки з контекстом" і msgctxt "дружній контекст".
ret.append(PackedStringArray(["Тільки з контекстом", "дружній контекст"]))
.. code-tab:: csharp
// Це додасть повідомлення з msgid "Test 1", msgctxt "context", msgid_plural "test 1 plurals" і коментарем "test 1 comment".
ret.Add(["Тест 1", "контекст", "тест 1 множини", "тест 1 коментар"]);
// Це додасть повідомлення з msgid "Тест без контексту" та msgid_plural "plurals".
ret.Add(["Тест без контексту", "", "множина"]);
// Це додасть повідомлення з msgid "Тільки з контекстом" і msgctxt "дружній контекст".
ret.Add(["Тільки з контекстом", "дружній контекст"]);
\ **Примітка:** Якщо ви замінюєте логіку аналізу для стандартних типів сценаріїв (GDScript, C# тощо), було б краще завантажити аргумент ``path`` за допомогою :ref:`ResourceLoader.load()<class_ResourceLoader_method_load>`. Це тому, що вбудовані сценарії завантажуються як тип :ref:`Resource<class_Resource>`, а не як тип :ref:`FileAccess<class_FileAccess>`. Наприклад:
.. tabs::
.. code-tab:: gdscript
func _parse_file(path):
var res = ResourceLoader.load(path, "Script")
var text = res.source_code
# Логіка розбору.
func _get_recognized_extensions():
return ["gd"]
.. code-tab:: csharp
public override Godot.Collections.Array<string[]> _ParseFile(string path)
{
var res = ResourceLoader.Load<Script>(String, "Script");
string text = res.SourceCode;
// Розбір логіки.
}
public override string[] _GetRecognizedExtensions()
{
return ["gd"];
}
Щоб використовувати **EditorTranslationParserPlugin**, спочатку зареєструйте його за допомогою методу :ref:`EditorPlugin.add_translation_parser_plugin()<class_EditorPlugin_method_add_translation_parser_plugin>`.
.. rst-class:: classref-reftable-group
Методи
------------
.. table::
:widths: auto
+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`_get_recognized_extensions<class_EditorTranslationParserPlugin_private_method__get_recognized_extensions>`\ (\ ) |virtual| |const| |
+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`PackedStringArray<class_PackedStringArray>`\] | :ref:`_parse_file<class_EditorTranslationParserPlugin_private_method__parse_file>`\ (\ path\: :ref:`String<class_String>`\ ) |virtual| |
+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описи методів
--------------------------
.. _class_EditorTranslationParserPlugin_private_method__get_recognized_extensions:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **_get_recognized_extensions**\ (\ ) |virtual| |const| :ref:`🔗<class_EditorTranslationParserPlugin_private_method__get_recognized_extensions>`
Список розширень файлів, пов'язаних з цим парсером, наприклад ``["csv"]``.
.. rst-class:: classref-item-separator
----
.. _class_EditorTranslationParserPlugin_private_method__parse_file:
.. rst-class:: classref-method
:ref:`Array<class_Array>`\[:ref:`PackedStringArray<class_PackedStringArray>`\] **_parse_file**\ (\ path\: :ref:`String<class_String>`\ ) |virtual| :ref:`🔗<class_EditorTranslationParserPlugin_private_method__parse_file>`
Зазначте цей метод, щоб визначити логіку, що підписує перекладацькі рядки.
.. |virtual| replace:: :abbr:`virtual (Зазвичай, цей метод перевизначається користувачем, щоб він мав вплив.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Цей метод не має побічних ефектів. Не змінює ніяку змінну екземпляра об'єкта.)`
.. |vararg| replace:: :abbr:`vararg (Цей метод приймає будь-яке число аргументів після описаних тут.)`
.. |constructor| replace:: :abbr:`constructor (Цей метод використовується для побудови типів.)`
.. |static| replace:: :abbr:`static (Цей метод не потребує екземпляра для виклику, його можна викликати безпосередньо за допомогою назви класу.)`
.. |operator| replace:: :abbr:`operator (Цей метод описує дійсний оператор для взаємодії з цим типом як з лівим операндом.)`
.. |bitfield| replace:: :abbr:`BitField (Це значення є цілим числом, складеним у вигляді бітової маски з наступних прапорів.)`
.. |void| replace:: :abbr:`void (Значення не повертається.)`