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

[В переводе использованы части интервью, не попавшие в текст на Venture Village.]

Онлайн-сервис для создания презентаций с эффектами масштабирования Prezi со штаб-квартирами в Будапеште и Сан-Франциско недавно представил новую статистику: по состоянию на сентябрь им пользовались 29 млн человек, причем 19 млн пришли в Prezi в 2013 году.

Через месяц после этого CEO и один из основателей компании Петер Арвай приехал в Киев на конференцию IDCEE. Я встретился с ним среди сотен стартаперов, участников, инвесторов и менторов в коридоре НСК «Олимпийский», чтобы узнать немного больше о том, что ждёт сервис и что движет его создателем.

Петер Арвай (Peter Arvai), Prezi: «Креативность перевешивает опыт»

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

Думаю многим известен такой пакет как Babel, либо PyBabel.
Отличный пакет для локализации, который базируются на gettext, как и все остальное ( по крайней мере мне известное) в современном мире.

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

Должен заранее оговориться, что у меня не было никакого ограничения в выборе технологий.
У нас в конечном счете для билда статики используется полный набор — ruby(compass), node(coffee,grunt,requirejs), python(бэкенд и основа всего и вся), шелл скрипты, в общем ограничения нет никакого.
Читать полностью »

Локализация приложений Node.js. Часть 3: локализация в действииОт переводчика: Это деcятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.


Использование строк

Итак, сначала мы подключили к нашему приложению модуль 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: инструментарий и процессОт переводчика: Это деcятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.


В прошлой статье о локализации приложений Node.js мы узнали, как использовать модуль i18n-abide в нашем коде. Наша работа, как программистов, фактически закончилась на том, что мы обернули строки в шаблонах и коде приложения в вызовы gettext(). Но работа по локализации и переводу приложения только начинается.

Инструментарий

Инструментарий локализации команды Mozilla Persona совместим с теми инструментами, которые используются в остальном сообществе Mozilla, и при этом сохраняет преимущества в дружественности и гибкости, присущие Node.

Проекту Mozilla уже почти 15 лет, и наша команда локализаторов и переводчиков одна из самых больших (и клёвых) в мире Open Source. Поэтому у нас широко используются давно привычные, можно даже сказать старинные и причудливые инструменты.
Читать полностью »

Локализация приложений Node.js. Часть 1От переводчика: Это девятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.


image

Знаете ли вы, что продукты и сервисы Mozilla локализованы для 90 языков? Локализация включает в себя:

  • текст, переведённый на региональные вариации и диалекты языков;
  • рендеринг страниц с учётом написания справа налево;
  • пуленепробиваемый дизайн, способный вместить тексты любой длины;
  • заголовки, метки и текст на кнопках, подобранные для локальных аудиторий.

В этой серии из трёх статей, посвящённых локализации, я расскажу о технических аспектах создания многоязычного приложения Node.js.

Мы будем использовать общепринятые термины «интернационализация» (i18n) и «локализация» (l10n). Интернационализация — это набор технических приёмов, делающих возможной последующую локализацию, то есть собственно перевод и адаптацию для конкретного языка.

Mozilla Persona — веб-сервис на Node.js, локализованный для множества локалей. У нашей команды были весьма специфические запросы, и поэтому мы не стали использовать существующие библиотеки для локализации.
Читать полностью »

Всем привет!

Мы занимаемся локализацией программного обеспечения и игр на 30+ языков и часто видим, как разработчики сталкиваются с одной и той же проблемой: в разных языках для передачи одной и той же информации требуется разное количество знаков. В итоге, в интерфейсе пользователя некоторые надписи “не влазят” и их приходится сокращать, либо изменять размеры контролов.

Известно, что, к примеру, немецкий язык “длиннее” английского, а китайский — “короче”. Однако вряд ли у кого-то получится сходу точно сказать на сколько один язык более “знакоёмкий”, чем другой.

Нам стало интересно, мы собрали статистику и получили вот такую табличку с коэффициентами для примерно двадцати языковых пар — под катом.

Померяемся языками, чей длиннее?
Читать полностью »

Доброго времени суток! Публикую пост по просьбе программиста ganjar. Он помог нашему интернет магазину быстро сделать мультиязычность этим самым SLI, о котором пойдет речь. В комментах он ответит на все все вопросы.

SLI (Site Language Injection) — PHP скрипт для быстрого создания мультиязычности на сайте.

Наверное, каждому веб-разработчику хотя бы раз приходилось создавать мультиязычность на сайте. И каждый, кто этим занимался, прекрасно понимает сложности, а также количество времени, которое нужно “убить” на скучную работу по реализации задачи.

Перед тем как начать создавать свое решение перечитал множество статьей о том, как разные программисты решали проблему мультиязычности, и ни в одной из них не нашел универсального способа ее решения. Под каждый новый проект нужно было заново использовать функции “обертки” для текста и ссылок, создавать таблицы с переводами, модернизировать админку для локализации контента. Ни один из описанных вариантов мне не нравился, потому что даже на создание небольших сайтов уходило много времени. Вначале требовалось реализовать функционал для работы сохранения/выбора переведенных текстов, доработать админку для локализации, а потом весь текст и ссылки обернуть в функции для локализации контента.
Читать полностью »

Поддержка мультиязычности в веб проектах — базовые варианты реализации
Занимаясь проектами связанными с веб-разработкой я сталкивался с различными вариантами реализации подержки нескольких языков для сайтов, порталов и веб приложений. Здесь я описал базовые варианты реализации архитектуры БД, которые мне встречались чаще всего.
Думаю для новыичков в веб-разработке эта статья окажется полезной, а тех кто уже имет опыт построения мультиязычных систем приглашаю для обсуждения тех вариантов, которые вы предпочитаете.
Читать полностью »

image

При разработке мультиязычного веб-приложения на AngularJS вам скорее всего понадобится так или иначе решать вопрос с переводом. Сегодня я хотел бы поделиться одним из способов, с помощью которого это можно реализовать.
Читать полностью »

Пролог

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

  1. Сложность внедрения в существующий проект.
  2. Отсутствие средств форматирования локализованных сообщений (за исключением стандартного string.Format).
  3. Невозможность встраивания культурно-зависимых функций. Например, типичную задачу, — подстановку нужной формы слова в зависимости от значения числа, — одними словарями значений не разрешить.

Проанализировав эти проблемы, я пришел к выводу о необходимости создания собственной библиотеки для локализации проектов, которая будет лишена перечисленных выше недостатков. В этой статье я расскажу о принципах ее работы с примерами кода на C#.

Состав библиотеки

Ссылка на проект SourceForge: https://sourceforge.net/projects/open-genesis/?source=navbar

В сборку входят следующие проекты:

  • Genesis.Localization — основная библиотека локализации.
  • Ru — реализация русской локализации (пример).
  • En — реализация английской локализации (пример).
  • LocalizationViewer — программа для демонстрации возможностей библиотеки с возможностью редактирования локализаций.

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


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