Sådan oversætter du Redmine til ethvert sprog

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

En af Redmines største funktioner er, at du nemt kan oversætte denne projektstyringsapplikation til hvilket som helst sprog, du ønsker.

Bemærk: Oplysningerne i denne artikel gælder kun for Redmine og gælder ikke for Easy Redmine.

Når det kommer til Redmine-oversættelse, skal du oversætte et par ting:

  • Den primære sprogfil: Denne fil er placeret i den aktuelle trunk på kilde: /trunk/config/locales.
  • Wiki-værktøjslinjens sprogfil: Denne fil er placeret i kilde: trunk/public/javascripts/jstoolbar/lang
  • De 4 medfølgende hjælpefiler: Alle disse filer er placeret i kilde: trunk/public/help/ under en undermappe, der er opkaldt efter sprogunderetiketten

Som et eksempel, lad os sige, at du gerne vil oversætte Redmine-applikationen til det finske sprog (sprogunderetiketten definerer sproget som "fi"). For at gøre dette skal du følge følgende trin:


Trin

  • Trin 1: Kopier /config/locales/en.yml til /config/locales/fi.yml
  • Trin 2: Kopier /public/javascripts/jstoolbar/lang/jstoolbar-en.js til /public/javascripts/jstoolbar/lang/jstoolbar-fi.js
  • Trin 3: Kopier /public/help/en/* til /public/help/fi/*.
  • Trin 4: Ændr nøglen general_lang_name med det nye sprogs fulde navn i fi.yml (i dette tilfælde: general_lang_name: Finsk)
  • Trin 5: Ryd derefter programcachen. Dette vil gøre det nye sprog (finsk) tilgængeligt i Redmine-softwaren (eksempelvis rake tmp:cache:clear)

Efter at have fulgt de førnævnte trin, fortsæt med følgende:

  • Trin 6: Oversæt hver streng i jstoolbar-fi.js og fi.yml-filerne og oversæt indholdet af de 4 hjælpefiler (wiki_syntax_markdown.html, wiki_syntax_textile.html, wiki_syntax_detailed_markdown.html og wiki_syntax_detailed_textile.html)
  • Trin 7: Brug rake-opgaverne (disse er detaljeret nedenfor) til at teste din oversættelse. Du skal rette eventuelle fejl (hvis du får nogen) relateret til lokaliteter.
  • Trin 8: Indsend din oversættelse som en patch eller en almindelig fil (der kræves login). Vælg "Oversættelse" fra kategorilisten.
  • Trin 9: Endelig og vigtigst af alt, nyd dit oversættelsesarbejde!


De testende rake-opgaver:

  • Hvis du bruger Ruby 1.9-versionen eller nyere:

rake locales:check_parsing_by_psych

  • På alle Ruby-versioner:

rake locales:check_interpolation

  • Hele testen (dette er valgfrit): rake test

Bemærk, at "rake test" tager ret lang tid, og den kører automatisk på CI (Continuous Integration) serveren.


Begrænsninger

Bemærk, at der er visse begrænsninger på plads

  • Alle filerne skal være kodet i 8-bit Unicode Transformation Format (UTF-8). I oversatte strenge må du ikke bruge HTML (Hypertext Markup Language) entities.
  • Sørg for at kontrollere, at dine filer ikke har en byte-order mark (BOM). Du kan fjerne en byte-order mark med denne kommando: awk '{if(NR==1)sub(/^\xef\xbb\xbf/, "");print}' < oldfile > newfile
  • Du skal kun indsende opdateringer baseret på nye oversættelsesfiler (du kan finde disse opdateringer i /config/locales)


Opdateringer til sprogfiler

"en.yml"-fil fungerer som den primære sprogfil. Ved at køre rake locales:update kan du kontrollere, om den indeholder nye strenge. Denne kommando kopierer eventuelle nye strenge til andre oversættelsesfiler (standardværdien er den engelske oversættelse).

I oversættelsen i Redmine kan du også aktivere tredjeparts-plugins til at understøtte oversættelser, der omfatter tilpasselige termer.


Tilpasning af terminologi i Redmine oversættelser

  • Indstil den eksisterende mappe til config/overrides/<locale> inden for plugin'en
  • Kopier den nuværende 000.yml til ./XXX.yml. Her er "XXX" et trecifret nummer, der definerer dine definitioners prioritet: Jo højere nummer, jo højere prioritet. Det er bedst at undgå oprettelsen af 999.yml. Dette vil give dig mere plads til yderligere ændringer.
  • Filtrer de specifikke definitioner, som du ikke ønsker at ændre. På denne måde vil en fil med lavere prioritet være i stand til at anvende sine ændringer på de elementer, som du ikke ønsker at blande dig i.
  • På de resterende termer skal du anvende dine egne definitioner


Understøttede termer, der kan tilpasses i din plugin

  • Som sædvanligt skal du levere oversættelsesfiler under config/locales for at fungere korrekt, når du ikke har installeret plugin'en. Hvis du ikke gør det, skal du eksplicit kræve denne plugin i din init.rb. Hvis du søger yderligere information, kan du tjekke Redmine-dokumentationen
  • Kopier dine lokaliseringsfiler under config/locales
  • For hver opført term, der kan overskrives i 000.yml, skal du ændre oversættelserne for at anvende en interpolation. For eksempel, når du udskriver "issue", skal du erstatte ordet med %{issue}. Desuden, når du udskriver "issue(s)", skal du erstatte ordet med %{issue_or_issues}.
  • Du kan understøtte et større antal termer, der kan overskrives i din plugin. Hvis du også bruger den i base-Redmine, skal du tilføje interpolerede definitioner for Redmine-terminologier.

Som et eksempel kan du understøtte en ny %{my_term} terminologi i dine lokaliseringsfiler. Hvis oversættelsen også bruges i Redmine-termer, skal du inkludere dem i dine lokaliseringsfiler med korrekt erstatning af %{my_term} for at sikre konsistens i oversættelsen.

Prøv Easy Redmine i en 30 dages gratis prøveperiode

Fuld funktionalitet, SSL-beskyttet, daglige backups, i din geolocation