Dominique Leuenberger 2020-06-11 12:39:08 +00:00 committed by Git OBS Bridge
commit 2bf463815c
18 changed files with 397 additions and 128 deletions

View File

@ -9,8 +9,8 @@ set -o errexit
source ${0%create-tlst-step1-list-all-po-projects.sh}create-tlst.conf
for i in $BINARY_REPO/*/{$BINARY_ARCH,noarch}/*.rpm ; do rpm -q --queryformat=%{name} -p $i ; echo : ; rpm -qlp $i | grep LC_MESSAGES || : ; done |
sed "s~^$BINARY_REPO/suse/($BINARY_ARCH|noarch)~~" >create-tlst-temp-all-po-files.lst
for i in $BINARY_REPO/{$BINARY_ARCH,noarch}/*.rpm ; do rpm -q --queryformat=%{name} -p $i ; echo : ; rpm -qlp $i | grep LC_MESSAGES || : ; done |
sed "s~^$BINARY_REPO/($BINARY_ARCH|noarch)~~" >create-tlst-temp-all-po-files.lst
cat create-tlst-temp-all-po-files.lst |
sed '

View File

@ -17,10 +17,10 @@ for REPOSITORY in ${OSC_REPOSITORIES[@]} ; do
done | sort -u >create-tlst-temp-osc-projects.lst
# branches tried for all apps:
KNOWN_BRANCHES="gnome-3-30|gnome-3-26"
KNOWN_BRANCHES="gnome-3-34|gnome-3-36"
# branches tried apps with the same name base:
# Do not forget hardcoded strings in the code below!
APP_BRANCHES="gimp-2-10|gimp-2-8|gtk-3-24|gtk-3-22|gtk-2-24|glib-2-54"
APP_BRANCHES="|gimp-2-8|gimp-2-10|gtk-3-22|gtk-3-24|gtk-2-24|glib-2.62|glib-2.64"
# 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
@ -53,23 +53,19 @@ curl https://l10n.gnome.org/POT/ | sed -n 's:^.*href="\([^"]*\)/".*$:\1:p' | sed
for LBRANCH in $KNOWN_BRANCHES master ; do
echo gconf gconf2 GConf2 $LBRANCH
done
echo glib glib2 glib20 glib-2-54
echo glib glib2 glib20 glib-2-62
echo glib glib2 glib20 glib-2-64
echo glib glib2 glib20 master
echo gtk+ gtk2 gtk20 gtk-2-24
echo gtk+ gtk2 gtk20 master
echo gtk+ gtk2 gtk20-properties gtk-2-24
echo gtk+ gtk2 gtk20-properties master
echo gtk+ gtk3 gtk30 gtk-3-24
echo gtk+ gtk3 gtk30 gtk-3-22
echo gtk+ gtk3 gtk30 master
echo gtk+ gtk3 gtk30-properties gtk-3-24
echo gtk+ gtk3 gtk30-properties gtk-3-22
echo gtk+ gtk3 gtk30-properties master
echo libgweather libgweather libgweather-locations gnome-3-30
echo libgweather libgweather libgweather-locations gnome-3-26
echo libgweather libgweather libgweather-locations master
echo gnome-phone-manager phonemgr gnome-phone-manager gnome-3-30
echo gnome-phone-manager phonemgr gnome-phone-manager gnome-3-26
echo gnome-phone-manager phonemgr gnome-phone-manager gnome-3-34
echo gnome-phone-manager phonemgr gnome-phone-manager gnome-3-36
echo gnome-phone-manager phonemgr gnome-phone-manager master
echo network-manager-applet NetworkManager-gnome nm-applet master
echo udisks udisks2 udisks2 master

View File

@ -3,4 +3,4 @@
ibus ibus10 git https://github.com/ibus/ibus.git ibus/po
eiciel eiciel git https://github.com/rofirrim/eiciel.git eiciel/po
libgnomesu libgnomesu-1.0 git https://github.com/openSUSE/libgnomesu.git libgnomesu/po
virt-manager virt-manager git https://github.com/virt-manager/virt-manager.git virt-manager/po
#UNSUPPORTED-POT: virt-manager virt-manager git https://github.com/virt-manager/virt-manager.git virt-manager/po

View File

@ -2,4 +2,4 @@
#NOT-IN-SLE: NetworkManager-vpnc NetworkManager-vpnc lcn - NetworkManager-vpnc/po SLE12-SP4
#NOT-IN-SLE: krb5-ticket-watcher krb5-ticket-watcher lcn - krb5-ticket-watcher/po SLE12-SP4
libgnomesu libgnomesu-1.0 lcn - libgnomesu/po SLE12-SP4
linuxrc linuxrc lcn - linuxrc/po SLE12-SP4
#LOST-I18N-SUPPORT: linuxrc linuxrc lcn - linuxrc/po SLE12-SP4

View File

@ -2,9 +2,9 @@
# Already latest version:
#pidgin pidgin tbz http://downloads.sourceforge.net/pidgin/pidgin-2.13.0.tar.bz2 pidgin-2.13.0/po
pam Linux-PAM git https://github.com/linux-pam/linux-pam.git linux-pam/po
firewalld firewalld git https://github.com/firewalld/firewalld.git firewalld/po
virt-manager virt-manager git https://github.com/virt-manager/virt-manager.git virt-manager/po
eiciel eiciel git https://github.com/rofirrim/eiciel.git eiciel/po
#BROKEN: firewalld firewalld git https://github.com/firewalld/firewalld.git firewalld/po
#DUP: virt-manager virt-manager git https://github.com/virt-manager/virt-manager.git virt-manager/po
#DUP: eiciel eiciel git https://github.com/rofirrim/eiciel.git eiciel/po
# package domain method repository dir branch
pam Linux-PAM cvs pam.cvs.sourceforge.net:/cvsroot/pam Linux-PAM/po
# Already latest version, and will probably never update:

View File

@ -1,6 +1,6 @@
# package domain method repository dir branch option
cracklib cracklib lcn - cracklib/po
gnome-packagekit gnome-packagekit lcn - gnome-packagekit/po
linuxrc linuxrc lcn - linuxrc/po
#LOST-I18N-SUPPORT: linuxrc linuxrc lcn - linuxrc/po
pam-config pam-config lcn - pam-config/po
pam_krb5 pam_krb5 lcn - pam_krb5/po

View File

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

BIN
translation-update-mandatory-20200601.tar.bz2 (Stored with Git LFS) Normal file

Binary file not shown.

View File

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

BIN
translation-update-upstream-20200601.tar.bz2 (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,14 +1,14 @@
--- translation-update-upstream-embedded.sh 2018-12-10 22:58:17.369805285 +0100
+++ translation-update-upstream-embedded.sh 2018-12-10 23:01:32.309607787 +0100
@@ -74,6 +74,7 @@
fi
--- translation-update-upstream-embedded.sh 2020-01-22 22:19:22.911348880 +0100
+++ translation-update-upstream-embedded.sh 2020-01-22 22:39:26.134577525 +0100
@@ -85,6 +85,7 @@
USE_INTLTOOL=true
fi
fi
+BASE_DIR=$PWD
DIR=${1:-po}
if test -z "$3" ; then
@@ -202,7 +203,7 @@
@@ -259,7 +260,7 @@
echo "WARNING: Missing $DOMAIN in translation-update-upstream configuration! No updates available."
fi
else

View File

@ -27,7 +27,8 @@ mkdir\
TRANSLATION_UPDATE TRANSLATION_UPDATE/translation-update TRANSLATION_UPDATE/TUU\
TRANSLATION_UPDATE/NOT_UPDATED \
TRANSLATION_UPDATE/UPDATED \
TRANSLATION_UPDATE/complete TRANSLATION_UPDATE/rebuilt
TRANSLATION_UPDATE/complete TRANSLATION_UPDATE/rebuilt \
TRANSLATION_UPDATE/complete/translation-update TRANSLATION_UPDATE/rebuilt/translation-update
# more tarballs are available => use the latest one
# FIXME: Fix 20090213.10 < 20090213.9

View File

@ -1,3 +1,46 @@
-------------------------------------------------------------------
Tue Mar 10 14:37:34 CET 2020 - sbrabec@suse.com
- Reset outdated translations and turn translate-update-upstream
into dummy (bsc#1172337, boo#1172367).
- Drop SLE / Leap discrimination code.
- translation-update-upstream.in:
* Disable msgmerge. Never cause translation regression, even at
cost of superfluous strings (bsc#1160114).
* Implement new heuristic: use xgettext. Make it the default
(bsc#1160114).
* translation-update-upstream-embedded.patch: Update.
- upstream-collect.sh supplementary script: Port
translation-update-upstream.in changes.
-------------------------------------------------------------------
Tue Nov 5 18:49:52 CET 2019 - sbrabec@suse.com
- upstream-collect.sh supplementary script: Port meson support to
the fallback pot extractor (bsc#1095368#c9).
- upstream-collect.sh, upstream-collect.conf supplementary script:
Evaluate %is_opensuse for target system instead of host
(bsc#1095368#c8).
-------------------------------------------------------------------
Wed Oct 2 02:48:55 CEST 2019 - sbrabec@suse.com
- Update to version 20191002 (bsc#1095361, bsc#1095364,
bsc#1095368, bsc#1095371, bsc#1095377, bsc#1095379):
* Update configuration to be SLE15 SP1 Update compatible.
* Add new upstream branches to tlst files.
* Update create-tlst-step2-create-gnome_gtp.sh to cover new
upstream branches.
* Update all strings from upstream and LCN.
- upstream-collect.sh supplementary script: Make paths compatible
with Tumbleweed.
-------------------------------------------------------------------
Fri Mar 29 00:41:19 CET 2019 - sbrabec@suse.com
- Update to version 20190328:
* Translation updates.
-------------------------------------------------------------------
Mon Dec 10 22:58:25 CET 2018 - sbrabec@suse.com

View File

@ -1,5 +1,8 @@
#! /bin/bash
echo "No translation-update-upstream data available. Keeping existing translation."
exit 0
set -o errexit
shopt -s nullglob
@ -74,6 +77,17 @@ if test -f meson.build -a ! \( -f ${1:-po}/Makefile.in.in -o -f ${1:-po}/Makefil
fi
fi
fi
USE_INTLTOOL=false
if test -f configure.ac ; then
if grep PROG_INTLTOOL configure.ac ; then
USE_INTLTOOL=true
fi
fi
if test -f configure.in ; then
if grep PROG_INTLTOOL configure.in ; then
USE_INTLTOOL=true
fi
fi
DIR=${1:-po}
if test -z "$3" ; then
@ -107,10 +121,27 @@ if test -z "$3" ; then
cd $DIR
else
cd $DIR
if test -z "$DOMAIN" ; then
intltool-update --pot
if $USE_INTLTOOL ; then
if test -z "$DOMAIN" ; then
intltool-update --pot
else
intltool-update --gettext-package=$DOMAIN --pot
fi
else
intltool-update --gettext-package=$DOMAIN --pot
# Fallback: use xgettext with default options except those that we
# cannot guess (it can stil fail, as options can be customized).
if test -z "$DOMAIN" ; then
## Ugly hack! intltool could return invalid po, but its
## FindPackageName() can guess domain. Call it to get it.
intltool-update --pot
for POT in *.pot ; do
DOMAIN=${POT%.pot}
done
fi
xgettext --default-domain="$DOMAIN" --directory="$OLDPWD" \
--add-comments=TRANSLATORS: --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments \
--files-from=./POTFILES.in
mv "$DOMAIN.po" "$DOMAIN.pot"
fi
fi
else
@ -151,13 +182,29 @@ for POT in *.pot ; do
# Swap $PO_PATH and $PO to disable this behavior.
msgcat --use-first $PO_PATH $PO -o $PO.new
# Return .po file notes that are not present in the update file.
msgmerge --no-fuzzy-matching --compendium=$PO_PATH -o $PO.new2 $PO.new $POT
## In theory, we should call msgmerge here, as the
## imported file might be outdated. But we have to live
## with the fact that the pot file heuristic above
## might be incorrect, and the generated pot file is
## incomplete. Never make things worse, and skip
## msgmerge. Superfluous strings are better than
## deleted strings.
## In time of writing the priginal code, --compendium
## worked around the fact that msgcat prefers empty
## string from the first file over translated string
## from the second file. Now msgcat behaves logically,
## so this step is not needed.
#msgmerge --no-fuzzy-matching --compendium=$PO_PATH -o $PO.new2 $PO.new $POT
# And finally, synthesize header that not change every time.
if @LIBEXECDIR@/translation-update-upstream/msgheadermerge $PO $PO.new2 $PO.header --mergemode ; then
msgcat --use-first $PO.header $PO.new2 -o $PO
rm $PO.new $PO.new2 $PO.header
#if @LIBEXECDIR@/translation-update-upstream/msgheadermerge $PO $PO.new2 $PO.header --mergemode ; then
if @LIBEXECDIR@/translation-update-upstream/msgheadermerge $PO $PO.new $PO.header --mergemode ; then
#msgcat --use-first $PO.header $PO.new2 -o $PO
msgcat --use-first $PO.header -o $PO
#rm $PO.new $PO.new2 $PO.header
rm $PO.new $PO.header
else
rm $PO.new $PO.new2
#rm $PO.new $PO.new2
rm $PO.new
echo "WARNING: Update of $PO for $DOMAIN is older than data in package. Skipping."
fi
else
@ -183,13 +230,28 @@ for POT in *.pot ; do
# Swap $PO_PATH and $PO to disable this behavior.
msgcat --use-first $PO_PATH $PO -o $PO.new
# Return .po file notes that are not present in the update file.
msgmerge --no-fuzzy-matching --compendium=$PO_PATH -o $PO.new2 $PO.new $POT
## In theory, we should call msgmerge here, as the
## imported file might be outdated. But we have to live
## with the fact that the pot file heuristic above
## might be incorrect, and the generated pot file is
## incomplete. Never make things worse, and skip
## msgmerge. Superfluous strings are better than
## deleted strings.
## In time of writing the priginal code, --compendium
## worked around the fact that msgcat prefers empty
## string from the first file over translated string
## from the second file. Now msgcat behaves logically,
## so this step is not needed.
#msgmerge --no-fuzzy-matching --compendium=$PO_PATH -o $PO.new2 $PO.new $POT
# And finally, synthesize header that not change every time.
if ! @LIBEXECDIR@/translation-update-upstream/msgheadermerge $PO $PO.new2 $PO.header --mergemode --continue ; then
#if ! @LIBEXECDIR@/translation-update-upstream/msgheadermerge $PO $PO.new2 $PO.header --mergemode --continue ; then
if ! @LIBEXECDIR@/translation-update-upstream/msgheadermerge $PO $PO.new $PO.header --mergemode --continue ; then
echo "WARNING: Mandatory update of $PO for $DOMAIN is older than data in package or upstream snapshot. Using anyway!"
fi
msgcat --use-first $PO.header $PO.new2 -o $PO
rm $PO.new $PO.new2 $PO.header
#msgcat --use-first $PO.header $PO.new2 -o $PO
msgcat --use-first $PO.header $PO.new -o $PO
#rm $PO.new $PO.new2 $PO.header
rm $PO.new $PO.header
else
echo "Adding $PO from translation-update-upstream mandatory source."
cp -a $PO_PATH $PO

View File

@ -1,7 +1,7 @@
#
# spec file for package translation-update-upstream
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2020 SUSE LLC
#
# 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: 20181128
Version: 20200601
Release: 0
Summary: Tool for Translation Update from Upstream
# Ignore cracklib, as it causes build loop cracklib <-> translation-update-upstream
@ -93,10 +93,7 @@ sed 's/@LIBEXECDIR@/\$BASE_DIR/g;s:@DATADIR@/translation-update-upstream:\$BASE_
chmod +x translation-update-upstream-embedded.sh
%build
%if ! 0%{?is_opensuse}
echo "This is a openSUSE only package! Please use SLE version."
exit 1
%endif
. %{_sourcedir}/upstream-collect.conf
%install
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name} $RPM_BUILD_ROOT%{_prefix}/lib/translation-update-upstream
@ -137,7 +134,7 @@ set +x
cd $RPM_BUILD_ROOT%{_datadir} ;
echo translation*/*/*.po | sed 's:.*/::;s:\.po$::' | sort -u
for LOCALE in $(set +x ; cd $RPM_BUILD_ROOT%{_datadir} ; ls -1 translation*/*/*/*.po | sed 's:.*/::;s:\.po$::' | sort -u) ; do
if ! test -d /usr/share/locale/$LOCALE ; then
if ! test -d /usr/share/locale/$LOCALE ; then
for file in $RPM_BUILD_ROOT%{_datadir}/translation*/*/*/$LOCALE.po; do
# fake it so it looks like removed from %%find_lang
package=$(echo $file | sed -e 's,.*translation[^/]*/po/,,; s,/[^/]*.po,,')

View File

@ -6,11 +6,11 @@
# - proposed-translation-fixes repository with yet unreleased changes (if exists; such repo allows us to create a tarball update for translation-update package without rebuild)
# - latest patchlevel packages sources (if exists)
# - the original gold master (GA) package sources
OSC_REPOSITORIES=( openSUSE:Factory )
OSC_REPOSITORIES=( openSUSE:Leap:15.2 openSUSE:Leap:15.1:Update openSUSE:Leap:15.1 openSUSE:Leap:15.0:Update openSUSE:Leap:15.0 )
# OSC_REPOSITORIES array index of the main (fully rebuilt with current translation-update-upstream) repository (starts with 0).
# It is typically 0 for Factory based products, 1 for products where 0 is a proposed-translation-fixes repo, 2 for products which are not fully rebuilt before release where 1 represents patchlevel repository.
OSC_MAIN_INDEX=0
OSC_MAIN_INDEX=4
# OSC_REPOSITORIES array index of the repository with proposed translation updates that don't appear in the main product (starts with 0). Keep empty if there is no such repository.
# It is typically empty for Factory based products, otherwise it points to an unreleased proposed-translation-fixes repository with index 0.

View File

@ -22,6 +22,9 @@ WORK_DIR=$PWD
set -o errexit
shopt -s nullglob
rpm -q obs-service-tar >/dev/null
rpm -q obs-service-recompress >/dev/null
source ${0%.sh}.conf
function get_pot_name {
@ -76,8 +79,19 @@ EOF
# Modify some requirements to work without relevant packages installed.
s/%{xulrunner_version}/dummy/g
s/%{mozilla_ver}/dummy/g
s/%{glib2_gsettings_schema_requires}/Requires: dummy/g
s/%glib2_gsettings_schema_requires/Requires: dummy/g
s/%{gtk2_immodule_requires}/Requires: dummy/g
s/%{gtk3_immodule_requires}/Requires: dummy/g
s/%{py_requires}/Requires: dummy/g
s/%py_requires/Requires: dummy/g
s/%kde4_runtime_requires/Requires: dummy/g
s/%systemd_requires/Requires: dummy/g
s/%gconf_schemas_prereq/Requires: dummy/g
s/%{gconf_schemas_prereq}/Requires: dummy/g
s/%glib2_gio_module_requires/Requires: dummy/g
s/%{glib2_gio_module_requires}/Requires: dummy/g
s/%{_bluezVersion}/0/g
' *.spec
eval rpmbuild --macros=/usr/lib/rpm/macros:/usr/lib/rpm/suse_macros:/usr/lib/rpm/suse/macros:/usr/lib/rpm/macros.d/macros.systemd:/usr/lib/rpm/platform/$(uname -i)-linux/macros:/etc/rpm/\\\*:$RPMDIR/macros --nodeps -bp ${*:-*.spec}
rm -rf $RPMDIR
@ -117,20 +131,45 @@ mkdir -p ~/.upstream-collect.tmp
cat >~/.upstream-collect.tmp/translation-update-upstream <<EOF
#!/bin/sh
echo "Dummy translation-update-upstream for upstream-collect.sh. Skipping merge of old translations."
DOMAIN=\$2
USE_MESON=false
if test -f meson.build -a ! \( -f \${1:-po}/Makefile.in.in -o -f \${1:-po}/Makefile.in -o -f \${1:-po}/Makefile \); then
echo "Switching to meson style pot file extraction."
if test -n "\$2" ; then
DOMAIN="\$2"
else
if test -f meson.build -a ! \( -f \${1:-po}/Makefile.in.in -o -f \${1:-po}/Makefile.in -o -f \${1:-po}/Makefile \) ; then
echo "Switching to meson style pot file extraction." >&2
USE_MESON=true
if test -z "\$DOMAIN" ; then
MESON_PROJECT="\$(sed -n "/^project(/,+1{1{h;d};2{x;G}};s/^project[[:space:]]*([[:space:]]*'\([^']*\)'.*/\1/p" <meson.build)"
DOMAIN="\$(sed -n "s/meson.project_name[[:space:]]*([[:space:]]*)/'\$MESON_PROJECT'/g;s/.*\\\\.set_quoted[[:space:]]*('GETTEXT_PACKAGE',[[:space:]]'\([^']*\)').*/\1/p" <meson.build)"
DOMAIN="\$(sed -n "s/meson.project_name[[:space:]]*([[:space:]]*)/'\$MESON_PROJECT'/g;s/.*\.set_quoted[[:space:]]*('GETTEXT_PACKAGE',[[:space:]]'\([^']*\)').*/\1/p" <meson.build)"
if test -z "\$DOMAIN" ; then
if ! grep -q GETTEXT_PACKAGE meson.build ; then
DOMAIN="\$MESON_PROJECT"
else
echo "Error: Gettext domain cannot be determined." >&2
exit 1
fi
fi
fi
if test -f \${1:-po}/POTFILES ; then
POTFILES="\$PWD/\${1:-po}/POTFILES"
else
POTFILES="\$PWD/\${1:-po}/POTFILES.in"
fi
USE_INTLTOOL=false
if test -f configure.ac ; then
if grep PROG_INTLTOOL configure.ac ; then
USE_INTLTOOL=true
fi
fi
if test -f configure.in ; then
if grep PROG_INTLTOOL configure.in ; then
USE_INTLTOOL=true
fi
fi
DIR=\${1:-po}
if test -z "\$3" ; then
if \$USE_MESON ; then
if test -f POTFILES ; then
POTFILES="\$PWD/\${1:-po}/POTFILES"
else
POTFILES="\$PWD/\${1:-po}/POTFILES.in"
fi
echo "cd \\"\$PWD\\"
xgettext --package-name=\\"\$DOMAIN\\"\\\\
-p \\"\$PWD\\"\\\\
@ -155,8 +194,34 @@ xgettext --package-name=\\"\$DOMAIN\\"\\\\
--keyword=g_dpgettext2:2c,3\\\\
--keyword=_\\\\
--keyword=g_dcgettext:2" >\${1:-po}/.translation-update-upstream-implemented
else
if \$USE_INTLTOOL ; then
if test -z "\$DOMAIN" ; then
echo "intltool-update --pot" >\${1:-po}/.translation-update-upstream-implemented
else
intltool-update --gettext-package=\$DOMAIN --pot
echo "intltool-update --gettext-package=\$DOMAIN --pot" >\${1:-po}/.translation-update-upstream-implemented
fi
else
# Fallback: use xgettext with default options except those that we
# cannot guess (it can stil fail, as options can be customized).
echo "cd \\"\$DIR\\"
if test -z \\"\$DOMAIN\\" ; then
## Ugly hack! intltool could return invalid po, but its
## FindPackageName() can guess domain. Call it to get it.
intltool-update --pot
for POT in *.pot ; do
DOMAIN=\\\${POT%.pot}
done
fi
xgettext --default-domain=\\"\$DOMAIN\\" --directory=\\"\$OLDPWD\\" \\\\
--add-comments=TRANSLATORS: --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments \\\\
--files-from=./POTFILES.in
mv \\"\\\$DOMAIN.po\\" \\"\\\$DOMAIN.pot\\"" >\${1:-po}/.translation-update-upstream-implemented
fi
fi
else
echo \${3:-intltool-update\${2+ --gettext-package=\$2} --pot} >\${1:-po}/.translation-update-upstream-implemented
echo \$3 >\${1:-po}/.translation-update-upstream-implemented
fi
cd \${1:-po}
# Generate and save a copy of the pot file now and compare later.
@ -310,6 +375,15 @@ for TLST in *.tlst ; do
echo "Trying to check-out PACKAGES $PACKAGE from $OSC_REPOSITORY..."
# FIXME: When obs-service-download_url appears in Factory, use --source-service-files
if osc ${OSC_APIURL:+--apiurl=$OSC_APIURL} checkout --server-side-source-service-files --expand-link $OSC_REPOSITORY $PACKAGE >gnome-patch-translation-collect-tmp.log 2>&1 ; then
cd $OSC_REPOSITORY/$PACKAGE
if test -f _service ; then
for FILE in *.obscpio ; do
cpio -d -i <$FILE
done
sed -i '/<service .*mode="disabled"\(\|.*[^\/]\)>/,/<\/service>/d;/<service .*mode="disabled".*\/>/d;s/mode="buildtime"//' _service
osc service runall
fi
cd "$OLDPWD"
mv $OSC_REPOSITORY/$PACKAGE $WORK_DIR/PACKAGES/
for FILE in $WORK_DIR/PACKAGES/$PACKAGE/_service\:download_url\:* ; do
mv "$FILE" "${FILE/_service:download_url:/}"
@ -383,19 +457,89 @@ for TLST in *.tlst ; do
else
echo "$RPMPODIR: Missing or incorrect translation-update-upstream in the spec file."
# translation-update-upstream is implemented, try the default with the upstream domain:
if intltool-update --gettext-package=$DOMAIN --pot ; then
get_pot_name
cd ..
RC=0
if test -f meson.build -a ! \( -f po/Makefile.in.in -o -f po/Makefile.in -o -f po/Makefile \); then
echo "Switching to meson style pot file extraction."
MESON_PROJECT="$(sed -n "/^project(/,+1{1{h;d};2{x;G}};s/^project[[:space:]]*([[:space:]]*'\([^']*\)'.*/\1/p" <meson.build)"
DOMAIN="$(sed -n "s/meson.project_name[[:space:]]*([[:space:]]*)/'$MESON_PROJECT'/g;s/.*\\.set_quoted[[:space:]]*('GETTEXT_PACKAGE',[[:space:]]'\([^']*\)').*/\1/p" <meson.build)"
if test -f po/POTFILES ; then
POTFILES="$PWD/po/POTFILES"
else
POTFILES="$PWD/po/POTFILES.in"
fi
xgettext --package-name="$DOMAIN"\
-p "$PWD"\
-f "$POTFILES"\
-D "$PWD"\
-k_ -o "$PWD/po/$DOMAIN.pot"\
--keyword=NC_:1c,2\
--flag=g_strdup_printf:1:c-format\
--flag=g_set_error:4:c-format\
--flag=g_dngettext:2:pass-c-format\
--flag=g_string_printf:2:c-format\
--add-comments\
--from-code=UTF-8\
--keyword=C_:1c,2\
--flag=N_:1:pass-c-format\
--flag=g_string_append_printf:2:c-format\
--flag=C_:2:pass-c-format\
--keyword=N_\
--flag=g_error_new:3:c-format\
--flag=NC_:2:pass-c-format\
--keyword=g_dngettext:2,3\
--keyword=g_dpgettext2:2c,3\
--keyword=_\
--keyword=g_dcgettext:2
RC=$?
cd -
else
cd -
USE_INTLTOOL=false
if test -f configure.ac ; then
if grep PROG_INTLTOOL configure.ac ; then
USE_INTLTOOL=true
fi
fi
if test -f configure.in ; then
if grep PROG_INTLTOOL configure.in ; then
USE_INTLTOOL=true
fi
fi
if $USE_INTLTOOL ; then
if test -z "$DOMAIN" ; then
intltool-update --pot
else
intltool-update --gettext-package=$DOMAIN --pot
fi
else
# Fallback: use xgettext with default options except those that we
# cannot guess (it can stil fail, as options can be customized).
if test -z "$DOMAIN" ; then
## Ugly hack! intltool could return invalid po, but its
## FindPackageName() can guess domain. Call it to get it.
if ! intltool-update --pot ; then
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__}
# However we cannot do anything, build dir is successfully processed.
touch $WORK_DIR/STAMPS/$PACKAGE/.builddir_ok
continue
fi
for POT in *.pot ; do
DOMAIN=${POT%.pot}
done
fi
xgettext --default-domain="$DOMAIN" --directory="$OLDPWD" \
--add-comments=TRANSLATORS: --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments \
--files-from=./POTFILES.in
mv "$DOMAIN.po" "$DOMAIN.pot"
fi
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__}
# However we cannot do anything, build dir is successfully processed.
touch $WORK_DIR/STAMPS/$PACKAGE/.builddir_ok
continue
fi
fi
@ -440,10 +584,10 @@ for TLST in *.tlst ; do
cgit )
# Some tricks to be able to recycle git:// URI
CGIT_URI=$REPO
CGIT_URI=${CGIT_URI/git:\/\/anongit./http://cgit.}
CGIT_URI=${CGIT_URI/git:\/\//http://}
CGIT_URI=${CGIT_URI/git:\/\/anongit./https://cgit.}
CGIT_URI=${CGIT_URI/git:\/\//https://}
CGIT_BRANCH=${BRANCH:+?id=$BRANCH}
CGIT_SERVER=${CGIT_URI#http://}
CGIT_SERVER=${CGIT_URI#https://}
CGIT_SERVER=${CGIT_SERVER%%/*}
curl $CGIT_URI/tree/${REPODIR#*/}$CGIT_BRANCH | sed -n 's:^.*class='\''ls-blob[^'\'']*'\'' href='\''\([^'\'']*\)'\''.*$:\1:p' |
while read ; do

View File

@ -1,4 +1,4 @@
# This file was generated Tue Nov 27 19:04:15 CET 2018 by create-tlst-step2-create-gnome_gtp.sh.
# This file was generated Sun Mar 29 03:21:28 CEST 2020 by create-tlst-step2-create-gnome_gtp.sh.
# package domain method repository dir branch
AppStream appstream gtp l10n.gnome.org/POT appstream/po
ModemManager ModemManager gtp l10n.gnome.org/POT ModemManager/po
@ -12,10 +12,12 @@ PackageKit PackageKit gtp l
accountsservice accounts-service gtp l10n.gnome.org/POT accountsservice/po
alacarte alacarte gtp l10n.gnome.org/POT alacarte/po
appstream-glib appstream-glib gtp l10n.gnome.org/POT appstream-glib/po
at-spi2-core at-spi2-core gtp l10n.gnome.org/POT at-spi2-core/po gnome-3-34
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-34
atk atk10 gtp l10n.gnome.org/POT atk/po
avahi avahi gtp l10n.gnome.org/POT avahi/po
baobab baobab gtp l10n.gnome.org/POT baobab/po gnome-3-30
baobab baobab gtp l10n.gnome.org/POT baobab/po gnome-3-34
baobab baobab gtp l10n.gnome.org/POT baobab/po
brasero brasero gtp l10n.gnome.org/POT brasero/po
caribou caribou gtp l10n.gnome.org/POT caribou/po
@ -26,151 +28,176 @@ cogl cogl gtp l
colord colord gtp l10n.gnome.org/POT colord/po
cups-pk-helper cups-pk-helper gtp l10n.gnome.org/POT cups-pk-helper/po
dasher dasher gtp l10n.gnome.org/POT dasher/po
dconf-editor dconf gtp l10n.gnome.org/POT dconf-editor/po gnome-3-30
dconf-editor dconf gtp l10n.gnome.org/POT dconf-editor/po
devhelp devhelp gtp l10n.gnome.org/POT devhelp/po gnome-3-30
dconf-editor dconf-editor gtp l10n.gnome.org/POT dconf-editor/po gnome-3-34
dconf-editor dconf-editor gtp l10n.gnome.org/POT dconf-editor/po gnome-3-36
dconf-editor dconf-editor gtp l10n.gnome.org/POT dconf-editor/po
devhelp devhelp gtp l10n.gnome.org/POT devhelp/po gnome-3-34
devhelp devhelp gtp l10n.gnome.org/POT devhelp/po
dia dia gtp l10n.gnome.org/POT dia/po
ekiga ekiga gtp l10n.gnome.org/POT ekiga/po
eog eog gtp l10n.gnome.org/POT eog/po gnome-3-34
eog eog gtp l10n.gnome.org/POT eog/po
evince evince gtp l10n.gnome.org/POT evince/po gnome-3-30
evince evince gtp l10n.gnome.org/POT evince/po gnome-3-34
evince evince gtp l10n.gnome.org/POT evince/po
evolution evolution gtp l10n.gnome.org/POT evolution/po gnome-3-30
evolution evolution gtp l10n.gnome.org/POT evolution/po gnome-3-34
evolution evolution gtp l10n.gnome.org/POT evolution/po gnome-3-36
evolution evolution gtp l10n.gnome.org/POT evolution/po
evolution-data-server evolution-data-server gtp l10n.gnome.org/POT evolution-data-server/po gnome-3-30
evolution-data-server evolution-data-server gtp l10n.gnome.org/POT evolution-data-server/po gnome-3-34
evolution-data-server evolution-data-server gtp l10n.gnome.org/POT evolution-data-server/po gnome-3-36
evolution-data-server evolution-data-server gtp l10n.gnome.org/POT evolution-data-server/po
evolution-ews evolution-ews gtp l10n.gnome.org/POT evolution-ews/po gnome-3-30
evolution-ews evolution-ews gtp l10n.gnome.org/POT evolution-ews/po gnome-3-34
evolution-ews evolution-ews gtp l10n.gnome.org/POT evolution-ews/po gnome-3-36
evolution-ews evolution-ews gtp l10n.gnome.org/POT evolution-ews/po
file-roller file-roller gtp l10n.gnome.org/POT file-roller/po gnome-3-30
file-roller file-roller gtp l10n.gnome.org/POT file-roller/po
flatpak flatpak gtp l10n.gnome.org/POT flatpak/po
folks folks gtp l10n.gnome.org/POT folks/po
fwupd fwupd gtp l10n.gnome.org/POT fwupd/po
gcab gcab gtp l10n.gnome.org/POT gcab/po
gconf2 GConf2 gtp l10n.gnome.org/POT gconf/po
gcr gcr gtp l10n.gnome.org/POT gcr/po gnome-3-34
gcr gcr gtp l10n.gnome.org/POT gcr/po gnome-3-36
gcr gcr gtp l10n.gnome.org/POT gcr/po
gdk-pixbuf gdk-pixbuf gtp l10n.gnome.org/POT gdk-pixbuf/po
gdm gdm gtp l10n.gnome.org/POT gdm/po gnome-3-30
gdm gdm gtp l10n.gnome.org/POT gdm/po
gedit gedit gtp l10n.gnome.org/POT gedit/po gnome-3-30
gedit gedit gtp l10n.gnome.org/POT gedit/po gnome-3-34
gedit gedit gtp l10n.gnome.org/POT gedit/po gnome-3-36
gedit gedit gtp l10n.gnome.org/POT gedit/po
ghex ghex-3.0 gtp l10n.gnome.org/POT ghex/po
gimp gimp20 gtp l10n.gnome.org/POT gimp/po gimp-2-10
gimp gimp20 gtp l10n.gnome.org/POT gimp/po
gimp gimp20-libgimp gtp l10n.gnome.org/POT gimp/po-libgimp gimp-2-10
gimp gimp20-libgimp gtp l10n.gnome.org/POT gimp/po-libgimp
gimp gimp20-python gtp l10n.gnome.org/POT gimp/po-python gimp-2-10
gimp gimp20-python gtp l10n.gnome.org/POT gimp/po-python
gimp gimp20-script-fu gtp l10n.gnome.org/POT gimp/po-script-fu gimp-2-10
gimp gimp20-script-fu gtp l10n.gnome.org/POT gimp/po-script-fu
gimp gimp20-std-plug-ins gtp l10n.gnome.org/POT gimp/po-plug-ins gimp-2-10
gimp gimp20-std-plug-ins gtp l10n.gnome.org/POT gimp/po-plug-ins
gimp gimp20-tips gtp l10n.gnome.org/POT gimp/po-tips gimp-2-10
gimp gimp20-tips gtp l10n.gnome.org/POT gimp/po-tips
glade glade gtp l10n.gnome.org/POT glade/po
glib-networking glib-networking gtp l10n.gnome.org/POT glib-networking/po glib-2-54
glib-networking glib-networking gtp l10n.gnome.org/POT glib-networking/po
glib2 glib20 gtp l10n.gnome.org/POT glib/po glib-2-54
glib2 glib20 gtp l10n.gnome.org/POT glib/po
gnome-bluetooth gnome-bluetooth2 gtp l10n.gnome.org/POT gnome-bluetooth/po
gnome-builder gnome-builder gtp l10n.gnome.org/POT gnome-builder/po
gnome-calculator gnome-calculator gtp l10n.gnome.org/POT gnome-calculator/po gnome-3-30
gnome-calculator gnome-calculator gtp l10n.gnome.org/POT gnome-calculator/po gnome-3-34
gnome-calculator gnome-calculator gtp l10n.gnome.org/POT gnome-calculator/po
gnome-characters org.gnome.Characters gtp l10n.gnome.org/POT gnome-characters/po gnome-3-30
gnome-characters org.gnome.Characters gtp l10n.gnome.org/POT gnome-characters/po
gnome-clocks gnome-clocks gtp l10n.gnome.org/POT gnome-clocks/po gnome-3-30
gnome-clocks gnome-clocks gtp l10n.gnome.org/POT gnome-clocks/po gnome-3-34
gnome-clocks gnome-clocks gtp l10n.gnome.org/POT gnome-clocks/po gnome-3-36
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-contacts gnome-contacts gtp l10n.gnome.org/POT gnome-contacts/po gnome-3-30
gnome-contacts gnome-contacts gtp l10n.gnome.org/POT gnome-contacts/po gnome-3-34
gnome-contacts gnome-contacts gtp l10n.gnome.org/POT gnome-contacts/po gnome-3-36
gnome-contacts gnome-contacts gtp l10n.gnome.org/POT gnome-contacts/po
gnome-control-center gnome-control-center-2.0 gtp l10n.gnome.org/POT gnome-control-center/po gnome-3-30
gnome-control-center gnome-control-center-2.0 gtp l10n.gnome.org/POT gnome-control-center/po gnome-3-34
gnome-control-center gnome-control-center-2.0 gtp l10n.gnome.org/POT gnome-control-center/po gnome-3-36
gnome-control-center gnome-control-center-2.0 gtp l10n.gnome.org/POT gnome-control-center/po
gnome-control-center gnome-control-center-2.0-timezones gtp l10n.gnome.org/POT gnome-control-center/po gnome-3-30
gnome-control-center gnome-control-center-2.0-timezones gtp l10n.gnome.org/POT gnome-control-center/po gnome-3-34
gnome-control-center gnome-control-center-2.0-timezones gtp l10n.gnome.org/POT gnome-control-center/po gnome-3-36
gnome-control-center gnome-control-center-2.0-timezones gtp l10n.gnome.org/POT gnome-control-center/po
gnome-desktop gnome-desktop-3.0 gtp l10n.gnome.org/POT gnome-desktop/po gnome-3-30
gnome-desktop gnome-desktop-3.0 gtp l10n.gnome.org/POT gnome-desktop/po gnome-3-34
gnome-desktop gnome-desktop-3.0 gtp l10n.gnome.org/POT gnome-desktop/po gnome-3-36
gnome-desktop gnome-desktop-3.0 gtp l10n.gnome.org/POT gnome-desktop/po
gnome-disk-utility gnome-disk-utility gtp l10n.gnome.org/POT gnome-disk-utility/po gnome-3-30
gnome-disk-utility gnome-disk-utility gtp l10n.gnome.org/POT gnome-disk-utility/po gnome-3-34
gnome-disk-utility gnome-disk-utility gtp l10n.gnome.org/POT gnome-disk-utility/po gnome-3-36
gnome-disk-utility gnome-disk-utility gtp l10n.gnome.org/POT gnome-disk-utility/po
gnome-documents gnome-documents gtp l10n.gnome.org/POT gnome-documents/po gnome-3-30
gnome-documents gnome-documents gtp l10n.gnome.org/POT gnome-documents/po
gnome-initial-setup gnome-initial-setup gtp l10n.gnome.org/POT gnome-initial-setup/po gnome-3-30
gnome-initial-setup gnome-initial-setup gtp l10n.gnome.org/POT gnome-initial-setup/po gnome-3-34
gnome-initial-setup gnome-initial-setup gtp l10n.gnome.org/POT gnome-initial-setup/po gnome-3-36
gnome-initial-setup gnome-initial-setup gtp l10n.gnome.org/POT gnome-initial-setup/po
gnome-keyring gnome-keyring gtp l10n.gnome.org/POT gnome-keyring/po gnome-3-34
gnome-keyring gnome-keyring gtp l10n.gnome.org/POT gnome-keyring/po
gnome-logs gnome-logs gtp l10n.gnome.org/POT gnome-logs/po gnome-3-30
gnome-logs gnome-logs gtp l10n.gnome.org/POT gnome-logs/po
gnome-menus gnome-menus-3.0 gtp l10n.gnome.org/POT gnome-menus/po
gnome-music gnome-music gtp l10n.gnome.org/POT gnome-music/po gnome-3-30
gnome-music gnome-music gtp l10n.gnome.org/POT gnome-music/po
gnome-online-accounts gnome-online-accounts gtp l10n.gnome.org/POT gnome-online-accounts/po gnome-3-30
gnome-menus gnome-menus gtp l10n.gnome.org/POT gnome-menus/po
gnome-music org.gnome.Music gtp l10n.gnome.org/POT gnome-music/po gnome-3-34
gnome-music org.gnome.Music gtp l10n.gnome.org/POT gnome-music/po gnome-3-36
gnome-music org.gnome.Music gtp l10n.gnome.org/POT gnome-music/po
gnome-online-accounts gnome-online-accounts gtp l10n.gnome.org/POT gnome-online-accounts/po gnome-3-34
gnome-online-accounts gnome-online-accounts gtp l10n.gnome.org/POT gnome-online-accounts/po gnome-3-36
gnome-online-accounts gnome-online-accounts gtp l10n.gnome.org/POT gnome-online-accounts/po
gnome-packagekit gnome-packagekit gtp l10n.gnome.org/POT gnome-packagekit/po
gnome-photos gnome-photos gtp l10n.gnome.org/POT gnome-photos/po gnome-3-30
gnome-photos gnome-photos gtp l10n.gnome.org/POT gnome-photos/po gnome-3-34
gnome-photos gnome-photos gtp l10n.gnome.org/POT gnome-photos/po
gnome-power-manager gnome-power-manager gtp l10n.gnome.org/POT gnome-power-manager/po
gnome-screenshot gnome-screenshot gtp l10n.gnome.org/POT gnome-screenshot/po gnome-3-30
gnome-screenshot gnome-screenshot gtp l10n.gnome.org/POT gnome-screenshot/po gnome-3-36
gnome-screenshot gnome-screenshot gtp l10n.gnome.org/POT gnome-screenshot/po
gnome-session gnome-session-3.0 gtp l10n.gnome.org/POT gnome-session/po gnome-3-34
gnome-session gnome-session-3.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-3-30
gnome-settings-daemon gnome-settings-daemon gtp l10n.gnome.org/POT gnome-settings-daemon/po gnome-3-34
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-3-30
gnome-shell gnome-shell gtp l10n.gnome.org/POT gnome-shell/po gnome-3-34
gnome-shell gnome-shell gtp l10n.gnome.org/POT gnome-shell/po
gnome-software gnome-software gtp l10n.gnome.org/POT gnome-software/po gnome-3-30
gnome-software gnome-software gtp l10n.gnome.org/POT gnome-software/po gnome-3-34
gnome-software gnome-software gtp l10n.gnome.org/POT gnome-software/po
gnome-system-monitor gnome-system-monitor gtp l10n.gnome.org/POT gnome-system-monitor/po gnome-3-34
gnome-system-monitor gnome-system-monitor gtp l10n.gnome.org/POT gnome-system-monitor/po
gnome-terminal gnome-terminal gtp l10n.gnome.org/POT gnome-terminal/po gnome-3-30
gnome-terminal gnome-terminal gtp l10n.gnome.org/POT gnome-terminal/po gnome-3-34
gnome-terminal gnome-terminal gtp l10n.gnome.org/POT gnome-terminal/po gnome-3-36
gnome-terminal gnome-terminal gtp l10n.gnome.org/POT gnome-terminal/po
gnome-tweak-tool gnome-tweak-tool gtp l10n.gnome.org/POT gnome-tweak-tool/po
gnome-weather org.gnome.Weather gtp l10n.gnome.org/POT gnome-weather/po gnome-3-34
gnome-weather org.gnome.Weather gtp l10n.gnome.org/POT gnome-weather/po
gnote gnote gtp l10n.gnome.org/POT gnote/po gnome-3-30
gnote gnote gtp l10n.gnome.org/POT gnote/po gnome-3-34
gnote gnote gtp l10n.gnome.org/POT gnote/po
grilo grilo gtp l10n.gnome.org/POT grilo/po
grilo-plugins grilo-plugins gtp l10n.gnome.org/POT grilo-plugins/po
gsettings-desktop-schemas gsettings-desktop-schemas gtp l10n.gnome.org/POT gsettings-desktop-schemas/po gnome-3-34
gsettings-desktop-schemas gsettings-desktop-schemas gtp l10n.gnome.org/POT gsettings-desktop-schemas/po
gspell gspell-1 gtp l10n.gnome.org/POT gspell/po
gstreamer gstreamer-1.0 gtp l10n.gnome.org/POT gstreamer/po
gtk-vnc gtk-vnc gtp l10n.gnome.org/POT gtk-vnc/po
gtk2 gtk20 gtp l10n.gnome.org/POT gtk+/po gtk-2-24
gtk2 gtk20 gtp l10n.gnome.org/POT gtk+/po
gtk2 gtk20-properties gtp l10n.gnome.org/POT gtk+/po-properties gtk-2-24
gtk2 gtk20-properties gtp l10n.gnome.org/POT gtk+/po-properties
gtk3 gtk30 gtp l10n.gnome.org/POT gtk+/po gtk-3-22
gtk3 gtk30 gtp l10n.gnome.org/POT gtk+/po gtk-3-24
gtk3 gtk30 gtp l10n.gnome.org/POT gtk+/po
gtk3 gtk30-properties gtp l10n.gnome.org/POT gtk+/po gtk-3-22
gtk3 gtk30-properties gtp l10n.gnome.org/POT gtk+/po gtk-3-24
gtk3 gtk30-properties gtp l10n.gnome.org/POT gtk+/po
gtksourceview gtksourceview-3.0 gtp l10n.gnome.org/POT gtksourceview/po
gvfs gvfs gtp l10n.gnome.org/POT gvfs/po gnome-3-30
gvfs gvfs gtp l10n.gnome.org/POT gvfs/po gnome-3-34
gvfs gvfs gtp l10n.gnome.org/POT gvfs/po
json-glib json-glib-1.0 gtp l10n.gnome.org/POT json-glib/po
libcryptui cryptui gtp l10n.gnome.org/POT libcryptui/po
libgdata gdata gtp l10n.gnome.org/POT libgdata/po
libgnome libgnome-2.0 gtp l10n.gnome.org/POT libgnome/po
libgnome-keyring libgnome-keyring gtp l10n.gnome.org/POT libgnome-keyring/po
libgnomekbd libgnomekbd gtp l10n.gnome.org/POT libgnomekbd/po
libgnomeui libgnomeui-2.0 gtp l10n.gnome.org/POT libgnomeui/po
libgsf libgsf gtp l10n.gnome.org/POT libgsf/po
libgtop libgtop gtp l10n.gnome.org/POT libgtop/po
libgweather libgweather-3.0 gtp l10n.gnome.org/POT libgweather/po gnome-3-34
libgweather libgweather-3.0 gtp l10n.gnome.org/POT libgweather/po gnome-3-36
libgweather libgweather-3.0 gtp l10n.gnome.org/POT libgweather/po
libgweather libgweather-locations gtp l10n.gnome.org/POT libgweather/po-locations gnome-3-30
libgweather libgweather-locations gtp l10n.gnome.org/POT libgweather/po-locations gnome-3-34
libgweather libgweather-locations gtp l10n.gnome.org/POT libgweather/po-locations gnome-3-36
libgweather libgweather-locations gtp l10n.gnome.org/POT libgweather/po-locations
libgweather libgweather-locations gtp l10n.gnome.org/POT libgweather/po-locations
libpeas libpeas gtp l10n.gnome.org/POT libpeas/po
libpeas libpeas-1.0 gtp l10n.gnome.org/POT libpeas/po
libsecret libsecret gtp l10n.gnome.org/POT libsecret/po
libsoup libsoup gtp l10n.gnome.org/POT libsoup/po gnome-3-30
libsoup libsoup gtp l10n.gnome.org/POT libsoup/po gnome-3-34
libsoup libsoup gtp l10n.gnome.org/POT libsoup/po
libwnck libwnck-3.0 gtp l10n.gnome.org/POT libwnck/po gnome-3-30
libwnck libwnck-3.0 gtp l10n.gnome.org/POT libwnck/po
meld meld gtp l10n.gnome.org/POT meld/po
mousetweaks mousetweaks gtp l10n.gnome.org/POT mousetweaks/po
mutter mutter gtp l10n.gnome.org/POT mutter/po gnome-3-30
mutter mutter gtp l10n.gnome.org/POT mutter/po gnome-3-34
mutter mutter gtp l10n.gnome.org/POT mutter/po
nautilus nautilus gtp l10n.gnome.org/POT nautilus/po gnome-3-30
nautilus nautilus gtp l10n.gnome.org/POT nautilus/po gnome-3-34
nautilus nautilus gtp l10n.gnome.org/POT nautilus/po gnome-3-36
nautilus nautilus gtp l10n.gnome.org/POT nautilus/po
orca orca gtp l10n.gnome.org/POT orca/po gnome-3-30
orca orca gtp l10n.gnome.org/POT orca/po gnome-3-34
orca orca gtp l10n.gnome.org/POT orca/po gnome-3-36
orca orca gtp l10n.gnome.org/POT orca/po
plymouth plymouth gtp l10n.gnome.org/POT plymouth/po
polkit polkit-1 gtp l10n.gnome.org/POT polkit/po
pulseaudio pulseaudio gtp l10n.gnome.org/POT PulseAudio/po
pulseaudio pulseaudio gtp l10n.gnome.org/POT Pulseaudio/po
seahorse seahorse gtp l10n.gnome.org/POT seahorse/po gnome-3-30
seahorse seahorse gtp l10n.gnome.org/POT seahorse/po gnome-3-34
seahorse seahorse gtp l10n.gnome.org/POT seahorse/po gnome-3-36
seahorse seahorse gtp l10n.gnome.org/POT seahorse/po
shared-mime-info shared-mime-info gtp l10n.gnome.org/POT shared-mime-info/po
simple-scan simple-scan gtp l10n.gnome.org/POT simple-scan/po gnome-3-30
simple-scan simple-scan gtp l10n.gnome.org/POT simple-scan/po gnome-3-34
simple-scan simple-scan gtp l10n.gnome.org/POT simple-scan/po gnome-3-36
simple-scan simple-scan gtp l10n.gnome.org/POT simple-scan/po
systemd systemd gtp l10n.gnome.org/POT systemd/po
totem totem gtp l10n.gnome.org/POT totem/po gnome-3-30
totem totem gtp l10n.gnome.org/POT totem/po gnome-3-34
totem totem gtp l10n.gnome.org/POT totem/po
totem-pl-parser totem-pl-parser gtp l10n.gnome.org/POT totem-pl-parser/po
tracker tracker gtp l10n.gnome.org/POT tracker/po
@ -183,6 +210,5 @@ xdg-desktop-portal-gtk xdg-desktop-portal-gtk 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-30
yelp yelp gtp l10n.gnome.org/POT yelp/po
zenity zenity gtp l10n.gnome.org/POT zenity/po