Add Migrate to Zanata spec
Spec for migration of translations from Transifex to Zanata. Change-Id: I70785c3f9f00e3c727a18a960a14016b4a2d12df Story: 328
This commit is contained in:
parent
5445fac507
commit
75550b564c
165
specs/migrate_to_zanata.rst
Normal file
165
specs/migrate_to_zanata.rst
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
::
|
||||||
|
|
||||||
|
Copyright 2014 Hewlett-Packard Development Company, L.P.
|
||||||
|
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0
|
||||||
|
Unported License.
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
==================================
|
||||||
|
Migrate to Zanata for translations
|
||||||
|
==================================
|
||||||
|
|
||||||
|
https://storyboard.openstack.org/#!/story/328
|
||||||
|
|
||||||
|
Since Transifex no longer maintains an external, open source version of the
|
||||||
|
cloud-based service the translations team uses, we need to move to an open
|
||||||
|
source alternative. The infrastructure and translations teams have decided to
|
||||||
|
use the open source (LGPL) Zanata project hosted by the OpenStack
|
||||||
|
Infrastructure team.
|
||||||
|
|
||||||
|
Problem Description
|
||||||
|
===================
|
||||||
|
|
||||||
|
We currently do not host any translations tools, so a translations server will
|
||||||
|
need to be deployed for use with Zanata. All of our tooling is built around
|
||||||
|
Transifex so these scripts will also need to be adjusted and then the
|
||||||
|
translations imported into the new tool.
|
||||||
|
|
||||||
|
Proposed Change
|
||||||
|
===============
|
||||||
|
|
||||||
|
Switch from Transifex to Zanata for translations.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
Decision to use Zanata was based on what translators believe is a superior UI
|
||||||
|
and a workflow similar to that of Transifex. However, if Zanata does not work
|
||||||
|
for some reason, we can look into Pootle again.
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee(s):
|
||||||
|
|
||||||
|
* lyz
|
||||||
|
* jaegerandi
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Package Zanata client so that we can install it as part of the syncing jobs.
|
||||||
|
|
||||||
|
* Figure out how to setup the initial Zanata config file and whether we can do
|
||||||
|
this dynamically or whether we have to add it to the repositories.
|
||||||
|
|
||||||
|
* Find or develop Puppet modules for Wildfly and Zanata, the Zanata team will be
|
||||||
|
sending us Ansible playbooks for Zanata which we can convert to Puppet.
|
||||||
|
|
||||||
|
* Use these Puppet modules to bring up both a production and a development
|
||||||
|
server for Zanata.
|
||||||
|
|
||||||
|
* Modify translations scripts that sync translations with Transifex to work with
|
||||||
|
Zanata. In the first iteration, the scripts should continue to support both
|
||||||
|
Transifex and Zanata for syncing and as they evolve to do import only from
|
||||||
|
Transifex to Gerrit.
|
||||||
|
|
||||||
|
* Since the Zanata API does not allow to download only files that are at least
|
||||||
|
75 per cent translated (or any other number), enhance our scripts that we
|
||||||
|
download the files for all languages and filter locally out the not
|
||||||
|
sufficiently translated files.
|
||||||
|
|
||||||
|
* Begin running modified translations scripts on the development server and work
|
||||||
|
with the Translations team to test with some dummy translations against a
|
||||||
|
sandbox.
|
||||||
|
|
||||||
|
* Work with Translations team to document the new translations workflow.
|
||||||
|
|
||||||
|
* Work with Zanata team to enhance Zanata so that we get notified whenever new
|
||||||
|
languages are available for translation. Note: Currently the list of languages
|
||||||
|
for a repository is stored in the local Zanata config file and thus we need to
|
||||||
|
adjust it - or find a way to ignore the local config file - to download
|
||||||
|
translated files for all languages.
|
||||||
|
|
||||||
|
* Export all translations (not only the 75% translated ones) from Transifex and
|
||||||
|
import all the files into Zanata. Also import old versions of projects with
|
||||||
|
translations (for example horizon/icehouse, horizon/havana) as reference and
|
||||||
|
seed for translation memory.
|
||||||
|
|
||||||
|
* Notify translations team that the export has been completed and disable
|
||||||
|
translations capability in Transifex now that everything is exported and
|
||||||
|
we're ready to turn on the new service.
|
||||||
|
|
||||||
|
* Point new scripts at new Zanata production server and go live, announce to
|
||||||
|
the Translations team.
|
||||||
|
|
||||||
|
* Notify broader development community about the switch and identify any way
|
||||||
|
it impacts them.
|
||||||
|
|
||||||
|
* Document new infrastructure in OpenStack Infrastructure Documentation.
|
||||||
|
|
||||||
|
Repositories
|
||||||
|
------------
|
||||||
|
|
||||||
|
A new puppet-zanata repository will need to be created, along with updates to
|
||||||
|
system-config to consume this module and one for Wildfly, which can probably be
|
||||||
|
found upstream.
|
||||||
|
|
||||||
|
Servers
|
||||||
|
-------
|
||||||
|
|
||||||
|
A translate.openstack.org server will need to be created.
|
||||||
|
|
||||||
|
We will also need to re-install or replace the translate-dev server to be our
|
||||||
|
development platform using the Wildfly and Zanata Puppet modules (it currently
|
||||||
|
has an old demo of Pootle).
|
||||||
|
|
||||||
|
DNS Entries
|
||||||
|
-----------
|
||||||
|
|
||||||
|
DNS entry for translate.openstack.org will need to be created.
|
||||||
|
|
||||||
|
If we create a new server, DNS for translate-dev will need to be updated to
|
||||||
|
point at the new development sterver.
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Documentation for our Zanata server setup will need to be added to the
|
||||||
|
ci.openstack.org documentation.
|
||||||
|
|
||||||
|
Translator-facing documentation will need to be updated for the new tool.
|
||||||
|
|
||||||
|
Security
|
||||||
|
--------
|
||||||
|
|
||||||
|
These new services run effectively on Ubuntu, so we don't anticipate security
|
||||||
|
problems on the core operating system.
|
||||||
|
|
||||||
|
A couple of lifecycle notes about Wildfly and Zanata:
|
||||||
|
|
||||||
|
* Wildfly is "aiming to deliver new final major versions in around a nine
|
||||||
|
month cycle" so we will need to stay on top of upgrades for that. More at:
|
||||||
|
http://wildfly.org/governance/
|
||||||
|
|
||||||
|
* Zanata has a major release we will want to upgrade to every 3 months.
|
||||||
|
|
||||||
|
Testing
|
||||||
|
-------
|
||||||
|
|
||||||
|
A development server with the prepared automated scripts pointed at a sandbox
|
||||||
|
will first be used to confirm that translations are being processed properly.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
We may be pulling in an external Puppet module to support Wildfly.
|
||||||
|
|
||||||
|
Otherwise this should be an independent change in our infrastructure aside from
|
||||||
|
the previously mentioned updating of automated scripts.
|
Loading…
Reference in New Issue
Block a user