Подтвердить что ты не робот

Что мне нужно знать для глобализации приложения asp.net?

Я пишу приложение asp.net, которое нужно будет локализовать в нескольких регионах, кроме Северной Америки. Что мне нужно сделать, чтобы подготовиться к этой глобализации? Каковы ваши лучшие 1-2 ресурса для обучения тому, как писать мирное приложение.

4b9b3361

Ответ 1

Несколько вещей, которые я узнал:

  • Абсолютно и жестоко минимизировать количество изображений, которые у вас есть, содержащие текст. Это сделает вашу жизнь на миллиард процентов легче, поскольку вам не нужно будет получать новый набор изображений для каждого языка friggin.

  • Будьте очень осторожны с позиционированием css, который полагается на вещи, всегда остающиеся одного размера. Если эти вещи содержат текст, они будут не оставаться одинакового размера, и вам нужно будет вернуться и исправить свои проекты.

  • Если вы используете типы символов в своих таблицах sql, убедитесь, что любой из тех, кто может принимать международный ввод, является unicode (nchar, nvarchar, ntext). В этом отношении я бы просто стандартизовал использование версий Unicode.

  • Если вы создаете SQL-запросы динамически, убедитесь, что вы включили префикс N перед любым цитированным текстом, если есть вероятность, что текст может быть unicode. Если вы вставляете мусор в таблицу SQL, проверьте, нет ли там.

  • Убедитесь, что все ваши веб-страницы окончательно заявили, что они находятся в формате юникода. См. Статью Джоэля, упомянутую выше.

  • Вы собираетесь использовать файлы ресурсов для этого проекта. Это хорошо - ASP.NET 2.0 имеет большую поддержку для таких. Вы захотите заглянуть в папку App_LocalResources и App_GlobalResources, а также GetLocalResourceObject, GetGlobalResourceObject и концепцию meta: resourceKey. В главе 30 Профессиональный ASP.NET 2.0 есть отличный контент. 3.5 версия книги также может содержать хороший контент, но я не владею им.

  • Подумайте о шрифтах. Многие стандартные шрифты, которые вы, возможно, захотите использовать, не поддерживают Unicode. Мне всегда повезло с Arial Unicode MS, MS Gothic, MS Mincho. Тем не менее, я не уверен, насколько это кросс-платформа. Также обратите внимание, что не все шрифты поддерживают все определения символа Юникода. Опять же, тест, тест, тест.

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

  • Test. Вообще-то я буду тестировать на немецком, польском и азиатском языках (японском, китайском, корейском). Немецкий и Польский многословны и почти гарантированно растягивают текстовые области, азиатские языки используют совершенно другой набор символов, который проверяет вашу поддержку юникода.

Ответ 4

Это сложная проблема. Я живу в Канаде, поэтому многоязычие - большая проблема. За все годы разработки программного обеспечения я никогда не видел решения, которое мне нравилось. Я видел много решений, которые сработали, и выполнили эту работу, но они всегда чувствовали себя как большой kludge. Я бы пошел с @harriyott и удостоверился, что ни одна из ваших строк на самом деле не в коде. Файл ресурсов хорошо работает для настольных приложений. Однако в ASP.Net я бы рекомендовал использовать базу данных. @Джон Кристенсен также имеет несколько хороших указателей.

Ответ 5

Обязательно выполняйте компиляцию с включенным анализом кода и обратите внимание на предупреждения о глобализации, которые он дает вам. Храните данные в инвариантном формате (CultureInfo.InvariantCulture), пока вы не покажете его пользователю (затем используйте CultureInfo.CurrentCulture).

Ответ 6

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

Глобализация и локализация демистифицированы в ASP.NET 2.0

Он охватывает все, начиная от Cultures и Locales, настраивая текущую культуру потоков, файлы ресурсов, кодировки, вы называете это!

И, конечно, он загружен красивыми картинками и примерами:-). Удачи!

Ответ 7

Я бы предложил:

  • Поместите все строки в файлы базы данных или ресурсов.
  • Разрешить дополнительное пространство для переведенного текста, так как некоторые (например, немцы) являются более длинными.