Translation migration

From Gramps
Revision as of 15:19, 18 April 2014 by Romjerome (talk | contribs) (Advanced merging (unique, etc ...))
Jump to: navigation, search

This is an experimental page by looking at a simple way for a proper migration on translation strings.

Current status on trunk

  • Translations are based on old templates:
ar.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
bg.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
br.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
ca.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
cs.po:"POT-Creation-Date: 2014-04-12 18:22+0200\n"
da.po:"POT-Creation-Date: 2013-01-21 16:50+0100\n"
de.po:"POT-Creation-Date: 2014-03-18 22:46+0100\n"
el.po:"POT-Creation-Date: 2012-07-15 17:49+0200\n"
en_GB.po:"POT-Creation-Date: 2012-05-10 19:31+0100\n"
eo.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
es.po:"POT-Creation-Date: 2013-05-09 12:49+0200\n"
fi.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
fr.po:"POT-Creation-Date: 2014-04-17 14:54+0200\n"
ga.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
he.po:"POT-Creation-Date: 2014-03-07 14:57+0100\n"
hr.po:"POT-Creation-Date: 2013-09-19 23:56+0300\n"
hu.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
it.po:"POT-Creation-Date: 2013-02-04 18:35+0100\n"
ja.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
lt.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
mk.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
nb.po:"POT-Creation-Date: 2012-10-16 20:41+0200\n"
nl.po:"POT-Creation-Date: 2013-02-04 18:35+0100\n"
nn.po:"POT-Creation-Date: 2012-10-16 20:41+0200\n"
pl.po:"POT-Creation-Date: 2012-05-10 21:46+0100\n"
pt_BR.po:"POT-Creation-Date: 2012-05-10 21:46+0100\n"
pt_PT.po:"POT-Creation-Date: 2013-03-01 17:56+0000\n"
ro.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
ru.po:"POT-Creation-Date: 2014-03-07 14:57+0100\n"
sk.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
sl.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
sq.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
sr.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
sv.po:"POT-Creation-Date: 2013-05-09 12:49+0200\n"
tr.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
uk.po:"POT-Creation-Date: 2013-05-09 12:49+0200\n"
vi.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
zh_CN.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
  • Translation revisions:
ar.po:"PO-Revision-Date: 2007-03-20 20:41+0300\n"
bg.po:"PO-Revision-Date: 2010-03-23 22:00+0200\n"
br.po:"PO-Revision-Date: 2009-05-08 15:56+0000\n"
ca.po:"PO-Revision-Date: 2012-01-21 21:09+0100\n"
cs.po:"PO-Revision-Date: 2014-04-14 11:36+0100\n"
da.po:"PO-Revision-Date: 2013-01-29 20:29+0100\n"
de.po:"PO-Revision-Date: 2014-03-18 23:19+0100\n"
el.po:"PO-Revision-Date: 2012-10-08 19:17+0200\n"
en_GB.po:"PO-Revision-Date: 2012-05-10 21:26+0100\n"
eo.po:"PO-Revision-Date: 2003-12-03 20:12+0100\n"
es.po:"PO-Revision-Date: 2013-05-16 15:39+0200\n"
fi.po:"PO-Revision-Date: 2009-11-24 00:06+0200\n"
fr.po:"PO-Revision-Date: 2014-04-17 15:29+0100\n"
ga.po:"PO-Revision-Date: 2011-01-08 13:36+0000\n"
he.po:"PO-Revision-Date: 2011-04-03 20:15+0300\n"
hr.po:"PO-Revision-Date: 2013-10-13 16:32+0100\n"
hu.po:"PO-Revision-Date: 2012-02-18 14:43+0100\n"
it.po:"PO-Revision-Date: 2013-04-07 23:31+0200\n"
ja.po:"PO-Revision-Date: 2011-08-13 23:35+0900\n"
lt.po:"PO-Revision-Date: 2010-03-07 23:17+0300\n"
mk.po:"PO-Revision-Date: 2008-11-29 14:24+0100\n"
nb.po:"PO-Revision-Date: 2012-08-26 17:25+0200\n"
nl.po:"PO-Revision-Date: 2013-02-27 11:55+0100\n"
nn.po:"PO-Revision-Date: 2012-12-07 18:28+0100\n"
pl.po:"PO-Revision-Date: 2012-09-22 22:42+0100\n"
pt_BR.po:"PO-Revision-Date: 2012-09-22 22:51-0300\n"
pt_PT.po:"PO-Revision-Date: 2013-03-03 10:02+0100\n"
ro.po:"PO-Revision-Date: 2003-03-03 09:54+0100\n"
ru.po:"PO-Revision-Date: 2014-03-19 15:31+0200\n"
sk.po:"PO-Revision-Date: 2011-09-29 13:32+0200\n"
sl.po:"PO-Revision-Date: 2011-09-07 00:25+0200\n"
sq.po:"PO-Revision-Date: 2008-11-13 21:00+0100\n"
sr.po:"PO-Revision-Date: 2008-09-08 20:44+0200\n"
sv.po:"PO-Revision-Date: 2013-08-09 14:54+0200\n"
tr.po:"PO-Revision-Date: 2006-11-02 22:58+0800\n"
uk.po:"PO-Revision-Date: 2013-06-12 22:56-0800\n"
vi.po:"PO-Revision-Date: 2011-09-26 20:25+0700\n"
zh_CN.po:"PO-Revision-Date: 2011-09-05 15:03+0800\n"

Current status on gramps40

  • Translation revisions:
ar.po:"PO-Revision-Date: 2014-03-22 20:38+0300\n"
bg.po:"PO-Revision-Date: 2010-03-23 22:00+0200\n"
br.po:"PO-Revision-Date: 2013-10-25 11:25+0100\n"
ca.po:"PO-Revision-Date: 2013-11-24 18:11+0100\n"
cs.po:"PO-Revision-Date: 2014-04-10 10:21+0100\n"
da.po:"PO-Revision-Date: 2013-05-16 14:50+0200\n"
de.po:"PO-Revision-Date: 2014-04-16 21:09+0200\n"
el.po:"PO-Revision-Date: 2013-05-15 12:30+0200\n"
en_GB.po:"PO-Revision-Date: 2012-05-10 21:26+0100\n"
eo.po:"PO-Revision-Date: 2003-12-03 20:12+0100\n"
es.po:"PO-Revision-Date: 2013-06-23 09:14+0200\n"
fi.po:"PO-Revision-Date: 2014-03-19 16:22+0200\n"
fr.po:"PO-Revision-Date: 2014-04-04 12:42+0100\n"
ga.po:"PO-Revision-Date: 2011-01-08 13:36+0000\n"
he.po:"PO-Revision-Date: 2014-03-24 20:15+0300\n"
hr.po:"PO-Revision-Date: 2013-05-17 17:58+0100\n"
hu.po:"PO-Revision-Date: 2013-06-14 18:46+0200\n"
it.po:"PO-Revision-Date: 2014-03-23 02:42+0100\n"
ja.po:"PO-Revision-Date: 2011-08-13 23:35+0900\n"
lt.po:"PO-Revision-Date: 2014-02-06 01:50+0300\n"
mk.po:"PO-Revision-Date: 2008-11-29 14:24+0100\n"
nb.po:"PO-Revision-Date: 2014-03-08 21:29+0100\n"
nl.po:"PO-Revision-Date: 2013-10-20 12:42+0100\n"
nn.po:"PO-Revision-Date: 2012-12-07 18:28+0100\n"
pl.po:"PO-Revision-Date: 2014-01-30 10:26+0100\n"
pt_BR.po:"PO-Revision-Date: 2014-03-23 11:36-0300\n"
pt_PT.po:"PO-Revision-Date: 2013-03-08 10:57+0000\n"
ro.po:"PO-Revision-Date: 2003-03-03 09:54+0100\n"
ru.po:"PO-Revision-Date: 2014-03-19 15:37+0200\n"
sk.po:"PO-Revision-Date: 2013-05-17 15:34+0100\n"
sl.po:"PO-Revision-Date: 2011-09-07 00:25+0200\n"
sq.po:"PO-Revision-Date: 2008-11-13 21:00+0100\n"
sr.po:"PO-Revision-Date: 2008-09-08 20:44+0200\n"
sv.po:"PO-Revision-Date: 2014-03-22 15:55+0100\n"
tr.po:"PO-Revision-Date: 2006-11-02 22:58+0800\n"
uk.po:"PO-Revision-Date: 2014-03-18 19:51+0300\n"
vi.po:"PO-Revision-Date: 2012-02-29 23:03+0700\n"
zh_CN.po:"PO-Revision-Date: 2011-09-05 15:03+0800\n"

Next step?

  1. merge translations with the last template should not be too intrusive. We re-use strings with the last model.
  2. merge strings between two branches means to know what should be the main branch for this translation file.
  3. diff works fine once you "order by msgid" and ignore comments

eg, like:

msgfmt en_GB.po -o order.mo
msgunfmt order.mo -o en_GB_order.po

Having such {dict} will make actions on translation files more simplier.

Where there is less untranslated strings? (after merge with last template)

code:    trunk | gramps40
ar:       3205 | 1786
bg:        633 |  707
br:       4349 | 3459
ca:        375 |  209
cs:         11 |  151
da:        265 |  246
de:         30 |  149
el:        288 |  232
en_GB:     303 | 5858
eo:       1813 | 1799
es:        147 |  189
fi:        861 |  153
fr:        106 |  152
ga:       5939 | 5922
he:       2421 | 2395
hr:        431 |  386
hu:        367 |  189
it:        321 |  348
ja:       2253 | 2242
lt:        735 |  158
mk:       1398 | 1388
nb:        300 |  184
nl:        196 |  171
nn:        276 |  303
pl:        263 |  164 
pt_BR:     274 |  154
pt_PT:     195 |  222
ro:       2256 | 2243
ru:        347 |  317
sk:        400 |  205
sl:        374 |  399
sq:       1075 | 1067
sr:       5821 | 5849
sv:        187 |  187
tr:       3069 | 3047
uk:        154 |  221
vi:        439 |  359
zh_CN:     476 |  495

Proposal

What translation file might be used on trunk?

ar:      gramps40
bg:      trunk
br:      gramps40
ca:      gramps40
cs:      trunk
da:     gramps40
de:     trunk
el:      gramps40
en_GB:     trunk
eo:       gramps40
es:        trunk
fi:        gramps40
fr:        trunk
ga:       gramps40
he:       gramps40
hr:       gramps40
hu:      gramps40
it:        trunk
ja:       gramps40
lt:        gramps40
mk:     gramps40
nb:      gramps40
nl:       gramps40
nn:      trunk
pl:       gramps40 
pt_BR:     gramps40
pt_PT:     trunk
ro:       gramps40
ru:       gramps40
sk:       gramps40
sl:        trunk
sq:       gramps40
sr:       trunk
sv:       -
tr:       gramps40
uk:      trunk
vi:        gramps40
zh_CN:     trunk

Date handler status

See 6926: inflecting month names.

On trunk, revision 918785:

changed	 po/ar.po
changed	 po/bg.po
changed	 po/ca.po
changed	 po/cs.po
changed	 po/da.po
changed	 po/de.po
changed	 po/el.po
changed	 po/es.po
changed	 po/fi.po
changed	 po/it.po
changed	 po/lt.po
changed	 po/nb.po
changed	 po/nl.po
changed	 po/nn.po
changed	 po/pl.po
changed	 po/pt_BR.po
changed	 po/pt_PT.po
changed	 po/sk.po
changed	 po/sl.po
changed	 po/sr.po
changed	 po/sv.po
changed	 po/uk.po
changed	 po/zh_CN.po

Advanced merging (unique, etc ...)

ar    - 1416
ca    -  166
da    -   19
el    -   56
fi    -  708
lt    -  577
nb    -  116
nl    -   25
pl    -   99
pt_BR    -  120
sk    -   195

Need to think on merging from gramps40

br    + 890
eo    +  14
ga    +  17
he    +  26
hr    +  45
hu    + 181
ja    +  11
mk    +  10
ro    +  13
ru    +  30
sq    +   8
tr    +  22
vi    +  80