Jak přeložit Redmine do jakéhokoliv jazyka.

5/26/2020
5 minutes
Lukáš Beňa.

Jednou z největších výhod Redmine je, že můžete snadno přeložit tuto aplikaci pro správu projektů do jakéhokoli jazyka, který si přejete.

Upozornění: Informace v tomto článku se vztahují pouze na Redmine a neplatí pro Easy Redmine.

Pokud jde o překlad Redmine, musíte přeložit několik věcí:

  • Hlavní jazykový soubor: tento soubor se nachází v aktuálním trunku na adrese: /trunk/config/locales.
  • Jazykový soubor wiki toolbaru: tento soubor se nachází na adrese: trunk/public/javascripts/jstoolbar/lang
  • 4 balíčky nápovědy: Všechny tyto soubory se nacházejí na adrese: trunk/public/help/ v podadresáři, který je pojmenován podle jazykového subtagu.

Jako příklad uvedeme, že chcete-li přeložit aplikaci Redmine do finštiny (jazyk je definován jako "fi" v registru jazykových subtagů), musíte postupovat následovně:


Kroky

  • Krok 1: Zkopírujte soubor /config/locales/en.yml do souboru /config/locales/fi.yml
  • Krok 2: Zkopírujte soubor /public/javascripts/jstoolbar/lang/jstoolbar-en.js do souboru /public/javascripts/jstoolbar/lang/jstoolbar-fi.js
  • Krok 3: Zkopírujte soubory /public/help/en/* do souborů /public/help/fi/*.
  • Krok 4: Upravte klíč general_lang_name v souboru fi.yml na nový název jazyka (v tomto případě: general_lang_name: Finnish)
  • Krok 5: Dále vymažte cache aplikace. Tím se nový jazyk (finština) stane dostupným v softwaru Redmine (například pomocí příkazu rake tmp:cache:clear)

Po provedení výše uvedených kroků postupujte následovně:

  • Krok 6: Přeložte každý řetězec v souborech jstoolbar-fi.js a fi.yml a přeložte obsah 4 souborů nápovědy (wiki_syntax_markdown.html, wiki_syntax_textile.html, wiki_syntax_detailed_markdown.html a wiki_syntax_detailed_textile.html)
  • Krok 7: Použijte rake úlohy (ty jsou podrobně popsány níže), abyste otestovali svůj překlad. Musíte opravit všechny chyby (pokud se vyskytnou) související s lokalizací.
  • Krok 8: Odevzdejte svůj překlad ve formě záplaty nebo běžného souboru (je nutné se přihlásit). Z kategorie vyberte "Překlad".
  • Krok 9: Nakonec a nejdůležitější, užijte si svou práci na překladu!


Rake úlohy pro testování:

  • Pokud používáte verzi Ruby 1.9 nebo vyšší:

rake locales:check_parsing_by_psych

  • Na všech verzích Ruby:

rake locales:check_interpolation

  • Celkový test (toto je volitelné): rake test

Mějte na paměti, že "rake test" trvá poměrně dlouho a automaticky se spouští na serveru CI (Continuous Integration).


Omezení

Všimněte si, že jsou zde určitá omezení:

  • Všechny soubory musí být kódovány v 8bitovém Unicode Transformation Format (UTF-8). V přeložených řetězcích nepoužívejte HTML (Hypertext Markup Language) entity.
  • Ujistěte se, že vaše soubory neobsahují značku pořadí bajtů (BOM). Značku pořadí bajtů můžete odstranit pomocí tohoto příkazu: awk '{if(NR==1)sub(/^\xef\xbb\xbf/, "");print}' < oldfile > newfile
  • Měli byste odesílat aktualizace pouze na základě nových souborů překladu (tyto aktualizace najdete v /config/locales)


Aktualizace jazykových souborů

Soubor "en.yml" slouží jako hlavní jazykový soubor. Spuštěním příkazu rake locales:update můžete zkontrolovat, zda obsahuje nové řetězce. Tento příkaz zkopíruje nové řetězce do ostatních souborů překladu (výchozí hodnota je anglický překlad).

Při překladu v Redmine můžete také povolit podporu překladů třetích stran, které zahrnují upravitelné termíny.


Přizpůsobení terminologií překladům v Redmine

  • Nastavte existující adresář na config/overrides/<locale> v rámci pluginu
  • Zkopírujte aktuální 000.yml do ./XXX.yml. Zde "XXX" je tříčíselné číslo, které určuje prioritu vašich definic: čím vyšší číslo, tím vyšší priorita. Nejlepší je vyhnout se vytváření 999.yml. To vám umožní nechat více místa pro další přepsání.
  • Filtrujte ty konkrétní definice, které nechcete upravovat. Tímto způsobem bude moci soubor s nižší prioritou aplikovat své úpravy na prvky, se kterými nechcete manipulovat.
  • Na zbývajících termínech aplikujte své vlastní definice


Podporované termíny, které lze přizpůsobit v pluginu

  • Stejně jako obvykle poskytněte překladové soubory v adresáři config/locales, aby plugin správně fungoval, pokud jej nemáte nainstalovaný. Pokud to neuděláte, musíte tento plugin explicitně vyžadovat v init.rb. Pokud hledáte další informace, podívejte se do dokumentace Redmine
  • Zkopírujte své lokalizace do adresáře config/locales
  • Pro každý uvedený termín, který lze přepsat v 000.yml, změňte překlady tak, aby se aplikovala interpolace. Například při tisku problému byste měli slovo vyměnit za %{issue}. Kromě toho, při tisku problémů, byste měli slovo vyměnit za %{issue_or_issues}.
  • Můžete podporovat větší počet přepsatelných termínů ve svém pluginu. Pokud jej však používáte také v základním Redmine, musíte přidat interpolované definice pro terminologie Redmine.

Jako příklad můžete podporovat novou terminologii %{my_term} ve svých lokalizacích. Pokud se překlad používá také v terminologiích Redmine, musíte je zahrnout do svých lokalizací s korektní náhradou %{my_term}, aby byla zajištěna konzistence v překladu.

Vyzkoušejte Easy Redmine na 30 dní zdarma

Kompletní funkce, chráněno protokolem SSL, denní zálohování, ve vaší lokalitě.