en
Lingua
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
traduzione AI
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Come tradurre Redmine in qualsiasi lingua

5/26/2020
5 minuti
Lukaš Beňa

Una delle più grandi funzionalità di Redmine è che puoi facilmente tradurre questa applicazione di gestione del progetto in qualsiasi lingua tu vuoi.

Dichiarazione di non responsabilità: le informazioni in questo articolo si applicano solo a Redmine e non a Easy Redmine.

Quando si tratta di traduzione Redmine, devi tradurre un paio di cose:

  • Il file lang principale: questo file si trova nel trunk corrente alla sorgente: / trunk / config / locales.
  • Il file lang della barra degli strumenti wiki: questo file si trova nel sorgente: trunk / public / javascripts / jstoolbar / lang
  • I 4 file della guida in bundle: tutti questi file si trovano nel sorgente: trunk / public / help / in una sottodirectory che prende il nome dal sottotag della lingua

A titolo di esempio, supponiamo che tu voglia tradurre l'applicazione Redmine in lingua finlandese (il registro dei sottotag della lingua definisce la lingua come "fi"). Per fare ciò, è necessario osservare i seguenti passaggi:


Passi

  • Passo 1 : Copia incolla /config/locales/en.yml in /config/locales/fi.yml
  • Passo 2 : Copia incolla /public/javascripts/jstoolbar/lang/jstoolbar-en.js in /public/javascripts/jstoolbar/lang/jstoolbar-fi.js
  • Passo 3: Copia incolla / public / help / en / * in / public / help / fi / *.
  • Passo 4: Modifica la chiave general_lang_name con il nome completo della nuova lingua in fi.yml (in questo caso: general_lang_name: finlandese)
  • Passo 5: Avanti, svuota la cache dell'applicazione. Questo renderà disponibile la nuova lingua (finlandese) nel software Redmine (esempio, rake tmp: cache: clear)

Dopo aver seguito i passaggi sopra indicati, procedere come segue:

  • Passo 6: Traduci ogni stringa nei file jstoolbar-fi.js e fi.yml e traduci il contenuto dei 4 file di aiuto (wiki_syntax_markdown.html, wiki_syntax_textile.html, wiki_syntax_detailed_markdown.html e wiki_syntax_detailed_textile.html)
  • Passo 7: Utilizzare le attività di rake (queste sono state descritte di seguito in dettaglio) per testare la traduzione. È necessario correggere eventuali errori (se presenti) relativi alle impostazioni locali.
  • Passo 8: Invia la tua traduzione sotto forma di patch o file semplice (sarà richiesto il login). Dalla casella di riepilogo della categoria, selezionare "Traduzione".
  • Passo 9: Infine, e soprattutto, goditi il ​​tuo lavoro di traduzione!


Le attività di rake del test:

  • Se si utilizza la versione di Ruby 1.9 o successiva:

locali di rake: check_parsing_by_psych

  • Su tutte le versioni di Ruby:

locali di rake: check_interpolation

  • Test completo (opzionale): test del rake

Tieni presente che il "rake test" richiede un periodo di tempo piuttosto lungo e viene eseguito automaticamente sul server CI (integrazione continua).


Restrizioni in atto

Nota che ci sono alcune restrizioni in atto

  • Tutti i file devono essere codificati in formato UTF-8 (Unicode Transformation Format) a 8 bit. Nelle stringhe tradotte, non utilizzare entità HTML (Hypertext Markup Language).
  • Assicurati di controllare che i tuoi file non presentino un contrassegno di ordine byte (BOM). Puoi rimuovere un contrassegno di ordine byte con questo comando: awk '{if (NR == 1) sub (/ ^ \ xef \ xbb \ xbf /, ""); print}' <oldfile> newfile
  • Dovresti solo inviare aggiornamenti basati su nuovi file di traduzione (puoi trovare questi aggiornamenti in / config / locales)


Aggiornamenti ai file di lingua

Il file "en.yml" agisce nella capacità del file della lingua principale. Eseguendo rake locales: update, puoi verificare se presenta nuove stringhe. Questo comando copia le nuove stringhe in altri file di traduzione (il valore predefinito è la traduzione inglese).

Nella traduzione in Redmine, puoi anche abilitare plugin di terze parti per supportare le traduzioni che comprendono termini personalizzabili.


Personalizzazione delle terminologie rispetto alle traduzioni in Redmine

  • Imposta la directory esistente su config / overrides / all'interno del plugin
  • Copia e incolla l'attuale 000.yml in ./XXX.yml. Qui "XXX" è un numero di tre cifre che definisce la priorità delle definizioni: maggiore è il numero, maggiore è la priorità. È meglio evitare la creazione di 999.yml. Ciò ti consentirà di lasciare più spazio per le sostituzioni aggiuntive.
  • Filtra le definizioni specifiche che non desideri modificare. In questo modo, un file con priorità inferiore sarà in grado di applicare le sue modifiche agli elementi con cui non si desidera immischiarsi.
  • Oltre i termini rimanenti, applica le tue definizioni


Termini di supporto personalizzabili nel plug-in

  • Come al solito, fornire i file di traduzione in config / locales, per funzionare correttamente quando non si è installato il plug-in. In caso contrario, è necessario richiedere esplicitamente questo plug-in nel proprio init.rb. Se cerchi ulteriori informazioni, consulta la documentazione di Redmine
  • Copia incolla le tue impostazioni locali in config / locales
  • Per ogni termine elencato che è sostituibile in 000.yml, modificare le traduzioni per applicare un'interpolazione. Ad esempio, quando si stampa il problema, è necessario scambiare la parola con% {issue}. Inoltre, quando stampi un numero (i), devi scambiare la parola con% {issue_or_issues}.
  • Puoi supportare un numero maggiore di termini sostituibili nel tuo plugin. Tuttavia, se lo si utilizza anche in Redmine di base, sono state aggiunte definizioni interpolate per le terminologie di Redmine.

Ad ogni modo, puoi supportare una nuova terminologia% {my_term} nelle tue elocales. Se la traduzione viene utilizzata anche in termini di Redmine, li includerai nei tuoi elocales con la corretta sostituzione di% {my_term} per garantire coerenza nella traduzione.

Prova Easy Redmine in 30 giorni di prova gratuita

Funzionalità complete, protezione SSL, backup giornalieri, nella tua geolocalizzazione