Как делать перевод игры

Материал из SS220 Paradise Wiki (SS13)
Версия от 12:42, 30 мая 2022; Ohar (обсуждение | вклад) (Новая страница: «Внутриигровая локализация сейчас делается так # Найдите в коде игры нужный для перевода кусок # Переводите его на русский # Не забудьте учесть все потенциальные роды и склонения ==Инструменты локализации== Сейчас для локализации реализованы несколько...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Внутриигровая локализация сейчас делается так

  1. Найдите в коде игры нужный для перевода кусок
  2. Переводите его на русский
  3. Не забудьте учесть все потенциальные роды и склонения

Инструменты локализации

Сейчас для локализации реализованы несколько процедур. Все они полагаются на встроенную в DreamMaker систему полов.

Полов в DreamMaker четыре

MALE
Мужской
FEMALE
Женский
NEUTER
Средний
PLURAL
Множественный. Да, хотя в русском языке пол и число — формально разные вещи, но на практике это просто ещё один пол. Подумайте об этом, это действительно так.

Гендеризация — genderize_ru

Процедура genderize_ru

Принимает

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

Возвращает

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

Сигнатура

genderize_ru(пол, мужской, женский, средний, множественный)

Пример

Похоже, это [genderize_ru(user.gender,"он","она","оно","они")]!

Плюрализация — pluralize_ru

Та же гендеризация, но более короткая её версия, для случаев, когда нужно различать только единственное и множественное число.

Принимает

Принимает текущий пол и две строки — для единственного числа и для множественного.

Возвращает

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

Сигнатура

pluralize_ru(пол, одиночный, множественный)

Пример

[user] помеща[pluralize_ru(user.gender,"ет","ют")] свою голову между лезвиями

Склонение единиц измерения — declension_ru

Та же гендеризация, но для единиц измерения.

Принимает

Принимает число и три строки — для единственного, двойственного и множественного числа. Да, в русском языке не два, а три числа, вас обманывали в школе. Двойственное число используется для 2,3 или 4 предметов.

Возвращает

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

Сигнатура

declension_ru(число, одиночное, двойное, множественное)

Пример

Вася нашёл [num] [declension_ru(num,"яйцо","яйца","яиц")]

Склонение по падежам — declent_ru

Самая мякотка. Вершина нанотехнологий НаноТрейзен по локализации строк.

На самом деле ничего сложного. Метод declent_ru и свойство ru_names наследуется от atom и есть у любого материального предмета. Для правильного склонения названия предмета ему надо добавить список ru_names, где указать как его название склоняется по падежам.

Пример заполнения ru_names

ru_names = list(NOMINATIVE = "челюсти жизни", GENITIVE = "челюстей жизни", DATIVE = "челюстям жизни", ACCUSATIVE = "челюсти жизни", INSTRUMENTAL = "челюстями жизни", PREPOSITIONAL = "челюстях жизни")

Принимает

Принимает падеж.

Второй необязательный аргумент — собственный список склонения, если список ru_names предмета вас почему-то не устраивает.

Падежи
Именительный NOMINATIVE
Кто это? Клоун и ассистуха
Родительный GENITIVE
Откусить кусок от кого? От клоуна и ассистухи
Дательный DATIVE
Дать полный доступ кому? Клоуну и ассистухе
Винительный ACCUSATIVE
Обвинить кого? Клоуна и ассистуху
Творительный INSTRUMENTAL
Возить по полу кем? Клоуном и ассистухой
Предложный PREPOSITIONAL
Прохладная история о ком? О клоуне и об ассистухе

Возвращает

Возвращает соответствующую этому падежу строку из списка ru_names или, если список ru_names у предмета не задан, то просто его name, для обратной совместимости.

Сигнатура

declent_ru(пол, одиночный, множественный)

Пример

Текст до перевода

[user] is putting [user.p_their()] head in [src]. It looks like [user.p_theyre()] trying to commit suicide!

Корректно переведённый текст

[user] помеща[pluralize_ru(user.gender,"ет","ют")] свою голову между лезвиями [src.declent_ru(GENITIVE)]. Похоже, [genderize_ru(user.gender,"он","она","оно","они")] пыта[pluralize_ru(user.gender,"ется","ются")] использовать [src.declent_ru(ACCUSATIVE)] для самоубийства