Як підготувати гру для локалізації?


48

Багато проектів не думають про локалізацію, поки гра не буде завершена. Потім локалізація робиться як хак, і очевидно, що вона була додана пізніше. Деякі конкретні сфери, що викликають занепокоєння:

  • Текстові рядки (очевидно)
  • Аудіокліпи, такі як музика та / або розповіді
  • Текст, зображений на текстурах (наприклад, етикетка на ящику)
  • Текст, відображений у кадрах у попередньо відтворених фільмах
  • Набори шрифтів / символів для різних мов
  • І т.д.

Які є хороші способи підготуватися до цих викликів на початкових етапах розвитку, так що ви можете зробити це простіше, не маючи на собі занадто великих витрат на передову?


8
Останнім часом я граю Світанок відкриття - Венеція, локалізований англійською з німецької. Це приблизно на 99% вірно. . . і раз у раз один із персонажів незрозуміло розмовляє німецькою мовою для рядка, або один із звітів про стан будівлі містить умулати, або (раз у раз) мені повідомляється, що я можу придбати предмет налагодження у місцевому магазині. Який би метод ви не використовували, переконайтеся, що легко виявити неперекладені рядки - якщо вам доведеться їх читати візуально, або грати в гру і сподіватися, що вони з’являться, ви робите це неправильно.
ZorbaTHut

@ ZorbaTHut Елемент налагодження - це спосіб повідомляти про помилки перекладу, або розробники DoD використовували DLC для виправлення глюків локалізації?
Dan Neely

Створення фальшивої мови, яку ваші програмісти можуть читати та писати, може бути корисною. Google має "хакерську" мову, а Facebook - "Пірат". Це цікаво для розробників, і це те, що вони можуть перевірити самостійно, не вивчаючи нової мови.
Джон Макдональд

Щоб додати до вищезазначених відповідей, пропоную вам пройти раунд псевдо локалізації (фактично формальна назва та процес пункту "Зробити пропущений локалізований текст очевидним" у верхній відповіді). Ви зможете усунути потенційні проблеми із впровадженням ще до того, як переклад навіть розпочнеться.
Ентоні

Відповіді:


49

Я не експерт, але ось деякі основні речі:

Переконайтеся, що ваші струни можуть обробляти більше, ніж просто ASCII

Вам знадобляться кілька символів spécîål, які не вписуються в ASCII, і ваш клас рядків краще не перейматися ними. UTF-8 - це звичайне кодування, оскільки воно є просторовим. Що б ви не робили, випробовуйте рано та випрасуйте перегини.

Це дійсно гарна ідея використовувати фактичний клас струн, а не тільки char *скрізь, або ви будете в світі болю.

Не забудьте свої шрифти. Переконайтесь, що всі використовувані шрифти містять потрібні символи.

Витягніть рядки з коду

Це найважливіший. Переконайтеся, що всі текстові рядки зберігаються поза кодом у якомусь файлі даних, який ви можете замінити. Налаштування трубопроводу для цього може бути справжнім завданням, але заощадить вас за тону часу. Вам потрібен простий API, щоб будь-який раз, коли вам потрібна рядок у коді, це було так просто, як:

String text = Locale::getString("some unique identifier");

Не об'єднуйте і не будуйте рядки в коді

Важливо не робити припущень щодо того, як фрагмент тексту будується з менших слів. Навіть щось таке нешкідливе, як:

String currency = Locale::getCurrencyString() + money.toString();
// creates $123

це проблема, оскільки інші мови можуть розміщувати позначку валюти після номера. Замість цього використовуйте рядки формату, які самі локалізовані:

String format = Locale::get("currency format"); // returns "${0}" in English
String currency = String::Format(format, money.toString());

Таким чином, локалізатори можуть переставляти слова в рядку формату.

Мінімізуйте кількість тексту, який з’являється у мистецтві, особливо у відео

Розшукувати художні активи - справа. Вам, мабуть, доведеться зробити це хоча б трохи для деяких елементів інтерфейсу, але це зайві клопоти. Розгортання FMV - це величезний біль, тому що тепер вам доведеться створювати та зберігати дублікати копій FMV.

Ретельно перевіряйте різними мовами

У більшості баз кодів занадто просто сказати printf("Hi there");або loadTexture("someTexture");забути, що їм потрібно пройти ваш API локалізації. Хтось забуде, і ви закінчите щось, що є правильним у вашій основній мові, але неправильно в інших. Єдиний спосіб знайти це - пройти тестування тестерів на не первинних мовах.

Зробіть очевидним відсутній локалізований текст

Зазвичай ви перекладаєте текст наприкінці циклу, тому протягом більшої частини часу даних для деяких мов просто не буде. Це добре, оскільки дозволяє вам повторювати вміст без постійного повторного перекладу. Мінус - це означає, що вам легко пропустити речі і забути перекласти деякі речі.

Одне дешеве, що ви можете зробити - це зробити так, щоб текст, що пропускається, з'явився дуже очевидно, як "!!! ПОТРІБНИЙ ПОТРІБНИЙ ПОТРІБ ІДЕНТА # блах бла !!!" у грі, коли її немає.

Створіть свій інтерфейс користувача на найгіршій мові

У різних мовах, як правило, є довші або короткіші слова. Користувацький інтерфейс, який виглядає красиво англійською мовою, може містити текст, який проходить за його межами, отримує обрізання або неправильно загортається довшою мовою. Вам доведеться внести зміни в інтерфейс користувача, щоб вони відповідали найгіршому мові (або розщедрити його, але це, мабуть, не те, що ви хочете робити.)

Прикро, що англійська мова часто є найкоротшою мовою з тих, що зазвичай локалізуються, тому ваші дизайнери, ймовірно, ненавмисно розробляють найкращий випадок. Змусьте їх використовувати надто довгий текст для своїх заповнювачів під час проектування. Припустимо, будь-який фрагмент тексту може бути приблизно на 30% довший, ніж англійською. Google Translate може бути корисним для отримання приблизного фрагмента тексту для заповнювача.

Бюджетний час на переклад

Переклад тексту зазвичай трапляється пізно, коли команда втомилася і насправді не хвилює. Тим не менш, ви отримаєте багато помилок, коли це станеться. Слова пройдуть за межами кордонів, перекладачі будуть робити помилки і т. Д. Для того, щоб погіршити ситуацію, час перегляду тексту може бути довгим, якщо вам доведеться надсилати текст людям за кордон і чекати їх змін. Виділіть час на цю роботу.


4
Ах, об'єднані струни. Який біль у попці. Чудово працює на рідній мові для створення різноманітності швидко та легко. Але потім ти потрапляєш у мову з іншою граматикою, і це повна невдача. Усі інші моменти теж хороші. "Налаштуваннями" німецькою мовою було "Einstellungen", що пожирає зовсім небагато додаткового простору екрану, коли вам це потрібно.
Кейсі Вагнер

13

На додаток до інших пропозицій, що я вже робив у минулому, що дуже допомагає знайти перекладений текст, що витікає з компонентів інтерфейсу, - це створити спеціальний мовний режим для вашої гри, який, показуючи будь-який рядок, переглядає всі мови та вибирає найдовшу версію цього рядка. Таким чином, після того, як ви зробили всі рядки в потрібному режимі, ви знаєте, що ви виправили всі текстові кровотечі на кожній мові.


9

Правильно локалізувати гру - чорт важко .

Ви можете переглядати Інтернет, читати повідомлення в блогах або відповіді StackOverflow; ви можете вивчити традиційні рамки i18n, такі як gettext ; читати сторінки Вікіпедії щодо інтернаціоналізації та локалізації гри ; зверніться до чудового посібника з мови Microsoft - але локалізувати ігри насправді складніше. Насправді, з іграми це, мабуть, складніше, ніж з будь-яким іншим додатком чи веб-інтерфейсом. Це тому, що ігри настільки динамічніші, більш яскраві, живіші (ну принаймні хороші ігри).

Більше того, напевно, потрібно буде зробити наступні кроки:

Встановіть межі.

Ви хочете прийняти найважливіше рішення, якими мовами ви хочете скоріше підтримувати. Чим ширший ваш вибір, тим більше припущень щодо того, як може вести себе мова, буде порушено. Часто ці припущення настільки глибоко закарбовані в нашому мозку, що ми навіть не можемо уявити, що вони можуть бути невірними, коли хтось не вказає на них. Що приводить нас до наступного моменту:

Знайдіть експертів для кожної мови, яку ви хочете підтримати.

Експерт означає, що той, хто володіє достатньою аналітичною майстерністю та знаннями мови, міг би вказати на те, які припущення, які володіє англійською мовою, не відповідають власній мові. Тоді вам потрібно буде придумати стратегію, як обходити ці припущення.

Як приклад: у західних мовах ми виправдовуємо текст в абзаці, вставляючи додатковий пробіл між словами. В арабській мові текст виправданий, вставляючи символи кашиди всередину слів. Це може виглядати приблизно так .

Інший приклад: у російській мові є більшість форм множини для більшості слів. Наприклад, ви б перевели "1 монета" / "3 монети" / "5 монет" як "1 монета", "3 монети", але "5 монет". Фактична процедура визначення правильної форми множини виглядає так:

function LocalRU::GetPlural(n, form0, form1, form2) {
    return (n%10) == 0 || (n%100) >= 5 && (n%100) <= 20? form0 : 
           (n%10) == 1? form1 : 
           (n%10) <= 4? form2 : form0;
}

Створіть контекстний модуль перекладу.

Ви, мабуть, знаєте, що переклад завжди залежить від контексту. І ви знаєте, що контекст у грі постійно змінюється. Що станеться, якщо скласти ці два твердження? Загалом ваші переклади повинні бути настільки ж динамічними, як і ваша гра.

Наприклад, проста фраза "Я згоден" перекладається на російську мову як одна з "Я згоден" / "Я згоден" / "Я согласно", залежно від статі мовця (чоловік / жінка / трансгендер | queer | запитання). Якщо це один із ваших діалогових рядків, тоді мовний модуль повинен буде вибрати один із можливих перекладів під час виконання, залежно від статі вашого персонажа (якщо ви пропонуєте своїм гравцям такий вибір).

Ця ж фраза при перекладі на японську мову знову матиме різні переклади, залежно від рівня формальності стосунків між мовцем і слухачем. Таким чином, якщо ви введете у свою гру ідею репутації, дружби або різного рівня переваги (скажімо, ваш персонаж може перетворитися від Rookie до General), то вам доведеться це враховувати при формуванні перекладу. (Насправді, це не стосується японців. Навіть англійською мовою в армії ви ніколи не говорите "сер, так, сер!" Комусь нижче вас за рангом.)

Майте спосіб стрибнути в контекст.

Ваші перекладачі повинні мати можливість бачити контекст, де з’являється певна фраза. Іноді контекст очевидний, іноді доводиться його бачити / чути / переживати, щоб щось правильно перекласти.

Навіть таке просте речення, як «Ця книга синя». не можна однозначно перекласти, не переглянувши книгу і побачивши, який саме блакитний відтінок.

Уникайте гри слів, каламбурів та інших елементів, що відповідають мові.

Або, можливо, не уникайте, але принаймні майте на увазі стратегію, що робити, коли гра слова не може бути перекладена. Тому що, мабуть, не вийде.

Принаймні, ви не повинні створювати жодних квестів / пазлів / ігрових об’єктів, які покладаються на певні слова, що мають подвійне значення, або схожі на деякі інші слова. Тому що після перекладу ви зламаєте власну гру. (Наприклад, у старій грі Fallout2 головним завданням було знайти об’єкт під назвою GECK; навколо гри також було чимало монстрів "Гекко" (мутовані ящірки); природно, вони створювали безліч посилань та квестів навколо подібності імен, які зробив хороші переклади надзвичайно важко).

Повеселіться!

Локалізувати гру важко. Але важко всім. Якщо ви докладете зусиль і зробите це правильно, це не залишиться непоміченим ігровими критиками у вашій цільовій країні. Гра з хорошим перекладом буде виділятися та отримувати більший прибуток. Зрештою, текст настільки ж важливий для створення атмосфери в грі, як і графіка (саме тому старі текстові RPG були настільки захоплюючими).


Альтернативою "уникнути гри в слова" є включення творчого письменника до команди з перекладу мови та дозволити їм змінювати буквальні значення. FFXIV робить це надзвичайно добре для їх англійської версії, як хороший приклад.
Патрік Х'юз

3

У Віла Шиплі найкращий посібник з локалізації, який я коли-небудь читав. На жаль, це особливості iPhone, але все ж можна отримати загальнокорисну інформацію. Далі він звертається до локалізації активів та інтерфейсу користувача - двох найбільших проблем локалізації ігор, які я можу собі уявити.


1

Завжди ВИНАГО трактуйте мову-джерела як локалізовану мову.

Отже, якщо вашою мовою джерела є EN, то зберігайте всі активи та рядки EN в окремій папці EN та витягайте звідти.

Перетягніть активи EN через ваш передбачуваний конвеєр локалізації.

Виконуючи цю просту річ, ви зможете наздогнати, можливо, 80% проблем із локалізацією та будете налаштовані на набагато простіший процес локалізації.

Я локалізував багато ігор і завжди веду з цим самородком.


1

Я бачу тут справді чудові поради!

Я спробую скласти список найпоширеніших помилок, які можуть варіюватися від ускладнення вашої локалізації до повного зруйнування вашої гри:

  • Мислення локалізації як останнього кроку розвитку гри
  • Не ізолюючи текстові рядки від вихідного коду
  • Сполучення / перерви у рядку в середині речення.
  • Якщо припустити час, дати та одиниці, не потрібна локалізація
  • Недостатня кількість довідкових матеріалів для перекладачів / Не відповідає на їх запитання
  • Якщо припустити, що весь текст вашої гри буде розміщено в ASCII
  • Маючи текст у візуалах
  • Маючи жорсткі поля тексту / інтерфейсу користувача
  • Якщо всі мови мають ту саму довжину, що й англійська
  • Використання Google Translate / машинного перекладу
  • Ігнорування культурних факторів
  • Не виділення достатнього бюджету для локалізації

Локалізація повинна бути інтегрована до розробки якомога раніше, і ви завжди повинні мати це на увазі, розробляючи гру.

При правильному плануванні та ретельному дослідженні ринку ви заощадите собі багато клопоту та витрат далі за лінією.

Я, мабуть, є засновником компанії з локалізації ігор, і ми обговорили підготовку гри для локалізації пару місяців тому в нашому блозі.

Ось інфографіка, яка резюмує цю публікацію: https://magic.piktochart.com/output/18317297-9-steps-to-cheaper-game-development-with-localization

Посилання на повну публікацію, яка детальніше висвітлює ці поради, знаходиться внизу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.