Як перекласти Redmine на будь-яку мову

5/26/2020
5 minutes
Лукаш Беньа

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

Увага: Інформація в цій статті застосовується лише до Redmine і не застосовується до Easy Redmine.

Щодо перекладу Redmine, вам потрібно перекласти кілька речей:

  • Основний файл мови: цей файл розташований в поточній гілці на джерелі: /trunk/config/locales.
  • Файл мови панелі інструментів вікі: цей файл розташований в джерелі: trunk/public/javascripts/jstoolbar/lang
  • 4 вбудовані файли довідки: всі ці файли розташовані в джерелі: trunk/public/help/ в підкаталозі, який називається за мовним підтегом

Наприклад, якщо ви хочете перекласти додаток Redmine на фінську мову (реєстр підтегів мови визначає мову як "fi"), вам потрібно дотримуватися наступних кроків:


Кроки

  • Крок 1: Скопіюйте /config/locales/en.yml до /config/locales/fi.yml
  • Крок 2: Скопіюйте /public/javascripts/jstoolbar/lang/jstoolbar-en.js до /public/javascripts/jstoolbar/lang/jstoolbar-fi.js
  • Крок 3: Скопіюйте /public/help/en/* до /public/help/fi/*.
  • Крок 4: Змініть ключ general_lang_name на повне ім'я нової мови в fi.yml (у цьому випадку: general_lang_name: Finnish)
  • Крок 5: Далі, очистіть кеш додатку. Це зробить нову мову (фінську) доступною в програмному забезпеченні Redmine (наприклад, rake tmp:cache:clear)

Після виконання вищезазначених кроків продовжуйте наступним чином:

  • Крок 6: Перекладіть кожний рядок в файлах jstoolbar-fi.js та fi.yml та перекладіть вміст 4 файлів довідки (wiki_syntax_markdown.html, wiki_syntax_textile.html, wiki_syntax_detailed_markdown.html та wiki_syntax_detailed_textile.html)
  • Крок 7: Використовуйте задачі rake (вони детально описані нижче), щоб перевірити свій переклад. Ви повинні виправити будь-які помилки (якщо вони є) щодо локалей.
  • Крок 8: Надішліть свій переклад у формі патча або простого файлу (потрібно ввійти в систему). У списку категорій виберіть "Переклад".
  • Крок 9: Нарешті і найголовніше, насолоджуйтеся своєю роботою з перекладом!


Тестові задачі rake:

  • Якщо ви використовуєте версію Ruby 1.9 або вище:

rake locales:check_parsing_by_psych

  • На всіх версіях Ruby:

rake locales:check_interpolation

  • Весь тест (це необов'язково): rake test

Зверніть увагу, що "rake test" займає досить довгий час і автоматично запускається на сервері CI (Continuous Integration).


Обмеження

Зверніть увагу, що існують певні обмеження:

  • Усі файли повинні бути кодовані у форматі 8-бітного Unicode Transformation Format (UTF-8). У перекладених рядках не використовуйте HTML (Hypertext Markup Language) entities.
  • Переконайтеся, що ви перевірили свої файли на наявність маркера порядку байтів (BOM). Ви можете видалити маркер порядку байтів за допомогою цієї команди: awk '{if(NR==1)sub(/^\xef\xbb\xbf/, "");print}' < oldfile > newfile
  • Ви повинні надсилати оновлення, базовані на нових файлах перекладу (ви можете знайти ці оновлення в /config/locales)


Оновлення файлів мови

Файл "en.yml" діє в якості основного файлу мови. Запустивши rake locales:update, ви можете перевірити, чи містить він нові рядки. Ця команда копіює будь-які нові рядки в інші файли перекладу (за замовчуванням значення - англійський переклад).

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


Налаштування термінології в перекладах Redmine

  • Встановіть існуючий каталог у config/overrides/<locale> в межах плагіна
  • Скопіюйте поточний файл 000.yml в ./XXX.yml. Тут "XXX" - це трицифровий номер, який визначає пріоритет вашого визначення: чим вище номер, тим вищий пріоритет. Найкраще уникати створення 999.yml. Це дозволить залишити більше місця для додаткових перевизначень.
  • Відфільтруйте ті визначення, які ви не бажаєте змінювати. Таким чином, файл з меншим пріоритетом зможе застосовувати свої зміни до елементів, які ви не бажаєте змінювати.
  • Для решти термінів застосовуйте свої визначення


Підтримка термінів, які можна налаштувати в плагіні

  • Як зазвичай, надайте файли перекладу у config/locales, щоб правильно працювати, коли ви не встановили плагін. Якщо ви цього не зробите, ви повинні явно вимагати цей плагін у вашому init.rb. Якщо ви шукаєте додаткову інформацію, перегляньте документацію Redmine
  • Скопіюйте свої локалі у config/locales
  • Для кожного перерахованого терміну, який можна перевизначити в 000.yml, змініть переклади, щоб застосувати інтерполяцію. Наприклад, коли ви друкуєте питання, вам слід замінити слово на %{issue}. Крім того, коли ви друкуєте питання (и), вам слід замінити слово на %{issue_or_issues}.
  • Ви можете підтримувати більшу кількість перевизначуваних термінів у своєму плагіні. Однак, якщо ви також використовуєте його в базовому Redmine, вам потрібно додати інтерпольовані визначення для термінології Redmine.

Як приклад, ви можете підтримувати нову термінологію %{my_term} у своїх локалях. Якщо переклад використовується також у термінах Redmine, в

Спробуйте Easy Redmine у 30-денній безкоштовній пробній версії

Повнофункціональний, захищений SSL, щоденне резервне копіювання, у вашій геолокації