TranslationServer
Управляет локалью игры и поиском сообщений в зарегистрированных переводах.
Выбирает сообщения из зарегистрированных ресурсов Translation с учётом текущей и резервной локали. Translate возвращает исходный ключ, если перевод не найден; ключ и контекст должны совпадать. TranslatePlural выбирает форму числа, но не форматирует заполнители.
SetLocale меняет активную локаль и отправляет уведомление о смене перевода. Самостоятельно рассчитанный текст нужно пересчитать в обработчике этого уведомления. Метод не сохраняет настройку игрока. Загрузка ресурса отдельно от AddTranslation или регистрации в проекте не включает его в поиск.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства2
PseudolocalizationEnabledСвойство
public static bool PseudolocalizationEnabled { get; set; }Состояние автоматической псевдолокализации основного домена, не именованных доменов. Setter обновляет remap-ресурсы и отправляет уведомление о смене перевода даже при том же значении. В текущей реализации преобразует Translate, но не TranslatePlural. Прямой Pseudolocalize работает независимо от флага.
SingletonСвойство
public static TranslationServerInstance Singleton { get; }Заимствованный экземпляр сервиса движка, общий со статическими методами. Обычно используйте статические вызовы TranslationServer. Не создавайте замену, не вызывайте Free/Dispose у этого экземпляра.
Методы35
AddTranslationvoid
public static void AddTranslation(Translation translation);Добавляет общий ресурс Translation в основной домен сервера. Повтор того же объекта не дублирует его; другой объект той же локали допустим, но порядок равных кандидатов не гарантирован. Не отправляет уведомление об обновлении существующего текста UI и не добавляет ресурс в именованные домены.
| Имя | Тип | По умолчанию |
|---|---|---|
translation | Translation | — |
translationНенулевой общий ресурс Translation; регистрация и удаление сравнивают объект, не только Locale.
Clearvoid
public static void Clear();Очищает только набор каталогов основного домена. Не сбрасывает активную локаль, параметры псевдолокализации или именованные домены и не очищает сами Translation. Это глобальное действие для текущего проекта: для своего дополнения удаляйте только принадлежащие ему ресурсы/домен.
CompareLocalesint
public static int CompareLocales(string localeA, string localeB);Сравнивает локали: 10 для точного или нормализованного совпадения, положительная оценка для одного языка, 0 для разных языков. Это оценка сходства, а не проверка наличия перевода.
| Имя | Тип | По умолчанию |
|---|---|---|
localeA | string | — |
localeB | string | — |
localeAПервая локаль в канонической записи, например ru_RU.
localeBВторая сравниваемая локаль, например ru.
intОценка от 0 до 10; положительная оценка не доказывает наличие ресурсов или совпадение всех требований к письменности.
FindTranslationsReckfell.Collections.Array<Translation>
public static Reckfell.Collections.Array<Translation> FindTranslations(string locale, bool exact);Возвращает отдельный контейнер Array<Translation> совпадающих каталогов основного домена. exact=true сравнивает Locale буквально без нормализации; false выбирает все CompareLocales>0. Не сортирует по точности, не проверяет сообщение и не включает именованные домены. Элементы — общие ресурсы.
| Имя | Тип | По умолчанию |
|---|---|---|
locale | string | — |
exact | bool | — |
localeИдентификатор локали, например ru_RU. SetLocale и числовые методы требуют непустое значение; exact-поиск и числовые методы не нормализуют ввод автоматически.
exacttrue — буквальное сравнение Locale; false — все положительные CompareLocales.
Reckfell.Collections.Array<Translation>Новый контейнер всех подходящих общих каталогов основного домена, без гарантии порядка.
FormatNumberstring
public static string FormatNumber(string number, string locale);Преобразует символы числовой строки для числовой системы locale. Ключ locale ищется буквально; сначала стандартизуйте его сами. Для поддерживаемых систем заменяет цифры, e/E и оба символа точки/запятой на разделитель. Не форматирует числовое значение, не группирует разряды, не проверяет строку и не использует формат C# по культуре. При отсутствии числовой системы возвращает ввод как есть. Например ar: 12.5 → ١٢٫٥.
| Имя | Тип | По умолчанию |
|---|---|---|
number | string | — |
locale | string | — |
numberСтрока, а не числовой объект. Метод заменяет символы и не проверяет корректность числа; результат проверяйте отдельно.
localeИдентификатор локали, например ru_RU. SetLocale и числовые методы требуют непустое значение; exact-поиск и числовые методы не нормализуют ввод автоматически.
stringСтрока с заменёнными символами либо исходный ввод для неподдерживаемого ключа.
GetAllCountriesstring[]
public static string[] GetAllCountries();Возвращает новый string[] кодов стран/регионов встроенной таблицы, не текущую страну пользователя. Порядок не гарантирован; названия получайте через GetCountryName.
string[]Новый массив кодов без гарантии сортировки; не меняет исходную таблицу.
GetAllLanguagesstring[]
public static string[] GetAllLanguages();Возвращает новый string[] кодов из встроенной таблицы языков. Список не зависит от загруженных переводов и не гарантирует сортировку или полный перевод проекта на эти языки. Для интерфейса сопоставляйте код через GetLanguageName и сортируйте отдельно.
string[]Новый массив кодов без гарантии сортировки; не меняет исходную таблицу.
GetAllScriptsstring[]
public static string[] GetAllScripts();Возвращает новый string[] кодов письменностей встроенной таблицы, например Latn. Это не языки программирования и не перечень установленных шрифтов; порядок не гарантирован.
string[]Новый массив кодов без гарантии сортировки; не меняет исходную таблицу.
GetCountryNamestring
public static string GetCountryName(string country);Находит название страны/региона по точному коду таблицы, например US. Неизвестный код возвращает без изменений; автоматической нормализации регистра или перевода названий по активной локали нет.
| Имя | Тип | По умолчанию |
|---|---|---|
country | string | — |
countryТочный код встроенной таблицы; неизвестное значение возвращается без изменений.
stringИмя из таблицы либо исходный неизвестный код.
GetLanguageNamestring
public static string GetLanguageName(string language);Находит имя языка по точному коду таблицы, например en. Неизвестный код возвращается как есть. Названия берутся из встроенной таблицы и не переводятся автоматически при SetLocale; не передавайте полный ru_RU вместо кода ru.
| Имя | Тип | По умолчанию |
|---|---|---|
language | string | — |
languageТочный код встроенной таблицы; неизвестное значение возвращается без изменений.
stringИмя из таблицы либо исходный неизвестный код.
GetLoadedLocalesstring[]
public static string[] GetLoadedLocales();Возвращает локали ресурсов, зарегистрированных в основном домене переводов. Не возвращает все известные движку языки и не проверяет полноту перевода сообщений.
string[]Массив подключённых локалей; может быть пустым. Для каталога известных языковых кодов используйте GetAllLanguages.
GetLocalestring
public static string GetLocale();Читает активную локаль сервера. Это не обязательно исходная локаль ОС, не список загруженных языков и не Locale отдельного Translation или override домена.
stringАктивный идентификатор локали сервера.
GetLocaleNamestring
public static string GetLocaleName(string locale);Стандартизует locale и составляет отображаемое имя из встроенных названий языка, письменности и страны, если компоненты присутствуют. Это подпись для человека, не стабильный идентификатор и не автоматически локализованный текст интерфейса.
| Имя | Тип | По умолчанию |
|---|---|---|
locale | string | — |
localeИдентификатор локали, например ru_RU. SetLocale и числовые методы требуют непустое значение; exact-поиск и числовые методы не нормализуют ввод автоматически.
stringСоставленное отображаемое имя из встроенной таблицы, не ключ локали.
GetOrAddDomainTranslationDomain
public static TranslationDomain GetOrAddDomain(StringName domain);Возвращает существующий именованный домен или создаёт пустой. Для дополнения используйте уникальное имя, например его путь addons; один домен не должен без согласования удаляться несколькими владельцами.
| Имя | Тип | По умолчанию |
|---|---|---|
domain | StringName | — |
domainИмя домена. Пустое имя обозначает основной домен проекта, а не новый частный домен.
TranslationDomainTranslationDomain для данного имени. Получение само по себе не загружает словари и не назначает домен Control.
GetPercentSignstring
public static string GetPercentSign(string locale);Возвращает знак процента числовой системы по точному непустому ключу locale; если записи нет, %. Не умножает значение на 100, не форматирует число и не выбирает расположение знака.
| Имя | Тип | По умолчанию |
|---|---|---|
locale | string | — |
localeИдентификатор локали, например ru_RU. SetLocale и числовые методы требуют непустое значение; exact-поиск и числовые методы не нормализуют ввод автоматически.
stringЗнак системы счисления либо %, без числа.
GetPluralRulesstring
public static string GetPluralRules(string locale);Ищет строку правил: сначала точный ключ таблицы, затем язык+страна и язык после разбора locale. При отсутствии возвращает пустую строку; английский fallback выбирает Translation, а не этот метод. Не проверяет полноту форм в каталоге и не вставляет число в текст.
| Имя | Тип | По умолчанию |
|---|---|---|
locale | string | — |
localeИдентификатор локали, например ru_RU. SetLocale и числовые методы требуют непустое значение; exact-поиск и числовые методы не нормализуют ввод автоматически.
stringСтрока правил gettext либо пустая строка при отсутствии.
GetScriptNamestring
public static string GetScriptName(string script);Находит название письменности по точному коду, например Latn. Неизвестное значение возвращается как есть. Это не название C#-скрипта и не проверка поддержки письменности шрифтом.
| Имя | Тип | По умолчанию |
|---|---|---|
script | string | — |
scriptТочный код встроенной таблицы; неизвестное значение возвращается без изменений.
stringИмя из таблицы либо исходный неизвестный код.
GetToolLocalestring
public static string GetToolLocale();В editor/project-manager режиме TOOLS_ENABLED использует локаль каталога редактора с точным совпадением либо en. При обычном запуске выбирает подходящую локаль основного домена, иначе fallback сервера. Это не универсальный способ прочитать настройку языка UI редактора из любой игры; поведение редактора проверено только по исходникам.
stringВыбранная tool/runtime локаль либо fallback; зависит от режима процесса.
GetTranslationObjectTranslation · Устарело
public static Translation GetTranslationObject(string locale);Устаревший SDK-метод: возвращает один лучше совпавший общий ресурс основного домена либо null. Не гарантирует выбор при равных оценках и наличие нужного сообщения. Для списка используйте FindTranslations с явным exact; для текста — Translate/TranslatePlural.
| Имя | Тип | По умолчанию |
|---|---|---|
locale | string | — |
localeИдентификатор локали, например ru_RU. SetLocale и числовые методы требуют непустое значение; exact-поиск и числовые методы не нормализуют ввод автоматически.
TranslationОдин общий ресурс либо null; устаревший API.
GetTranslationsReckfell.Collections.Array<Translation>
public static Reckfell.Collections.Array<Translation> GetTranslations();Возвращает отдельный Array<Translation> всех каталогов основного домена без гарантии порядка. Изменение контейнера не меняет регистрацию; редактирование элемента меняет общий ресурс. Не освобождайте элементы как новые ресурсы.
Reckfell.Collections.Array<Translation>Новый контейнер общих каталогов основного домена.
HasDomainbool
public static bool HasDomain(StringName domain);Проверяет запись домена в реестре, не наличие конкретного языка или переведённого ключа. В проверке частный домен исчез после отключения плагина.
| Имя | Тип | По умолчанию |
|---|---|---|
domain | StringName | — |
domainИмя проверяемого домена; основной домен с пустым именем всегда существует.
booltrue при существующем домене. Не подтверждает загрузку нужного словаря.
HasTranslationbool
public static bool HasTranslation(Translation translation);Проверяет регистрацию того же объекта Translation в основном домене. Совпадение Locale или содержимого недостаточно; содержимое каталога может быть пустым.
| Имя | Тип | По умолчанию |
|---|---|---|
translation | Translation | — |
translationНенулевой общий ресурс Translation; регистрация и удаление сравнивают объект, не только Locale.
booltrue при регистрации того же объекта в основном домене.
HasTranslationForLocalebool
public static bool HasTranslationForLocale(string locale, bool exact);Проверяет локаль каталогов основного домена: exact=true — буквальное равенство, false — CompareLocales>0. Не проверяет наличие конкретного ключа, fallback и именованные домены.
| Имя | Тип | По умолчанию |
|---|---|---|
locale | string | — |
exact | bool | — |
localeИдентификатор локали, например ru_RU. SetLocale и числовые методы требуют непустое значение; exact-поиск и числовые методы не нормализуют ввод автоматически.
exacttrue — буквальное сравнение Locale; false — все положительные CompareLocales.
booltrue при подходящей локали, независимо от наличия нужного сообщения.
IsPseudolocalizationEnabledbool
public static bool IsPseudolocalizationEnabled();Читает флаг автоматического преобразования основного домена. Это не проверка всех именованных доменов и не подтверждение визуально обновлённого интерфейса.
boolТекущее состояние основного домена, не результат проверки UI.
ParseNumberstring
public static string ParseNumber(string number, string locale);Преобразует известные цифры, разделитель и экспоненту выбранной числовой системы обратно в строку с ASCII-цифрами. Не возвращает число и не проверяет синтаксис: несколько разделителей могут остаться. Для неподдерживаемого ключа locale ввод не меняется. Не гарантирует точный обратный ход FormatNumber: регистр экспоненты и исходная запятая могут потеряться.
| Имя | Тип | По умолчанию |
|---|---|---|
number | string | — |
locale | string | — |
numberСтрока, а не числовой объект. Метод заменяет символы и не проверяет корректность числа; результат проверяйте отдельно.
localeИдентификатор локали, например ru_RU. SetLocale и числовые методы требуют непустое значение; exact-поиск и числовые методы не нормализуют ввод автоматически.
stringСтрока, не double/decimal и не подтверждение корректного числа.
PseudolocalizeStringName
public static StringName Pseudolocalize(StringName message);Явно преобразует переданную строку по настройкам псевдолокализации основного домена. Работает даже при выключенном PseudolocalizationEnabled. Не выполняет поиск перевода; защита заполнителей не распознаёт составной формат C# {0}.
| Имя | Тип | По умолчанию |
|---|---|---|
message | StringName | — |
messageТекст для преобразования; если нужен перевод, сначала найдите его.
StringNameПреобразованный текст с настроенными обрамлением и заполнением; пустой ввод остаётся пустым.
ReloadPseudolocalizationvoid
public static void ReloadPseudolocalization();Перечитывает параметры преобразования из internationalization/pseudolocalization/ для основного домена и отправляет уведомление о смене перевода. Не переключает активное состояние по use_pseudolocalization: задайте PseudolocalizationEnabled отдельно. Не сохраняет ProjectSettings на диск.
RemoveDomainvoid
public static void RemoveDomain(StringName domain);Удаляет именованный домен из реестра. Делайте это после удаления его UI и только при владении доменом. Уже полученные ссылки могут оставаться живыми; повторный GetOrAddDomain создаст новую регистрацию.
| Имя | Тип | По умолчанию |
|---|---|---|
domain | StringName | — |
domainНепустое имя принадлежащего вам домена. Удаление основного домена отклоняется.
RemoveTranslationvoid
public static void RemoveTranslation(Translation translation);Удаляет конкретный ресурс из основного домена по объекту, не все переводы той же локали. Повторное удаление — бездействие. Не меняет регистрацию этого ресурса в других доменах и не отправляет уведомление о смене перевода.
| Имя | Тип | По умолчанию |
|---|---|---|
translation | Translation | — |
translationНенулевой общий ресурс Translation; регистрация и удаление сравнивают объект, не только Locale.
SetLocalevoid
public static void SetLocale(string locale);Устанавливает непустую активную локаль с нормализацией. Если нормализованное значение изменилось, инициирует перезагрузку remap-ресурсов и отправляет MainLoop.NotificationTranslationChanged в главный цикл. Повтор того же значения — бездействие. Не загружает произвольные каталоги и не сохраняет предпочтение игрока на диск. Самостоятельно вычисленный текст пересчитывайте в обработчике уведомления.
| Имя | Тип | По умолчанию |
|---|---|---|
locale | string | — |
localeИдентификатор локали, например ru_RU. SetLocale и числовые методы требуют непустое значение; exact-поиск и числовые методы не нормализуют ввод автоматически.
SetPseudolocalizationEnabledvoid
public static void SetPseudolocalizationEnabled(bool enabled);Назначает PseudolocalizationEnabled основного домена и инициирует обновление remap-ресурсов и уведомление главного цикла. Даже повтор того же bool отправляет уведомление. Не сохраняет ProjectSettings и не включает преобразование TranslatePlural.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledНовый bool основного домена; повторное назначение также вызывает уведомление.
StandardizeLocale2 перегрузки
public static string StandardizeLocale(string locale);Нормализует обозначение локали, например ru-RU в ru_RU. Не служит проверкой наличия каталога или универсальным исправлением регистра и некорректного ввода. Эта перегрузка не добавляет значения по умолчанию.
| Имя | Тип | По умолчанию |
|---|---|---|
locale | string | — |
localeОбозначение локали с каноническим регистром; поддерживаются разделители вроде дефиса в ru-RU.
stringНормализованное обозначение. Результат не подтверждает наличие перевода или правильность любого исходного ввода.
public static string StandardizeLocale(string locale, bool addDefaults = false);Нормализует обозначение локали, например ru-RU в ru_RU. Не служит проверкой наличия каталога или универсальным исправлением регистра и некорректного ввода. При addDefaults=true может добавить письменность или страну для некоторых неоднозначных локалей.
| Имя | Тип | По умолчанию |
|---|---|---|
locale | string | — |
addDefaults | bool | false |
localeОбозначение локали с каноническим регистром; поддерживаются разделители вроде дефиса в ru-RU.
addDefaultsРазрешить добавление известных значений для неоднозначной локали: например zh становится zh_Hans_CN. Не выбирает язык, который входит в игру.
stringНормализованное обозначение. Результат не подтверждает наличие перевода или правильность любого исходного ввода.
TranslateStringName
public static StringName Translate(StringName message, StringName context = null);Выполняет поиск основного домена по активной и резервной локали. Пустой результат считается отсутствующим; при необходимости возвращает исходный ключ и применяет включённую псевдолокализацию. Не ищет произвольно во всех именованных доменах.
| Имя | Тип | По умолчанию |
|---|---|---|
message | StringName | — |
context | StringName | null |
messageИсходный ключ поиска; в Pseudolocalize — выбранный текст для преобразования.
contextТочный контекст сообщения; null/default означает пустой.
StringNameНайденный текст либо исходный ключ с применимой псевдолокализацией.
TranslatePluralStringName
public static StringName TranslatePlural(StringName message, StringName pluralMessage, int n, StringName context = null);Ищет форму в основном домене по активной, затем резервной локали. Правила определяет выбранный Translation. При отсутствии возвращает message только при n==1, иначе pluralMessage. Не подставляет число и в SDK 1.0.0 не применяет автоматическую псевдолокализацию; при необходимости явно обработайте результат через Pseudolocalize.
| Имя | Тип | По умолчанию |
|---|---|---|
message | StringName | — |
pluralMessage | StringName | — |
n | int | — |
context | StringName | null |
messageИсходный ключ поиска; в Pseudolocalize — выбранный текст для преобразования.
pluralMessageИсходная множественная форма для fallback; не отдельный ключ карты Translation.
nНеотрицательное количество для правил Translation; fallback использует singular только при 1. Не вставляется в результат.
contextТочный контекст сообщения; null/default означает пустой.
StringNameНайденная форма либо исходный singular/plural, без автоматической псевдолокализации.