Александър Шопов wrote:
Знаците, които трябва да екранираш в съобщенията са \ и ". Останалите са
OK.
Екранирани нещата изглеждат така: \\ и \"
в libc има текстове, които съдържат "....\`$1'..."
Не знам как превеждаш код на C или C++ и той продължава да се компилира.
:) е съобщения от код на C или C++.
Ако е само в коментарите - значи е ОК. Ако превеждаш for/switch/if...
else - може да постигнеш такова нещо с директиви на препроцесора, обаче
идеята си е перверзия.
:) Само съм чувал за компилатори, в които за програмният език се
използва кирилица.
Не всички платформи и компилатори поддържат код в разни сложни
кодирания. Може да се наложи самия код да се обработва с някаква
програма при компилиране.
Понеже даваш пример с обвивка - преведена е bash. Преводът е в UTF-8.
Да.
Когато едно съобщение се извежда - то бива прекодирано чрез библиотека в
кодирането на средата: gettext чрез libiconv в X или конзола. Какво ще
се случи - зависи от взаимодействието на тези компоненти със средата.
При популярната комбинация от инструментите на GNU - знаците, които не
могат да се прекодират, се пропускат или извеждат като ?.
И тук е проблема, де да ги пропускаше тези кавички.
ал_шопов
В 00:34 +0200 на 16.01.2008 (ср), Roumen Petrov написа:
Когато се ползват отваряща ( U+201E DOUBLE LOW-9 QUOTATION MARK , ако
не ме лъже паметта ) и затваряща ( U+201C LEFT DOUBLE QUOTATION MARK)
кавичка, при превод трябва ли да се използва \\ преди знаците и в кои
случай ?
Предполачам, че е без проблем когато се превежда Си/С++ програмен код,
но когато са съобщения от борн обвивка извеждани на терминал поддържащ
8-битово кодиране, какво става ?
Направих тестова постановка и дано да се прочетат следващите редове
(писмото е написано в UTF-8) :
„ - отваряща ( U+201E DOUBLE LOW-9 QUOTATION MARK)
“ - затваряща ( U+201C LEFT DOUBLE QUOTATION MARK)
се получават като две запетайки или двойна кавичка, съответно, при
ISO8859-5 и KOI8-R.
Когато текста е от C/C++ няма проблем, но когато е от програма на борн
обвивка или съвместима, възниква проблема. Двойната кавичка е специален
знак и трябва да се замести с \", за да се изведе коректно съобщение.
Обаче, ако "...\`$1'...", се преведе като "....„$1\\“...", не изглежда
добре за UTF-8 и CP1251.
Извежда се излишна, обратно наклонена, черта. Получава се ....„$1\“...,
където, при CP1251, са знаци с кодове 0x84 и 0x93, съответно.
Румен
_______________________________________________
Dict mailing list
[email protected]
http://zver.fsa-bg.org/cgi-bin/mailman/listinfo/dict