diff --git a/create-tlst-step2-create-gnome_gtp.sh b/create-tlst-step2-create-gnome_gtp.sh index 90a8b29..d0ba664 100644 --- a/create-tlst-step2-create-gnome_gtp.sh +++ b/create-tlst-step2-create-gnome_gtp.sh @@ -12,12 +12,12 @@ set -o errexit source ${0%create-tlst-step2-create-gnome_gtp.sh}upstream-collect.conf -osc ${OSC_APIURL:+--apisrv=$OSC_APIURL} list $OSC_REPOSITORY >create-tlst-temp-osc-projects.lst +osc ${OSC_APIURL:+--apiurl=$OSC_APIURL} list $OSC_REPOSITORY >create-tlst-temp-osc-projects.lst # branches tried for all apps: KNOWN_BRANCHES="gnome-2-28" # branches tried apps with the same name base: -APP_BRANCHES="|gimp-2-6|gtk-2-18|glib-2-22" +APP_BRANCHES="|gimp-2-6|gtk-2-18|gtk-2-90|glib-2-22" # 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 diff --git a/msgheadermerge b/msgheadermerge index 5bd97c3..5b1c86b 100644 --- a/msgheadermerge +++ b/msgheadermerge @@ -7,6 +7,8 @@ rm -rf {${1%.po},${2%.po}}-msgheadermerge-temp.{merge-dir,order} trap "rm -rf {${1%.po},${2%.po}}-msgheadermerge-temp.{merge-dir,order} ${2%.po}-msgheadermerge-tempheader.po" 0 +RC=0 + # Broken pipe is an expected behavior. Redirect stderr to /dev/null. msgexec -i $1 $0-parse ${1%.po}-msgheadermerge-temp 2>/dev/null msgexec -i $2 $0-parse ${2%.po}-msgheadermerge-temp 2>/dev/null @@ -15,7 +17,11 @@ msgexec -i $2 $0-parse ${2%.po}-msgheadermerge-temp 2>/dev/null if test "$4" = --mergemode ; then rm ${2%.po}-msgheadermerge-temp.merge-dir/POT-Creation-Date if test ${2%.po}-msgheadermerge-temp.merge-dir/PO-Revision-Date -ot ${1%.po}-msgheadermerge-temp.merge-dir/PO-Revision-Date ; then - exit 1 + if test "$5" = --continue ; then + RC=1 + else + exit 1 + fi fi else if test "$4" = --newdate ; then @@ -40,3 +46,5 @@ cat ${1%.po}-msgheadermerge-temp.order >>${2%.po}-msgheadermerge-temp.order msgmerge --quiet --force-po $2 $0-empty.pot -o ${2%.po}-msgheadermerge-tempheader.po sed -i '/^#~/,$d' ${2%.po}-msgheadermerge-tempheader.po msgfilter --force-po -i ${2%.po}-msgheadermerge-tempheader.po -o $3 $0-compose ${1%.po}-msgheadermerge-temp.merge-dir ${2%.po}-msgheadermerge-temp.order + +exit $RC diff --git a/translation-update-upstream-20091026.tar.bz2 b/translation-update-upstream-20091026.tar.bz2 deleted file mode 100644 index 0735fb6..0000000 --- a/translation-update-upstream-20091026.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9c7f3f4573afeedbd6655c61e3672b9e58782d981cf3c628fdfa8ea7246c0910 -size 1588898 diff --git a/translation-update-upstream-20100202.tar.bz2 b/translation-update-upstream-20100202.tar.bz2 new file mode 100644 index 0000000..08c22e1 --- /dev/null +++ b/translation-update-upstream-20100202.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30e0f6b742862230c8f9c9dec70037a220f8827c6d404a4379c6d920bd94ef0e +size 1864 diff --git a/translation-update-upstream-HOWTO b/translation-update-upstream-HOWTO index 4f6e6a5..631f260 100644 --- a/translation-update-upstream-HOWTO +++ b/translation-update-upstream-HOWTO @@ -50,7 +50,7 @@ If you want to update translations (short process: update translations only) Run following command in unpacked sources directory: -./upstream-collect.sh +bash ./upstream-collect.sh It creates a tarball with translations updated by upstream using all existing *.tlst filůes (configuration of packages) and @@ -80,8 +80,8 @@ refer to it in create-config.conf Then you can run following command in unpacked sources directory: # collect possible po domains from rpm packages -./create-tlst-step1-list-all-po-projects.sh +bash ./create-tlst-step1-list-all-po-projects.sh # scan upstream branches -./create-tlst-step2-create-gnome_gtp.sh +bash ./create-tlst-step2-create-gnome_gtp.sh Then continue as above. diff --git a/translation-update-upstream.changes b/translation-update-upstream.changes index 198cdce..3ac14cf 100644 --- a/translation-update-upstream.changes +++ b/translation-update-upstream.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Tue Feb 2 18:35:28 CET 2010 - sbrabec@suse.cz + +- Use dummy tarball before version freeze. +- Migration of servers from Novell Forge to Berlios. +- Supports newer version of cgit. +- Support for multiple osc sources. +- Support for extracting new and changed strings for review. +- Never overwrite strings by po file with older time stamp. + ------------------------------------------------------------------- Tue Oct 27 16:21:20 CET 2009 - sbrabec@suse.cz diff --git a/translation-update-upstream.spec b/translation-update-upstream.spec index cf92eb0..f2da472 100644 --- a/translation-update-upstream.spec +++ b/translation-update-upstream.spec @@ -1,7 +1,7 @@ # -# spec file for package translation-update-upstream (Version 20091026) +# spec file for package translation-update-upstream (Version 20100202) # -# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2010 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 @@ -19,9 +19,9 @@ Name: translation-update-upstream -License: GPL v2 or later +License: GPLv2+ Group: System/Localization -Version: 20091026 +Version: 20100202 Release: 1 Summary: Tool for Translation Update from Upstream Source: %{name}-%{version}.tar.bz2 diff --git a/upstream-collect.sh b/upstream-collect.sh index e7ae585..be86c1f 100644 --- a/upstream-collect.sh +++ b/upstream-collect.sh @@ -51,7 +51,7 @@ esac rm -rf UPSTREAM mkdir UPSTREAM if ! test -d STAMPS ; then - mkdir PACKAGES UPDATE STAMPS + mkdir OSC PACKAGES UPDATE STAMPS pot rm -f upstream-collect.log fi @@ -68,6 +68,9 @@ fi 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 + # Strings in installed instance of gnome-patch-translation may interfere # with upstream-collect.sh. Use of dummies allows to import upstream # strings, that are part of openSUSE patches. @@ -165,19 +168,32 @@ for TLST in *.tlst ; do fi fi - cd $WORK_DIR/PACKAGES + cd $WORK_DIR/OSC - RPMPKGDIR=$(echo $WORK_DIR/PACKAGES/$OSC_REPOSITORY/$PACKAGE) + RPMPKGDIR=$(echo $WORK_DIR/PACKAGES/$PACKAGE) if ! test -f $WORK_DIR/STAMPS/$PACKAGE/.builddir_ok ; then if ! test -d "$RPMPKGDIR" ; then - osc ${OSC_APIURL:+--apisrv=$OSC_APIURL} checkout --expand-link $OSC_REPOSITORY $PACKAGE + for OSC_REPOSITORY in "${OSC_REPOSITORIES[@]}" ; do + echo "Trying to check-out PACKAGES $PACKAGE from $OSC_REPOSITORY..." + if osc ${OSC_APIURL:+--apiurl=$OSC_APIURL} checkout --expand-link $OSC_REPOSITORY $PACKAGE >gnome-patch-translation-collect-tmp.log 2>&1 ; then + mv $OSC_REPOSITORY/$PACKAGE $WORK_DIR/PACKAGES/ + break + fi + if ! grep -q "HTTP Error 404" gnome-patch-translation-collect-tmp.log ; then + cat gnome-patch-translation-collect-tmp.log + rm gnome-patch-translation-collect-tmp.log + echo "ERROR: Checkout failed!" + exit 1 + fi + done + rm gnome-patch-translation-collect-tmp.log else rm -rf "$RPMPKGDIR" $WORK_DIR/STAMPS/$PACKAGE echo "$(tput setf 4)Removed possibly incorrect temporary files from previous runs. Please re-run $0 now.$(tput init)" exit 1 fi - RPMPKGDIR=$(echo $WORK_DIR/PACKAGES/$OSC_REPOSITORY/$PACKAGE) + RPMPKGDIR=$(echo $WORK_DIR/PACKAGES/$PACKAGE) cd $RPMPKGDIR rpmprep $PACKAGE.spec else @@ -196,9 +212,12 @@ for TLST in *.tlst ; do echo "$RPMPODIR: Missing or incorrect translation-update-upstream in the spec file." echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE gettext-package=$DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)}: packaging error, package does not call translation-update-upstream properly" fi - if ! intltool-update --gettext-package=$DOMAIN --pot ; then + if intltool-update --gettext-package=$DOMAIN --pot ; then + cp -a $DOMAIN.pot $WORK_DIR/pot/ + else if test -f $DOMAIN.pot ; then echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE gettext-package=$DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)}: intltool-update error, continuing with original $DOMAIN.pot" + cp -a $DOMAIN.pot $WORK_DIR/pot/ else echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE gettext-package=$DOMAIN method=$METHOD repository=$REPO directory=$DIR branch=${BRANCH:(default)}: intltool-update error, no way to update" mkdir -p $WORK_DIR/STAMPS/$PACKAGE/$DOMAIN/$METHOD/${REPO//[\/:.]/_}/$REPODIR/${BRANCH:-__HEAD__} @@ -248,7 +267,7 @@ for TLST in *.tlst ; do CGIT_BRANCH=${BRANCH:+?id=$BRANCH} CGIT_SERVER=${CGIT_URI#http://} CGIT_SERVER=${CGIT_SERVER%%/*} - curl $CGIT_URI/tree/${REPODIR#*/}$CGIT_BRANCH | sed -n 's:^.*class='\''ls-blob'\'' href='\''\([^'\'']*\)'\''.*$:\1:p' | + curl $CGIT_URI/tree/${REPODIR#*/}$CGIT_BRANCH | sed -n 's:^.*class='\''ls-blob[^'\'']*'\'' href='\''\([^'\'']*\)'\''.*$:\1:p' | while read ; do wget -N http://$CGIT_SERVER${REPLY/\/tree\///plain/} done @@ -298,6 +317,25 @@ for TLST in *.tlst ; do ;; esac +# +# Files created in this section: +# +# upstream dir: +# foo-backport.po: raw upstream translation backported to the downstream +# foo-uheader.po: header with the upstream date from the branch modified as last +# foo-upstream.po: backport + updates from all upstreams processed before (date from the branch modified as last) +# foo-allfz.po: downstream + joined updates. Strings that were modified create fuzzy multi-match. +# foo-all.po: downstream + joined updates. Strings that were modified use the last processed instance. +# foo-fixes.po: Strings that are different while comparing downstream and joined updates. +# foo-additions.po: Strings that are newly introduced in joined updates while comparing with downstream. +# foo-header.po: header with the lastest date, either upstream date from the branch modified as last or the downstream date +# foo-fixes-clean.po: fixes with a nice header. +# +# downstream dir: +# foo-downstream.po: cleaned and complete downstream po file +# foo-updatesraw.po: fixes + additions in a single file, raw form +# foo-updates.po: fixes + additions in a single file, clean form with an useful header (this file will be copied to UPDATE/) +# for PO in *.po ; do # step 0: Merge new po file into old project. Removes unused (too new) translations. if ! msgmerge --no-fuzzy-matching $PO $RPMPODIR/$DOMAIN.pot -o ${PO%.po}-backport.po ; then @@ -305,45 +343,95 @@ for TLST in *.tlst ; do continue fi if test -f $RPMPODIR/$PO ; then - # step 1: Clean the po file to be safe. - if ! msgmerge --no-fuzzy-matching $RPMPODIR/$PO $RPMPODIR/$DOMAIN.pot -o $RPMPODIR/${PO%.po}-clean.po ; then + # step 1: Clean the RPM po file to be safe. + if ! msgmerge --no-fuzzy-matching $RPMPODIR/$PO $RPMPODIR/$DOMAIN.pot -o $RPMPODIR/${PO%.po}-downstream.po ; then echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE gettext-package=$DOMAIN directory=$RPMPODIR po=$PO: package msgmerge error" # Failed initial msgmerge is fatal. There is no way to update. Build may fail. continue fi # Do the magic: - # step 2: Merge new po and previous updates (if any). + # step 2: Merge new upstream po and previous upstream updates to RPM po (if any). + OLD_UPDATE=false if test -f $WORK_DIR/UPDATE/po/$DOMAIN/$PO ; then - $WORK_DIR/msgheadermerge $WORK_DIR/UPDATE/po/$DOMAIN/$PO $PO ${PO%.po}-uheader.po - msgcat --force-po --use-first ${PO%.po}-uheader.po ${PO%.po}-backport.po $WORK_DIR/UPDATE/po/$DOMAIN/$PO -o ${PO%.po}-join.po + if $WORK_DIR/msgheadermerge $WORK_DIR/UPDATE/po/$DOMAIN/$PO $PO ${PO%.po}-uheader.po --mergemode --continue ; then + echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE gettext-package=$DOMAIN directory=$RPMPODIR 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/$DOMAIN/$PO -o ${PO%.po}-upstream.po else - cp -a ${PO%.po}-backport.po ${PO%.po}-join.po + cp -a ${PO%.po}-backport.po ${PO%.po}-upstream.po fi # step 3: Join both translations, without --use-first string changes will disappear as fuzzy. - msgcat --force-po ${PO%.po}-join.po $RPMPODIR/${PO%.po}-clean.po -o ${PO%.po}-allfz.po - msgcat --use-first --force-po ${PO%.po}-join.po $RPMPODIR/${PO%.po}-clean.po -o ${PO%.po}-all.po + msgcat --force-po ${PO%.po}-upstream.po $RPMPODIR/${PO%.po}-downstream.po -o ${PO%.po}-allfz.po + msgcat --use-first --force-po ${PO%.po}-upstream.po $RPMPODIR/${PO%.po}-downstream.po -o ${PO%.po}-all.po # step 4: Find string fixes (existed before, now different). msgcat --force-po --unique ${PO%.po}-all.po ${PO%.po}-allfz.po -o ${PO%.po}-fixes.po # step 5: Find newly translated strings (translation removal is not supported). - msgcat --force-po --unique $RPMPODIR/${PO%.po}-clean.po ${PO%.po}-all.po -o ${PO%.po}-additions.po + msgcat --force-po --unique $RPMPODIR/${PO%.po}-downstream.po ${PO%.po}-all.po -o ${PO%.po}-additions.po # step 6: Join both to collect all known fixes. - msgcat ${PO%.po}-fixes.po ${PO%.po}-additions.po -o $RPMPODIR/${PO%.po}-updatesraw.po + if $OLD_UPDATE ; then + # If the update has an old time stamp, don't include fixes. Use just additions. + msgcat ${PO%.po}-additions.po -o $RPMPODIR/${PO%.po}-updatesraw.po + 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. if test -f $RPMPODIR/${PO%.po}-updatesraw.po ; then # step 7: Compose the best po file header. - $WORK_DIR/msgheadermerge $RPMPODIR/$PO ${PO%.po}-join.po ${PO%.po}-header.po --newdate - # step 8: And yet another ugly game to get rid commented out dust. + $WORK_DIR/msgheadermerge $RPMPODIR/$PO ${PO%.po}-upstream.po ${PO%.po}-header.po --newdate + # step 8: And yet another ugly game to get rid commented out garbage. sed '/#~/d' <$RPMPODIR/${PO%.po}-updatesraw.po >$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 + # 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 + sed -i '/#~/d' ${PO%.po}-additions.po + mkdir -p $WORK_DIR/po-review/${PO%.po}/additions + msgcat --use-first ${PO%.po}-header.po ${PO%.po}-additions.po -o $WORK_DIR/po-review/${PO%.po}/additions/$DOMAIN.po + rmdir --ignore-fail-on-non-empty --parents $WORK_DIR/po-review/${PO%.po}/additions + fi + if test -f ${PO%.po}-fixes.po ; then + sed -i '/#~/d' ${PO%.po}-fixes.po + msgcat --use-first ${PO%.po}-header.po ${PO%.po}-fixes.po -o ${PO%.po}-fixes-clean.po + fi + if test -f ${PO%.po}-fixes-clean.po ; then + msgmerge ${PO%.po}-allfz.po ${PO%.po}-fixes-clean.po -o ${PO%.po}-fixes-review.po~ + sed -i '/#~/d' ${PO%.po}-fixes-review.po~ + msgcat ${PO%.po}-fixes-review.po~ -o ${PO%.po}-fixes-review.po + if $OLD_UPDATE ; then + mkdir -p $WORK_DIR/po-review/${PO%.po}/excluded-changes/${REPO//[\/:.]/_}/$REPODIR + cp -a ${PO%.po}-fixes-clean.po $WORK_DIR/po-review/${PO%.po}/excluded-changes/${REPO//[\/:.]/_}/$REPODIR/$DOMAIN.po + cp -a ${PO%.po}-fixes-review.po $WORK_DIR/po-review/${PO%.po}/excluded-changes/${REPO//[\/:.]/_}/$REPODIR/$DOMAIN-review.po + rmdir --ignore-fail-on-non-empty --parents $WORK_DIR/po-review/${PO%.po}/excluded-changes/${REPO//[\/:.]/_}/$REPODIR + if test -d $WORK_DIR/po-review/${PO%.po}/excluded-changes ; then + echo -e "Excluded changes contains changes introduced by upstream po files with\ntime stamp older than our package." >$WORK_DIR/po-review/${PO%.po}/excluded-changes/README + fi + else + mkdir -p $WORK_DIR/po-review/${PO%.po}/changes + cp -a ${PO%.po}-fixes-clean.po $WORK_DIR/po-review/${PO%.po}/changes/$DOMAIN.po + cp -a ${PO%.po}-fixes-review.po $WORK_DIR/po-review/${PO%.po}/changes/$DOMAIN-review.po + rmdir --ignore-fail-on-non-empty --parents $WORK_DIR/po-review/${PO%.po}/changes + fi + fi + fi else - # step 1: Merge new po and previous updates (if any). - if test -f ${PO%.po}-updates.po ; then - msgcat --force-po --use-first ${PO%.po}-backport.po $RPMPODIR/${PO%.po}-updates.po -o ${PO%.po}-updates.po~ - mv ${PO%.po}-updates.po~ ${PO%.po}-updates.po - else - cp -a ${PO%.po}-backport.po ${PO%.po}-updates.po + # If backport was empty, no file was generated. + if test -f ${PO%.po}-backport.po ; then + # step 1: Merge new po and previous updates (if any). + sed -i '/#~/d' ${PO%.po}-backport.po + if test -f ${PO%.po}-updates.po ; then + msgcat --force-po --use-first ${PO%.po}-backport.po $RPMPODIR/${PO%.po}-updates.po -o ${PO%.po}-updates.po~ + mv ${PO%.po}-updates.po~ ${PO%.po}-updates.po + else + # To get surely a valid po file, use msgcat instead of cp. + msgcat ${PO%.po}-backport.po -o ${PO%.po}-updates.po + fi + # step 2: Prepare texts for review. + mkdir -p $WORK_DIR/po-review/${PO%.po}/new-files + cp -a ${PO%.po}-updates.po $WORK_DIR/po-review/${PO%.po}/new-files/$DOMAIN.po + rmdir --ignore-fail-on-non-empty --parents $WORK_DIR/po-review/${PO%.po}/new-files fi fi done @@ -377,7 +465,7 @@ tar -j -c -f $WORK_DIR/translation-update-upstream-$SNAPSHOT.tar.bz2 po cd $WORK_DIR if ! $DEBUG ; then - rm -rf UPSTREAM PACKAGES UPDATE UPDATE_OLD STAMPS BIN + rm -rf UPSTREAM OSC PACKAGES UPDATE UPDATE_OLD STAMPS BIN fi rm -rf ~/.upstream-collect.tmp diff --git a/upstream-gnome-generic.tlst b/upstream-gnome-generic.tlst index 85a763c..1b0093a 100644 --- a/upstream-gnome-generic.tlst +++ b/upstream-gnome-generic.tlst @@ -4,4 +4,3 @@ gstreamer-0_10-plugins-base gst-plugins-base-0.10 cgit git://anongit.freedes gstreamer-0_10-plugins-good gst-plugins-good-0.10 cgit git://anongit.freedesktop.org/gstreamer/gst-plugins-good gst-plugins-good/po gstreamer-0_10-plugins-bad gst-plugins-bad-0.10 cgit git://anongit.freedesktop.org/gstreamer/gst-plugins-bad gst-plugins-bad/po gstreamer-0_10-plugins-ugly gst-plugins-ugly-0.10 cgit git://anongit.freedesktop.org/gstreamer/gst-plugins-ugly gst-plugins-ugly/po -pidgin pidgin tbz http://downloads.sourceforge.net/pidgin/pidgin-2.6.3.tar.bz2 pidgin-2.6.3/po diff --git a/upstream-gnome_gtp.tlst b/upstream-gnome_gtp.tlst index 0aef0ad..19b4b55 100644 --- a/upstream-gnome_gtp.tlst +++ b/upstream-gnome_gtp.tlst @@ -1,3 +1,4 @@ +# Manually added new items on Fri Jan 8 17:31:43 CET 2010. # This file was generated Tue Oct 27 15:31:01 CET 2009 by create-tlst-step2-create-gnome_gtp.sh. # package domain method repository dir branch NetworkManager NetworkManager gtp l10n.gnome.org/POT NetworkManager/po @@ -27,6 +28,7 @@ conduit conduit gtp l10n.gnome.org/POT # broken: #conglomerate conglomerate gtp l10n.gnome.org/POT conglomerate/po contact-lookup-applet contact-lookup-applet gtp l10n.gnome.org/POT contact-lookup-applet/po +dasher dasher gtp l10n.gnome.org/POT dasher/po gnome-2-28 dasher dasher gtp l10n.gnome.org/POT dasher/po deskbar-applet deskbar-applet gtp l10n.gnome.org/POT deskbar-applet/po devhelp devhelp gtp l10n.gnome.org/POT devhelp/po gnome-2-28 @@ -61,6 +63,7 @@ gcalctool gcalctool gtp l10n.gnome.org/POT gconf-editor gconf-editor gtp l10n.gnome.org/POT gconf-editor/po gnome-2-28 gconf-editor gconf-editor gtp l10n.gnome.org/POT gconf-editor/po gconf2 GConf2 gtp l10n.gnome.org/POT gconf/po gnome-2-28 +gconf2 GConf2 gtp l10n.gnome.org/POT gconf/po gdl gdl-1 gtp l10n.gnome.org/POT gdl/po gnome-2-28 gdl gdl-1 gtp l10n.gnome.org/POT gdl/po gdm gdm gtp l10n.gnome.org/POT gdm/po gnome-2-28 @@ -95,11 +98,13 @@ gnome-bluetooth gnome-bluetooth2 gtp l10n.gnome.org/POT gnome-commander gnome-commander gtp l10n.gnome.org/POT gnome-commander/po gnome-control-center gnome-control-center-2.0 gtp l10n.gnome.org/POT gnome-control-center/po gnome-2-28 gnome-control-center gnome-control-center-2.0 gtp l10n.gnome.org/POT gnome-control-center/po +gnome-desktop gnome-desktop-2.0 gtp l10n.gnome.org/POT gnome-desktop/po gnome-2-28 gnome-desktop gnome-desktop-2.0 gtp l10n.gnome.org/POT gnome-desktop/po gnome-doc-utils gnome-doc-utils gtp l10n.gnome.org/POT gnome-doc-utils/po gnome-2-28 gnome-doc-utils gnome-doc-utils gtp l10n.gnome.org/POT gnome-doc-utils/po gnome-games gnome-games gtp l10n.gnome.org/POT gnome-games/po gnome-2-28 gnome-games gnome-games gtp l10n.gnome.org/POT gnome-games/po +gnome-keyring gnome-keyring gtp l10n.gnome.org/POT gnome-keyring/po gnome-2-28 gnome-keyring gnome-keyring gtp l10n.gnome.org/POT gnome-keyring/po gnome-mag gnome-mag gtp l10n.gnome.org/POT gnome-mag/po gnome-2-28 gnome-mag gnome-mag gtp l10n.gnome.org/POT gnome-mag/po @@ -115,8 +120,10 @@ gnome-pilot gnome-pilot gtp l10n.gnome.org/POT 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-2-28 gnome-power-manager gnome-power-manager gtp l10n.gnome.org/POT gnome-power-manager/po +gnome-screensaver gnome-screensaver gtp l10n.gnome.org/POT gnome-screensaver/po gnome-2-28 gnome-screensaver gnome-screensaver gtp l10n.gnome.org/POT gnome-screensaver/po gnome-session gnome-session-2.0 gtp l10n.gnome.org/POT gnome-session/po +gnome-settings-daemon gnome-settings-daemon gtp l10n.gnome.org/POT gnome-settings-daemon/po gnome-2-28 gnome-settings-daemon gnome-settings-daemon gtp l10n.gnome.org/POT gnome-settings-daemon/po gnome-shell gnome-shell gtp l10n.gnome.org/POT gnome-shell/po gnome-system-monitor gnome-system-monitor gtp l10n.gnome.org/POT gnome-system-monitor/po @@ -164,6 +171,7 @@ libbonobo libbonobo-2.0 gtp l10n.gnome.org/POT libbonoboui libbonoboui-2.0 gtp l10n.gnome.org/POT libbonoboui/po libgda libgda-4.0 gtp l10n.gnome.org/POT libgda/po libgdata gdata gtp l10n.gnome.org/POT libgdata/po +libgnome libgnome-2.0 gtp l10n.gnome.org/POT libgnome/po gnome-2-28 libgnome libgnome-2.0 gtp l10n.gnome.org/POT libgnome/po libgnomecanvas libgnomecanvas-2.0 gtp l10n.gnome.org/POT libgnomecanvas/po libgnomecups libgnomecups gtp l10n.gnome.org/POT libgnomecups/po @@ -174,6 +182,7 @@ libgnomeprintui libgnomeprintui-2.2 gtp l10n.gnome.org/POT libgnomeui libgnomeui-2.0 gtp l10n.gnome.org/POT libgnomeui/po libgsf libgsf gtp l10n.gnome.org/POT libgsf/po libgtop libgtop-2.0 gtp l10n.gnome.org/POT libgtop/po +libgweather libgweather gtp l10n.gnome.org/POT libgweather/po gnome-2-28 libgweather libgweather gtp l10n.gnome.org/POT libgweather/po libslab libslab gtp l10n.gnome.org/POT libslab/po libwnck libwnck gtp l10n.gnome.org/POT libwnck/po @@ -201,6 +210,7 @@ pybliographer pybliographer gtp l10n.gnome.org/POT rhythmbox rhythmbox gtp l10n.gnome.org/POT rhythmbox/po sabayon sabayon gtp l10n.gnome.org/POT sabayon/po gnome-2-28 sabayon sabayon gtp l10n.gnome.org/POT sabayon/po +seahorse seahorse gtp l10n.gnome.org/POT seahorse/po gnome-2-28 seahorse seahorse gtp l10n.gnome.org/POT seahorse/po seahorse-plugins seahorse-plugins gtp l10n.gnome.org/POT seahorse-plugins/po shared-mime-info shared-mime-info gtp l10n.gnome.org/POT shared-mime-info/po @@ -220,6 +230,7 @@ xchat-gnome xchat-gnome gtp l10n.gnome.org/POT 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-2-28 yelp yelp gtp l10n.gnome.org/POT yelp/po zenity zenity gtp l10n.gnome.org/POT zenity/po gnome-2-28 zenity zenity gtp l10n.gnome.org/POT zenity/po