Я уже достаточно давно использую PHPixie в работе и очень доволен, единственное чего мне не хватало — это поддержка многоязычности. Так как я работаю в Казахстане, большинство заказчиков хотят на своем сайте несколько локализаций, особенно это касается государственных учреждений. PHPixie был моим первым фреймворком, переходить на что-то другое не хотелось(хотя признаюсь чуть не изменил со старушкой коханой) и я писал «уродливые костыли», что-бы реализовать мультиязычность. В этой статье речь пойдет о моём новом вполне удобном и изящном «костыле», которым я решил поделиться — модуле «PHPixie Amalgama».
Читать полностью »
Рубрика «i18n» - 2
PHPixie Amalgama — Интернационализация в PHPixie
2014-11-25 в 11:23, admin, рубрики: framework, i18n, php, phpixie, ПрограммированиеИспользование angular-translate для локализации приложений ASP.NET MVC + AngularJS
2014-11-06 в 6:00, admin, рубрики: angular, angular-translate, AngularJS, ASP.NET, i18n, internationalization, l10n, localization, mvc, Блог компании EastBanc Technologies Привет! В этой статье речь пойдет о применении библиотеки angular-translate для локализации приложения. Расскажем о возможностях этой библиотеки, опишем проблемы, которые могут возникнуть, и дадим советы по их решению (основываясь, конечно, на собственном опыте).
Читать полностью »
Практическое руководство по Unicode’изации
2014-09-03 в 8:44, admin, рубрики: i18n, Unicode, utf-8, utf8, Администрирование баз данных, Блог компании Mail.Ru Group, Социальные сети и сообществаМы, наконец, это сделали! Долгое время позорное наследие CP1251 раздражало разработчиков, наводило на мысли о том, что, как же так? Эпоха Unicode уже давно наступила, а мы все еще используем однобайтовую кодировку и расставляем в разных местах костыли для совместимости с внешними системами. Но причина тому была достаточно рациональная: перевести на Unicode большой проект, в который развился Мой Мир, очень трудоемко. Мы оценивали это в полгода и не были готовы тратить столько ресурсов на фичу, которая не принесет русскоязычной аудитории существенной пользы.
Но история вносит свои коррективы, зачастую весьма неожиданные. Не секрет, что в Казахстане весьма популярен проект Мой Мир, который является самой популярной социальной сетью в этой стране. И нам всегда хотелось, чтобы у наших казахских пользователей появилась возможность использовать символы казахского алфавита из расширенного кириллического набора, которым, к сожалению, не нашлось места в CP1251. И дополнительным стимулом для нас, позволившим, наконец, оправдать длительную разработку, стал дальнейший рост популярности нашего проекта за пределами нашей страны. Мы поняли, что пора делать шаг навстречу нашим зарубежным пользователям.
Разумеется, первое, что было необходимо для интернационализации проекта, это начать принимать, передавать, обрабатывать и хранить данные в UTF-8. Процедура эта для большого проекта непростая и длительная, по пути нам пришлось решить несколько достаточно интересных задач, про которые мы постараемся рассказать.
Читать полностью »
Когда я разрабатываю системы на Zend Framework, то всегда использую gettext и Zend_Translate. Всё лаконично просто и обычно не возникает никаких проблем с переводом даже больших проектов. Для каждого языка генерируются свои файлы .po и .mo, переводы пляшут от дефолтного языка, ключи тоже на этом же языке. Переводчикам удобно передать эти файлы, которые они могут открыть в POEdit и удобно всё перевести. Так вот, на стороне сервера всё очень просто, но часто нужно переводить какие-то сообщения «на лету» в JavaScript, а он не понимает ваши .mo файлы. Но хотелось бы пользоваться именно ими, чтобы не разделять перевод одного проекта на 2 части (backend, frontend). И я начал искать. В Интернете существует достаточно большое количество таких решений, но все они почему-то обрастают зависимостями:
code.google.com/p/gettext-js/ (Prototype)
angular-gettext.rocketeer.be/ (Angular)
github.com/jakob-stoeck/jquery-gettext (jQuery)
А хотелось иметь именно «pure-js» решение. Ок, напишем своё.
Читать полностью »
Обзор 7 онлайн-сервисов для локализации ПО
2014-07-08 в 11:02, admin, рубрики: i18n, l10n, ruby on rails, Веб-разработка, локализация, управление проектамиНаверное каждый продукт, интерфейс которого имеет более одного языка, сталкивался с проблемой организации процесса локализации.
На самом деле этот вопрос касается не только мультиязычных приложений. Далеко не всегда при проектировании фичи заранее проработаны все тексты, которые для нее понадобятся, поэтому очень часто разработчики используют «черновые» тексты, которые потом должны быть выверены и, при необходимости, переведены на другой язык. Обычно это выглядит так: «ну ты напиши пока что-нибудь там, потом подправим».
В данном обзоре я опишу свои впечатления от тестирования 7 онлайн-сервисов для локализации ПО и сравню их по основным показателям (см. таблицу в конце статьи).
Читать полностью »
Рецепт 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-ом
Локализация приложений 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, локализованный для множества локалей. У нашей команды были весьма специфические запросы, и поэтому мы не стали использовать существующие библиотеки для локализации.
Читать полностью »
Дайджест интересных новостей и материалов из мира PHP за последние две недели №22 (15.07.2013 — 28.07.2013)
2013-07-28 в 17:26, admin, рубрики: AspectMock, composer, Go! AOP, HHVM, i18n, kphp, laravel, php, slim, Блог компании Zfort Group, Веб-разработка, дайджест, Новости, подборка, ссылки, метки: AspectMock, composer, Go! AOP, HHVM, i18n, kphp, laravel, PHP, slim, Веб-разработка, дайджест, новости, подборка, ссылки
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Читать полностью »
Локализация и глобализация
2013-01-17 в 22:25, admin, рубрики: .net, i18n, l10n, localization, глобализация, интернационализация, интерфейсы, локализация, разработка, метки: .net, i18n, l10n, localization, глобализация, интернационализация, локализация В статье автор пытается очертить некоторые необходимые для понимания аспекты интернационализации в .NET, особенности китайской и не только локализаций, и несколько забавных моментов.
Читать полностью »