Skip to content

translations doku

Transifex

Tine manages translations at Transifex, a free Web-Service for open source projects.

To translate tine Groupware into your language follow these simple steps:

  • Make yourself familiar with the Transifex Help
  • Signup for free as on open source translator
  • request / join team for your language and wait for approval
  • Start translating in your language
  • NOTE: Please use the Save & Exit Button to unlock your files after Translating
  • Wait for Sync
  • The translations done in Transifex are not automatically available in tine Groupware but will be synced from time to time from us.

Überblick

  • Im Quellcode gehen die englischen strings durch die übersetzungsfunktionen _('en text'), ngettext('singular en text', 'plural en text', n), formatMessage('...') (js only), translate('...) (templates)
  • Mittels langHelper -u werden diese strings aus den sourcen extrahiert und in die po/pot files aufgenommen
  • Die strings sollten nicht per Hand in die po files zugefügt werden. Lieber ./console src:langHelper -- '-u --app Calendar -l de' für eine app/sprache
  • Übersetzen am besten mit dem programm poedit, weil dass auch die Metadaten richtig anpasst
  • Die Übersetzungen können auch online getätigt werden. Entwickler mit git nutzen aber lieber poedit und committen/pushen ins git
  • Per Default haben unsere po Files keine Zeilennummern, um die Änderungen im Git nicht immer so groß zu haben. Will mensch zum Übersetzen sie haben:
  • ./console src:langHelper -- '-u -l de --keep-line-numbers' (Zeilennummern zufügen)
  • übersetzen mit poedit
  • ./console src:langHelper -- '-u -l de' (Zeilennummern wieder entfernen)

Was wird übersetzt?

  • Alle Apps aus tine-groupware übersetzen wir:
  • Die erste hälfte des Releases current-stable
  • Die zweite hälfte next bzw main
  • Spezial-Apps zu spezial Editionen werden aus dem Editions-Branch übersetzte / zu tx gepushed
  • Siehe ./tx/branches Konfiguration

Translation HowTo

prerequisites

Transifex Client: see http://docs.transifex.com/client/setup/ for client installation.

$ sudo apt install php-xml
$ sudo pip install transifex-client

txmerge: synced übersetzungen mit transifex

(vor am besten neuen branch auschecken)

$ ./console src:langHelper -- '--txmerge --app Calendar -v -l bg'

push to git & transifex

git add

$ git add */translations

lokale (bzw. DE) deutsche übersetzungen wiederherstellen TODO: evtl bekommen wir die de translations auch gemerged?

$ git reset HEAD */translations/de.po 
$ tx push -t -l de

eventuell muss man force pushen, da online eine "neuere" version ist

$ tx push -t --force -l de

commit + push to git

$ git commit -m "updates translations"
$ git add */translations
$ git commit -m "backup de translations"

po-merge-helper

install po-merge-helper (ubuntu)

$ sudo apt install gettext

activate (eintrag in .git/config)

[merge "pofile"]
    name = merge po-files driver
    driver = ./scripts/merge-po-files %A %O %B
    recursive = binary