/pidgin/main: 3dda61e090d3: Add import-from-transifex script
Richard Laager <[email protected]>
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: 3dda61e090d3cb27f06898bc1f3d121b41ba3f79 Author: Richard Laager <[email protected]> Date: 2016-06-16 01:15 -0500 Branch: release-2.x.y URL: https://hg.pidgin.im/pidgin/main/rev/3dda61e090d3 Description: Add import-from-transifex script This pulls the translations from Transifex, works out what has changed, and commits intltool-update changes without prompting. It then leaves the remaining changes for manual review and committing. diffstat: po/import-from-transifex | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 85 insertions(+), 0 deletions(-) diffs (90 lines): diff --git a/po/import-from-transifex b/po/import-from-transifex new file mode 100755 --- /dev/null +++ b/po/import-from-transifex @@ -0,0 +1,85 @@ +#!/bin/bash -eu +# This uses bash for the <() syntax. + +# TODO: Is there a way we can ignore files with only fuzzy-string changes? + +# These are the languages which are maintained in Transifex. +transifex_languages="sq ar ar_SA hy hy_AM ast be brx br my_MM ca cs nl en_AU en_GB et fi gl ka de el he hi hu id ga it ja ks kk km ku_IQ lv lt mai ms_MY mr ne nqo nb nn oc pa fa pl pt pt_BR ro ru szl sd sl es es_AR sv tt te tr uk uz cy +" + +if ! which tx > /dev/null +then + cat >&2 << EOF +You must install the Transifex command-line client: +http://docs.transifex.com/client/setup/ +EOF + exit 1 +fi + +cat << EOF +This script assumes your working tree is clean, at least in the po directory. +It pulls the translations from Transifex, works out what has changed, and +COMMITS intltool-update changes without prompting. It then leaves the +remaining changes for manual review and committing. + +Ctrl-C now to abort... +EOF +sleep 10 + +if [ -d po ] +then + cd po +fi + +changed_files= +commitable_files= +for i in $transifex_languages +do + if [ -e $i.po ] + then + cp $i.po $i.po.original + XGETTEXT_ARGS=--no-location intltool-update $i + cp $i.po $i.po.cleaned + fi + + tx pull -f -l $i + XGETTEXT_ARGS=--no-location intltool-update $i + + if [ -e $i.po.cleaned ] + then + if cmp -s <(grep ^msg $i.po.cleaned) <(grep ^msg $i.po) + then + # There were no actual changes. + mv $i.po.original $i.po + else + # There were changes. + mv $i.po $i.po.transifex + changed_files="$changed_files $i.po" + + if cmp -s <(grep ^msg $i.po.original) <(grep ^msg $i.po.cleaned) + then + # The cleaning produced no actual changes; undo the cleaning. + mv $i.po.original $i.po + else + # The cleaning produced changes; leave it for committing. + mv $i.po.cleaned $i.po + commitable_files="$commitable_files $i.po" + fi + fi + fi + + rm -f $i.po.original $i.po.cleaned +done + +# Commit cleaned versions of the changed files. +if [ -n "$commitable_files" ] +then + hg commit -u "Pidgin Translators <[email protected]>" \ + -m "Clean changed translations" $commitable_files +fi + +# Leave the cleaned Transifex versions in place, ready for committing. +for i in $changed_files +do + mv $i.transifex $i +done _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits