Как перевести сайт на другой язык (ASP.NET, С#)

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

Используется сторонний элемент управления на моем веб-сайте. (Вписывается в мой дизайн. Не полезно в отношении SEO-точки зрения. Не хотите показывать сторонние брендовые имена.) Создайте файлы ресурсов для каждого языка. (Много работы, требуемой для реструктуризации страниц для использования текста из файлов ресурсов. Что относительно данных, введенных пользователем, например Business Description.)

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

Ответ 1

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

Первое, что вам нужно сделать, - это преобразовать ваш обычный текст в свою разметку в asp: Localize controls. Используя элемент управления Localize, вы можете оставить существующие теги <span> на месте и просто заменить текст внутри них. На самом деле это не так. Поиск и замена Visual Studio поддерживает регулярное выражение, которое может помочь вам в этом, или вы можете использовать Resharper (см. Ниже).

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

В качестве альтернативы, если вы хотите использовать файлы ресурсов, есть два инструмента, которые я бы рекомендовал использовать в дополнение к Visual Studio: Resharper 5 (Возможности локализации screencast) и Zeta Resource Editor. Эти шаги я предприму, чтобы выполнить это, используя этот метод:

  • Используйте инструмент "Создать локальный ресурс" в visual studio для каждой страницы
  • Используйте Resharper "Переместить HTML на ресурс" в текст в вашей разметке, чтобы внести их в элементы управления Localize.
  • Используйте Resharper для поиска любых локализуемых строк в вашем коде и переместите их в файл ресурсов.
  • Используйте правила глобализации анализа кода /FXCop, чтобы помочь найти дополнительные проблемы, с которыми вам могут столкнуться номера форматирования, даты и т.д.
  • После того, как весь текст находится в файлах resx, используйте редактор ресурсов Zeta для загрузки всех ваших файлов resx, добавления новых языков и экспорта для перевода (или автоматического перевода, если вы достаточно храбры).

Я использовал этот подход на сайте, переведенном на 8 языков (и растущем) с десятками страниц (и растущим). Однако это не редактируемый пользователем сайт; страницы контролируются исключительно программистами.

Ответ 2

Преобразование страницы на арабский язык или другой язык.

Перейдите к:

1-страничный дизайн

2-Tools

3-Создать локальный ресурс

4-get "App_LocalResources" включают в себя "filename.aspx.resx"

5 скопируйте файл и измените имя на "filename.aspx.ar.resx", чтобы преобразовать страницу на арабский язык или другой.

надеюсь помочь:)

Ответ 5

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

Автоматические системы перевода часто хороши для того, чтобы дать общее представление о том, что что-то на другом языке означает, но я никогда не буду использовать их при попытке изобразить профессиональный образ, так как часто то, что они выводят, просто не имеет смысла. Ничто не кричит "непрофессионально!" как текст, который просто не имеет смысла, потому что он был автоматически переведен.

Ответ 6

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

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

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

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

Удачи вам в жизни.

Ответ 7

Я закончил тем самым трудный путь:

  • Я написал метод расширения в классе строк под названием TranslateInto
  • В методе PreRender страницы я беру все элементы управления рекурсивно на основе их типа (типы, которые будут иметь текст)
  • Предпросмотр через них и text.TranslateInto(SupportedLanguages.CurrentLanguage)
  • В моем методе TranslateInto у меня есть смехотворно большой оператор switch с каждой строкой, отображаемой пользователю и связанным с ней переводом.

Это не очень красиво, но это сработало.

Ответ 8

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

Ответ 9

Мы работаем с инструментом перевода CAT (Computer Assisted Translation) под названием MemoQ, который позволяет нам переводить текст, оставляя все теги и кодирование на месте. Это очень полезно, когда порядок слов изменяется при переходе с одного языка на другой.

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

Мы используем эту среду перевода для перевода html, xml, InDesign, Word и т.д.