Help:Extension:Translate/Import Translations via CSV
Translators (main help page )
- How to translate
- Best practices
- Statistics and reporting
- Quality assurance
- Message group states
- Offline translation
- Glossary
Translation administrators
- How to prepare a page for translation
- Page translation administration
- Unstructured element translation
- Group management
- Move translatable page
- Import translations via CSV
- Working with message bundles
Sysadmins and developers
This page describes the feature that allows translators to submit their translations via CSV to an system administrator, and then have it imported. task T309517
Steps
Exporting the CSV
First identify the page that you wish to submit translations via CSV. Example page: Development Guidelines.
Go to Special:ExportTranslations and export that page in CSV format in the French (fr) language.
The CSV file exported will be in the following format:
- Highlight 1 in image - Message definition in the source language
- Highlight 2 in image - Translations in the exported language. French in this case
Adding translations to the CSV
The file exported in the previous step can be modified to update existing translations or add more translations.
See the image below from the CSV file that has added a translation in Spanish (es), and some in Dutch (nl):
This file can then be given to the administrator to import the translations into the system.
Note
- Empty translations will be ignored. Translations will not actually be removed if a cell in the CSV is made empty.
- If no modification is made to a translation no new entries will be added to the translation change history.
Importing translations via CSV
The file received from the translator can be imported via a command line script made available in the translate extension importTranslationsFromCsv.php
:
The script expects the following parameters:
- Path to the CSV file
--user
- Name of the user performing the import--summary
- Edit summary to be used when updating the translations--really
- Actually perform the import. Without this a dry run will be carried out.
Example run
First, a dry run to see what will be imported:
$ php extensions/Translate/scripts/importTranslationsFromCsv.php ~/Projects/html/mediawiki/groups/page-Development\ Guidelines_to_import.csv --user Admin --summary "Importing translations from CSV"
* 3 translation(s) to import for Translations:Development Guidelines/Page display title/en
* 2 translation(s) to import for Translations:Development Guidelines/1/en
* 2 translation(s) to import for Translations:Development Guidelines/2/en
* 2 translation(s) to import for Translations:Development Guidelines/3/en
* 2 translation(s) to import for Translations:Development Guidelines/4/en
* 2 translation(s) to import for Translations:Development Guidelines/5/en
Use option --really to perform the import.
Now perform the actual import:
$ php ./extensions/Translate/scripts/importTranslationsFromCsv.php ~/Projects/html/mediawiki/groups/page-Development\ Guidelines_to_import.csv --user Admin --summary "Importing translations from CSV" --really
* 3 translation(s) to import for Translations:Development Guidelines/Page display title/en
* 2 translation(s) to import for Translations:Development Guidelines/1/en
* 2 translation(s) to import for Translations:Development Guidelines/2/en
* 2 translation(s) to import for Translations:Development Guidelines/3/en
* 2 translation(s) to import for Translations:Development Guidelines/4/en
* 2 translation(s) to import for Translations:Development Guidelines/5/en
Proceeding with import...
(1/6) Imported translations for Translations:Development Guidelines/Page display title/en with 0 failure(s) and 3 successful import(s) ...
(2/6) Imported translations for Translations:Development Guidelines/1/en with 0 failure(s) and 2 successful import(s) ...
(3/6) Imported translations for Translations:Development Guidelines/2/en with 0 failure(s) and 2 successful import(s) ...
(4/6) Imported translations for Translations:Development Guidelines/3/en with 0 failure(s) and 2 successful import(s) ...
(5/6) Imported translations for Translations:Development Guidelines/4/en with 0 failure(s) and 2 successful import(s) ...
(6/6) Imported translations for Translations:Development Guidelines/5/en with 0 failure(s) and 2 successful import(s) ...
Success: Import done