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

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

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

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

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

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

שלום ירושלים http://sandbox.kluger.com/shalom.jpg

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

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

Ответы [ 6 ]

6 голосов
/ 16 июня 2010

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

4 голосов
/ 13 августа 2011

Используйте один из трех «псевдосигналов» , доступных в Windows Vista:

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

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

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

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

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

[Шěđлеśđαỳ !!!], 8 [f [ŕςћäŕςћ !!] ōf 2006

3 голосов
/ 16 июня 2010

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

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

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

3 голосов
/ 16 июня 2010

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

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

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

2 голосов
/ 25 апреля 2013

«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!

1 голос
/ 16 июня 2010

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

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