В предыдущей статье я рассказал как разработать судоку для windows 8.1, в этой расскажу как портировать приложение на Windows Phone 8 и локализовать его на несколько языков.
Рубрика «локализация» - 14
Портирование и локализация приложения на Windows Phone 8
2013-12-20 в 18:22, admin, рубрики: .net, windows phone, локализация, разработка под windows phone, судоку, метки: локализация, судокуКачественная локализация мобильного приложения. 5 простых советов и 12 ссылок
2013-12-11 в 22:54, admin, рубрики: game development, indie games, mobile development, Блог компании KamaGames Studio, локализация, мобильные игры, метки: indie games, локализация, мобильные игрыНа Хабре уже неоднократно писали о локализации игр и сложностях, с которыми могут столкнуться разработчики в процессе интеграции локалей в приложение.
Хочешь вовлечь пользователя? Общайся с ним на его языке!
Хотя вопросы «состыковки» текста с кодом, несомненно, важны, один момент – очень деликатный! – часто остается без внимания, и это – качество перевода. Почему? Для этого есть объективные причины.
Во-первых, локализация мобильных приложений имеет свои особенности. Большие хардкорные проекты издатель обычно переводит, например, с английского/корейского на русский. У «телефонных игр» другая судьба. Им необходимо привлечь внимание как можно большего количества пользователей по всему миру, поэтому с базового русского или английского их, наоборот, выгодно локализовывать на максимальное количество языков.
И здесь разработчики сталкиваются с ожидаемым препятствием – мало кто может свободно читать и редактировать тексты на десяти-двенадцати языках. А если и может – этот человек по праву оценивает свои квалификации на вес золота. Искать такого специалиста можно долго, и охота эта будет кровавой.
Вторая причина – приоритет кода перед текстом. Логично, что юзабилити, монетизация и графика ставятся во главу угла. В конце концов, пользователь приходит в игру не для того, чтобы читать! Да на буквы эти и внимания никто не обратит! (Возьмите конфетку, если вы разработчик, и такие мысли никогда не приходили вам в голову – значит, вы на самом деле исключение из правил).
В эту ловушку попадаются многие – задачи по подготовке локализации и ее тестированию часто откладываются на самый последний момент.
В результате нередки случаи, когда пользователи очень даже замечают текст, потому что он полон ошибок, неточностей и ляпов. Встречают по одежке, провожают по уму. Локализация и графика – это та самая одежка. Пользователь может просто не оценить великолепные игровые механики, если при входе в приложение увидит жизнерадостное «Здраствуй, гозть!».
Если он по несчастливой случайности граммар-наци, то просто развернется и уйдет. Если нет – переключится на базовую английскую локаль и пополнит ряды тех, кто плюется ядом в сторону переводчиков с руками, растущими из нижних регионов.
Как же добиться того, чтобы локализация не просто налезла на приложение, но и сидела на нем, как влитая?
Читать полностью »
Простая локализация названия приложений Windows Phone
2013-10-29 в 9:28, admin, рубрики: .net, mobile development, Visual Studio, windows phone, локализация, разработка под windows phone, метки: c++, Visual Studio, windows phone, локализация
Являясь разработчиком приложений для Windows Phone, я давно понял, что рынок мобильных приложений глобален и для успешного продвижения приложения, оно должно быть качественно локализовано для максимального количества доступных языков. Локализация приложений для Windows Phone подробно описана в документации по разработке приложений. Однако процесс локализации заголовков и заголовков плиток приложений отличается от локализации самого приложения и часто вызывает затруднения, так как требует подготовки отдельного файла ресурсов для каждого языка.
Для решения этой проблемы я создавал несколько проектов ресурсов, которые после удачной сборки копировали результат в каталог приложения. Данное решение меня полностью устраивало, пока мои приложения поддерживали не более трех языков. После того, как появилась необходимость локализовать приложения на большее количество языков, данный подход стал обременительным.
Поиск показал, что многие ищут пути удобного решения данной проблемы. Но удобного способа для себя я не нашел, это привело меня к решению написать утилиту которая позволит создавать и управлять файлами ресурсов. Для меня самым удобным способом стало, описание заголовков в XML файле и автоматическая генерация необходимых файлов на его основании.
Читать полностью »
Сокращённый шрифт «Autonym» для самоназваний языков в Википедии
2013-10-28 в 18:35, admin, рубрики: web-fonts, wikipedia, веб-дизайн, Веб-разработка, Википедия, локализация, мультиязычность, шрифтыЕсли у статьи в Википедии есть версии на других языках, то этот список показывается в боковом меню (интервики-ссылки). Имя языка в этом списке записывается на самом этом языке (в англоязычной литературе используется термин «autonym»).
Это означает, что для правильного показа самоназваний языков нужны соответствующие шрифты. Например, статья о Нобелевской премии доступна на 125 языках и требует около 35 различных шрифтов для того, чтобы показать все их имена в боковом меню.
Первоначально эта проблема решалась с помощью системных шрифтов, доступных на устройстве читателя. Если шрифта не было, пользователь вместо названия языка видел набор квадратиков (▯▯▯▯▯▯▯▯▯, ▯▯▯ — ▯▯▯▯▯ ▯ ▯▯▯▯▯ ▯▯▯▯▯▯▯▯). Такие квадратики называют часто называют «тофу». Для решения этой проблемы (не только для списка языков, но и для показа в самих статьях) было создано расширение MediaWiki Universal Language Selector (ULS), которое предоставляло набор шрифтов для показа всех языков, использующихся на странице.
Это помогло гарантировать корректный показ языка, но взамен принесло другую проблему: резко увеличившийся размер страниц, которые начали грузиться много медленее, чем до начала использования ULS. В качестве полумеры, для обеспечения нормальной скорости загрузки, веб-шрифты перестали использоваться для показа интервики-ссылок.
Читать полностью »
Рецепт i18n. Основа — Babel, json с кофе и грант с hbs на свой вкус
2013-10-27 в 21:54, admin, рубрики: babel, i18n, javascript, json, python, tutorial, Веб-разработка, локализация, метки: babel, i18n, javascript, json, tutorial, локализацияВ своем предыдущем посте я писал о том зачем и почему нужно было сделать pybabel-hbs, экстрактор строк gettext из шаблонов handlebars.
Чуть позже появилась необходимость извлекать так же из json.
Так появился pybabel-json.
pip install pybabel-json либо на github
Там использовался лексер джаваскрипта встроенный в babel, но нюансы так же имелись, но пост не об этом, написанное там менее интересное, чем было в hbs плагине и вряд ли нуждается в заострении внимания.
Этот пост о том, как же в целом выглядит полный набор для локализации, от и до, что делать с данными из БД, либо из другого не совсем статичного места.
От и до включает в себя:
(должен заметить — что ни один пункт не является обязательным, все это достаточно легко подключается к любому приложению только частично и по необходимости)
— Babel. Набор утилит для локализации приложений.
— Grunt. Менеджер задач(task-ов),
— coffeescript. В представлении не нуждается, весь клиенстский код написан на coffee, и из него тоже нужно извлекать строки.
— handlebars — темплейты
— json — хранилища строк
— Jed. gettext клиент для js
— po2json. Утилита для перевода .po файлов в .json формат поддерживаемый Jed-ом
Петер Арвай (Peter Arvai), Prezi: «Креативность перевешивает опыт»
2013-10-23 в 10:01, admin, рубрики: Peter Arvai, Prezi, Блог компании IDCEE 2013. Интернет-технологии и инновации, интервью, когнитивистика, локализация, мышление, переводы, Петер Арвай, Презентации, языки, япония[В переводе использованы части интервью, не попавшие в текст на Venture Village.]
Онлайн-сервис для создания презентаций с эффектами масштабирования Prezi со штаб-квартирами в Будапеште и Сан-Франциско недавно представил новую статистику: по состоянию на сентябрь им пользовались 29 млн человек, причем 19 млн пришли в Prezi в 2013 году.
Через месяц после этого CEO и один из основателей компании Петер Арвай приехал в Киев на конференцию IDCEE. Я встретился с ним среди сотен стартаперов, участников, инвесторов и менторов в коридоре НСК «Олимпийский», чтобы узнать немного больше о том, что ждёт сервис и что движет его создателем.
Локализация приложений Node.js. Часть 3: локализация в действии
2013-10-20 в 13:51, admin, рубрики: .pot, gobbledygook, i18n-abide, javascript, mozilla persona, node.js, node.js holiday season, Блог компании Нордавинд, интернационализация, локализацияОт переводчика: Это деcятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.
- "Охотимся за утечками памяти в Node.js"
- "Нагружаем Node под завязку"
- "Храним сессии на клиенте, чтобы упростить масштабирование приложения"
- "Производительность фронтэнда. Часть 1 — конкатенация, компрессия, кэширование"
- "Пишем сервер, который не падает под нагрузкой"
- "Производительность фронтэнда. Часть 2 — кешируем динамический контент с помощью etagify"
- "Приручаем конфигурации веб-приложений с помощью node-convict"
- "Производительность фронтенда. Часть 3 — оптимизация шрифтов"
- "Локализация приложений Node.js. Часть 1"
- "Локализация приложений Node.js. Часть 2: инструментарий и процесс"
Использование строк
Итак, сначала мы подключили к нашему приложению модуль i18n-abide и обернули строки в вызовы gettext. Затем наша команда переводчиков перевела эти строки и у нас есть готовый перевод для каждого языка.
Теперь давайте заставим наше приложение Node.js работать с локализованными строками. Переводы в виде po-файлов лежат в файловой системе в таком виде:
locale
en
LC_MESSAGES
messages.po
de
LC_MESSAGES
messages.po
es
LC_MESSAGES
messages.po
Во время выполнения нашего приложения нужно извлекать переведённые строки из этих файлов. Есть два способа сделать это:
- на стороне сервера с помощью всё той же функции gettext из модуля i18n-abide;
- на стороне клиента с помощью скрипта gettext.js, который также входит в состав i18n-abide.
Оба этих метода требуют, чтобы строки были в формате JSON. При переводе на стороне сервера они загружаются при старте приложения, а клиент загружает их с помощью HTTP-запросов (или можно включить их в минифицированный файл JavaScript в процессе сборки).
Так как наша система перевода совместима с GNU Gettext, есть ещё и третий путь — модуль node-gettext. Он довольно эффективен при переводе на стороне сервера.
Дальше мы будем рассматривать первый способ, так как это наиболее привычный способ использования i18n-abide.
Читать полностью »
Локализация приложений Node.js. Часть 2: инструментарий и процесс
2013-10-18 в 15:59, admin, рубрики: .pot, i18n-abide, javascript, mozilla persona, node.js, node.js holiday season, Блог компании Нордавинд, интернационализация, локализацияОт переводчика: Это деcятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.
- "Охотимся за утечками памяти в Node.js"
- "Нагружаем Node под завязку"
- "Храним сессии на клиенте, чтобы упростить масштабирование приложения"
- "Производительность фронтэнда. Часть 1 — конкатенация, компрессия, кэширование"
- "Пишем сервер, который не падает под нагрузкой"
- "Производительность фронтэнда. Часть 2 — кешируем динамический контент с помощью etagify"
- "Приручаем конфигурации веб-приложений с помощью node-convict"
- "Производительность фронтенда. Часть 3 — оптимизация шрифтов"
- "Локализация приложений Node.js. Часть 1"
В прошлой статье о локализации приложений Node.js мы узнали, как использовать модуль i18n-abide в нашем коде. Наша работа, как программистов, фактически закончилась на том, что мы обернули строки в шаблонах и коде приложения в вызовы
gettext()
. Но работа по локализации и переводу приложения только начинается.
Инструментарий
Инструментарий локализации команды Mozilla Persona совместим с теми инструментами, которые используются в остальном сообществе Mozilla, и при этом сохраняет преимущества в дружественности и гибкости, присущие Node.
Проекту Mozilla уже почти 15 лет, и наша команда локализаторов и переводчиков одна из самых больших (и клёвых) в мире Open Source. Поэтому у нас широко используются давно привычные, можно даже сказать старинные и причудливые инструменты.
Читать полностью »
Локализация приложений Node.js. Часть 1
2013-10-15 в 14:22, admin, рубрики: i18n, i18n-abide, javascript, l10n, mozilla persona, node.js, node.js holiday season, Блог компании Нордавинд, интернационализация, локализацияОт переводчика: Это девятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.
- "Охотимся за утечками памяти в Node.js"
- "Нагружаем Node под завязку"
- "Храним сессии на клиенте, чтобы упростить масштабирование приложения"
- "Производительность фронтэнда. Часть 1 — конкатенация, компрессия, кэширование"
- "Пишем сервер, который не падает под нагрузкой"
- "Производительность фронтэнда. Часть 2 — кешируем динамический контент с помощью etagify"
- "Приручаем конфигурации веб-приложений с помощью node-convict"
- "Производительность фронтенда. Часть 3 — оптимизация шрифтов"
Знаете ли вы, что продукты и сервисы Mozilla локализованы для 90 языков? Локализация включает в себя:
- текст, переведённый на региональные вариации и диалекты языков;
- рендеринг страниц с учётом написания справа налево;
- пуленепробиваемый дизайн, способный вместить тексты любой длины;
- заголовки, метки и текст на кнопках, подобранные для локальных аудиторий.
В этой серии из трёх статей, посвящённых локализации, я расскажу о технических аспектах создания многоязычного приложения Node.js.
Мы будем использовать общепринятые термины «интернационализация» (i18n) и «локализация» (l10n). Интернационализация — это набор технических приёмов, делающих возможной последующую локализацию, то есть собственно перевод и адаптацию для конкретного языка.
Mozilla Persona — веб-сервис на Node.js, локализованный для множества локалей. У нашей команды были весьма специфические запросы, и поэтому мы не стали использовать существующие библиотеки для локализации.
Читать полностью »