Linux программирование в примерах
Шрифт:
Упражнения
1. Используйте
2. Используйте макрос
3. (Средней трудности) Рассмотрите функции
4. (Трудное) Найдите исходный код GLIBC версии
5. Проверьте свою память. Как
6. Используя
7. Опишите преимущества и недостатки использования
8. Напишите свою версию
9. Программы, использующие
10. (Трудное) Даже с урезанной очисткой при обработке сигнала все еще имеется состояние гонки. Есть небольшое окно между созданием временного файла функцией
11. Попробуйте откомпилировать и запустить
12. Посмотрите файл
13. Посмотрите справочную страницу lrand48(3) на системе GNU/Linux или System V. Выглядит ли этот интерфейс более простым или трудным для использования, чем
14. Возьмите
15. (Трудное) Почему GLIBC нужны указатели на альтернативные версии функций стандартных каталогов и
16. Измените
17. Стандартная
18. Посмотрите справочную страницу grep(1). Добавьте к
19. Напишите простую замещающую программу:
Она должна читать текстовые строки из указанных файлов или из стандартного ввода, если они не указаны. Каждая строка должна сравниваться на соответствие шаблону. Если обнаружено соответствие, оно должно замещаться подстановкой.
Если указана опция
Глава 13
Интернационализация и локализация
Ранние вычислительные системы обычно для своего вывода (приглашений, сообщений об ошибках) и ввода (ответы на запросы, такие, как «да» и «нет») использовали английский язык. Это было верно для систем Unix вплоть до середины 1980-х. В конце 80-х, начиная с первого стандарта ISO для С и продолжая стандартами POSIX 1990-х и современным стандартом POSIX, были разработаны возможности для работы программ на нескольких языках без необходимости поддержки нескольких версий одной и той же программы. Данная глава описывает, как современные программы должны справляться с многоязычными проблемами.
13.1. Введение
Центральной концепцией является окружение, место, в котором работает программа. Локали содержат в себе следующие сведения: локальный набор символов; сведения о формате отображения даты и времени; форматирование и отображение денежных сумм; форматирование и отображение числовых значений (с или без разделителей тысяч, какой символ используется в качестве разделителя дробной части числа и т.д.).
Интернационализация является процессом написания (или изменения) программы таким образом, что она может работать с различными локалями. Локализация является процессом приспособления интернационализированной программы для определенной локали. Часто вместо этих терминов используют сокращения i18n и l10n соответственно. (Числовое значение указывает, сколько букв в середине слова, а эти сокращения имеют небольшое сходство с полными терминами. [136] Их также гораздо легче набирать.) Другим часто встречающимся термином является поддержка родного языка, обозначаемая как NLS [137] ; NLS обозначает программную поддержку для i18n и l10n.
136
От английских слов i(nternationalizatio)n и l(ocalizatio)n —Примеч. перев.
137
NLS — native language support — Примеч. перев.