Александър Шопов 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

Raspunde prin e-mail lui