Русский
Русский
English
Статистика
Реклама

Локализация продуктов

Отечественный микроконтроллер К1986ВК025 на базе процессорного ядра RISC-V для приборов учета электроэнергии

21.10.2020 12:13:27 | Автор: admin
Добро пожаловать в эпоху RISC-V!

Решения на базе открытого стандарта системы команд RISC-V всё чаще появляются на рынке. Уже в серийном производстве микроконтроллеры от китайских коллег, интересные решения предлагает Microchip с FPGA на борту. Растет экосистема ПО и средств разработки для данной архитектуры. Кажущиеся ранее непоколебимыми лидеры все чаще встречаются в объявлениях о перепродаже, а молодые стартапы привлекают многомиллионные инвестиции. Компания Миландр так же ввязалась в эту гонку и сегодня начала поставку заинтересованным предприятиям инженерных образцов своего нового микроконтроллера К1986ВК025 на базе процессорного ядра RISC-V для приборов учета электроэнергии. В общем картинки, характеристики и прочая информация, а также немного хайпа под катом.



Что такое RISC-V? Слава великому Хабру и его пользователям, которые уже написали много статей по данной теме, и избавили меня от этой участи. Посмотрите RISC-V с нуля. Так же можно ознакомиться с уже серийными изделиями от GigaDevice. А также с критикой и описанием недостатков RISC-V архитектуры со стороны сотрудников ARM.

Микроконтроллер К1986ВК025 на базе ядра RISC-V это второе поколение Миландровских микроконтроллеров для счетчиков электроэнергии. Первое поколение микросхемы К1986ВК2x разработаны на базе процессорного ядра ARM Cortex-M0 и выпускаются уже более 5 лет. На их основе сейчас выпускаются счетчики Милур.

Но время не стоит на месте и новые правила рынка диктуют новые требования к микросхемам. Нужно сделать больше функций новые требования по минимальному функционалу приборов учета. Нужно попасть в требуемую цену, так как конкурировать придется с монстрами типа TI и NXP. Также, если вы следите за этим направлением, то знаете, что новые интеллектуальные счетчики электроэнергии могут отключать электричество ограничивать потребление электроэнергии. А это значит новая система должна обеспечивать и информационную безопасность, чтобы злоумышленники не могли отключить или наоборот включить электричество по своему усмотрению. Все это привело к появлению новой микросхемы К1986ВК025, о которой сейчас и расскажем.

1. Основные характеристики К1986ВК025



Процессорное ядро RISC-V (BМ-310S CloudBEAR)
Тактовая частота 60 МГц
Напряжение питания (основное) 2,2...3,6В
Напряжение питания (АЦП) 3,0...3,6В
Напряжение питание (батарейное) 1,8...3,6В
Объем памяти программ Flash 256+8 Кбайт
Объем памяти ОЗУ 112 Кбайт
Объем однократно-программируемой ПЗУ 16 Кбайт
Метрологический измерительный АЦП сигма-дельта 24 бита, 7 каналов
Аппаратный блок вычисления показаний потребляемой энергии
Инструментальный АЦП 10 бит с датчиком температуры
Интерфейсы 5xUART, 3xSPI, 1хI2C
Число пользовательских выводов 55
Батарейный домен объемом 512 байт с часами реального времени и детектором фиксации проникновения
4 блока 32-разрядных таймеров с 4 каналами захвата событий и ШИМ
Сторожевой таймер
Блок подсчета CRC с изменяемым полиномом
Блок поддержки вычисления симметричных криптографических алгоритмов
Блок генератора случайных чисел
Блок детектора изменения тактовой частоты
Блок детектора изменения напряжения питания (основного и батарейного)
Блок оптического детектора
Блок генерации шума в цепи питания
Защитная экранная сетка
Интерфейс отладки JTAG
Тип корпуса QFN88 (10 х 10 мм)
Рабочая температура от минус 50С до +85С

Структурная схема
image

2. Процессорное ядро


Как уже было отмечено, сердцем микросхемы является 32 битное процессорное ядро RISC-V (в конфигурации RV32IMC) с обозначением BM-310, которое было разработано нашими хорошими друзьями из компании CloudBEAR. Это не единственное их процессорное ядро. Ребята предлагают целую линейку ядер, начиная от небольших микроконтроллерных ядер и заканчивая высокопроизводительными 64 битными многопроцессорными кластерами.



Компания Миландр ведет разработку новых продуктов на базе ядер из всех весовых категорий портфолио CloudBEAR. В кремнии сейчас доступны только К1986ВК025 на базе ядра BM-310. Но и другие продукты, в том числе на базе 64 битных ядер скоро увидят свет. Ядро BM-310 это 32 битное RISC-V ядро с трехстадийным конвейером, с возможностью выполнения операции умножения за два такта. Поддержка операций с плавающей запятой в данной версии микросхемы не была реализована (хотя ядро позволяет это реализовать). Производительность ядра BM-310 на тесте CoreMark составляет 3,0 CoreMark/МГц. Таким образом его можно сравнить с ARM Cortex-M3. При этом ядро в новой микросхеме занимает всего 0,3 мм2. А с учетом того, что большинство задач по вычислению параметров потребления электроэнергии выполняются аппаратно контроллером метрологического АЦП, то основная вычислительная мощность ядра может использоваться для коммуникационных задач в приборе учета.

3. Цена


Цена один из основных критериев для микросхемы. Основной вклад в стоимость микросхемы вносит кристалл. Чем больше его площадь тем дороже, чем более сложная технология изготовления тем он тоже дороже. Но при этом, чем более сложная технология, тем на меньшей площади можно реализовать требуемый функционал, а значит будет дешевле. В общем выбор технологии не всегда очевиден. Микросхемы первого поколения К1986ВК2x были разработаны на 180 нм. Примерно треть кристалла относилось к аналоговой части (собственно сами сигма-дельта АЦП, питание, IO) и при переходе на более тонкие процессы эта часть практически не уменьшается. Но в соответствии с новыми требованиям объем функционала должен быть увеличен практически в 4 раза. В новой микросхеме реализовано 256 Кбайт Flash против 64К, ОЗУ 112Кбайт против 16К, 5 блоков UART против 2, 3 блока SPI против 1 и еще криптография В общем, после долгих прикидок и расчетов было принято решение, что если уделить особое внимание площади, то на технологии 90 нм можно попасть в требуемый коридор стоимости, на технологиях 65 нм или ниже было бы легче, но бОльшие затраты на разработку в целом сделали бы проект более рискованным по финансам.

В результате мы получили действительно компактный кристалл, который по площади более чем в 2 раза меньше предыдущего. И хотя изначально были и более амбициозные планы уменьшить кристалл до 8 мм2, полученный результат тоже очень хорош. Именно из-за амбиций форма кристалла получилась прямоугольной, а не квадратной. Верхняя часть кристалла отдана под аналоговые блоки, и ее топологию прорисовывали отдельно под изначально планируемые размеры, а когда стало понятно, что цифра не влезет, то кристалл стал расти в прямоугольник. Та же картина была и с микросхемами первого поколения. Постоянство признак мастерства.

4. Метрологический АЦП


Если процессорное ядро это сердце микроконтроллера, то метрологическое АЦП это его мозг, так как именно он определяет предназначение микросхемы. В микроконтроллере реализован блок из 7 каналов 24 битных АЦП. Все каналы разбиты на три пары F0-F2 (канал напряжения и канал тока) для 3-х фазной сети и еще одного независимого канала тока (отнесен к F0). Каждый из 7 каналов оцифровывает входной сигнал с выходной частотой отсчетов до 16 кГц. Кроме этого, в каждой паре каналов F0-F2 реализована возможность рассчитывать среднеквадратические значения тока/напряжения, вычислять активную и реактивную мощности, вычислять потребленную активную и реактивную энергию, частоту сигнала в каналах напряжения, превышение пикового значения, падение сигнала ниже установленного уровня. Эти дополнительные блоки позволяют снизить нагрузку на процессор, что в свою очередь снижает потребляемую мощность всего кристалла. Так же каждый АЦП имеет независимый канал DMA, обеспечивая возможность сохранения данных в ОЗУ без участия процессора.

Список основных параметров и возможностей блока сигма-дельта АЦП:
7 независимых АЦП с выходной частотой отсчетов 4/8/16 кГц (4 канала тока и 3 канала напряжения). Эти каналы образуют 3 блока для измерения параметров каждой фазы F0-F2.
В блоке каналов F0 реализуем автоматический выбор канала тока (который имеет максимальное значение) для последующих расчетов мощностных характеристик. Если разница токов превышает 6%, то формируется прерывание. Кроме этой функции в остальном блоки F0-F2 идентичны.
Все каналы АЦП имеют независимые калибровочные коэффициенты наклона характеристики.
Каждый канал тока имеет независимый интегратор.
В каждом блоке АЦП (F0-F2) независимо рассчитывается период сигнала по каналу напряжения. Количество периодов, в течение которого рассчитывается эта величина, можно задавать равным 1/2/4/8/16/32/64/128 периодам.
В каждом блоке есть проверка на пропадание периодического сигнала в канале напряжения.
В каждом блоке проверяется просадка напряжения ниже заданного уровня, а также превышения сигнала в каналах тока и напряжения установленного лимита.
Есть возможность скорректировать фазы сигналов в каналах напряжения с точностью до 0,02%.
Вычисляются среднеквадратические, квадрат среднеквадратических значений токов и напряжений, а также их независимая калибровка.
При вычислении активной и реактивной энергии значение накопленной энергии в течение периода сохраняется в отдельных регистрах (для положительной и отрицательной энергии).
Вычисляются полная мощность и полная энергия.
Вычисляется сдвиг фаз по отношению к фазе 0.

Таким образом, основные функции по расчету потребленной энергии выполняются с минимальным участием процессора.

5. Информационная безопасность


Как уже было отмечено ранее новые интеллектуальные счетчики электроэнергии должны уметь отключать потребителя от сети по соответствующей команде. Так же передача показаний потребленной энергии осуществляется автоматически по различным каналам связи. А это значит что вопросы информационной безопасности будут стоять особенно остро. В Постановление Правительства РФ от 19.06.2020 N 890 "О порядке предоставления доступа к минимальному набору функций интеллектуальных систем учета электрической энергии (мощности)" (вместе с Правилами предоставления доступа к минимальному набору функций интеллектуальных систем учета электрической энергии (мощности)) сформулированы минимальные функциональные требования для приборов учета электроэнергии. Но в части информационной безопасности они пока не сформулированы (ожидаются до конца 2020 года). Поэтому при разработке микросхемы мы опирались на требования ФСБ к средствам криптографической зашиты информации для некорректируемых регистраторов (СКЗИ НР). Реализованный функционал на наш взгляд избыточен, а если где-то и что-то и не предусмотрели, то можно реализовать это программно. Но в любом случае в части обеспечения специальных требований микросхема находится на уровне карточных и паспортных чипов. Поэтому в данной микросхеме реализуются все требования необходимые для бытовых электросчетчиков как в части собственно задач измерения,, она может найти свое применение и в других областях тахографах, электронных пломбах, идентификации и аутентификации элементов IoT. Всю спецуху в микросхеме можно разделить на две части криптография и инженерная защита.

5.1. Криптография


На микросхеме реализовано всё для защиты информации по ГОСТ Р 58940-2020 (СПОДЭС), в том числе:
Блоки сопроцессоров для поддержки блочных шифров Кузнечик, Магма и AES;
Блок генератора случайных чисел;
Блок вычисления CRC по произвольному полиному;
Блок специальной энергозависимой памяти ключевой информации с батарейным питанием
Однократно программируемая ПЗУ первоначального загрузчика, в которой реализуется уникальная идентификация каждой микросхемы.
Симметричная криптография реализуется на базе сопроцессоров, которые ускоряет самые тяжёлые операции. Это позволяет получить скорость шифрования с пиковой производительностью до 10 Мбит/с. При необходимости алгоритмы ассиметричной криптографии реализуется программным путем. В общем про идентификацию, аутентификацию шифрование, обновление прошивок нужно писать отдельную статью, что и сделаем потом.

5.2. Инженерная защита


Для затруднения различных инженерных методов воздействия как на сам счетчик электроэнергии, так и на отдельно микросхему реализованы специальные методы инженерной защиты:
3 вывода для детекторов проникновения (электронные пломбы)
Блок детектора изменения тактовой частоты
Блок детектора изменения напряжения питания
Блок оптического детектора
Блок генерации шума в цепи питания
Защитная экранная сетка
Защита от несанкционированного считывания памяти

Выводы для детекторов проникновения это три отдельных вывода микроконтроллера через которые фиксируются сигналы от внешних электронных пломб, даже в случае отсутствия питания. Таким образом, какие-либо попытки механического воздействия на счетчик будут обнаружены и зафиксированы. Кроме механизмов защиты корпуса прибора реализуется методы защиты уже самой микросхемы от более изощренных атак.
Для исключения ситуации с разгоном или наоборот торможением тактовой частоты процессора реализован детектор изменения частоты, который непрерывно сравнивает внешний источник тактирования с внутренним RC генератором. И при возникновении отклонений выходящих за заданные границы фиксирует это событие или может переключить микросхему на внутренний (реализован на кристалле) аварийный источник тактирования. Гличивание сигнала тактирования парируется системой фильтрации входного сигнала. Для корректного запуска микросхем по включению основного питания, а так же обнаружения факта выхода питания из допустимых диапазонов реализован блок детектора напряжения. Также блок обеспечивает контроль уровня заряда батарейки, на которой работает микросхема при отсутствии основного питания. Таким образом исключаются какие-либо манипуляции или попытки сбить работу микросхемы через питающие напряжения. Для исключения утечки ключевой информации по паразитным каналам, например цепям питания (подробнее можно почитать тут ) в микросхеме реализован блок зашумления основного питания с помощью псевдослучайного генератора. Блок формирует случайным образом изменяемое дополнительное потребление, маскируя основной профиль потребления. Для противодействия более серьезным полу-инвазивным и инвазивным атакам (атака на микросхему когда есть доступ к кристаллу микросхемы или даже отдельным цепям кристалла) реализован оптический детектор. Так как обычно кристалл микросхемы в корпусе, то доступ света к нему невозможен. Если же корпус микросхемы вскрыт и на кристалл попадает свет, то оптический датчик сформирует сигнал тревоги. Если же злоумышленник прошел еще дальше, то для ограничения доступа к внутренним цепям микросхемы в верхних слоях топологии кристалла реализована защитная стека, в которой перемежаются цепи земли, питания и информационная цепь, по которой передается случайный полином. Кстати именно по этому в верхних картинках приведен рисунок топологии из САПР, а не реальная фотография кристалла.
Так как реальная фотография кристалла выглядит вот так.



Или чуть поближе



Для сравнения как защитная сетка выглядит в чипе для карточек от ST (серия ST23).


В случае физического нарушения целостности сетки так же формируется сигнал тревоги. Программное обеспечение должно контролировать все сигналы тревоги и в случае их возникновения фиксировать факт атаки. Так же микросхемы может быть настроена так, что бы криптографическая ключевая информация была автоматически стерта, при обнаружении фактов атаки. Все это требует обеспечения доверенности ПО. Для пользовательской программы в микросхеме реализовано 16 Кбайт однократно программируемой ПЗУ (по принципу анти-фьюз) и 256+8 Кбайт перепрограммируемой Flash. Запуск микросхемы происходить из встроенной однократно программируемой памяти. Изначально при изготовлении микросхем, данная память чистая, и для серийный изделий загрузка стартового доверенного загрузчика будет происходит при тестировании и отбраковке. Это позволяет обеспечить уникальную идентификацию каждой микросхемы, гарантировать целостность метрологического и криптографического ПО и являющаяся корнем доверия для пользовательской программы. А так же при необходимости обеспечить защиту от считывания пользовательской программы во Flash. На время исследования для инженерных образцов в стартовую память записан типовой загрузчик для серии 1986ВЕ. При необходимости может быть выпущена отдельная партия микросхем с стартовым загрузчиком адаптированым под задачи потребителя.

6. Средства разработки и документация


Предварительный вариант спецификации доступен по ссылке.

Для первоначального знакомства с микроконтроллером разработана демонстрационная плата. image

Это плата предназначена для прототипирования приборов учета, большое число ВЧ разъемов предназначено для подключения измерительных трансформаторов. Это позволяет не завязываться на какой-то конкретный их тип, и легко подключить именно те трансформаторы или шунты, которые применяют разработчики приборов учета. Так же это позволяет подключить различные измерительные приборы для снятия точностных характеристик АЦП. Кроме того отсутствие высокого напряжения (220В) на плате снимает с нас ответственность, если кого то стукнет. Для более массового продвижения микросхемы ведется разработка миниатюрной тестовой платы в формате arduino uno или mega.

6.1. Eclipse+GCC


Разработка программ может осуществляться в среде на базе Eclipce с компилятором GCC и отладкой через OpenOCD, GDB. Для отладки в среде Eclipse подходят классические отладчики J-Link и их клоны. Так же подходят отладчики производства компании Миландр.

6.2. IAR


Так же разработку можно осуществлять в более привычной для многих среде IAR Embedded Workbench, которая включает средства отладки, компиляции и оптимизации. Для отладки используются либо фирменный шнурок I-JET for RISC-V, либо если заказать Evaluation Kit for RISC-V, то вместе с ним вы получите I-jet Lite debug probe (который поддерживает в том числе и ARM), а так же 30 дневную лицензию на саму среду.

Более подробную информацию по настройке и запуску сред IAR и Eclipse для работы с микроконтроллером К1986ВК025 можно найти тут.

7. Что нужно для получения образцов


Это посылочки, тем кто ждет эти микросхемы, а так же тем, кто наоборот


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

Заключение


Вчерашние смелые идеи уже сегодня воплощаются в технических решениях и становятся нормой жизни. Мир, в котором мы с Вами живем, не позволяет стоять на месте. Появление описанной выше микросхемы имеет огромное значение для всего сообщества RISC-V. Я поздравляю всех, кто причастен к разработке данной микросхемы с ее рождением. А так же, надеюсь, что потребители (разработчики приборов учета) воспримут ее положительно, и невзирая на скепсис по отношению к отечественным микросхемам, я уверен мы можем конкурировать с иностранными компаниями.

Добро пожаловать в эпоху RISC-V!
Подробнее..

Как локализовать ролик об игре

19.01.2021 16:11:16 | Автор: admin

Главные секреты и чек-лист для разработчика

Когда вы продвигаете свою игру на локальных рынках логично, чтобы рекламные материалы об игре были переведены на родной язык целевой аудитории. Допустим, что вы уже перевели основной контент для страницы игры в сторе: локализовали описание, пересняли скриншоты. И вот дело дошло до локализации ролика А с ним всё немного сложнее. Давайте разберёмся с типичными вопросами, которые возникают при решении задачи локализовать ролик об игре.

Переснимать ли геймплей?

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

Напрашивается идея: а почему бы не использовать ту же самую запись геймплея, что в оригинальной версии? Может быть, элементы с текстами можно просто перекрыть заплатками с локализованной версии игры?

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

Похоже на толковое решение, правда? Действительно, иногда это может сработать Но на этот приём далеко не всегда можно рассчитывать. И вот почему.

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

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

  • Области с текстом могут задеваться анимированными эффектами, присутствующими в кадре постоянно или появляющимися в разные моменты при прохождении игры.

Рассмотрим третий случай на примере.

В ролике об игре One Life Story есть текстовые элементы мудрые изречения, сопровождающие каждый уровень и подсказывающие, как решить головоломку. Обратите внимание, что на уровнях 48 и 54 в геймплее присутствуют светлые точки, похожие на снежинки (0:17-0:25 в видеоролике выше). Снежинки проходят прямо под текстом.

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

Что делать, если сама игра не локализована на язык целевой аудитории?

Не исключена ситуация, когда вы только прощупываете рынок определённой страны и решаете для начала локализовать только рекламные материалы (и ролик в том числе), оценить динамику установок, LTV пользователей и только затем определиться, стоит ли инвестировать в локализацию игры на этот язык. В этом случае язык UI вашей игры не будет совпадать с родным языком целевой аудитории, и здесь есть два варианта. Первый показать UI в ролике на том языке, который в игре есть. Второй отключить UI в геймплее для ролика.

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

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

Ролик без UI: в чём подвох?

Подводный камень у второго варианта вот какой. Возможно, блоки с текстами окажутся критически важным при демонстрации определённых игровых возможностей или особенностей. Вот пример: одна из фишек VR-игры Guard of Wonderland poetic narrative. Наглядно показать эту особенность в ролике, не демонстрируя собственно текстовые элементы, было бы затруднительно.

Правда, это довольно редкий случай. Чаще бывает так, что показать в ролике те или иные особенности игры можно иносказательно или метафорически, используя анимированную графику вместо записи геймплея. Это, кстати, довольно перспективное решение, упрощающее последующие локализации ролика на любой язык. Посмотрите, например, ролик об игре Wild West: Steampunk Alliances это как раз пример того, как в ролике можно совсем не использовать запись геймплея.

Только не забудьте предварительно свериться с правилами площадки, на которой планируется размещение ролика, чтобы ваш анимированный видеоряд им соответствовал.

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

Комбинирование сцен с включённым и отключенным UI может казаться странным в теории, но на практике всё должно получиться хорошо. Например, в трейлере об игре Pixel Wars сцены с отключенным UI (ими ролик начинается) сочетаются со сценами, где UI присутствует. Как видите, такой подход не вредит целостности визуального ряда.

Как локализовать озвучку: три совета

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

Первый совет: не поддавайтесь соблазну отказаться от голосовой озвучки в локализации, если она есть в оригинальном видео. Скорее всего, закадровый голос в вашем ролике не просто украшение, а функциональный инструмент. И с помощью озвучки вы доносите до зрителя кое-что важное, будь то словесное пояснение по функционалу игры или нужное настроение, которое диктор создаёт интонацией. Задумайтесь: что зритель усвоит из ролика, если в нём исчезнет озвучка? Будет ли его впечатление таким же полным, как у зрителя, посмотревшего озвученный ролик?

Второй совет: перевод и озвучку делайте только с носителями целевого (не исходного!) языка. Обратитесь к профессиональному переводчику, для которого язык вашей целевой аудитории является родным, чтобы не допустить ни грубых смысловых ошибок, ни стилистических шероховатостей. И, конечно, озвучьте текст также с диктором-носителем. Так ваш ролик будет звучать без акцента и с интонациями, свойственными мелодике речи именно на вашем целевом языке.

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

Как синхронизировать текст озвучки и видеоряд

Озвучивание одной и той же фразы на разных языках может занимать разное количество времени.

Проще говоря, если в вашем 30-секундном трейлере на английском языке 5 сцен, которые сопровождают пять фраз длительностью 5 секунд каждая (25 секунд звучания плюс секундные паузы для переходов между сценами) не исключено, что на немецком у вас получится три фразы по 6 секунд и две по 7. Это уже 32 секунды даже без учёта пауз, причём 7-секундные фразы вылезают за 5-секундные границы сцены в видеоряде. Так себе ситуация, правда?

Идеальный способ решить такую проблему синхронизировать видеоряд под озвучку на новом языке.

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

То есть, если озвучка для 5-секундной геймплейной сцены занимает 6,3 секунды не ускоряйте речь диктора и не режьте паузы. Просто сделайте видеоряд на 2 секунды дольше, например за счёт показа дополнительных секунд геймплея.

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

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

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

Лучше всего позаботиться об объёме текста на этапе его перевода, а диктору позволить читать в естественном темпе.

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

К слову, подстелить себе соломку на этот случай можно ещё при создании оригинального ролика. Постарайтесь сделать дикторский текст не очень многословным, не очень плотным, избегая слишком быстрого темпа чтения. И предусмотрите между сценами паузы достаточной длительности хотя бы по секунде, но можно и больше. Это будет вашим запасом на случай, если локализованная озвучка окажется чуть длиннее оригинальной.

Посмотрите, например, как удачно благодаря этому приёму удалось локализовать ролик об игре 100 Doors XL.

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

Локализация видео это всегда так сложно?

Как мы уже писали, локализовать ролик и сделать ролик понятным аудитории из другой страны не синонимы. Полная локализация это демонстрация геймплея на целевом языке, перевод всех текстов в кадре и, конечно, переозвучка ролика с диктором-носителем целевого языка. Локализация ролика это фактически его пересоздание на новом языке, в ходе которого вы проходите те же производственные стадии, что при создании оригинальной версии видео.

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

Повлияет ли это на решение зрителя об установке игры? Трудно дать однозначный ответ.

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

Сколько стоит локализация ролика

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

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

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

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

Чек-лист: 8 вещей, о которых нужно не забыть при локализации ролика

  1. Локализовано ли название игры? Если да, не забывайте называть игру в ролике не универсальным, а именно локализованным названием. Оно может упоминаться и в озвучке, и в видеоряде. Если название игры используется в логотипе не забудьте заменить лого в локализованном ролике.

  2. Локализована ли сама игра? Если да подумайте над тем, чтобы показать в ролике геймплей на нужном языке.

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

  4. Есть ли в ролике плашки с текстами и призывы к действию? Если да не забудьте перевести эти тексты и подобрать для них гарнитуру, совместимую с целевым языком.

  5. Есть ли у вас в ролике бейджи магазинов приложений? Если ваша игра для мобильных ОС, то наверняка есть. Не забудьте заменить оригинальные бейджи на переведённые, причём переводить их самостоятельно не нужно. Официальные версии бейджей на разных языках можно найти в гайдлайнах App Store и Google Play.

  6. Есть ли в оригинальном ролике голосовая озвучка? Если да не забудьте перевести её текст и озвучить перевод с диктором-носителем целевого языка.

  7. Жёсткий ли у вас тайминг? Например, ограничение рекламной платформы тизер до 15 секунд, или требование App Store трейлер до 30 секунд. Если ограничение по хронометражу есть, переведите текст озвучки с оглядкой на него.

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

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

Об авторе

Статья написана в Alconost, где локализуют игры на 70+ языков и делают видеоролики об играх в любом жанре и на любом языке.

Подробнее..

Перевод Локализационное тестирование зачем оно нужно приложению или сайту?

02.10.2020 10:21:39 | Автор: admin


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

Сегодня США уже больше не является крупнейшим игроком на рынке мобильных приложений. Китай и Индия соревнуются за звание мирового лидера. И сегодня нужно, и даже не один раз, проверять все языковые версии перед релизом. Ведь цена даже крошечной ошибки может быть очень высока.

О тестировании локализации компании-разработчики, как правило, задумываются не сразу. И всё же этот процесс нужно обязательно включить в разработку. Давайте подробнее рассмотрим, что представляет собой тестирование локализации, какие важные этапы оно включает и зачем вообще оно нужно.


Что такое локализационное тестирование?


Если коротко, локализационное тестирование это проверка содержимого приложения или сайта на соответствие лингвистическим, культурным требованиям, а также специфике конкретной страны или региона.

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

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

Почему локализационное тестирование так важно?



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

Локализация повышает лояльность клиентов к вашему бренду. Вот конкретные цифры: около 72,1% пользователей Интернета предпочитают делать покупки на сайтах на своем родном языке. Даже те, кто хорошо владеет английским, по-прежнему предпочитают просматривать веб-страницы на своем родном языке.

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

На что следует обратить внимание во время тестирования локализации?


Тестирование локализации это далеко не только проверка орфографии, грамматики и корректности перевода. Чтобы ничего не упустить в этом процессе, мы сделали чек-лист самых важных вещей. Итак, приступим.

Подготовительный этап

Чтобы тестирование локализации прошло гладко, к нему нужно подготовиться.

  • Подготовьте для тестировщиков необходимую документацию и все сведения о сайте или продукте, которые смогут пригодиться.
  • Создайте глоссарий и память переводов, чтобы помочь тестировщикам правильно истолковать используемые термины.
  • Если приложение или сайт уже переводились раньше, приложите предыдущие версии в целях ознакомления. А ещё можно воспользоваться специализированными сервисами или базами данных для хранения всех версий перевода и организовать к ним доступ.
  • Создайте трекер багов документ или платформу, где вы будете фиксировать все баги, найденные во время тестирования локализации. Так проще контролировать исправление ошибок и общаться с остальными членами команды.


Проверка региональных и культурных особенностей

Это очень важный этап в тестировании локализации. Вам понадобятся скриншоты либо локализованная сборка приложения. Нужно проверить следующее:
  • Соответствие формата даты и времени выбранному региону.
  • Форматы для телефонных номеров и адресов.
  • Цветовые схемы (это важно, так как один и тот же цвет может иметь разные значения в различных культурах). Например, белый цвет символизирует удачу в Западных странах, но в азиатской культуре он ассоциируется с трауром.
  • Соответствие названий продуктов региональным стандартам.
  • Формат валюты.
  • Единицы измерения.


Лингвистическая проверка

На этом этапе проверяются языковые особенности. Нужно убедиться в том, что:
  • На всех страницах сайта или экранах приложения используется одинаковая терминология.
  • Отсутствуют грамматические ошибки.
  • Отсутствуют орфографические ошибки.
  • Соблюдены правила пунктуации.
  • Используется правильное направление текста (справа налево или слева направо).
  • Указаны правильные названия торговых марок, городов, мест, должностей и прочее.


Пользовательский интерфейс или внешний вид

Это нужно для того, чтобы ваш программный продукт смотрелся безукоризненно на любом языке. Обязательно удостоверьтесь в следующем:
  • Все текстовые надписи на картинках локализованы.
  • Макет языковых версий совпадает с оригиналом.
  • Переносы и разрывы строк на страницах/экранах размещены правильно.
  • Диалоги, всплывающие окна и уведомления отображаются корректно.
  • Длина строк не превышает существующие ограничения и текст отображается правильно (иногда текст перевода длиннее оригинала и не помещается на кнопках).


Пример
Команда Alconost столкнулась с одним таким случаем во время работы с DotEmu и их игрой Blazing Chrome. В испанской версии количество символов в переводе текста кнопок превосходило ограничения для них. Слово Далее было слишком длинным на испанском: Siguiente. Команда Alconost обнаружила эту ошибку во время тестирования локализации и предложила заменить Siguiente на Seguir для корректного отображения в интерфейсе. Именно благодаря обнаружению подобных проблем и их устранению интерфейс программного продукта и эффективность взаимодействия с пользователем улучшаются.





Функциональность

Это один из завершающих и важнейших этапов, когда нужно проверить правильно ли работает локализованное приложение. Советуем обратить внимание на следующее:
  • Функционал локализованного приложения или сайта.
  • Н=Гиперссылки (убедитесь, что они работают во всех языковых версиях, легальны для указанного региона и не будут блокироваться местными или региональными файрволами).
  • Работу вводных функций.
  • Поддержку специальных символов для различных локалей и языков.
  • Работу сочетаний клавиш.
  • Функцию сортировки списков.
  • Поддержку различных шрифтов.
  • Поддержку различных разделителей формата.


Какие трудности могут возникнуть во время тестирования локализации?


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

Одна из главных сложностей это недостаточное знание целевого языка. Естественно, знать все языки мира невозможно. Но есть компании по локализации, интернационализации и переводу. Например, Alconost предлагает своим клиентам полный спектр услуг по локализационному тестированию и оценке качества. Локализованные тексты всегда дополнительно проверяются переводчиками-носителями языка, которые также имеют большой опыт тестирования локализации. И можно быть увереным на 99,99%, что все региональные особенности будут учтены.

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

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

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

Нужна помощь с локализацией / переводом? Мы в Alconost всегда рады помочь!

О нас


Alconost профессионально занимается локализацией игр, приложений и сайтов на более 70 языков. Лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджмент проектов 24/7, любые форматы строковых ресурсов.
Мы также делаем видеоролики.

Подробнее
Подробнее..

Интернационализация и локализация приложения на KotlinNative

22.03.2021 18:15:22 | Автор: admin

, или добрый день по-японски.

Как бы не был популярен английский язык, всё же пользователям комфортнее и привычнее в родной языковой среде.

Поэтому далее мы пошагово рассмотрим процесс адаптации консольного приложения для Linux на Kotlin/Native к русской и английской локали.

Поможет нам в этом старый-добрый GNU gettext.

В итоге убедимся, что это совсем не страшно.

Заодно посмотрим интеграцию с библиотеками на C, которая значительно расширяет возможности Kotlin/Native.

Что напишем: переводчик количественных числительных на японский язык.

Что ожидается от читателя: знание языков программирования Kotlin, C, базовый уровень знакомства с ОС Linux (в частности Bash).

Что понадобится в процессе: любой дистрибутив Linux, любая версия IntelliJ IDEA, установленный пакет gettext-devel или аналогичный.

Мотивация

Собственно почему Kotlin/Native и причём тут японский

Где-то полгода медленно и печально изучаю японский язык по учебнику Minna no Nihongo: частью ради перевода текста песен, частью просто из интереса к культуре.

Позже решил перейти с системной разработки на прикладную, с десктопа на мобильные платформы, соответственно с C++/Qt/STL на Kotlin/JVM/Android SDK.

Теперь хочу два этих занятия совместить, написав для себя программы для помощи в изучении японского. Конечно, уже много готовых, но NIH-синдром ведь не что-то плохое, правда?

Раньше я не задумываюсь использовал бы связку Qt/QML/C++: она позволяет быстро и эффективно решать в общем-то любые задачи и на любой платформе.

Однако Qt всё больше поворачивается спиной к Open Source, вот и решил пора валить попробовать что-то другое.

И тут в процессе изучения Kotlin узнал про Kotlin/Native.

Соответственно, первая программа-помощник будет именно на нём.

Что такое Kotlin/Native

Изначально Kotlin выступал в качестве "более лучшей" (С) Java, и целиком опирался на платформу JVM.

Однако затем компания JetBrains, разработчик Kotlin, решила адаптировать набирающий популярность язык и под другие платформы.

В частности, под веб (Kotlin/JS) и под "натив" (Kotlin/Native).

Kotlin/Native появился в марте 2017 года, кстати ровно четыре года назад.

Он позволяет компилировать код на Kotlin в нативный код с помощью LLVM, без зависимости от виртуальной машины JVM и других библиотек.

Далее мои субъективные впечатления по опыту разработки демонстрационного приложения, так что буду рад исправлениям и дополнениям.

Из плюсов:

  • исходный код под пермиссивной открытой лицензией (Apache-2.0 license)

  • работа на всех поддерживаемых LLVM платформах, в частности iOS и десктопы

  • генерирует единственный исполняемый файл без сторонних зависимостей

  • низкое потребление системных ресурсов

  • доступны все базовые "вкусности" Kotlin вроде коллекций и функционального программирования

  • есть прозрачный interop с языком C

  • как следствие: доступны low-level функции платформы, в частности POSIX

Из минусов:

  • стандартная библиотека весьма бедная по сравнению с огромной JVM, многое придётся писать с нуля (пример: оставьте только пункт Native тут)

  • нет стабильной библиотеки для GUI, хотя есть некоторые привязки через C interop (GTK, libui)

  • слабый инструментарий по сравнению с той же Android Studio, например нет той же локализации

  • относительно долгое время сборки

Больше о Kotlin/Native можно почитать тут, а примеры доступны на Github.

Терминология

Интернационализация (i18n): подготовка приложения к локализации, обычно выполняется разработчиками.

Локализация (l18n): Процесс перевода и адаптации контента приложения для конкретных языков, обычно выполняется переводчиками.

Важно: "контент" тут это не только строки, но и направление текста, формат даты, чисел и так далее. В данной статье ограничусь только строками.

Что такое GNU gettext

Этот пакет из нескольких утилит, библиотек и регламентов.

Является частью GNU Translation Project.

Состоит из:

  • правила оформления исходного кода для последующей интернационализации

  • утилиты для генерации текстовых файлов с локализуемыми строками

  • кроссплатформенная нативная библиотека для извлечения переводов в runtime

  • правила дистрибуции бинарных файлов с переводами

Почему GNU gettext

Интернационализация в Kotlin/JVM для Android использует средства Android SDK, в частности строковые ресурсы, и завязана на JVM.

Поэтому для Kotlin/Native эти средства недоступны.

В Qt есть собственный инструментарий, но его не получится использовать вне Qt, тем более с отличным от C++ языком.

Поэтому остаётся GNU gettext:

  • универсальный (поддерживается множество языков программирования)

  • кроссплатформенный (Win/Mac/Linux, есть Android/iOS версия)

  • стабильный в силу почтенного возраста

  • с подробной документацией

  • со вспомогательными приложениями

Демонстрационный проект

Суть: консольная программа пока только под Linux, чтобы не переусложнять код.

Функционал: читает натуральное число из аргумента командной строки или stdin, и переводит его в количественное числительное на японском.

Число может содержать специфичные для локали разделители тысяч, которая программа выводит при запуске.

Скачать проект можно на Github и затем открыть в IntelliJ IDEA.

Характеристики исполняемых файлов

Для начала время полной сборки: ~18 сек на конфигурации Ryzen 3900X + 32GB DDR4-3600 + NVM-E SSD. На мой взгляд многовато для такого маленького проекта и такой конфигурации.

Тут можно вспомнить о преимуществах скриптовых языков, которые компилировать не надо.

Теперь посмотрим свойства исполняемого файла для отладочной и релизной конфигураций:

Размеры скомпилированных исполняемых файлов
$ file build/bin/native/debugExecutable/JapaneseNumeralTranslator.kexebuild/bin/native/debugExecutable/JapaneseNumeralTranslator.kexe: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.16, BuildID[xxHash]=a0971dbf76e9db60, with debug_info, not stripped$ ldd build/bin/native/debugExecutable/JapaneseNumeralTranslator.kexelinux-vdso.so.1 (0x00007fff890d7000)libdl.so.2 => /lib64/libdl.so.2 (0x00007f348e47a000)libm.so.6 => /lib64/libm.so.6 (0x00007f348e334000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f348e312000)libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f348e2f7000)libc.so.6 => /lib64/libc.so.6 (0x00007f348e12c000)/lib64/ld-linux-x86-64.so.2 (0x00007f348e4a0000)libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f348e112000)libutil.so.1 => /lib64/libutil.so.1 (0x00007f348e10b000)libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f348e0d1000)librt.so.1 => /lib64/librt.so.1 (0x00007f348e0c6000)$ file build/bin/native/releaseExecutable/JapaneseNumeralTranslator.kexe build/bin/native/releaseExecutable/JapaneseNumeralTranslator.kexe: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.16, BuildID[xxHash]=c76aff5e0db3fdae, not stripped$ ldd build/bin/native/releaseExecutable/JapaneseNumeralTranslator.kexe linux-vdso.so.1 (0x00007ffff69c2000)libdl.so.2 => /lib64/libdl.so.2 (0x00007f41ad9dd000)libm.so.6 => /lib64/libm.so.6 (0x00007f41ad897000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f41ad875000)libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f41ad85a000)libc.so.6 => /lib64/libc.so.6 (0x00007f41ad68f000)/lib64/ld-linux-x86-64.so.2 (0x00007f41ada03000)libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f41ad675000)libutil.so.1 => /lib64/libutil.so.1 (0x00007f41ad66e000)libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f41ad634000)librt.so.1 => /lib64/librt.so.1 (0x00007f41ad629000)$ ls -lh build/bin/native/debugExecutable/JapaneseNumeralTranslator.kexe-rwxr-xr-x. 1 eraxillan eraxillan 1.8M Mar  7 13:24 build/bin/native/debugExecutable/JapaneseNumeralTranslator.kexe$ ls -lh build/bin/native/releaseExecutable/JapaneseNumeralTranslator.kexe -rwxr-xr-x. 1 eraxillan eraxillan 529K Mar  7 13:24 build/bin/native/releaseExecutable/JapaneseNumeralTranslator.kexe

Тут всё в порядке, бинарники скромные по размеру и без каких-либо сторонних зависимостей.

Отладка проекта

Она не работает, по крайней мере в Community Edition.

Просто игнорируются точки останова, хотя судя по выводу команды file отладочные символы в исполняемом файле есть.

Насколько я понял, соответствующий плагин доступен только в платной редакции IDE, которая пока для меня избыточна.

Прошу поправить, если ошибаюсь.

Так что для написания демо пришлось обходиться printf-driven отладкой, ну мне не привыкать после Android AOSP.

Интернационализация

В случае нашего проекта нужно лишь все локализуемые строки "обернуть" в вызов функции gettext().

Для краткости можно сделать синоним этой функции, например tr(), это общепринятая практика.

import kotlinx.cinterop.*import platform.linux.*import platform.posix.*fun tr(key: String): String = gettext(key)?.toKString() ?: ""

Понадобится ещё служебный код для работы с POSIX-локалями, он находится в файле Locale.kt.

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

Кстати, посмотреть названия локалей можно с помощью команды locale -a.

Перевод локализуемых строк

Я написал Bash-скрипты для генерации с нуля и обновления файлов gettext:

Далее вкратце опишу основные шаги, которые они выполняют.

Генерируем pot-файл ("шаблон"), который содержит базовую информацию о программе и собственно строки нуждающиеся в переводе.

# Extract all tr() wrapped strings to po/jnt.pot filexgettext --keyword=tr --language=java \    --add-comments --sort-output \    --copyright-holder='Alexander Kamyshnikov <axill777@gmail.com>' \    --package-name='Japanese numeral translator' \    --package-version='1.0' \    --msgid-bugs-address='axill777@gmail.com' \    -o po/jnt.pot --files-from=KT_FILES

Генерируем po-файл (текстовый перевод):

# Generate locale sources# NOTE: --no-translator option is a workaround to supress email input requestmsginit --no-translator --input=po/jnt.pot --locale=en_US.UTF-8 --output po/en_US/jnt.pomsginit --no-translator --input=po/jnt.pot --locale=ru_RU.UTF-8 --output po/ru_RU/jnt.po

Генерируем mo-файл (бинарный перевод):

# Generate locale binary filesmsgfmt --output-file=po/en_US/jnt.mo po/en_US/jnt.pomsgfmt --output-file=po/ru_RU/jnt.mo po/ru_RU/jnt.po

Развертывание бинарных файлов с переводами

К сожалению, Kotlin/Native не поддерживает ресурсы, так что "упаковать" mo-файлы в исполняемый файл пока не выйдет.

На это есть соответствующий баг.

Думаю, функционал ресурсов можно реализовать и вручную дополнительной задачей в Gradle, это пожалуй тема для отдельной статьи.

Для тестового проекта положим mo-файлы рядом с приложением, где не нужны права суперпользователя и где gettext сможет их найти.

Для релиза приложение следует упаковать в RPM/DEB-пакет, а mo-файлы установить в директорию /usr/share/locale.

Итог

Как видите, процесс несложен, по крайней мере при наличии готового кода и скриптов.

В процессе разработки нужно лишь периодически вызывать update_localization.sh, переводить новые строки, и снова вызывать этот скрипт для генерации mo-файлов.

, или спасибо за внимание!

Источники

Определения взяты из документации Django

Почему интернационализация и локализация имеют значение

Kotlin Native: следите за файлами

DxGetText GNU Gettext for Delphi and C++ Builder

P.S.: дальше планирую использовать Kotlin/Native уже в рамках кроссплатформенных библиотек. Если будет интерес, могу доработать демо, например портировать на Windows.

Подробнее..

15 советов Локализация сервисов под разные страны

16.10.2020 16:14:58 | Автор: admin

Пока ещё на политической карте мира границы есть. В мире интернета они давно стёрты.


И вашим сервисом, если он по-настоящему массовый, может воспользоваться и американец, и француз, и аргентинец, и китаец. А значит, вы должны это учитывать в локализации вашего продукта.


И это совсем не так просто, как кажется. Одним переводом массивов текстов о компании и описаний услуг\товаров ограничиться не получится.



Структурируем всё по пунктам:


1. В одной стране не просто может быть, а скорее и очень быстро потребуется более одного языка. Например, в России потребуется русский и английский. В некоторых регионах необходим татарский, украинский, башкирский. Особенности федеративного устройства.


2. Перевод одного и того же языка для разных стран будет разным. Например, переводы маркетинговых текстов на английский для России и Великобритании будут отличаться. Просто потому что совсем другой культурный, исторический, ментальный бэкграунд. Другие триггеры нужны, чтобы цеплять пользователя. Скажи-ка, дядя, ведь не даром Москва, спаленная пожаром, французу отдана? даже переведённая, эмоционально ничего не скажет американцу. Точно так же, как Twas brillig, and the slithy toves, Did gyre and gimble in the wabe: All mimsy were the borogoves, And the mome raths outgrabe вызовет у американца просто пожатие плеч от бессмыслицы. Зато англичанин захлопает в ладоши.


Небольшой околопример перевода и ситуации в проекте:


На одном из прошлых моих стартапов собрались в 2014м году выкатываться в Индонезию. Продуктовая часть вроде бы была готова, добивали техническую.Примерно за 2 недели до часа Х стучится ко мне в скайп наш Гениальный (время примерно  18:00 мск):- Дим! Ну чё там по срокам?- Всё норм, всё по срокам.- Ты знаешь... Я тут в Джакарту прилетел, у меня завтра в 7:00мск презентация нашего сервиса местным министрам! Успеваешь?OMG...  Ситуация - жесть полная. Но что-то же делать надо? Что у нас в наличии? В принципе действительно всё неплохо, надо пару мест подпилить - и выкатится без пары фич. Тогда преза получится норм. Договариваюсь со всей командой... Ну, как договариваюсь... Кому-то денег обещаю, кому-то отпуск, кому-то увольнение... Решили, короче. Собрались и начали жечь. Не хватает самой малости - листа текста А4 на индонезийском языке. Без него сервис не будет говорить на родном языке индонезийцев. И обойтись никак. Стучусь к Гениальному:- Нужен текст на индонезийском!- Ничем не могу помочь. Я даже на английском не разговариваю!- Эм.... А ты сейчас где? В такси? Можешь попросить таксиста текст перевести с английского на индонезийский?- Не могу. Он не знает никакого языка кроме индонезийского...Ооооооооок! Чешу репу. Снова стучусь к Гениальному:- А отели какие-то знаешь в Джакарте?- Да! Хилтон!Время уже где-то 00:30 мск. Чё делать-то? Терять нечего. Позади Москва. Звоним в отель, объясняем, что мы несчастные русские стартаперы, хотим осчастливить Индонезию своим стартапом, не хватает листа А4 на индонезийском. - Вот наш e-mail, присылайте текст, мы переведём!Через 2 часа мы получили текст и запустились. 

3. Если у вас хоть сколько-нибудь нормальный клиент-сайд интерфейс, то переводы потребуется и для него на стороне клиента.


4. Вам потребуется хранить переводы двух типов короткие фразы (используются для интерфейсов и поясняющих подписей) и длинные тексты (маркетинг, faq, юридическая документация типа оферты и другое).


5. Вам потребуется перевод картинок на языки (причём для разных стран, опять-таки разные). Причём есть картинки, как интерфейсного плана, так и тупо скриншоты. Причём совершенно точно известно, что не все картинки поддадутся автоматизированному наложению генерящихся надписей. И, кстати, для некоторых языков потребуется отдельно доставлять шрифтовые пекеджи.


6. Когда вы соберётесь передавать тексты в перевод, то для каждого короткого текста потребуется комментарий, который описывает контекст, в котором нужен перевод (одно и то же слово, как вы знаете, может иметь несколько значений). Более того, в такой комментарий потребуется точный перечень мест в интерфейс (и как до него добраться), где оно используется. А то напишите для индийской локализации: Это так же легко, как съесть корову и трудно даже представить.


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


8. Таймзона в БД имеет значение. И вывод времени в нужной таймзоне тоже. В отдельных сложных случаях без костылей не обойтись. Например, по тайландскому летоисчислению, сейчас 2560 год. Хотя есть мнение, что в базах лучше не иметь никаких таймзон, UTC и только UTC.


9. Проект must be in UTF-8. Иначе вымрете сразу же. Вывод чисел с десятичной точкой в разных странах отличается. Будьте готовы.


10. Поиск по сайту. Каким бы вы не пользовались движком, важно знать все европейские языки, включая русский, процессятся специальным стеммером Snowball. Это такая штука, без которой орфография не будет работать вообще. Но для некоторых языков Snowball не хватит и движок заточенный под работу с ним станет бесполезной обузой. Чтобы решить проблему придётся порыться по интернету и разобраться, какие бывают стеммеры. Да, кстати, для некоторых языков символ пробела (" ") не является разделителем слов (сюрприз!).


Andrey Shetukhin добавляет:
Во-первых, орфография к стеммеру отношения не имеет никакого. Вообще. Ноль.
Во-вторых, тот же сфинкс имеет лемматизатор AOT, изначально написанный Сокирко.
В-третьих, стемминг и лемматизация абсолютно разные вещи, их нельзя путать.
В-четвёртых, 99.995% разработчиков сайтов самостоятельно решить проблему с поиском не могут. Даже в Авито не справились.
Касаемо разделителя слов. Пробел не самая большая проблема.
Гораздо важнее знаки препинания, дефисы, специальные символы и модификаторы UTF. Внезапно, й или ё в UTF-8 можно записать несколькими способами. Слово чёрно-красный, в зависимости от контекста должно искаться не только исключительно как чёрно-красный, но и чернокрасный, чёрнокрасный, чёрный красный.
Знаки переноса так же должны учитываться, иначе в поиске будет треш. Кроме того, если речь идёт о русском языке или текстах на русском и английском языках одновременно, необходимо учитывать опечатки в общих буквах для латинского и кириллического алфавитов.
Необходимо уметь обрабатывать сокращения и понимать, где точка используется как знак конца предложения, а где как элемент сокращения С.С.С.Р., A.C.A.B и т.п.
Всё это очень сложно и большинство разработчиков не имеет достаточного уровня чтобы написать не то, что поиск, а даже токенизатор текста.

11. Никогда не храните исходники текстов в html вы его тупо не сможете отдать на перевод, который тарифицируется посимвольно. Используйте форматы типа wiki-markup или markdown.


12. Никогда не храните в .po файлах (это способ хранения коротких фраз для переводов с использование упомянутого тут всеми gettext) в лексемах что-либо кроме самого текста.


13. Для gettext не используйте в качестве идентификаторов лексем русскую фразу вы не сможете такой набор экспортировать на client-side.


14. Время в базе всегда должно быть в UTC. А таймзоны настройка рендеринга. Как темная и светлая тема, например. (от Сергея Васильева)


15. Не стоит забывать про RTL, про учёт разной плотности на разных языках, про разные сочетания календаря и отображения цифр на разных языках, про сложность выбора формата перевода (.po не очень удобен), про переводческие системы.


Примеры граблей, советов и не всегда с ходу понятных полезностей привёл Дмитрий Симонов ctorecords, СТО и создатель канала Техдирские заметки и его многочисленные умудрённые опытом коллеги.


P.S. А кому хочется с пользой усложнить себе жизнь и добавить знания 1113 декабря пройдёт онлайн-интенсив SRE.

Подробнее..

Перевод Как локализовать онлайн-магазин? 13 шагов на пути к идеальному e-commerce сайту

28.10.2020 12:04:04 | Автор: admin
Изображение создано компанией AlconostИзображение создано компанией Alconost

Сегодня рынок электронной коммерции растт с беспрецедентной скоростью. В 2019 году объм продаж в сфере e-commerce во всм мире составил 3,53 триллиона долларов США. А уже к 2022 году эта цифра может увеличиться до 6,54 триллионов долларов США.

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

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

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

Что такое локализация контента?

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

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

Можно выделить три уровня: простой перевод, локализация и адаптация контента под местные культурные особенности. Последний термин адаптация контента под местную культуру это самый сложный способ подстройки, в то время как перевод это самый лёгкий способ.

В общем, говоря о локализации для e-commerce бизнеса, мы имеем в виду адаптацию контента. Именно максимальная проработка контента поможет сделать интернет-магазин понятным и релевантным на зарубежных рынках.

Почему онлайн-магазинам нужна локализация?

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

Согласно исследованиям, около 65% онлайн-покупателей из неанглоязычных стран предпочитают приобретать только те товары, о которых есть информация на их родном языке. Даже если перевод не слишком качественный. И около 40% из них никогда не совершат покупку на сайте, который весь на иностранном языке. Очевидно, что ни один владелец онлайн-магазина не хочет потерять эти 40% потенциальных клиентов.

У локализованных веб-сайтов больше шансов привлечь внимание зарубежных покупателей. Потому что понятные местной аудитории сайты улучшают опыт взаимодействия пользователя.

А ещё локализация поможет избежать парочки неловких ситуаций. Один из популярных казусов в локализации произошл со скандинавским производителем пылесосов Electrolux. Компания использовала вот такой слоган на американском рынке: Nothing Sucks like an Electrolux. В переводе это должно было звучать как Ничто не всасывает пыль лучше, чем Electrolux. Но в итоге буквальный перевод фразы на английский означает Нет ничего хуже, чем Electrolux, причём в достаточно грубой форме.

Как сделать качественную локализацию онлайн-магазина

Для того, чтобы не упустить ни одной детали при локализации контента лучше заранее составить чткий план. Тут понадобится продуманная стратегия, и дальше мы расскажем о её самых важных элементах. Поехали!

1. Проведите маркетинговое исследование рынка

Маркетинговое исследование это первый и самый важный шаг перед тем, как начать процесс локализации контента.

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

2. Выберите контент, который стоит локализовать

Скорее всего, вам не нужно будет локализовывать весь контент вашего онлайн-магазина, потому что вряд ли вы будете продавать все свои товары на новом рынке (особенно сначала).

Кроме того, для начала можно локализовать примерно 10% контента основные разделы и страницы. Это поможет в целом понять, работает локализованный контент или нет. И когда вы увидите, что у зарубежной аудитории есть интерес, можно приступить к локализации всего контента онлайн-магазина.

3. Без SEO-оптимизации не обойтись

Профессиональная SEO-оптимизация поможет увеличить вовлеченность, трафик и конверсии на локализованном сайте.

Для начала необходимо подобрать ключевые слова, которые часто используются в новом регионе и по которым вы хотите, чтобы вас находили. Вы можете это сделать с Планировщиком ключевых слов от Google, о котором мы говорили раньше.

Очевидно, что в каждом регионе люди гуглят по-разному. Например, если вы продаёте очки в России и Украине, то нужно выбирать разные ключевые слова. На российском сайте можно добавить, к примеру, фразы с названиями крупных городов: очки в Москве, купить очки в Питере и т.д. А для украинской версии сайта можно выбрать ключевые слова ещё и на украинском языке.

И нужно будет не только подобрать релевантные "ключи", но и внести их на сайт, обновить все URL-адреса согласно региону, изменить заголовки и подзаголовки, а также обновить все метатеги.

4. Думайте креативно, но не забывайте о местной культуре

А ещё надо подумать о рекламных кампаниях для нового рынка. Конечно, сайт придётся продвигать, иначе как о вас узнает новая аудитория? Очень важно, чтобы реклама была максимально нативной, чтобы привлечь как можно больше людей и сконвертировать их в реальных покупателей.

Согласно исследованию локализованная реклама работает намного лучше, чем реклама на иностранном языке. Результаты сравнения двух таких кампаний на Facebook впечатляют: у объявлений, в которых использовался локализованный текст, CTR (click-through rate, показатель кликабельности) выше на 22% среди женщин и на 87% среди мужчин, чем в аналогичной нелокализованной рекламе.

Изображение с сайта adparlor.comИзображение с сайта adparlor.com

5. Проверьте культурный контекст

Обратите внимание на культурные особенности нового рынка, традиционные для региона праздники и ивенты.

Чрная пятница и Киберпонедельник стали чуть ли не самыми важными днями для e-commerce в США, Великобритании и даже России. Но, например, в Китае существует своя версия этого дня День холостяков, который празднуют 11 ноября. Интересно, что кроме китайского бизнеса в этот день скидки активно предоставляют и многие западные компании, которые работают в китайском сегменте. Так что если вы выходите на иностранный рынок, не забудьте адаптировать и промо-акции.

А ешё, к примеру, если вы продаёте товары и в России, и в США, стоит учитывать, что Рождество в России не такой популярный праздник, как в Америке. В российских реалиях Новый Год важнее. Поэтому локализуйте контент с учётом этих особенностей: в США вы можете устроить распродажу на Рождество, а в России будет логичнее предложить новогодние скидки.

6. Валюта, единицы измерения и размеры одежды

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

При локализации валют используйте соответствующие символы для обозначения валюты. А ещё обратите внимание на то, что некоторые символы валюты указываются перед ценой, например $ и , а некоторые после, например . Для обозначения десятичных знаков используются разные разделители: в одних регионах это запятые, а в других точки.

Не забудьте локализовать единицы измерения. К примеру, в Европе и США температура обозначается по-разному C и F соответственно.

Если вы продаете одежду, подумайте о локализации размеров, указанных на сайте. Европейские размеры обуви обычно выглядят так: 34, 35, 36 и т.д. А в США размерный ряд начинается с 5,6, 7, 8 и т.д.

7. Локализованная корзина покупок

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

Так что корзину покупок нужно адаптировать под местный рынок и сделать её удобной и понятной для пользователей в новом регионе. И не забудьте переключить корзину на местную валюту и добавить популярные способы оплаты.

8. Проверка терминов

Не секрет, что даже у одного языка может быть множество диалектов. Возьмём, к примеру, английский язык. Британский и американский английский значительно отличаются между собой.

Например, elevator и lift означают одно и то же лифт, но первое слово используется в американском варианте, а второе в британском. То же самое можно сказать о словах vacationи holiday. На такие детали стоит обращать внимание, чтобы звучать по-настоящему аутентично на зарубежном рынке.

Очевидно, что если терминология отличается даже в одном и том же языке, она будет отличаться и в двух совсем разных языках.

9. Формат времени и даты

Это важно, потому что неправильный формат может ввести в заблуждение зарубежных клиентов. Предположим, вы продаёте из России в США. Покупатель в Америке указывает дату 02.03.2020. Для вас, в России, это означает 2 марта. В США это же значит 3 февраля. Наверное, покупатель будет разочарован, получив свой заказ на месяц позже... Поэтому не забудьте поменять форматы даты под разные рынки.

В большинстве стран в формате даты день стоит первым, а год последним ДД/ММ/ГГГГ. Однако в некоторых странах, таких как Китай, Корея и Иран, используются такой формат даты: ГГГГ/ММ/ДД. Формат времени может быть 24-часовым или 12-часовым. В США обычно используется формат AM/PM, а в Европе более распространён 24-часовой формат.

10. Правовые нормы и законы

Для юридической защиты своего бизнеса в Интернете, нужно знать и соблюдать правовые нормы региона, в котором вы собираетесь работать.

Убедитесь, что ваши товары абсолютно легальны на данном рынке. К примеру, однажды, не проверив все юридические моменты, Kinder Surprise хотели выйти на рынок США. И вдруг они обнаружили, что шоколадные яйца с игрушками внутри являются незаконными там, хотя соседние Канада и Мексика разрешают их продажу на своей территории. Наверное, никто не хотел бы оказаться в ситуации, когда вы потратили много денег на запуск продукта и вдруг понимаете, что вы вообще не имеете права продавать его в данном регионе.

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

11. Региональная служба поддержки

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

Кстати, хорошая идея сделать раздел F.A.Q. на сайте наиболее часто задаваемые вопросы (frequently asked questions). Можно разместить заготовленные ответы на самые распространённые вопросы, и пользователи сами найдут эту информацию, когда она понадобится. Это частично позволит сократить затраты на команду поддержки в новом регионе.

12. Изображения, соответствующие местной культуре

Контент это не только про тексты. Очень важно заменить фотографии и изображения, которые не подходят для нового местного рынка. Например, если вы выходите на рынок Японии, замените фотографии с европейцами на фото с японцами. Это будет выглядеть естественнее.

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

Изображение взято с сайта www.gilt.comИзображение взято с сайта www.gilt.com

13. Локализованные соцсети

Без социальных сетей сегодня не может существовать ни один бизнес.

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

Локализованные социальные сети дадут местной аудитории более персонализированный опыт взаимодействия с вашим брендом. Посмотрите, как, например, у McDonald's выглядят разные аккаунты в Instagram для разных стран.

Аккаунт McDonalds в Канаде в InstagramАккаунт McDonalds в Канаде в InstagramАккаунт McDonalds в России в InstagramАккаунт McDonalds в России в Instagram

Полезные советы по локализации интернет-магазинов

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

Непрерывная локализация

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

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

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

Локализационное тестирование

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

Подытоживая, настоятельно рекомендуем обратить внимание на следующие нюансы локализации контента:

  • Целевая аудитория и исследование рынка

  • Культурный контекст

  • Правовые нормы и законы

  • Маркетинг в популярных социальных сетях

  • Правильный перевод всех описаний

  • Правильные форматы времени, даты, валюты, размеров одежды и т.д.

  • Локализация корзины покурок

  • Региональная служба поддержки

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

О нас

Alconost профессионально занимается локализацией приложений, игр и сайтов на более 70 языков. Лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджмент проектов 24/7, любые форматы строковых ресурсов. Мы также делаем видеоролики.

Подробнее..

Перевод Как локализовать игру? Пошаговое руководство

12.11.2020 12:19:49 | Автор: admin
Иллюстрация создана компанией AlconostИллюстрация создана компанией Alconost

Сегодня очевидно, что недостаточно просто выпустить качественную игру с увлекательным геймплеем: нужно сделать её доступной и понятной для аудитории из разных регионов. И с этой задачей помогает справиться локализация.

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

Так как же убедиться в том, что локализация игры выполнена успешно? Что всё переведено правильно и в игре нет даже самых мелких ошибок и недочётов? Секрет в организации самого процесса локализации.

Дальше мы расскажем о том, как устроен процесс локализации в Alconost. Надеемся, что сможем дать ответы на самые сложные вопросы локализации. Поехали!

Этап 1. Подготовка к локализации

Большинство создателей игр задумываются о локализации на том или ином этапе разработки. Но некоторые забывают о предварительной подготовке к ней. Итак, что же важно учесть перед тем, как приступить к локализации игры?

Исследование и анализ рынка

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

Детальное понимание целевой аудитории влияет на такие факторы, как:

  • используемая платформа для приложения (Android для Европы и большей части Азии, iOS для США);

  • функциональность игры;

  • способы геймификации;

  • список языков для локализации.

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

Например, игроки в Японии привыкли к тому, что видеоигра может содержать определённые фразы на английском. Поэтому если вы планируете работать с японской аудиторией, проанализируйте весь контент и решите, какие элементы нужно перевести, а какие можно оставить на английском.

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

Возможно, вы задумались, как можно быстро провести исследование рынка, не имея предварительного опыта?

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

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

Подготовка документации для локализации

Документация для локализации это файлы и документы, необходимые для перевода с учётом всех особенностей продукта. Документы со строками для перевода (строковые ресурсы) занимают важное место в документации. Они могут быть представлены файлами различных форматов, например, XML или CSV. И важно проследить, чтобы все документы были сохранены в одном формате.

А ещё документация для локализации (в профессиональной терминологии называется lockit, сокращённое от localization kit) может включать в себя такие элементы:

  • глоссарий терминов;

  • предыдущие переводы;

  • файлы, предоставляющие информацию о самом продукте;

  • используемые шрифты;

  • игровые видео;

  • звуковые дорожки;

  • собранный бидл игры (намного реже).

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

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

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

Если вы хотите узнать больше именнно о подготовке к локализации, советуем изучить 10 основных правил, которые составила наша команда. Тут о выборе правильной кодировки (Unicode), об использовании шрифтов, о выборе форматов времени и даты, а также другие тонкости, которые нужно учитывать при подготовке к локализации.

Этап 2. Непосредственно локализация проекта

Допустим, вы определились с целевой аудиторией, нужными языками и собрали документацию для локализации (либо самостоятельно, либо с небольшой помощью со стороны агентства). Что же делать дальше?

Выбор подходящей платформы для локализации

Существует множество платформ для локализации с широким функционалом (анализ файлов для перевода, различные форматировщики для облегчения перевода и т.д.).

Схема создана компанией AlconostСхема создана компанией Alconost

Мы предпочитаем использовать Crowdin, так как эта платформа обладает всеми функциями, необходимыми для быстрой и успешной локализации.

Вот, на наш взгляд, наиболее полезные фичи Crowdin:

  • возможность добавлять комментарии к текстовым строкам, по которым требуется уточнение;

  • возможность добавлять к текстовым строкам скриншоты с исходным контентом;

  • автоматический разбор файлов на отдельные текстовые строки;

  • дополнительные функции для выбора и настройки необходимых языков перевода;

  • возможность ограничить количество символов в строке, если дизайн накладывает лимиты на длину строк;

  • возможность загрузки существующих переводов и ресурсов локализации;

  • возможность загрузки обновлённых версий файлов (Crowdin может распознавать и различать вновь добавленные или обновлённые файлы);

  • локализация без отрыва от контекста;

  • различные интеграции;

  • инструменты для коммуникации между участниками команды.

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

Процесс перевода

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

Чтобы избежать критических ошибок, очень важно выбрать правильный метод перевода.

1. Машинный перевод

Машинный перевод перевод текста специальным автоматизированным программным обеспечением. Самое большое преимущество такого перевода низкая стоимость и высокая скорость. Тем не менее, машинный перевод далеко не идеален: в нём нет персонального подход и часто теряется контекст.

Мы считаем, что машинный перевод для видеоигр однозначное нет. Видеоигры требуют творческого подхода в переводе, в то время как машинный перевод даёт автоматизированный и бездушный текст с возможными семантическими ошибками.

2. Краудсорсинговый (коллективный) перевод

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

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

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

Краткая история из переводческих будней: локализация игры Goat Simulator

Скриншот игры Goat Simulator в Google PlayСкриншот игры Goat Simulator в Google Play

Goat Simulator знаменитая видеоигра, разработанная студией Coffee Stain Studios. Эта игра доступна на нескольких языках: английском, немецком, испанском, французском и польском.

Изначально переводить игру разработчикам помогало только игровое сообщество. Но по мере того, как появлялось всё больше и больше обновлений, сообществу стало трудно следить за новыми версиями и вовремя переводить их.Именно тогда разработчики обратились к Alconost, передав весь перевод нашей команде.

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

В случае с Goat Simulator мы также перенесли проект в Crowdin, чтобы организовать более лёгкий, быстрый и удобный процесс локализации.

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

3. Перевод своими силами

В редких случаях у компании-разработчика есть собственная команда опытных переводчиков (речь не идёт о таких гигантах, как Ubisoft или Blizzard). Когда дело доходит до локализации, большинство девелоперов нанимают команду фрилансеров. Но переводчики-фрилансеры могут не знать всех аспектов локализации.

К другим недостаткам работы с фрилансерами можно отнести:

  • сложности с контролем качества и организацией проекта;

  • высокий риск наличия ошибок;

  • риски, связанные с размером затрат или срывом сроков выполнения.

Сотрудничество с фрилансерами предполагает наличие в штате опытного менеджера по локализации, а содержание такой штатной позиции не всегда оправдано с финансовой точки зрения.

4. Профессиональная локализация

Под профессиональной локализацией подразумевается сотрудничество с агентством по локализации, которое позаботится не только о переводе текста, но и об управлении самим процессом. Работа с агентством даёт немало преимуществ:

  • высокое качество перевода, обеспечиваемое опытной командой переводчиков;

  • удобное и простое управление проектами;

  • наличие всех необходимых специалистов в одной команде (переводчиков, менеджеров проектов, специалистов по контролю качества);

  • необходимые инструменты для удобной работы.

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

Передовые практики локализации

Чтобы обеспечить высокое качество переводов, важно знать современные практики и тенденции в локализации. Недостаточно просто взять текст и перевести его, чтобы порадовать или поразить играков нативным геймплеем.

1. Предоставьте переводчикам справочные материалы и контекст

Дополнительные поясняющие материалы никогда не будут лишними и бесполезными. К примеру, платформа Crowdin, о которой мы уже говорили, позволяет добавлять комментарии к строкам и скриншоты, поясняющие геймплей. Зачем это нужно?

Некоторые строки можно интерпретировать по-разному, особенно если отсутствует контекст. Чтобы переводчик понял, о чём идёт речь, нужна дополнительная информация (описание того, где и как будет использоваться эта строка, комментарий или скриншот). Поэтому фича с добавлением комментариев облегчает работу переводчика и делает перевод более качественным.

2. Проверьте дважды

Во время локализации нужно обратить внимание на важные моменты для конкретного рынка.

Азиатские страны, например, имеют строгий набор правил, касающихся тем насилия, употребления наркотиков или религии в играх. Поэтому лучше всего тщательно отобрать такой контент и проверить, разрешён ли он в той стране, где вы планируете выпускать игру.

3. Учтите особенности дизайна

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

Краткая история из переводческих будней: локализация игры Family Island

Family Island это игра-симулятор жизни на ферме для мобильных устройств (iOS и Android), которая была выпущена на нескольких языках.

Скриншот игры Family Island в Google PlayСкриншот игры Family Island в Google Play

Когда Melsoft Games попросили помочь с локализацией для японского рынка, мы столкнулись с проблемами в интерфейсе. Разработчики не учли, что японские иероглифы занимают больше места, чем английские или французские буквы. В результате переведенный текст не помещался в предполагаемое текстовое поле.

Как только мы обнаружили проблему, то сразу же сообщили о ней разработчикам.

А ещё мы постарались сократить количество символов, сохранив при этом контекст и первоначальный смысл.

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

4. Пусть переводчики сами поиграют в игру

Нет лучшего способа понять игру, чем просто поиграть в неё. Предоставьте доступ к игре, чтобы переводчики полностью поняли её концепцию, сленг, геймплей и другие важные детали.

5. Выполните лингвистическое тестирование

Контроль качества (QA) это очень важная практика, которая должна выполняться на протяжении всей разработки любого программного продукта. QA помогает обнаружить ошибки, недочёты, несоответствия и другие проблемы, которые могут повлиять на взаимодействие пользователя с игрой и исказить её понимание.

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

В компании Alconost мы, к примеру, проверяем качество контента на протяжении всего процесса локализации. Ответственный за проверку качества менеджер проекта. Он следит, чтобы всё шло гладко: переведённый контент соответствовал требованиям, переводчики вычитывали и проверяли все переводы и т.д.

Кроме того, мы используем xBench инструмент для автоматической проверки качества перевода. XBench помогает обнаружить несогласованность перевода, несоответствие терминам глоссария, несоответствие в цифрах, проблемы с тегами и переменными и другие нюансы.

Заключение

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

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

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

О нас

Alconost профессионально занимаетсялокализацией игр,приложений и сайтовна более 70 языков. Лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджмент проектов 24/7, любые форматы строковых ресурсов. Мы также делаемвидеоролики.

Подробнее..

Перевод Как локализовать продукт для канадского рынка?

30.12.2020 12:20:04 | Автор: admin

Канада это одна из самых развитых стран в мире. Согласно последним данным, в 2019 году Канада стала 10-й страной в мире по величине экономики с ВВП в 1731 триллион долларов США. Более того, по прогнозу, к 2034 году Канада имеет все шансы стать 8-ой экономикой в мире. В последние годы канадская экономика растёт за счёт значительного развития в сфере новых технологий и разработки программного обеспечения.

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

Рост экономики Канады за счёт сферы технологий, программного обеспечения, приложений и игр

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

Как мы уже говорили, Канада одна из самых перспективных стран для продвижения бизнеса благодаря тому, что входит в топ самых богатых стран мира. Даже в условиях нынешнего экономического спада на мировом рынке Канада по-прежнему имеет относительно стабильную, диверсифицированную и хорошо развитую экономику. В конце концов, Канада гораздо меньше пострадала от COVID-19, например, по сравнению с её южным соседом, Соединенными Штатами Америки.

Основные отрасли экономики Канады, в которых наблюдается рост, программное обеспечение, электронная коммерция, онлайн-игры, а также природные ресурсы. Да, согласно данным Statista, ВВП падает. В 2020 году он упал на 7%, но, по прогнозам, в 2021 году ВВП сможет вырасти на 5%.

Очевидно, что компании-разработчики, инвестирующие в канадский рынок, также смогут насладиться всеобщим ростом экономики. В последние несколько лет доходы в сфере разработки программного обеспечения и компьютерных услуг в Канаде увеличивались примерно на 5,9% в год.

По состоянию на 2020 год количество пользователей смартфонов в Канаде увеличилось до 31 миллиона человек. В Канаде существуют приложения почти для всего, о чём вы можете только подумать. Более того, канадцы в полной мере используют их и пробуют новые решения в различных сферах жизни.

Рынок мобильных игр также демонстрирует значительный рост в Канаде: прогнозируемый доход от мобильных игр вырастет с 309 млн долларов США в 2019 году до 364 млн долларов США в 2025 году. И компании, которые инвестируют в локализацию своих игр сейчас, имеют много шансов получить большую прибыль на канадском рынке.

Кроме того, в Канаде большой средний класс с высокими зарплатами, которые растут с каждым годом. Например, в 2018 году канадские налоговые органы получили 938,5 миллиарда канадских долларов с заработной платы, окладов и комиссионных населения.

Данные из Statista.com Данные из Statista.com

Поэтому если вы задумывались о расширении своего бизнеса в 2021 году, то мы советуем присмотреться к рынку Канады.

С чего начать локализацию для Канады?

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

В Канаде официальными признаны сразу два языка: английский и французский. Это означает, что все федеральные документы и информация должны публиковаться на обоих официальных языках. Однако в каждой из десяти провинций и трёх территорий Канады действуют свои лингвистические правила. Вот, например, некоторые из них:

  • В Канаде всего две официально двуязычные провинции: Нью-Брансуик и Манитоба. Упаковка продуктов, реклама и другие публичные коммуникации должны быть как на английском, так и французском. Также, правительство провинции должно предлагать услуги на обоих языках.

  • Квебек официально является только франкоязычным, хотя в самом крупном городе этой провинции, Монреале, 50/50 французского и английского населения.

  • Британская Колумбия, Ньюфаундленд и Лабрадор это провинции только с английским языком.

  • Центральные провинции Альберта и Саскачеван, а также приморские провинции Новая Шотландия и остров Принца Эдуарда официально являются только английскими. Тем не менее, многие продукты и услуги предлагаются на обоих языках, поскольку в этих регионах также есть некоторые франкоязычные группы.

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

Канада и США: разве это не одно и то же?

Несмотря на то, что канадцы и американцы имеют много общего, особенно в сфере СМИ, поп-культуры и коммерческой продукции, это все ещё две очень разные нации. У каждой своё сильное чувство культурной самобытности. Вот несколько существенных различий лингвистических, культурных и социальных норм между Канадой и США.

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

  • Слова, оканчивающиеся на -or в США, заканчиваются на -our в Канаде. Например, в таких словах, как colour, favour, flavour или behaviour.

  • Вместо слов, оканчивающихся на -er, они пишутся с -re, как в словах centre.

  • Существительные, такие как defence и offence, заканчиваются на -ce вместо -se. Кроме того, чтобы различать существительные и глагольные формы некоторых слов, например, practice и practise, используется буква s для глагола и c для существительного.

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

  • Окончание -оg в словах типа catalog изменяется на catalogue.

  • Такие слова, как esthetic в США, пишутся через -ae: как в aesthetic в Канаде.

В Канаде используется метрическая система и измеряется температура в градусах Цельсия вместо имперской системы и градусов Фаренгейта, как в США. Однако старшие поколения могут всё ещё использовать американские единицы измерения, так как метрическая система пришла в Канаду только в 1970 году.

Конечно же, в Канаде есть свои сленговые слова, как и в США. Скорее всего вы захотите быть близкими по культуре к местным брендам. В этом случае для маркетинговых кампаний или перевода сайта необходимо использовать локальный сленг и местные шутки, чтобы быстрее влиться в новый рынок и завоевать доверие новой аудитории. Для этого очень важно знать, чем живёт ваша аудитория. Например, самый любимый поставщик кофе канадцев, Тим Хортон (Tim Hortons), и канадцы часто называют его просто Тиммис (Timmies).

Вот список некоторых терминов, характерных для Канады:

  • Washroom (Санузел): вместо restroom or bathroom.

  • Pop: аналог soda (газировка) в США.

  • Chocolate bar (Шоколадный батончик): в отличие от candy bar в США.

  • Click: ещё один способ сказать километр в Канаде.

  • Runners (беговые кроссовки): вместо слов tennis shoes (теннисные туфли) или sneakers (кроссовки) в США или trainers в Великобритании.

  • Loonies and Toonies: как канадцы называют свои монеты в один и два канадских доллара. Слово loon происходит от одноименной птицы.

Канадский французский и Европейский французский

Французский, на котором говорят и пишут в Канаде, довольно сильно отличается от французского, на котором говорят в Европе, что является важным фактором при переводе любого контента.

Французский, на котором говорят в Квебеке, называется joual, в то время как в каждом регионе есть свой способ называть свой язык. Например, в Альберте его называют Franco-Albertain, а в Саскачеване Fransaskois. Акадский французский это ещё один диалект канадского французского, на котором говорят около 350 000 человек, в основном в Нью-Брансуике.

Канадский французский отличается от европейского французского грамматикой, стилем письма, словарным запасом и, конечно же, произношением. Французский язык в Канаде имеет широкий диапазон отличий: от сильного диалекта до более академического французского.

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

Вот, например, некоторые различия между европейским французским и французским канадским языком:

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

  • Канадский французский включает слова коренных народов Канады.

  • Канадцы обычно более неформальны и при обращении друг к другу используют форму tu вместо vous; это социально неприемлемо во Франции или франкоговорящих странах Европы.

  • Французские канадцы будут чаще использовать для слова мы форму on, чем nous.

Разница некоторых слов в Канаде и Франции

Русский

Французский (Франция)

Французский (Канада)

машина

voiture

char

нижнее бельё

culottes

bobettes

хот-дог

hot-dog / saucisse

chien-chaud

стиральная машина

machine laver

laveuse

насекомое

moustique

maringuouin

Стратегия локализации для рынка Канады

При выходе на канадский рынок необходимо учитывать некоторые культурные и лингвистические особенности. Индивидуальный подход к контенту и осознание уникальности страны будет иметь решающее значение. Важно понимать, что Канада, как бы она ни была близка к США, это самобытная и уникальная страна.

Поэтому важно знать, какие языки используются в каких регионах. При выходе на канадский рынок разумно локализовать свой продукт как на канадский английский, так и на французский, чтобы соблюсти все законы и охватить всё возможное население. В Канаде 22,8% населения говорит по-французски, а 75,4% по-английски. Поэтому, если вы будете ориентироваться только на одну языковую группу, то вы значительно сократите количество своих потенциальных клиентов.

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

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

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

О переводчике

Перевод статьи выполнен в Alconost.

Alconost занимаетсялокализацией игр,приложений и сайтовна 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаемрекламные и обучающие видеоролики для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее..

Самые популярные языки для локализации в 2021 году обзор от Alconost

24.02.2021 16:18:54 | Автор: admin
Какие языки выбрать для локализации сервиса, приложения или игры?Какие языки выбрать для локализации сервиса, приложения или игры?

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

Несколько слов о том, кто мы и почему из нашей статистики можно делать выводы. Мы в Alconost локализуем приложения, игры и веб-сервисы. Наши клиенты и крупные игроки IT-рынка, и небольшие команды, и инди-разработчики. С 2004 года мы помогли 2000 IT-компаний со всего мира вывести их продукты на новые рынки.

Клиенты регулярно спрашивают у нас: На какие языки посоветуете переводить? Ответим с опорой на факты. Мы проанализировали заказы за 2020 год и подготовили для вас статистику, инфографику и аналитику по языкам, которые выбирают наши клиенты.

Для этого обзора рассматривались заказы на перевод с английского языка, выполненные в отделе локализации Alconost.

Топ-12 языков для локализации с английского

В 2020-м клиенты переводили у нас с английского на 89 языков. Подчеркнём, что абсолютное большинство клиентов переводят у нас именно с английского, в то время как локализацию с других языков заказывают менее чем в 3% случаев.

Итак, давайте посмотрим, какие языки самые популярные при переводе сервисов, приложений и игр с английского.

Диаграмма 1. Самые популярные языки для локализации с английскогоДиаграмма 1. Самые популярные языки для локализации с английского

Диаграмма 1. Доля переводов на языки из топ-12 языков составляет 62,3% от общего объёма заказов на локализацию с английского.

Удивлены? Да, локализация даже на все 12 самых популярных языков будет отвечать потребностям лишь 2/3 потенциальной аудитории. Для охвата оставшейся трети понадобится локализация ещё на 70+ языков.

Давайте подробнее рассмотрим топ, а затем сделаем небольшой экскурс в статистику по переводам на менее популярные языки.

Лидеры рейтинга: классика FIGS и не только

Есть 4 языка, которые считаются классикой локализации. Это французский, итальянский, немецкий и испанский. Их даже обозначают аббревиатурой FIGS или, добавляя английский, EFIGS. Переводы с английского на эти языки возглавляют наш топ.

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

Посмотрите, как распределились доли по переводам с английского в лидирующей пятёрке: локализация на французский более 25%, а на три других классических языка в среднем по 19% на каждый.

Диаграмма 2. Пять самых популярных языков для локализации с английского: распределение долейДиаграмма 2. Пять самых популярных языков для локализации с английского: распределение долей

Диаграмма 2. Самые популярные языки для перевода с английского среди клиентов Alconost французский, итальянский, испанский и немецкий.

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

Выбор языка или выбор страны?

Интересный факт: бразильский португальский единственный язык в нашем топ-5, не совпадающий со страной происхождения. Так, французский может быть ещё и канадским; к слову, если вас интересует это направление вот наш обзор рынка и советы по локализации для Канады. У испанского несколько разновидностей: взять хотя бы аргентинский, колумбийский и мексиканский. И хотя мы переводим на все эти диалекты (а переводы на мексиканский испанский даже входят в наш топ-20), французский и испанский наши клиенты чаще всего заказывают именно для Европы, а португальский именно для Латинской Америки (Бразилия).

На наш взгляд, вот почему бразильский португальский популярен для локализации. Бразилия входит в топ-10 стран по величине экономики, в топ-3 по показателям загрузок в Google Play и App Store, а ещё в стране высокий уровень покупательной способности. Кстати, мы внимательно изучали рынок мобильных игр и приложений Бразилии; почитайте наш обзор.

Смотрим на Восток

С ощутимым отставанием от бразильского португальского, шестое место в топе занимает японский. Да, локализация на этот язык опережает в нашем рейтинге локализацию на упрощённый китайский! Мы видим причину в том, что Япония третий игровой рынок в мире, а локализация игр одна из наших ключевых компетенций.

Кроме того, нельзя недооценивать и платёжеспособность японского рынка, где ежемесячный ARPU в 5 раз выше китайского. И хотя занять место под солнцем на японском рынке не самая простая задача для иностранного разработчика, возможные трудности не уменьшают привлекательность этой страны для продвижения IT-продуктов.

Что до китайского, то локализация на его упрощённый вариант занимает в нашем рейтинге 8-е место, а переводы на традиционный китайский 13-е.

Диаграмма 3. Локализация с английского на китайский: нюансы Диаграмма 3. Локализация с английского на китайский: нюансы

Диаграмма 3. С английского на упрощённый китайский мы перевели почти в 2 раза больше заказов, чем на традиционный китайский.

Различия между разновидностями китайского разработчики учитывают при выборе региона, в котором планируется продвигать продукт. Так, на упрощённый китайский его ещё называют мандарин переводят для пользователей из материковой части Китая. А на традиционный китайский и его другие диалекты заказывают локализацию для пользователей с Тайваня или из Гонконга.

Обратно на Восток через Нидерланды

Интересно, что между двумя популярными языками азиатского региона японским на 6-м месте и упрощённым китайским на 8-м неожиданно оказался нидерландский. На наш взгляд, есть несколько причин его популярности для локализации. Среди них платежеспособность и развитая Интернет-инфраструктура, а ещё высокая лояльность голландских пользователей к контенту на родном языке.

К слову, любопытный факт о геймдев-индустрия Нидерландов: именно эта страна стала первой в Европе, сделавшей гейм-дизайн учебной дисциплиной.

Замыкают десятку турецкий и корейский языки. Эти страны в последние годы особенно интересуют разработчиков игр. Ведь среди стран Среднего Востока и Северной Африки именно Турция приносит гейм-девелоперам наибольший доход, а корейский игровой рынок четвёртый по доходности в мире.

По нашим наблюдениям, локализация на корейский уже многие годы пользуется стабильным спросом. А турецкий в последние несколько лет становится всё более популярным именно среди гейм-девелоперов.

А что за пределами топ-10?

Вторую десятку рейтинга открывают переводы с английского на польский язык. Количество заказов по этому языковому направлению совсем немного отстаёт от пары английский корейский.

Интересно, что переводы с английского на русский, на котором говорят около 260 млн человек в мире, популярны меньше переводов на польский, общее число говорящих на котором около 40 млн. И это далеко не единичный случай, когда количество говорящих и популярность языка для перевода не коррелируют друг с другом. Рассмотрим эту особенность подробнее.

Влияет ли общая численность говорящих на популярность языка для локализации?

По нашим наблюдениям скорее нет, чем да. Выше мы уже привели пример с польским и русским. Ещё пример: общее число говорящих на японском около 140 млн (сравните с 260 млн русскоговорящих). Но переводы с английского на русский занимают в нашем рейтинге лишь 12-е место, а на японский 6-е.

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

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

Продолжая анализировать азиатские страны, похожую картину увидим и с языками Малайзии и Таиланда. Локализация на тайский интересует наших клиентов почти вдвое чаще переводов на малайский и это несмотря на то, что на тайском говорит в 4 раза меньше людей на Земле, чем на малайском.

Что принимать во внимание при выборе языка для локализации?

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

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

С чего начать локализацию игры или приложения? Конечно, это зависит от бюджета. Наши клиенты, как правило, начинают с локализации интерфейса продукта, параллельно с этим переводя справочную документацию и сайт. Для мобильных приложений вместе с UI локализуют описания и скриншоты для сторов. А если проводятся локальные маркетинговые кампании, переводится и рекламный контент: текстовые объявления, баннеры, видеоролики.

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

На какой бы стадии выпуска продукта на новый рынок вы ни находились, обращайтесь за локализацией к нам в Alconost. Мы переводим сервисы, сайты, игры и приложения на 70+ языков.

Больше статистики по локальным рынкам

Как мы упоминали в начале, языки из топ-12 это только 2/3 локализаций. О менее популярных, но не менее интересных направлениях для локализации с английского мы решили рассказать в дополнительной подборке. Из неё можно можно узнать:

  • какой из языков Северной Европы был самым популярным среди наших клиентов в 2020-м, а какой заметно отставал от тройки лидеров;

  • какие языки Центральной Европы, помимо входящего в топ польского, были востребованы для локализации приложений, игр и сервисов с английского;

  • на какие языки Южной Европы стоит обратить внимание помимо испанского, итальянского и турецкого, входящих в топ-10;

  • как обстоят дела с локализацией на языки стран Ближнего Востока.

Посмотреть эту подборку можно в нашем блоге.

Обзоры рынков конкретных стран и рекомендации по локализации для них от Alconost

  1. Чехия и Словакия

  2. Финляндия

  3. Япония

  4. Арабский рынок

  5. Бразилия

  6. Япония, Корея, Китай

  7. Канада

Подробнее..

Перевод Локализация в ASP.NET Core Razor Pages Культуры

26.10.2020 20:10:07 | Автор: admin

Привет, хабр! Прямо сейчас OTUS открывает набор на новый поток курса "C# ASP.NET Core разработчик". В связи с этим традиционно делимся с вами полезным переводом и приглашаем записаться на день открытых дверей, в рамках которого можно будет подробно узнать о курсе, а также задать эксперту интересующие вас вопросы.


Это первая статья из серии, посвященной локализации в ASP.NET Core Razor Pages приложениях. В этой статье мы рассмотрим конфигурацию, необходимую для подготовки сайта к локализации контента, или другими словами, для глобализации сайта. В следующих статьях я расскажу о создании локализованного контента и о том, как преподносить его конечному пользователю.

Глобализация в ASP.NET Core

Глобализация - это подготовка приложения к поддержке различных языков в зависимости от предпочтений пользователя. Локализация - это процесс адаптации контента сайта под разные страны, регионы или культуры. Отправной точкой в глобализации веб-приложения является способность определять язык или культуру для каждого запроса. Далее нам потребуется механизм для выбора контента на основе культуры текущего запроса. В этой статье мы рассмотрим роль, которую играет класс CultureInfo в локализации, и то, как можно реализовать компонент представления, чтобы пользователи могли выбирать для запросов предпочтительную для них культуру.

Приведенные ниже шаги добавляют базовую локализацию к Razor Pages приложению, которое создается из стандартного шаблона веб-приложения ASP.NET Core 3.0 без настроенной аутентификации. Я назвал свое приложение Localisation. Свое вы можете назвать как вам угодно, но в таком случае не забудьте про пространства имен, если будете копировать код из этой статьи.

1. Начните с открытия файла Startup.cs и добавления туда следующих using директив:

using System.Globalization;using Microsoft.AspNetCore.Localization;using Microsoft.Extensions.Options;

2. Локализация - это дополнительная фича. По умолчанию она не включена. Измените метод ConfigureServices, включив AddLocalization, что сделает различные вспомогательные сервисы локализации доступными для системы инжекции зависимостей. Затем добавьте следующий код для конфигурации RequestLocalizationOptions в приложении.

services.Configure<RequestLocalizationOptions>(options =>{   var supportedCultures = new[]    {        new CultureInfo("en"),        new CultureInfo("de"),        new CultureInfo("fr"),        new CultureInfo("es"),        new CultureInfo("ru"),        new CultureInfo("ja"),        new CultureInfo("ar"),        new CultureInfo("zh"),        new CultureInfo("en-GB")    };    options.DefaultRequestCulture = new RequestCulture("en-GB");    options.SupportedCultures = supportedCultures;    options.SupportedUICultures = supportedCultures;});

Вам необходимо указать языки или культуры, которые вы планируете поддерживать в своем приложении. Культуры представлены в .NET классом CultureInfo, который содержит информацию о форматировании чисел и дат, календарях, системах письма, порядках сортировки и других вопросах, зависящих от местности проживания конечного пользователя. Перегрузка конструктора класса CultureInfo, используемого здесь, принимает строку, представляющую имя языка и региональных параметров (культуры). Допустимые значения - это коды ISO 639-1, которые представляют язык (например, en для английского языка), с необязательным кодом субкультуры ISO 3166, который представляет страну или диалект (например, en-GB для Великобритании или en-ZA для Южной Африки). В приведенном выше примере поддерживается несколько языков, включая одну субкультуру - британский английский, который был установлен в качестве культуры по умолчанию.

3. Теперь, когда RequestLocalizationOptions настроены, их можно применить к промежуточной прослойке локализации запросов, которую необходимо добавить в метод Configure после app.UseRouting():

app.UseHttpsRedirection();app.UseStaticFiles();app.UseRouting();var localizationOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>().Value;app.UseRequestLocalization(localizationOptions);

Установка культуры запроса

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

  • QueryStringRequestCultureProvider, который получает культуру из строки запроса

  • CookieRequestCultureProvider, который получает культуру из файла cookie

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

1. Первый шаг - создать папку с именем Models и добавить в нее файл класса с именем CultureSwitcherModel.cs.

using System.Collections.Generic;using System.Globalization; namespace Localisation.Models{    public class CultureSwitcherModel    {        public CultureInfo CurrentUICulture { get; set; }        public List<CultureInfo> SupportedCultures { get; set; }    }}

2. Добавьте в проект папку с именем ViewComponents и в нее добавьте новый файл класса C# с именем CultureSwitcherViewcomponent.cs. Затем замените содержимое на следующий код:

using Localisation.Models;using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Localization;using Microsoft.AspNetCore.Mvc;using Microsoft.Extensions.Options;using System.Linq; namespace Localisation.ViewComponents{    public class CultureSwitcherViewComponent : ViewComponent    {        private readonly IOptions<RequestLocalizationOptions> localizationOptions;        public CultureSwitcherViewComponent(IOptions<RequestLocalizationOptions> localizationOptions) =>            this.localizationOptions = localizationOptions;         public IViewComponentResult Invoke()        {            var cultureFeature = HttpContext.Features.Get<IRequestCultureFeature>();            var model = new CultureSwitcherModel            {                SupportedCultures = localizationOptions.Value.SupportedUICultures.ToList(),                CurrentUICulture = cultureFeature.RequestCulture.UICulture            };            return View(model);        }    }}

3. Добавьте новую папку в папку Pages и назовите ее Components. Внутри добавьте еще одну папку с именем CultureSwitcher. Затем добавьте Razor View в default.cshtml и замените существующее содержимое следующим:

@model CultureSwitcherModel <div>    <form id="culture-switcher">        <select name="culture" id="culture-options">            <option></option>            @foreach (var culture in Model.SupportedCultures)            {                <option value="@culture.Name" selected="@(Model.CurrentUICulture.Name == culture.Name)">@culture.DisplayName</option>            }        </select>    </form></div>  <script>    document.getElementById("culture-options").addEventListener("change", () => {        document.getElementById("culture-switcher").submit();    });</script>

Компонент представления - это простой select элемент, заполненный поддерживаемыми культурами, которые были настроены в Startup. Представление, в котором он находится, использует дефолтный get метод, что означает, что отправленное значение появится в строке запроса с именем culture. QueryStringRequestCultureProvider предназначен для поиска элемента в строке запроса по ключа culture (и/или ui-culture).

CurrentCulture для запроса определяет местное форматирование которое будет использоваться для таких вещей как даты и числа. CurrentUICulture используется, чтобы выбрать правильный ресурс, содержащий переведенные строки. В следующей статье этой серии я рассмотрю, как использовать ресурсные файлы для локализации статического контента. Для CurrentCulture и CurrentUICulture можно установить разные значения, но чаще имеет смысл, чтобы оба эти значения совпадали. Если установлено только одно из них (например, через одно значение строки запроса), то значение присваивается обоим свойствам.

4. На этом этапе у вас, вероятно, у вас появилось несколько красных волнистых линий в только что созданном представлении - откройте файл _ViewImports.cshtml и добавьте вторую и третью директивы using, приведенные ниже, вместе с последней строкой, которая позволяет вам использовать tag-хелпер для рендеринга компонент представления:

@using Localisation@using Localisation.Models@using System.Globalization@namespace Localisation.Pages@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers@addTagHelper *, Localisation

5. Включите компонент переключателя культуры на страницу макета, используя подход с tag-хелпером, как показано здесь в последней строке.

<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">    <ul class="navbar-nav flex-grow-1">        <li class="nav-item">            <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>        </li>        <li class="nav-item">            <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>        </li>    </ul></div><vc:culture-switcher/>

6. Измените Index.cshtml, включив код в блок кода и HTML-код для таблицы, которая отображает различные биты данных:

@page@using Microsoft.AspNetCore.Localization@model IndexModel@{    ViewData["Title"] = "Home page";    var requestCultureFeature = HttpContext.Features.Get<IRequestCultureFeature>();    var requestCulture = requestCultureFeature.RequestCulture;} <div class="text-center">    <h1 class="display-4">Welcome</h1>    <p>Learn about <a href="http://personeltest.ru/aways/docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>     <table class="table culture-table">        <tr>            <td style="width:50%;">Culture</td>            <td>@requestCulture.Culture.DisplayName {@requestCulture.Culture.Name}</td>        </tr>        <tr>            <td>UI Culture</td>            <td>@requestCulture.UICulture.Name</td>        </tr>        <tr>            <td>UICulture Parent</td>            <td>@requestCulture.UICulture.Parent</td>        </tr>        <tr>            <td>Date</td>            <td>@DateTime.Now.ToLongDateString()</td>        </tr>        <tr>            <td>Currency</td>            <td>                @(12345.00.ToString("c"))            </td>        </tr>        <tr>            <td>Number</td>            <td>                @(123.45m.ToString("F2"))            </td>        </tr>    </table></div>

При первом запуске приложения культура для запроса задается AcceptHeadersCultureRequestProvider. Когда вы используете раскрывающийся список для выбора разных культур, культура задается QueryStringCultureRequestProvider. Попробуйте добавить ключ ui-culture в строку запроса с другим значением ключа culture (например, https://localhost:xxxxx/?culture=es&ui-culture=de), чтобы посмотреть, что произойдет.

Резюме

Эта статья представляет собой введение в локализацию в Razor Pages. В ней приведен пример конфигурации культур, которые вы хотите поддерживать в своем приложении, и то, как передать эту конфигурацию промежуточному слою локализации. Она демонстрирует, как культура для текущего запроса работает с точки зрения форматирования содержимого для отображения. Она также демонстрирует, как вы можете позволить своим посетителям изменить культуру в соответствии с их предпочтениями.

Вы могли заметить, что, хотя названия дней и месяцев переводятся автоматически на основе календаря, связанного с текущей культурой, остальное статическое содержимое остается на английском языке. В следующей статье я покажу, как использовать ресурсные файлы (.resx) для управления несколькими переводами для этого типа контента.


Подробнее о курсе.


Читать ещё:

Подробнее..

Локализуем приложение на React Native

11.09.2020 02:18:44 | Автор: admin
В ходе разработки одного из наших приложений нам понадобилось сделать поддержку мультиязычности. Задача была дать пользователю возможность менять язык(русский и английский) интерфейса приложения. При этом текста и контент должны переводиться на лету.

Для этого нам нужно было решить 2 задачи:
1. Определить текущий язык приложения.
2. Использование глобального состояния для перевода на лету.

В этой статья попробую подробно расписать как мы решили данные задачи. И так поехали.

Определяем текущий язык устройства


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

import {NativeModules, Platform} from 'react-native';let deviceLanguage = (Platform.OS === 'ios'        ? NativeModules.SettingsManager.settings.AppleLocale ||          NativeModules.SettingsManager.settings.AppleLanguages[0] // iOS 13        : NativeModules.I18nManager.localeIdentifier

Для ios мы извлекаем язык приложения через SettingsManager, а для android через нативный I18nManager.

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

Переводим на лету


Для управления глобальным состоянием мы используем MobX, но вы можете использовать другое решение.

И так мы должны создать класс(мне нравится называть модель), который будет отвечать за глобальное состояния текущей локализации. Создаем:

// ключ локального хранилища, в котором будем записывать текущий langconst STORE = '@lang-store';// список русскоязычных стран const RU_LANGS = [  'ru',  'az',  'am',  'by',  'ge',  'kz',  'kg',  'md',  'tj',  'tm',  'uz',  'ua',];class LangModel {  @observable  lang = 'ru'; // по умолчанию  constructor() {    this.init();  }  @action  async init() {    const lang = await AsyncStorage.getItem(STORE);    if (lang) {      this.lang = lang;    } else {      let deviceLanguage: string = (Platform.OS === 'ios'        ? NativeModules.SettingsManager.settings.AppleLocale ||          NativeModules.SettingsManager.settings.AppleLanguages[0] // iOS 13        : NativeModules.I18nManager.localeIdentifier      ).toLowerCase();      if (        RU_LANGS.findIndex((rulang) => deviceLanguage.includes(rulang)) === -1      ) {        this.lang = 'en';      }      AsyncStorage.setItem(STORE, this.lang);    }}export default new LangModel();


При инициализации нашей модели мы вызываем метод init, который берет локаль либо из AsyncStorage, если там есть, либо извлекаем текущий язык устройства и кладет в AsyncStorage.

Далее нам нужно написать метод(action), который будет менять язык:

  @action  changeLang(lang: string) {    this.lang = lang;    AsyncStorage.setItem(STORE, lang);  }


Думаю, что тут все понятно.

Теперь самое интересное. Сами переводы мы решили хранить простым словарем. Для этого создадим js файл рядом с нашей LangModel, в котором мы поместим наши переводы:

// translations.js// Да, за основу мы взяли русский. export default const translations = {  "Привет, Мир!": {en: "Hello, World!"},}


Далее реализуем еще один метод в LangModel, который будет принимать на вход текст и возвращать текст текущей локализации:

import translations from './translations';  ...  rk(text) {    if (!text) {      return text;    }    // если локаль ru, то переводить не нужно    if (this.lang === 'ru') {      return text;    }    // если перевода нет, кинем предупреждение     if (translations[text] === undefined || translations[text][this.lang] === undefined) {      console.warn(text);      return text;    }    return translations[text][this.lang];  }


Все, наш LangModel готов.

Полный код LangModel
import {NativeModules, Platform} from 'react-native';import {observable, action} from 'mobx';import AsyncStorage from '@react-native-community/async-storage';import translations from './translations';const STORE = '@lang-store';// список ru локали const RU_LANGS = [  'ru',  'az',  'am',  'by',  'ge',  'kz',  'kg',  'md',  'tj',  'tm',  'uz',  'ua',];class LangModel {  @observable  lang = 'en';  constructor() {    this.init();  }  @action  async init() {    // Берем текущую локаль из AsyncStorage    const lang = await AsyncStorage.getItem(STORE);    if (lang) {      this.lang = lang;    } else {      let deviceLanguage: string = (Platform.OS === 'ios'        ? NativeModules.SettingsManager.settings.AppleLocale ||          NativeModules.SettingsManager.settings.AppleLanguages[0] // iOS 13        : NativeModules.I18nManager.localeIdentifier      ).toLowerCase();      if (        RU_LANGS.findIndex((rulang) => deviceLanguage.includes(rulang)) > -1      ) {        this.lang = 'ru';      }      AsyncStorage.setItem(STORE, this.lang);  }  @action  changeLang(lang: string) {    this.lang = lang;    AsyncStorage.setItem(STORE, lang);  }  rk(text) {    if (!text) {      return text;    }    // если локаль ru, то переводить не нужно    if (this.lang === 'ru') {      return text;    }    // если перевода нет, кинем предупреждение     if (translations[text] === undefined || translations[text][this.lang] === undefined) {      console.warn(text);      return text;    }    return translations[text][this.lang];  }}export default new LangModel();



Теперь мы можем использовать метод rk для локализация текста:

<Text>{LangModel.rk("Привет, Мир!")}</Text>


Посмотреть как это работает можно в нашем приложении в AppStore и Google Play (Нажать на иконку (!) справа вверху, пролистать вниз)

Бонус


Конечно, писать каждый раз LangModel.rk это не круто. Поэтому мы можем создать собственный компонент Text и в нем уже использовать LangModel.rk

//components/text.jsimport React from 'react';import {Text} from 'react-native';import {observer} from 'mobx-react';import {LangModel} from 'models';export const MyText = observer((props) => (   <Text {...props}>{props.notTranslate ? props.children : LangModel.rk(props.children)}</Text>));


Так же нам может понадобиться, например, менять логотип приложения в зависимости от текущей локализации. Для этого можно просто менять контент в зависимости от LangModel.lang (не забудьте обернуть ваш компонент в observer(MobX))

P.S.: Возможно такой подход вам покажется не стандартным, но он нам понравился больше чем то, что предлагает react-native-i18n

На этом у меня все. Всем спасибо!)
Подробнее..

Гайд по тестированию локализации и интернационализации, а также большой и полезный checklist

19.01.2021 10:15:06 | Автор: admin

Привет, хабровчане. Сегодня я хочу осветить и обсудить тему локализации (L10N) и интернационализации (I18N). В интернете и, в том числе и на Хабре уже есть полезные и интересные статьи, но часто они дают более-менее общую информацию о подходах, без углубленной информации о том, что и как можно проверить. Я бы хотел с вами поделиться своим опытом, просуммировать кое что из статей, которые вы можете найти в интернете, а также постараюсь описать большой checklist с самыми распространёнными кейсами как для локализации, так и для интернационализации. В чеклистах я буду стараться упоминать только те проверки, которые вы можете сделать сами, без (глубоких) знаний языка новой для вас локали.


image


Что такое I18N, L10N и G11N?


Для начала давайте в целом разберём, что же такое интернационализация, локализация и, как следствие глобализация (globalization) и для чего это всё нам нужно.
Зачем же нам нужна локализация? В первую очередь распространение нашего продукта на глобальный рынок. Чем в большем количестве стран он будет доступен, тем больше ширится список потенциальных и фактических клиентов. Следующим пунктом является так называемый "customer satisfaction", ведь всем приятно пользоваться продуктом на родном языке, даже если вы хорошо владеете иностранными. Как следствие из пунктов выше наш доход и прибыль увеличиваются! Стоит сразу сказать, что локализация не равно перевод. Локализация это перевод и культурная адаптация продукта к особенностям определенной страны или региона. Несколько хороших примеров частных случаев локализации можно посмотреть тут, а я пока продолжу.
Хоть английский и является самым распространённым интернациональным языком, но участники глобального рынка не ограничиваются одними США и англоговорящими странами. Показательным примером будет тот же Tik-Tok, активных пользователей которого насчитывают около 1 миллиарда, а количество скачиваний на сегодняшний день перевалило за 2.6 миллиарда. При этом большинство пользователей данного приложения из США, Индии и Китая. И такая тенденция просматривается на всём рынке приложений.


Как же можно создать локализованное приложение? Тут я могу выделить несколько подходов:


  1. В принципе можно пойти в лоб и создать по 1 приложению на каждый регион/страну. Такой вариант очень дорого и неудобно поддерживать, ведь работать нужно будет с каждым продуктом отдельно. Понятно, что никто так делать в наше время не будет =)
  2. Далее приходит на ум более удобный вариант создать 1 приложение, которое включает в своём коде локализацию для всех необходимых вам регионов/стран. Вариант уже лучше, но и его достаточно сложно будет поддерживать. Да и хранить инфу о всех регионах/странах значит сильно увеличить размер приложения + велика вероятность, что данные локализации будут вплотную пересекаться с основным кодом приложения.
  3. Как итог наших умозаключений, мы приходим к мысли, что было бы удобно создать продукт, в котором региональные и культурные особенности (текст, картинки, форматы даты, времени и т.п.) будут вынесены в отдельные блоки (никакого хардкода в переводимых местах), которые будут подгружаться при использовании того или иного региона/страны. Данный набор ресурсов называют "локалью" (locale).

Такой вариант дизайна приложения имеет множество плюсов:


  • Помогает избежать хардкода для ресурсов, которые должны быть переведены. Если вы переключились на какой-то регион/язык, но видите текст не на ожидаемом языке это явно баг, если вы изначально не решили, что определённые места не будут переведены (подробнее об этом можно узнать в разделе о псевдо-локализации ниже)
  • Файлы, нужные для локали, уже предопределены, их удобно отслеживать, обновлять и создавать новые для новых локалей.
  • В случае, если нужно добавить новую локализацию, то всё, что нужно сделать создать нужные данные для вашего региона/страны и подгрузить их в приложении. И да, вы уже знаете, что и где нужно тестировать!
  • Также стоит отметить, что не нужно хранить все локали изначально в вашем продукте. Такой подход уменьшает изначальный размер приложения.
  • Баги, найденные при тестировании локализации, как правило, будут связаны непосредственно с локалью, а не с самим приложением. Если баг связан с кодом приложения, то скорее всего проблема связана с тем, что данный ресурс не был вынесен в локаль или не был переведён, т.е. это баг интернационализации вашего приложения, либо самой новой локали.

Интернационализация (I18N)


Звучит интересно, но как же нам заставить всё это работать именно в таком виде? Тут нам на помощь приходит интернационализация. Интернационализация процесс разработки приложения, при котором код самого приложения независим от любых языковых и культурных особенностей региона/страны (cultural specific data). Internationalization принято сокращать как "I18N", где 18 это число символов между "I" и "N". Суть интернационализации в том, чтобы сделать процесс локализации проще, дешевле и быстрее. Реализацию I18N обычно начинают на ранних этапах проекта, чтобы подготовить ваш продукт к будущей локализации.
Во время процесса интернационализации определяют, что будет изменяться для будущих локалей (например текст, изображения и т.п.) и выносят эти данные во внешние файлы. Также во время интернационализации нужно добавить возможность изменять календари, форматы даты, времени, цифр, денежных символов и в целом символов, специфичных для определенных языков и многое другое. Как итог, в идеальном варианте, добавление новой локали не должно требовать от нас изменения исходного кода продукта!


Локализация (L10N)


Теперь можно поговорить чуть подробнее и о локализации. Локализация (localization или L10N) это процесс перевода и культурной адаптации продукта к особенностям определенной страны, региона. Как упоминалось выше, на этой стадии участники разработки продукта работают с локалями внешними ресурсами (файлами), которые подгружаются приложением для загрузки локализации для вашей страны/региона. Нюансов, на которые стоит обратить внимание, очень большое количество и их я приведу в разделе с чеклистом ниже, а пока хочу выделить основные зоны локализации:


  • текст и связанные с ним функции (например сортировка, поиск, поддержка спец. символов и т.п.)
  • документация (мануалы, гайды, FAQ, helps и т.п.)
  • форматы даты и времени
  • формат чисел
  • формат денежных величин
  • поддержка различных календарей
  • изображения (картинки, иконки)
  • звук (в частности, озвучка, если таковая имеется)
  • реклама (текстовая, аудио, видео)
  • и т.д.

Глобализация (G11N)


Завершая обзорную часть, хотелось бы ещё упомянуть термин Globalization (G11N), который используется для обозначения комбинации I18N и L10N. Также он используется для обозначения процесса, благодаря которому компания может выпустить свой продукт на глобальном рынке. Честно говоря не скажу, что есть конкретное определение глобализации вашего продукта (т.е. использования такого количества локалей, после которого ваша глобализация достигает 100%), поэтому я бы охарактеризовал процесс глобализации формулой вида: G11N = I18N + n*L10N, где n количество локалей, используемой вашим продуктом.
Напоследок я бы хотел ещё указать сокращение для Translation T9N. На практике используется редко, но тоже встречается.


Тестирование локализации. Метод псевдо-локализации (Pseudo-localization)


Разобрав что есть что, можем перейти непосредственно к тестированию локализации. Здесь я бы выделил 2 подхода: когда у нас есть локаль и когда её нету. С первым вариантом всё просто, берём локаль и проводим необходимый комплекс операций для проверки её качества. Но, как ни странно, 2й вариант тоже имеет место на жизнь и будет крайне полезен, когда интернационализация вашего продукта только завершилась и у вас ещё нету новой локали. В данном случае нам очень поможет техника псевдо-локализации (Pseudo-localization approach). В рамках этого подхода вам нужно подготовить псевдо-локаль (сделать это может и сам тестировщик, не имеющий знаний нужного языка), используя любой другой язык и добавить в файлы необходимые вам данные, например спец. символы определенного языка. Также можно добавить большее количество символов в строки, чтобы проверить будет ли обрезаться текст (truncate), ведь текст может стать длиннее после перевода на новую локаль и не вместиться в отведённое для него пространство. Ещё такой подход поможет вам найти проблему с объединением строк (concatenation) и проблемы, связанные с отображением шрифта, если таковые имеются. Для того, чтобы такие проблемы можно было проще найти, то в начало и конец строки можно добавить какой-нибудь символ. К примеру Microsoft использует такой подход ещё с 90х и вставляет квадратные скобки для обозначения начала и окончания строки.


Для более наглядной иллюстрации нашёл хороший пример. Вот скриншот оригинального приложения
image


А вот как это же приложение выглядит после подгрузки псевдо-локали с использованием всех подходов, описанных выше:
image
В принципе, вы без труда сможете обнаружить здесь целый ряд проблем, которые нужно обдумать и решить.


Собирая всё вышесказанное вместе, ниже вы можете найти скриншот, на котором изображено то, что без труда может выявить псевдо-локализация:
image


Internationalization checklist


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


  1. Установка и удаление продукта при использовании локали, отличной от дефолтной. Раз мы можем и должны использовать различные локали, то мы должны иметь возможность устанавливать и удалять приложение, используя любой язык.
  2. Настройка приложения на локали, отличной от дефолтной. Все изменения в настройках должны сохраняться и использоваться.
  3. Приложение должно работать на окружении, локаль которого отличается от дефолтной локали нашего приложения.
  4. При запуске приложения на новой локали вам нужно проверить, что форматы даты, времени, спец.символы алфавита, денежных валют, календари и прочие вещи, связанные с культурными особенностями можно переключать в приложении без каких-либо ошибок (вручную или автоматически). Как правило такие ошибки выявляются при первом запуске новой локали.
  5. Локализованный текст, изображения и прочие ресурсы не вшиты (hard-coded) в приложение. Баги такого рода вы найдёте достаточно быстро, ведь, к примеру, оставшиеся английские слова будут сразу видны на фоне азиатского текста.
  6. Также я бы посоветовал обратить внимание на то, что документы (к примеру гайды, FAQ и т.д.) переключаются на нужный вам язык при смене локали.

Localization checklist


Разобравшись к тому, что можно отнести к проверка интернационализации, давайте перейдём к самой масштабной части данной статьи. Для удобной навигации я разобью все проверки на разделы и приведу примеры для большей наглядности. Очень хорошим источником знаний мне послужила Globalization Overview документация от Microsoft.


image


Региональные и культурные особенности


Раздел, на проверки которого нужно обратить внимание в первую очередь. Сюда можно внести:


Календари


В мире используются разнообразные календари и это стоит учитывать, когда вы оцениваете кто будет вашей аудиторией и удобство использования вашего приложения для этого региона. В большинстве англоязычных стран, а также на территории СНГ используется Григорианский календарь (Gregorian Calendar). Если же ваше приложение нацелено на глобальный рынок, то вы должны иметь возможность использования других календарей. К примеру можно выделить следующие: японский, буддийский, хиджринский, еврейский лунный и тайваньский. Одно из основных различий между календарями заключается в том, что каждый из них может иметь разное значение года для текущей даты, в зависимости от старта исчисления времени текущего периода. Давайте рассмотрим несколько примеров различий разных календарей:


  • 2016 год по григорианскому календарю это двадцать восьмой год в японской эре Хэйсэй и 1437 год в календаре хиджры.
  • Первый день года может не быть 1 января.
  • Китайский Новый год приходился на 8 февраля (в 2016 году) по григорианскому календарю.

Продолжительность года и месяцев может варьироваться, также как и способы обработки високосных лет. Даже первый день недели может начинаться в день, отличный от понедельника (Европейские страны) или воскресенья (США). Ну а напоследок стоит отметить, что в некоторых локалях может использоваться более одного календаря как, например, в японской локали на Windows.
image


Форматирование дат


Когда мы говорим о дате, обычно мы подразумеваем такие ее составляющие как день, месяц и год. Однако стоит отметить, что в мире не существует какого-либо общего используемого стандарта отображения этих данных, а в некоторых случаях различия могут существовать даже в разных регионах одной страны.
Для отображения даты обычно используется маска вида DD/MM/YYYY, где D день, M месяц, а Y год. При этом количество букв в каждой части обозначает количество символов, которые будут указаны в каждой секции. Например для маски вида DD/MM/YYYY дата будет выглядеть как 16/06/2021, а для маски вида DD/MM/YY 16/06/21.


По полноте отображения даты я бы выделил 4 основных формата:


  1. короткий (short) 16.06.2020
  2. средний (medium) 16 Jun 2020
  3. длинный (long) 16 June 2020
  4. полный (full) Monday, 16 June 2020

Не стоит забывать и о символах-разделителях. В зависимости от формата, разделители могут отличаться. Самые распространенные косая черта (/), точка (.), пробел ( ).


Каждый отдельный элемент в дате может быть записан в своём формате, который может меняться в зависимости от региона. Давайте возьмём в качестве примеру дату "16.06.2020" и посмотрим на различные варианты записи её составляющих:


  1. День: 01, 1
  2. Месяц: 06, 6, June, Jun, J
  3. Год: 2020, 20
  4. День недели: Monday, Mon, Mo, M, 01, 1

Варианты, представленные выше, даже достаточно экзотические типа J, M и т.д., на самом деле не являются чем-то из-ряда вон выходящим. К примеру все эти варианты для использования вы можете найти в системных настройках языка и региона в MacOS.


Говоря об не самых распространённых вариантах записи, я бы хотел обратить ваше внимание и на различные элементы и составляющие даты, которые могут быть использованы:


  • День недели (Monday)
  • Месяц (June)
  • День месяца (1)
  • Год (2020)
  • Эра (AD)
  • День года (153)
  • Неделя года (23)
  • Неделя месяца (1)
  • День недели в месяце (1)
  • Квартал (2)

Подытоживая тему с датами, обязательно стоит упомянуть и специфическое написание дат для разных регионов/стран. Давайте сравним даты, написанные в формате таких стран как США, Мексика, Япония (используем длинный формат даты long date):


  • USA -Tuesday, October 12, 1954
  • Mexico: martes 12 de octubre de 1954
  • Japan: 19541012

Как вы видите из примера выше, названия месяцев и дней недели в разных регионах различаются. Однако есть и другие заметные отличия. В Мексике день стоит перед месяцем, всё пишется строчными буквами и добавлен артикль de. В Японии день недели не показан, а для отображения слов "год, месяц, день" используются иероглифы.


Рассмотрим также пример с коротким форматом даты (short date):


  • United States: 10/12/54
  • Mexico: 12/10/54
  • Japan: 54/10/12

В короткой дате мы снова видим, что в мексиканском примере порядок день/месяц/год, в США это месяц/день/год, а для Японии порядок такой год/месяц/день. Это может вызвать путаницу, если не следить внимательно. Например, в зависимости от того, в какой стране вы находитесь, дата, указанная как 07/04/01, может означать:


  • United States: July 4th, 2001
  • Mexico: April 7th, 2001
  • Japan: April 1st, 2007

На сегодняшний день существует достаточное количество различных API, которые прекрасно работают с датами и примеры выше показывают, почему стоит их использовать. Они не только будут обрабатывать формат правильно, но также будут отображать правильные переводы для длинных дат, что позволит сократить расходы на перевод.


Форматирование времени


Как и в случае работы с датами и календарями, форматы времени не являются константой во всем мире. Хоть самым распространённым представлением является "часы, минуты, секунды", формат их написания и разделительные символы могут сильно различаться. Различия могут быть даже в рамках разных регионов одной страны. Ниже вы найдёте различные варианты отображения форматов времени и комментарии к ним:


  • Использование 12-часового или 24-часового формата.
    В большинстве европейских и азиатских регионов используется 24-часовой формат времени вместо 12-часового (AM/PM), который, к примеру, используется в США. Также AM/PM часть может отображаться на языке страны, а местоположение этой части может быть как до, так и после числового значения времени.


  • Разделительный символ для часов, минут и секунд.
    Хотя двоеточие (:) и является самым распространённым разделителем, в некоторых азиатских языках используются идеографические символы. Кроме того, в некоторых регионах требуется использование символов "h", "m" и "s" для соответствующей части при отображения времени.


  • Отображение часовых поясов.
    Наиболее распространенным форматом отображения часового пояса является формат вида: GMT +3:30. Давайте его разберем на составляющие. Один из вариантов отображения часового пояса, по совместительству самый распространённый, это отображение времени по Гринвичу (используется аббревиатура GMT Greenwich Mean Time) или его современной замены UTC (Coordinated Universal Time). Затем следует символ, показывающий смещение времени в положительную (+) или отрицательную (-) сторону от данного стандарта. Далее же идут конкретные значения смещения, отображаемые в часах и минутах. (В некоторых часовых поясах используется 30-минутное или 45-минутное смещение.) Например, часовой пояс для Бангалора, Индия, будет отображаться как UTC +5:30, а для острова Чатем, Новая Зеландия, это будет UTC +12:45. Другой способ отображения часовых поясов использование названий местных часовых поясов.



При проверке отображения часовых поясов вы должны принять во внимание следующее:


  1. Не все страны используют местные названия для часовых поясов.
  2. Аббревиатуры часовых поясов не уникальны.
  3. Не во всех странах используется летнее время, при этом летнее время может начинаться и заканчиваться в разные дни для разных стран.
  4. Один часовой пояс может иметь много разных названий в зависимости от страны и языка.
  5. Как упоминалось выше, смещение может быть не только на пол часа или час, но также и на 15-минутное значение (к примеру UTC +12:45 для острова Чатем в Новой Зеландии).

По аналоги с датами, хочу привести примеры возможных вариантов записи времени, а также возможные элементы для использования.
По полноте отображения даты можно вновь выделить 4 основных формата:


  • короткий (short) 23:20 (часы, минуты)
  • средний (medium) 23:20:59 (часы, минуты, секунды)
  • длинный (long) 23:20:59 GMT+3 (часы, минуты, секунды, часовой пояс)
  • полный (full) 23:20:59 Moscow Standard Time (часы, минуты, секунды, полное локальное обозначение часового пояса)

Каждый элемент выше может писаться в своём формате, например:


  • Часы: 1-12, 01-12, 0-23, 00-23, 0-11, 00-11, 1-24, 01-24
  • Минуты: 01, 1
  • Секунды: 01, 1
  • Часовой пояс: GMT+3, Moscow Standard Time, Belarus Time, bymsq, Europe/Minsk, +0300, +03:00, GMT+03:00

Если углубиться и разбить время на элементы для использования, то я бы выделил следующие:


  • Часы (07)
  • Минуты (08)
  • Секунды (09)
  • Обозначение времени суток (AM/PM)
  • Часовой пояс/Временная зона (GMT+3)
  • Миллисекунды (000)

Интересный момент касательно обозначения времени до и после полудня: в некоторых системах, к примеру на Mac OS, вы можете задать свои обозначения вместо стандартных AM и PM.


Первый день недели


Как упоминалось выше, первый день недели может варьироваться в зависимости от региона/страны. Этот пункт стоит выделить отдельно, т.к. часто он остаётся незамеченным, но от этого он не становится менее важным.


Форматирование чисел


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


  1. Разделитесь для тысяч
    Разделительный символ для тысячных значений отличается в зависимости от региона/страны. К примеру в США используется запятая (,), в Германии точка (.), а в России, Беларуси, Швеции пробел ( ).


    • США запятая (1,147)
    • Германия точка (1.147)
    • Россия, Беларусь пробел (1 147)

  2. Разделитель дробной части
    В качестве символа разделителя дробной части обычно используются точка (.) или запятая (,).


    • США точка (1,147.55)
    • Германия запятая (1.147,55)
    • Россия, Беларусь запятая (1 147,55)

  3. Отображение отрицательных чисел
    В зависимости от страны, отрицательный знак может находится как до, так и после числа. В качестве альтернативной записи также используется взятие числа в круглые или квадратные скобки, а в некоторых случаях число и вовсе может быть окрашено в определенный цвет (чаще всего красный).


    • -123
    • 123-
    • (123)
    • [123]

  4. Отличие чисел от их десятичного аналога
    Форма чисел может отличаться от локали к локали и сильно отличаться от тех, что мы используем на ежедневной основе (латинские цифры). Также стоит держать в уме, что в некоторых шрифтах может быть на одно число больше, чем в латинском речь об использовании числа 10 как отдельного числа.


    • Латинские числа 0 1 2 3 4 5 6 7 8 9
    • Арабские числа
    • Японские числа
    • Корейские числа

  5. Группировка чисел
    Речь о количестве символов, содержащихся между каждым разделителем для всех групп цифр, которые появляются слева от десятичного разделителя (единицы, десятки, сотни и т.д.). В большинстве культур группировка идёт по 3 числа (к примеру Англия 123,456,789.00), однако есть и исключения, например в Хинди все части числа, кроме сотен, группируются по 2, а сами сотни по 3: 12,34,56,789.00


  6. Местоположение символа процента (%)
    Как и в случае со знаком отрицания, его местоположение и форма записи может варьироваться:


    • 98%
    • 98 %
    • %98
    • 98 pct

  7. Нумерованные списки
    В разных регионах нумерованные списки могут использовать разные цифры, как стандартные (латинские), так и, к примеру, римские. В некоторых случаях могут встречаться и более экзотические варианты, например нумерация по системе Iroha в Японии.



Форматирование значений валюты


В качестве символа валюты может использоваться заранее определенный символ (например европейский евро , Доллар США $, Новый Израильский Шекель ), комбинация букв (Доллар США USD, Белорусский рубль BYN), а также их сочетание (к примеру новый тайваньский доллар пишется как NT$). Местоположение символа валюты может быть как до, так и после цифрового значения суммы. Стоит также отдельно выделить, что для отображения отрицательных значений сумм могут использоваться разные способы:


  • Знак ставится до символы валюты и суммы: UK (-127.54), France (-127,54 )
  • Знак ставится до суммы, но после символа валюты: Denmark (kr-127,54)
  • Знак используется после суммы: Netherlands 127,54-
  • Вместо отрицательного знака используются круглые скобки: US ($127.54)

В качестве разделителя десятичных значений и тысяч в сумме, чаще всего используется тот же разделитель, что и для чисел в этой локали, но бывают исключения. К примеру в большинстве мест в Швейцарии в качестве десятичного разделителя используется запятая (Sfr. 127,54), однако есть исключения, где используется точка (Sfr. 127.54).


Значение температуры


Важно следить правильные ли значения для подсчета температуры используются в вашей локали. Как правило используются значения в Цельсиях (3C) и Фаренгейтах (3F). Здесь стоит ориентироваться на возможные значения шкал Цельсия и Фаренгейта, а также на правила записи чисел, что мы уже обсудили выше.


Системы мер


В большинстве случаев вы столкнетесь с одной из 2х систем: метрическая система мер (метры, литры, граммы и т.д.) и английская система, её ещё называют имперская система (футы, дюймы, фунты и т.д.). Речь идет о таких измерениях как: длина, вес, площадь, объем, обозначение угла и т.п. Таким образом, необходимо убедиться, что если вы имеете дело с измерениями, то можете отображать их с помощью различных систем. Кроме того, убедитесь, что пользователю ясно, какая система используется в данный момент. В некоторых случаях английская/имперская система может быть разбита на подвиды для разных стран. К примеру Mac OS позволяет вам выбрать систему измерений из 3х вариантов: Metric, UK, US.
Интересный факт: зонд Марса был утерян, потому что его система наведения была разработана для одной системы мер, а ученые, использующие ее, думали, что это была другая система мер.


Где и как можно переключить региональные настройки на операционной системе вашего ПК


Вы можете изменить параметры используемые для вашего региона на странице свойств Региональные параметры/Regional Options, затем переходите на Язык и региональные стандарты/Regional And Language Options.


  • Windows 10 Control Panel > Clock, Language and Region > Region (часть настроек тут) > Additional Settings (большая часть настроек тут).
  • Mac OS Apple menu > System Preferences > Language & Region > General (часть настроек тут) > Advanced (большая часть настроек тут)
  • Ubuntu System menu > System Settings > Region & Language

Буквенные и числовые значения


Алфавит/Шрифт


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


  1. Усечение/обрезка слов и предложений.
  2. Не вместимость текста в нужный элемент из-за его увеличения после перевода.
  3. Закодированный (hard-coded) текст.
  4. (Не) отображение спец. символов для данного языка.
  5. (Не) отображение конкретного шрифта.
  6. Объединение нескольких строк в одну.
  7. Размер символов шрифта на экране (к примеру некоторые иероглифы могут быть слишком маленькие на вашем элементе, из-за чего их крайне сложно или невозможно прочитать).

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


  1. Сам шрифт может весить достаточно много и, если у вас нету запаса памяти для таких прожорливых шрифтов, то в процессе работы ваше приложение рано или поздно может выдать Out Of Memory exception и прекратить работу.
  2. На одном из моих game-dev проектов были случаи, когда возникали проблемы при игре людей с разными локалями, например English и French. В этих случаях игра, в лучшем случае теряла соединение с сервером, в худшем крашилась. В такой ситуации, в наихудшей ситуации у вас будет сразу 3 разных локали: у каждого игрока своя + локаль сервера, не совпадающая ни с одной из локалей игроков. Так что есть смысл проверить конект всех локалей со всеми методом тестирования всех пар.

Ориентация текста


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


Сортировка строк


Эта тема достаточно обширная. Здесь я пробегусь вкратце. Больше информации и примеров можно найти в документации Microsoft.
Каждый язык имеет свой уникальный набор правил (иногда более одного) описывающий как языковые строки должны быть отсортированы или сопоставлены в упорядоченный список. Ожидания пользователей от этих списков могут варьироваться в зависимости от того, где представлена информация, например, таблицы, словари, телефонные справочники и т.д. Однако бывают случаи, например для файловых систем или веб-URL, когда согласованность компьютеров важнее правил любого человеческого языка. В таких случаях реализация сортировки может быть изменена под наши нужды. Стоит учитывать, что, как правило, пользователи вообще не думают о сортировке, пока с ней не что-то не так =)
В азиатских языках существует несколько различных порядков сортировки в зависимости от фонетики, радикального порядка и т. д., а сам фонетический порядок может зависеть от контекста.


Формат адреса


Адрес это, пожалуй, самая нестандартная часть для проверки. Здесь стоит быть максимально внимательным и проявлять гибкость при проверке данных. Учитывайте то, что нету универсального порядка записи адреса. В разных странах способ написания может отличаться, к примеру где-то это может быть "Страна/Город/Улица/Дом/Квартира", а где-то "Улица/Дом/Квартира/Страна/Город". Также некоторые данные могут опускаться либо наоборот, добавляться, в зависимости от страны. Есть достаточно распространённый пример: часто бывает так, что какое-нибудь поле, например, "State" (для USA) или "Province" (для Канады) делают обязательным при вводе адреса. Для данных стран такой подход является верным и правильным, но ведь во многих других странах нету такого понятия как "штат". И тут мы сталкиваемся с проблемой, ведь пользователь не знает, что вписать в это, обязательное(!!!), поле.
Крайне важно следить за способом ввода адреса, особенно если вы работаете на проекте связанным с магазинами, доставкой, логистикой и т.п. Но не редки и случаи-исключения, когда официально какой-то район может принадлежать одному населенному пункту, а на сайте он числится за другим. Как показывает моя практика, это скорее частные случаи, специально реализованные для удобства использования на конкретных проектах.
Ещё одним хорошим примером является проверка формата почтового индекса (ZIP code для США или Postal code для остального мира). Как вы уже догадываетесь, почтовый индекс не имеет какого-либо универсального формата или длины, а также он может состоять не только из цифр. Варианты написания почтового индекса можно привести следующие:


  • только цифры, например 5 цифр у США и Франции (85001) или 6 цифр у Беларуси (220123)
  • почтовые индексы Канады состоят из двух групп по три символа M5R 3H5
  • в некоторых странах/регионах код страны или региона вставляют перед почтовым индексом F-92300

Формат телефонных номеров


И опять мы сталкиваемся с тем, что в мире нету универсального формата формат телефонных номеров. Здесь может разниться количество чисел, так и их группировка, использование дополнительных символов и символов-разделителей, таких как дефис (-), точка (.), знак международного префикса (например знак плюс (+)), круглые открывающие и закрывающие скобки (), пробел ( ) и т.д. Обычно для записи номера телефона используется 7-11 цифр.
Давайте рассмотрим несколько примеров форматов телефонных номеров для разных стран (без учета кода самой страны):


  • Китай 1234 5678
  • Франция 01-23-45-67-89
  • Польша (12) 345.67.89
  • Сингапур 123 4567
  • Тайланд (01) 234-5678 или (012) 34-5678
  • Великобритания 0123 456 7890 или 01234 567890
  • США (123) 456 7890
  • Беларусь +375-29-123-45-67

В некоторых странах наравне с международным стандартом набора номера, может использоваться еще и "полный локальный" вариант записи номера телефона. К примеру в Беларуси как раз есть оба варианта. Например, если стандартный номер телефона для населенного пункта имеет вид "123-45-67", то полная запись может выглядеть как 8-029-123-45-67 (полный номер телефона для набора внутри страны), так и +375-29-123-45-67 вариант записи для международных звонков. Также вместо знака международного префикса (+) могут быть использованы его эквиваленты, чаще всего они цифровые. К примеру при замене и звонке из России в Беларусь, номер будет выглядеть следующим образом "8 10 375 код города/мобильного оператора номер телефона", а из Молдовы в Беларусь, следующим образом: "0 0 375- код города/мобильного оператора номер телефона". Как видите, варианты форматов номеров может быть большое количество даже внутри одной страны.
Напоследок, стоит упомянуть про работу со службами, которые могут использовать короткие номера телефонов (к примеру 911, 101 и т.д.). Это ещё один хороший пункт для проверки.
Обязательно ознакомьтесь с тем, какие варианты чаще используются в необходимой вам стране/регионе!


Размеры листов бумаги


Кто бы ждал подвоха тут! И вновь все нюансы лезут из-за разных форматов. К примеру размеры бумаги в США и Канаде (например, Letter, Legal и т. д.) не совпадают со стандартами с других частей света. Например, в большинстве стран Европы и Азии используется всем нам известный формат A4, который имеет немного другие размеры (297 x 210 мм) нежели чем упомянутые выше (например размер Letter в США составляет 279 x 216 мм).


Общие советы по локализации (потенциальные проблемы)


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


image


Изображения


Изображения (картинки, иконки и т.п.) могут весить прилично и не очень целесообразно использовать разные изображения для разных локалей для одних и тех же нужд. Чтобы такого избежать, можно предпринять следующее:


  • не встраивайте текст в картинки/иконки и т.п. Если у вас написан текст поверх изображения, то лучше реализовать текст как отдельный слой и наложить поверх. Так вы сможете обновлять ваш текст заменой значения стринги, а не созданием новой картинки для каждой локали.
  • если вам необходимо использовать изображение с людьми (например ваше приложение пользуется популярностью в европейском, азиатском и африканском регионах), то постарайтесь использовать варианты с силуэтами людей (или другой абстракцией). Так пользователи из разных стран смогут ассоциировать себя с людьми на картинке. Как альтернатива, можно использовать изображение (фото) с людьми разных национальностей. Это поможет избежать неловких ситуаций и улучшит лояльность ваших потребителей.
  • не стоит использовать изображения-ребусы, если на то нет веской причины. То, что будет понятно пользователем одной локали, может быть непонятно или даже вызвать недоумение у пользователей другой локали. Не всегда легко предугадать как тот или иной ребус будет воспринят в определённом регионе.
  • старайтесь не использовать картинки и иконки с различными символами или жестами. В разных культурах они могут быть интерпретированы самыми разными способами, в зависимости от культурных и исторических особенностей того или иного региона. Даже, казалось бы привычные и позитивные жесты, в наши дни могут поменять свой смысл из-за чей-то шутки в интернете.

Числовые и цветовые ассоциации


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


Рекламные ограничения


С рекламой всё тоже не так однозначно. Одни и те же вещи могут иметь различные возрастные ограничения в разных странах. К примеру кино, имеющее ограничение в США 12+, в странах СНГ может иметь ограничение 16+ или даже 18+ по тем или иным причинам. Что-то так вообще запрещается рекламировать в одном регионе/стране, но без проблем можно в другом.


Звуки


Звуки, как и музыкальные ассоциации, тоже могут быть интерпретированы по разному. К примеру часто различается текстовое и звуковое использование звуков животных, природы, механизмов и т.д. Например, если в русской речи мы привыкли, что кот говорит "мяу", то в японском кот уже говорит "ня/няу".


И давайте поговорим немного о функциональности


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


  • гиперссылки могут работать некорректно либо переводить пользователей на некорректные версии сайтов.
  • валидация полей ввода и вывода. Не всегда пользователи могут вводить данные на их языке при использовании их или другой локали, также как и вывод не всегда может отображаться корректно.
  • как писалось выше, сортировка должна работать корректно на каждой локали.
  • в некоторых случая шорткаты клавиатуры могут отличаться в зависимости от используемой локали. К примеру сочетание клавиш для файлов, которые в English локали завязаны на букву F (от слова File), для German локали желательно переделать, чтобы использовалась буква D (от слова Datei), т.к. в данном слове вообще нету буквы F. А такие языки как, например, Китайский, Японский и Корейский вообще не основаны на латинском алфавите. Для таких групп языков обычной практикой является сохранение сокращений исходного языка на основе латыни.

Заключение


Как вы видите, тестирование интернационализации и локализации это интересное и комплексное занятие, на которое должно уделяться приличное время. I18N и L10N очень важные аспекты современных приложений для запуска на глобальном рынке! Локализация не заключается в простом переводе текста с одного языка на другой. При этом заниматься тестированием интернационализации и локализации могут не только соответствующие команды, но и QA инженеры, которые никак не связаны с ними, так как многие аспекты можно проверить без (глубокого) знания языка локали!
Статью можно дополнить ещё большим количеством менее распространённых проверок для частных случаев, например лицензии, карты, обработка кредитных карточек и т.д. и я буду обновлять её по мере появления такого опыта. Также будет здорово, если вы поделитесь своим опытом в комментариях и эта информация появится здесь ещё раньше! Так мы сделаем эту статью ещё полезнее большему количеству людей!
Надеюсь вам была полезна данная информация и вы узнали для себя что-то новое. Буду рад пообщаться с вами по теме в комментариях!

Подробнее..

Кейс Автоматизация добавления учебных курсов на иностранных языках для Workfusion Automation Academy

14.05.2021 18:17:37 | Автор: admin

Automation Academy это онлайн-платформа с курсами по автоматизации, запущенная компанией WorkFusion, Inc. Материалы курсов предназначены для инженеров автоматизации, машинного обучения и дата-аналитиков и тех, кто хочет ими стать. Сейчас у Automation Academy 30+ курсов, 1000+ часов учебных материалов и больше 35 тысяч учеников.

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

Проект

  • обучающая онлайн-платформа на базе LMS Moodle,

  • контент курсов хранится в базе данных,

  • исходный язык английский,

  • целевые языки испанский и японский,

  • платформа, используемая для перевода, Crowdin,

  • объём проекта на исходном языке на январь 2020 без учёта скрытых строк: больше 1,1 млн знаков,

  • объём переведённого контента с апреля 2019 по январь 2020: больше 9 млн знаков.

Проблема 1: лаг между этапами новый курс готов,перевод курса готов и переведённый курс доступен ученикам

Контент-менеджеру приходилось вручную переносить содержимое новых курсов с онлайн-платформы на базе Moodle в онлайн-документ для переводчиков, а затем снова вручную забирать готовые переводы из онлайн-документа.

Если в оригинальный текст курса вносились изменения уже после готовности переводов, изменённую часть приходилось отдавать в перевод отдельно. А поскольку редактировать курс могут сразу несколько человек, на контент-менеджера ложилась дополнительная нагрузка по отслеживанию изменений.

Проблема 2: практическое неудобство добавления локализованного контента вручную

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

Плагин, используемый клиентом для поддержки мультиязычности, обозначает языковые блоки специальными тегами. Но размещение всех локализаций единым текстовым массивом неудобно практически, особенно с учётом объёма контента и наличия HTML-разметки внутри текстов.

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

Решение

Мы в Alconost разработали коннектор для Moodle, который позволяет выгружать контент на исходном языке из клиентской системы в Crowdin и загружать переведённый контент обратно.

Контент, выгружаемый через плагин, преобразуется в HTML (исходный контент содержит HTML-разметку, которую нужно сохранить в локализациях) и отправляется в платформу управления переводами Crowdin. Когда переводы готовы, коннектор принимает от Crowdin локализованный контент в HTML, конвертирует его обратно в формат, понятный плагину, и передаёт его посредством REST API.

Результат

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

При этом есть возможность временно отключить загрузку какого-либо курса в Crowdin и включить её в любой момент. Например, если какой-либо курс активно редактируется, можно исключить его из списка переводимых, закончить работу над ним и выгрузить в Crowdin уже финальную версию текстов.

Как применить у себя

Обратитесь в Alconost за решением задач такого типа. Инженеры Alconost интегрируют в вашу систему специальный плагин Moodle Connect, который сконвертирует выбранные вам курсы для загрузки в переводческую платформу. Там курсы будут переведены профессиональными переводчиками на нужные вам языки. Затем плагин заберёт результаты перевода, сконвертирует их в формат для Moodle и загрузит локализованные курсы в вашу систему.

Посмотрите видео о том, как это работает.

Подробнее о плагине здесь.

Подробнее..

Перевод Как делать гипер-казуальные игры, популярные во всём мире

16.10.2020 10:22:46 | Автор: admin
Изображение создано компанией AlconostИзображение создано компанией Alconost

Гипер-казуальные игры стали трендом на рынке мобильных приложений. В 2019 году число активных пользователей в день в топовых гипер-казуалках составило 94 тысяч. И это самый высокий показатель среди других мобильных игр. В 2020 году гипер-казуальные игры, судя по всему, не теряют популярность: только в первом квартале число установок по всему миру выросло на 103%. А ещё игроки стали проводить в игре на 72% больше времени, чем раньше.

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

Итак, что же нужно делать, чтобы ваша гипер-казуальная игра смогла войти в топ сторов мобильных приложений?

Краткое введение в мир гипер-казуальных игр

Прежде чем углубляться в секреты маркетинга и разработки, давайте поговорим чуть подробнее о том, что же такое гипер-казуальная игра и какие у нее особенности.

Так что именно отличает гипер-казуальные игры и делает их такими запоминающимися?

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

Игра Flappy Bird отличный пример гипер-казуалки: всё, что нужно делать, это нажать на экран, чтобы обойти препятствия и пройти на следующий уровень. Если у вас это не получается, вы просто начинаете игру сначала.

Скриншоты из игры Flappy Bird в App StoreСкриншоты из игры Flappy Bird в App Store

В гипер-казуалках есть и другие игровые механики:

  • тайминговая механика (касание экрана в определенное время);

  • механика укладки блоков (сбор объектов в башню или стену);

  • механика ловкости (делается упор на скорость реакции);

  • механика восхождения/падения (управление движением объекта);

  • механика уклонения (обход препятствий: Flappy Bird отличный пример!).

Основная идея гипер-казуальных игр предложить игрокам мгновенную возможность начать игру, сразу же после загрузки из стора. Не нужно входить в систему, регистрироваться или создавать персонаж просто нажимаешь Играть и начинаешь проходить уровни.

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

Не забудьте о выборе правильной стратегии монетизации. Тут есть несколько вариантов:

  • реклама в приложении (реклама, которая крутится в игре между разными уровнями);

  • покупки в приложении (игроки могут покупать дополнительные инструменты или другие бонусы);

  • оплата премиум-модели (самое большое её преимущество для пользователя полное отсутствие рекламы);

  • кросс-промо или перекрестное продвижение (реклама одной игры появляется в другой игре).

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

Теперь, когда мы разобрались, что такое гипер-казуальные игры, давайте подумаем, как выпустить свою успешную гипер-казуалку.

ASO (Оптимизация мобильных приложений)

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

Давайте посмотрим, как разные элементы ASO влияют на успех и узнаваемость гипер-казуальной игры на глобальном рынке.

1. Локализация описания приложения

Когда вы загружаете приложение в стор, нужно добавить для него описание. Хотя у игры обязательно будет по умолчанию описание на основном языке (например, английском), можно добавить ещё и локализованные описания на разных языках, чтобы охватить другие страны. К счастью, Google Play и App Store позволяют загружать несколько описаний игры.

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

В общем, локализация приложения действительно важна: она помогает привлечь не только англоязычных пользователей, но и значительно расширяет охват аудитории. Например, исследование, проведенное в 2017 году, показало, что почти 50% всех загрузок приложений в App Store выполняют игроки, которые не говорят по-английски. А теперь представьте, какую часть аудитории вы можете упустить, если решите не локализовывать свой продукт на другие языки.

2. Ключевые слова

Ключевые слова это то, что делает игру заметной в сторе. Если вы используете правильные ключевые слова, вы увеличиваете ваши шансы на то, что пользователи найдут именно вашу игру и, следовательно, скачают её.

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

Так что, если вы сделали гипер-казуалку и хотите запустить её на глобальном рынке, нужно выбрать правильные ключевые слова для всех регионов. Советуем обратить внимание на ключевые слова с большим трафиком, которые активно используют ваши конкуренты (тут нужно провести исследование).

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

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

  • Вся работа ведётся через интерфейс сервиса, а не через менеджера. Это значит, что всё, что нужно сделать клиенту, загрузить необходимый контент на платформу Nitro. После этого платформа отправит вам переведённый текст в течение нескольких часов.

  • Быстрые переводы: 68% всех запросов готовы в течение 2-х часов, что особенно актуально для срочных задач.

  • Доступны более 70 языков для перевода, поэтому Nitro отлично подходит для локализации продукта для самых разных и даже нишевых аудиторий.

Учитывая, что гипер-казуальные игры содержат совсем мало текста и должны быть переведены как можно быстрее, такие сервисы, как Nitro, помогают быстро выпускать игры для новых рынков.

3. Локализация скриншотов

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

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

Отличный пример локализации скриншотов игра Magic Jigsaw Puzzles от ZIMAD. Чтобы понравиться японской аудитории, компания специально локализовала скриншоты в сторе под этот регион. В результате количество конверсий выросло на 36%.

Скриншоты игры Magic Jigsaw Puzzles в App StoreСкриншоты игры Magic Jigsaw Puzzles в App Store

Локализация гипер-казуальных игр: полезные советы

Кроме ASO есть и другие лайфхаки, которые помогут с локализацией. Делимся некоторыми из них.

1. Планируйте локализацию заранее

Один из самых важных моментов в локализации и запуске маркетинговых кампаний планировать всё заранее. Локализация это сложный процесс, который включает много этапов. Поэтому важно составить чёткий план. Планирование локализации состоит из нескольких основных этапов:

  • выбор целевой аудитории и соответствующих языков;

  • создание игрового интерфейса, адаптированного под все языки;

  • выбор сервиса для локализации.

Подробнее о каждом пункте.

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

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

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

Наконец, вам понадобится партнёр по локализации, фрилансер или профессиональное агентство с опытом локализации игр и мобильных приложений.

2. Узнайте как можно больше о своей аудитории

Знание целевой аудитории это не только информация о том, на каком языке говорят пользователи. Нужно учитывать и другие факторы, такие как уровень интереса к гипер-казуальным играм и предпочитаемые игровые жанры в целом.

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

А ещё предпочтения внутри самого жанра гипер-казуалок тоже могут отличаться в разных странах. К примеру, игрокам в одном регионе может нравится механика тапов по экрану, а другим механика укладки блоков.

Гипер-казуальные игры в Китае: краткий обзор

Изображение создано компанией AlconostИзображение создано компанией Alconost

На азиатском рынке игр MMO-RPG (массовая многопользовательская онлайн-игра), MOBA (многопользовательская онлайновая боевая арена) и RTS (стратегия в реальном времени) давно стали популярными жанрами. Но кажется, игроки в Китае уже успели полюбить и гипер-казуальные игры. Потому что около 50% всех загрузок игр в Китае это гипер-казуалки. И размер китайского рынка открывает множество перспектив для разработчиков.

Итак, на какие особенности китайского рынка обратить внимание?

  • Локализация ключ к успеху. Если вы уважаете местную культуру и демонстрируете это в игре, игрокам это точно понравится! К примеру, можно ввести новые специальные символы для китайских праздников (скажем, для Китайского Нового года).

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

  • Длинные сессии: по сравнению с западной аудиторией, где игровая сессия длится около 3-х минут, китайские игроки проводят в игре до 5-и минут.

  • Более высокая терпимость к внутриигровой рекламе. Китайская аудитория более терпима к рекламе, и это действительно многообещающая возможность для монетизации игр.

Всё это пример особенностей только одного региона. Для каждого рынка нужно учесть его уникальные черты. Поэтому постарайтесь найти время, чтобы провести тщательное исследование каждого рынка перед запуском игры.

3. Создавайте специальные ивенты и промоакции

В гипер-казуальных играх часто можно встретить изменение дизайна к таким праздникам, как Рождество, Пасха, Китайский Новый год или даже Фестиваль цветения сакуры в Японии.

А ещё разработчики иногда вводят новых персонажей примером может стать игра Crossy Road и ее рождественское обновление с девятью новыми талисманами (с изображениями эльфа, оленя и других символов Рождества).


Поэтому советуем заняться не только переводом текста, но и подумать о культурной локализации внутриигровых ивентов. Культурная локализация подразумевает изменение игрового дизайна и добавление новых элементов и фраз (например, замену стандартных фоновых деревьев цветущими вишнёвыми деревьями в честь Фестиваля цветения сакуры в Японии).

Но такая локализация требует глубокого понимания конкретного события. Поэтому нужно предварительно изучить аудиторию через локальные форумы или сообщества игроков.

4. Вовлекайте местное сообщество игроков

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

Поэтому советуем комбинировать профессиональный перевод с переводом силами локального сообщества геймеров. Это помогает получить более качественный и быстрый результат.

Профессиональный перевод подразумевает работу с фрилансерами или агентством по локализации. А перевод сообществом означает привлечение ваших игроков (на Reddit, Discord и других платформах), которые помогают с переводом или фидбэком. По нашему собственному опыту, перевод от сообщества это самый быстрый способ уточнить или проверить именно мелкие, но важные, культурные детали и нативные термины.

Вместо итогов

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

Цель локализации не просто выпустить игру, нужно чтобы аудитория полюбила её. Поэтому важно потратить время и силы на профессиональную локализацию и реакция геймеров вас точно порадует.

О нас

Alconost профессионально занимаетсялокализацией приложений, игр и сайтовна более 70 языков. Лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджмент проектов 24/7, любые форматы строковых ресурсов. Мы также делаемвидеоролики.

Подробнее..

Из песочницы Как открыть компанию в UK, привлечь инвестиции и получить кэшбэк от государства?

04.10.2020 20:13:41 | Автор: admin


Великобритания место, которое часто выбирают для иммиграции IT-cпециалисты. Это выход на мировой рынок, развитая инфраструктура, близкий многим английский язык и многое другое. Объединенное Королевство ежегодно входит в топ стран, лучших для релокейта. Стоит ли переезжать в Великобританию и искать здесь инвестиции, как получить налоговые льготы и обосноваться?

Личный опыт


Меня зовут Анна Качурец. В 2019 году я продала свою долю в логистическом маркетплейсе GroozGo в Москве и решила исполнить мечту: переехать в Лондон. В этот город я влюбилась еще во время учебы в магистратуре, мне нравилось здесь все: дурацкий дождь каждый час, английский юмор и дружелюбность, так по-королевски контрастирующая со снобизмом.

Я переехала в Объединенное Королевство в 2019 году по Graduate Entrepreneur Visa (сейчас она называется Startup Visa), получив добро от университета, где училась. Endorsement можно получить в течение 5 лет после окончания вуза.

После переезда я стала помогать финтех-проектам с русскими корнями выходить на рынок Англии занималась бизнес-девелопментом. Через год со стартап-визы перешла на 5-летнюю Global Tech talent и занялась своим бизнесом ProperQuid помогаю технологическим компаниям запустить бизнес в Великобритании.

Почему Великобритания?


Facebook, Google и еще 500 других мультинациональных корпораций неспроста выбрали Великобританию своим европейским хабом. Открыв компанию в UK, бизнесмены выводят свой бизнес на совершенно другой уровень. Вот несколько причин, почему:

  • В Великобритании действует английское право, которое главенствует во всех международных отношениях. Это сильно упрощает документооборот: любой договор можно написать и на салфетке, и в мейле нет необходимости в стопке документов в оригинале и заявлениях, написанных от руки.
  • Открыть компанию в Англии можно онлайн, это по силам любому желающему. Процедура очень быстрая и дешевая. К примеру, моя компания предлагает помощь с регистрацией юридического лица: через 24 часа вы станете владельцем бизнеса в Великобритании.
  • Расчетный счет также возможно открыть онлайн, например, в онлайн-банке Transferwise или Revolut. Работа банков также упрощена, банки не требуют бумаги на каждую оплату и документы на подрядчиков.
  • В англоязычных странах правила ведения бизнеса похожи. В UK начинаешь мыслить не в рамках одного рынка или страны, а глобально: границы в голове и в бизнесе стираются.
  • Великобритания находится в прекрасных торговых отношениях и с ЕС (несмотря на Brexit), и с Америкой, и с Азией. С английскими компаниями желают сотрудничать компании со всего мира без исключения.
  • Из Англии можно управлять командой разработчиков из России или Белоруссии, менеджерами из Азии, потому что нет значительной разницы во времени. Есть возможность успеть на встречу в Германии или посетить выставку в Нью-Йорке, потому что путь занимает всего несколько часов.
  • В Великобритании относительно невысокие налоги, а в сочетании с Российской компанией это идеальный вариант оптимизации налогов. Например, за дивиденды придется заплатить всего 7,5% (для сравнения, в Америке 30%, а в Ирландии 20%), а при определенной структуре компании можно избежать налога на прибыль.
  • Государственная поддержка здесь колоссальная: подать на грант или получить 30% кэшбек дело нехитрое. Также в UK есть популярная программа льготных кредитов для новых бизнесов.
  • В Англии можно и нужно искать инвестиции здесь сидят все банки, акселераторы и венчурные фонды мира.

Представители какой профессии чаще всего переезжают в Великобританию?


Во-первых, айтишники тут у многих технологических компаний европейские хабы. Если в UK у человека на руках job offer, то ему с вероятностью 99% дадут рабочую визу (если он не нарушал законы Великобритании), в США, в аналогичном случае, визу одобрят лишь каждому пятому, а с нынешней политикой Трампа еще реже.

Во-вторых, технологические предприниматели тут для них есть целых три варианта виз: Innovator, Startup и Global Tech Talent. На последнюю даже убрали квоту, никаких лимитов Англия открыта всем специалистам из технологического сектора.

В-третьих, банкиры и финансисты, ведь Лондон экономический центр мира. И наконец, научные сотрудники: ведущие английские университеты хантят по всем странам.

Великобритания в цифрах


В стране живут почти 4 миллиона экспатов, это 6% населения. При этом население Лондона на 31% составляют люди, которые родились не в Великобритании.

В Рейтинге HSBC Англия занимает лишь 27 место из-за политической нестабильности после Brexit, однако в рейтинге самых счастливых стран Англия тринадцатая, выше США и Германии. Великобритания на 19 месте по качеству жизни, для сравнения Россия на 70, Белоруссии в списке нет.

Русские в Великобритании


Иммигрантов из России здесь много: по неофициальным данным более 300,000, а после 2014 года, это количество увеличилось. Экс-россияне с любовью называют Лондон Лондонградом или Moscow-on-Thames.

Сообществ русских в Лондоне немало, есть несколько групп в телеграмме, например, Tech in UK, Свои в Лондоне, а также бизнес-клубы InCircle, ERSN, London Business Club.

Рай для стартапов


Лондон третья по величине инновационная экосистема после Силиконовой Долины и Нью Йорка. В этой стране родилось 5000 стартапов, оценка которых совокупно превышает 34 млрд. Город стал прародителем 186 акселераторов. Ежегодно в столице Англии собирается 3,5 тыс различных технологических митапов общей численностью 1,6 млн человек. Венчурные инвестиции достигли $13,2 млрд в 2019, обогнав все европейские страны.

Много венчурных фондов (среди которых немало и российских), включая Sequoia capital, INDX и SoftBank, имеют представительства в Великобритании. Здесь находятся и ассоциации бизнес-ангелов, Business Angels Association и Angel Investment Network. В Британии существуют привлекательные схемы инвестирования, когда бизнес-ангел может помочь снизить налоги, вложив свои средства в технологический продукт (EIS / SEIS). Встретить инвесторов можно в местах скопления стартапов или на инвесторских встречах, например, Labs от WeWork или на демо-днях, один из которых проводят в финтех-коворкинге Level39.

Размеры инвестиций


Инкубаторы дают стартапам 40-50k взамен 5-7% доли.
Акселераторы, в свою очередь, готовы вложить в проект 50-120к за 7-10% после валидации идеи и запуска прототипа. Самые популярные Founders Factory, Entrepreneurs First, Wayra, Rise Barclays&Techstars, Startupbootcamp, The Bakery и IdeaLondon.

Как остаться в Великобритании?


Технологическим предпринимателям:

  1. Startup Visa одна из самых несложных в получении. До 2019 г. она имела название Graduate Entrepreneur. Для получения не нужно показывать инвестиции, но необходимо письмо поддержки, так называемое, Endorsement letter от акселератора, или университета, или Министерства торговли. Срок действия 1 год, после можно продлить на такой же срок, но снова придётся предъявить спонсорство. Стоимость визы 893
  2. Innovator Visa имеет те же требования, что и Startup Visa, но нужно показать, что в проект было вложено 50,000, источники финансирования не важны. Также нельзя податься без Endorsement letter. Сейчас для получения нужно доказать, что проект инновационный и технологичный. Визу дают на 3 года 4 месяца. Стоимость с учетом страховки: 2500.
  3. Tech Talent Visa самый крутой способ остаться в Великобритании (нет никаких обязательств, где жить и работать). Для этого нужно получить одобрение от Endorsing Body, института ответственного за выдачу виз, техспециалистам его выдаёт Tech Nation. Эту визу могут получить таланты в любой сфере, она подходит как музыкантам, так и режиссерам. Претендентам нужно предоставить два рекомендательных письма от профессионалов из сферы и десять документов, подтверждающих талант (например, претендент сделал успешный стартап, изобрёл что-либо, создал новую программу) и наличие потенциала для развития в Англии. Дают на срок от 1 года до 5 лет. Стоимость: 618 + сбор за соцстраховку (IHS) 400 в год.

Бизнесменам и инвесторам:

  • Sole Representative. Если у вас есть уже компания в России или Европе, то вы можете открыть представительство в UK. Срок действия визы 3 года, стоимость: 1810
  • Investor Visa. Для получения необходимо вложить средства в экономику Англии (английские гособлигации) 2 млн. Срок действия 3 года 4 мес, стоимость: 2823

Работникам по найму:

Tier 2 (Рабочая виза). Достаточно сложная в оформлении виза. Для того, чтобы ее одобрили, нужно предложение-оффер от компании, которая будет спонсировать ваше пребывание в стране. Она должна быть в списках фирм, имеющих право выдавать такое спонсорство. Кроме того, фирме нужно будет доказать, что она не нашла подходящего кандидата в Англии. По рабочей визе необходимо прожить в стране 5 лет, затем 305 дней на ВНЖ (ILR), после можно будет подаваться на гражданство.

Как легко получить ВНЖ?

Есть виза Exceptional Talent, которую дают технологическим талантам. Для получения гражданства по этой визе необходимо прожить 3 года, вместо пяти.
Второй вариант выйти замуж за британца)

Переезжать одному?

Почти по всем визам можно релокейтится с семьей. Однако помните о высокой стоимости жизни, особенно в Лондоне.

Вещи, о которых обычно думают в последнюю очередь


Англия одна из самых дорогих стран Европы. При этом здесь есть много чего бесплатного, например, медицина или музеи. Авиабилеты в Европу стоят меньше, чем в России. На этом, пожалуй, все.

В Лондоне есть несколько зон: от 1 до 4, где первая зона это центр, а четвертая находится дальше всего. Пример расходов во второй зоне:

  • Поездка одну сторону на метро: 2,75
  • Аренда квартиры: студия 800-1500, двухкомнатная 2500-3500/месяц + обеспечительный депозит в двукратном размере месячной платы. Арендодатель может попросить заплатить за полгода вперед.
  • Бутылка пива: 3,50
  • Завтрак в кафе: 13
  • Десяток яиц: 1,99
  • Литр газа: 1,24
  • Биг Мак: 4,29
  • Билет Лондон-Москва : 60-120 (до пандемии)
  • Фитнес абонемент: бюджетный вариант 30-50, повыше уровнем 100-180 в месяц. Урок йоги или пилатеса 15-20.

Зарплаты в Англии


  • Финансисты в среднем забирают домой 112,666 в год
  • Топы компаний и менеджеры по продажам имеют доход 109,278
  • Разработчики 108,623. Например, одни из самых высоких зарплат у IT девелопера в Facebook в среднем 85,000 в год до налогов чуть больше 8 млн руб в год
  • Медицинские работники и врачи тоже получают неплохо. Средняя зарплата ортодонта 99 000, правда в госучреждениях платят в разы меньше 40,036 в год.

Средний уровень зарплат можно посмотреть на ресурсе Glassdoor.

Работу в Англии ищут в LinkedIn, на местных порталах, Totaljobs или Indeed, позиции в стартапах можно посмотреть на Angellist.

Налоги в Великобритании


1. НДФЛ (Income tax). В Англии он рассчитывается по прогрессивной шкале. Зарабатывая до 12,500, вы освобождаетесь от уплаты подоходного налога. Если ваша зарплата составляет 50,000-150,000, вам придется заплатить из них 40%, свыше придется отдать 45%. В среднем зарплата в Лондоне составляет 27,000-35,000.

2. Cоциальные отчисления (NIC, National Insurance Contribution). Данный налог оплачивается вместе с подоходным. Чтобы избежать начислений NIC, ваша ЗП должна быть не выше 8,632 в год. Получая больше этой цифры и до 50,000, вам придется заплатить 12% от суммы, более 50,000 2%.

Например, вы зарабатываете 30,000 в год, НДФЛ составит 20% или 3,500, NIC еще 12% или 2,564. Итого в вашем распоряжении остается 23,936 в год (1,995/месяц).
3. НДС (VAT). НДС составляет 20%.

Компании с оборотом до 85,000 освобождаются от уплаты НДС. Обязательство платить НДС наступает, когда доход компании превысил данный лимит, об этом вы должны сами сообщить в HRMC.

4. Налог на прибыль. В UK он составляет 19%.

Налоговые сервисы


Для расчета налогов физических лиц существует множество сайтов, например, www.tax.service.gov.uk/estimate-paye-take-home-pay/your-pay. Самозанятые могут воспользоваться порталом www.stepchange.org/debt-info/self-employed-income-calculator.aspx.

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

Налоговые льготы


1. R&D tax credit

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

2. SEIS/EIS

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

Льготы распространяются только на налоговых резидентов Соединенного Королевства.
Пример:


Грег продал дом за 250,000, получив 50,000 и вложил их в технологическую компанию. По инвестиционной схеме налог снизился на 14,000. Остальные 200,000 Грег может использовать как угодно. Помимо этого, вычет по налогу на доход по схеме EIS составит 50,000 Х 30% = 15,000. Например, у Грега были затраты на строительство дома в 200,000, подоходный налог в таком случае будет (250,000 200,0000)*45% (доход свыше 150,000 облагается 45% налогом) = 22,500, которые уменьшаются на 15,000, те ему надо будет заплатить только 7,500.

3. Patent Box

Patent Box это законодательный акт, призванный помочь инновационным компаниям снизить корпоративный налог и побудить их продолжать вести предпринимательскую деятельность в Великобритании. Если R&D tax credit нацелен на помощь растущим стартапам, Patent box ориентирован на компании, которые уже успешно коммерциализировали свой проект и вышли в плюс.

Патенты должны быть зарегистрированы в определенных юрисдикциях.

Стоимость подачи на Patent Box составляет около 10,000, поэтому экономически оправдано, когда вы получаете больше от льготы, чем потратите на ее оформление.

Немного о культуре британцев


В бизнес-среде я заметила несколько интересных моментов. Англичане не любят, когда им что-то напрямую продают. Это относится и к B2B, и к B2C. Эффективная реклама в Facebook для них та, где вы делитесь информацией, а не предлагаете купить.

Еще здесь обязательно нужно налаживать контакты перед любой встречей. Выстраивают отношения, например, на общих мероприятиях или за пинтой пива. Не удивляйтесь, если в 17-18 часов, проходя мимо паба, вы увидите толпу людей с бокалами пива. Сделки здесь закрываются медленнее, чем в России, но зато с удовольствием.

В Англии нужно не только понимать, что говорит человек, но и как он это делает. Например, если вы услышите фразу: This sounds very interesting, скорее всего ваш собеседник вообще ничего не понял или считает вашу идею дурацкой.



В Соединенном Королевстве у людей сложности с тем, чтобы говорить о негативных вещах в лицо, поэтому они предпочитают отмалчиваться или не отвечать.

Несмотря на высокие зарплаты и акцент аристократов, англичане такие же люди, как и мы. К иностранцам они привыкли с пеленок, но к русским порой относятся настороженно.
Подробнее..

Скоростной АЦП с нуля. 16 бит за 10 лет

01.12.2020 12:23:05 | Автор: admin
Чего стоит разработать быстродействующий аналого-цифровой преобразователь, почти не имея опыта? Насколько сильно наше отставание в этой области? Есть ли в этой нише шанс найти коммерческое применение своей продукции и отщипнуть хоть кусочек рынка у гигантов мира сего? Выпуская в свет новый 16-битный 80 МГц АЦП, хотим порассуждать на эти темы и рассказать о самой микросхеме и опыте её создания.
image


Введение


2010 год. Тогда многие этим увлекались. Тема быстрых АЦП вдруг стала популярной. Кто-то раньше, кто-то позже, но сразу несколько российских компаний принялись вести разработки в этой области. Не стали исключением и мы. Словно нужно было дождаться, когда рассеется дым горящих вокруг Москвы торфяников, чтобы увидеть, что ниша отечественных скоростных аналого-цифровых преобразователей совершенно пуста. Отставание было гигантским, в несколько поколений. Из наших тогда можно было достать только старые добрые микросхемы серии 1108ПВ 10-14 разрядные АЦП с быстродействием 0,3-1,3 МГц, разработанные еще в советской Риге. Самым крутым считался вильнюсский биполярный 1107ПВ3, тоже родом из 80-х, который имел разрядность 6 бит и мог работать со скоростями до 100 МГц. В это же время западные микросхемы на таких скоростях достигали уже 16 бит! А при меньшей разрядности могли работать на нескольких сотнях мегагерц.

Столь привлекательным казалось попытаться наверстать отставание и заполнить этот вакуум отечественного сегмента АЦП. Было очевидно: кто первый создаст что-то более-менее современное, у того будет шанс монополизировать в дальнейшем весь сегмент. Ввязавшись в гонку тогда, мы смутно догадывались, что путь предстоит неблизкий, но никто не предполагал, что первый верстовой столб на нём будет стоять на отметке в 10 лет


Смог в Зеленограде 2010 г. Фото с сайта Graker.ru

Что за зверь?


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

Наверное, каждый человек, сам того не подозревая, ежедневно имеет дело с АЦП. Электроника окружает нас повсюду, и, если речь идёт о современном устройстве хоть чуточку сложнее штепсельной вилки, в нём наверняка трудится этот девайс. А уж такая привычная нам техника, как смартфоны, видеокамеры, аудиопроигрыватели, игровые станции, и пр. буквально напичканы ими. Аналого-цифровые преобразователи в их составе выполняют разную работу и имеют присущую этой работе архитектуру: это может быть SAR, Delta-sigma, Pipeline, Folded-interpolated, Flash, Dual-slope и т.д. Такое разнообразие видов обусловлено тем, что не существует оптимальной архитектуры для всех типов приложений. С точки зрения исполнения АЦП могут быть встроены в системы-на-кристалле или реализованы в виде отдельных микросхем.


В системах радиосвязи, радиолокации, телекоммуникации зачастую используются быстродействующие АЦП. Быстродействующими считаются преобразователи с частотой выборки более 10 Мвыб/c. Как правило, они имеют архитектуру Flash, Folded-Interpolated или pipeline, хотя в последнее время стали появляться и быстрые SAR.
У любого АЦП довольно много различных параметров. Для высокоскоростных преобразователей ввиду специфики их применения особенно важны динамические SFDR, SNR, IMD. Подробнее об этих и других параметрах можно прочитать здесь.

Первые шаги


Вернемся обратно в 2010 год. Какими наивными мы были! Сейчас уже невозможно сдержать улыбку, просматривая отчёты и презентации, что мы делали тогда. Только с аспирантской скамьи, мы строили честолюбивые планы, как через пару-тройку лет сделаем преобразователь, не менее быстрый и не менее точный, чем у них Ведь опыт разработки быстродействующих АЦП уже был. В нашем портфолио лежал аж 14-битный 100 МГц преобразователь! (Не миландровский.) Правда работал он так:

Вид кристалла и спектр после первой попытки

На выходе этого преобразователя вместо синусоиды был изрезанный резкими провалами меандр. Представляете, два года работы и такое фиаско! SNR 17 дБ вместо расчётных 68. Тем не менее никто не унывал, потому что такие провалы не редки в микроэлектронике. Такова уж специфика, что за каждой схемой, как бы хорошо она не работала на модели, скрывается вопрос а в железе будет работать? Ответить на этот вопрос, и то не наверняка, можно только с опытом.
Итак, мы перевернули страницу и принялись заново разрабатывать 14-разрядный 100 МГц АЦП. Вскоре параллельно с нами начала работать другая, более опытная команда, перешедшая к нам со своими разработками из другой компании. Мы недоумевали тогда, зачем двум командам решать, пусть и разными способами, но одну и ту же задачу? Зачем эта внутренняя конкуренция? Оказывается этим, сами того не подозревая, мы копировали в миниатюре великих мира сего

А как там у них?


Нам было любопытно, как развивалось направление быстрых АЦП у лидеров сегмента. Для примера мы взяли компанию Analog Devices, которая еще в 2010 году удерживала 48% рынка преобразователей, что больше, чем доля 8 последующих конкурентов вместе взятая. Проанализировав и сопоставив официальные даташиты и научные публикации, мы составили следующий таймлайн:



В таблице приведены примерный год выхода и технология выдающихся для своего времени АЦП, а также подразделение компании, занимавшееся разработкой. (У нас нет инсайда, поэтому эти данные отражают лишь наше виденье.)

Не разбирая всех причин такого успеха компании, отметим лишь две наиболее важные для нас, инженеров. Во-первых, это полувековое эволюционное развитие, позволившее накопить внушительный коллективный опыт. Во-вторых, большие финансовые и ресурсные вложения, свидетельствующие о приоритетности этого направления в компании. Над быстродействующими АЦП одновременно работают два подразделения, в Вилмингтоне и Гринсборо (США), причем в разработке каждой микросхемы может быть задействовано до нескольких десятков инженеров. Основной костяк каждой группы это инженеры, которые много лет занимаются исключительно этой тематикой. Иногда у обеих команд получались близкие по характеристикам преобразователи, хоть и шли они каждый своим путём. Зачастую и в этом случае обе микросхемы выводились на рынок. Супербыстрые преобразователи последнего поколения оказались неподъёмными для какого-то одного подразделения, поэтому обе команды вынуждены были объединить усилия.

Долгая дорога в дебрях


Отметка мы здесь на таймлайне вверху демонстрирует, что в области быстродействующих АЦП наше отставание от передовых разработок на сегодня составляет около 10 лет. И это после десятилетней работы! Наверняка кому-нибудь понадобилось бы меньше времени, но именно столько мы потратили, чтобы пробраться сквозь дебри разработки и получить результат, за который не стыдно.

В первое время недостаток опыта и схемотехнических навыков приводил к неоптимальным или даже ошибочным решениям. Учесть все нюансы и найти лучшее решение было затруднительно не только ввиду сложности системы, но и потому, что симуляторы того времени просто не позволяли промоделировать весь АЦП целиком.

Очень скоро выяснилось, что при таких скоростях на параметры влияет не только качество схемотехники самой микросхемы, но и того, что её окружает корпуса и печатной платы. Нужно было учиться разрабатывать платы для таких приложений: ведь сначала не получалось даже повторить демо-плату ADI так, чтобы параметры их же АЦП соответствовали даташиту. Индуктивности использовавшегося корпуса тоже пагубно отражались на характеристиках, поэтому пришлось разработать новый корпус с так называемым донным контактом (exposed pad), чтобы увеличить количество выводов земли.

Качество измерений при производстве ещё один фактор, ограничивающий достигаемые характеристики. При функциональном контроле используется своя оснастка из печатной платы и контактирующего устройства (коробочка, куда вставляется микросхема и прижимается к плате). Предназначенная для больших промышленных тестеров, эта оснастка громоздкая, а значит привносит дополнительные паразиты и губит параметры. К примеру, даже у последнего АЦП мы вынуждены ограничивать скорость и диапазон напряжения питания из-за того, что просто не можем подтвердить в условиях цеха параметры, достигаемые этой же микросхемой, но распаянной на компактной плате. Нечего и говорить о том, что достичь высоких характеристик невозможно без современного измерительного оборудования в первую очередь дорогих генераторов с низким уровнем шума и джиттера, а также высококачественных полосовых фильтров высокого порядка, чтобы отфильтровывать гармоники этих генераторов.


Таймлайн тестовых образцов в ходе разработки микросхемы

За время, что мы работали над этой микросхемой, было сделано 5 запусков. Будучи fabless компанией, каждый запуск обходился нам в копеечку, которую, к тому же, приходилось доставать из своего кармана (из кармана компании, а не из брюк инженеров), так как этот проект не связан с ОКР-ами и финансируется из собственных средств. Помимо цены есть ещё один минус для мелких fabless компаний. Ожидание кристаллов после запуска иногда затягивается до полугода, чем напрочь выбивает из рабочего ритма.
В 2014 году мы готовы были выводить имеющуюся разработку в свет, руководствуясь принципом на безрыбье и рак рыба. Микросхема была откровенно сырая, плохо калибровалась, поэтому хорошо, что к этому моменту вторая наша команда АЦП-шников сделала более хорошую микросхему её и стали производить под именем 5101HB015. Чтобы попробовать превзойти этот АЦП, нам пришлось перейти на новую архитектуру и даже другую фабрику.

И вот, наконец, новая микросхема увидит свет!

Коммерческий рынок. Почему высокоскоростные АЦП?


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

A. Выход на мировой рынок
Наверняка, многие знают: чтобы сделать коммерчески выгодный продукт в микроэлектронике, необходим крупный рынок сбыта. Это связано с окупаемостью R&D, измерительного оборудования, запуска тестовых кристаллов и т.д. Влияет на цену микросхемы и тот факт, что фабрика даёт скидку на пластины при больших объёмах производства. В суровых реалиях российского приборостроения сложно сделать схему, которая бы обеспечила высокий спрос. Тем более, когда существуют такие гиганты как ST, TI, ADI, ну и китайские аналоги любых микросхем, которые можно купить за 3 копейки.

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

С высокоскоростными преобразователями всё иначе. На рынке существуют 3 основные компании, которые развивают направление высокоскоростных АЦП: TI, ADI и Maxim Integrated (последние две объявили о слиянии). Поэтому данный рынок сильно монополизирован. Цены на преобразователи с частотой дискретизации 80 Мвыб/c находятся в районе 80 долларов, что подразумевает серьезную наценку. На habr есть статья, в которой хорошо освещена проблема монополии в микроэлектронике.

Б. Ограничение поставки в Россию и Китай
С каждым годом вступают все более жесткие ограничения на поставки ЭКБ в Россию и Китай. Высокоскоростные точные преобразователи попадают в категорию ограничений. Даже потребители из европейских стран при заказе таких микросхем должны заполнять документацию, связанную с экспортным контролем продукции двойного назначения. Этот аспект тормозит развитие коммерческих устройств, которые могли бы достичь лучших параметров.
Фото с сайтов Mouser, Arrow

В. Улучшение качества собственных продуктов РЭА
На данный момент у нас разрабатывается система ADAS для помощи водителю. Для обработки данных с радара может использоваться новый АЦП, что позволит существенно поднять точностные параметры системы, а также уменьшить стоимость аппаратуры.


Обобщив все эти пункты, мы решили создать коммерческий вариант микросхемы (называться будет MDRA1A16FI), цена которой будет ниже, чем у зарубежных аналогов. Образцы в металлокерамическом корпусе можем предоставить всем заинтересованным уже сейчас, а в пластиковом корпусе QFN-48 в начале 2021 года. Кому интересно, здесь можно оставить заявку на получение образцов. Пластиковый корпус существенно меньше металлокерамического всего 7x7x0.85 мм против 11x11x2 мм, и, следовательно, легче и дешевле.

Что в итоге получилось




Теперь, наконец, о самой микросхеме что в итоге получилось. Микросхема, получившая название 5101HB045, представляет собой 16-разрядный АЦП с частотой дискретизации 80 Мвыб/c. Её характеристики следующие:

Разрядность, бит $N$ 16
Напряжение питания, В $V_{dd}$ 1.8
Полная шкала, В (п-п) $V_{FS}$ 2
Частота преобразования, МГц $f_{s}$ 80
Соотношение сигнал/шум, dBFS (при $f_{IN}$=10/75МГц) $SNR$ 75.0 / 73.1
Динамический диапазон, свободный от гармоник, dBc
(при $f_{IN}$=10/75МГц)
$SFDR$ 94 / 83
Интермодуляционные искажения 3-го порядка, dBc (при $f_{IN}$~10/75МГц) $IMD3$ -92 / -80
Интермодуляционные искажения 2-го порядка, dBc (при $f_{IN}$~10/75МГц) $IMD2$ -105 / -83
Интегральная нелинейность, LSB $INL$ 2.7
Дифференциальная нелинейность, LSB $DNL$ 0.75
Джиттер, пс $T_{j}$ 0.30
Full Power Bandwidth, МГц $BW$ 688
Рассеиваемая мощность (полная, в КМОП режиме), Вт $P_{sup}$ 0.56


Спектр, интегральная и дифференциальная нелинейность

Структурная схема преобразователя:



Микросхема представляет собой одноканальный АЦП конвейерного типа с разрядностью 16 бит. Процесс преобразования происходит в несколько этапов:
  1. Входной аналоговый дифференциальный сигнал подаётся через выводы VINP/VINN на входное устройство выборки-хранения (УВХ).
  2. Сигнал выборки, сохраненный на емкости УВХ, обрабатывается ядром 16-битного АЦП.
  3. Система цифровой постобработки получает цифровой эквивалент обрабатываемой выборки, осуществляет цифровую коррекцию и кодировку в нужный формат (двоичный код со смещением, дополнительный код, код Грея).
  4. Итоговый результат выдается на параллельную шину по LVDS или CMOS интерфейсу.


Схемотехническая реализация этого алгоритма с требуемой точностью потребовала значительной площади на кристалле. Поэтому, выполненный по стандартной 0,18 мкм КМОП технологии, чип получился не маленький:



Микросхема обладает множеством режимов работы, которые можно конфигурировать с помощью SPI интерфейса. Все подробности в спеке. Кстати, мы наконец-то сделали спецификацию по западному стандарту (правда англоязычную) без всяких запутанных ТУ-шных таблиц.

Стало лучше?


Во многом, да, если сравнивать с тем же 5101НВ015:
  • Здесь нет интерливинга. Это означает, что в выходном спектре данного АЦП не будут присутствовать искажения, характерные для преобразователей с интерливингом, что является существенным плюсом при построении, например, SDR систем.
  • Проще пользоваться. Не нужно тратить время на калибровку при запуске или перенастройке микросхемы. Все калибровочные коэффициенты уже записаны во внутреннюю память при производстве.
  • Расширенный список доступных интерфейсов вывода данных: LVDS/DDR (с двойной скоростью) и параллельный КМОП 1,8 / 2,5 / 3,3 В.
  • Улучшенные динамические показатели SNR [69.5 -> 75] и SFDR [81->94]
  • Хорошая статическая линейность: INL 3 (14 бит) -> 2,5 (16 бит), т.е. более, чем в 4 раза лучше.
  • Можно подключить внешний источник опорного напряжения 1,25 В и поднять SNR до 76,7 дБ.
  • Улучшенный софт для отладочного комплекта.


Что не лучше так это скорость преобразования (80 вместо 125 МГц) и потребление (560 против 115 мВт).

Отладочный комплект и софт


Для того, чтобы попробовать этот АЦП в действии, и при этом не заниматься проектированием печатной платы, мы разработали специальный отладочный комплект. В него входят две платы аналоговая (собственно АЦП и обвязка) и цифровая (сбор выходных данных). Обе платы соединяются разъемами и питаются от одного стандартного 5 В блока питания.



Используя этот отладочный комплект, можно легко и быстро проверять свои решения при разработке аппаратуры. Достаточно подключить к разъёму входной сигнал, всё остальное сделает комплект. На плате присутствует источник тактового сигнала и даже источник внешнего опорного напряжения, чтобы проверить, как работает система при опоре 1,25 В. При желании можно подать свой собственный тактовый сигнал через соответствующий разъем.
Самостоятельно собирать и обрабатывать выходные отсчёты с АЦП тоже не нужно. Мы написали новый софт быстрый и автономный. Предыдущая версия требовала, к примеру, предустанавливать matlab-библиотеки, что достаточно неудобно. Программа умеет конфигурировать АЦП, снимать и выгружать с него данные, строить спектр и вычислять по нему характеристики. Данное ПО поставляется в составе отладочного комплекта. Так же, его можно скачать здесь. Кому интересны комплекты, вот ссылка.

Скриншоты отладочного ПО

Работа над ошибками


Да, мы сделали большой рывок, но часть характеристик всё еще не дотягивает до параметров импортных микросхем. Сравним основные характеристики существующих 16 разрядных АЦП с частотой дискретизации 80 Мвыб/c.

Сравнение параметров
5101НВ045 AD9265 ADS5481 ADS5562 MAX19586 AD9266 LTC2163
Производитель МИЛАНДР ADI TI TI Maxim ADI Linear T. (ADI)
Разрядность, бит 16 16 16 16 16 16 16
Скорость, Мвыб/c 80 80 80 80 80 80 80
Интерливинг нет нет нет нет нет нет нет
Входной буфер нет нет да нет да нет нет
Один источник питания да (1.8В) да (1.8В) нет (5; 3В) да (3.3В) нет (1.8; 3.3В) да (1.8В) да (1.8В)
Дизеринг нет да да нет нет нет нет
Делитель тактовой частоты да да нет нет нет да нет
Входной размах 2 В(п-п) 2 В(п-п) 3 В(п-п) 3.56 В(п-п) 2.56 В(п-п) 2 В(п-п) 2 В(п-п)
SFDR @ 10 MHz тип 94 (>88) тип 88 тип 98 тип 85 (>75) тип 96 тип 94 тип 90
SFDR @ 70 MHz тип 83 (>72) (>92) тип 93 н/д тип 84 (>80) тип 93 тип 89 (>82)
SNR @ 10 MHz тип 75 (>74) тип 80 тип 81 тип 83.8 (>79) тип 80 тип 77.6 тип 77.1
SNR @ 70 MHz тип 73.1 (>71) (> 78.7) тип 80.1 н/д тип 79.2 (>77.5) тип 76.6 тип 76.9 (>75.3)
Потребляемая мощность, Вт 0.563 0.308 2.15 0.865 1.11 0.124 0.188
Совместимость одновременно с 1,8/2,5/3,3 В ПЛИС да нет нет нет нет да нет



Недостатком нашей микросхемы является деградация линейности и ухудшение шума при работе в т.н. undersampling режиме (информацию об этом добавили в предыдущую публикацию), т.е. когда полоса входного сигнала находится во второй и выше зоне Найквиста. Это требуется, например, в приложениях с непосредственной дискретизацией ПЧ. Эта деградация происходит из-за относительно высокого собственного джиттера и нелинейности входного УВХ, которая начинает проявляться примерно с 60 МГц.

Зависимость динамических характеристик от частоты входного сигнала

Если, однако, вы обрабатываете сигналы с частотой до 60-70 МГц, то по динамическим параметрам 5101HB045 смотрится в этой таблице, на наш взгляд, вполне достойно.

Что будет дальше?


Поделимся планами по развитию наших высокоскоростных АЦП. Мы полны решимости сделать еще один цикл (надеемся, он пройдёт быстрее, чем за 10 лет) и дотянуть характеристики нашей микросхемы до уровня аналогов. Если конкретно, то:
  1. поднять SNR до 78 дБ, частоту дискретизации до 125 Мвыб/с.
  2. Уменьшить собственный джиттер, увеличить линейность УВХ, и улучшить таким образом SFDR и SNR на высоких частотах входного сигнала.
  3. Добавить дизеринг для работы с маленькими сигналами (более подробно можно узнать об этом в статье на habr).
Приоритетом для себя мы определили высокую линейность и низкий шум.

Вторая наша группа разработчиков приоритетом для себя видит высокую скорость преобразования. В её планах:
  1. В течение 2021 года вывести на рынок АЦП скоростью до 400 Мвыб/с в двух версиях: со встроенным входным буфером и без. Данный АЦП будет также работать в двухканальном режиме с частотой выборки до 200 Мвыб/с каждый.
  2. Этот же АЦП в двухканальном режиме оснастить последовательным выходным интерфейсом Serial LVDS. У схемы с таким интерфейсом существенно меньше выводов. Значит трассировка платы, снятие и обработка данных сильно упрощается. Это заметное преимущество, особенно для многоканальных АЦП.

Уже был запуск тестовых образцов, они показали хорошие параметры, однако потребовали доработки, которая сейчас активно проводится.

Заключение


Итак, за 10 лет мы существенно продвинулись, но впереди ещё много работы. Тяжело догонять столь быстро и давно развивающиеся компании, особенно когда в R&D схем вкладывают большие ресурсы. Как уже упоминалось, направление скоростных АЦП у нас финансируется за счет собственных средств, и они, увы, сильно ограничены. Но все мы видим большое будущее в этом направлении. Будем действовать, руководствуясь нашим негласным девизом: Таких гигантов как ADI в АЦП-строении нам не переплюнуть, но как следует плюнуть в этом направлении уже хорошо.
Подробнее..

Чешский и словацкий геймдев прикольные игры 1990-х современные факты и цифры

10.12.2020 16:09:59 | Автор: admin

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

Чехословакия: немного истории

Первые компьютерные игры были разработаны в Чехословакии в конце 1970-х. С разработкой графических видеоигр экспериментировали на базе военных клубов СВАЗАРМ это аналог советского ДОСААФ.

Популярными платформами того времени были ZX Spectrum и чехословацкий компьютерPMD 85. К слову, игры для них в Чехословакии выпускались даже в 90-х.

Вообще, большинство работ чехословацких программистов текстовые приключения, но есть пара игр, выделяющихся на фоне общей картины. Одна из них Hlpa: это игра, разработанная участники клуба СВАЗАРМ в конце 1980-х. Hlpas (хлипы) похожи на амёб; их родной мир планета Данепа. Хлипам предстоит столкнуться с другим народом сиврамсами. Обратите внимание на анимации: для тех времён они реально очень сложные.

Ещё один интересный пример работы чехословацких гейм-девелоперов Pistn na msci. Это игра в реальном времени про посадку на луну,вот тутесть подробнее о ней.

Скриншот из игры Pistn na msci. Источник иллюстрации: https://herniarcheolog.blogspot.com/2018/03/hra-187-pristani-na-mesici-1987.html Скриншот из игры Pistn na msci. Источник иллюстрации: https://herniarcheolog.blogspot.com/2018/03/hra-187-pristani-na-mesici-1987.html Скриншот из игры Pistn na msci. Источник иллюстрации: https://herniarcheolog.blogspot.com/2018/03/hra-187-pristani-na-mesici-1987.html Скриншот из игры Pistn na msci. Источник иллюстрации: https://herniarcheolog.blogspot.com/2018/03/hra-187-pristani-na-mesici-1987.html

Чехия

Слышали про такие тайтлы, как Mafia, Arma, Beat Saber и Kingdom Come: Deliverance? Все они родом из Чехии! Пройдёмся по самому интересному, что нам удалось найти о геймдеве в стране, знаменитой своими пивоварнями :).

История

После распада Чехословакии в 1993-м была выпущена первая коммерчески распространяемая чешская видеоиграSvtk Bob. Особой популярности игра не снискала. Через пару лет после релиза за её распространение взялась компанияVochozka Trading, которая годом позже выпустила ещё две игры:Tajemstv oslho ostrova (Ослиный остров) и7 dn a 7 noc(Семь дней и семь ночей). И вот эти игры уже стали популярными. Даже спустя 20 лет они удостаиваются летсплеев :)

Ситуация на рынке Чехии сейчас

В 2019-м в Чехиинасчитывалось 110 компаний, специализирующихся на разработке видеоигр, а общее количество гейм-девелоперов в стране оценивалось в 1750 человек. Более 60% компаний при этом были заинтересованы в расширении штата, а эта задача осложняется недостатком учебных программ по дисциплинам, связанных с гейм-девелопментом.

Любопытная особенность чешского геймдев-рынка доминирование местного бизнеса: филиалы международных компаний занимают на рынке скромную долю в 9%.

Оборот чешской игровой индустрии в 2019-м достиг 169,4 млн евро. Это в три раза больше оборота чешской кино- и телеиндустрии. Ожидания на 2020-й преодоление планки в 190 млн евро; конечно, если мировая экономическая рецессия, порождённая пандемией, не внесёт свои коррективы.

В 2019-м в Чехии было создано 65 игр. Ниже разбивка по платформам. Несмотря на быстрый рост сегмента мобильных игр, игры для ПК и консолей всё ещё лидируют.

К слову, Интернетом в Чехии,по данным на январь 2019-го, пользуется 88% населения и это похоже на потолок, т.к. этот процент не изменился в сравнении с январём 2018-го.

А что там на мобильном рынке?

Чешский рынок мобильных игр в последние годы сильно растёт. Основной причиной, как и везде, стала широкая распространённость мобильных устройств и доступа в Интернет с них. Из10,6 млн человек, живущих в Чехии, мобильным Интернетом пользуются 7,85 млн: это около 74% населения.

Распределение по мобильным операционным системам в Чехии на 2019 год. Недостающие 1,17% другие ОС. Распределение по мобильным операционным системам в Чехии на 2019 год. Недостающие 1,17% другие ОС.

Из операционных систем на чешском мобильном рынкедоминирует Android: её выбирают 8 из 10 чешских пользователей. Похоже, чтобы прощупать рынок, целесообразно начинать с релиза своей игры именно для этой ОС.

Статистика от AppAnnie с начала 2020-го по загрузкам мобильных игр и доходу от них в Чехии.Статистика от AppAnnie с начала 2020-го по загрузкам мобильных игр и доходу от них в Чехии.

Интересные события для разработчиков

Game Access conf крупная конференция для разработчиков игр:https://game-access.com/conference/.

Game Developers Session (GDS) ежегодная конференция по разработке игр:https://www.gdsession.com. Это регулярная встреча разработчиков игр из Центральной Европы, особенно из Чехии и Словакии.

Gamer Pie фестиваль видеоигр:https://www.gamerpie.wtf. Проводится в чешском городе Брно.

Кстати, на сайте геймдев-сообщества Брно пишут, что в этом городе больше 30 студий разработки игр:https://brnogamedev.city. Неплохо для города с населением в 381 тыс. человек: это примерно как в Сургуте.

Основные источники цифр и фактов по геймдев-индустрии Чехии:

1.https://gda.cz/wp-content/uploads/2020/07/GDACZ_Study_2020.pdf

2.https://www2.slideshare.net/DataReportal/digital-2019-czech-republic-january-2019-v01

Словакия

Что мы знаем о Словакии? Небольшая площадью чуть больше Эстонии страна в Европе, в которой естьдесятки замков. К слову, один из них,Спишский Град(Spisk hrad), объект Всемирного наследия ЮНЕСКО. Живёт в Словакии5,45 млн человек: чуть больше, чем в Санкт-Петербурге.

Интересно, что городов-миллионников в Словакии нет. В столице, Братиславе (кстати, в Средние века она носила красивое название Истрополис), живёт около 425 тыс. человек: сопоставимо с Тверью. А добраться от Братиславы до австрийской Вены можно быстрее чем за час: между столицами всего 55 км.

Ситуация на рынке Словакии

Кто бы мог подумать, что геймдев в Словакии это быстрорастущая отрасль, поддерживаемая на государственном уровне. По данным Ассоциации игровых разработчиков Словакии (Slovak Game Developers Association) за 2019-й, за последние 4 года поддержку от государства на сумму1,49 млн европолучили более 90 игровых проектов. Согласитесь, это очень даже неплохо для небольшой страны.

В 2020-м в Словакии насчитывается 55 компаний, разрабатывающих игры; годом ранее ихбыло 38, так что рынок растёт. Специалистов в геймдев-индустрии, по данным за 2019-й, в Словакии насчитывалось около 760. В сравнении с 436 специалистами в 2016-м, это рост на 75%. Одних только новых рабочих мест в словацком геймдеве за прошлый год появилось больше 200, причём труднее всего пополнять штат квалифицированными программистами и гейм-дизайнерами.

Оборот игровой индустрии Словакии в 2019-м превысил 51 млн евро. Для сравнения, в 2016-м оборот оценивался в 24,1 млн: рост больше чем вдвое за 4 года.

В 2020-м в Словакии было выпущено 50 игр, причём большинство из них 73% для ПК. Любопытно, что годом ранее доля игр для ПК была меньше: 53%.

Доля релизов под Android в Словакии в 2020-м 60%, а для iOS 44%.

Добавим, что Интернетом в Словакии пользуется около83% населения. Это чуть меньше, чем в Чехии, но тенденции схожи: годом ранее этот показатель в Словакии был почти таким же.

Интересно сравнить оборот индустрии и количество выпущенных игр в Чехии и Словакии. В 2019-м в Чехии, при обороте почти в 170 млн евро, было выпущено 65 игр. А в Словакии, при обороте, грубо, втрое меньшем (предварительная оценка на 2020-й 55 млн евро) в 2020-м было выпущено 50 игр. Выходит, что хоть рынок Словакии и уступает чешскому по обороту, причём весьма существенно, отставание словацких гейм-девелоперов по количеству релизов совсем небольшое.

Немного цифр для разработчиков

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

Статистика от AppAnnie с начала 2020-го по загрузкам мобильных игр и доходу от них в Словакии.Статистика от AppAnnie с начала 2020-го по загрузкам мобильных игр и доходу от них в Словакии.Как видно из диаграммы, за 4 года рынок вырос больше чем в два раза.Как видно из диаграммы, за 4 года рынок вырос больше чем в два раза.

Как мы помним, гейм-девелоперы Словакии затачивают свои продукты преимущественно под ПК. И это неудивительно, ведь почти62% трафикаСловакии приходится на ноутбуки и компьютеры. Трафик с мобильных устройств, хоть и подрос на 12% за год, всё ещё сильно уступает: его доля около 36%.

Геймдев-сообщества Словакии

Геймдев-сообщество в Словакии довольно открытое и активное пожалуй, как и везде :). Немного полезных ссылок: воткарта с расположением офисов разработчикови окологеймдев-сервис-провайдеров, а вотсообществословацких разработчиков игр в Facebook.

Основные источники цифр и фактов по геймдев-индустрии Словакии:

1.http://sgda.sk/wp-content/uploads/2020/05/SGDA-Infographic-2020_V06A-1.pdf

2.http://sgda.sk/wp-content/uploads/2019/08/Slovak-Game-Industry-2019.pdf

3.https://datareportal.com/reports/digital-2020-slovakia

Валюта

Чехия входит в ЕС, но не входит вЕврозону: в Чехии до сих пор своя валюта кроны. Если в вашей игре используется стороннее платежное решение (например, если у вас браузерная игра или селф-паблишинг вне маркетплейса), уделите вопросу оплаты дополнительное внимание. А ещё в Чехии довольно много местных платежных систем. Хорошо, если ваш эквайринг принимает оплату с большинства из них, чтобы у игрока была возможность в пару кликов задонатить в любимую игру :).

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

На каком языке лучше издавать игру в Чехии и Словакии?

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

Вы пока не определились, для какой из этих стран сделать локализацию в первую очередь? Возможно, для Чехии, ведь чешским языком банально владеет больше людей. Общее число говорящих на чешском больше 10 млн, а на словацком около 5,2 млн.

Если вас заинтересовали чешский и словацкий рынки мы в Alconost будем рады помочь слокализацией вашей игрына языки этих стран (у нас переводят только носители языка) и ссозданием рекламного видеос нативной чешской или словацкой озвучкой.

Vea astia so vstupom na nov trhy!

Это Удачи вам с выходом на новые рынки! по-словацки.

Znte-li njak zajmav fakta o eskm a slovenskm trhu, nebude vm vadit, kdy se o n podlte v sekci koment?

Если у вас есть интересные факты о рынках Чехии и Словакии, поделитесь в комментариях? просим мы по-чешски.

Подробнее..

Перевод Как e-commerce бизнесу выйти на новые рынки? 6 важных шагов на пути к локализации интернет-магазинов

04.12.2020 12:06:11 | Автор: admin

В 2020 Covid-19 сделал интернет-продажи ещё популярнее и ускорил выход магазинов в онлайн. Мировой объём розничных онлайн-продаж составил 3,53 триллиона долларов США в 2019 году. И планируется, что к 2022 году эта цифра вырастет до 6,54 триллионов долларов США.

Многие владельцы бизнесов осознали, насколько важно присутствие онлайн. В апреле 2020 года число новых интернет-магазинов увеличилось в два раза по сравнению с предыдущим месяцем и в полтора раза по сравнению с апрелем 2019 года.

Коронавирус по-настоящему оживил отрасль электронной коммерции. Поэтому выход на рынки новых стран и поиск способов для удовлетворения потребностей местных покупателей стали как никогда важны. Но с чего же начать?

Источник: freepik.comИсточник: freepik.com

Какие рынки лидируют в e-commerce?

Компания Goldman Sach Group в докладе, опубликованном в конце июля 2020 года, заявила, что рост доли онлайн-покупок в объёме всей розничной торговли достигнет 19% в 2020 году по сравнению с ранее прогнозируемыми 16%. Это обусловлено высокими темпами роста e-commerce бизнеса в США, Западной Европе, Бразилии и большинстве стран Азиатско-Тихоокеанского региона, говорится в докладе. Ожидается, что онлайн-продажи займут около 22% рынка розничных продаж к 2023 году.

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

Сегодня 85% мировой покупательской способности находится за пределами США. Китай крупнейший в мире рынок электронной коммерции, где ежегодный оборот от онлайн-покупок оценивается примерно в 672миллиарда долларов США. За Китаем следует США с оборотом в 340миллиардов долларов, и незначительно от них отстают Великобритания, Япония, Германия, Франция, Южная Корея, Канада, Россия и Бразилия.

Что такое рост и расширение бизнеса?

Расширение в глобальном смысле означает увеличение числа рынков сбыта, и соответственно, увеличение числа клиентов. Но не всё так просто: для достижения успеха потребуется поработать с каждым из рынков в отдельности. Невозможно придумать единую стратегию развития для всех рынков одновременно.

Покупатели со всего мира хотят, чтобы процесс покупки был им понятен и знаком. Что же для этого нужно?

Правильный ответ локализация онлайн-магазина.

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

Локализация онлайн-магазина: процесс от А до Я

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

Перевод сайта это лишь самый минимум, который вы должны сделать. Это критически важно, так как около 80% транзакций в Интернете происходят на родном языке пользователя. Согласно статистике, на неанглоязычные страны приходится 20% от общего числа мировых продаж на рынке электронной коммерции. Именно поэтому необходимо предоставлять информацию, хотя бы самую важную, на родном языке пользователя.

Давайте теперь рассмотрим отдельные элементы онлайн-магазинов, которые обязательно нужно адаптировать к предпочтениям иностранных покупателей.

1. Локализация взаимодействия с пользователем

User experience (UX) это то, как пользователь взаимодействует с продуктом и то, какие эмоции он от этого испытывает. Даже если интерфейс сайта или приложения полностью соответствует культурным нормам страны, он может показаться странным для пользователей. Приведём несколько примеров.

  • Информация о покупателе при оформлении покупок в корзине. В некоторых регионах, например, в России, традиционно используются три поля: имя, фамилия и отчество. Но в других регионах, таких как Азия или Америка, пользователи ожидают увидеть только два поля: имя и фамилия. Более того, для жителей некоторых восточноевропейских стран привычнее вначале увидеть поле для ввода фамилии, а не имени. Покупатели могут прийти в замешательство (или даже отказаться от использования сайта или оформления покупок), если увидят непривычную форму заказа.

  • Длина слов и размер шрифта. Слова на различных языках часто сильно отличаются по количеству букв. Например, слово пользователь на английском, русском и немецком выглядят так User, Пользователь и Benutzer соответственно. Игнорирование размера слов может негативно сказаться на дизайне сайта и читабельности.

  • Направление текста. Не все языки читаются слева направо, как русский или английский. В зависимости от направления текста может изменяться и последовательность действий пользователей. К примеру, на экране русскоязычного сайта кнопки Назад и Далее будут расположены слева и справа соответственно. Но на сайте на иврите кнопки должны находиться на противоположных сторонах.

  • Цвета, графика и форматирование. Для американца или европейца сайт в азиатском стиле может быть слишком непривычным из-за пёстрого оформления в виде яркого лоскутного одеяла, сотканного из текста, изображений, GIF-файлов, анимаций и иконок. А азиатский дизайн может показаться перегруженным информацией для западных пользователей, которые больше привыкли к чётко структурированным блокам, в то время как посетителям из Азии вполне комфортно пользоваться таким ярким сайтом.

Вид сайта может сильно отличаться в зависимости от географического положения пользователей. Представим, что вам нужно купить кондиционер для дома. Результаты выдачи на англоязычном сайте Amazon будут сильно отличаться от результатов на сайте Amazon Japan, локализованном для японского рынка.

Сайт Amazon (США)Сайт Amazon (США)Сайт Amazon (Япония)Сайт Amazon (Япония)

Вот несколько очевидных отличий:

  • В английской версии сайта функции товара изображены на иконках вместо длинного описания.

  • Японские товары сопровождаются более длинным текстовым описанием, без использования иконок для функций. По крайней мере, так это выглядит для тех, кто не владеет японским языком.

  • Названия английских товаров выделены жирным чёрным шрифтом.

  • Японские названия, похоже, ничем не отличаются от остальной части описания товара (используется такой же синий шрифт).

2. Локализация корзины

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

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

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

Вид корзины может отличаться от региона к региону. Но покупатели всегда ожидают, что их взаимодействие с корзиной покупок на любом сайте будет таким, как они привыкли.

Источник: проект 2Chekout по стратегии адаптации корзины для Visicom MediaИсточник: проект 2Chekout по стратегии адаптации корзины для Visicom Media

Как правило, для оформления заказа в корзине используется либо одностраничный, либо двустраничный шаблон. Если используется двустраничный шаблон, то за общим перечнем расходов и оформлением заказа следует страница с общей информацией. У одностраничного шаблона такая страница отсутствует.

Популярность шаблонов варьируется в различных регионах: например, в США пользователям нравится одностраничный шаблон, тогда как покупатели из Европы предпочитают двустраничный шаблон, в котором есть страница со сводной информацией по заказу.

На самом деле предпочтения пользователей могут различаться даже в странах из одного региона: по данным платформы 2Checkout пользователи из Германии предпочитают одностраничный шаблон, а во Франции двустраничная версия даёт больше конверсий.

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

3. Локализация цен на товары

При определении цен на товары и услуги важно сохранять прозрачность и учитывать привычки покупателей. Добавьте возможность видеть цену в местной валюте со всеми применимыми налогами и сборами. Например, технология GeoIP помогает определять местоположение покупателей и автоматически отображать цены в их местной валюте.

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

4. Локализация способов оплаты

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

Источник: 2CheckoutИсточник: 2Checkout

Согласно статистике, предпочтения по платёжным системам широко варьируются от региона к региону.

Хотя около 86% мировых онлайн-платежей осуществляются с помощью кредитных карт и PayPal, в Китае 79% онлайн-заказов совершаются с использованием Alipay или WeChatPay. Поэтому при выходе на китайский рынок советуем предложить эти два варианта покупателям, чтобы получить более высокий коэффициент конверсии. В Бразилии очень популярны Boleto и карты с возможностью оплаты в рассрочку: на их долю приходится более 50% онлайн-заказов. В Европе востребован SEPA Direct Debit, а японские покупатели предпочитают Konbini.

Конечно, настроить различные платёжные системы под каждую страну, где вы продаёте товары, достаточно сложная задача. Если вы планируете расширить свою деятельность в различных регионах, предпочтительнее использовать международную систему электронных платежей, к примеру, 2Checkout.

Такая система даёт ряд преимуществ:

  • Интеллектуальная маршрутизация платежей позволяет перенаправлять платежи между различными платежными шлюзами. Она служит в качестве механизма переключения при сбое и повышает скорость авторизации карт.

  • Система Account Updater, разработанная совместно Visa и MasterCard, которая автоматически обновляет номера и срок действия карт клиентов на основании информации от банка-эмитента.

  • Логика повторных попыток позволяет свести к минимуму сбои и восстановить до 20% неудачных транзакций;

  • Управление возвратными платежами и возмещением средств поможет уменьшить число таких случаев, обеспечивает точные и своевременные платежи, а также соответствие всех сумм списания денежных средств фактической стоимости товаров.

5. Локализация в соответствии с нормативно-правовой базой и налоговой системой страны

Независимо от того, где вы находитесь: в России, США или любой другой стране, вам придётся платить налог на добавленную стоимость (НДС) по каждой транзакции и другие налоги. Ситуация усложняется ещё тем, что по отношению к потребителям и бизнесу применяются различные правила.

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

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

Нормативно-правовое соответствие это ещё один важный пункт для компаний, которые выходят на мировой уровень.

Генеральный регламент ЕС о защите персональных данных (GDPR), Закон штата Калифорния о защите конфиденциальности потребителей (CCPA), Федеральный закон О персональных данных это лишь примеры законодательной базы, которая регулирует порядок сбора, хранения и использования компаниями личных данных потребителей в различных странах.

Источник: 2CheckoutИсточник: 2Checkout

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

Для обеспечения полного соответствия требованиям рекомендуется сотрудничать с e-commerce платформой, которая помогает обеспечить соблюдение стандартов различных законов о конфиденциальности.

6. Локализация службы поддержки пользователей

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

Мы советуем сделать отдельный телефонный номер и завести отдельную почту для каждого региона. Если у вас нет бюджета, чтобы содержать команду техподдержки пользователей, то вы можете использовать простой и удобный вариант страницу F.A.Q. с наиболее популярными вопросами от пользователей. Электронная почта также отличный вариант.

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

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

Заключение

В 2020 году стало очевидно, что потенциал e-commerce рынка невероятно большой. Для предприимчивых бизнесменов сейчас сложились идеальные условия, чтобы вывести продукт или услугу на новые рынки и увеличить свой доход. И качественная локализация это один из ключей к успеху на мировом рынке.

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

Профессиональное агентство по локализации поможет сориентироваться в особенностях зарубежных рынков, чтобы можно было сосредоточиться исключительно на обновлении и улучшении продуктов и повышении лояльности клиентов.

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

О переводчике

Перевод статьи выполнен в Alconost. Alconost занимаетсялокализацией игр,приложений и сайтовна более 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаем рекламные и обучающие видеоролики, продающие, имиджевые ролики, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее..

Final Fantasy VII, или когда английский перевод игры это косяк на косяке

20.10.2020 18:21:10 | Автор: admin


Весной 2020 года студия Square Enix все же выпустила долгожданный ремейк культовой игры Final Fantasy VII.

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

Сегодня расскажем, какие ошибки японцы допускают в английских локализациях игр на примере Final Fantasy. И почему такое вообще происходит. Поехали.

Японский геймдев не любит английский язык


Исторически так сложилось, что японские игры раньше выпускали только для своей внутренней аудитории. Но ближе к 2000 студии стали тестировать выходы на глобальные рынки и делать локализации, в том числе для США.

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

К примеру, третьего Ведьмака делала польская студия, но именно англоязычная версия игры считается основной.


Для японцев же есть только один основной язык японский. Остальные второстепенные. И отношение к таким локализациям соответствующее.

В английской версии классической Final Fantasy VII куча грамматических ошибок. Некоторые из них просто звучат криво, но не влияют на геймплей.



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



В оригинале говорится: Не говори такого, а то накличешь.
На английский перевели как: Перестань вести себя как идиот и лезь.


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



Клауд кричит: Barret, be careful! Attack while its tails up! Its gonna counterattack with its laser!

Кажется, все понятно. Если не обращать внимание на ошибку its-its.

Баррет, осторожно! Атакуй, когда он поднимет хвост. Он будет контратаковать лазером.

Игроки следовали совету и атаковали, когда чудище поднимает хвост. И тут же были атакованы лазером. Несколько таких повторов и game over. Даже не представляем, сколько людей бросили играть из-за того, что их размазывал в пыль первый же босс. Dark souls еще не существовало, поэтому игроки не умели получать удовольствие от игр, где ты умираешь каждые пять минут.

На самом деле правильный перевод следующий:

Attack while its tails up, and its gonna counterattack with its laser!

Чувствуете разницу?

Если ты атакуешь его, когда он поднимет хвост, он контратакует лазером.

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

Русскоговорящим игрокам не впервой бороться с кривыми локализациями. Мы играли в GTA: San Andreas, переведенный через Promt. Нас уже ничего не удивит.



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

Впрочем, японцам было все равно тогда и так же все равно сейчас.

Whatever косяк локализации, который стал мемом


Скволл Леонхарт, главный герой Final Fantasy VII, в английской версии игры очень любил слово Whatever. Во многих диалогах хотя бы один из вариантов звучал именно так.

Это стало причиной появления огромного количества мемов. И каким же было удивление игроков, что на самом деле ничего похожего на Whatever в оригинальном сценарии игры не было.

Просто локализаторы схалтурили и второстепенные варианты ответов в диалогах переводить не захотели.



Главного героя спрашивают, как он себя чувствовал на поле битвы. На английском есть варианты ответов Хорошо, Напуган до смерти, Неважно. Вот только на японском третий вариант звучит как Сойдет или Ничего особенного. Разница есть, правда?



Еще один вариант. Персонаж по имени Селфи выглядит хмуро. Скволлу удается ее подбодрить и в ответ на ее подначку он произносит Yeah, whatever. Грубовато звучит. Но на самом деле фраза warukatta na на японском это неформальное извинение. Что-то вроде Ну прости.



Наверное, наиболее известная сцена с Whatever. Скволл летит на космическом корабле вместе с Риноа, ловит ее на руки, прижимает к себе, и они говорит:

But now Squall, youre the one who gives me the most comfort. Comfort and happiness And annoyance and disappointment, too!

Но сейчас Скволл, ты единственный, с кем мне действительно уютно. Я чувствую себя спокойной и счастливой А еще раздраженной и разочарованной!


И после этого оба героя отвечают Whatever Да пофиг. Романтичный и чувственный момент похерен начисто. А ведь на самом деле они оба говорят Прости меня.

И подобных косяков в оригинальной Final Fantasy VII было очень много. Японцы просто не заморачивались над переводом.

Final Fantasy VII Remake: годы прошли, а проблемы остались


Бен Сабин, переводчик игры Final Fantasy VII на английский язык, в интервью с командой локализации утверждал, что в отличие от оригинальной версии игры, перевод теперь находится на уровне.



Если верить локализаторам, работа над языковыми версиями игры стартовала еще в 2015, когда был анонсирован ремейк.

5 лет. Целых 5 лет велась работа над локализациями. А в результате получилось снова что-то невразумительное.

На тематических форумах много сообщений о том, что локализация снова косячит. К примеру, один из игроков носитель японского и английского написал, что Бен Саблин напрочь загубил сценарий игры своим переводом.

А итальянский геймер снял сравнение английских и итальянских диалогов игры. И в некоторых сценах они отличаются полностью и несут совсем другие смыслы.

Можете посмотреть самостоятельно. В видео английская озвучка, а в субтитрах игрок написал прямой перевод итальянских реплик.



Вот один из примеров из видео:

Английская локализация:
SOLDIERs may attack on command, but I hear they make good guard dogs too.

[Солдаты могут атаковать по команде, но я слышал, что они хороши и в качестве сторожевых псов.]

Перевод итальянской локализации:
Here is the loyal mastiff of Shinra, the ruthless SOLDIER.

[Это верный мастиф Шинры, безжалостный солдат.]


Фразы настолько далеко по смыслу друг от друга, что восприятие сцены полностью меняется.

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

Добавляет пикантности еще сомнительная рекламная кампания на рынке постсоветских стран. Потому что перевода на русский не было и не будет. Для русскоязычного рынка игру предлагали на английском, но в рекламе об этом тактично умолчали.



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

***

Final Fantasy это определенно легендарная серия игр. Но вот отношение ко всем языковым версиям, кроме японской, у студии Square Enix какое-то странное. Продвигать ремейк на мировом рынке, но при этом спустя рукава сделать перевод на английский. Вбухать кучу денег на рекламу на русском рынке, но вообще не сделать локализацию.

Обычно в конце таких статей мы говорим Учите английский, чтобы игровой опыт был наиболее полным, но в этом случае это был бы стеб, поэтому мы тактично промолчим.

Онлайн-школа EnglishDom.com вдохновляем выучить английский через технологии и человеческую заботу




Только для читателей Хабра первый урок с преподавателем по Skype бесплатно! А при покупке занятий получите до 3 уроков в подарок!

Получи целый месяц премиум-подписки на приложение ED Words в подарок.
Введи промокод finalfantasy на этой странице или прямо в приложении ED Words. Промокод действителен до 20.10.2021.

Наши продукты:

Подробнее..

Как сделать текст легче

27.11.2020 10:16:55 | Автор: admin

В прошлой статье я обещала, что расскажу, как сделать документы легче для восприятия. Есть два основных направления: текстовка и структура документа. Сегодня поработаем с текстами. Технические документы на русском читаются особенно тяжело, и добиться легкости в них сложнее, чем в английском. Как можно исправить многословные, громоздкие документы? Давайте попробуем сделать их конкретнее, проще, короче, и последовательнее.



Конкретнее


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


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


Я писала документы для Acronis Cyber Infrastructure, это когда из серверов делают кластер, а его используют для storage и virtual machines. Упрощенно, этот продукт рассчитан на enterprises, в частности, на сервис-провайдеров. ЦА документов системные администраторы, и не самые простые. Обыкновенному человеку они будут непонятны. Но это не bug, это by design. Если бы мы писали эти доки для обычных пользователей, то:


  1. Нужно было бы объяснять все концепты storage и HCI очень подробно и понятно. Такой dummy guide, для чайников.
  2. Нельзя было бы использовать общепринятые термины сферы, нужно было бы упрощать и описывать. Например, вместо node, возможно, был бы server, потому что это слово более употребимо и понятнее всем, хотя оно не передает роли сервера в кластере.

Короче говоря, это были бы совсем другие документы.


Плохо, когда для доков не определена ЦА. Начинаются метания: а это достаточно понятно? А это не слишком элементарно? К вопросу о ГОСТах и ЕСПД. Там как раз часто целевая аудитория люди, которые почти не умеют пользоваться компьютером. Сейчас таких мало. Поэтому документ на обычного современного юзера, написанный по ЕСПД, может получиться очень тяжелым, перегруженным ненужными деталями. Зато, вероятно, в момент написания ГОСТов он четко попадал бы в ЦА.


Заметки на полях


  • В начале документа неплохо иметь раздел Target audience, чтобы было сразу понятно, для кого написан документ. К сожалению, часто там написано: Для всех, кто читает этот документ или использует наш продукт. Если вам попадется нормальный раздел, где четко описана целевая аудитория, скиньте, пожалуйста, в комменты, с удовольствием почитаю.
  • Иногда документ рассчитан на более-менее общую аудиторию, но есть пара сложных моментов для знатоков, например, какие-то хитрые настройки. Такие вещи можно убирать в knowledge base.
  • Даже если вы пишите доку для админов и сразу это обозначаете в разделе Target audience, все равно придут люди, которые вообще не шарят. И они станут писать вам: А что это? А это? А почему так сложно? Будьте готовы.


Проще


Традиция русских конструкторских текстов очень подробно объяснять то, что и так уже давно знакомо и понятно обычному пользователю. Я рекомендую убирать избыточные термины и объяснения, такие как исполняемый файл в первом примере или флаг для создания ярлыка на рабочем столе может быть использован для запуска ПО на выполнение во втором.


Было


Для установки программы необходимо запустить исполняемый файл wizard.exe и следовать указаниям мастера установки.


Стало


Чтобы запустить мастер установки, дважды нажмите на файл wizard.exe.


Было


В этом окне можно установить флаг для создания значка (ярлыка) на рабочем столе, который может быть использован для запуска ПО на выполнение. После задания значения флага следует нажать кнопку Далее.


Стало


При необходимости, установите флажок Создать значок на рабочем столе. Нажмите Далее.


Заметки на полях


  • Совершенно спокойно можно убирать из доков описание общих свойств элементов GUI. То есть если вы описываете таблицу, а в ней (ничего себе!) можно поменять ширину столбцов перетаскиванием границы, это писать необязательно. Реальный пример: Размеры частей окна и ширина колонок могут быть изменены путем перемещения разделительных полос левой кнопкой мыши. Положение окна можно изменить перемещением строки заголовка с помощью левой кнопки мыши (ЛКМ).
  • Иногда исходный текст настолько запутанный, что даже не знаешь, с какой стороны подступиться. Самое сложное здесь понять, что же имеется в виду, а уже с пониманием будет легче подобрать простые слова. Обычно такие тексты просто нужно переписать начисто. Вот, поломайте голову над таким примером: Пользователь имеет возможность изменить положение объекта вручную, перетащив его с помощью ЛКМ в удобное положение. Существует два способа изменения положения объекта. 1-ый способ заключается в свободном перемещении, когда можно выбрать любую позицию для установки объекта. 2-й способ, когда позиция имеет фиксированное место с дискретным углом 45 и фиксированным удалением от точки пересечения графика с визиром.


Короче


Недавно на одном из вебинаров услышала очень точную фразу: Каждое слово, которое вы пишите, пользователь читать не хочет. Согласна на 100%. Но при этом, признаюсь, мне знакомо чувство, когда хочется еще дописать, и еще немного объяснить, и повторить то же другими словами, ну, чтобы точно дошло! Борюсь с этим чувством, и вам советую.


Сделать текст короче это не совсем то же самое, что сделать его проще. Когда мы упрощаем текст, мы убираем лишние технические детали. А когда мы сокращаем его, мы убираем фигуры речи и лишние обычные слова. Например, если пункт 2 идет после пункта 1, не нужно писать После выполнения пункта 1. Или вместо следует нажать лучше писать нажмите.


Было


После выполнения указанных действий в режиме Р для печати билета с одним из запрограммированных тарифов от 1 до 9 достаточно нажать соответствующую цифровую клавишу. Билет будет автоматически отпечатан.


Стало


Чтобы напечатать билет с запрограммированным тарифом от 1 до 9, нажмите на соответствующую цифру.


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


Было


Для обновления, нужно временно скопировать файл Ф на компьютер с ПО, обновить программой П (указать путь к файлу Ф), затем скопировать файл обратно на сетевой ресурс. Перед началом обновления, необходимо убедиться в достаточном количестве свободного места на диске, где расположен файл Ф, это необходимо для создания резервной копии. Объём свободного места должен быть не менее размера обновляемого файла. Если свободного места недостаточно, программа выведет соответствующее сообщение.


Стало


Обновление


  1. Убедитесь, что на диске, где расположен файл Ф, достаточно места для создания резервной копии.
  2. Скопируйте файл Ф из сетевого хранилища на компьютер с программой П
  3. В программе П укажите путь к файлу Ф и обновите его.
  4. Скопируйте обновленный файл Ф обратно в сетевое хранилище.


Заметки на полях


  • Когда мы работаем с большими абзацами сплошного текста, нужно помнить про visual effectiveness. Слишком много букв подряд и читать уже сложно. Иногда достаточно разбить на шаги или абзацы, а иногда можно подумать про схему. Толковая схема решает. Но чтобы сделать толковую схему, нужно понимать суть процедуры от и до. Здесь может пригодиться помощь разработчика или program manager.


Последовательнее


Технический писатель человек творческий, поэтому названий для одной и той же операции может быть много: нажать, щелкнуть, кликнуть, и все в одном документе. И помножим это на количество творческих людей, работающих над одним документом. Я за консистентность. Одна и та же операция должна называться одинаково. Если вам нравится Щелкнуть, то так и пишите везде. Если Нажать аналогично. Выберите подходящий термин и последовательно применяйте его везде. А еще лучше, заведите корпоративный глоссарий, хотя бы на русском, и там пропишите нужные фразы. +500 к консистентности, и еще помогает новичкам быстрее освоиться.


Заметки на полях


  • Иногда непонятно правильное название чего-то на русском, но известно его английское название. Например, у нас есть нода, от английского node. Как найти верное русское слово? Можно зайти на глоссарий Microsoft. Там выбираем английский исходный язык и русский язык перевода, вводим слово на английском, и смотрим предложенные варианты на русском. Получаем узел.
  • Если уж решились сделать документы последовательнее, эти правки должны быть применены повсеместно. Иначе какой смысл? Обычно такие изменения затрагивают больше всего текстов. Поэтому здесь нужно правильно рассчитать сроки и затраты. И особенно важно не забыть про локализацию, ведь для них это означает очень масштабное изменение в нескольких языках сразу.
  • Когда в документах то disk, то drive, это не очень хорошо. Но когда то же самое в GUI, это совсем плохо. Поэтому на GUI смотрим особенно внимательно и запоминаем все варианты, которые потом нужно будет править.


Ресурсы


Прежде чем браться за исправление документов, можно почитать разные книги, чтобы лучше понимать, что к чему.


  • Слово живое и мертвое Норы Галь. Классика.
  • Живой как жизнь Корнея Чуковского, глава Канцелярит. Классика.
  • Пиши, сокращай Максима Ильяхова. Свежий взгляд на старые проблемы +очень практичный подход. Здесь подробно описано, как именно можно сократить тексты.
  • Developing Quality Technical Information: A Handbook for Writers and Editors от Gretchen Hargis и др. Здесь много про цели, задачи, ЦА документов. А еще хорошие примеры и практичные советы.

PS. Отдельная тема почему английский такой краткий, четкий, и понятный по сравнению с русским. Хотя, например, испанский тоже так себе в легкости, не лучше нашего. Но это уже языковедение. Пока ходить туда не будем, если нужно, напишите в комментах.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru