Translation

Наследует: Resource < RefCounted < Object

Наследуется от: OptimizedTranslation

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

Описание

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

Translation состоит из сообщений. Сообщение идентифицируется по его контексту и непереведенной строке. В отличие от gettext, использование пустой контекстной строки в Godot означает отсутствие использования какого-либо контекста.

Обучающие материалы

Свойства

String

locale

"en"

String

plural_rules_override

""

Методы

StringName

_get_message(src_message: StringName, context: StringName) virtual const

StringName

_get_plural_message(src_message: StringName, src_plural_message: StringName, n: int, context: StringName) virtual const

void

add_message(src_message: StringName, xlated_message: StringName, context: StringName = &"")

void

add_plural_message(src_message: StringName, xlated_messages: PackedStringArray, context: StringName = &"")

void

erase_message(src_message: StringName, context: StringName = &"")

StringName

get_message(src_message: StringName, context: StringName = &"") const

int

get_message_count() const

PackedStringArray

get_message_list() const

StringName

get_plural_message(src_message: StringName, src_plural_message: StringName, n: int, context: StringName = &"") const

PackedStringArray

get_translated_message_list() const


Описания свойств

String locale = "en" 🔗

Локаль перевода.


String plural_rules_override = "" 🔗

  • void set_plural_rules_override(value: String)

  • String get_plural_rules_override()

Строка правил множественного числа для применения. См. GNU gettext для примеров и дополнительной информации.

Если строка пустая или недействительная, используются правила множественного числа по умолчанию из TranslationServer.get_plural_rules(). В качестве запасного варианта используются правила множественного числа английского языка.


Описания метода

StringName _get_message(src_message: StringName, context: StringName) virtual const 🔗

Виртуальный метод для переопределения get_message().


StringName _get_plural_message(src_message: StringName, src_plural_message: StringName, n: int, context: StringName) virtual const 🔗

Виртуальный метод для переопределения get_plural_message().


void add_message(src_message: StringName, xlated_message: StringName, context: StringName = &"") 🔗

Добавляет сообщение, если оно отсутствует, а затем его перевод.

Дополнительный контекст может использоваться для указания контекста перевода или дифференциации многозначных слов.


void add_plural_message(src_message: StringName, xlated_messages: PackedStringArray, context: StringName = &"") 🔗

Добавляет сообщение, содержащее перевод во множественном числе, если он отсутствует, а затем его перевод.

Дополнительный контекст может использоваться для указания контекста перевода или различения многозначных слов.


void erase_message(src_message: StringName, context: StringName = &"") 🔗

Стереть сообщение.


StringName get_message(src_message: StringName, context: StringName = &"") const 🔗

Возвращает перевод сообщения.


int get_message_count() const 🔗

Возвращает количество существующих сообщений.


PackedStringArray get_message_list() const 🔗

Возвращает ключи всех сообщений, то есть контекст и непереведенные строки каждого сообщения.

Примечание: Если сообщение не использует контекст, соответствующим элементом является непереведенная строка. В противном случае соответствующим элементом является контекст и непереведенная строка, разделенные символом EOT (U+0004). Это сделано в целях совместимости.

for key in translation.get_message_list():
    var p = key.find("\u0004")
    if p == -1:
        var untranslated = key
        print("Message %s" % untranslated)
    else:
        var context = key.substr(0, p)
        var untranslated = key.substr(p + 1)
        print("Message %s with context %s" % [untranslated, context])

StringName get_plural_message(src_message: StringName, src_plural_message: StringName, n: int, context: StringName = &"") const 🔗

Возвращает перевод сообщения, содержащего формы множественного числа.

Число n — это количество объектов множественного числа. Оно будет использоваться системой перевода для выбора правильной формы множественного числа для выбранного языка.

Примечание: Множественное число поддерживается только в переводах на основе GetText (PO), но не в CSV-файлах.


PackedStringArray get_translated_message_list() const 🔗

Возвращает все переведенные строки.