Author: jorda-guest Date: 2008-09-24 11:22:39 +0000 (Wed, 24 Sep 2008) New Revision: 8191
Added: people/jorda/desktop-i18n/ people/jorda/desktop-i18n/Makefile people/jorda/desktop-i18n/desktop-i18n.sh people/jorda/desktop-i18n/desktop-translate people/jorda/desktop-i18n/desktop-xgettext Removed: people/jorda/xgettextdesktop Log: Move to subdirectory and import remaining scripts. Added: people/jorda/desktop-i18n/Makefile =================================================================== --- people/jorda/desktop-i18n/Makefile (rev 0) +++ people/jorda/desktop-i18n/Makefile 2008-09-24 11:22:39 UTC (rev 8191) @@ -0,0 +1,25 @@ +BASE_PATH := . +DOMAIN := games-desktop +POT := $(DOMAIN).pot +POS := $(wildcard *.po) + +all: $(POT) $(POS) stats + +update-po: $(POT)-update $(POS) + +$(POT) $(POT)-update: + ./desktop-xgettext $(BASE_PATH) > $(POT) + msguniq -o $(POT) $(POT) + +$(POS): $(POT) + msgmerge -U $@ $< + touch $@ + +clean: + rm -f *~ + +stats: + @for i in $(POS); do \ + echo -n `basename $$i | sed 's/\.po//'`": "; \ + msgfmt --statistics -o /dev/null $$i; \ + done Added: people/jorda/desktop-i18n/desktop-i18n.sh =================================================================== --- people/jorda/desktop-i18n/desktop-i18n.sh (rev 0) +++ people/jorda/desktop-i18n/desktop-i18n.sh 2008-09-24 11:22:39 UTC (rev 8191) @@ -0,0 +1,30 @@ +#!/bin/sh +# +# Shell "library" for .desktop file internationalization. +# +# Copyright © 2008 Jordà Polo <[EMAIL PROTECTED]> +# +# This script is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. + +# Keys such as GenericName are also translatable, but it looks like it is +# heavily misused. Many desktop files in the pkg-games repos simply use the +# same string for GenericName and for Name or Exec (which is wrong). See also: +# http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html +i18n_keys="GenericName Comment" + +i18n_print_msg() { + string=$1 + file=$2 + comment=$3 + + echo "" + if [ "$comment" != "" ]; then + echo "#. $comment" + fi + echo "#: $file" + echo "msgid \"$string\"" + echo "msgstr \"\"" +} Added: people/jorda/desktop-i18n/desktop-translate =================================================================== --- people/jorda/desktop-i18n/desktop-translate (rev 0) +++ people/jorda/desktop-i18n/desktop-translate 2008-09-24 11:22:39 UTC (rev 8191) @@ -0,0 +1,42 @@ +#!/bin/sh +# +# This script reads a .desktop file from stdin and prints the same file, with +# up-to-date translations, to stdout. +# +# Copyright © 2008 Jordà Polo <[EMAIL PROTECTED]> +# +# This script is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. + +. desktop-i18n.sh + +i18n_keys_re="^\(`echo $i18n_keys | sed 's/ /\\\|/'`\)=" + +while read line; do + # Remove previous translations + if echo $line | grep '^.*\[.*\]=' > /dev/null; then + continue + fi + + echo $line + + # Check whether the current line is translatable + key=`echo $line | sed -n "s/$i18n_keys_re.*/\1/p"` + if [ -z "$key" ]; then + continue + fi + + # Generate available translations + msgid=`echo $line | sed "s/$i18n_keys_re//"` + for po in *.po; do + lang=`basename $po | sed 's/\.po//'` + msgstr=`msgattrib --translated --no-obsolete --no-fuzzy $po \ + | msggrep --no-location --no-wrap --msgid -F -e "$msgid" \ + | tail -n 1 | sed 's/^msgstr "\(.*\)"$/\1/'` + if [ "$msgstr" != "" ]; then + echo "$key[$lang]=$msgstr" + fi + done +done Property changes on: people/jorda/desktop-i18n/desktop-translate ___________________________________________________________________ Name: svn:executable + * Copied: people/jorda/desktop-i18n/desktop-xgettext (from rev 8190, people/jorda/xgettextdesktop) =================================================================== --- people/jorda/desktop-i18n/desktop-xgettext (rev 0) +++ people/jorda/desktop-i18n/desktop-xgettext 2008-09-24 11:22:39 UTC (rev 8191) @@ -0,0 +1,45 @@ +#!/bin/sh +# +# Extract translatable strings from .desktop files. +# +# Copyright © 2008 Jordà Polo <[EMAIL PROTECTED]> +# +# This script is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. + +. desktop-i18n.sh + +if [ ! -d "$1" ]; then + echo "Usage: $0 input-directory" + exit 1 +fi + +cat <<HEADER +# LANGUAGE translation of Debian Games .desktop files. +# Copyright © `date +%Y` Debian Games Team +# FIRST AUTHOR <[EMAIL PROTECTED]>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: pkg-games-desktop 0.1\n" +"Report-Msgid-Bugs-To: [EMAIL PROTECTED]" +"POT-Creation-Date: `date +"%F %H:%M%z"`\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <[EMAIL PROTECTED]>\n" +"Language-Team: LANGUAGE <[EMAIL PROTECTED]>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +HEADER + +for file in `find $1 -name *.desktop`; do + for key in $i18n_keys; do + msg=`grep "^$key=" $file | sed "s/^$key=//"` + if [ "$msg" != "" ]; then + i18n_print_msg "$msg" "$file" "$key" + fi + done +done Property changes on: people/jorda/desktop-i18n/desktop-xgettext ___________________________________________________________________ Name: svn:executable + * Name: svn:mergeinfo + Deleted: people/jorda/xgettextdesktop =================================================================== --- people/jorda/xgettextdesktop 2008-09-23 18:31:12 UTC (rev 8190) +++ people/jorda/xgettextdesktop 2008-09-24 11:22:39 UTC (rev 8191) @@ -1,49 +0,0 @@ -#!/bin/sh - -# Keys such as GenericName are also translatable, but it looks like it is -# heavily misused. Many desktop files in the pkg-games repos simply use the -# same string for GenericName and for Name or Exec (which is wrong). See also: -# http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html -translatable_keys="Comment" - -print_msg() { - string=$1 - file=$2 - comment=$3 - - echo "" - if [ "$comment" != "" ]; then - echo "#. $comment" - fi - echo "#: $file" - echo "msgid \"$string\"" - echo "msgstr \"\"" -} - -cat <<HEADER -# LANGUAGE translation of Debian Games .desktop files -# Copyright © `date +%Y` Debian Games Team -# FIRST AUTHOR <[EMAIL PROTECTED]>, YEAR -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: pkg-games-desktop 0.1\n" -"Report-Msgid-Bugs-To: [EMAIL PROTECTED]" -"POT-Creation-Date: `date +"%F %H:%M%z"`\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <[EMAIL PROTECTED]>\n" -"Language-Team: LANGUAGE <[EMAIL PROTECTED]>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -HEADER - -for i in `find . -name *.desktop`; do - for j in Comment; do - msg=`grep "^$j=" $i | sed "s/^$j=//"` - if [ "$msg" != "" ]; then - print_msg "$msg" "$i" "$j" - fi - done -done _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/pkg-games-commits

