Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Топ:
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Перевод во множественном числе доставляет дополнительные трудности. Простой код мог бы выглядеть примерно так:
Это подходит для английского языка, но перевод становится трудным. Во‑первых, во многих языках множественное число не образуется с такой же легкостью, как в английском (добавлением суффикса для большинства слов). Во‑вторых, во многих языках, особенно в Восточной Европе, имеются несколько форм множественного числа, каждая из которых указывает на то, сколько объектов обозначает форма. Соответственно даже код наподобие следующего не будет достаточным:
Решением является параллельный набор процедур специально для форматирования множественных значений:
Помимо первоначального аргумента, эти функции принимают дополнительные аргументы:
Строка по умолчанию для использования в качестве множественного числа. Вскоре будут примеры.
Число имеющихся элементов.
Список сообщений каждой локали указывает, как переводить множественные числа.[145] Функция (и ее варианты) проверяет и на основании спецификации в списке сообщений возвращает соответствующий перевод. Если в списке нет перевода для, или находясь в локали «С», возвращает, если ''; в противном случае она возвращает. Таким образом, наш пример ошибочных слов выглядит следующим образом:
Обратите внимание, что должен быть передан для выбора форматирующей строки, а затем для форматирования. Вдобавок, будьте осмотрительны и не используйте макрос или выражение, значение которого каждый раз изменяется, как в случае ''! Такое может случиться, если вы осуществляете глобальное редактирование, добавляя вызовы и не обращая на это внимания.
Упрощение использования
Вызов в исходном коде программы служит двум целям. Во‑первых, он осуществляет перевод во время исполнения, что является в конце концов главным. Однако, он служит также для отметки строк, которые нужно перевести. Утилита читает исходный код программы и извлекает все оригинальные строки, которые нужно перевести. (Далее в главе мы кратко рассмотрим это.)
Рассмотрим все‑таки случай, когда статические строки не используются непосредственно:
Здесь мы хотели бы иметь возможность вывести переводы строк об авторских правах, если они доступны. Однако, как извлекающее устройство предполагает найти эти строки? Мы не можем заключить их в вызовы, поскольку это не будет работать во время компиляции:
/
13.3.4.1. Переносимые программы: ""
Здесь мы предполагаем, что вы хотите написать программу, которая может использоваться вместе с библиотекой GNU на любой системе Unix, а не только GNU/Linux. Следующий раздел описывает, что сделать для программ только для GNU/Linux.
Пометка строк включает два шага. Первый заключается в использовании вспомогательного заголовка, который поставляется с дистрибутивом GNU. Этот файл обрабатывает несколько проблем переносимости и компиляции, упрощая использование в ваших собственных программах:
Если макрос не определен[146] или установлен в ноль, развертывает вызовы в первый аргумент. Это делает возможным перенос кода, использующего, на системы, в которых не установлены ни GNU, ни собственная их версия. Помимо прочего, этот заголовочный файл определяет следующий макрос:
Комментарий самодостаточен. С помощью этого макроса мы можем теперь перейти ко второму шагу. Мы перепишем код следующим образом:
Обратите внимание, что мы сделали два изменения. Во‑первых, теперь является одной длинной строкой, созданной с использованием возможности конкатенации строк стандартного C. Эта простая строка затем включена в вызов. Нам нужна одна строка, чтобы легальности могли быть переведены в виде одного элемента
Второе изменение заключается в непосредственном выводе перевода в виде одной строки в.
К этому времени вы, возможно, думаете: «Вот здорово, набирать каждый раз '' довольно неприятно». Ну, вы правы. Это не только создает лишнюю работу по набиванию, но также и затрудняет чтение исходного кода. Соответственно, когда вы используете заголовочный файл, руководство GNU рекомендует включить два других макроса с именами и следующим образом:
Такой подход снижает накладные расходы по использованию всего лишь тремя дополнительными символами для переводимой строковой константы и всего лишь четырьмя символами для статических строк:
Эти макросы скромны, и на практике все GNU программы, использующие GNU, следуют этому соглашению. Если вы собираетесь использовать GNU, вам тоже нужно следовать этому соглашению.
Только GLIBC:
Для программ, которые будут использоваться лишь на системах с GLIBC, использование заголовочных файлов и макросов похоже, но проще:
Как мы видели ранее, заголовочный файл объявляет и другие функции. Вам все равно нужно определять и, но не нужно беспокоиться о или включении с исходным кодом вашей программы файла.
|
|
|
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!