-
Notifications
You must be signed in to change notification settings - Fork 0
Home
toukmanov edited this page Mar 23, 2015
·
30 revisions
Конфигурация приложения
- token (string): API token
- locale (string): selected locale (ru, en, etc.), если не задано- используется язык по-умолчанию
- application_id (int): API application id, если не задано- получаем приложение по-умолчанию
- source (string): название источника (если None- переводы выдергиваются из API по одному)
- client (Client): custom API client (для заглушек, логирования или кэша)
configure(my_token, 'ru')
configure(my_token, 'ru', preload = True, client = MyCustomAPIClient)
Перевести строку
- label (string): tranlation label
- data (dict): user data
- description (string): tranlation description
- language (Language):
- options (dict): options options: safe (boolean default False) - if False escape html special symbols
print tr('{actor} give you {count} apples', {'actor':{'name':'John','gender':'male'},'count':10}, 'Apple giving')
print tr('I want print {html}', {'html':'<b>Html</b><i>code</i>'}, options = {'safe':True})
Отправить пропущенные ключи на сервер
Класс для работы в контексте, позволяет работать с несколькими контекстами одновременно:
ru = Context().configure(token, locale = 'ru')
en = Context().configure(token, locale = 'en')
print ru.tr('Hello world')
print en.tr('Hello world')
ru.submit_missed()
Demo web server + unittests
sudo pip install virtualenv
# create virtualenv:
virtualenv --no-site-packages tmldemo
# activate:
. tmldemo/bin/activate
# install deps:
pip install -r demo/requirements.txt
# run webserver 127.0.0.1:5000
./demo.sh
# run unittests:
./unittests.sh
Можно переводить тексты в тестовом режиме на http://127.0.0.1:5000 Демо работает на http://tml.budutam.ru Поддерживаются:
- {name}
- {name|жетон}
- {name||pyped}}
- {name::case}
Для получения переводов используется словарь: объект наследующий классу AbstactDictionary
- init(fallback) - в конструктор мы передаем ф-ю обработчик, которая вызывается если перевод не найден (по умолчанию мы возвращаем label ключа в качестве перевода)
- fetch(key) - получить перевод (Translation) для ключа, если перевода нет- кинуть исключение
- translate(key) - получить перевод, если его нет- вызвать fallback