Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

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 🔗

Повертає всі перекладені рядки.