Translation migration

From Gramps
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: 2014-05-26 17:49+0200\n"
bg.po:"POT-Creation-Date: 2014-04-18 20:44+0200\n"
br.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
ca.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
cs.po:"POT-Creation-Date: 2015-01-17 16:03+0100\n"
da.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
de.po:"POT-Creation-Date: 2015-02-16 13:29+0100\n"
el.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
en_GB.po:"POT-Creation-Date: 2014-04-18 20:44+0200\n"
eo.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
es.po:"POT-Creation-Date: 2014-04-18 20:44+0200\n"
fi.po:"POT-Creation-Date: 2015-01-17 16:03+0100\n"
fr.po:"POT-Creation-Date: 2014-10-20 10:24+0200\n"
ga.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
gramps.pot:"POT-Creation-Date: 2015-02-18 10:48+0100\n"
he.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
hr.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
hu.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
is.po:"POT-Creation-Date: 2015-01-17 16:03+0100\n"
it.po:"POT-Creation-Date: 2014-09-11 17:24+0200\n"
ja.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
lt.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
mk.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
nb.po:"POT-Creation-Date: 2014-12-11 19:43-0800\n"
nl.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
nn.po:"POT-Creation-Date: 2014-04-18 20:44+0200\n"
pl.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
pt_BR.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
pt_PT.po:"POT-Creation-Date: 2014-04-18 20:44+0200\n"
ro.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
ru.po:"POT-Creation-Date: 2014-03-07 14:57+0100\n"
sk.po:"POT-Creation-Date: 2014-12-11 19:43-0800\n"
sl.po:"POT-Creation-Date: 2014-04-18 20:44+0200\n"
sq.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
sr.po:"POT-Creation-Date: 2014-09-11 17:24+0200\n"
sr_Latn.po:"POT-Creation-Date: 2014-04-18 20:44+0200\n"
sv.po:"POT-Creation-Date: 2014-04-18 20:44+0200\n"
tr.po:"POT-Creation-Date: 2014-10-25 16:43+0200\n"
uk.po:"POT-Creation-Date: 2014-12-11 19:43-0800\n"
vi.po:"POT-Creation-Date: 2014-04-17 16:43+0200\n"
zh_CN.po:"POT-Creation-Date: 2014-04-18 20:44+0200\n"
zh_TW.po:"POT-Creation-Date: 2012-01-27 16:40+0100\n"
  • Translation revisions:
ar.po:"PO-Revision-Date: 2014-06-29 15:50+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: 2015-02-06 14:22+0100\n"
da.po:"PO-Revision-Date: 2013-05-16 14:50+0200\n"
de.po:"PO-Revision-Date: 2015-02-17 02:41+0100\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: 2014-10-20 20:13+0200\n"
es.po:"PO-Revision-Date: 2014-04-20 11:10+0100\n"
fi.po:"PO-Revision-Date: 2015-01-22 20:50+0200\n"
fr.po:"PO-Revision-Date: 2014-06-16 17:20+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"
is.po:"PO-Revision-Date: 2015-02-16 08:42+0000\n"
it.po:"PO-Revision-Date: 2014-09-28 02:52+0200\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: 2015-01-08 21:23+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-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: 2014-05-23 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: 2014-10-21 23:12+0200\n"
sr_Latn.po:"PO-Revision-Date: 2008-09-08 20:44+0200\n"
sv.po:"PO-Revision-Date: 2014-05-21 18:53+0200\n"
tr.po:"PO-Revision-Date: 2014-10-26 21:58+0200\n"
uk.po:"PO-Revision-Date: 2014-12-21 15:24+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"
zh_TW.po:"PO-Revision-Date: 2011-09-05 15:03+0800\n"

Current status on gramps41

  • Translation revisions:
ar.po:"PO-Revision-Date: 2014-06-29 15:50+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: 2015-02-06 14:24+0100\n"
da.po:"PO-Revision-Date: 2013-05-16 14:50+0200\n"
de.po:"PO-Revision-Date: 2015-02-16 02:23+0100\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: 2014-11-08 13:21+0100\n"
es.po:"PO-Revision-Date: 2014-04-20 11:10+0100\n"
fi.po:"PO-Revision-Date: 2014-12-13 12:47+0200\n"
fr.po:"PO-Revision-Date: 2015-02-18 14:06+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: 2014-11-23 16:59+0100\n"
hu.po:"PO-Revision-Date: 2014-05-22 14:46+0200\n"
it.po:"PO-Revision-Date: 2014-09-28 02:52+0200\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: 2015-01-08 21:23+0100\n"
nl.po:"PO-Revision-Date: 2013-10-20 12:42+0100\n"
nn.po:"PO-Revision-Date: 2014-12-22 21:26+0100\n"
pl.po:"PO-Revision-Date: 2014-06-04 01:28+0100\n"
pt_BR.po:"PO-Revision-Date: 2014-03-23 11:36-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: 2014-05-23 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: 2014-10-21 23:12+0200\n"
sr_Latn.po:"PO-Revision-Date: 2008-09-08 20:44+0200\n"
sv.po:"PO-Revision-Date: 2015-01-06 18:29+0100\n"
tr.po:"PO-Revision-Date: 2014-10-26 21:58+0200\n"
uk.po:"PO-Revision-Date: 2014-12-21 15:24+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 - gramps40 (last revision)
fi:        gramps40
fr:        trunk
ga:       gramps40
he:       gramps40
hr:       gramps40
hu:      gramps40
it:        trunk - gramps40 (last revision)
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 - gramps40 (last revision)
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

Changes done

  • After revision 0194c4... , untranslated messages:
ar: 1745
br: 3459
ca:  173
da:  217
el:  203
eo: 1799
fi:  127
ga: 5922
he: 2395
hr:  320
hu:  189
ja: 2242
lt:  129
mk: 1388
nb:  155
nl:  142
pl:  138
pt_BR:  125
ro: 2243
sk:  176
sq: 1067
tr: 3047
vi:  359
  • After revision 774e25... , untranslated messages:
bg:  633
en_GB:  303
es:  147
it:  321
nn:  276
pt_PT:  195
sl:  374
sr: 5817
sv:  187
uk:  154
zh_CN:  476
  • After revision 860f88... , untranslated messages:
es:  144
it:  298
uk:  131