Як перекласти Redmine на будь-яку мову
Одна з найбільших переваг 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, в