Вход:  Пароль:  
FreeSource: Lokalizacija/СитуацияСКавычками ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Ситуация с кавычками

Простая задача – получить символы кавычек сообразно с локалью. Оказалось, задача сложная. Из локали эту информацию извлечь очень сложно, хотя она там есть (подозреваю, в виде списка символов punct для LC_CTYPE). Вот для LC_MONETARY целая структура возвращается, описывающая всё касательно символов валюты, разделителей и пр.

Хотя вполне можно было бы получать кавычки через nl_langinfo, наподобие RADIXCHAR из LC_NUMERIC.


Узнать о том, какие кавычки нужны, можно здесь:
http://ru.wikipedia.org/wiki/Кавычки
http://en.wikipedia.org/wiki/Quotation_mark,_non-English_usage


Существует библиотека gnulib, имеющая функции quote и quotearg,
позволяющие заключать строки в кавычки, в зависимости от параметров или локали:
http://www.gnu.org/prep/standards/html_node/Quote-Characters.html
Но библиотека эта не допускает линковку, обычно из неё выдёргивают нужные файлы. Информацию о кавычках она хранит в файле перевода.
http://www.gnu.org/software/gnulib/


Пример использования:

Что нужно сделать


Должна быть разработана функция типа isquote, а также isquotemark(symbol,type), где type позволит указывать битовые флаги «открывающая кавычка, закрывающая кавычка, одинарная кавычка, двойная кавычка». Видимо, isquote в ряду с другими is* должна зависеть от локали, в то время как isquotemark – нет.


Должен быть разработан механизм получения обычных кавычек и вложенных кавычек согласно локали, в том числе альтернативных вариантов (см.
http://en.wikipedia.org/wiki/Quotation_mark,_non-English_usage


Должна быть реализована функция расстановки кавычек наподобие quote из gnulib. Необходимо учитывать, что в некоторых языках (фр.) приняты пробелы внутри кавычек.
Возможно это остаётся на усмотрение различных языков программирования. Хотя я бы делал на C с обёртками в остальные.


Страницы, ссылающиеся на данную: Локализация/ЛокализацияПрограмм


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]