2008-10-01 1 views
29

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

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

ответ

0

У меня есть несколько приложений, которые «двуязычный» я использовал файлы ресурсов в ASP.NET1.1

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

Самый большой Гоча удостоверяется, что переводы выполняются правильно

9

в моей компании все наши строки сохраняются в файлах * .properties. Наши сборки инструменты построить «тест Languange» копию файлов свойств, которые замещают строку, как это:

Click here 

с чем-то вроде этого:

[~~ Çļïčк н∑ѓё ~~ タウ ~~] 

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

Это позволяет:

  1. Убедитесь, что символы Unicode отображаются корректно, в том числе японский/китайский/корейский.
  2. Убедитесь, что макет правильно рассчитан для языков с более длинными словами (в немецком языке, в частности, есть более длинные слова в среднем, чем английский).
  3. Укажите любые жестко закодированные строки (так как они будут на английском языке).

Что касается фактического перевода, то это делается профессиональными переводчиками, а не разработчиками.

+2

Это называется [псевдолокализация] (http://en.wikipedia.org/wiki/Pseudolocalization). – Gan 2013-06-14 06:57:34

+0

Java сумасшедший, когда дело доходит до l18n; хранилищем по умолчанию для переводов являются файлы .properties, один из немногих форматов файлов Java, который [не поддерживает Unicode] (http://stackoverflow.com/a/4660195/286685) из коробки! – 2016-10-30 21:26:47

45

Интернационализация трудно, вот несколько вещей, которые я узнал от работы с 2-сайтов, которые были в более чем 20 различных языках:

  • Использование UTF-8 во всем мире. Без исключений. HTML, серверный язык (особенно обратите внимание на PHP), базу данных и т. Д.
  • Нет текста на изображениях, если вы не хотите тонны работы. Используйте CSS, чтобы поместить текст поверх изображений, если это необходимо.
  • Отдельная конфигурация от локализации. Таким образом, локализаторы могут переводить текст, и вы можете иметь дело с различными конфигурациями для каждого языка (функции, макет и т. Д.). Вы не хотите, чтобы локализаторы имели возможность взаимодействовать с вашим приложением.
  • Убедитесь, что ваши макеты могут иметь дело с текстом, который в 2-3 раза длиннее английского. А также на 50% меньше, чем английский (японцы и китайцы часто короче).
  • Некоторые языки нуждаются в большем размере шрифта (японский, китайский)
  • Цвета также являются языковыми.Красный и зеленый не означает то же самое везде!
  • Добавьте имя класса, являющееся именем локали, в тег тела ваших документов. Таким образом, вы можете легко указать конкретный макет локали в своем файле CSS.
  • Следите за заменой переменных. Не разделяйте строки. Оставьте их целыми как это: «У вас есть X новых сообщений» и замените «X» на #.
  • Различные языки имеют различную плюрализацию. 0, 1, 2-4, 5-7, 7-бесконечность. Трудно иметь дело.
  • Контекст трудный. Иногда локализаторы должны знать, где/как используется строка, чтобы убедиться, что она переведена правильно.

Ресурсы:

1

Как английскому человек, живущий за границей, я стал разочарован подходом многих веб-приложений для интернационализации и имеет blogged about my frustrations.

Мои советы будут:

  • думать о том, как вы показываете международную версию страницы
  • с помощью геолокации может работать для многих пользователей, но, как мои примеры показывают, что для многих это не будет
  • почему бы не использовать заголовок Accept-Language для определения того, какой язык должен обслуживать
  • , если пользователь обращается к странице через поисковую систему, а затем не перенаправляет их где-нибудь еще, например на домашнюю страницу на другом языке
  • крайне опасно менять язык и перезагружать страницу - либо обслуживать одну страницу, либо предупреждать пользователя о том, что текущий контент недоступен на другом языке, прежде чем перенаправить их
  • English это очень общий язык, так что, возможно, по умолчанию, что
  • Но убедитесь, что параметр изменить язык ясно на GUI (мне нравится то, что Google Maps делают, как показано на этом посту)

Все, что я вижу в Интернете - компании, которые неправильно интернализуют. Как правильно это понять с точки зрения пользователя, действительно сложно.

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

  • Нет связанных вопросов^_^