Что означает безопасность I18N? - PullRequest
57 голосов
/ 25 февраля 2009

Я наткнулся на комментарий в каком-то коде, ссылающийся на то, что указанный код "безопасен для I18N".

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

Ответы [ 12 ]

78 голосов
/ 25 февраля 2009

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

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

13 голосов
/ 25 февраля 2009

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

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

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

printf("Result is " + result);

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

РЕДАКТИРОВАТЬ: добавлен loadResourceString, чтобы пример был близок к реальной жизни.

9 голосов
/ 25 февраля 2009

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

7 голосов
/ 25 февраля 2009

Интернационализация. Происхождение этого - «буква I, восемнадцать букв, буква N».

5 голосов
/ 25 февраля 2009

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

3 голосов
/ 25 февраля 2009

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

В качестве обозначения: L10n означает «локализация» и использует заглавную букву L , чтобы отличить его от строчной i .

1 голос
/ 23 ноября 2018

enter image description here

Нумероним интернационализации.

В отличие от аббревиатуры, нумероним - это число на основе чисел (например, 411 = информация, k9 = клык);

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

Подробнее об этом здесь: http://www.i18nguy.com/origini18n.html

1 голос
/ 20 июня 2017

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

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

Кодирование «I18N Safe» означает, что ни одна из вышеперечисленных проблем не возникает при написании кода.

1 голос
/ 26 февраля 2009

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

Это означает, что на код нельзя положиться:

sizeof (char) == 1

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

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

1 голос
/ 25 февраля 2009

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

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

...