Babel / Large Contribution Import Process
This document describes the process the Babel committer uses to import large contributions into the Babel server.
Submitting such a contribution is documented here: http://www.eclipse.org/babel/development/large_contributions.php
- Make sure the contribution follows the spec, and that is has been approved by Eclipse Legal by submitting it to IPZilla
- Unzip the file to babel.eclipse.org:/tmp/tmp-babel/import
- Inspect some files in each language to ensure they are properly encoded. Run/hack convertiso.sh as needed.
- Determine the accuracy of the contribution.
- Reviewed: Translations were done by professionals, and were reviewed and tested in context by loading them up in Eclipse
- Fuzzy: Translations were not done by professional translators; translations were done using software and dictionaries; translations were done by professional translators, but were not reviewed and tested in context.
- If unsure, ask the contributor. If unsure, choose Fuzzy.
Import on Staging
- su - genie
- copy the CVS version of import_translation_zip.php to the STAGING web root: cp /home/data/httpd/babel.eclipse.org/staging/classes/export/import_translation_zip.php /home/data/httpd/babel.eclipse.org/staging/html/import_translation_zip.php
- Edit /home/data/httpd/babel.eclipse.org/staging/html/import_translation_zip.php to ensure the target project_id and version are set (see note, below)
- Set the Fuzzy factor according to the accuracy of the contribution.
- 'run' the above file using wget: wget http://babel.eclipse.org/staging/import_XXXX_zip.php <-- file name fudged to avoid crawlers
- Check the translations using the http://babel.eclipse.org/staging/recent.php
- If something went wrong, you can still delete whatever you contributed by logging into the Mysql database and running this query for example (it deletes all the records contributed during the current day):
delete from translations WHERE UNIX_TIMESTAMP(created_on) BETWEEN UNIX_TIMESTAMP(CURDATE()) AND UNIX_TIMESTAMP(DATE_ADD(CURDATE(), INTERVAL + 86399 SECOND));
Or if you need to delete all the records for a specific project:
delete from translations where string_id IN (select string_id from strings, files where strings.file_id = files.file_id and files.project_id = "birt");
Manipulate those expressions with care and make sure you use them on the staging database exclusively.
Import on Live
- su - genie
- copy the STAGING version of import_translation_zip.php to the LIVE web root: cp /home/data/httpd/babel.eclipse.org/staging/html/import_translation_zip.php /home/data/httpd/babel.eclipse.org/babel/html/import_translation_zip.php
- 'run' the above file using wget: wget http://babel.eclipse.org/babel/import_XXXX_zip.php <-- file name fudged to avoid crawlers
- Check the translations using the http://babel.eclipse.org/babel/recent.php
- Delete the import script: rm /home/data/httpd/babel.eclipse.org/babel/html/import_translation_zip.php
- Delete the translation files.
Note: If a contributions crosses many projects, such as those from the JapanWG, simply delete the following line in the SQL statements (there are currently two occurrences of this line) :
AND F.project_id = '" . $PROJECT_ID . "' AND F.version = '" . $VERSION . "'