Many users have asked me how they can translate (in Transifex) PO files that already contain some translation’s. What is the best practice to upload these files and translate them in Transifex?”
That’s really a very common use case, and we would love to help users translating their PO files and Survey Monkey content in Transifex!
That’s the main issue: the source and translation content should be included in different PO files, and when a user downloads a file from Survey Monkey, both source text and translations appear in the same file.
This means that in order to start translating your content to Transifex, you need to:
– Create a new resource by uploading your source file to Transifex. This depends on the language you consider as a source language
– Once the resource is created, you can start translating your content into other languages using Transifex Web Editor as it is described in our documentation guide here.
I hope it helps,
I would also like to elaborate on this.
A PO source file in Transifex should follow one of the following structures:
(POT structure) : msgstr field is empty for all the entries in the file. This is called “POT structure”
(PO structure) : msgstr field holds the translatable source string. No empty msgstr fields are included in the file. This is called “PO structure”
Please note that our handler takes the way the first string is formatted into account in order to parse the file as a .po or as a .pot file. So, it is really important the msgstr fields to either be empty or contain the source string instead. The difference between these formats is mentioned in our FAQ section here [What’s the difference using a .po and .pot file as a source file?].
As far as the translation file, it should follow the structure below:
As you can see the msgstr field holds the translation text in the corresponding target language and the msgid holds the source string. So, in case you upload this file as a source file to Transifex, our handler will parse the file as a PO file since the msgstr fields are not empty and consider these values as source strings. That’s why we mention in our documentation here that the source file must contain only the text in the source language:
I hope that the above helps.