reckfellENGINE

EditorTranslationParserPlugin

Плагин для добавления пользовательских парсеров для извлечения строк, которые необходимо перевести, из пользовательских файлов (.csv, .json и т. д.).

На этой странице
class EditorTranslationParserPluginReckfellSharpEditorНаследует RefCounted

Плагин для добавления пользовательских парсеров для извлечения строк, которые необходимо перевести, из пользовательских файлов (.csv, .json и т. д.).

EditorTranslationParserPlugin вызывается при разборе файла для извлечения строк, требующих перевода. Для определения логики разбора и извлечения строк переопределите метод EditorTranslationParserPlugin._ParseFile в скрипте. Возвращаемое значение должно представлять собой массив Reckfell.Collections.Array из string[], по одному для каждой извлеченной переводимой строки. Каждая запись должна содержать [msgid, msgctxt, msgid_plural, comment, source_line], где все, кроме msgid, являются необязательными. Пустые строки будут игнорироваться. Извлеченные строки будут записаны в файл шаблона перевода, выбранный пользователем в разделе «Генерация шаблонов» на вкладке «Локализация» в меню «Настройки проекта». Ниже приведен пример пользовательского парсера, который извлекает строки из CSV-файла для записи в шаблон.

C#
using Reckfell;

[Tool]
public partial class CustomParser : EditorTranslationParserPlugin
{
    public override Reckfell.Collections.Array<string[]> _ParseFile(string path)
    {
        Reckfell.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 in splitStrs)
        {
            ret.Add([s]);
            //ReckfellApi.Print($"Extracted string: {s}");
        }
        return ret;
    }

    public override string[] _GetRecognizedExtensions()
    {
        return ["csv"];
    }
}

Чтобы добавить переводимую строку, связанную с контекстом, множественным числом, комментарием или исходной строкой:

C#
// This will add a message with msgid "Test 1", msgctxt "context", msgid_plural "test 1 plurals", comment "test 1 comment", and source line "7".
ret.Add(["Test 1", "context", "test 1 plurals", "test 1 comment", "7"]);
// This will add a message with msgid "A test without context" and msgid_plural "plurals".
ret.Add(["A test without context", "", "plurals"]);
// This will add a message with msgid "Only with context" and msgctxt "a friendly context".
ret.Add(["Only with context", "a friendly context"]);

Примечание: Если вы отменяете логику обработки типов стандартных сценариев (C#, C# и т.д.), то лучше загрузить path аргументация с использованием ResourceLoader.Load. Это объясняется тем, что встроенные сценарии загружаются как Resource тип, нет FileAccess Тип: например:

C#
public override Reckfell.Collections.Array<string[]> _ParseFile(string path)
{
    var res = ResourceLoader.Load<Script>(path, "Script");
    string text = res.SourceCode;
    // Parsing logic.
}

public override string[] _GetRecognizedExtensions()
{
    return ["gd"];
}

В качестве альтернативы, лейбин может непосредственно модифицировать окончательный список строк, реализуя EditorTranslationParserPlugin._CustomizeStrings. Использовать EditorTranslationParserPlugin, регистрировать его с использованием EditorPlugin.AddTranslationParserPlugin Сначала метод.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

EditorTranslationParserPluginКонструктор
# EditorTranslationParserPlugin
C#
public EditorTranslationParserPlugin();

Методы3

_CustomizeStringsReckfell.Collections.Array<string[]>
# _CustomizeStrings
C#
public virtual Reckfell.Collections.Array<string[]> _CustomizeStrings(Reckfell.Collections.Array<string[]> strings);

Вызывается после анализа всех файлов. Вы можете изменить массив strings, чтобы добавить или удалить элементы из итогового списка строк, а затем вернуть его после внесения изменений. Каждый элемент представляет собой string[], как объяснено в описании EditorTranslationParserPlugin.

*########get_related_relations

Параметры
ИмяТипПо умолчанию
stringsReckfell.Collections.Array<string[]>—
Возвращает Reckfell.Collections.Array<string[]>
_GetRecognizedExtensionsstring[]
# _GetRecognizedExtensions
C#
public virtual string[] _GetRecognizedExtensions();

Получает список расширений файлов для связи с этим анализатором, например, ["csv"].

Возвращает string[]
_ParseFileReckfell.Collections.Array<string[]>
# _ParseFile
C#
public virtual Reckfell.Collections.Array<string[]> _ParseFile(string path);

Переопределите этот метод, чтобы определить пользовательскую логику анализа для извлечения переводимых строк.

Параметры
ИмяТипПо умолчанию
pathstring—
Возвращает Reckfell.Collections.Array<string[]>
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.