Jak přeložit Redmine do jakéhokoliv jazyka.
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.