По состоянию на 2013 год, что является наилучшей практикой для многоязычной локализации веб-страниц на разные культуры.
Стоит ли хранить все переводы в базе данных? для языка и т. д.?
Должен ли я создавать файлы resx на основе запроса к базе данных или просто создавать файлы resx?
Приложение будет использоваться с интерфейсом браузера на нескольких устройствах и платформах, например. Windows / IOS / Android. Есть ли еще какие-то вещи, о которых мне следует подумать?
С наилучшими пожеланиями
Шрекито
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, таким как правильное форматирование даты и избегание конкатенации.
Любите своих переводчиков. Именно они заставляют все это происходить.
Похожие вопросы
Новые вопросы
asp.net
ASP.NET - это среда разработки веб-приложений Microsoft, которая позволяет программистам создавать динамические веб-сайты, веб-приложения и веб-службы. Полезно использовать этот тег в сочетании с тегом типа проекта, например, [asp.net-mvc], [asp.net-webforms] или [asp.net-web-api]. НЕ используйте этот тег для вопросов о ASP.NET Core - используйте вместо этого [asp.net-core].