2010-06-04 9 views
10

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

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

    +2

    Насколько Я знаю, что для статических ресурсов люди обычно используют механизм ресурсов ASP.NET и для созданного пользователем контента, например, имеют CMS-подобный apporach, где у них есть версии одной и той же страницы для каждого supposted языка, d каждая версия отредактирована вручную лицом, ответственным за перевод. Что касается автоматического перевода, вы можете попробовать интегрироваться с переводом google или что-то в этом роде. – axk

    ответ

    14

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

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

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

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

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

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

    +0

    Спасибо за подробный ответ. –

    +1

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

    0

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

    http://translate.google.com/translate_tools

    Очень легко и очень очень эффективно.

    НТН

    +1

    Да. На самом деле это отличный инструмент. Но не хотите использовать из-за причин, перечисленных в первой броне. –

    +1

    Это легко, но это не эффективно, это не точно, и это не профессионально. – lKashef

    0

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

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

    +0

    Да. Но у нас нет файлов ресурсов для английского языка. Я видел вариант «Создать локальный ресурс», но он не включает пролеты, которые показывают большинство ярлыков пользовательского интерфейса :( –

    0

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

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

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

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

    Удачи вам в том, что вы идете.

    0

    я в конечном итоге делает это трудный путь:

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

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

    +0

    Это один из способов сделайте это. – Greg

    0

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

    +1

    Попробуйте сделать свой ответ более понятным. – Amar

    0

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

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

    Мы используем этот перевод среды перевести HTML, XML, InDesign, Word и т.д.

    1

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

    Перейти к:

    1-страница дизайн

    2-Tools

    3-Сформировать Локальный ресурс

    4-получить "App_LocalResources" включить "filename.aspx.resx"

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

    надежда полезно :)

    Смежные вопросы