i18n

Скріншот програми:
i18n
Дані програми:
Версія: 0.1
Дата завантаження: 14 Apr 15
Розробник: Antonio Cuni
Ліцензія: Безкоштовно
Популярність: 17

Rating: 3.0/5 (Total Votes: 1)

i18n є пакет, який намагається спростити робочий процес і розвиток інтернаціональних додатків & NBSP ;. Це тонка оболонка навколо існуючих інструментів, зокрема, gettext, і Бабеля.
Основи використання
# Demo.py
#
від i18n.translator імпорту Перекладач
supported_languages ​​= ['it_IT', 'fr_FR', 'de_DE']
# Активувати італійські переклади
TR = Переводчик ('/ шлях / до / Root', supported_languages ​​"it_IT ')
друк TR ._ ('Привіт, світ! ")
де / шлях / до / кореневої / є кореневий каталог вашого проекту. Коли екземпляр, клас Перекладач автоматично створює каталог з ім'ям / шлях / до / кореневої / мови, в яких перекази зберігаються.
Добування повідомлення
Перед тим, як сам переклад, необхідно витягти повідомлення з ваших вихідних файлів, посилаючись на команду екстракт на модулі i18n, що обгортка навколо екстракту pybabel та оновлення pybabel:
І NBSP; пітон -m i18n --root = / шлях / до / кореневої --languages ​​= it_IT, fr_FR, de_DE екстракт
Екстракт шукає всі повідомлення загорнуті в виклики _ (), Gettext () або ngettext () і виробляє файл з ім'ям Мови / template.pot. Це стандартний Gettext PO file`, який містить всі знайдені повідомлення у додатку.
Крім того, екстракт () також створює файл каталогу повідомлень для кожного з підтримуваних мов як / $ CODE / LC_MESSAGES / messages.po, де $ CODE є однією з мов, перелічених у supported_languages ​​(it_IT, fr_FR і de_DE в наведеному вище прикладі ).
Файли каталогу тепер готові бути переведені за допомогою однієї з багатьох існуючих інструментів, наприклад, QT Linguist або Poedit. Для правильного функціонування програми, цілі мови / ієрархія повинна бути збережена. Ми пропонуємо відстежувати різні messages.po файлів в системі управління версіями разом з іншими файлами, що належать до застосування.
Оновлення повідомлення
При розробці програми, ви, безсумнівно, додати нові повідомлення, які будуть переведені. Команда екстракт автоматично обробляти цей випадок: якщо вона знаходить існуючі файли каталогу, їх зміст (у тому числі існуючі переклади) об'єднана з недавно витягнутих повідомлень.
Компіляція каталоги
Це необхідно скласти каталозі файлів перед їх використанням gettext ,. За замовчуванням, наша Перекладач об'єкт автоматично компілює всі каталоги виявляються в мовах /, виробляючи відповідних .mo файлів. Збірник робиться тільки тоді, коли файл каталогу було змінено. Це означає, що в більшості випадків вам не доведеться турбуватися про складання каталогів.
Якщо ви хотіли б мати більше контролю над цим кроком, ви можете пройти autocompile = False конструктору Перекладач і зібрати їх вручну з командного рядка:
І NBSP; пітон -m i18n --root = / шлях / до / кореневої --languages ​​= it_IT, fr_FR, de_DE компіляції
Зберігання переклади в базі даних
Для деяких додатків корисно, щоб дозволити користувачеві визначати нові переклади та / або заміщають за замовчуванням. i18n підтримує цей варіант використання з класом DBTranslator, що підклас Перекладач. При перекладі DBTranslator спочатку дивиться в базі даних: якщо повідомлення не знайдено, він делегує на стандартну поведінки GetText.
DBTranslator заснований на SQLAlchemy. Його конструктор приймає додатковий параметр двигуна:
від i18n.dbtranslator DBTranslator імпорту
від SQLAlchemy імпорту create_engine
двигун = create_engine ('SQLite: ///db.sqlite')
ROOT = '/ шлях / до / кореневої "
МОВИ = ['it_IT', 'fr_FR']
DEST_LANGUAGE = 'it_IT "
TR = DBTranslator (корінь, мов, DEST_LANGUAGE, двигун = двигуна)
друк TR ._ ("привіт світ")
DBTranslator автоматично створює таблицю translation_entries в БД. Потім це до застосування щоб забезпечити користувальницький інтерфейс для роботи з таблицею. Для тестування ви можете використовувати метод add_translation (), щоб вставити новий переклад в БД:
tr.add_translation ("it_IT", "привіт світ", "Ciao Mondo")
друк TR ._ ("привіт світ") # виводить "чао Mondo"
Як використовувати глобальну Перекладач
Відповідно до проекту, i18n намагається повністю уникнути глобального стану. Це означає, що ви можете створити екземпляр, як багато Перекладач і DBTranslator, як ви хочете, кожен з посиланням на інший каталог та / або бази даних. Це особливо корисно для тестування.
Тим не менш, на практиці більшість проектів хоче використовувати глобальну перекладач, який знає про посланнях всіх компонентів в проекті. Демонстраційна програма показує, як це зробити в модулі translate.py:
імпорт ру
від i18n.translator імпорту Перекладач
# Встановити корінь проекту в каталог, що містить цей файл
ROOT = py.path.local (__ файл __). Dirpath ()
МОВИ = ['it_IT', 'fr_FR', 'de_DE']
TR = Перекладач (корінь, МОВИ, "it_IT ')
_ = Tr._
ngettext = tr.ngettext
якщо __name__ == '__main__':
І NBSP; tr.cmdline (sys.argv)
Таким чином, інша частина програми може просто імпортувати і використовувати _ () і ngettext () з translate.py. Або, на вашу перевазі, імпорт безпосередньо об'єкт TR і використання TR ._ () і tr.ngettext (), щоб перевести повідомлення.
Останні два рядки коду дозволяє зручний спосіб виклику екстракт і компіляції з командного рядка без необхідності вручну вказати кореневий каталог і підтримувані мови. Просто біжи:
І NBSP; екстракт пітон translate.py # ... або скомпілювати

Вимоги

  • Python

Схожі програми

hypua2jamo
hypua2jamo

20 Feb 15

PHP Net_IDNA
PHP Net_IDNA

11 May 15

uim
uim

14 Apr 15

translationstring
translationstring

14 Apr 15

Інші програми розробника Antonio Cuni

pdbpp
pdbpp

11 May 15

i18n

Коментар не знайдено
додати коментар
Включіть картинки!