From Fedora Project Wiki
Shortcuts:
ISOP:TRANSLATE
ISOP:TX
This is still not official/standarized, at least until this notice is removed.

Translators contribute to a multitude of ever-changing projects and repositories, and need a central place/tool to give them a high-level view of their work. We provide Transifex on [1] to serve that purpose.

Contact Information

Owner:: Fedora Infrastructure Team, Fedora Translation Team

Contact:: DimitrisGlezos, MikeMcGrath, RickyZhou, #fedora-admin, sysadmin-web group

Servers:: app1, app2 (stats), app3, app4 (transifex) FIXME needs to be updated

Purpose:: Provides translators front-ends to translation statistics and submissions (Transifex) to various VCSs

Description

Translators contribute to a multitude of ever-changing projects and repositories, and need a central place/tool to give them a high-level view of their work. To make things worse, in Fedora we support >1 types of Version Control Systems (VCSs). The tools we provide to make the work of the Fedora Localization Project (FLP) easier include:

  1. An instance of Transifex (source, deployed at [2], which provides a submission interface (push) for translators (members of the 'cvsl10n' group).

Transifex: Setup submissions (eponymous checkout/in)

  • Relevant contacts: DimitrisGlezos, MikeMcGrath, RickyZhou.

Part 1: Setup the keys

If the repository is on Fedora Hosted Projects, then have a group administrator add the "transif" user to their FAS group.
  1. SSH to the puppet server
    ssh bastion.fedoraproject.org
    ssh puppet1
    
  2. Create an SSH key and add it to the private CVS repository:
    N='MODULENAME'; ssh-keygen -t dsa -C transifex-$N -f id_dsa-$N
    
  3. Add the SSH key filename to configs/web/applications/transifex-ssh-add.sh.
  4. Send the public key of the key to the module owner and ask him to create a user on his VCS with this public key. If they can, they may restrict the user's access only to certain files (eg. in the po/ subdirectory). Continue to the next step when you receive an affirmative reply.

Part 2: Check access

  1. SSH again as last step.
  2. Check eponymous checkout:
    ssh app3
    sudo -H -u transifex -s
    export SSH_AUTH_SOCK=/var/lib/transifex/ssh-agent-sock-transifex
    ssh-add ~/.ssh/id_dsa-REPONAME
    cd temp
    git clone git+ssh://...
    git checkout BRANCHNAME
    
  3. Check eponymous checkin:
    cd MODULENAME/po
    git commit -m 'Testing Transifex instance on Fedora with a very minor change. Please ignore.'
    git push
    

Part 3: Add to Transifex FIXME needs to be updated

  1. Navigate to [3] and add the module as disabled. ( Sometimes the repo isn't added and the server needs restart!?)
    • If the branch name doesn't exist in the list:
    tg-admin shell
    m=Module.selectBy(name='yumex')[0] 
    m.name
    m.branches
    b=Branch(name='yumex-2.0')
    m.addBranch()
    
  2. Open up the console and check that the module checks out correctly:
    tg-admin shell
    m=Module.selectBy(name='yumex')[0] 
    m.name
    m.checkout()
    m.disabled = False
    
  3. Login to the web front-end and commit a file [4].

Part 4: Let people know

  1. Send an email to the module maintainer and let him know
  2. Send an email to fedora-trans-list and let translators know, or ask the maintainer to do it (better).

Troubleshooting and Resolution

Start/stop transifex service

On app1 , you will need the transifex SSH key passphrase for this. The -f option forces the the /var/lib/transifex/ssh-agent-sock-transifex to be overwritten even if it already exists.

# If ssh-agent isn't already running:
sudo -u transifex /var/lib/transifex/ssh-add.sh [-f]

Transifex is deployed using mod_wsgi, so as long as httpd is started, transifex should be as well.