Hvordan oversette Redmine til hvilket som helst språk

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

Ei av dei største fordelane med Redmine er at du enkelt kan oversette denne prosjektstyringsapplikasjonen til kva som helst språk du ønsker.

Ansvarsfraskrivelse: Informasjonen i denne artikkelen gjelder bare for Redmine og gjelder ikke for Easy Redmine.

Når det gjelder oversettelse av Redmine, må du oversette noen ting:

  • Den primære språkfilen: denne filen ligger i gjeldende trunk på kilde: /trunk/config /locales.
  • Wiki-verktøylinjespråkfilen: denne filen ligger i kilden: trunk/public/javascripts/jstoolbar/lang
  • De 4 buntede hjelpefilene: Alle disse filene ligger i kilden: trunk/public/help/ under en undermappe som er oppkalt etter språkunderkoden

Som et eksempel, si at du vil oversette Redmine-applikasjonen til finsk (språkunderkoden for finsk er "fi"). For å gjøre dette, må du følge disse trinnene:


Trinn

  • Trinn 1: Kopier /config/locales/en.yml til /config/locales/fi.yml
  • Trinn 2: Kopier /public/javascripts/jstoolbar/lang/jstoolbar-en.js til /public/javascripts/jstoolbar/lang/jstoolbar-fi.js
  • Trinn 3: Kopier /public/help/en/* til /public/help/fi/*.
  • Trinn 4: Endre general_lang_name nøkkelen med det nye språkets fulle navn i fi.yml (i dette tilfellet:  general_lang_name: Finsk)
  • Trinn 5: Deretter, tøm programbufferen. Dette vil gjøre det nye språket (finsk) tilgjengelig i Redmine-programvaren (for eksempel, rake tmp: cache: clear)

Etter å ha fulgt de nevnte trinnene, fortsett med følgende:

  • Trinn 6: Oversett hver streng i jstoolbar-fi.js og fi.yml  filer og oversett innholdet i de 4 hjelpefilene (wiki_syntax_markdown.html ,wiki_syntax_textile.html,  wiki_syntax_detailed_markdown.html og wiki_syntax_detailed_textile.html)
  • Trinn 7: Bruk rake-oppgavene (disse er beskrevet nedenfor) for å teste oversettelsen din. Du må rette eventuelle feil (hvis du får noen) relatert til språkinnstillinger.
  • Trinn 8: Send oversettelsen din som en patch eller en vanlig fil (pålogging kreves). Velg "Oversettelse" fra kategorilisten.
  • Trinn 9: Til slutt og viktigst av alt, nyt oversettelsesarbeidet ditt!


Rake-oppgavene for testing:

  • Hvis du bruker Ruby 1.9-versjonen eller nyere:

rake locales: check_parsing_by_psych

  • På alle Ruby-versjoner:

rake locales: check_interpolation

  • Full test (dette er valgfritt): rake test

Merk at "rake test" tar lang tid og kjører automatisk på CI (Continuous Integration) -serveren.


Begrensninger som gjelder

Merk at det er visse begrensninger som gjelder

  • Alle filene må være kodet i 8-biters Unicode Transformation Format (UTF-8). I oversatte strenger må du ikke bruke HTML (Hypertext Markup Language) -enheter.
  • Sørg for at filene dine ikke har en byteordenmarkør (BOM). Du kan fjerne en byteordenmarkør med denne kommandoen: awk '{if(NR==1)sub(/^\xef\xbb\xbf/, "");print}' < oldfile > newfile
  • Du bør bare sende oppdateringer basert på nye oversettelsesfiler (du finner disse oppdateringene i /config/locales)


Oppdateringer til språkfiler

"en.yml" -filen fungerer som den primære språkfilen. Ved å kjøre rake locales: update kan du sjekke om den inneholder nye strenger. Denne kommandoen kopierer eventuelle nye strenger til andre oversettelsesfiler (standardverdien er engelsk oversettelse).

Ved oversettelse i Redmine kan du også aktivere tredjepartsplugins for å støtte oversettelser som omfatter tilpassbare termer.


Tilpassing av terminologi over oversettelser i Redmine

  • Sett den eksisterende mappen til config/overrides/<locale> innenfor utvidelsen
  • Kopier og lim inn den nåværende 000.yml til ./XXX.yml. Her er "XXX" et tretallsnummer som definerer prioriteringen til definisjonene dine: Jo høyere nummer, jo høyere prioritet. Det er best å unngå opprettelsen av 999.yml. Dette vil gi deg mer plass til ekstra oversettelser.
  • Filtrer ut de spesifikke definisjonene du ikke ønsker å endre. På denne måten vil en fil med lavere prioritet kunne bruke sine endringer på elementene du ikke ønsker å blande deg inn i.
  • På de gjenværende termene, bruk dine egne definisjoner


Støttede termer som kan tilpasses i utvidelsen din

  • Som vanlig, gi oversettelsesfiler under config/locales, for å fungere skikkelig når du ikke har installert utvidelsen. Hvis du ikke gjør det, må du eksplisitt kreve denne utvidelsen i init.rb. Hvis du ønsker mer informasjon, sjekk ut Redmine-dokumentasjonen
  • Kopier og lim inn dine lokaliseringsfiler under config/locales
  • For hver oppført term som kan overskrives i 000.yml, endre oversettelsene for å bruke en interpolasjon. For eksempel, når du skriver ut "issue", bør du bytte ut ordet med %{issue}. Videre, når du skriver ut "issue(s)", bør du bytte ut ordet med %{issue_or_issues}.
  • Du kan støtte et større antall term som kan overskrives i utvidelsen din. Men hvis du også bruker den i base-Redmine, må du legge til interpolerte definisjoner for Redmine-terminologier.

Som et eksempel kan du støtte en ny %{my_term} terminologi i dine lokaliseringsfiler. Hvis oversettelsen også brukes i Redmine-termer, må du inkludere dem i dine lokaliseringsfiler med riktig erstatning av %{my_term} for å sikre konsistens i oversettelsen.

Prøv Easy Redmine i en 30-dagers gratis prøveperiode

Full funksjonalitet, SSL-beskyttet, daglige sikkerhetskopier, i din geografiske plassering