Plone 5.1 translations

Quite off topic, but anyway:

When translating some of the norwegian I tested 'automatic Translation using TM'.
The result was not useful at all, not because it was bad, but because very often the result seemed to come from 'another field' (lets say a field with 'upload file' would be translated to 'your file could not be uploaded'.

Anyway: it made me think, and maybe this is possible already somehow?

When I translate (for example with google translate) from english to (lets say) dutch, the result is not correct.
If I then translate from german to dutch, the result is not correct, but it is different (probably) than the english translation.
If I then translate from french to dutch, I end up with 3 translations which are not correct (probably), but I am pretty sure that 'combined' they would make much sense.

Is there any possibility that when for example the first 5 languages have been translated another languages po-file could 'get a good translation based on those ' ?

Please don't do that, that's the worst you can do to get a translation. If you want to get a decent translation hire a professional translator, they have their own tools, to ensure quality not quantity.

My wife is a professional translator, and I've been involved for +10 years in community translations (for GNOME in my case).

Machine or semi automatic translations could help in some cases, but most of the time are actually slowing down the translation process.


GSoC 2018 project number 357:

1 Like

Statistics generated daily:

Click on the files to see for each domain how is the translation status.

And of course, there are jobs for 4.3, 5.0 and 5.2!

4.3 and 5.2 jobs are currently failing, some work needs to be done on them to make them work.



it's possible to use the -t option instead? it will give us a better idea of what's going on:


Some thoughts:

  • Marketing is 'aspirational'... it reflects the reality we want it to embody. If there is no aspiration (please, no one make "aspiration sucks" jokes), there is no objective, and without objectives we stagnate.

  • If you're going to quibble about the "40", what would you want it to be? (/me slowly retreats from the argument)

  • Rather than quibble about the 40, let's spend the energy improving the translations. I know there is a PR already for the German translations by @jensens and @agitator that will be in the next release.

  • I love the ideas on making the status of translations more immediately visible! Those nice graphs are easily comprehensible. If we can display that status in an easily seen place, together with perhaps an easier mechanism for translations to be contributed, that would go a long way.

  • Next time, when we have a release in multiple alpha, beta, and RC versions, and our release manager asks for them to be tested, that would be a good time to jump in and contribute translations. I for one am eager to help with the English Canadian translation :wink: :canada:


sure, let's update the front page to this then:

I found it highly aspirational, but it's still horseshit.

the only way you're really going to motivate me is finishing the translations of Plone to Vietnamese, the sixteenth most spoken language in the world.

My Vietnamese is about as bad as your motivationalese :slight_smile:

you can always use Google Translate, for despair of @gforcada :wink:

Xin chào, tôi tên là Hector và tôi đến từ Mexico; bạn tôi là Kim từ Canada, nhưng đôi khi anh ta hoạt động như một người Mỹ và điều đó có vẻ kỳ quặc đối với tôi.

On a more practical aspect... there is yet another (surprise surprise) jenkins job that looks for strings not marked for translation.

Who would be the i18n hero to mark them for translation or to not be translated?? @cewing maybe that's a good task for gsoc-students-to-be: grab that file and resolve if 50 strings there need to be translated

1 Like

Yes that would be nicer, but it seems that jenkins is stripping the styling... no idea what's going on... See

@cewing I created a job for each Plone version:

See the missing.txt file on the Last Successful Artifacts for the file that contains the report.

The 4.3 job does not work as the part for finding strings not marked for translation is missing, I already reported that.


@gforcada, I love the idea of adding this as a "beginner" task for GSoC students to take on. It would help them to interact with a wide variety of Plone pages and UI and help us to shorten that list.

@gforcada now that there is more interest in the Internationalization/Translations team :slight_smile: someone needs to add these job links to a good landing page for the team's activity and to-do lists... – @vincentfretin

Translations could be a good idea for newbies, but i'm afraid that with gsoc we will complete only Indian ones (more or less) :wink:

BTW I spent all the afternoon (an ugly cold rainy day) to update all Italian translations on p.a.locales and tried to reach the 100% coverage goal :tada:

The most funny part was to understand recurrence labels, because as @hvelarde says, it's very difficult fix them without defaults..I was lucky that as Italian i can understand catalan (again more or less)

To be fair, that would open up Plone to a heck of a lot of new users :slight_smile: and the original idea of a GSoC project to make it easier to produce or edit or improve translations would help all language translations.


… sounds like a normal day here…

Two years ago, I managed to translate Norwegian 'to 92%'. For unknown reasons, this never made it into

Now, I forked the and I wonder:

Is there a smart way to get 'any translations that is still valid' into the new po-file (without cut/paste)?

In other words, is it possible to get translations from for example:


Yes, there is quite a lot of tooling available, if command line is fine, msgmerge is the right tool.

From msgmerge --help:

Merges two Uniforum style .po files together. The def.po file is an
existing PO file with translations which will be taken over to the newly
created file as long as they still match; comments will be preserved,
but extracted comments and file positions will be discarded. The ref.pot
file is the last created PO file with up-to-date source references but
old translations, or a PO Template file (generally created by xgettext);
any translations or comments in the file will be discarded, however dot
comments and file positions will be preserved. Where an exact match
cannot be found, fuzzy matching is used to produce better results.

@espenmn You can use i18ndude in this way:

i18ndude admix plone.po old_plone.po > new_plone.po && mv new_plone.po plone.po


i18ndude admix -h
usage: i18ndude admix [-h] [--wrap | --no-wrap] [--width NUMBER] file1 file2

Given two po-files I will look for translated entries in file2 that
are untranslated in file1. I add these translations (msgstrs) to
file1. Note that this will not affect the number of entries in file1.
The result will be on stdout.

positional arguments:

optional arguments:
  -h, --help      show this help message and exit
  --wrap          Wrap long lines.
  --no-wrap       Do not wrap long lines. This is the default.
  --width NUMBER  Set output page width. Default is 79.

Thanks, … timesaver