Dev ru

Для більшості операцій обов'язкові інструменти gettext (msgfmt і msgmerge)! Якщо ви працюєте з мовами з напрямком письма справа-наліво (арабська, перська, іврит ...), вам також необхідна бібліотека C FriBidi для вашої платформи.

Коли ви працюєте над перекладом, будь ласка, використовуйте тільки po-файли з каталогу / branches. Каталог / trunk призначений для зберігання тільки перевірених po-файлів, їх редагувати повинен тільки супроводжуючий!

Як це працює

Каталоги / branches /<язык>/ Містять вихідні файли для системи переказів (<язык> є кодом мови ISO, наприклад це може бути es або zh_CN). Вихідні файли мають розширення .po і є звичайними текстовими файлами з наступним простим синтаксисом:

У разі, якщо записи msgid або msgstr занадто довгі, вони розбиваються на кілька рядків, ось так:

Це означає, що коли рядок «ідентифікатор повідомлення» використовується в якості імені оператора, тексту підказки, назви меню і так далі, вона буде відображена на екрані, як «переклад повідомлення».

Вихідні файли компілюються в файл / trunk / locale /<язык>/LC_MESSAGES/blender.mo. який є двійковим файлом і саме він використовується системою переказів.

Як редагувати переклади - перекладачам

Це завдання також проста до неподобства. Якщо ви знайшли рядок, яку ви хочете перевести, в файлі / branches /<язык>/<язык>.po в запису msgid, просто напишіть її переклад у відповідному записі msgstr. Якщо запис msgid позначена як неточна (fuzzy), ось так:

... це означає, що переклад, використовуваний для повідомлення, існував, але саме повідомлення було змінене, так що переклад так само слід оновити (що простіше, ніж робити новий переклад на основі попереднього).

Коли переклад буде оновлено, видаліть рядок з #, fuzzy і після цього він знову стане використовуватися.

Ви можете використовувати спеціальні інструменти для спрощення редагування po-файлів, наприклад Poedit.

Як редагувати переклади з інтерфейсу Blender - перекладачам

Також ви можете, в якійсь мірі. переводити Blender безпосередньо з його інтерфейсу за допомогою доповнення Manage UI Translations.

Після того, як ви включите доповнення, вам потрібно буде його налаштувати, щоб принаймні шляху в параметрах Виконавчий файл gettext 'msgfmt' і Коренева папка перекладів були вірно встановлені (останню путь повинен вказувати на вашу робочу копію сховища bf-translation).

Потім просто включите переклад користувацького інтерфейсу і виберіть мову, над яким ви хочете працювати (зверніть увагу, що коли вибрана мова, інтерфейс буде переводитися на нього, навіть коли настройка перекладу інтерфейсу Blender відключена). Натиснувши праву кнопку миші над будь-яким елементом користувальницького інтерфейсу, виберіть у спадному меню пункт Правити переклад. відкриється спливаюче вікно з усіма повідомленнями, приєднаними до даної кнопці і / або лежать в її основі даними RNA.

Однак запам'ятайте, за допомогою цієї системи неможливо перевести все. оскільки до багатьох повідомленнями просто не можна дістатися зазначеним способом!

Dev ru

Приклад спливаючого вікна «Правити переклад».

Зверніть увагу на зображення праворуч, на якому показані деякі можливості спливаючого вікна з редагування даних:

  • Ім'я редагованого po-файлу з деякою статистикою.
  • Шлях RNA редагованого властивості, структури або оператора.
  • Контекст RNA, який використовується для перекладу міток.
  • Всі зібрані мітки (зазвичай це одна мітка RNA і необов'язкова мітка-перевизначення на рівні кнопки, наприклад, тут міткою оператора є «Render», однак кнопка використовується для візуалізації анімації, так що вона перевизначила мітку на «Animation»).
  • Всі зібрані підказки (в більшості випадків це тільки підказки RNA!).

Для кожного з цих повідомлень вам показується оригінал, текстове поле для редагування перекладу і кнопка-перемикач, що дозволяє помітити переклад як неточний.

Коли ви закінчите вносити правки, вам всього лише потрібно натиснути на кнопку ТАК. щоб перевірити переклад і закрити спливаюче вікно, однак будьте обережні: ваші зміни не збережені в po-файлі! Так що періодично відзначайте кнопку-перемикач Зберегти в файл .po. щоб ваші правки вносилися до відповідного файл перекладу.

Ви хочете бачити ваші зміни в інтерфейсі? Просто відзначте кнопку-перемикач Перебудувати файл .mo. Але будьте обережні, так ви створите новий mo-файл у вашому призначеному для користувача каталозі Blender, що буде означати, що всі офіційні переклади більш не використовуватимуться в Blender. Для повернення до умолчательной ситуації просто відзначте кнопку-перемикач Видалити локальні файли .mo.

Як додавати переклади - перекладачам

Якщо вашої мови ще немає в каталозі / branches. ви повинні запитати (наприклад, в списку розсилки) його додавання у адміністратора.

Тим часом ви можете приступити до роботи, виконавши наступні кроки:

  • Скопіюйте файл trunk / po / blender.pot в новий файл branches /<язык>/<язык>.po.
  • Починайте переводити цей файл!

Не забудьте зафіксувати ваші зміни в сховище svn!

Потім створіть і перевірте mo-файл, як описано тут.

Як оновлювати переклади - просунутим перекладачам

Все po-файли в каталозі branches / оновлюються адміністратором приблизно раз в тиждень.

Однак, при необхідності, ви можете самостійно оновити їх для вашої мови.

Щоб зробити це, вам знадобиться як сам Blender, так і його вихідний код, у вас повинно бути включено додаток Manage UI Translations і правильно налаштовані його параметри Шлях до коду і Коренева папка перекладів.

Потім, в панелі Оновити переклади (на вкладці Візуалізація) виберіть мову або мови, які ви хочете оновити і натисніть на кнопку Оновити гілки.

Як об'єднати переклади - перекладачам

Просто використовуйте команду msgcat (msgcat -o виходной_файл.po входной_файл1.po входной_файл2.po .... Додаткову інформацію дивіться в довідці по команді).

Як перевірити ваш переклад - перекладачам

Для перевірки ваших перекладів просто запустіть в каталозі / branches /<язык>/ Наступну команду:

Потім скопіюйте отриманий двійковий файл blender.mo в ваш каталог .blender / locale /<язык>/ LC_MESSAGES /.

Про мови, які потребують певної обробки po-файлів для підтримки письма справа-наліво

В першу чергу це стосується арабської мови, перської мови та івриту.

Даний процес стандартизований! Будь ласка, дотримуйтесь наступних правил:

  • файл <язык>.po в каталозі branches / повинен бути необробленим.
  • Мова повинна визначати напрямок свого письма справа-наліво шляхом додавання його унікального ідентифікатора (ISO-коду) в настройку IMPORT_LANGUAGES_RTL модуля bl_i18n_utils. Це завдання для розробників, так що при необхідності попросіть, наприклад, супроводжуючого i18n зробити це.

Таким чином, інструменти інтернаціоналізації з доповнення будуть автоматично проводити перетворення (використовуючи бібліотеку fribidi), коли воно буде потрібно.

адміністрування

Тут описуються просунуті операції і / або операції, які зачіпають каталог / trunk; перекладачі повинні уникати їх використання. Ми припускаємо, що у вас є вихідні коди Blender, збірка Blender (краще, якщо вона буде максимально схожа на офіційну) і сховище bf-translations, а також що додаток Manage UI Translations включено і налаштовано.

Додавання нової мови

Насамперед необхідно відредагувати файл release / scripts / modules / bl_i18n_utils / settings.py. додайте в кортёж LANGUAGES нову мову. Потім пересоберіте / переустановите Blender - після цього нову мову повинен з'явитися в меню. Просто поновіть каталог branches / с обраним мовою, щоб створити для нього новий порожній po-файл.

Оновлення всіх po-файлів в каталозі / branches

В панелі Оновити переклади (на вкладці Візуалізація) виберіть всі мови і натисніть на кнопку Оновити гілки (переконайтеся, що галка Пропустити .pot не відзначена!).

Ви можете обмежити оновлення певним списком мов просто знімаючи позначки з непотрібних мов.

Оновлення каталогу / trunk

В панелі Оновити переклади (на вкладці Візуалізація) виберіть всі мови і натисніть на кнопку Оновити trunk.

В результаті виконуватися наступні дії:

Переклад неофіційних доповнень

Переклади доповнення зазвичай містяться в словниках Python з ім'ям translations_dict. що містять відображення відображень; ключами зовнішнього відображення служать унікальні ідентифікатори мов (їх ISO-коди), а значеннями - відображення виду сполучення> переклади. Цей словник має бути зареєстрований через виклик методу bpy.app.translations.register (). а разрегістрірован через виклик методу bpy.app.translations.unregister (). рівно також як це відбувається і для самого доповнення.

В панелі Оновити переклади (на вкладці Візуалізація) виберіть мови, з якими ви хочете працювати, а потім виберіть один з операторів в блоці Додатки - у спливаючому вікні вас завжди запитають, з яким доповненням ви хочете працювати:

Оновити дані перекладів ... Витягти повідомлення призначеного для користувача інтерфейсу для обраного доповнення та оновити (або створити) відповідний Python-код (кортёж translations_tuple). Експортувати PO ... Експортувати поточний Python-код у po-файли для обраних мов (також створити pot-файл при необхідності). Імпортувати PO ... Імпортувати всі po-файли в поточному каталозі і відповідно оновити Python-код обраного доповнення.

Будь ласка, зверніть увагу, що:

  • Якщо повідомлення вже присутній в основному перекладі Blender, воно не буде додано до списку повідомлень допоненія, так що якщо вам обов'язково потрібен власний переклад, слід використовувати власний контекст.
  • Інструмент використовує деяку «розмітку» для знаходження згенерованого коду, так що ви можете перемістити цей код туди, куди вам потрібно.

Дивіться також