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

Как вы тестируете свое приложение для Iñtërnâtiônàlizætiøn? (Интернационализация?)

Как вы тестируете свое приложение на соответствие требованиям Iñtërnâtiônàlizætiøn? Я говорю людям, чтобы они сохраняли строку Unicode Iñtërnâtiônàlizætiøn в каждом поле, а затем проверяли, правильно ли она отображается при выводе.

--- включая вывод в виде содержимого ячейки в отчетах Excel, в формате rtf для документов, XML файлов и т.д.

Какие еще тесты нужно сделать?

Добавлена идея от @Paddy:

Также попробуйте язык справа налево. Например, שלום ירושלים (Иерусалимский мир). Должно выглядеть так:

שלום ירושלים
(источник: kluger.com)

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

Также обратите внимание: вам не нужно менять или "настраивать" ваше уже запущенное приложение, чтобы оно принимало либо символы W European, либо пример иврита. Вы должны иметь возможность просто вводить эти символы в ваше приложение и правильно возвращать их в ваш вывод. Если у вас нет раскладки на иврите, скопируйте и вставьте примеры из этого вопроса в свое приложение.

4b9b3361

Ответ 1

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

Ответ 2

Используйте одну из трех "псевдо-локалей" , доступных с Windows Vista:

Три разных псевдоязыка предназначены для тестирования 3-х видов локалей:

База Локаль qps-ploc используется для псевдо-английского псевдо локализаций. Его строками являются более длинные версии английских строк, используя нелатинские и акцентированные символы вместо обычного script. Кроме того, простые латинские строки должны сортироваться в обратном порядке с помощью этот язык.

Зеркальное qpa-mirr используется для псевдо-данных справа налево, что другая область интересов для тестирования.

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

Windows начнет форматирование дат, времени, чисел, валют в составленном psuedo-locale, который выглядит так же, как английский, что вы можете с ним работать, но достаточно очевидным, если вы не уважаете языковой стандарт:

[Штейльśđαỳ!!!], 8 ōf [Μäŕςћ!!] ōf 2006

Ответ 3

Сначала узнайте Абсолютный минимум Каждый разработчик программного обеспечения абсолютно должен положительно знать о юникодном и символьном наборах.

Убедитесь, что ваше приложение может обрабатывать Turkish. У этого есть несколько причуд, которые нарушают приложения, которые предполагают английские правила. Поскольку существует четыре типа букв "i" (пунктирные и точечные, верхние и нижние регистры), приложения, которые принимают uppercase(i) => I, будут разбиты при использовании турецких правил, где uppercase(i) => İ.

Общей задачей является проверка того, набрал ли пользователь команду "exit" с помощью lowercase(userInput) == "exit" или uppercase(userInput) == "EXIT". Это работает, как ожидалось, по английским правилам, но будет терпеть неудачу по турецким правилам, где "exıt" != "exit" и "EXİT" != "EXIT". Чтобы сделать это правильно, нужно использовать несовместимые с регистром процедуры сравнения, которые встроены во все современные языки.

Ответ 4

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

Один удобный факт для обработки обработки часового пояса состоит в том, что есть два временных часовых пояса (Pacific/Tongatapu и Pacific/Midway), которые на самом деле находятся на расстоянии 24 часа друг от друга. Поэтому, если временные зоны обрабатываются правильно, даты не должны быть одинаковыми для пользователей в этих двух часовых поясах для любой отметки времени. Если вы используете какие-либо другие часовые пояса в своих тестах, результаты могут различаться в зависимости от времени, в которое вы запускаете тестовый пакет.

Вам также необходимо убедиться, что даты и время отформатированы таким образом, который имеет смысл для локали пользователя или, если это не так, объясняется любая потенциальная двусмысленность при дате дат (например, "05/11/2009 (dd/мм/год)" ).

Ответ 5

"Iñtërnâtiônàlizætiøn" - очень плохая строка для тестирования, поскольку все символы в ней также отображаются в ISO-8859-1, поэтому строка может работать полностью без поддержки Unicode вообще! Я не знаю, почему он так часто используется, когда он полностью терпит неудачу в своей основной функции!

Даже китайский или еврейский текст не является хорошим выбором (хотя справа налево есть целая банда червей сама по себе), потому что она не обязательно содержит что-либо за пределами 3-байтового UTF-8, что любопытно было очень большая дыра в реализации MySQL по умолчанию UTF-8 (которая ограничена 3-байтовыми символами), пока она не была исправлена ​​добавлением кодировки utf8mb4 в MySQL 5.5. В наши дни одним из наиболее распространенных видов использования > 3-байтовых UTF-8 является Emojis, подобный этим: [💝🐹🌇⛔]. Если вы не видите довольно маленькие цветные изображения между этими скобками, поздравляю, вы просто обнаружили дыру в вашем стеке Unicode!

Ответ 6

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