Рубрика «локализация» - 18

Вычисление CRC32 строк в compile time
По своей программистской природе я очень не люблю неоптимальность и избыточность в коде. И вот, читая в очередной раз на работе исходный код Mail.Ru Агента, вновь наткнулся на одну раздражающую особенность в способе реализации перевода строк продукта на разные языки.

Локализация здесь выполняется довольно нехитро. Все строки, требующие перевода, оборачиваются в макрос _TR():

wprintf(L"%sn", _TR("Some hashing string"));

Макрос возвращает нужную версию текста в зависимости от текущего используемого языка. Определён он следующим образом:

#define _TR(x) g_Translator.Translate(x)

Здесь происходит обращение к глобальному объекту g_Translator, который в функции Translate() считает crc32 от указанной строки и ищет в своей xml-базе перевод с совпадающей контрольной суммой.

Не буду судить насколько такое решение оправдано, но оно проверено временем и показало себя достаточно надёжным. И всё бы ничего, но такое решение не лишено недостатков: по сути, функция делает лишнюю работу — контрольные суммы можно было бы подсчитать один раз на этапе компиляции, и использовать в дальнейшем уже готовые числовые значения. Это также избавило бы от необходимости хранить в исполняемом образе дублирующиеся строки, ведь они уже есть во внешнем xml-файле с переводами.

Немного погуглив по запросу «compile-time crc32» я быстро понял, что задача это не самая тривиальная, а готовых решений мне найти так и не удалось.
Читать полностью »

Wordpress localisation Если у вас блог или сайт вертится на WordPress и язык сайта не английский, — то вы точно сталкивалась с проблемой локализации.

Читать полностью »

Добрый день дамы и господа!

Речь пойдет о тестировании, точнее даже о тестировании локализации.
Хотя в общем случае можно применить и к задаче облегчения поиска разницы на двух изображениях.

Поможем человеку сравнить картинки, или о Тестировании Локализации приложения

Читать полностью »

Локализация игр — любители против профессионалов
Как человек, долгое время участвовавший в самых разнообразных неофициальных локализациях на правах любителя, хочу поделиться своими мыслями насчёт ситуации на этом фронте.

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

Но есть люди, которые не безразличны к сложившейся ситуации. О них и пойдёт речь дальше.
Читать полностью »

Всем привет,

На текущем проекте, от заказчика пришло требования, о том, что информация о прошедших событиях, должна показываться клиенту в виде «относительно времени» (Сообщение вида: «Событие произошло N минутуминутминуты назад»). Нам пришли шаблоны сообщений для разных вариантов, а также требования к внешнему виду, одним из которых было то, что сообщения должны быть локализованы.

«Что здесь сложного?», — подумали мы и отправились в гугл, на поиски готового решения. К сожалению, гугл изображал из себя партизана, предлагал несколько вариантов готовых решений для построения такого типа сообщений для английского языка, но ни одно из них не поддерживало локализации.

«Делать нечего, придется поддержать российский автопром изобретать свой велосипед», — решили мы. И вот, что из этого получилось…
Читать полностью »

Мне бы хотелось рассказать об интересном опыте, приобретенном в процессе разработки приложения Smart Coin (бесплатный пока что конвертер валют), моего второго приложения в категории Finance. Первое, Money iQ, было написано во время работы в небольшой компании и даже успело побывать на 1м месте российского App Store. Небольшую dev story о создании Smart Coin я опубликую чуть позже и в другом блоге, если будет интересно, а в этой статье мне хотелось бы остановиться на такой проблеме как мгновенное изменение языка внутри приложения.

Собственно, проблема.

Наверное, многим приходилось сталкиваться с мультиязычнымиЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js