Что такое тест Турция? - PullRequest
       6

Что такое тест Турция?

33 голосов
/ 28 апреля 2009

Я наткнулся на слово «Тест Турции», когда узнал о тестировании кода. Я действительно не знаю, что это значит.

Что такое тест по Турции? Почему это так называется?

Ответы [ 6 ]

20 голосов
/ 28 апреля 2009

Проблема Турции связана с интернационализацией программного обеспечения или просто с его неправильным поведением в различных языковых культурах.

В разных странах существуют разные стандарты написания дат (14.04.2008 в Турции и 14/04/2008 в США), цифр (то есть 123,45 в Польше и 123,45 в США) и правил ввода заглавных букв (как в Турция с буквами i, I и ı).

Как указано Джефф Мозер , проблема была названа турецким пользователем, который впервые обнаружил ошибку в функции ToUpper(). Более подробно в комментариях ниже.

Однако проблема не ограничивается Турцией и преобразованиями строк.

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

Ссылки с Google поиск Турции Проблема с подробностями уже дана:

16 голосов
/ 28 апреля 2009

Здесь описан тест индейки

Забудьте о Турции, в США это даже не пройдет. Вам нужно сравнение без учета регистра. Итак, вы попробуйте:

String.Compare(string,string,bool ignoreCase):

....

Проходят ли какие-либо из них "Тест на Турцию?"

Нет шансов!

Причина: вы столкнулись с проблемой "Turkish I".

Как говорили многие и многие люди, "Я" на турецком ведет себя иначе, чем на большинстве языков. В соответствии со стандартом Unicode наша строчная буква «i» становится «İ» (U + 0130 «Латинская заглавная буква I с точкой выше»), когда она перемещается в верхний регистр. Точно так же наш верхний регистр «I» становится «ı» (U + 0131 «Латинская строчная буква I без точек»), когда он перемещается в нижний регистр.

8 голосов
/ 28 октября 2010

Мы пишем даты от меньшего к большему, например, дд.мм.гггг: 28.10.2010

Мы используем «.» (Точка) для разделителя тысяч и «,» (запятая) для десятичного разделителя: 4,567,9

Имеется ö => Ö, ç => Ç, ş => Ş, ğ => Ğ, ü => Ü и , наиболее важно ı => I и i => İ ; другими словами, нижний регистр верхнего I не имеет точки, а верхний регистр нижнего i - пунктирной.

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

Если ваш код правильно работает в Турции, он, вероятно, будет работать где угодно.

4 голосов
/ 28 апреля 2009

Так называемый «тест Турции» связан с интернационализацией программного обеспечения. Одной из проблем глобализации / интернационализации является то, что форматы даты и времени в разных культурах могут различаться на разных уровнях (порядок день / месяц / год, разделитель даты и т. Д.).

Кроме того, в Турции есть некоторые специальные правила капитализации, которые могут привести к проблемам. Например, турецкий символ «i» является распространенной проблемой для многих программ, которые используют его неправильно.

2 голосов
/ 28 апреля 2009

Ссылка, предоставленная @Luixv, содержит подробное описание проблемы.

Суть в том, что если вы собираетесь тестировать свой код только в одной неанглийской локали, протестируйте его на турецком языке.

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

1 голос
/ 28 апреля 2009

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

вот джеффс статья

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