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

Стоит ли хранить все переводы в базе данных? для языка и т. д.?

Должен ли я создавать файлы resx на основе запроса к базе данных или просто создавать файлы resx?

Приложение будет использоваться с интерфейсом браузера на нескольких устройствах и платформах, например. Windows / IOS / Android. Есть ли еще какие-то вещи, о которых мне следует подумать?

С наилучшими пожеланиями

Шрекито

1
shrekito 8 Апр 2013 в 14:00

1 ответ

Лучший ответ

Обычно вам придется иметь дело с несколькими типами глобального контента:

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

Шаблоны приложений

Шаблоны обычно обрабатываются с использованием инфраструктуры интернационализации (i18n) вашего собственного фреймворка. В случае asp.net фреймворк включает библиотеки для маркировки строк и их экспорта в (английские) файлы .resx. Это поддерживает множество встроенных функций, таких как переменные, множественное число и комментарии разработчиков. Поэтому, если вы не сталкиваетесь с некоторыми реальными блокираторами, вы обычно хотите использовать его вместо создания собственной инфраструктуры i18n (например, в базе данных или в базе данных с экспортом .resx).

В настоящее время решения о рабочем процессе принимаются тогда, когда вы действительно хотите локализовать эти файлы. Раньше вы обменивались файлами с агентством по электронной почте. В 2013 году веб-приложения имеют быстрый цикл разработки с несколькими выпусками в неделю (или в день), поэтому потребность в автоматизации гораздо больше. Команды переходят от использования VCS, FTP или Dropbox в качестве временного хранилища для своих файлов к современным платформам управления локализацией (L10n), таким как Transifex (discl: я основатель), чтобы управлять процессом их локализации.

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

С Transifex вы можете использовать приложение Tx Client с хуком git-commit, вашу систему сборки / CI или старый хороший сценарий развертывания:

tx push --source

tx pull -l de,fr,it --mode=reviewed --minimum-perc=90

Динамическое и внешнее содержание

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

Выбранная вами платформа должна иметь современный API для работы. Посмотрите, как они выглядят в Transifex API.

Другие советы и рекомендации

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

  • Следуйте передовым практикам i18n, таким как правильное форматирование даты и избегание конкатенации.

  • Любите своих переводчиков. Именно они заставляют все это происходить.

1
glezos 10 Апр 2013 в 04:31
Привет, glezos! Спасибо, что нашли время, чтобы закончить исчерпывающий ответ, и извините за опоздание, сказав спасибо - я прочитал ответ, а затем потерял доступ к электронной почте - долгая история, и я только недавно вернулся в сетку. Разработчики в этом случае пошли по пути resx file / translation. С уважением, Шрекито
 – 
shrekito
27 Авг 2013 в 17:49
PS Я не мог проголосовать за ваш ответ, так как у меня еще недостаточно репутации.
 – 
shrekito
27 Авг 2013 в 17:50