20 июля 2015

Локализация Adobe AIR приложения.

Сегодня расскажу, как сделать мульти-язычное приложение. Сплэш, тексты на картинках игры, название приложения - локализуем все. Лично я использую Adobe AIR, так что большая часть написанного будет касаться именно его. Но, надеюсь, будет полезно всем :)

Немного соплей
Обычно я делаю игры только на английском языке. Почему? Мои игры небольшие, и делаю я их обычно недолго, поэтому на локализацию может уйти больше времени, чем на разработку самой игры :) Плюс к тому, английский вроде как знают все, да и большинство игроков из англоязычных стран. В общем, так было раньше. Теперь же паблишеры любят озадачивать меня тем, чтобы выпустить игру на нескольких языках. Негодяи! Благо, перевод предоставляют сами паблишеры... а моя задача - только вставить сами тексты.
Так вот совсем недавно была необходимость сделать мультиязычное air-приложение, с поддержкой турецкого языка. Причем это касалось всего - любого текста в игре (будь даже он на сплэш-скрине), в том числе название игры, которое отображается у пользователя на экране телефона рядом с иконкой игры.


Локализуем
  • Текстуры внутри приложения 
Эта часть зависит от самой игры и логики загрузки текстур. Можно использовать разные сеты текстурных атласов и грузить нужные в зависимости от значения Capabilities.language. Но я использовал общий атлас, внутри которого находятся текстуры на разных языках. При этом память устройства забивается ненужными локалями, но лично в моем случае так оказалось проще :)
  • Название приложения, отображаемое на девайсе
Чтобы указать разные названия, которые будут показываться на устройствах с разными локалями, нужно копаться в xml-файле, который используется для сборки приложения.
Здесь сказано, как именно нужно менять параметр name. Пробовал, вроде работает для языков из статьи. Меняю на турецкий. И приложение больше не собирается вообще.
Нашел здесь список всех языков. Убрал ненужные. Теперь работает. Если руками поменять, то мистика - не работает.
  • Default-картинки, показываемые при старте приложения, пока оно грузится (актуально только для iOS)
Вот с ними была настоящая беда. Но Кролик помог, спасибо! Оказывается, сами картинки нужно распихивать в разные папки с соответствующими названиями. Указываем их для упаковки, ну и дальше все подхватывается само.
  • Внутриигровые параметры-строки
Была еще необходимость в твиттер передать строку на турецком. Вроде все ок - copy/paste из переписки со спонсором в код, запускаю, а текста в твиттере нет. Почему? Оказалось, в String нельзя просто пихать все, что угодно. Иностранные символы нужно кодировать. Можно кодом, а можно через сторонний онлайн-кодировщик.

Хм... Вроде бы это все, с чем я столкнулся в этот раз. Смотрю на список - он малюсенький, а времени на локализацию я потратил много. Вот такие дела... надеюсь, с этим сообщением под рукой, в следующий раз все пройдет быстрее - ведь решения уже готовы :)

Сообщения, схожие по тематике:

0 коммент.:

Отправить комментарий