Internacionalizacion
authordanigm <danigm>
Sun, 24 Jan 2010 22:57:41 +0000 (22:57 +0000)
committerdanigm <danigm@aa302d1f-72b1-406a-902b-8593ca2b2744>
Sun, 24 Jan 2010 22:57:41 +0000 (22:57 +0000)
    Anadidos los cambios necesarios para la internacionalizacion en el
    proyecto y creada la traduccion al espanol.

    Ahora mismo falla en los botones por estar declarados como
    estaticos y faltan cadenas por internacionalizar.

git-svn-id: https://forja.rediris.es/svn/cusl4-tbo@35 aa302d1f-72b1-406a-902b-8593ca2b2744

Makefile.am
configure.ac
po/LINGUAS [new file with mode: 0644]
po/Makevars [new file with mode: 0644]
po/POTFILES.in [new file with mode: 0644]
po/es.po [new file with mode: 0644]
src/Makefile.am
src/tbo.c
src/ui-toolbar.c

index 04a50e1..6d1cf72 100644 (file)
@@ -1,5 +1,8 @@
 ## Process this file with automake to generate Makefile.in
-SUBDIRS = src data
+SUBDIRS = src data po
+
+ACLOCAL_AMFLAGS = -I m4
+
 EXTRA_DIST = AUTHORS TODO 
 
 CLEANFILES = *~
index 302c69d..b862d1a 100644 (file)
@@ -3,6 +3,8 @@ AC_INIT([tbo], [0.1], [dani@danigm.net])
 AC_CONFIG_AUX_DIR([build])
 AM_INIT_AUTOMAKE([1.9.6 -Wall -Werror dist-bzip2])
 
+GNOME_COMMON_INIT
+
 AC_PROG_CC
 # Compiling sources with per-target flags requires AM_PROG_CC_C_O
 AM_PROG_CC_C_O
@@ -11,11 +13,22 @@ AC_PROG_LIBTOOL
 
 AM_PATH_GTK_2_0([2.10.0],,AC_MSG_ERROR([Gtk+ 2.10.0 or higher required.]))
 
+# *******************************
+# Internationalization
+# *******************************
+
+AC_PROG_INTLTOOL
+GETTEXT_PACKAGE=tbo
+AC_SUBST([GETTEXT_PACKAGE])
+AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
+AM_GLIB_GNU_GETTEXT
+
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_FILES([
     Makefile
     src/Makefile
     data/Makefile
+    po/Makefile.in
 ])
 
 AC_OUTPUT
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644 (file)
index 0000000..8357fca
--- /dev/null
@@ -0,0 +1 @@
+es
diff --git a/po/Makevars b/po/Makevars
new file mode 100644 (file)
index 0000000..f579fea
--- /dev/null
@@ -0,0 +1,43 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(GETTEXT_PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+#XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --keyword=Q_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = GNOME Translation Project
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = dani@danigm.net
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
+
+POFILES = es.po
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644 (file)
index 0000000..4fc3c5c
--- /dev/null
@@ -0,0 +1,3 @@
+[encoding: UTF-8]
+src/ui-toolbar.c
+src/tbo.c
diff --git a/po/es.po b/po/es.po
new file mode 100644 (file)
index 0000000..eba0727
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,90 @@
+# Spanish Translation
+# Copyright (C) 2010
+# This file is distributed under the same license as the TBO package.
+# Daniel Garcia <dani@danigm.net>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE 0.1\n"
+"Report-Msgid-Bugs-To: dani@danigm.net\n"
+"POT-Creation-Date: 2010-01-24 23:44+0100\n"
+"PO-Revision-Date: 2010-01-24 20:48+0100\n"
+"Last-Translator: Daniel Garcia <dani@danigm.net>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/ui-toolbar.c:69
+#, c-format
+msgid "toolbar: %s\n"
+msgstr "barra de herramientas: %s\n"
+
+#: ../src/ui-toolbar.c:113
+msgid "_New"
+msgstr "_Nuevo"
+
+#: ../src/ui-toolbar.c:114
+msgid "New Comic"
+msgstr "Nuevo Comic"
+
+#: ../src/ui-toolbar.c:117
+msgid "_Open"
+msgstr "_Abrir"
+
+#: ../src/ui-toolbar.c:118
+msgid "Open comic"
+msgstr "Abrir comic"
+
+#: ../src/ui-toolbar.c:121
+msgid "_Save"
+msgstr "_Guardar"
+
+#: ../src/ui-toolbar.c:122
+msgid "Save current document"
+msgstr "Guardar el documento actual"
+
+#. Page tools
+#: ../src/ui-toolbar.c:126
+msgid "New Page"
+msgstr "Nueva Página"
+
+#: ../src/ui-toolbar.c:127
+msgid "New page"
+msgstr "Nueva página"
+
+#: ../src/ui-toolbar.c:130
+msgid "Delete Page"
+msgstr "Borrar Página"
+
+#: ../src/ui-toolbar.c:131
+msgid "Delete current page"
+msgstr "Borrar la página actual"
+
+#: ../src/ui-toolbar.c:134
+msgid "Prev Page"
+msgstr "Página anterior"
+
+#: ../src/ui-toolbar.c:135
+msgid "Prev page"
+msgstr "Página anterior"
+
+#: ../src/ui-toolbar.c:138
+msgid "Next Page"
+msgstr "Página siguiente"
+
+#: ../src/ui-toolbar.c:139
+msgid "Next page"
+msgstr "Página siguiente"
+
+#: ../src/ui-toolbar.c:144
+msgid "New _Frame"
+msgstr "Nueva _Vieta"
+
+#: ../src/ui-toolbar.c:145
+msgid "New Frame"
+msgstr "Nueva Vieta"
+
+#: ../src/ui-toolbar.c:148 ../src/ui-toolbar.c:149
+msgid "Selector"
+msgstr "Selector"
index c916b04..5b948a4 100644 (file)
@@ -35,7 +35,8 @@ tbo_SOURCES = \
        custom-stock.h
 
 tbo_CFLAGS = @GTK_CFLAGS@ \
-                  -DDATA_DIR=\""$(pkgdatadir)"\"
+                       -DGNOMELOCALEDIR=\"$(datadir)/locale\" \
+                       -DDATA_DIR=\""$(pkgdatadir)"\"
 
 tbo_LDADD = @GTK_LIBS@
 
index 77c2b9a..2405ad4 100644 (file)
--- a/src/tbo.c
+++ b/src/tbo.c
@@ -1,9 +1,20 @@
 #include <gtk/gtk.h>
+#include <glib/gi18n.h>
+
+#include "config.h"
 
 #include "custom-stock.h"
 #include "tbo-window.h"
 
 int main (int argc, char**argv){
+
+#ifdef ENABLE_NLS
+       /* Initialize the i18n stuff */
+       bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
+       bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+       textdomain (GETTEXT_PACKAGE);
+#endif
+
     gtk_init (&argc, &argv);
     load_custom_stock ();
     tbo_new_tbo (800, 450);
index d818fb0..f875f5e 100644 (file)
@@ -1,6 +1,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <gtk/gtk.h>
+#include <glib/gi18n.h>
 #include "ui-menu.h"
 #include "ui-toolbar.h"
 #include "config.h"
@@ -65,7 +66,7 @@ update_toolbar (TboWindow *tbo)
 gboolean 
 toolbar_handler (GtkWidget *widget, gpointer data)
 {
-    printf("toolbar: %s\n", ((TboWindow *)data)->comic->title);
+    printf(_("toolbar: %s\n"), ((TboWindow *)data)->comic->title);
     return FALSE;
 }
 
@@ -109,43 +110,43 @@ prev_page (GtkAction *action, TboWindow *tbo)
 
 
 static const GtkActionEntry tbo_tools_entries [] = {
-    { "NewFileTool", GTK_STOCK_NEW, "_New", "<control>N",
-      "New Comic",
+    { "NewFileTool", GTK_STOCK_NEW, N_("_New"), "<control>N",
+      N_("New Comic"),
       G_CALLBACK (tbo_comic_new_dialog) },
 
-    { "OpenFileTool", GTK_STOCK_OPEN, "_Open", "<control>O",
-      "Open comic",
+    { "OpenFileTool", GTK_STOCK_OPEN, N_("_Open"), "<control>O",
+      N_("Open comic"),
       G_CALLBACK (toolbar_handler) },
 
-    { "SaveFileTool", GTK_STOCK_SAVE, "_Save", "<control>S",
-      "Save current document",
+    { "SaveFileTool", GTK_STOCK_SAVE, N_("_Save"), "<control>S",
+      N_("Save current document"),
       G_CALLBACK (toolbar_handler) },
 
     // Page tools
-    { "NewPage", GTK_STOCK_ADD, "New Page", "<control>P",
-      "New page",
+    { "NewPage", GTK_STOCK_ADD, N_("New Page"), "<control>P",
+      N_("New page"),
       G_CALLBACK (add_new_page) },
 
-    { "DelPage", GTK_STOCK_DELETE, "Delete Page", "",
-      "Delete current page",
+    { "DelPage", GTK_STOCK_DELETE, N_("Delete Page"), "",
+      N_("Delete current page"),
       G_CALLBACK (del_current_page) },
 
-    { "PrevPage", GTK_STOCK_GO_BACK, "Prev Page", "",
-      "Prev page",
+    { "PrevPage", GTK_STOCK_GO_BACK, N_("Prev Page"), "",
+      N_("Prev page"),
       G_CALLBACK (prev_page) },
 
-    { "NextPage", GTK_STOCK_GO_FORWARD, "Next Page", "",
-      "Next page",
+    { "NextPage", GTK_STOCK_GO_FORWARD, N_("Next Page"), "",
+      N_("Next page"),
       G_CALLBACK (next_page) },
 };
 
 static const GtkToggleActionEntry tbo_tools_toogle_entries [] = {
-    { "NewFrame", TBO_STOCK_FRAME, "New _Frame", "<control>F",
-      "New Frame",
+    { "NewFrame", TBO_STOCK_FRAME, N_("New _Frame"), "<control>F",
+      N_("New Frame"),
       G_CALLBACK (select_tool), FALSE },
 
-    { "Selector", TBO_STOCK_SELECTOR, "Selector", "",
-      "Selector",
+    { "Selector", TBO_STOCK_SELECTOR, N_("Selector"), "",
+      N_("Selector"),
       G_CALLBACK (select_tool), FALSE },
 };