Hoe Redmine te vertalen naar elke taal.

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

Een van de beste functies van Redmine is dat je deze projectmanagementapplicatie gemakkelijk kunt vertalen naar elke gewenste taal.

Disclaimer: De informatie in dit artikel is alleen van toepassing op Redmine en is niet van toepassing op Easy Redmine.

Bij het vertalen van Redmine moet je een aantal dingen vertalen:

  • Het primaire taalbestand: dit bestand bevindt zich in de huidige tak op bron: /tak/config/locales.
  • Het taalbestand van de wiki-werkbalk: dit bestand bevindt zich in de bron: tak/public/javascripts/jstoolbar/lang
  • De 4 gebundelde helpbestanden: al deze bestanden bevinden zich in de bron: tak/public/help/ onder een subdirectory die is vernoemd naar de taalsubtag

Als voorbeeld, stel dat je de Redmine-toepassing naar de Finse taal wilt vertalen (de Language Subtag Registry definieert de taal als "fi"). Om dit te doen, moet je de volgende stappen volgen:


Stappen

  • Stap 1: Kopieer /config/locales/en.yml naar /config/locales/fi.yml
  • Stap 2: Kopieer /public/javascripts/jstoolbar/lang/jstoolbar-en.js naar /public/javascripts/jstoolbar/lang/jstoolbar-fi.js
  • Stap 3: Kopieer /public/help/en/* naar /public/help/fi/*.
  • Stap 4: Wijzig de sleutel general_lang_name met de volledige naam van de nieuwe taal in fi.yml (in dit geval: general_lang_name: Fins)
  • Stap 5: Vervolgens, wis de toepassingscache. Hierdoor wordt de nieuwe taal (Fins) beschikbaar in de Redmine-software (bijvoorbeeld, rake tmp:cache:clear)

Na het volgen van de bovengenoemde stappen, ga je verder met het volgende:

  • Stap 6: Vertaal elke string in jstoolbar-fi.js en fi.yml-bestanden en vertaal de inhoud van de 4 helpbestanden (wiki_syntax_markdown.html, wiki_syntax_textile.html, wiki_syntax_detailed_markdown.html en wiki_syntax_detailed_textile.html)
  • Stap 7: Gebruik de rake-taken (deze zijn hieronder gedetailleerd) om je vertaling te testen. Je moet eventuele fouten (indien aanwezig) met betrekking tot locales oplossen.
  • Stap 8: Dien je vertaling in de vorm van een patch of een gewoon bestand in (aanmelden is vereist). Selecteer in de categoriekeuzelijst "Vertaling".
  • Stap 9: Tenslotte en het belangrijkste, geniet van je vertaalwerk!


De Test rake taken:

  • Als je de Ruby 1.9-versie of hoger gebruikt:

rake locales:check_parsing_by_psych

  • Op alle Ruby-versies:

rake locales:check_interpolation

  • Volledige test (optioneel): rake test

Houd er rekening mee dat "rake test" een behoorlijk lange tijd in beslag neemt en automatisch wordt uitgevoerd op de CI (Continuous Integration) server.


Beperkingen

Houd er rekening mee dat er bepaalde beperkingen gelden

  • Alle bestanden moeten gecodeerd zijn in 8-bits Unicode Transformation Format (UTF-8). Gebruik in vertaalde strings geen HTML (Hypertext Markup Language) entiteiten.
  • Zorg ervoor dat je controleert of je bestanden geen Byte-order mark (BOM) bevatten. Je kunt een Byte-order mark verwijderen met deze opdracht: awk '{if(NR==1)sub(/^\xef\xbb\xbf/, "");print}' < oldfile > newfile
  • Je moet alleen updates indienen op basis van nieuwe vertaalbestanden (je kunt deze updates vinden in /config/locales)


Updates van taalbestanden

Het bestand "en.yml" fungeert als het primaire taalbestand. Door rake locales:update uit te voeren, kun je controleren of het nieuwe strings bevat. Deze opdracht kopieert alle nieuwe strings naar andere vertaalbestanden (de standaardwaarde is de Engelse vertaling).

Bij vertalingen in Redmine kun je ook 3rd party plugins inschakelen om vertalingen te ondersteunen die aanpasbare termen bevatten.


Aanpassen van terminologieën over vertalingen in Redmine

  • Stel de bestaande directory in op config/overrides/<locale> binnen de plugin
  • Kopieer de huidige 000.yml naar ./XXX.yml. Hierbij is "XXX" een driecijferig nummer dat de prioriteit van uw definities bepaalt: hoe hoger het nummer, hoe hoger de prioriteit. Het is het beste om de creatie van 999.yml te vermijden. Hierdoor kunt u meer ruimte overlaten voor extra overrides.
  • Filter de specifieke definities uit die u niet wilt wijzigen. Op deze manier kan een bestand met lagere prioriteit zijn wijzigingen toepassen op de elementen waar u niet mee wilt rommelen.
  • Op de resterende termen, pas uw eigen definities toe


Ondersteunende termen die aanpasbaar zijn in uw plugin

  • Zoals gewoonlijk, lever vertaalbestanden onder config/locales, om goed te functioneren wanneer u de plugin niet hebt geïnstalleerd. Als u dat niet doet, moet u deze plugin expliciet vereisen in uw init.rb. Als u meer informatie wilt, raadpleeg dan de Redmine-documentatie
  • Kopieer uw locaties onder config/locales
  • Voor elke vermelde term die overridable is in 000.yml, wijzigt u de vertalingen om een interpolatie toe te passen. Bijvoorbeeld, wanneer u een probleem afdrukt, moet u het woord vervangen door %{issue}. Bovendien, wanneer u problemen afdrukt, moet u het woord vervangen door %{issue_or_issues}.
  • U kunt een groter aantal overridable termen ondersteunen in uw plugin. Als u het echter ook in basis-Redmine gebruikt, moet u geïnterpoleerde definities toevoegen voor Redmine-terminologieën.

Als voorbeeld kunt u een nieuwe %{my_term} terminologie ondersteunen in uw elocales. Als de vertaling ook wordt gebruikt in Redmine-termen, moet u ze opnemen in uw elocales met de juiste vervanging van %{my_term} om consistentie in vertaling te garanderen.

Probeer Easy Redmine 30 dagen gratis uit

Volledige functies, SSL-beveiligd, dagelijkse back-ups, in uw geografische locatie