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

Рекомендации по написанию программного обеспечения, потребляемого на международном уровне (i18n)

Я ищу мнения экспертов, которые пишут программное обеспечение, потребляемое на международном уровне. Я хотел бы понять, какие практические навыки используются людьми на каждом уровне логического softare (данные (rdbms), бизнес (промежуточное ПО), пользовательский интерфейс).

Спасибо за любую помощь, которую вы можете дать.

4b9b3361

Ответ 1

Данные

  • Когда вы переходите на UTF-8, будьте готовы к тому, что символы будут занимать до 3 байтов каждый (в случае с китайцами), а это значит, что VARCHAR (20) теперь должен быть VARCHAR (60).
  • Если у вас действительно нет веских оснований для этого, ради любви к Богу, не сохраняйте свои переводы пользовательского интерфейса в БД.

Бизнес

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

Пользовательский интерфейс

Dont

string foo = "Page " + currentPage + " of " + totalPages;

Do

string foo = string.Format("Page {0} of {1}", currentPage, totalPages);

Почему? Вопросы Word Order.

<value>Page {0} of {1}</value>
 <value>{1}ページ中の第{0}ページ</value>

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

Ответ 2

Убедитесь, что в элементах управления пользовательского интерфейса имеется много свободного места. Текст имеет тенденцию становиться намного длиннее при переводе с английского на французский или немецкий.

Хотя он несколько сфокусирован на стороне Windows i18n, обратите внимание на блог Майкла Каплана. Он очень хорошо разбирается в этой области и опубликовал много сообщений в блогах, содержащих полезные полезные материалы.

Ответ 3

Вы можете написать книгу об этой теме.

Во всех слоях не делайте предположений о:

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

Я уверен, что только царапаю поверхность.

Ответ 4

Unicode (или wchar, или любой другой его эквивалент в < языке выбора > ) есть везде. Не храните метки в базе данных. Будьте готовы разрешить текст и элементы управления "неправильно", т.е. Право налево.

Ответ 5

Для локализации не стройте строки UI. Используйте что-то вроде gettext.

Ответ 6

Если вы используете .Net, система файлов ресурсов (.resx) очень гибкая.

Посмотрите способы использования ResourceManager.GetString( "string name", CultureInfo).

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

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