Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
saulet 240-249.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
35 Кб
Скачать
☆

Install(domain [, localedir [, unicode]])

‘translation(domain, localedir).install(unicode)’ шақыруына эквивалентті. Бұл функция функциясын хабарламаның аудармасын орындайтын _(), орнатудың ең қарапайым жолын ұсынады. Аттың баптауларының барлығына орнатылады, сондықтан бағдарлама жұмыс істейтін барлық модульдерде қолжетімді болады.

Төменде жолдық хабарламалардың аудармасын орындайтын класстар сипатталады.

NullTranslations([fp])

Қалған аудармашы-класстар үшін базалық класс ретінде қолданылады және негізгі интерфейстә орнатады. Орындау барысында _аргумент None мәніне тең болса, info және _charset қорғалған атрибуттарын қондырады. Егер аргумент берілмесе және None мәніне тең болмаса fp аргументі туынды кластарда қайта анықтайтын _parse(fp) әдісін шақырады.

NullTranslations экземпляры келесі әдістері бар:

_parse(fp) базалық класта ештеңе істемейді. Туынды кластарда бұл әдіс fp файлдық обьектісімен берілген файлдағы мәліметтерді оқып, хабарлама каталогтарының көшірмесін тексеру керек.

gettext(message)

базалық класта message хабарламасын өзгеріссіз қайтарады. Туынды кластарда хабарламаның аудармасын қайтарады.

ugettext(message)

базалық класта message хабарламасын Unicodе жолы түрінде қайтарады. Туынды кластарда хабарламаның аудармасын Unicodе жолы түрінде қайтарады.

info()

_info (сөздік түріндегі метамәліметті каталог) қорғалған атрибутының мәнін қайтарады.

charset()

_ charset (каталогтағы хабарламасының аудармасының коды) қорғалған атрибутының мәнін қайтарады

install([unicode])

егер unicode аргументі қате болса, немесе жалған болса, орнатылған аттарға өзінің gettext() әдісін қондырады. Басқа жағдайда өзінің ugettext() әдісін орнатады.

Орнатылған аттардың бағдарламаның барлық модульдерінде іске асатынын ескеру керек. Модульдердің өзі бұл әдісті қолданбау керек. Модульді импорттайтын бағдарлама _() атын қондырмайтын жағдайда модульдердің дұрыс жұмысын қамтамасыз ету үшін модульдің басында келесі кодты енгізу қажет:

def gettext(message): return message

import __builtin__

if hasattr(__builtin__, ’ps1’):

# интерактивті режим қолданылады

_ = gettext

elif not hasattr(__builtin__, ’_’):

__builtin__._ = gettext

Бұл интерактивті режим де де модульді импорттауда қатесіз жұмыс істеуге мүмкіндік береді.

Gettext модулі сонымен қатар NullTranslations туындайтын GNUTranslations класын анықтайды. Бұл класс GNU gettext (big-endian және little-endian) форматындағы ‘.mo-файлдарды оқуды қамтамасыз ету үшін _parse() әдісін қайта анықтайды. Сонымен қатар каталогтың метамәліметтерін талдайды және оларды «қорғалған» _info атрибутының уөшірмесінде сақтайды. Егер каталогта ’Content-Type’ кілті бар жазба болса, онда нұсқалған кодтау «қорғалған» _charset атрибутында сақталады.

Егер ‘.mo’ бұзылған болса, GNUTranslations көшірмесін тексеру кезінде IOError хабарламасы шығады.

GNUTranslations класы gettext() және ugettext() әдістерін қайта анықтайды. Соңғысы _charset атрибутын қосымша unicode жолын алу үшінқондырылған unicode() функциясына береді.

ОС Solaris өзіндік ‘.mo’-файлдардың форматын анықтайды. Олар қазіргі кезде қолданылмайды.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]