Accepting request 149834 from Base:System

Tarball update plus supplementary scripts change:
- Supplementary scripts improvements:
  * Validate all imported po files before merge.
  * Try harder to make plural forms consistent.
  * Collect full translations of all projects.
  * Create a domain map.
  * Added a script that makes possible to prepare translations for
    post-install translation-update package.
  * Support for pending translation fixes.
  * "static" method for update from attached tarball
    (needed if upstream disappeared) (forwarded request 149833 from sbrabec)

OBS-URL: https://build.opensuse.org/request/show/149834
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/translation-update-upstream?expand=0&rev=31
This commit is contained in:
Stephan Kulow 2013-01-29 06:05:45 +00:00 committed by Git OBS Bridge
commit b6411cf27a
18 changed files with 564 additions and 75 deletions

View File

@ -20,7 +20,7 @@ done | sort -u >create-tlst-temp-osc-projects.lst
KNOWN_BRANCHES="gnome-3-4"
# branches tried apps with the same name base:
# Do not forget hardcoded strings in the code below!
APP_BRANCHES="|gimp-2-8|gtk-3-4|gtk-2-24|glib-2-32"
APP_BRANCHES="|gimp-2-8|gtk-3-6|gtk-2-24|glib-2-34"
# FIXME: support for libgda:release-3-0-branch gnome-background:gnome-2-22
echo "# This file was generated $(LANG=C LC_ALL=C date) by create-tlst-step2-create-gnome_gtp.sh." >upstream-gnome_gtp.tlst
@ -93,16 +93,16 @@ curl http://l10n.gnome.org/POT/ | sed -n 's:^.*href="\([^"]*\)/".*$:\1:p' | sed
PO_DIR=po-functions
;;
# FIXME: Only some teams use GTP for gstreamer. Run 'find -name "*-fixes.po"' on processed downstream to find possible regressions.
gst-plugins-base-0.10 )
gst-plugins-base-1.0 )
PROJECT=gst-plugins-base
;;
gst-plugins-good-0.10 )
gst-plugins-good-1.0 )
PROJECT=gst-plugins-good
;;
gst-plugins-bad-0.10 )
gst-plugins-bad-1.0 )
PROJECT=gst-plugins-bad
;;
gst-plugins-ugly-0.10 )
gst-plugins-ugly-1.0 )
PROJECT=gst-plugins-ugly
;;
libgweather-locations )

View File

@ -1,5 +1,5 @@
# package domain method repository dir branch
gstreamer-0_10 gstreamer-0.10 cgit git://anongit.freedesktop.org/gstreamer/gstreamer gstreamer/po
gstreamer-0_10-plugins-base gst-plugins-base-0.10 cgit git://anongit.freedesktop.org/gstreamer/gst-plugins-base gst-plugins-base/po
gstreamer-0_10-plugins-good gst-plugins-good-0.10 cgit git://anongit.freedesktop.org/gstreamer/gst-plugins-good gst-plugins-good/po
gstreamer gstreamer-1.0 cgit git://anongit.freedesktop.org/gstreamer/gstreamer gstreamer/po
gstreamer-plugins-base gst-plugins-base-1.0 cgit git://anongit.freedesktop.org/gstreamer/gst-plugins-base gst-plugins-base/po
gstreamer-plugins-good gst-plugins-good-1.0 cgit git://anongit.freedesktop.org/gstreamer/gst-plugins-good gst-plugins-good/po
shared-mime-info shared-mime-info cgit git://anongit.freedesktop.org/xdg/shared-mime-info po

View File

@ -34,7 +34,7 @@ evolution-data-server evolution-data-server-2.28 lcn - ev
#MOVED: evolution-data-server-1.6 evolution-data-server-1.6 lcn - evolution-data-server-1.6/po SLE11SP1
#BROKEN: evolution-exchange evolution-exchange-2.28 lcn - evolution-exchange/po SLE11SP1
#MOVED: evolution-exchange-2.6 evolution-exchange-2.6 lcn - evolution-exchange-2.6/po SLE11SP1
evolution-webcal evolution-webcal lcn - evolution-webcal/po SLE11SP1
#DROPPED: evolution-webcal evolution-webcal lcn - evolution-webcal/po SLE11SP1
f-spot f-spot lcn - f-spot/po SLE11SP1
#NA: gnome-cups-manager gnome-cups-manager lcn - gnome-cups-manager/po SLE11SP1
#DROPPED: gnome-docker gnome-docker lcn - gnome-docker/po SLE11SP1
@ -70,10 +70,10 @@ libgnomesu libgnomesu-1.0 lcn - li
#DROPPED: libslab libslab lcn - libslab/po SLE11SP1
#NA: libssui libssui lcn - libssui/po SLE11SP1
limal limal lcn - limal/po SLE11SP1
limal-apparmor-control limal-apparmor-control lcn - limal-apparmor-control/po SLE11SP1
limal-ca-mgm limal-ca-mgm lcn - limal-ca-mgm/po SLE11SP1
#DROPPED: limal-apparmor-control limal-apparmor-control lcn - limal-apparmor-control/po SLE11SP1
#DROPPED: limal-ca-mgm limal-ca-mgm lcn - limal-ca-mgm/po SLE11SP1
limal-nfs-server limal-nfs-server lcn - limal-nfs-server/po SLE11SP1
limal-runlevel limal-runlevel lcn - limal-runlevel/po SLE11SP1
#DROPPED: limal-runlevel limal-runlevel lcn - limal-runlevel/po SLE11SP1
linphone linphone lcn - linphone/po SLE11SP1
linuxrc linuxrc lcn - linuxrc/po SLE11SP1
#DROPPED: login login lcn - login/po SLE11SP1
@ -101,7 +101,7 @@ pm-profiler pm-profiler lcn - pm
#TODO: release-notes-sled release-notes-sled lcn - release-notes-sled/po SLE11SP1
#DROPPED: resapplet resapplet lcn - resapplet/po SLE11SP1
#NA: rug rug lcn - rug/po SLE11SP1
sabayon sabayon lcn - sabayon/po SLE11SP1
#DROPPED: sabayon sabayon lcn - sabayon/po SLE11SP1
#YAST: sax sax lcn - sax/po SLE11SP1
#NA: scpm_cli scpm_cli lcn - scpm_cli/po SLE11SP1
#NA: scpm_groups scpm_groups lcn - scpm_groups/po SLE11SP1
@ -129,6 +129,136 @@ tsclient tsclient lcn - ts
#NA: zmd zmd lcn - zmd/po SLE11SP1
#NA: zypp zypp lcn - zypp/po SLE11SP1
#HANDLED_BY_MAINTAINERS: zypper zypper lcn - zypper/po SLE11SP1
#DROPPED: CheckHardware CheckHardware lcn - CheckHardware/po SLE11SP2
# NO I18N ANY MORE: ConsoleKit ConsoleKit lcn - ConsoleKit/po SLE11SP2
NetworkManager NetworkManager lcn - NetworkManager/po SLE11SP2
NetworkManager-novellvpn NetworkManager-novellvpn lcn - NetworkManager-novellvpn/po SLE11SP2
NetworkManager-openvpn NetworkManager-openvpn lcn - NetworkManager-openvpn/po SLE11SP2
NetworkManager-vpnc NetworkManager-vpnc lcn - NetworkManager-vpnc/po SLE11SP2
#MOVED: PolicyKit-gnome PolicyKit-gnome lcn - PolicyKit-gnome/po SLE11SP2
polkit-gnome polkit-gnome lcn - PolicyKit-gnome/po SLE11SP2
#NA: RELEASE-NOTES RELEASE-NOTES lcn - RELEASE-NOTES/po SLE11SP2
#NA: SUSEgreeter SUSEgreeter lcn - SUSEgreeter/po SLE11SP2
#DROPPED: apparmor-parser apparmor-parser lcn - apparmor-parser/po SLE11SP2
#DROPPED: apparmor-utils apparmor-utils lcn - apparmor-utils/po SLE11SP2
#DROPPED: apparmorapplet-gnome apparmorapplet lcn - apparmorapplet/po SLE11SP2
#MOVED: banshee banshee lcn - banshee/po SLE11SP2
#MOVED: banshee-1 banshee-1 lcn - banshee-1/po SLE11SP2
banshee banshee lcn - banshee-1/po SLE11SP2
#NOT_IN_OPENSUSE: banshee-1-novell-aac banshee-1-novell-aac lcn - banshee-1-novell-aac/po SLE11SP2
#DROPPED: beagle beagle lcn - beagle/po SLE11SP2
#NOTFOUND: bootloader bootloader lcn - bootloader/po SLE11SP2
#NOTFOUND: community-repositories community-repositories lcn - community-repositories/po SLE11SP2
compiz compiz lcn - compiz/po SLE11SP2
#DROPPED: compiz xgl-settings lcn - xgl-settings/po SLE11SP2
# STRANGE, partially moved, need to collect both:
gnome-control-center control-center2 lcn - control-center2/po SLE11SP2
gnome-control-center gnome-control-center-2.0 lcn - gnome-control-center-2.0/po SLE11SP2
cracklib cracklib lcn - cracklib/po SLE11SP2
cryptconfig cryptconfig lcn - cryptconfig/po SLE11SP2
#YAST: dialogsolver dialogsolver lcn - dialogsolver/po SLE11SP2
eiciel eiciel lcn - eiciel/po SLE11SP2
evolution evolution-2.28 lcn - evolution/po SLE11SP2
#MOVED: evolution-2.6 evolution-2.6 lcn - evolution-2.6/po SLE11SP2
evolution-data-server evolution-data-server-2.28 lcn - evolution-data-server/po SLE11SP2
#MOVED: evolution-data-server-1.6 evolution-data-server-1.6 lcn - evolution-data-server-1.6/po SLE11SP2
#BROKEN: evolution-exchange evolution-exchange-2.28 lcn - evolution-exchange/po SLE11SP2
#MOVED: evolution-exchange-2.6 evolution-exchange-2.6 lcn - evolution-exchange-2.6/po SLE11SP2
#DROPPED: evolution-webcal evolution-webcal lcn - evolution-webcal/po SLE11SP2
f-spot f-spot lcn - f-spot/po SLE11SP2
#NA: gnome-cups-manager gnome-cups-manager lcn - gnome-cups-manager/po SLE11SP2
#DROPPED: gnome-docker gnome-docker lcn - gnome-docker/po SLE11SP2
#DROPPED: gnome-main-menu gnome-main-menu lcn - gnome-main-menu/po SLE11SP2
#DROPPED: gnome-mount gnome-mount lcn - gnome-mount/po SLE11SP2
gnome-packagekit gnome-packagekit lcn - gnome-packagekit/po SLE11SP2
gnome-panel gnome-panel-2.0 lcn - gnome-panel-2.0/po SLE11SP2
#TODO phase 2: gnome-patch-translation gnome-patch-translation lcn - gnome-patch-translation/po SLE11SP2
#DROPPED: gnome-pilot gnome-pilot-subset lcn - gnome-pilot-subset/po SLE11SP2
gnome-power-manager gnome-power-manager lcn - gnome-power-manager/po SLE11SP2
gnome-screensaver gnome-screensaver lcn - gnome-screensaver/po SLE11SP2
gnome-session gnome-session-2.0 lcn - gnome-session-2.0/po SLE11SP2
gnome-terminal gnome-terminal lcn - gnome-terminal/po SLE11SP2
#DROPPED: gnome-utils gnome-utils-2.0 lcn - gnome-utils-2.0/po SLE11SP2
#NA: html-help-boot html-help-boot lcn - html-help-boot/po SLE11SP2
#NA: html-help-install html-help-install lcn - html-help-install/po SLE11SP2
#MOVED?: NetworkManager-kde4 kcm_knetworkmanager lcn - kcm_knetworkmanager/po SLE11SP2
#TODO: kde4-SLE kde4-SLE lcn - kde4-SLE/po SLE11SP2
#TODO: kde4-openSUSE kde4-openSUSE lcn - kde4-openSUSE/po SLE11SP2
#TODO: kde4-plasmoids kde4-plasmoids lcn - kde4-plasmoids/po SLE11SP2
#TODO: kfiledialog kfiledialog lcn - kfiledialog/po SLE11SP2
#TODO: kinternet kinternet lcn - kinternet/po SLE11SP2
#TODO: kio_slp kio_slp lcn - kio_slp/po SLE11SP2
#TODO: kio_sysinfo kio_sysinfo lcn - kio_sysinfo/po SLE11SP2
#TODO: knetworkmanager knetworkmanager lcn - knetworkmanager/po SLE11SP2
#TODO: kpowersave kpowersave lcn - kpowersave/po SLE11SP2
krb5-ticket-watcher krb5-ticket-watcher lcn - krb5-ticket-watcher/po SLE11SP2
#NA: krpmview krpmview lcn - krpmview/po SLE11SP2
#NA: kryptomedia kryptomedia lcn - kryptomedia/po SLE11SP2
#TODO: kupdateapplet kupdateapplet lcn - kupdateapplet/po SLE11SP2
#TODO: kwin_SUSE2 kwin_SUSE2 lcn - kwin_SUSE2/po SLE11SP2
#DROPPED: libgnomedb libgnomedb-3 lcn - libgnomedb-3/po SLE11SP2
libgnomesu libgnomesu-1.0 lcn - libgnomesu/po SLE11SP2
#DROPPED: libslab libslab lcn - libslab/po SLE11SP2
#NA: libssui libssui lcn - libssui/po SLE11SP2
limal limal lcn - limal/po SLE11SP2
#DROPPED: limal-apparmor-control limal-apparmor-control lcn - limal-apparmor-control/po SLE11SP2
#DROPPED: limal-ca-mgm limal-ca-mgm lcn - limal-ca-mgm/po SLE11SP2
limal-nfs-server limal-nfs-server lcn - limal-nfs-server/po SLE11SP2
#DROPPED: limal-runlevel limal-runlevel lcn - limal-runlevel/po SLE11SP2
linphone linphone lcn - linphone/po SLE11SP2
linuxrc linuxrc lcn - linuxrc/po SLE11SP2
#DROPPED: login login lcn - login/po SLE11SP2
nautilus-open-terminal nautilus-open-terminal lcn - nautilus-open-terminal/po SLE11SP2
nautilus-sendto nautilus-sendto lcn - nautilus-sendto/po SLE11SP2
nautilus-share nautilus-share lcn - nautilus-share/po SLE11SP2
#TODO: ooo-build ooo-build lcn - ooo-build/po SLE11SP2
#NA: opensuseupdater-gnome opensuseupdater-gnome lcn - opensuseupdater-gnome/po SLE11SP2
pam-config pam-config lcn - pam-config/po SLE11SP2
pam_krb5 pam_krb5 lcn - pam_krb5/po SLE11SP2
#NA: pam_pwcheck pam_pwcheck lcn - pam_pwcheck/po SLE11SP2
#NA: pam_unix2 pam_unix2 lcn - pam_unix2/po SLE11SP2
#NA: pam_winbind pam_winbind lcn - pam_winbind/po SLE11SP2
#TODO: patterns patterns lcn - patterns/po SLE11SP2
#TODO: patterns-openSUSE patterns-openSUSE lcn - patterns-openSUSE/po SLE11SP2
#TODO: patterns-sled patterns-sled lcn - patterns-sled/po SLE11SP2
#TODO: patterns-sles patterns-sles lcn - patterns-sles/po SLE11SP2
pidgin pidgin lcn - pidgin/po SLE11SP2
pidgin-sipe pidgin-sipe lcn - pidgin-sipe/po SLE11SP2
#TODO: plasma_applet_networkmanager plasma_applet_networkmanager lcn - plasma_applet_networkmanager/po SLE11SP2
pm-profiler pm-profiler lcn - pm-profiler/po SLE11SP2
#TODO: policykit-kde policykit-kde lcn - policykit-kde/po SLE11SP2
#NA: power-management power-management lcn - power-management/po SLE11SP2
#NA: profile_chooser profile_chooser lcn - profile_chooser/po SLE11SP2
#TODO: release-notes-sled release-notes-sled lcn - release-notes-sled/po SLE11SP2
#DROPPED: resapplet resapplet lcn - resapplet/po SLE11SP2
#NA: rug rug lcn - rug/po SLE11SP2
#DROPPED: sabayon sabayon lcn - sabayon/po SLE11SP2
#YAST: sax sax lcn - sax/po SLE11SP2
#NA: scpm_cli scpm_cli lcn - scpm_cli/po SLE11SP2
#NA: scpm_groups scpm_groups lcn - scpm_groups/po SLE11SP2
#NA: scpm_lib scpm_lib lcn - scpm_lib/po SLE11SP2
shared-mime-info shared-mime-info lcn - shared-mime-info/po SLE11SP2
#DROPPED: simple-ccsm-kde simple-ccsm-kde lcn - simple-ccsm-kde/po SLE11SP2
#NA: slideshow slideshow lcn - slideshow/po SLE11SP2
#NA: slideshow-sled slideshow-sled lcn - slideshow-sled/po SLE11SP2
#DROPPED: sumf sumf lcn - sumf/po SLE11SP2
#NA: suseplugger suseplugger lcn - suseplugger/po SLE11SP2
#NA: susetranslations susetranslations lcn - susetranslations/po SLE11SP2
tomboy tomboy lcn - tomboy/po SLE11SP2
#TODO: update-desktop-files update-desktop-files lcn - update-desktop-files/po SLE11SP2
#TODO: update-desktop-files-apps update-desktop-files-apps lcn - update-desktop-files-apps/po SLE11SP2
#TODO: update-desktop-files-directories update-desktop-files-directories lcn - update-desktop-files-directories/po SLE11SP2
#TODO: update-desktop-files-kde update-desktop-files-kde lcn - update-desktop-files-kde/po SLE11SP2
#TODO: update-desktop-files-kde-services update-desktop-files-kde-services lcn - update-desktop-files-kde-services/po SLE11SP2
#TODO: update-desktop-files-screensavers update-desktop-files-screensavers lcn - update-desktop-files-screensavers/po SLE11SP2
#TODO: update-desktop-files-yast update-desktop-files-yast lcn - update-desktop-files-yast/po SLE11SP2
#DROPPED: vmx-manager vmx-manager lcn - vmx-manager/po SLE11SP2
#NA: xen-vm-install xen-vm-install lcn - xen-vm-install/po SLE11SP2
#NA: ximian-artwork ximian-artwork lcn - ximian-artwork/po SLE11SP2
#NA: zen-updater zen-updater lcn - zen-updater/po SLE11SP2
#NA: zmd zmd lcn - zmd/po SLE11SP2
#NA: zypp zypp lcn - zypp/po SLE11SP2
#HANDLED_BY_MAINTAINERS: zypper zypper lcn - zypper/po SLE11SP2
#DROPPED: CheckHardware CheckHardware lcn - CheckHardware/po SLE11
# NO I18N ANY MORE: ConsoleKit ConsoleKit lcn - ConsoleKit/po SLE11
NetworkManager NetworkManager lcn - NetworkManager/po SLE11
@ -152,7 +282,7 @@ banshee banshee lcn - banshe
compiz compiz lcn - compiz/po SLE11
#DROPPED: compiz xgl-settings lcn - xgl-settings/po SLE11
# STRANGE, moved:
gnome-control-center control-center2 lcn - control-center2/po SLE11
gnome-control-center gnome-control-center-2.0 lcn - gnome-control-center-2.0/po SLE11
cracklib cracklib lcn - cracklib/po SLE11
cryptconfig cryptconfig lcn - cryptconfig/po SLE11
#YAST: dialogsolver dialogsolver lcn - dialogsolver/po SLE11
@ -163,7 +293,7 @@ evolution-data-server evolution-data-server-2.28 lcn - ev
#MOVED: evolution-data-server-1.6 evolution-data-server-1.6 lcn - evolution-data-server-1.6/po SLE11
#BROKEN: evolution-exchange evolution-exchange-2.28 lcn - evolution-exchange/po SLE11
#MOVED: evolution-exchange-2.6 evolution-exchange-2.6 lcn - evolution-exchange-2.6/po SLE11
evolution-webcal evolution-webcal lcn - evolution-webcal/po SLE11
#DROPPED: evolution-webcal evolution-webcal lcn - evolution-webcal/po SLE11
f-spot f-spot lcn - f-spot/po SLE11
#NA: gnome-cups-manager gnome-cups-manager lcn - gnome-cups-manager/po SLE11
#DROPPED: gnome-docker gnome-docker lcn - gnome-docker/po SLE11
@ -172,7 +302,7 @@ f-spot f-spot lcn - f-
gnome-packagekit gnome-packagekit lcn - gnome-packagekit/po SLE11
gnome-panel gnome-panel-2.0 lcn - gnome-panel-2.0/po SLE11
#TODO phase 2: gnome-patch-translation gnome-patch-translation lcn - gnome-patch-translation/po SLE11
gnome-pilot gnome-pilot-subset lcn - gnome-pilot-subset/po SLE11
#DROPPED: gnome-pilot gnome-pilot-subset lcn - gnome-pilot-subset/po SLE11
gnome-power-manager gnome-power-manager lcn - gnome-power-manager/po SLE11
gnome-screensaver gnome-screensaver lcn - gnome-screensaver/po SLE11
gnome-session gnome-session-2.0 lcn - gnome-session-2.0/po SLE11
@ -200,10 +330,10 @@ libgnomesu libgnomesu-1.0 lcn - li
#DROPPED: libslab libslab lcn - libslab/po SLE11
#NA: libssui libssui lcn - libssui/po SLE11
limal limal lcn - limal/po SLE11
limal-apparmor-control limal-apparmor-control lcn - limal-apparmor-control/po SLE11
limal-ca-mgm limal-ca-mgm lcn - limal-ca-mgm/po SLE11
#DROPPED: limal-apparmor-control limal-apparmor-control lcn - limal-apparmor-control/po SLE11
#DROPPED: limal-ca-mgm limal-ca-mgm lcn - limal-ca-mgm/po SLE11
limal-nfs-server limal-nfs-server lcn - limal-nfs-server/po SLE11
limal-runlevel limal-runlevel lcn - limal-runlevel/po SLE11
#DROPPED: limal-runlevel limal-runlevel lcn - limal-runlevel/po SLE11
linphone linphone lcn - linphone/po SLE11
linuxrc linuxrc lcn - linuxrc/po SLE11
#DROPPED: login login lcn - login/po SLE11
@ -231,7 +361,7 @@ pm-profiler pm-profiler lcn - pm
#TODO: release-notes-sled release-notes-sled lcn - release-notes-sled/po SLE11
#DROPPED: resapplet resapplet lcn - resapplet/po SLE11
#NA: rug rug lcn - rug/po SLE11
sabayon sabayon lcn - sabayon/po SLE11
#DROPPED: sabayon sabayon lcn - sabayon/po SLE11
#YAST: sax sax lcn - sax/po SLE11
#NA: scpm_cli scpm_cli lcn - scpm_cli/po SLE11
#NA: scpm_groups scpm_groups lcn - scpm_groups/po SLE11

View File

@ -1,5 +1,2 @@
# package domain method repository dir branch
pam Linux-PAM cvs pam.cvs.sourceforge.net:/cvsroot/pam Linux-PAM/po
# No update available yet:
#pidgin pidgin tbz http://downloads.sourceforge.net/pidgin/pidgin-2.7.11.tar.bz2 pidgin-2.7.11/po
gtkspell gtkspell tgz http://downloads.sourceforge.net/gtkspell/gtkspell-2.0.16.tar.gz gtkspell-2.0.16/po

View File

@ -13,6 +13,15 @@ RC=0
msgexec -i $1 $0-parse ${1%.po}-msgheadermerge-temp 2>/dev/null
msgexec -i $2 $0-parse ${2%.po}-msgheadermerge-temp 2>/dev/null
# If --swap-plural-forms was used, use plural definition from the other header.
if test "$6" = --old-plural-forms ; then
if test -f ${1%.po}-msgheadermerge-temp.merge-dir/Plural-Forms ; then
if test -f ${2%.po}-msgheadermerge-temp.merge-dir/Plural-Forms ; then
rm ${2%.po}-msgheadermerge-temp.merge-dir/POT-Creation-Date
fi
fi
fi
# Keep original POT date with --mergemode and fail for outdated PO:
if test "$4" = --mergemode ; then
rm ${2%.po}-msgheadermerge-temp.merge-dir/POT-Creation-Date

View File

@ -21,10 +21,10 @@ krb5-ticket-watcher krb5-ticket-watcher lcn - kr
#TODO: kupdateapplet kupdateapplet lcn - kupdateapplet/po
#REMOVED_FROM_LCN: libgnomesu libgnomesu-1.0 lcn - libgnomesu-1.0/po
limal limal lcn - limal/po
limal-apparmor-control limal-apparmor-control lcn - limal-apparmor-control/po
limal-ca-mgm limal-ca-mgm lcn - limal-ca-mgm/po
#DROPPED: limal-apparmor-control limal-apparmor-control lcn - limal-apparmor-control/po
#DROPPED: limal-ca-mgm limal-ca-mgm lcn - limal-ca-mgm/po
limal-nfs-server limal-nfs-server lcn - limal-nfs-server/po
limal-runlevel limal-runlevel lcn - limal-runlevel/po
#DROPPED: limal-runlevel limal-runlevel lcn - limal-runlevel/po
linuxrc linuxrc lcn - linuxrc/po
#DROPPED: login login lcn - login/po
#TODO: ooo-build ooo-build lcn - ooo-build/po

3
static.tlst Normal file
View File

@ -0,0 +1,3 @@
# package domain method repo dir branch option
libgnomecups libgnomecups static - libgnomecups/po
pan pan static - pan/po

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:04aea8dfd71cac6dfbad82a45c3b28c5b1e944e0bce3a4f075671bcc4568c4d3
size 178541

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fd3cc4e23002dba9426a0faef57924e0f7bb81e8b15fa68cb9c35ab6b5b72de0
size 5494197

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9d2278ae0cb6ab8893818ff61ca04a6d55b36b4bdf42e08eaf185f4230c16a2c
size 6280448

View File

@ -85,3 +85,25 @@ bash ./create-tlst-step1-list-all-po-projects.sh
bash ./create-tlst-step2-create-gnome_gtp.sh
Then continue as above.
To extract relevant strings from translation-update-upstream to translation-update
==================================================================================
If you need to extract relevant strings from compile time merged
translation-update-upstream to post installation update
translation-update, you can use
translation-update-upstream-to-translation-update.sh. This tool requires
some outputs of the upstream-collect.sh run, especially po-full
directory that contains the best full translations available.
You need this command:
# extract strings from translation-update-upstream that will not be updated
./translation-update-upstream-to-translation-update.sh
The command uses first item in OSC_REPOSITORIES array in
upstream-collect.conf as your target distro. Any package that is not
present there will be considered for post installation update.
Add the generated tarball to translation-update package after the run.

View File

@ -0,0 +1,213 @@
#!/bin/bash
# This program searches for packages that are not updated and extracts
# their translation updates to a separate tarball that can be used by
# translation-update package.
WORK_DIR=$PWD
set -o errexit
shopt -s nullglob
if ! test -f upstream-collect.domain-map ; then
echo "Missing generated files. Please make a full run of ./upstream-collect.sh first."
exit 1
fi
source ${0%translation-update-upstream-to-translation-update.sh}upstream-collect.conf
mkdir\
TRANSLATION_UPDATE TRANSLATION_UPDATE/translation-update TRANSLATION_UPDATE/TUU\
TRANSLATION_UPDATE/NOT_UPDATED TRANSLATION_UPDATE/NOT_UPDATED/po TRANSLATION_UPDATE/NOT_UPDATED/po-mandatory\
TRANSLATION_UPDATE/UPDATED TRANSLATION_UPDATE/UPDATED/po TRANSLATION_UPDATE/UPDATED/po-mandatory\
TRANSLATION_UPDATE/complete TRANSLATION_UPDATE/rebuilt
# more tarballs are available => use the latest one
# FIXME: Fix 20090213.10 < 20090213.9
# (but it should not happen for people who update and submit)
for ARCHIVE in translation-update-upstream-*.tar.bz2 ; do
:
done
tar -jtf $ARCHIVE >${0%.sh}-updates.lst
SNAPSHOT=${ARCHIVE%.tar.bz2}
SNAPSHOT=${SNAPSHOT#translation-update-upstream-}
for ARCHIVE in translation-update-mandatory-*.tar.bz2 ; do
:
done
MSNAPSHOT=${ARCHIVE%.tar.bz2}
MSNAPSHOT=${MSNAPSHOT#translation-update-mandatory-}
if [[ "$MSNAPSHOT" > "$SNAPSHOT" ]] ; then
SNAPSHOT=$MSNAPSHOT
fi
cd TRANSLATION_UPDATE/TUU
cp -a ../../po-mandatory-full po-mandatory
cp -a ../../po-full po
cd ../..
osc ${OSC_APIURL:+--apiurl=$OSC_APIURL} ls "${OSC_REPOSITORIES[1]}" >${0%.sh}-rebuilt.lst
osc ${OSC_APIURL:+--apiurl=$OSC_APIURL} ls "${OSC_REPOSITORIES[0]}" >${0%.sh}-outdated.lst
SERIAL=0
for TLST in *.tlst ; do
exec <$WORK_DIR/$TLST
while read PACKAGE DOMAIN METHOD REPO DIR BRANCH MANDATORY ; do
# Continue for empty lines and comments
if test "${PACKAGE###}" != "$PACKAGE" ; then
continue
fi
if test -z "$PACKAGE" ; then
continue
fi
echo "$(tput setf 3)Processing: package=$PACKAGE domain=$DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:-(default)} mandatory=$MANDATORY$(tput init)"
PACKAGE_REBUILT_UP_TO_DATE=false
if grep -q "^$PACKAGE\$" ${0%.sh}-rebuilt.lst ; then
if grep -q "^$PACKAGE\$" ${0%.sh}-outdated.lst ; then
echo " is rebuilt in the distro, but has pending translation related update, adding"
else
PACKAGE_REBUILT_UP_TO_DATE=true
echo " is rebuilt in the distro, not adding"
fi
else
echo " not rebuilt in the distro, adding"
fi
if $PACKAGE_REBUILT_UP_TO_DATE ; then
cat ${0%translation-update-upstream-to-translation-update.sh}upstream-collect.domain-map |
while read PACKAGE_ REAL_DOMAIN STATUS ; do
if test "$PACKAGE" = "$PACKAGE_" ; then
case $STATUS in
OK*)
echo " domain $REAL_DOMAIN is correctly updated, OK"
if test -d TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN ; then
mv TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN TRANSLATION_UPDATE/UPDATED/po/
fi
if test -d TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN ; then
mv TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN TRANSLATION_UPDATE/UPDATED/po-mandatory/
fi
;;
*)
echo " domain $REAL_DOMAIN is not correctly updated, needs to be added"
if test -d TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN ; then
mv TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN TRANSLATION_UPDATE/NOT_UPDATED/po/
fi
if test -d TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN ; then
mv TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN TRANSLATION_UPDATE/NOT_UPDATED/po-mandatory/
fi
;;
esac
fi
done
else
cat ${0%translation-update-upstream-to-translation-update.sh}upstream-collect.domain-map |
while read PACKAGE_ REAL_DOMAIN STATUS ; do
if test "$PACKAGE" = "$PACKAGE_" ; then
if test -d TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN ; then
mv TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN TRANSLATION_UPDATE/NOT_UPDATED/po/
fi
if test -d TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN ; then
mv TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN TRANSLATION_UPDATE/NOT_UPDATED/po-mandatory/
fi
fi
done
fi
echo
done
done
# If files remain in TUU, there is something wrong. Move them to NOT_UPDATED and hope that domain is correct.
# It can happen when domain mapping process failed.
cd TRANSLATION_UPDATE/TUU
for DIR in */* ; do
if test "${DIR%/*}" = "po" ; then
MANDATORY=false
else
MANDATORY=true
fi
echo "$(tput setf 4)Something went wrong, domain=${DIR#*/} mandatory=$MANDATORY was not listed and processed$(tput init)"
echo " assuming that it was not updated"
mv $DIR ../NOT_UPDATED/$DIR
done
cd ../../TRANSLATION_UPDATE/NOT_UPDATED/po
for PO in */*.po ; do
LNG=${PO##*/}
LNG=${LNG%.po}
mkdir -p "../../complete/translation-update/${PO%/*}/$LNG"
if test -f "../po-mandatory/$PO" ; then
msgcat --use-first "../po-mandatory/$PO" "$PO" -o "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
else
ln "$PO" "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
fi
# Standard update: Pick only files with changes.
if grep -q "^po/$PO\$" ../../../${0%.sh}-updates.lst ; then
mkdir -p "../../translation-update/${PO%/*}/$LNG"
ln "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}" "../../translation-update/${PO%/*}/$LNG/${PO##*/}"
fi
done
cd ../po-mandatory
for PO in */*.po ; do
LNG=${PO##*/}
LNG=${LNG%.po}
# Mandatory update: Pick all files.
if ! test -f "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}" ; then
mkdir -p "../../complete/translation-update/${PO%/*}/$LNG"
ln "$PO" "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
fi
if ! test -f "../../translation-update/${PO%/*}/$LNG/${PO##*/}" ; then
mkdir -p "../../translation-update/${PO%/*}/$LNG"
ln "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}" "../../translation-update/${PO%/*}/$LNG/${PO##*/}"
fi
done
cd ../../../TRANSLATION_UPDATE/UPDATED/po
for PO in */*.po ; do
LNG=${PO##*/}
LNG=${LNG%.po}
mkdir -p "../../complete/translation-update/${PO%/*}/$LNG"
if test -f "../po-mandatory/$PO" ; then
msgcat --use-first "../po-mandatory/$PO" "$PO" -o "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
else
ln "$PO" "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
fi
# Standard update: Pick only files with changes.
if grep -q "^po/$PO\$" ../../../${0%.sh}-updates.lst ; then
mkdir -p "../../rebuilt/translation-update/${PO%/*}/$LNG"
ln "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}" "../../rebuilt/translation-update/${PO%/*}/$LNG/${PO##*/}"
fi
done
cd ../po-mandatory
for PO in */*.po ; do
LNG=${PO##*/}
LNG=${LNG%.po}
# Mandatory update: Pick all files.
if ! test -f "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}" ; then
mkdir -p "../../complete/translation-update/${PO%/*}/$LNG"
ln "$PO" "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
fi
if ! test -f "../../rebuilt/translation-update/${PO%/*}/$LNG/${PO##*/}" ; then
mkdir -p "../../rebuilt/translation-update/${PO%/*}/$LNG"
ln "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}" "../../rebuilt/translation-update/${PO%/*}/$LNG/${PO##*/}"
fi
done
cd ../..
tar -jcf ../translation-update-from-translation-update-upstream-$SNAPSHOT.tar.bz2 translation-update
echo "Generated translation-update-from-translation-update-upstream-$SNAPSHOT.tar.bz2
Please add it to the package translation-update"
cd rebuilt
tar -jcf ../../translation-update-from-translation-update-upstream-rebuilt-$SNAPSHOT.tar.bz2 translation-update
echo "Generated translation-update-from-translation-update-upstream-rebuilt-$SNAPSHOT.tar.bz2
It contains translations that that should be provided in build time by translation-update-upstream,
but if translation-update-upstream was not updated to the latest version, then you may want to include
these translations to translation-update as well."
cd ../complete
tar -jcf ../../translation-update-from-translation-update-upstream-complete-$SNAPSHOT.tar.bz2 translation-update
echo "Generated translation-update-from-translation-update-upstream-complete-$SNAPSHOT.tar.bz2
This file includes all avaliable translations."
cd ../..
rm -r TRANSLATION_UPDATE

View File

@ -1,3 +1,19 @@
-------------------------------------------------------------------
Thu Jan 24 20:29:07 CET 2013 - sbrabec@suse.cz
- Updated strings from the latest upstream translations and for the
latest Factory snapshot.
- Supplementary scripts improvements:
* Validate all imported po files before merge.
* Try harder to make plural forms consistent.
* Collect full translations of all projects.
* Create a domain map.
* Added a script that makes possible to prepare translations for
post-install translation-update package.
* Support for pending translation fixes.
* "static" method for update from attached tarball
(needed if upstream disappeared)
-------------------------------------------------------------------
Mon Aug 6 19:58:07 CEST 2012 - sbrabec@suse.cz

View File

@ -1,7 +1,7 @@
#
# spec file for package translation-update-upstream
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,7 +17,7 @@
Name: translation-update-upstream
Version: 20120806
Version: 20130124
Release: 0
Summary: Tool for Translation Update from Upstream
License: GPL-2.0+
@ -45,6 +45,8 @@ Source52: upstream-collect-template.hook
Source53: create-tlst-step1-list-all-po-projects.sh
Source54: create-tlst-step2-create-gnome_gtp.sh
Source55: create-tlst.conf
Source56: translation-update-upstream-to-translation-update.sh
Source57: translation-update-static.tar.bz2
# Configuration files for package maintainer tools:
Source60: upstream-gnome_gtp.tlst
Source61: upstream-gnome_gtp.hook
@ -52,6 +54,7 @@ Source62: freedesktop_org.tlst
Source63: lcn-sle.tlst
Source65: misc.tlst
Source66: opensuse.tlst
Source67: static.tlst
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: coreutils
Requires: gettext-tools
@ -71,12 +74,6 @@ For more see README and HOWTO.
This package also includes translation update data files.
Authors:
--------
Stanislav Brabec <sbrabec@suse.cz>
%prep
%setup -q -T -a0 -a11 -c %{name}-%{version}

View File

@ -2,7 +2,8 @@
#
# osc repositories with packages (space separated list in parentheses, first takes precedence)
OSC_REPOSITORIES=( openSUSE:12.2 openSUSE:Factory )
#OSC_REPOSITORIES=( openSUSE:12.3 openSUSE:Factory )
OSC_REPOSITORIES=( openSUSE:Factory )
# osc server, empty for using of the osc default
OSC_APIURL=

View File

@ -26,6 +26,27 @@ function get_pot_name {
done
}
function validate_po_with_plural_check {
local LOG=$HOME/.validate${1##*/}.log$$
trap "rm -f $LOG" 0
if LC_ALL=C LANG=C msgfmt -c -o /dev/null "$1" 2>$LOG ; then
RC=0
else
RC=1
fi
PLURAL_FAILURE=false
if grep -q 'plural form' $LOG ; then
PLURAL_FAILURE=true
fi
rm $LOG
trap - 0
return $RC
}
function validate_po {
LC_ALL=C LANG=C msgfmt -c -o /dev/null "$1"
}
function rpmprep {
RPMDIR=$HOME/.var.rpmpatch$$
rm -rf BUILD $HOME/.var.rpmpatch$$
@ -82,6 +103,7 @@ if ! test -d STAMPS ; then
mkdir -p pot pot-tuu pot-diff
mkdir OSC PACKAGES UPDATE STAMPS
rm -f upstream-collect.log
rm -f upstream-collect.domain-map.tmp
fi
# wd may contain ":" in the name, use ~/ instead:
@ -101,7 +123,7 @@ EOF
chmod +x ~/.upstream-collect.tmp/translation-update-upstream
# executable flag does not survive some build systems
chmod +x msgheadermerge msgheadermerge-compose msgheadermerge-parse upstream-collect.sh create-tlst-step*.sh
chmod +x msgheadermerge msgheadermerge-compose msgheadermerge-parse upstream-collect.sh create-tlst-step*.sh translation-update-upstream-to-translation-update.sh
# Strings in installed instance of gnome-patch-translation may interfere
# with upstream-collect.sh. Use of dummies allows to import upstream
@ -193,6 +215,7 @@ for TLST in *.tlst ; do
echo
echo "$(tput setf 3)Processing: package=$PACKAGE domain=$DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:-(default)} mandatory=$MANDATORY$(tput init)"
STATUS=OK
# NOTE: Force a limitation: tlst rules for one package must be placed on contiguous line sequence
if ! $DEBUG ; then
if test "$OLD_PACKAGE" != "$PACKAGE" ; then
@ -284,6 +307,7 @@ for TLST in *.tlst ; do
if ! test -f .gnome-patch-translation-implemented ; then
if test -f $WORK_DIR/pot-diff/$DOMAIN.pot ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)}: new pot file contains unique strings, please check gnome-patch-translation"
STATUS=OK_INCOMPLETE
fi
fi
else
@ -292,9 +316,11 @@ for TLST in *.tlst ; do
REAL_DOMAIN=${POT%.pot}
if test -f $REAL_DOMAIN.pot ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)}: pot file update error, continuing with original $DOMAIN.pot"
STATUS=OK_OUTDATED
cp -a $DOMAIN.pot $WORK_DIR/pot/
else
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)}: pot file update error, no way to update"
STATUS=POT_ERROR
mkdir -p $WORK_DIR/STAMPS/$PACKAGE/$DOMAIN/$METHOD/${REPO//[\/:.]/_}/$REPODIR/${BRANCH:-__HEAD__}
continue
fi
@ -306,19 +332,24 @@ for TLST in *.tlst ; do
get_pot_name
REAL_DOMAIN=${POT%.pot}
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)}: packaging error, package does not call translation-update-upstream properly"
STATUS=TUU_NOT_CALLED
cp -a $DOMAIN.pot $WORK_DIR/pot/
else
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)}: packaging error, package does not call translation-update-upstream properly and intltool-update fails, no way to update"
STATUS=TUU_BROKEN
mkdir -p $WORK_DIR/STAMPS/$PACKAGE/$DOMAIN/$METHOD/${REPO//[\/:.]/_}/$REPODIR/${BRANCH:-__HEAD__}
continue
fi
fi
echo $PACKAGE $REAL_DOMAIN $STATUS >>$WORK_DIR/upstream-collect.domain-map.tmp
if $COLLECT_UPSTREAM ; then
cd $WORK_DIR/UPSTREAM
let SERIAL++ || :
mkdir $SERIAL
cd $SERIAL
echo >.info "package=$PACKAGE domain=$DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)}"
case "$METHOD" in
cvs )
@ -404,6 +435,15 @@ for TLST in *.tlst ; do
tar -zxf ${REPO##*/}
cd $REPODIR
;;
static )
if ! test -d $WORK_DIR/translation-update-static ; then
cd $WORK_DIR
tar -jxf translation-update-static.tar.bz2
cd -
fi
cp -a $WORK_DIR/translation-update-static/$DOMAIN .
cd $DOMAIN
;;
lcn )
if ! test -d $WORK_DIR/LCN-${BRANCH:-trunk} ; then
mkdir $WORK_DIR/LCN-${BRANCH:-trunk}
@ -456,6 +496,10 @@ for TLST in *.tlst ; do
for PO in *.po ; do
(
if $MANDATORY ; then
if ! validate_po $PO ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)} po=$PO: mandatory validation error!"
exit
fi
# Mandatory sources: copy the whole source to the mandatory po directory. Strings must not be skipped.
mkdir -p $WORK_DIR/UPDATE/po-mandatory/$REAL_DOMAIN
if test -f $WORK_DIR/UPDATE/po-mandatory/$REAL_DOMAIN/$PO ; then
@ -464,28 +508,61 @@ for TLST in *.tlst ; do
else
msgcat $PO -o $WORK_DIR/UPDATE/po-mandatory/$REAL_DOMAIN/$PO
fi
mkdir -p $WORK_DIR/po-mandatory-full/$REAL_DOMAIN
if test -f $RPMPODIR/$PO ; then
# FIXME: Downstream po file may be invalid and cause invalid po-full po file. It does not
# create any regression, but it would be nice to try harder to fix brokenness.
if ! msgmerge --no-fuzzy-matching $RPMPODIR/$PO $RPMPODIR/$REAL_DOMAIN.pot -o $RPMPODIR/${PO%.po}-downstream.po ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN repository=$REPO directory=$RPMPODIR branch=${BRANCH:(default)} po=$PO: package msgmerge error"
# Failed initial msgmerge is fatal. There is no way to update. Build may fail.
exit
fi
msgcat --use-first --force-po $PO $RPMPODIR/${PO%.po}-downstream.po -o $RPMPODIR/${PO%.po}-merged.po
msgattrib --no-obsolete $RPMPODIR/${PO%.po}-merged.po -o $WORK_DIR/po-mandatory-full/$REAL_DOMAIN/$PO
else
msgattrib --no-obsolete $PO -o $WORK_DIR/po-mandatory-full/$REAL_DOMAIN/$PO
fi
else
# step 0: Merge new po file into old project. Removes unused (too new) translations.
if ! msgmerge --no-fuzzy-matching $PO $RPMPODIR/$REAL_DOMAIN.pot -o ${PO%.po}-backport.po~ ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)} po=$PO: msgmerge error"
continue
exit
fi
if ! validate_po ${PO%.po}-backport.po~ ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)} po=$PO: validation error (backported po file)"
exit
fi
if test -f $RPMPODIR/$PO ; then
# step 1: Clean the RPM po file to be safe.
# step 1: Clean the RPM po file to be safe.
if ! msgmerge --no-fuzzy-matching $RPMPODIR/$PO $RPMPODIR/$REAL_DOMAIN.pot -o $RPMPODIR/${PO%.po}-downstream.po ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN repository=$REPO directory=$RPMPODIR branch=${BRANCH:(default)} po=$PO: package msgmerge error"
# Failed initial msgmerge is fatal. There is no way to update. Build may fail.
continue
exit
fi
# Do the magic:
# step 2: Merge new upstream po and previous upstream updates to RPM po (if any).
OLD_UPDATE=false
PLURAL_FAILURE=false
if test -f $WORK_DIR/UPDATE/po/$REAL_DOMAIN/$PO ; then
if $WORK_DIR/msgheadermerge $WORK_DIR/UPDATE/po/$REAL_DOMAIN/$PO $PO ${PO%.po}-uheader.po --mergemode --continue ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN repository=$REPO directory=$RPMPODIR branch=${BRANCH:(default)} po=$PO: old po file, skipping fixes"
OLD_UPDATE=true
fi
msgcat --force-po --use-first ${PO%.po}-uheader.po ${PO%.po}-backport.po~ $WORK_DIR/UPDATE/po/$REAL_DOMAIN/$PO -o ${PO%.po}-upstream.po
if ! validate_po_with_plural_check ${PO%.po}-upstream.po ; then
if $PLURAL_FAILURE ; then
# Try to use downstream plural forms.
$WORK_DIR/msgheadermerge $WORK_DIR/UPDATE/po/$REAL_DOMAIN/$PO $PO ${PO%.po}-uheader_opf.po --mergemode --continue --old-plural-forms
msgcat --force-po --use-first ${PO%.po}-uheader_opf.po ${PO%.po}-backport.po~ $WORK_DIR/UPDATE/po/$REAL_DOMAIN/$PO -o ${PO%.po}-upstream.po
if ! validate_po ${PO%.po}-upstream.po ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN repository=$REPO directory=$RPMPODIR branch=${BRANCH:(default)} po=$PO: validation error (merged translation), possible plural forms clash"
exit
fi
else
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN repository=$REPO directory=$RPMPODIR branch=${BRANCH:(default)} po=$PO: validation error (merged translation)"
exit
fi
fi
else
cp -a ${PO%.po}-backport.po~ ${PO%.po}-upstream.po
fi
@ -503,15 +580,28 @@ for TLST in *.tlst ; do
else
msgcat ${PO%.po}-fixes.po~ ${PO%.po}-additions.po~ -o $RPMPODIR/${PO%.po}-updatesraw.po
fi
# Are there any updated? If no, game over.
# Are there any updates? If no, game over.
if test -f $RPMPODIR/${PO%.po}-updatesraw.po ; then
# step 7: Compose the best po file header.
$WORK_DIR/msgheadermerge $RPMPODIR/$PO ${PO%.po}-upstream.po ${PO%.po}-header.po --newdate
if $PLURAL_FAILURE ; then
$WORK_DIR/msgheadermerge $RPMPODIR/$PO ${PO%.po}-upstream.po ${PO%.po}-header.po --newdate "" --old-plural-forms
else
$WORK_DIR/msgheadermerge $RPMPODIR/$PO ${PO%.po}-upstream.po ${PO%.po}-header.po --newdate
fi
# step 8: And yet another ugly game to get rid commented out garbage.
msgattrib --no-obsolete --force-po $RPMPODIR/${PO%.po}-updatesraw.po -o $RPMPODIR/${PO%.po}-updates.po~
# step 9: Merge correct header to the updates file.
msgcat --no-location --use-first ${PO%.po}-header.po $RPMPODIR/${PO%.po}-updates.po~ -o $RPMPODIR/${PO%.po}-updates.po
fi
# Prepare po-full file.
mkdir -p $WORK_DIR/po-full/$REAL_DOMAIN
if $OLD_UPDATE ; then
$WORK_DIR/msgheadermerge ${PO%.po}-upstream.po $RPMPODIR/$PO ${PO%.po}-dheader.po --mergemode --continue
msgcat --use-first --force-po ${PO%.po}-dheader.po $RPMPODIR/${PO%.po}-downstream.po ${PO%.po}-upstream.po -o ${PO%.po}-alldown.po
msgattrib --no-obsolete ${PO%.po}-alldown.po -o $WORK_DIR/po-full/$REAL_DOMAIN/$PO
else
msgattrib --no-obsolete ${PO%.po}-all.po -o $WORK_DIR/po-full/$REAL_DOMAIN/$PO
fi
# step 10: Prepare texts for review. We created them in previous steps, but files need cleanup.
if test -f ${PO%.po}-header.po ; then
if test -f ${PO%.po}-additions.po~ ; then
@ -551,25 +641,27 @@ for TLST in *.tlst ; do
msgattrib --no-obsolete --no-fuzzy --translated ${PO%.po}-backport.po~ -o ${PO%.po}-backport.po
if ! test -f ${PO%.po}-backport.po ; then
# backport file does not contain anything useful
continue
exit
fi
if test -f $RPMPODIR/${PO%.po}-updates.po ; then
if ! msgcat --force-po --use-first ${PO%.po}-backport.po $RPMPODIR/${PO%.po}-updates.po -o $RPMPODIR/${PO%.po}-updates.po~ ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)} po=$PO: msgcat error"
continue
exit
fi
mv $RPMPODIR/${PO%.po}-updates.po~ $RPMPODIR/${PO%.po}-updates.po
else
# To get surely a valid po file, use msgcat instead of cp.
if ! msgcat ${PO%.po}-backport.po -o $RPMPODIR/${PO%.po}-updates.po ; then
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE domain=$DOMAIN gettext-package=$REAL_DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)} po=$PO: msgcat error"
continue
exit
fi
fi
# step 2: Prepare texts for review.
mkdir -p $WORK_DIR/po-review/${PO%.po}/new-files
cp -a $RPMPODIR/${PO%.po}-updates.po $WORK_DIR/po-review/${PO%.po}/new-files/$REAL_DOMAIN.po
rmdir --ignore-fail-on-non-empty --parents $WORK_DIR/po-review/${PO%.po}/new-files
mkdir -p $WORK_DIR/po-full/$REAL_DOMAIN
cp -a $RPMPODIR/${PO%.po}-updates.po $WORK_DIR/po-full/$REAL_DOMAIN/$PO
fi
fi
fi
@ -633,9 +725,16 @@ if $COLLECT_UPSTREAM ; then
fi
fi
if $FULL_PROCESS ; then
# FIXME: Partial process should be able to update corresponding parts of domain-map.
echo >$WORK_DIR/upstream-collect.domain-map "# This file was generated $(LANG=C LC_ALL=C date) by upstream-collect.sh."
LC_ALL=C LANG=C sort -u <$WORK_DIR/upstream-collect.domain-map.tmp >>$WORK_DIR/upstream-collect.domain-map
rm $WORK_DIR/upstream-collect.domain-map.tmp
fi
cd $WORK_DIR
if ! $DEBUG ; then
rm -rf UPSTREAM OSC PACKAGES UPDATE UPDATE_OLD STAMPS BIN
rm -rf UPSTREAM OSC PACKAGES UPDATE UPDATE_OLD STAMPS BIN translation-update-static
fi
rm -rf ~/.upstream-collect.tmp

View File

@ -1,4 +1,4 @@
# This file was generated Thu Jul 26 17:39:52 CEST 2012 by create-tlst-step2-create-gnome_gtp.sh.
# This file was generated Tue Jan 8 19:32:41 CET 2013 by create-tlst-step2-create-gnome_gtp.sh.
# package domain method repository dir branch
NetworkManager NetworkManager gtp l10n.gnome.org/POT NetworkManager/po
NetworkManager-gnome nm-applet gtp l10n.gnome.org/POT network-manager-applet/po
@ -15,8 +15,6 @@ anjuta anjuta gtp l
anjuta anjuta gtp l10n.gnome.org/POT anjuta/po
anjuta-extras anjuta-extras gtp l10n.gnome.org/POT anjuta-extras/po
at-spi at-spi gtp l10n.gnome.org/POT at-spi/po
at-spi2-atk at-spi2-atk gtp l10n.gnome.org/POT at-spi2-atk/po gnome-3-4
at-spi2-atk at-spi2-atk gtp l10n.gnome.org/POT at-spi2-atk/po
at-spi2-core at-spi2-core gtp l10n.gnome.org/POT at-spi2-core/po gnome-3-4
at-spi2-core at-spi2-core gtp l10n.gnome.org/POT at-spi2-core/po
atk atk10 gtp l10n.gnome.org/POT atk/po gnome-3-4
@ -27,7 +25,6 @@ baobab baobab gtp l
baobab baobab gtp l10n.gnome.org/POT baobab/po
brasero brasero gtp l10n.gnome.org/POT brasero/po gnome-3-4
brasero brasero gtp l10n.gnome.org/POT brasero/po
bug-buddy bug-buddy gtp l10n.gnome.org/POT bug-buddy/po
byzanz byzanz gtp l10n.gnome.org/POT byzanz/po
caribou caribou gtp l10n.gnome.org/POT caribou/po
cheese cheese gtp l10n.gnome.org/POT cheese/po gnome-3-4
@ -38,6 +35,7 @@ colord colord gtp l
conduit conduit gtp l10n.gnome.org/POT conduit/po
conglomerate conglomerate gtp l10n.gnome.org/POT conglomerate/po
dasher dasher gtp l10n.gnome.org/POT dasher/po
dconf dconf gtp l10n.gnome.org/POT dconf/po
devhelp devhelp gtp l10n.gnome.org/POT devhelp/po gnome-3-4
devhelp devhelp gtp l10n.gnome.org/POT devhelp/po
devilspie devilspie gtp l10n.gnome.org/POT devilspie/po
@ -49,20 +47,18 @@ empathy empathy gtp l
empathy empathy gtp l10n.gnome.org/POT empathy/po
eog eog gtp l10n.gnome.org/POT eog/po gnome-3-4
eog eog gtp l10n.gnome.org/POT eog/po
eog-plugins eog-plugins gtp l10n.gnome.org/POT eog-plugins/po gnome-3-4
eog-plugins eog-plugins gtp l10n.gnome.org/POT eog-plugins/po
epiphany epiphany gtp l10n.gnome.org/POT epiphany/po gnome-3-4
epiphany epiphany gtp l10n.gnome.org/POT epiphany/po
epiphany-extensions epiphany-extensions-3.4 gtp l10n.gnome.org/POT epiphany-extensions/po
epiphany-extensions epiphany-extensions-3.6 gtp l10n.gnome.org/POT epiphany-extensions/po
evince evince gtp l10n.gnome.org/POT evince/po gnome-3-4
evince evince gtp l10n.gnome.org/POT evince/po
evolution evolution-3.4 gtp l10n.gnome.org/POT evolution/po gnome-3-4
evolution evolution-3.4 gtp l10n.gnome.org/POT evolution/po
evolution-data-server evolution-data-server-3.4 gtp l10n.gnome.org/POT evolution-data-server/po gnome-3-4
evolution-data-server evolution-data-server-3.4 gtp l10n.gnome.org/POT evolution-data-server/po
evolution evolution-3.6 gtp l10n.gnome.org/POT evolution/po gnome-3-4
evolution evolution-3.6 gtp l10n.gnome.org/POT evolution/po
evolution-data-server evolution-data-server-3.6 gtp l10n.gnome.org/POT evolution-data-server/po gnome-3-4
evolution-data-server evolution-data-server-3.6 gtp l10n.gnome.org/POT evolution-data-server/po
evolution-ews evolution-ews gtp l10n.gnome.org/POT evolution-ews/po
evolution-exchange evolution-exchange-3.4 gtp l10n.gnome.org/POT evolution-exchange/po gnome-3-4
evolution-exchange evolution-exchange-3.4 gtp l10n.gnome.org/POT evolution-exchange/po
evolution-webcal evolution-webcal gtp l10n.gnome.org/POT evolution-webcal/po
f-spot f-spot gtp l10n.gnome.org/POT f-spot/po
file-roller file-roller gtp l10n.gnome.org/POT file-roller/po gnome-3-4
file-roller file-roller gtp l10n.gnome.org/POT file-roller/po
@ -86,6 +82,7 @@ gedit gedit gtp l
gedit-collaboration gedit-collaboration gtp l10n.gnome.org/POT gedit-collaboration/po
gedit-cossa gedit-cossa gtp l10n.gnome.org/POT gedit-cossa/po
gedit-latex gedit-latex gtp l10n.gnome.org/POT gedit-latex/po
gedit-plugins gedit-plugins gtp l10n.gnome.org/POT gedit-plugins/po gnome-3-4
gedit-plugins gedit-plugins gtp l10n.gnome.org/POT gedit-plugins/po
genius genius gtp l10n.gnome.org/POT genius/po
ghex ghex-3.0 gtp l10n.gnome.org/POT ghex/po gnome-3-4
@ -108,19 +105,21 @@ gitg gitg gtp l
glabels glabels-3.0 gtp l10n.gnome.org/POT glabels/po
glade glade gtp l10n.gnome.org/POT glade/po
glade3 glade3 gtp l10n.gnome.org/POT glade3/po
glib-networking glib-networking gtp l10n.gnome.org/POT glib-networking/po glib-2-32
glib-networking glib-networking gtp l10n.gnome.org/POT glib-networking/po glib-2-34
glib-networking glib-networking gtp l10n.gnome.org/POT glib-networking/po
glib2 glib20 gtp l10n.gnome.org/POT glib/po
glom glom gtp l10n.gnome.org/POT glom/po
gnac gnac gtp l10n.gnome.org/POT gnac/po
gnome-applets gnome-applets-3.0 gtp l10n.gnome.org/POT gnome-applets/po gnome-3-4
gnome-applets gnome-applets-3.0 gtp l10n.gnome.org/POT gnome-applets/po
gnome-backgrounds gnome-backgrounds gtp l10n.gnome.org/POT gnome-backgrounds/po gnome-3-4
gnome-backgrounds gnome-backgrounds gtp l10n.gnome.org/POT gnome-backgrounds/po
gnome-blog gnome-blog gtp l10n.gnome.org/POT gnome-blog/po
gnome-bluetooth gnome-bluetooth2 gtp l10n.gnome.org/POT gnome-bluetooth/po gnome-3-4
gnome-bluetooth gnome-bluetooth2 gtp l10n.gnome.org/POT gnome-bluetooth/po
gnome-boxes gnome-boxes gtp l10n.gnome.org/POT gnome-boxes/po gnome-3-4
gnome-boxes gnome-boxes gtp l10n.gnome.org/POT gnome-boxes/po
gnome-clocks gnome-clocks gtp l10n.gnome.org/POT gnome-clocks/po
gnome-color-manager gnome-color-manager gtp l10n.gnome.org/POT gnome-color-manager/po gnome-3-4
gnome-color-manager gnome-color-manager gtp l10n.gnome.org/POT gnome-color-manager/po
gnome-commander gnome-commander gtp l10n.gnome.org/POT gnome-commander/po
@ -144,7 +143,6 @@ gnome-font-viewer gnome-font-viewer gtp l
gnome-font-viewer gnome-font-viewer gtp l10n.gnome.org/POT gnome-font-viewer/po
gnome-keyring gnome-keyring gtp l10n.gnome.org/POT gnome-keyring/po gnome-3-4
gnome-keyring gnome-keyring gtp l10n.gnome.org/POT gnome-keyring/po
gnome-media gnome-media-2.0 gtp l10n.gnome.org/POT gnome-media/po
gnome-menus gnome-menus-3.0 gtp l10n.gnome.org/POT gnome-menus/po gnome-3-4
gnome-menus gnome-menus-3.0 gtp l10n.gnome.org/POT gnome-menus/po
gnome-nettool gnome-nettool gtp l10n.gnome.org/POT gnome-nettool/po
@ -154,8 +152,6 @@ gnome-packagekit gnome-packagekit gtp l
gnome-packagekit gnome-packagekit gtp l10n.gnome.org/POT gnome-packagekit/po
gnome-panel gnome-panel-3.0 gtp l10n.gnome.org/POT gnome-panel/po gnome-3-4
gnome-panel gnome-panel-3.0 gtp l10n.gnome.org/POT gnome-panel/po
gnome-pilot gnome-pilot gtp l10n.gnome.org/POT gnome-pilot/po
gnome-pilot-conduits gnome-pilot-conduits gtp l10n.gnome.org/POT gnome-pilot-conduits/po
gnome-power-manager gnome-power-manager gtp l10n.gnome.org/POT gnome-power-manager/po gnome-3-4
gnome-power-manager gnome-power-manager gtp l10n.gnome.org/POT gnome-power-manager/po
gnome-schedule gnome-schedule gtp l10n.gnome.org/POT gnome-schedule/po
@ -188,18 +184,19 @@ gnome-web-photo gnome-web-photo gtp l
gnote gnote gtp l10n.gnome.org/POT gnote/po
gnumeric gnumeric gtp l10n.gnome.org/POT gnumeric/po
gnumeric gnumeric-functions gtp l10n.gnome.org/POT gnumeric/po-functions
goffice goffice-0.9.3 gtp l10n.gnome.org/POT goffice/po
goffice goffice-0.10.0 gtp l10n.gnome.org/POT goffice/po
goffice-0_8 goffice-0.8.17 gtp l10n.gnome.org/POT goffice/po
goobox goobox gtp l10n.gnome.org/POT goobox/po
gparted gparted gtp l10n.gnome.org/POT gparted/po
gsettings-desktop-schemas gsettings-desktop-schemas gtp l10n.gnome.org/POT gsettings-desktop-schemas/po gnome-3-4
gsettings-desktop-schemas gsettings-desktop-schemas gtp l10n.gnome.org/POT gsettings-desktop-schemas/po
gstreamer gstreamer-1.0 gtp l10n.gnome.org/POT gstreamer/po
gstreamer-0_10 gstreamer-0.10 gtp l10n.gnome.org/POT gstreamer/po
gstreamer-0_10-plugins-bad gst-plugins-bad-0.10 gtp l10n.gnome.org/POT gst-plugins-bad/po
gstreamer-0_10-plugins-base gst-plugins-base-0.10 gtp l10n.gnome.org/POT gst-plugins-base/po
gstreamer-0_10-plugins-bad gst-plugins-bad-0.10 gtp l10n.gnome.org/POT gstreamer/po
gstreamer-0_10-plugins-base gst-plugins-base-0.10 gtp l10n.gnome.org/POT gstreamer/po
gstreamer-0_10-plugins-gl gst-plugins-gl-0.10 gtp l10n.gnome.org/POT gstreamer/po
gstreamer-0_10-plugins-good gst-plugins-good-0.10 gtp l10n.gnome.org/POT gst-plugins-good/po
gstreamer-0_10-plugins-ugly gst-plugins-ugly-0.10 gtp l10n.gnome.org/POT gst-plugins-ugly/po
gstreamer-0_10-plugins-good gst-plugins-good-0.10 gtp l10n.gnome.org/POT gstreamer/po
gstreamer-0_10-plugins-ugly gst-plugins-ugly-0.10 gtp l10n.gnome.org/POT gstreamer/po
gthumb gthumb gtp l10n.gnome.org/POT gthumb/po
gtk-vnc gtk-vnc gtp l10n.gnome.org/POT gtk-vnc/po
gtk2 gtk20 gtp l10n.gnome.org/POT gtk+/po
@ -214,7 +211,6 @@ gucharmap gucharmap gtp l
gvfs gvfs gtp l10n.gnome.org/POT gvfs/po gnome-3-4
gvfs gvfs gtp l10n.gnome.org/POT gvfs/po
gwget gwget gtp l10n.gnome.org/POT gwget/po
hamster-applet hamster-applet gtp l10n.gnome.org/POT hamster-applet/po
istanbul istanbul gtp l10n.gnome.org/POT istanbul/po
jhbuild jhbuild gtp l10n.gnome.org/POT jhbuild/po
json-glib json-glib-1.0 gtp l10n.gnome.org/POT json-glib/po
@ -222,6 +218,7 @@ krb5-auth-dialog krb5-auth-dialog gtp l
latexila latexila gtp l10n.gnome.org/POT latexila/po
libbonobo libbonobo-2.0 gtp l10n.gnome.org/POT libbonobo/po
libbonoboui libbonoboui-2.0 gtp l10n.gnome.org/POT libbonoboui/po
libcryptui cryptui gtp l10n.gnome.org/POT libcryptui/po gnome-3-4
libcryptui cryptui gtp l10n.gnome.org/POT libcryptui/po
libepc libepc gtp l10n.gnome.org/POT libepc/po
libgdata gdata gtp l10n.gnome.org/POT libgdata/po
@ -230,7 +227,6 @@ libgnome-keyring libgnome-keyring gtp l
libgnome-keyring libgnome-keyring gtp l10n.gnome.org/POT libgnome-keyring/po
libgnome-media-profiles libgnome-media-profiles gtp l10n.gnome.org/POT libgnome-media-profiles/po
libgnomecanvas libgnomecanvas-2.0 gtp l10n.gnome.org/POT libgnomecanvas/po
libgnomecups libgnomecups gtp l10n.gnome.org/POT libgnomecups/po
libgnomekbd libgnomekbd gtp l10n.gnome.org/POT libgnomekbd/po gnome-3-4
libgnomekbd libgnomekbd gtp l10n.gnome.org/POT libgnomekbd/po
libgnomeprint libgnomeprint-2.2 gtp l10n.gnome.org/POT libgnomeprint/po
@ -242,7 +238,9 @@ libgweather libgweather-3.0 gtp l
libgweather libgweather-3.0 gtp l10n.gnome.org/POT libgweather/po
libgweather libgweather-locations gtp l10n.gnome.org/POT libgweather/po-locations
libpeas libpeas gtp l10n.gnome.org/POT libpeas/po
libsecret libsecret gtp l10n.gnome.org/POT libsecret/po
libsocialweb libsocialweb gtp l10n.gnome.org/POT libsocialweb/po
libsoup libsoup gtp l10n.gnome.org/POT libsoup/po
libwnck libwnck-3.0 gtp l10n.gnome.org/POT libwnck/po
meld meld gtp l10n.gnome.org/POT meld/po
memprof memprof gtp l10n.gnome.org/POT memprof/po
@ -261,23 +259,23 @@ nemiver nemiver gtp l
notification-daemon notification-daemon gtp l10n.gnome.org/POT notification-daemon/po
orca orca gtp l10n.gnome.org/POT orca/po gnome-3-4
orca orca gtp l10n.gnome.org/POT orca/po
pan pan gtp l10n.gnome.org/POT pan/po
pdfmod pdfmod gtp l10n.gnome.org/POT pdfmod/po
pessulus pessulus gtp l10n.gnome.org/POT pessulus/po
pitivi pitivi gtp l10n.gnome.org/POT pitivi/po
planner planner gtp l10n.gnome.org/POT planner/po
pulseaudio pulseaudio gtp l10n.gnome.org/POT Pulseaudio/po
pybliographer pybliographer gtp l10n.gnome.org/POT pybliographer/po
rhythmbox rhythmbox gtp l10n.gnome.org/POT rhythmbox/po
rygel rygel gtp l10n.gnome.org/POT rygel/po
sabayon sabayon gtp l10n.gnome.org/POT sabayon/po
seahorse seahorse gtp l10n.gnome.org/POT seahorse/po gnome-3-4
seahorse seahorse gtp l10n.gnome.org/POT seahorse/po
seahorse-nautilus seahorse-nautilus gtp l10n.gnome.org/POT seahorse-nautilus/po gnome-3-4
seahorse-nautilus seahorse-nautilus gtp l10n.gnome.org/POT seahorse-nautilus/po
seahorse-sharing seahorse-sharing gtp l10n.gnome.org/POT seahorse-sharing/po gnome-3-4
seahorse-sharing seahorse-sharing gtp l10n.gnome.org/POT seahorse-sharing/po
shared-mime-info shared-mime-info gtp l10n.gnome.org/POT shared-mime-info/po
sound-juicer sound-juicer gtp l10n.gnome.org/POT sound-juicer/po
sushi sushi gtp l10n.gnome.org/POT sushi/po gnome-3-4
sushi sushi gtp l10n.gnome.org/POT sushi/po
tasks tasks gtp l10n.gnome.org/POT tasks/po
tasque tasque gtp l10n.gnome.org/POT tasque/po
the-board the-board gtp l10n.gnome.org/POT the-board/po
tomboy tomboy gtp l10n.gnome.org/POT tomboy/po gnome-3-4
@ -297,6 +295,7 @@ xchat-gnome xchat-gnome gtp l
xdg-user-dirs xdg-user-dirs gtp l10n.gnome.org/POT xdg-user-dirs/po
xdg-user-dirs-gtk xdg-user-dirs-gtk gtp l10n.gnome.org/POT xdg-user-dirs-gtk/po
xkeyboard-config xkeyboard-config gtp l10n.gnome.org/POT xkeyboard-config/po
yelp yelp gtp l10n.gnome.org/POT yelp/po gnome-3-4
yelp yelp gtp l10n.gnome.org/POT yelp/po
zenity zenity gtp l10n.gnome.org/POT zenity/po gnome-3-4
zenity zenity gtp l10n.gnome.org/POT zenity/po