Если я хочу развернуть свое программное обеспечение на международном уровне, какие архитектурные соображения следует принять во внимание? - PullRequest
3 голосов
/ 12 июня 2009

Я планирую разработку программного обеспечения для международного рынка.

Какие архитектурные решения я должен рассмотреть помимо преобразования текста с одного языка на другой?

Ответы [ 9 ]

4 голосов
/ 12 июня 2009

Существует огромное количество проблем, в зависимости от того, как далеко вы заинтересованы в этом.

  1. Числа - как в тысячных, так и в десятичных разделителях. На самом деле, не все локали используют разделитель каждые три цифры. А правила записи чисел в виде текста, скажем, для выписывания чеков, значительно различаются.
  2. Валюта и Измерения - не вся валюта имеет две десятичные цифры . Знак может быть ведущим или конечным. Индикатором для негативов может быть знак, круглые скобки или начальный или конечный текст (например, «dr» и «cr» иногда используются в американском английском). Аналогичные проблемы для измерений (английский против метрических против местных).
  3. Язык сценария - это не всегда слева направо, сверху вниз . Юникод является обязательным. Кроме того, расположение текста меняется в зависимости от языка. Один и тот же текст может быть короче или намного длиннее при переводе, что означает, что формы должны быть гибкими.
  4. Литеральные строки против Переводимые строки - некоторый текст является буквальным и не будет переведен; это полезно, если вы спроектируете это заранее и убедитесь, что переводимые строки обрабатываются последовательно (через ресурсы или что-либо еще). Вы также захотите шаблонировать строки, такие как «abc {1} xyz» или «abc% 1 xyz» для вставки текста вместо «abc» + n + «xyz», поскольку место, куда вставляется текст, будет изменяться на структура предложения.
  5. Дата и Время - Не каждая страна использует один и тот же календарь; некоторые из них имеют разные системы подсчета года. Чтобы развлечься, покопайтесь в классах java.util.Calendar или System.Globalization.Calendar . Иногда
  6. Иконки и Цвета - То, что в одной культуре похоже на хрупкую руку, может быть оскорбительным жестом в другой. И цвета тоже имеют разные значения.

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

Надеюсь, это поможет.

2 голосов
/ 12 июня 2009

Юридические последствия. Microsoft сейчас проходит через ЕС .

Также недостаточно просто «конвертировать» текст с одного языка на другой. Разные культуры имеют разные спецификации: в некоторых частях Канады французский язык должен быть выше английского перевода для всего.

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

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

Если ваше программное обеспечение использует какие-либо онлайн-сервисы, убедитесь, что оно использует целевую страну, чтобы немецкий пользователь не, например, Вам предложат онлайн-сервис печати фотографий, расположенный в США.

1 голос
/ 12 июня 2009
  • Учитывайте нюансы языка. Например, «домашний» означает удобный в некоторых англоязычных районах и некрасивый в других
  • Также примите во внимание культурные различия - большие пальцы - плохая вещь повсюду
1 голос
/ 12 июня 2009

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

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

0 голосов
/ 14 июня 2009

Интернационализация имеет две стороны: культура и язык.

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

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

Во многих отношениях тоньше культурные различия. Это необходимо учитывать с самого начала, так как некоторые из них будут влиять на способ разработки программного обеспечения. Для начала:

  • Какой рабочий процесс ожидается? Некоторые культуры (такие как Испания, Италия) гораздо более совместны, чем другие (например, Швеция или Финляндия).

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

  • Локальная программная экосистема не обязательно будет соответствовать западным нормам. Например, местные сайты социальных сетей могут быть более популярными, чем Facebook и Twitter.

Если вы планируете продавать программное обеспечение не на нативных рынках, все эти факторы необходимо учитывать, прежде чем кодирование начнется. Существует хорошо налаженная инфраструктура специалистов по маркетингу продуктов, которые могут помочь с местными перспективами такого рода.

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

0 голосов
/ 12 июня 2009

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

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

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

В любой системе, с которой вы работаете, скорее всего, есть какая-то локаль. Используйте это для всего, что он обрабатывает. Вы не хотите писать, скажем, 9 февраля как 9 февраля 2009 года в Великобритании, потому что они будут читать это как 2 сентября. Люди поймут, что выписывать миллион - 1 000 000, но для некоторых людей это явно иностранная конструкция, и они хотят это как 1.000.000,0.

Старайтесь избегать встраивания чисел в предложения. На английском языке можно сказать «напечатана 1 страница» и «напечатано 2 страницы» и, скорее всего, «страницы не напечатаны». На других языках все становится очень сложно. Что-то вроде «Страниц напечатано: 2» гораздо проще перевести.

Убедитесь, что пользователи могут использовать метрическую систему и температуру Цельсия. Либо используйте всюду метрику, либо конвертируйте ее в слой отображения.

Получите настоящих переводчиков для каждого места, куда вы собираетесь локализоваться. Google отлично работает для начальных макетов, но вы, вероятно, хотите быть более грамотным в странах, в которых вы продаете, чем, скажем, «Вся ваша база теперь принадлежит нам». Убедитесь, что у них достаточно информации для выполнения работы; некоторые слова и фразы на английском языке неоднозначны, и их значение зависит от контекста, и поэтому их невозможно перевести без контекста. Бюджет на хорошее программное обеспечение для перевода, если оно доступно для вашей платформы. Переводчики недешевы, и потратить несколько тысяч долларов, чтобы помочь им работать быстрее, окупится довольно быстро.

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

Это то, что я уже изучил, и я постепенно использую наше программное обеспечение в Японии.

0 голосов
/ 12 июня 2009

Здесь нет информации о типе проекта, над которым вы работаете, но ...

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

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

0 голосов
/ 12 июня 2009
  1. Исследуйте и поймите поддержку вашей платформы для локализованного программного обеспечения.
  2. Работайте в инструментах вашей платформы, чтобы соответствовать вашему поведению.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...