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).
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