Что означает i18n safe?



я наткнулся на комментарий в каком-то коде, относящемся к указанному коду "i18n safe".



к чему это относится?

583   11  

11 ответов:

I + (около 18 символов) + N = интернационализация

i18n safe означает, что во время проектирования и разработки были предприняты шаги, которые облегчат локализацию (L10N) на более позднем этапе.

чаще всего это относится к коду или конструкции, готовой для I18N-т. е. легко поддерживаемой обычными методами I18N. Например, готово следующее:

printf(loadResourceString("Result is %s"), result);

пока следующего нет:

printf("Result is " + result);

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

EDIT: добавлена loadResourceString, чтобы сделать пример близким к реальной жизни.

реализация i18n означает, что яnternationalizatio n = > i (18 букв) n. код, помеченный как i18n safe, будет кодом, который правильно обрабатывает символьные данные, отличные от ASCII (например, Unicode).

интернационализации. Его происхождение- "буква I, восемнадцать букв, буква N".

I18N означает интернационализацию.

i18n является сокращением для "интернационализации". Это было придумано в DEC и фактически использует нижний регистр Я и n.

в качестве примечания: L10n означает "локализация" и использует капитал L чтобы отличить его от строчных Я.

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

не могли бы вы быть немного более конкретным?

i18n-safe-это расплывчатое понятие. Обычно это относится к коду, который будет работать в международных средах - с различными языковыми стандартами, клавиатурой, наборами символов и т. д. Правда i18n-безопасный код трудно написать.

Это означает, что код не может рассчитывать на:

sizeof (char) == 1

потому что этот символ может быть 4-байтовым символом UTF-32 или 2-байтовым символом UTF-16 и занимать несколько байтов.

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

реализация i18n расшифровывается как интернационализации.

в двух словах: безопасный код I18N означает, что он использует какую-то таблицу поиска для текстов в пользовательском интерфейсе. Для этого вы должны поддерживать кодировки, отличные от ASCII. Это может показаться легким, но есть некоторые gotchas.

кодирование"i18n safe" означает код, который не вводит ошибки I18N. I18N-это нумероним для интернационализации, где есть 18 символов между I и N.

существует несколько категорий вопросов, связанных с i18n, таких как: Формат культуры: форматы даты и времени (DD/MM/YY в Великобритании и MM/DD/YY в США ), числовые форматы, часовой пояс, единицы измерения меняются от культуры к культуре. Данные должны быть приняты, обработаны и отображены в правильном формате для правильного культура/язык. Поддержка международных символов: все символы из всех различных языков должны быть приняты, обработаны и отображены правильно. Локализуемость: переводимые строки не должны быть жестким кодом. Они должны быть внешними в файлах ресурсов.

кодирование"i18n Safe" означает, что ни одна из вышеперечисленных проблем не вводится способом написания кода.

i18n имеет дело с - перемещение жестко закодированных строк из кода (не все должны быть кстати), чтобы их можно было локализовать / перевести (localization == L10n), как указывали другие, а также имеет дело с - локаль чувствительный метод, например -- методы, связанные с обработкой текста (сколько слов в японском тексте далеко очевидно:), порядок / сортировка в разных языках / системах письма, -- работа с датой / временем (самый простой пример показывает am / pm для США, 24 часа для Франции для например, переход к более сложным календарям для конкретных стран), --работа с арабский или иврит (ориентация интерфейса, текста и т. д.), -- кодирование, как указывали другие -- проблемы с базой данных это довольно широкий угол зрения. Просто иметь дело с" экстернализацией строки " далеко не достаточно.

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

Comments

    Ничего не найдено.