From: Bruno Haible Date: Tue, 27 May 2003 11:11:06 +0000 (+0000) Subject: Add support for Glade 2. X-Git-Tag: v0.13~467 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=71531a166ad4c93e20d1bcf0adda74781bca26b9;p=thirdparty%2Fgettext.git Add support for Glade 2. --- diff --git a/NEWS b/NEWS index 505d602d8..ee984e3ae 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +Version 0.12.2 - XXX 2003 + +* Data formats support: + + - Glade: + xgettext now also supports Glade version 2. + Version 0.12.1 - May 2003 * Bug fixes. diff --git a/gettext-tools/doc/ChangeLog b/gettext-tools/doc/ChangeLog index fa54bd3bd..d38b7a133 100644 --- a/gettext-tools/doc/ChangeLog +++ b/gettext-tools/doc/ChangeLog @@ -1,3 +1,7 @@ +2003-05-24 Bruno Haible + + * gettext.texi (Glade): Mention support og Glade 2. + 2003-05-22 Bruno Haible * gettext-0.12.1 released. diff --git a/gettext-tools/doc/gettext.texi b/gettext-tools/doc/gettext.texi index 36d9d3870..68ca8888c 100644 --- a/gettext-tools/doc/gettext.texi +++ b/gettext-tools/doc/gettext.texi @@ -8448,13 +8448,13 @@ fpk @table @asis @item RPMs -glade, libglade, xml-i18n-tools +glade, libglade, glade2, libglade2, intltool @item File extension -@code{glade} +@code{glade}, @code{glade2} @item Extractor -@code{xgettext}, @code{libglade-xgettext} +@code{xgettext}, @code{libglade-xgettext}, @code{xml-i18n-extract}, @code{intltool-extract} @end table @c This is the template for new data formats. diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog index 804f45f1a..e4e9ec64f 100644 --- a/gettext-tools/src/ChangeLog +++ b/gettext-tools/src/ChangeLog @@ -1,3 +1,9 @@ +2003-05-24 Bruno Haible + + * x-glade.h (EXTENSIONS_GLADE): Also recognize the .glade2 extension. + * x-glade.c (start_element_handler): Also extract strings according to + Glade 2 conventions. + 2003-05-22 Bruno Haible * gettext-0.12.1 released. diff --git a/gettext-tools/src/x-glade.c b/gettext-tools/src/x-glade.c index 3ba11cb88..92d20c267 100644 --- a/gettext-tools/src/x-glade.c +++ b/gettext-tools/src/x-glade.c @@ -1,5 +1,5 @@ /* xgettext glade backend. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002-2003 Free Software Foundation, Inc. This file was written by Bruno Haible , 2002. @@ -232,8 +232,49 @@ start_element_handler (void *userData, const char *name, stack[stack_depth - 1].extract_string = false; p = &stack[stack_depth]; + /* In Glade 1, a few specific elements are translatable. */ p->extract_string = (find_entry (&keywords, name, strlen (name), &hash_result) == 0); + /* In Glade 2, all and elements are translatable + that have the attribute translatable="yes". */ + if (!p->extract_string + && (strcmp (name, "property") == 0 || strcmp (name, "atkproperty") == 0)) + { + bool has_translatable = false; + const char **attp = attributes; + while (*attp != NULL) + { + if (strcmp (attp[0], "translatable") == 0) + { + has_translatable = (strcmp (attp[1], "yes") == 0); + break; + } + attp += 2; + } + p->extract_string = has_translatable; + } + if (!p->extract_string + && strcmp (name, "atkaction") == 0) + { + const char **attp = attributes; + while (*attp != NULL) + { + if (strcmp (attp[0], "description") == 0) + { + if (strcmp (attp[1], "") != 0) + { + lex_pos_ty pos; + + pos.file_name = logical_file_name; + pos.line_number = XML_GetCurrentLineNumber (parser); + + remember_a_message (mlp, xstrdup (attp[1]), &pos); + } + break; + } + attp += 2; + } + } p->lineno = XML_GetCurrentLineNumber (parser); p->buffer = NULL; p->bufmax = 0; diff --git a/gettext-tools/src/x-glade.h b/gettext-tools/src/x-glade.h index db6ae6f07..0e750ff8f 100644 --- a/gettext-tools/src/x-glade.h +++ b/gettext-tools/src/x-glade.h @@ -1,5 +1,5 @@ /* xgettext glade backend. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002-2003 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software; you can redistribute it and/or modify @@ -19,6 +19,7 @@ #define EXTENSIONS_GLADE \ { "glade", "glade" }, \ + { "glade2", "glade" }, \ #define SCANNERS_GLADE \ { "glade", extract_glade, NULL }, \ diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog index 7c663f329..77aaed607 100644 --- a/gettext-tools/tests/ChangeLog +++ b/gettext-tools/tests/ChangeLog @@ -1,3 +1,8 @@ +2003-05-24 Bruno Haible + + * xgettext-25: New file. + * Makefile.am (TESTS): Add it. + 2003-05-22 Bruno Haible * gettext-0.12.1 released. diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am index 01887a20b..602699334 100644 --- a/gettext-tools/tests/Makefile.am +++ b/gettext-tools/tests/Makefile.am @@ -49,7 +49,7 @@ TESTS = gettext-1 gettext-2 \ xgettext-7 xgettext-8 xgettext-9 xgettext-10 xgettext-11 xgettext-12 \ xgettext-13 xgettext-14 xgettext-15 xgettext-16 xgettext-17 \ xgettext-18 xgettext-19 xgettext-20 xgettext-21 xgettext-22 \ - xgettext-23 xgettext-24 \ + xgettext-23 xgettext-24 xgettext-25 \ format-awk-1 format-awk-2 \ format-c-1 format-c-2 format-c-3 format-c-4 \ format-elisp-1 format-elisp-2 \ diff --git a/gettext-tools/tests/xgettext-25 b/gettext-tools/tests/xgettext-25 new file mode 100755 index 000000000..abc096ea0 --- /dev/null +++ b/gettext-tools/tests/xgettext-25 @@ -0,0 +1,202 @@ +#!/bin/sh + +# Test of Glade 2 support. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles asciitable.glade2" +cat < asciitable.glade2 + + + + + + no + gedit: ASCII table + GTK_WINDOW_TOPLEVEL + no + yes + yes + GTK_WIN_POS_NONE + + + + no + 8 + yes + + + + GTK_BUTTONBOX_END + 8 + yes + + + + yes + yes + Insert char + yes + + + + + + yes + yes + yes + gtk-close + yes + yes + + + + + + yes + yes + yes + gtk-help + yes + yes + + + + + 0 + no + yes + GTK_PACK_END + + + + + + 6 + no + 8 + yes + + + + If you wish to insert any of the characters in to the active +document, select the character and click the "Insert Char" +button or double click the character in the table. + GTK_JUSTIFY_LEFT + no + 0.0 + 0.5 + 0 + 0 + yes + + + 0 + no + no + + + + + + GTK_POLICY_NEVER + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + 350 + yes + + + + yes + yes + yes + + + + + + GTK_UPDATE_CONTINUOUS + yes + + + + + + GTK_UPDATE_CONTINUOUS + yes + + + + + 0 + yes + yes + + + + + 0 + yes + yes + + + + + 4 + yes + yes + + + + +EOF + +tmpfiles="$tmpfiles xg-test25.tmp xg-test25.pot" +: ${XGETTEXT=xgettext} +${XGETTEXT} -o xg-test25.tmp asciitable.glade2 +test $? = 0 || { rm -fr $tmpfiles; exit 1; } +grep -v 'POT-Creation-Date' < xg-test25.tmp > xg-test25.pot + +tmpfiles="$tmpfiles xg-test25.ok" +cat < xg-test25.ok +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: asciitable.glade2:7 +msgid "gedit: ASCII table" +msgstr "" + +#: asciitable.glade2:30 +msgid "Insert char" +msgstr "" + +#: asciitable.glade2:74 +msgid "" +"If you wish to insert any of the characters in to the active \n" +"document, select the character and click the \"Insert Char\" \n" +"button or double click the character in the table." +msgstr "" +EOF + +: ${DIFF=diff} +${DIFF} xg-test25.ok xg-test25.pot +result=$? + +rm -fr $tmpfiles + +exit $result