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

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

  • Используемое стороннее управление на моем веб-сайте. (Действительно помещается в мой дизайн. Не полезный относительно точки зрения SEO. Не хочу показывать сторонние торговые марки.)
  • Создайте Файлы ресурсов для каждого языка. (Большая работа, требуемая реструктурировать страницы для использования текста от файлов ресурсов. Что относительно данных, вводимых пользователем как Описание бизнеса.)
  • Есть ли любые другие доступные опции.
    Я думал о решении как, когда страница создается на стороне сервера затем, я мог перевести его прежде, чем передать обратно клиенту. Есть ли какой-либо способ, которым я могу сделать это? (для перевода всего включая данные, добавленные от баз данных или через код. И не производя дизайн.)

    11
    задан Tasawer Khan 4 June 2010 в 15:45
    поделиться

    6 ответов

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

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

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

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

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

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

    15
    ответ дан 3 December 2019 в 07:11
    поделиться

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

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

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

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

    Удачи, что бы вы ни выбрали.

    0
    ответ дан 3 December 2019 в 07:11
    поделиться

    Думаю, вам стоит попробовать Google Translate.

    http://translate.google.com/translate_tools

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

    HTH

    -1
    ответ дан 3 December 2019 в 07:11
    поделиться

    Я сделал это сложным способом:

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

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

    0
    ответ дан 3 December 2019 в 07:11
    поделиться

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

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

    0
    ответ дан 3 December 2019 в 07:11
    поделиться

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

    1
    ответ дан 3 December 2019 в 07:11
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: