Как перевести сайт на другой язык? (ASP .NET, c #) - PullRequest
11 голосов
/ 04 июня 2010

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

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

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

Ответы [ 9 ]

15 голосов
/ 04 июня 2010

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

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

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

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

  1. Используйте инструмент «Создать локальный ресурс» в Visual Studio для каждой страницы
  2. Используйте Resharper «Переместить HTML в ресурс» в тексте вашей разметки, чтобы превратить их в элементы управления Localize.
  3. Используйте Resharper для поиска любых локализуемых строк в вашем коде и перемещения их в файл ресурсов.
  4. Используйте правила глобализации анализа кода / FXCop, чтобы помочь найти любые дополнительные проблемы, с которыми вы можете столкнуться при форматировании чисел, дат и т. Д.
  5. Когда весь текст находится в файлах resx, используйте Zeta Resource Editor, чтобы загрузить все ваши файлы resx, добавить новые языки и экспортировать для перевода (или автоматического перевода, если вы достаточно смелы).

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

1 голос
/ 25 апреля 2015

Я нашел хорошее решение, см. http://www.nopcommerce.com/p/1784/nopcommerce-translator.aspx

Этот проект с открытым исходным кодом, а репозиторий находится здесь: https://github.com/Marjani/NopCommerce-Translator

удачи

1 голос
/ 19 января 2014

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

Перейти к:

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

2-Tools

3-Generate Local Resource

4 - получить «App_LocalResources», включая «filename.aspx.resx»

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

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

1 голос
/ 15 августа 2010

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

0 голосов
/ 01 февраля 2011

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

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

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

0 голосов
/ 04 июня 2010

В итоге я сделал это трудным путем:

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

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

0 голосов
/ 04 июня 2010

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

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

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

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

Удачи тебе во всем.

0 голосов
/ 04 июня 2010

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

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

0 голосов
/ 04 июня 2010

Я думаю, вы должны попробовать Google Translate.

http://translate.google.com/translate_tools

Очень просто и очень очень эффективно.

НТН

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