libgda r3163 - in trunk: . doc/C doc/C/tmpl libgda libgda-report libgda-report/DocBook libgda-report/RML libgda-report/engine libgda/handlers libgda/sqlite po providers/mysql providers/postgres providers/sqlite tools



Author: vivien
Date: Tue Jun 10 20:46:16 2008
New Revision: 3163
URL: http://svn.gnome.org/viewvc/libgda?rev=3163&view=rev

Log:
2008-06-10  Vivien Malerba <malerba gnome-db org>

	* configure.in: if no --with-postgres or --with-mysql are passed to the configure
	script, then try to find PotgreSQL or MySQL
	* libgda/gda-connection.c:
	* libgda/gda-data-model-dsn-list.c:
	* libgda/gda-data-model-query.c:
	* libgda/gda-init.c:
	* libgda/gda-meta-store.c:
	* libgda/gda-meta-struct.c:
	* libgda/gda-server-operation.c:
	* libgda/gda-server-provider.c:
	* libgda/gda-server-provider-extra.c:
	* libgda/gda-util.c:
	* libgda/gda-xa-transaction.c:
	* libgda/handlers/gda-handler-bin.c:
	* libgda/handlers/gda-handler-boolean.c:
	* libgda/handlers/gda-handler-numerical.c:
	* libgda/handlers/gda-handler-time.c:
	* libgda/handlers/gda-handler-type.c:
	* libgda/sqlite/gda-sqlite-handler-bin.c:
	* libgda/gda-data-access-wrapper.c:
	* libgda/gda-data-model-array.c:
	* libgda/gda-data-model-dir.c:
	* libgda/gda-data-model-row.c:
	* libgda-report/DocBook/gda-report-docbook-document.c:
	* libgda-report/RML/gda-report-rml-document.c:
	* libgda-report/gda-report-document.c:
	* providers/mysql/mysql_specs_create_db.xml.in:
	* providers/mysql/mysql_specs_create_table.xml.in:
	* providers/postgres/postgres_specs_create_db.xml.in:
	* providers/sqlite/sqlite_specs_create_index.xml.in:
	* providers/sqlite/sqlite_specs_create_index.xml.in:
	* providers/sqlite/sqlite_specs_create_table.xml.in:
	* providers/mdb/mdb_specs_dsn.xml.in:
	* tools/gda-sql.c:
	* libgda-report/engine/gda-report-engine.c:
	* providers/postgres/gda-postgres-provider.c:
	* libgda/sqlite/gda-sqlite-provider.c:
	* providers/postgres/gda-postgres-provider.c: corrections for bug #537117
	* po/*: updated translation strings
	* libgda/gda-batch.[ch]: s/gda_batch_new_copy/gda_batch_copy/, and added gda_batch_get_parameters(),
	similar to gda_statement_get_parameters()
	* libgda/gda-set.[ch]: make gda_set_add_holder() return TRUE if the holder has
	really been added to the set
	* libgda/gda-connection.c: implemented gda_connection_batch_execute(), corrects bug #537558


Modified:
   trunk/ChangeLog
   trunk/configure.in
   trunk/doc/C/libgda-4.0-sections.txt
   trunk/doc/C/tmpl/gda-batch.sgml
   trunk/doc/C/tmpl/provider-support.sgml
   trunk/gtk-doc.make
   trunk/libgda-report/DocBook/gda-report-docbook-document.c
   trunk/libgda-report/RML/gda-report-rml-document.c
   trunk/libgda-report/engine/gda-report-engine.c
   trunk/libgda-report/gda-report-document.c
   trunk/libgda/gda-batch.c
   trunk/libgda/gda-batch.h
   trunk/libgda/gda-connection.c
   trunk/libgda/gda-connection.h
   trunk/libgda/gda-data-access-wrapper.c
   trunk/libgda/gda-data-model-array.c
   trunk/libgda/gda-data-model-dir.c
   trunk/libgda/gda-data-model-dsn-list.c
   trunk/libgda/gda-data-model-query.c
   trunk/libgda/gda-data-model-row.c
   trunk/libgda/gda-init.c
   trunk/libgda/gda-meta-store.c
   trunk/libgda/gda-meta-struct.c
   trunk/libgda/gda-server-operation.c
   trunk/libgda/gda-server-provider-extra.c
   trunk/libgda/gda-server-provider.c
   trunk/libgda/gda-set.c
   trunk/libgda/gda-set.h
   trunk/libgda/gda-util.c
   trunk/libgda/gda-xa-transaction.c
   trunk/libgda/handlers/gda-handler-bin.c
   trunk/libgda/handlers/gda-handler-boolean.c
   trunk/libgda/handlers/gda-handler-numerical.c
   trunk/libgda/handlers/gda-handler-time.c
   trunk/libgda/handlers/gda-handler-type.c
   trunk/libgda/sqlite/gda-sqlite-handler-bin.c
   trunk/libgda/sqlite/gda-sqlite-provider.c
   trunk/po/ar.po
   trunk/po/az.po
   trunk/po/ca.po
   trunk/po/cs.po
   trunk/po/da.po
   trunk/po/de.po
   trunk/po/dz.po
   trunk/po/el.po
   trunk/po/en_CA.po
   trunk/po/en_GB.po
   trunk/po/es.po
   trunk/po/eu.po
   trunk/po/fa.po
   trunk/po/fi.po
   trunk/po/fr.po
   trunk/po/ga.po
   trunk/po/gl.po
   trunk/po/hr.po
   trunk/po/hu.po
   trunk/po/it.po
   trunk/po/ja.po
   trunk/po/ko.po
   trunk/po/lt.po
   trunk/po/mk.po
   trunk/po/ml.po
   trunk/po/ms.po
   trunk/po/nb.po
   trunk/po/ne.po
   trunk/po/nl.po
   trunk/po/oc.po
   trunk/po/pa.po
   trunk/po/pl.po
   trunk/po/pt.po
   trunk/po/pt_BR.po
   trunk/po/ru.po
   trunk/po/rw.po
   trunk/po/sk.po
   trunk/po/sl.po
   trunk/po/sq.po
   trunk/po/sr.po
   trunk/po/sr Latn po
   trunk/po/sv.po
   trunk/po/tr.po
   trunk/po/uk.po
   trunk/po/vi.po
   trunk/po/zh_CN.po
   trunk/po/zh_HK.po
   trunk/po/zh_TW.po
   trunk/providers/mysql/mysql_specs_create_db.xml.in
   trunk/providers/mysql/mysql_specs_create_table.xml.in
   trunk/providers/postgres/gda-postgres-provider.c
   trunk/providers/postgres/postgres_specs_create_db.xml.in
   trunk/providers/postgres/postgres_specs_create_table.xml.in
   trunk/providers/sqlite/sqlite_specs_create_index.xml.in
   trunk/providers/sqlite/sqlite_specs_create_table.xml.in
   trunk/tools/gda-sql.c

Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in	(original)
+++ trunk/configure.in	Tue Jun 10 20:46:16 2008
@@ -401,7 +401,7 @@
 AM_CONDITIONAL(ODBC, test x$odbcdir != x)
 
 dnl Test for MySQL
-mysql_req=none
+mysql_req=auto
 AC_ARG_WITH(mysql,
 [  --with-mysql=<directory>	use mysql backend in <directory>],[
 if test $withval = no
@@ -429,6 +429,12 @@
 ])
 mysqldir=""
 
+if test $mysql_req = auto
+then
+	AC_MSG_CHECKING(for MySQL files)
+	AC_PATH_PROG(MYSQL_CONFIG, mysql_config)
+fi
+
 if test x$MYSQL_CONFIG != x
 then
 	mysqldir=yes
@@ -519,7 +525,7 @@
 AM_CONDITIONAL(MSQL, test x$msqldir != x)
 
 dnl Test for PostgreSQL
-postgres_req=none
+postgres_req=auto
 AC_ARG_WITH(postgres,
 [  --with-postgres=<directory>	use PostgreSQL backend in <directory>],[
 if test $withval = no
@@ -532,7 +538,7 @@
 	then
 		AC_MSG_WARN(Can't auto determine PostgreSQL installation in cross-compiling environment)
 	else
-		AC_MSG_CHECKING(for Postgres files)
+		AC_MSG_CHECKING(for PostgreSQL files)
 		AC_PATH_PROG(POSTGRES_CONFIG, pg_config)
 	fi
 else
@@ -547,6 +553,12 @@
 ])
 postgresdir=""
 
+if test $postgres_req = auto
+then
+	AC_MSG_CHECKING(for PostgreSQL files)
+	AC_PATH_PROG(POSTGRES_CONFIG, pg_config)
+fi
+
 if test x$POSTGRES_CONFIG != x
 then
 	postgresdir=yes

Modified: trunk/doc/C/libgda-4.0-sections.txt
==============================================================================
--- trunk/doc/C/libgda-4.0-sections.txt	(original)
+++ trunk/doc/C/libgda-4.0-sections.txt	Tue Jun 10 20:46:16 2008
@@ -125,6 +125,7 @@
 gda_connection_statement_execute_select_full
 gda_connection_statement_execute_select_fullv
 gda_connection_statement_execute_non_select
+gda_connection_batch_execute
 gda_connection_begin_transaction
 gda_connection_commit_transaction
 gda_connection_rollback_transaction
@@ -1124,11 +1125,12 @@
 <TITLE>GdaBatch</TITLE>
 GdaBatch
 gda_batch_new
-gda_batch_new_copy
+gda_batch_copy
 gda_batch_add_statement
 gda_batch_remove_statement
 gda_batch_serialize
 gda_batch_get_statements
+gda_batch_get_parameters
 <SUBSECTION Standard>
 GDA_IS_BATCH
 GDA_BATCH

Modified: trunk/doc/C/tmpl/gda-batch.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-batch.sgml	(original)
+++ trunk/doc/C/tmpl/gda-batch.sgml	Tue Jun 10 20:46:16 2008
@@ -43,7 +43,7 @@
 @Returns: 
 
 
-<!-- ##### FUNCTION gda_batch_new_copy ##### -->
+<!-- ##### FUNCTION gda_batch_copy ##### -->
 <para>
 
 </para>

Modified: trunk/doc/C/tmpl/provider-support.sgml
==============================================================================
--- trunk/doc/C/tmpl/provider-support.sgml	(original)
+++ trunk/doc/C/tmpl/provider-support.sgml	Tue Jun 10 20:46:16 2008
@@ -6,7 +6,8 @@
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+  The methods mentionned in this section are reserved for database providers implementatins and should
+  not bu used by developers outside that scope.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->

Modified: trunk/gtk-doc.make
==============================================================================
--- trunk/gtk-doc.make	(original)
+++ trunk/gtk-doc.make	Tue Jun 10 20:46:16 2008
@@ -5,11 +5,11 @@
 ####################################
 
 if GTK_DOC_USE_LIBTOOL
-GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS)
+GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS)
 else
-GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS)
+GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS)
 endif
 
 # We set GPATH here; this gives us semantics for GNU make
@@ -38,12 +38,7 @@
 	$(DOC_MODULE).prerequisites \
 	$(DOC_MODULE).signals
 
-REPORT_FILES = \
-	$(DOC_MODULE)-undocumented.txt \
-	$(DOC_MODULE)-undeclared.txt \
-	$(DOC_MODULE)-unused.txt
-
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS)
 
 if ENABLE_GTK_DOC
 all-local: html-build.stamp
@@ -84,10 +79,6 @@
 tmpl.stamp: tmpl-build.stamp
 	@true
 
-tmpl/*.sgml:
-	@true
-
-
 #### xml ####
 
 sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
@@ -105,11 +96,11 @@
 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
 	@echo 'gtk-doc: Building HTML'
 	@-chmod -R u+w $(srcdir)
-	rm -rf $(srcdir)/html
+	rm -rf $(srcdir)/html 
 	mkdir $(srcdir)/html
 	cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
 	test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
-	@echo 'gtk-doc: Fixing cross-references'
+	@echo 'gtk-doc: Fixing cross-references' 
 	cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
 	touch html-build.stamp
 
@@ -119,16 +110,11 @@
 	rm -f *~ *.bak
 	rm -rf .libs
 
-distclean-local:
-	cd $(srcdir) && \
-	  rm -rf xml $(REPORT_FILES) \
-	         $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
-
 maintainer-clean-local: clean
-	cd $(srcdir) && rm -rf xml html
+	cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
 
 install-data-local:
-	-installfiles=`echo $(srcdir)/html/*`; \
+	installfiles=`echo $(srcdir)/html/*`; \
 	if test "$$installfiles" = '$(srcdir)/html/*'; \
 	then echo '-- Nothing to install' ; \
 	else \
@@ -139,10 +125,7 @@
 	  done; \
 	  echo '-- Installing $(srcdir)/html/index.sgml' ; \
 	  $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \
-	  which gtkdoc-rebase >/dev/null && \
-	    gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \
 	fi
-	
 
 uninstall-local:
 	rm -f $(DESTDIR)$(TARGET_DIR)/*
@@ -165,9 +148,8 @@
 	-cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
 	-cp $(srcdir)/xml/*.xml $(distdir)/xml
 	cp $(srcdir)/html/* $(distdir)/html
-	-cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
-	-cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
-	cd $(distdir) && rm -f $(DISTCLEANFILES)
-	-gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
+	if test -f $(srcdir)/$(DOC_MODULE).types; then \
+	  cp $(srcdir)/$(DOC_MODULE).types $(distdir)/$(DOC_MODULE).types; \
+	fi
 
 .PHONY : dist-hook-local docs

Modified: trunk/libgda-report/DocBook/gda-report-docbook-document.c
==============================================================================
--- trunk/libgda-report/DocBook/gda-report-docbook-document.c	(original)
+++ trunk/libgda-report/DocBook/gda-report-docbook-document.c	Tue Jun 10 20:46:16 2008
@@ -277,7 +277,7 @@
 		}
 		if (!xsltproc) {
 			g_set_error (error, 0, 0,
-				     _("Could not find the 'xsltproc' program"));
+				     _("Could not find the '%s' program"), "xsltproc");
 			return FALSE;
 		}
 	}
@@ -343,7 +343,7 @@
 		}
 		if (!fdoc->priv->fop_path) {
 			g_set_error (error, 0, 0,
-				     _("Could not find the 'fop' program"));
+				     _("Could not find the '%s' program"), "fop");
 			return FALSE;
 		}
 	}

Modified: trunk/libgda-report/RML/gda-report-rml-document.c
==============================================================================
--- trunk/libgda-report/RML/gda-report-rml-document.c	(original)
+++ trunk/libgda-report/RML/gda-report-rml-document.c	Tue Jun 10 20:46:16 2008
@@ -201,7 +201,7 @@
 		}
 		if (!converter) {
 			g_set_error (error, 0, 0,
-				     _("Could not find the 'trml2html.py' program"));
+				     _("Could not find the '%s' program"), "trml2html.py");
 			return FALSE;
 		}
 	}
@@ -228,7 +228,7 @@
 		}
 		if (!converter) {
 			g_set_error (error, 0, 0,
-				     _("Could not find the 'trml2pdf.py' program"));
+				     _("Could not find the '%s' program"), "trml2pdf.py");
 			return FALSE;
 		}
 	}

Modified: trunk/libgda-report/engine/gda-report-engine.c
==============================================================================
--- trunk/libgda-report/engine/gda-report-engine.c	(original)
+++ trunk/libgda-report/engine/gda-report-engine.c	Tue Jun 10 20:46:16 2008
@@ -865,7 +865,7 @@
 	prop = xmlGetProp (node, BAD_CAST "expr");
 	if (!prop) {
 		g_set_error (error, 0, 0,
-			     _("No expression speficied")); 
+			     _("No expression specified")); 
 		return FALSE;
 	}
 

Modified: trunk/libgda-report/gda-report-document.c
==============================================================================
--- trunk/libgda-report/gda-report-document.c	(original)
+++ trunk/libgda-report/gda-report-document.c	Tue Jun 10 20:46:16 2008
@@ -341,7 +341,7 @@
 		return CLASS (doc)->run_as_html (doc, filename, error);
 	else {
 		g_set_error (error, 0, 0,
-			     _("This report document does not handle HTML output"));
+			     _("This report document does not handle %s output"), "HTML");
 		return FALSE;
 	}
 }
@@ -366,7 +366,7 @@
 		return CLASS (doc)->run_as_pdf (doc, filename, error);
 	else {
 		g_set_error (error, 0, 0,
-			     _("This report document does not handle PDF output"));
+			     _("This report document does not handle %s output"), "PDF");
 		return FALSE;
 	}
 }

Modified: trunk/libgda/gda-batch.c
==============================================================================
--- trunk/libgda/gda-batch.c	(original)
+++ trunk/libgda/gda-batch.c	Tue Jun 10 20:46:16 2008
@@ -21,6 +21,8 @@
 #include <string.h>
 #include <glib/gi18n-lib.h>
 #include <libgda/gda-batch.h>
+#include <libgda/gda-set.h>
+#include <libgda/gda-holder.h>
 
 /* 
  * Main static functions 
@@ -150,7 +152,7 @@
 
 
 /**
- * gda_batch_new_copy
+ * gda_batch_copy
  * @orig: a #GdaBatch to make a copy of
  * 
  * Copy constructor
@@ -158,7 +160,7 @@
  * Returns: a the new copy of @orig
  */
 GdaBatch *
-gda_batch_new_copy (GdaBatch *orig)
+gda_batch_copy (GdaBatch *orig)
 {
 	GObject *obj;
 	GdaBatch *batch;
@@ -369,3 +371,80 @@
 
 	return batch->priv->statements;
 }
+
+/**
+ * gda_batch_get_parameters
+ * @batch: a #GdaBatch object
+ * @out_params: a place to store a new #GdaSet object, or %NULL
+ * @error: a place to store errors, or %NULL
+ *
+ * Get a new #GdaSet object which groups all the execution parameters
+ * which @batch needs for all the statements it includes.
+ * This new object is returned though @out_params.
+ *
+ * Note that if @batch does not need any parameter, then @out_params is set to %NULL.
+ *
+ * Returns: TRUE if no error occurred.
+ */
+gboolean
+gda_batch_get_parameters (GdaBatch *batch, GdaSet **out_params, GError **error)
+{
+	GdaSet *set = NULL;
+	GSList *list;
+
+	g_return_val_if_fail (GDA_IS_BATCH (batch), FALSE);
+	g_return_val_if_fail (batch->priv, FALSE);
+
+	if (out_params)
+		*out_params = NULL;	
+
+	if (!batch->priv->statements)
+		return TRUE;
+
+	for (list = batch->priv->statements; list; list = list->next) {
+		GdaSet *tmpset = NULL;
+		if (!gda_statement_get_parameters (GDA_STATEMENT (list->data), out_params ? &tmpset : NULL, error)) {
+			if (tmpset)
+				g_object_unref (tmpset);
+			if (set)
+				g_object_unref (set);
+			return FALSE;
+		}
+
+		if (tmpset && tmpset->holders) {
+			if (!set) {
+				set = tmpset;
+				tmpset = NULL;
+			}
+			else {
+				/* merge @set and @tmp_set */
+				GSList *holders;
+				for (holders = tmpset->holders; holders; holders = holders->next) {
+					GdaHolder *holder = (GdaHolder *) holders->data;
+					if (! gda_set_add_holder (set, holder)) {
+						GdaHolder *eholder = gda_set_get_holder (set, gda_holder_get_id (holder));
+						if (!eholder ||
+						    (gda_holder_get_g_type (eholder) != (gda_holder_get_g_type (holder)))) {
+							/* error */
+							g_set_error (error, GDA_BATCH_ERROR, 0,
+								     _("Conflicting parameter '%s'"), gda_holder_get_id (holder));
+							g_object_unref (tmpset);
+							g_object_unref (set);
+							return FALSE;
+						}
+					}
+				}
+			}
+		}
+		if (tmpset)
+			g_object_unref (tmpset);
+	}
+
+	if (set) {
+		if (out_params)
+			*out_params = set;
+		else
+			g_object_unref (set);
+	}
+	return TRUE;
+}

Modified: trunk/libgda/gda-batch.h
==============================================================================
--- trunk/libgda/gda-batch.h	(original)
+++ trunk/libgda/gda-batch.h	Tue Jun 10 20:46:16 2008
@@ -54,12 +54,13 @@
 
 GType              gda_batch_get_type               (void) G_GNUC_CONST;
 GdaBatch          *gda_batch_new                    (void);
-GdaBatch          *gda_batch_new_copy               (GdaBatch *orig);
+GdaBatch          *gda_batch_copy                   (GdaBatch *orig);
 void               gda_batch_add_statement          (GdaBatch *batch, GdaStatement *stmt);
 void               gda_batch_remove_statement       (GdaBatch *batch, GdaStatement *stmt);
 
 gchar             *gda_batch_serialize              (GdaBatch *batch);
 const GSList      *gda_batch_get_statements         (GdaBatch *batch);
+gboolean           gda_batch_get_parameters         (GdaBatch *batch, GdaSet **out_params, GError **error);
 
 G_END_DECLS
 

Modified: trunk/libgda/gda-connection.c
==============================================================================
--- trunk/libgda/gda-connection.c	(original)
+++ trunk/libgda/gda-connection.c	Tue Jun 10 20:46:16 2008
@@ -185,8 +185,8 @@
                                          g_param_spec_flags ("options", _("Options (connection sharing)"),
 							    NULL, GDA_TYPE_CONNECTION_OPTIONS, GDA_CONNECTION_OPTIONS_NONE,
 							    (G_PARAM_READABLE | G_PARAM_WRITABLE)));
-	/* To translators: Don't translate "GdaMetaStore", it's a class name */
         g_object_class_install_property (object_class, PROP_META_STORE,
+					 /* To translators: Don't translate "GdaMetaStore", it's a class name */
 					 g_param_spec_object ("meta-store", _ ("GdaMetaStore used by the connection"),
 							      NULL, GDA_TYPE_META_STORE,
 							      (G_PARAM_READABLE | G_PARAM_WRITABLE)));
@@ -1228,6 +1228,46 @@
 }
 
 /**
+ * gda_connection_batch_execute
+ * @cnc: a #GdaConnection object
+ * @batch: a #GdaBatch object which contains all the statements to execute
+ * @params: a #GdaSet object (which can be obtained using gda_batch_get_parameters()), or %NULL
+ * @model_usage:  specifies how the returned data model(s) will be used, as a #GdaStatementModelUsage enum
+ * @error: a place to store errors, or %NULL
+ *
+ * Executes all the statements contained in @batch (in the order in which they were added to @batch), and
+ * returns a list of #GObject objects, at most one #GObject for each statement; see gda_connection_statement_execute()
+ * for details about the returned objects.
+ *
+ * If one of the statement fails, then none of the subsequent statement will be executed, and the method returns
+ * the list of #GObject created by the correct execution of the previous statements. If a transaction is required,
+ * then it should be started before calling this method.
+ *
+ * Returns: a list of #GObject objects
+ */
+GSList *
+gda_connection_batch_execute (GdaConnection *cnc, GdaBatch *batch, GdaSet *params,
+			      GdaStatementModelUsage model_usage, GError **error)
+{
+	GSList *retlist = NULL, *stmt_list;
+	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
+	g_return_val_if_fail (cnc->priv, NULL);
+	g_return_val_if_fail (GDA_IS_BATCH (cnc), NULL);
+
+	for (stmt_list = (GSList*) gda_batch_get_statements (batch); stmt_list; stmt_list = stmt_list->next) {
+		GObject *obj;
+		obj = gda_connection_statement_execute (cnc, GDA_STATEMENT (stmt_list->data), params,
+							model_usage, NULL, error);
+		if (!obj)
+			break;
+		retlist = g_slist_prepend (retlist, obj);
+	}
+	
+	return g_slist_reverse (retlist);
+}
+
+
+/**
  * gda_connection_statement_to_sql
  * @cnc: a #GdaConnection object
  * @stmt: a #GdaStatement object

Modified: trunk/libgda/gda-connection.h
==============================================================================
--- trunk/libgda/gda-connection.h	(original)
+++ trunk/libgda/gda-connection.h	Tue Jun 10 20:46:16 2008
@@ -163,7 +163,7 @@
 const GList         *gda_connection_get_events           (GdaConnection *cnc);
 
 GdaSqlParser        *gda_connection_create_parser        (GdaConnection *cnc);
-GObject             *gda_connection_batch_execute        (GdaConnection *cnc,
+GSList              *gda_connection_batch_execute        (GdaConnection *cnc,
 							  GdaBatch *batch, GdaSet *params,
 							  GdaStatementModelUsage model_usage, GError **error);
 

Modified: trunk/libgda/gda-data-access-wrapper.c
==============================================================================
--- trunk/libgda/gda-data-access-wrapper.c	(original)
+++ trunk/libgda/gda-data-access-wrapper.c	Tue Jun 10 20:46:16 2008
@@ -476,7 +476,7 @@
 	g_return_val_if_fail (row >= 0, NULL);
 
 	if (col >= imodel->priv->nb_cols) {
-		g_warning (_("Column %d out of range 0 - %d"), col, imodel->priv->nb_cols);
+		g_warning (_("Column %d out of range (0-%d)"), col, imodel->priv->nb_cols);
 		return NULL;
 	}
 

Modified: trunk/libgda/gda-data-model-array.c
==============================================================================
--- trunk/libgda/gda-data-model-array.c	(original)
+++ trunk/libgda/gda-data-model-array.c	Tue Jun 10 20:46:16 2008
@@ -80,7 +80,7 @@
 
 	if (row >= GDA_DATA_MODEL_ARRAY (model)->priv->rows->len) {
 		g_set_error (error, 0, 0,
-			     _("Row %d out of range 0 - %d"), row,
+			     _("Row %d out of range (0-%d)"), row,
 			     GDA_DATA_MODEL_ARRAY (model)->priv->rows->len- 1);
 		return NULL;
 	}
@@ -101,13 +101,13 @@
 	}
 
 	if (row >= GDA_DATA_MODEL_ARRAY (model)->priv->rows->len) {
-		g_warning (_("Row %d out of range 0 - %d"), row, 
+		g_warning (_("Row %d out of range (0-%d)"), row, 
 			   GDA_DATA_MODEL_ARRAY (model)->priv->rows->len - 1);
 		return NULL;
 	}
 
 	if (col >= GDA_DATA_MODEL_ARRAY (model)->priv->number_of_columns) {
-		g_warning (_("Column %d out of range 0 - %d"), col, 
+		g_warning (_("Column %d out of range (0-%d)"), col, 
 			   GDA_DATA_MODEL_ARRAY (model)->priv->number_of_columns - 1);
 		return NULL;
 	}

Modified: trunk/libgda/gda-data-model-dir.c
==============================================================================
--- trunk/libgda/gda-data-model-dir.c	(original)
+++ trunk/libgda/gda-data-model-dir.c	Tue Jun 10 20:46:16 2008
@@ -784,7 +784,7 @@
 
 	if (row >= imodel->priv->rows->len) {
 		gchar *str;
-                str = g_strdup_printf (_("Row %d out of range 0 - %d"), row,
+                str = g_strdup_printf (_("Row %d out of range (0-%d)"), row,
 				       imodel->priv->rows->len - 1);
 		add_error (imodel, str);
 		g_free (str);
@@ -943,7 +943,7 @@
 
 	if (row >= imodel->priv->rows->len) {
 		gchar *str;
-                str = g_strdup_printf (_("Row %d out of range 0 - %d"), row,
+                str = g_strdup_printf (_("Row %d out of range (0-%d)"), row,
 				       imodel->priv->rows->len - 1);
 		add_error (imodel, str);
 		g_set_error (error, 0, 0, str);
@@ -1287,7 +1287,7 @@
 
 	if (row >= imodel->priv->rows->len) {
 		gchar *str;
-                str = g_strdup_printf (_("Row %d out of range 0 - %d"), row,
+                str = g_strdup_printf (_("Row %d out of range (0-%d)"), row,
 				       imodel->priv->rows->len - 1);
 		add_error (imodel, str);
 		g_set_error (error, 0, 0, str);

Modified: trunk/libgda/gda-data-model-dsn-list.c
==============================================================================
--- trunk/libgda/gda-data-model-dsn-list.c	(original)
+++ trunk/libgda/gda-data-model-dsn-list.c	Tue Jun 10 20:46:16 2008
@@ -118,6 +118,8 @@
 	model->priv->columns = g_slist_append (model->priv->columns, col);
 
 	col = gda_column_new ();
+	/* To translators: a "Connection string" is a semi-colon delimited list of key=value pairs which
+	 * define the parameters for a connection, such as "DB_NAME=thedb;HOSTNAME=moon */
 	gda_column_set_name (col, _("Connection string"));
 	gda_column_set_title (col, _("Connection string"));
 	gda_column_set_g_type (col, G_TYPE_STRING);

Modified: trunk/libgda/gda-data-model-query.c
==============================================================================
--- trunk/libgda/gda-data-model-query.c	(original)
+++ trunk/libgda/gda-data-model-query.c	Tue Jun 10 20:46:16 2008
@@ -664,7 +664,7 @@
 	}
 	if (! gda_connection_is_opened (model->priv->cnc)) {
 		g_set_error (error, GDA_DATA_MODEL_QUERY_ERROR, GDA_DATA_MODEL_QUERY_CONNECTION_ERROR,
-			     _("Specified is closed"));
+			     _("Specified connection is closed"));
 		return FALSE;
 	}
 
@@ -1076,7 +1076,7 @@
 	}
 	if (! gda_connection_is_opened (selmodel->priv->cnc)) {
 		g_set_error (error, GDA_DATA_MODEL_QUERY_ERROR, GDA_DATA_MODEL_QUERY_CONNECTION_ERROR,
-			     _("Specified is closed"));
+			     _("Specified connection is closed"));
 		return FALSE;
 	}
 

Modified: trunk/libgda/gda-data-model-row.c
==============================================================================
--- trunk/libgda/gda-data-model-row.c	(original)
+++ trunk/libgda/gda-data-model-row.c	Tue Jun 10 20:46:16 2008
@@ -258,7 +258,7 @@
 	GdaColumn *column;
 
 	if (col >= gda_data_model_get_n_columns (model)) {
-		g_warning ("Column %d out of range 0 - %d", col, gda_data_model_get_n_columns (model) - 1);
+		g_warning ("Column %d out of range (0-%d)", col, gda_data_model_get_n_columns (model) - 1);
 		return NULL;
 	}
 

Modified: trunk/libgda/gda-init.c
==============================================================================
--- trunk/libgda/gda-init.c	(original)
+++ trunk/libgda/gda-init.c	Tue Jun 10 20:46:16 2008
@@ -44,7 +44,7 @@
 	gchar *file;
 
 	if (initialized) {
-		gda_log_error (_("Attempt to re-initialize GDA library. ignored."));
+		gda_log_error (_("Ignoring attempt to re-initialize GDA library."));
 		return;
 	}
 

Modified: trunk/libgda/gda-meta-store.c
==============================================================================
--- trunk/libgda/gda-meta-store.c	(original)
+++ trunk/libgda/gda-meta-store.c	Tue Jun 10 20:46:16 2008
@@ -2907,7 +2907,8 @@
 			     _("Attribute '%s' not found"), att_name);
 	else if (nrows > 1) 
 		g_set_error (error, GDA_META_STORE_ERROR, GDA_META_STORE_ATTRIBUTE_ERROR,
-			     _("Attribute '%s' has %d values"), att_name, nrows);
+			     ngettext ("Attribute '%s' has %d value", "Attribute '%s' has %d values", nrows), 
+			     att_name, nrows);
 	else {
 		value = (GValue*) gda_data_model_get_value_at (model, 0, 0);
 		if (value && (G_VALUE_TYPE (value) == G_TYPE_STRING)) {

Modified: trunk/libgda/gda-meta-struct.c
==============================================================================
--- trunk/libgda/gda-meta-struct.c	(original)
+++ trunk/libgda/gda-meta-struct.c	Tue Jun 10 20:46:16 2008
@@ -108,6 +108,9 @@
         object_class->set_property = gda_meta_struct_set_property;
         object_class->get_property = gda_meta_struct_get_property;
         g_object_class_install_property (object_class, PROP_FEATURES,
+					 /* To translators: The GdaMetaStruct object computes lists of tables, views,
+					  * and some other information, the "Features to compute" allows one to avoid
+					  * computing some features which won't be used */
 					 g_param_spec_uint ("features", _ ("Features to compute"), NULL, 
 							    GDA_META_STRUCT_FEATURE_NONE, G_MAXINT,
 							    GDA_META_STRUCT_FEATURE_ALL,

Modified: trunk/libgda/gda-server-operation.c
==============================================================================
--- trunk/libgda/gda-server-operation.c	(original)
+++ trunk/libgda/gda-server-operation.c	Tue Jun 10 20:46:16 2008
@@ -1123,7 +1123,8 @@
 	case GDA_SERVER_OPERATION_DROP_VIEW:
 		return "DROP_VIEW";
 	default:
-		g_error (_("Non handled GdaServerOperationType, please report error"));
+		g_error (_("Non handled GdaServerOperationType, please report error to "
+			   "http://bugzilla.gnome.org/ for the \"libgda\" product"));
 		return "";
 	}
 }
@@ -1295,7 +1296,7 @@
 	/* actual data loading */
 	if (strcmp ((gchar*)node->name, "serv_op_data")) {
 		g_set_error (error, 0, 0,
-			     _("Expected tag <serv_op_data>, got <%s>"), node->name);
+			     _("Expected tag <%s>, got <%s>"), "serv_op_data", node->name);
 		return FALSE;
 	}
 	
@@ -1309,7 +1310,7 @@
 
 		if (strcmp ((gchar*)cur->name, "op_data")) {
 			g_set_error (error, 0, 0,
-				     _("Expected tag <op_data>, got <%s>"), cur->name);
+				     _("Expected tag <%s>, got <%s>"), "op_data", cur->name);
 			return FALSE;
 		}
 

Modified: trunk/libgda/gda-server-provider-extra.c
==============================================================================
--- trunk/libgda/gda-server-provider-extra.c	(original)
+++ trunk/libgda/gda-server-provider-extra.c	Tue Jun 10 20:46:16 2008
@@ -233,6 +233,7 @@
 } GdaSchemaColData;
 
 GdaSchemaColData aggs_spec [] = {
+	/* To translators: "Aggregate": the noun */
 	{ N_("Aggregate"), G_TYPE_STRING},
 	{ N_("Id"), G_TYPE_STRING},
 	{ N_("Owner"), G_TYPE_STRING},
@@ -282,6 +283,7 @@
 	{ N_("Owner"), G_TYPE_STRING},
 	{ N_("Comments"), G_TYPE_STRING},
 	{ N_("Return type"), G_TYPE_STRING},
+	/* To translators: "Nb args": the procedure's number of arguments */
 	{ N_("Nb args"), G_TYPE_INT},
 	{ N_("Args types"), G_TYPE_STRING},
 	{ N_("Definition"), G_TYPE_STRING}

Modified: trunk/libgda/gda-server-provider.c
==============================================================================
--- trunk/libgda/gda-server-provider.c	(original)
+++ trunk/libgda/gda-server-provider.c	Tue Jun 10 20:46:16 2008
@@ -822,8 +822,10 @@
 
 	if (CLASS (provider)->escape_string) {
 		if (! CLASS (provider)->unescape_string)
-			g_warning (_("GdaServerProvider object implements the escape_string() virtual method but "
-				     "does not implement the unescape_string() one, please report this bug."));
+			g_warning (_("GdaServerProvider object implements the %s virtual method but "
+				     "does not implement the %s one, please report this bug to "
+				     "http://bugzilla.gnome.org/ for the \"libgda\" product."), 
+				   "escape_string()", "unescape_string()");
 		return (CLASS (provider)->escape_string)(provider, cnc, str);
 	}
 	else 
@@ -849,8 +851,10 @@
 
 	if (CLASS (provider)->unescape_string) {
 		if (! CLASS (provider)->escape_string)
-			g_warning (_("GdaServerProvider object implements the unescape_string() virtual method but "
-				     "does not implement the escape_string() one, please report this bug."));
+			g_warning (_("GdaServerProvider object implements the %s virtual method but "
+				     "does not implement the %s one, please report this bug to "
+				     "http://bugzilla.gnome.org/ for the \"libgda\" product."),
+				   "unescape_string()", "escape_string()");
 		return (CLASS (provider)->unescape_string)(provider, cnc, str);
 	}
 	else

Modified: trunk/libgda/gda-set.c
==============================================================================
--- trunk/libgda/gda-set.c	(original)
+++ trunk/libgda/gda-set.c	Tue Jun 10 20:46:16 2008
@@ -54,7 +54,7 @@
 static void notify_holder_cb (GdaHolder *holder, GParamSpec *pspec, GdaSet *dataset);
 
 static void compute_public_data (GdaSet *set);
-static void gda_set_real_add_holder (GdaSet *set, GdaHolder *holder);
+static gboolean gda_set_real_add_holder (GdaSet *set, GdaHolder *holder);
 
 /* get a pointer to the parents to be able to call their destructor */
 static GObjectClass  *parent_class = NULL;
@@ -1208,26 +1208,32 @@
  * Adds @holder to the list of holders managed within @set.
  *
  * NOTE: if @set already has a #GdaHolder with the same ID as @holder, then @holder
- * will not be added to the set, even if @holder's type or value is not the same as the
- * on already in @set.
+ * will not be added to the set (even if @holder's type or value is not the same as the
+ * one already in @set).
+ *
+ * Returns: TRUE if @holder has been added to @set (and FALSE if it has not been added because there is another #GdaHolder
+ * with the same ID)
  */
-void
+gboolean
 gda_set_add_holder (GdaSet *set, GdaHolder *holder)
 {
+	gboolean added;
 	g_return_if_fail (GDA_IS_SET (set));
 	g_return_if_fail (GDA_IS_HOLDER (holder));
 
-	gda_set_real_add_holder (set, holder);
-	compute_public_data (set);
+	added = gda_set_real_add_holder (set, holder);
+	if (added)
+		compute_public_data (set);
+	return added;
 }
 
-static void
+static gboolean
 gda_set_real_add_holder (GdaSet *set, GdaHolder *holder)
 {
 	GdaHolder *similar;
 
 	if (g_slist_find (set->holders, holder))
-		return;
+		return FALSE;
 
 	/* 
 	 * try to find a similar holder in the set->holders:
@@ -1245,11 +1251,14 @@
 				  G_CALLBACK (source_changed_holder_cb), set);
 		g_signal_connect (G_OBJECT (holder), "notify",
 				  G_CALLBACK (notify_holder_cb), set);
+		return TRUE;
 	}
+	else {
 #ifdef GDA_DEBUG_NO
-	else 
 		g_print ("In Set %p, Holder %p and %p are similar, keeping %p only\n", set, similar, holder, similar);
 #endif
+		return FALSE;
+	}
 }
 
 

Modified: trunk/libgda/gda-set.h
==============================================================================
--- trunk/libgda/gda-set.h	(original)
+++ trunk/libgda/gda-set.h	Tue Jun 10 20:46:16 2008
@@ -142,7 +142,7 @@
 gboolean      gda_set_set_holder_value         (GdaSet *set, const gchar *holder_id, ...);
 const GValue *gda_set_get_holder_value         (GdaSet *set, const gchar *holder_id);
 GdaHolder    *gda_set_get_holder               (GdaSet *set, const gchar *holder_id);
-void          gda_set_add_holder               (GdaSet *set, GdaHolder *holder);
+gboolean      gda_set_add_holder               (GdaSet *set, GdaHolder *holder);
 void          gda_set_remove_holder            (GdaSet *set, GdaHolder *holder);
 void          gda_set_merge_with_set           (GdaSet *set, GdaSet *set_to_merge);
 gboolean      gda_set_is_valid                 (GdaSet *set);

Modified: trunk/libgda/gda-util.c
==============================================================================
--- trunk/libgda/gda-util.c	(original)
+++ trunk/libgda/gda-util.c	Tue Jun 10 20:46:16 2008
@@ -877,6 +877,8 @@
 
 		if (!ist->fields_list) {
 			/* nothing to insert => don't create statement */
+			/* To translators: this error message occurs when no "INSERT INTO <table> (field1, ...)..." 
+			 * SQL statement can be computed because no table field can be used */
 			g_set_error (error, GDA_SQL_ERROR, GDA_SQL_STRUCTURE_CONTENTS_ERROR,
 				     _("Could not compute any field to insert into"));
 			retval = FALSE;

Modified: trunk/libgda/gda-xa-transaction.c
==============================================================================
--- trunk/libgda/gda-xa-transaction.c	(original)
+++ trunk/libgda/gda-xa-transaction.c	Tue Jun 10 20:46:16 2008
@@ -373,8 +373,8 @@
 		if (cnc != xa_trans->priv->non_xa_cnc) {
 		       
 			if (!PROV_CLASS (prov)->xa_funcs->xa_start) {
-				g_warning (_("Provider error: method xa_start() not implemented for provider %s"),
-					   gda_server_provider_get_name (prov));
+				g_warning (_("Provider error: %s method not implemented for provider %s"),
+					   "xa_start()", gda_server_provider_get_name (prov));
 				break;
 			}
 			else {
@@ -404,8 +404,8 @@
 			prov = gda_connection_get_provider_obj (cnc);
 			if (cnc != xa_trans->priv->non_xa_cnc) {
 				if (!PROV_CLASS (prov)->xa_funcs->xa_rollback) 
-					g_warning (_("Provider error: method xa_rollback() not implemented for provider %s"),
-						   gda_server_provider_get_name (prov));
+					g_warning (_("Provider error: %s method not implemented for provider %s"),
+						   "xa_rollback()", gda_server_provider_get_name (prov));
 				else {
 					const GdaBinary *branch;
 					branch = g_hash_table_lookup (xa_trans->priv->cnc_hash, cnc);
@@ -475,13 +475,13 @@
 			break;
 
 		if (!PROV_CLASS (prov)->xa_funcs->xa_prepare) {
-			g_warning (_("Provider error: method xa_prepare() not implemented for provider %s"),
-				   gda_server_provider_get_name (prov));
+			g_warning (_("Provider error: %s method not implemented for provider %s"),
+				   "xa_prepare()", gda_server_provider_get_name (prov));
 			break;
 		}
 		if (!PROV_CLASS (prov)->xa_funcs->xa_commit) {
-			g_warning (_("Provider error: method xa_commit() not implemented for provider %s"),
-				   gda_server_provider_get_name (prov));
+			g_warning (_("Provider error: %s method not implemented for provider %s"),
+				   "xa_commit()", gda_server_provider_get_name (prov));
 			break;
 		}
 
@@ -507,8 +507,8 @@
 				if (PROV_CLASS (prov)->xa_funcs->xa_rollback)
 					PROV_CLASS (prov)->xa_funcs->xa_rollback (prov, cnc, &(xa_trans->priv->xid), NULL);
 				else
-					g_warning (_("Provider error: method xa_rollback() not implemented for provider %s"),
-						   gda_server_provider_get_name (prov));
+					g_warning (_("Provider error: %s method not implemented for provider %s"),
+						   "xa_rollback()", gda_server_provider_get_name (prov));
 			}
 		}
 		return FALSE;
@@ -537,8 +537,8 @@
 				if (PROV_CLASS (prov)->xa_funcs->xa_rollback)
 					PROV_CLASS (prov)->xa_funcs->xa_rollback (prov, cnc, &(xa_trans->priv->xid), NULL);
 				else
-					g_warning (_("Provider error: method xa_rollback() not implemented for provider %s"),
-						   gda_server_provider_get_name (prov));
+					g_warning (_("Provider error: %s method not implemented for provider %s"),
+						   "xa_rollback()", gda_server_provider_get_name (prov));
 			}
 		}
 		return FALSE;
@@ -595,8 +595,8 @@
 			memcpy (xa_trans->priv->xid.data + xa_trans->priv->xid.gtrid_length,
 			branch->data, branch->binary_length);
 			if (!PROV_CLASS (prov)->xa_funcs->xa_rollback) 
-				g_warning (_("Provider error: method xa_prepare() not implemented for provider %s"),
-					   gda_server_provider_get_name (prov));
+				g_warning (_("Provider error: %s method not implemented for provider %s"),
+					   "xa_prepare()", gda_server_provider_get_name (prov));
 			else
 				PROV_CLASS (prov)->xa_funcs->xa_rollback (prov, cnc, &(xa_trans->priv->xid), error);
 		}
@@ -641,8 +641,8 @@
 			
 
 			if (!PROV_CLASS (prov)->xa_funcs->xa_recover) 
-				g_warning (_("Provider error: method xa_recover() not implemented for provider %s"),
-					   gda_server_provider_get_name (prov));
+				g_warning (_("Provider error: %s method not implemented for provider %s"),
+					   "xa_recover()", gda_server_provider_get_name (prov));
 			else {
 				const GdaBinary *branch;
 				GList *xlist;
@@ -675,8 +675,8 @@
 
 				if (commit_needed) {
 					if (!PROV_CLASS (prov)->xa_funcs->xa_commit) {
-						g_warning (_("Provider error: method xa_commit() not implemented for provider %s"),
-							   gda_server_provider_get_name (prov));
+						g_warning (_("Provider error: %s method not implemented for provider %s"),
+							   "xa_commit()", gda_server_provider_get_name (prov));
 						retval = FALSE;
 					}
 					else {

Modified: trunk/libgda/handlers/gda-handler-bin.c
==============================================================================
--- trunk/libgda/handlers/gda-handler-bin.c	(original)
+++ trunk/libgda/handlers/gda-handler-bin.c	Tue Jun 10 20:46:16 2008
@@ -119,7 +119,7 @@
 	hdl->priv->valid_g_types[0] = GDA_TYPE_BINARY;
 	hdl->priv->valid_g_types[1] = GDA_TYPE_BLOB;
 
-	g_object_set_data (G_OBJECT (hdl), "name", _("InternalBin"));
+	g_object_set_data (G_OBJECT (hdl), "name", "InternalBin");
 	g_object_set_data (G_OBJECT (hdl), "descr", _("Binary representation"));
 }
 

Modified: trunk/libgda/handlers/gda-handler-boolean.c
==============================================================================
--- trunk/libgda/handlers/gda-handler-boolean.c	(original)
+++ trunk/libgda/handlers/gda-handler-boolean.c	Tue Jun 10 20:46:16 2008
@@ -118,7 +118,7 @@
 	hdl->priv->valid_g_types = g_new0 (GType, 1);
 	hdl->priv->valid_g_types[0] = G_TYPE_BOOLEAN;
 
-	g_object_set_data (G_OBJECT (hdl), "name", _("InternalBoolean"));
+	g_object_set_data (G_OBJECT (hdl), "name", "InternalBoolean");
 	g_object_set_data (G_OBJECT (hdl), "descr", _("Boolean representation"));
 }
 

Modified: trunk/libgda/handlers/gda-handler-numerical.c
==============================================================================
--- trunk/libgda/handlers/gda-handler-numerical.c	(original)
+++ trunk/libgda/handlers/gda-handler-numerical.c	Tue Jun 10 20:46:16 2008
@@ -127,7 +127,7 @@
         hdl->priv->valid_g_types[9] = G_TYPE_UCHAR;
 	hdl->priv->valid_g_types[10] = G_TYPE_UINT;
 
-	g_object_set_data (G_OBJECT (hdl), "name", _("InternalNumerical"));
+	g_object_set_data (G_OBJECT (hdl), "name", "InternalNumerical");
 	g_object_set_data (G_OBJECT (hdl), "descr", _("Numerical representation"));
 }
 

Modified: trunk/libgda/handlers/gda-handler-time.c
==============================================================================
--- trunk/libgda/handlers/gda-handler-time.c	(original)
+++ trunk/libgda/handlers/gda-handler-time.c	Tue Jun 10 20:46:16 2008
@@ -163,7 +163,7 @@
 	hdl->priv->str_locale->current_offset = 0;
 	hdl->priv->str_locale->separator = '-';
 
-	g_object_set_data (G_OBJECT (hdl), "name", _("InternalTime"));
+	g_object_set_data (G_OBJECT (hdl), "name", "InternalTime");
 	g_object_set_data (G_OBJECT (hdl), "descr", _("Time, Date and TimeStamp representation"));
 }
 

Modified: trunk/libgda/handlers/gda-handler-type.c
==============================================================================
--- trunk/libgda/handlers/gda-handler-type.c	(original)
+++ trunk/libgda/handlers/gda-handler-type.c	Tue Jun 10 20:46:16 2008
@@ -116,7 +116,7 @@
 	hdl->priv->valid_g_types = g_new0 (GType, 1);
 	hdl->priv->valid_g_types[0] = G_TYPE_ULONG;
 
-	g_object_set_data (G_OBJECT (hdl), "descr", _("InternalType"));
+	g_object_set_data (G_OBJECT (hdl), "descr", "InternalType");
 	g_object_set_data (G_OBJECT (hdl), "descr", _("Gda type representation"));
 }
 

Modified: trunk/libgda/sqlite/gda-sqlite-handler-bin.c
==============================================================================
--- trunk/libgda/sqlite/gda-sqlite-handler-bin.c	(original)
+++ trunk/libgda/sqlite/gda-sqlite-handler-bin.c	Tue Jun 10 20:46:16 2008
@@ -116,7 +116,7 @@
 	hdl->priv->valid_g_types = g_new0 (GType, hdl->priv->nb_g_types);
 	hdl->priv->valid_g_types[0] = GDA_TYPE_BINARY;
 
-	g_object_set_data (G_OBJECT (hdl), "name", _("SqliteBin"));
+	g_object_set_data (G_OBJECT (hdl), "name", "SqliteBin");
 	g_object_set_data (G_OBJECT (hdl), "descr", _("SQlite binary representation"));
 }
 

Modified: trunk/libgda/sqlite/gda-sqlite-provider.c
==============================================================================
--- trunk/libgda/sqlite/gda-sqlite-provider.c	(original)
+++ trunk/libgda/sqlite/gda-sqlite-provider.c	Tue Jun 10 20:46:16 2008
@@ -1610,7 +1610,7 @@
 			}
 			else {
 				g_set_error (error, GDA_SERVER_PROVIDER_ERROR, GDA_SERVER_PROVIDER_PREPARE_STMT_ERROR,
-					     _("Unnammed parameter is not allowed in prepared statements"));
+					     _("Unnamed parameter is not allowed in prepared statements"));
 				g_slist_foreach (param_ids, (GFunc) g_free, NULL);
 				g_slist_free (param_ids);
 				goto out_err;

Modified: trunk/providers/mysql/mysql_specs_create_db.xml.in
==============================================================================
--- trunk/providers/mysql/mysql_specs_create_db.xml.in	(original)
+++ trunk/providers/mysql/mysql_specs_create_db.xml.in	Tue Jun 10 20:46:16 2008
@@ -24,143 +24,143 @@
       <gda_array_data>
         <gda_array_row>
           <gda_value>utf8</gda_value>
-          <_gda_value>UTF-8 Unicode</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>UTF-8 Unicode</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>latin1</gda_value>
-          <_gda_value>ISO 8859-1 West European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-1 West European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>latin2</gda_value>
-          <_gda_value>ISO 8859-2 Central European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-2 Central European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>ascii</gda_value>
-          <_gda_value>US ASCII</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>US ASCII</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>big5</gda_value>
-          <_gda_value>Big5 Traditional Chinese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Big5 Traditional Chinese</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>dec8</gda_value>
-          <_gda_value>DEC West European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>DEC West European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp850</gda_value>
-          <_gda_value>DOS West European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>DOS West European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>hp8</gda_value>
-          <_gda_value>HP West European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>HP West European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>koi8r</gda_value>
-          <_gda_value>KOI8-R Relcom Russian</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>KOI8-R Relcom Russian</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>swe7</gda_value>
-          <_gda_value>7bit Swedish</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>7bit Swedish</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>ujis</gda_value>
-          <_gda_value>EUC-JP Japanese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>EUC-JP Japanese</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>sjis</gda_value>
-          <_gda_value>Shift-JIS Japanese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Shift-JIS Japanese</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>hebrew</gda_value>
-          <_gda_value>ISO 8859-8 Hebrew</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-8 Hebrew</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>tis620</gda_value>
-          <_gda_value>TIS620 Thai</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>TIS620 Thai</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>euckr</gda_value>
-          <_gda_value>EUC-KR Korean</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>EUC-KR Korean</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>koi8u</gda_value>
-          <_gda_value>KOI8-U Ukrainian</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>KOI8-U Ukrainian</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>gb2312</gda_value>
-          <_gda_value>GB2312 Simplified Chinese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>GB2312 Simplified Chinese</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>greek</gda_value>
-          <_gda_value>ISO 8859-7 Greek</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-7 Greek</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp1250</gda_value>
-          <_gda_value>Windows Central European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Windows Central European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>gbk</gda_value>
-          <_gda_value>GBK Simplified Chinese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>GBK Simplified Chinese</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>latin5</gda_value>
-          <_gda_value>ISO 8859-9 Turkish</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-9 Turkish</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>armscii8</gda_value>
-          <_gda_value>ARMSCII-8 Armenian</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ARMSCII-8 Armenian</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>ucs2</gda_value>
-          <_gda_value>UCS-2 Unicode</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>UCS-2 Unicode</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp866</gda_value>
-          <_gda_value>DOS Russian</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>DOS Russian</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>keybcs2</gda_value>
-          <_gda_value>DOS Kamenicky Czech-Slovak</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>DOS Kamenicky Czech-Slovak</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>macce</gda_value>
-          <_gda_value>Mac Central European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Mac Central European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>macroman</gda_value>
-          <_gda_value>Mac West European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Mac West European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp852</gda_value>
-          <_gda_value>DOS Central European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>DOS Central European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>latin7</gda_value>
-          <_gda_value>ISO 8859-13 Baltic</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-13 Baltic</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp1251</gda_value>
-          <_gda_value>Windows Cyrillic</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Windows Cyrillic</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp1256</gda_value>
-          <_gda_value>Windows Arabic</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Windows Arabic</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp1257</gda_value>
-          <_gda_value>Windows Baltic</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Windows Baltic</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>binary</gda_value>
-          <_gda_value>Binary pseudo charset</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Binary pseudo charset</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>geostd8</gda_value>
-          <_gda_value>GEOSTD8 Georgian</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>GEOSTD8 Georgian</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp932</gda_value>
-          <_gda_value>SJIS for Windows Japanese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>SJIS for Windows Japanese</_gda_value>
         </gda_array_row>
       </gda_array_data>
     </gda_array>

Modified: trunk/providers/mysql/mysql_specs_create_table.xml.in
==============================================================================
--- trunk/providers/mysql/mysql_specs_create_table.xml.in	(original)
+++ trunk/providers/mysql/mysql_specs_create_table.xml.in	Tue Jun 10 20:46:16 2008
@@ -140,6 +140,7 @@
 	</gda_array_row>
 	<gda_array_row>
           <gda_value>SET NULL</gda_value>
+	  <!-- To translators: Action of setting a value to NULL -->
           <_gda_value>Set to NULL</_gda_value>
 	</gda_array_row>
       </gda_array_data>
@@ -229,6 +230,7 @@
 	</gda_array_row>
 	<gda_array_row>
           <gda_value>FIXED</gda_value>
+	  <!-- To translators: "Fixed" is a kind or MySQL's table's row format -->
           <_gda_value>Fixed</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
@@ -252,143 +254,143 @@
       <gda_array_data>
         <gda_array_row>
           <gda_value>utf8</gda_value>
-          <_gda_value>UTF-8 Unicode</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>UTF-8 Unicode</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>latin1</gda_value>
-          <_gda_value>ISO 8859-1 West European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-1 West European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>latin2</gda_value>
-          <_gda_value>ISO 8859-2 Central European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-2 Central European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>ascii</gda_value>
-          <_gda_value>US ASCII</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>US ASCII</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>big5</gda_value>
-          <_gda_value>Big5 Traditional Chinese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Big5 Traditional Chinese</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>dec8</gda_value>
-          <_gda_value>DEC West European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>DEC West European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp850</gda_value>
-          <_gda_value>DOS West European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>DOS West European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>hp8</gda_value>
-          <_gda_value>HP West European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>HP West European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>koi8r</gda_value>
-          <_gda_value>KOI8-R Relcom Russian</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>KOI8-R Relcom Russian</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>swe7</gda_value>
-          <_gda_value>7bit Swedish</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>7bit Swedish</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>ujis</gda_value>
-          <_gda_value>EUC-JP Japanese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>EUC-JP Japanese</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>sjis</gda_value>
-          <_gda_value>Shift-JIS Japanese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Shift-JIS Japanese</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>hebrew</gda_value>
-          <_gda_value>ISO 8859-8 Hebrew</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-8 Hebrew</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>tis620</gda_value>
-          <_gda_value>TIS620 Thai</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>TIS620 Thai</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>euckr</gda_value>
-          <_gda_value>EUC-KR Korean</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>EUC-KR Korean</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>koi8u</gda_value>
-          <_gda_value>KOI8-U Ukrainian</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>KOI8-U Ukrainian</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>gb2312</gda_value>
-          <_gda_value>GB2312 Simplified Chinese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>GB2312 Simplified Chinese</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>greek</gda_value>
-          <_gda_value>ISO 8859-7 Greek</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-7 Greek</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp1250</gda_value>
-          <_gda_value>Windows Central European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Windows Central European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>gbk</gda_value>
-          <_gda_value>GBK Simplified Chinese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>GBK Simplified Chinese</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>latin5</gda_value>
-          <_gda_value>ISO 8859-9 Turkish</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-9 Turkish</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>armscii8</gda_value>
-          <_gda_value>ARMSCII-8 Armenian</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ARMSCII-8 Armenian</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>ucs2</gda_value>
-          <_gda_value>UCS-2 Unicode</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>UCS-2 Unicode</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp866</gda_value>
-          <_gda_value>DOS Russian</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>DOS Russian</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>keybcs2</gda_value>
-          <_gda_value>DOS Kamenicky Czech-Slovak</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>DOS Kamenicky Czech-Slovak</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>macce</gda_value>
-          <_gda_value>Mac Central European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Mac Central European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>macroman</gda_value>
-          <_gda_value>Mac West European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Mac West European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp852</gda_value>
-          <_gda_value>DOS Central European</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>DOS Central European</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>latin7</gda_value>
-          <_gda_value>ISO 8859-13 Baltic</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>ISO 8859-13 Baltic</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp1251</gda_value>
-          <_gda_value>Windows Cyrillic</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Windows Cyrillic</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp1256</gda_value>
-          <_gda_value>Windows Arabic</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Windows Arabic</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp1257</gda_value>
-          <_gda_value>Windows Baltic</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Windows Baltic</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>binary</gda_value>
-          <_gda_value>Binary pseudo charset</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>Binary pseudo charset</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>geostd8</gda_value>
-          <_gda_value>GEOSTD8 Georgian</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>GEOSTD8 Georgian</_gda_value>
         </gda_array_row>
         <gda_array_row>
           <gda_value>cp932</gda_value>
-          <_gda_value>SJIS for Windows Japanese</_gda_value>
+          <!-- To translators: Charset name --><_gda_value>SJIS for Windows Japanese</_gda_value>
         </gda_array_row>
       </gda_array_data>
     </gda_array>

Modified: trunk/providers/postgres/gda-postgres-provider.c
==============================================================================
--- trunk/providers/postgres/gda-postgres-provider.c	(original)
+++ trunk/providers/postgres/gda-postgres-provider.c	Tue Jun 10 20:46:16 2008
@@ -734,7 +734,7 @@
                         PQclear (pg_res);
                 }
                 else {
-			gda_connection_add_event_string (cnc, _("Search path %s is invalid)"), pg_searchpath);
+			gda_connection_add_event_string (cnc, _("Search path %s is invalid"), pg_searchpath);
 			gda_postgres_free_cnc_data (cdata);
                         return FALSE;
                 }
@@ -1665,7 +1665,7 @@
                         }
                         else {
                                 g_set_error (error, GDA_SERVER_PROVIDER_ERROR, GDA_SERVER_PROVIDER_PREPARE_STMT_ERROR,
-                                             _("Unnammed parameter is not allowed in prepared statements"));
+                                             _("Unnamed parameter is not allowed in prepared statements"));
                                 g_slist_foreach (param_ids, (GFunc) g_free, NULL);
                                 g_slist_free (param_ids);
 				g_free (prep_stm_name);

Modified: trunk/providers/postgres/postgres_specs_create_db.xml.in
==============================================================================
--- trunk/providers/postgres/postgres_specs_create_db.xml.in	(original)
+++ trunk/providers/postgres/postgres_specs_create_db.xml.in	Tue Jun 10 20:46:16 2008
@@ -25,115 +25,115 @@
       <gda_array_data>
 	<gda_array_row>
 	  <gda_value>UNICODE</gda_value>
-	  <_gda_value>Unicode (UTF-8)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Unicode (UTF-8)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>SQL_ASCII</gda_value>
-	  <_gda_value>ASCII</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ASCII</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>EUC_JP</gda_value>
-	  <_gda_value>Japanese EUC</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Japanese EUC</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>EUC_CN</gda_value>
-	  <_gda_value>Chinese EUC</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Chinese EUC</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>EUC_KR</gda_value>
-	  <_gda_value>Korean EUC</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Korean EUC</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>JOHAB</gda_value>
-	  <_gda_value>Korean EUC (Hangle base)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Korean EUC (Hangle base)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>EUC_TW</gda_value>
-	  <_gda_value>Taiwan EUC</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Taiwan EUC</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>LATIN1</gda_value>
-	  <_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.1)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.1)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>LATIN2</gda_value>
-	  <_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.2)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.2)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>LATIN3</gda_value>
-	  <_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.3)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.3)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>LATIN4</gda_value>
-	  <_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.4)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.4)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>LATIN5</gda_value>
-	  <_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.5)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.5)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>LATIN6</gda_value>
-	  <_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.6)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.6)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>LATIN7</gda_value>
-	  <_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.7)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.7)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>LATIN8</gda_value>
-	  <_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.8)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.8)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>LATIN9</gda_value>
-	  <_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.9)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.9)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>LATIN10</gda_value>
-	  <_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.10)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-1/ECMA 94 (Latin alphabet no.10)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>ISO_8859_5</gda_value>
-	  <_gda_value>ISO 8859-5/ECMA 113 (Latin/Cyrillic)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-5/ECMA 113 (Latin/Cyrillic)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>ISO_8859_6</gda_value>
-	  <_gda_value>ISO 8859-6/ECMA 114 (Latin/Arabic)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-6/ECMA 114 (Latin/Arabic)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>ISO_8859_7</gda_value>
-	  <_gda_value>ISO 8859-7/ECMA 118 (Latin/Greek)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-7/ECMA 118 (Latin/Greek)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>ISO_8859_8</gda_value>
-	  <_gda_value>ISO 8859-8/ECMA 121 (Latin/Hebrew)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>ISO 8859-8/ECMA 121 (Latin/Hebrew)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>KOI8</gda_value>
-	  <_gda_value>KOI8-R(U)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>KOI8-R(U)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>ALT</gda_value>
-	  <_gda_value>Windows CP866</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Windows CP866</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>WIN874</gda_value>
-	  <_gda_value>Windows CP874 (Thai)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Windows CP874 (Thai)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>WIN1250</gda_value>
-	  <_gda_value>Windows CP1250</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Windows CP1250</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>WIN</gda_value>
-	  <_gda_value>Windows CP1251</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Windows CP1251</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>WIN1256</gda_value>
-	  <_gda_value>Windows CP1256 (Arabic)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>Windows CP1256 (Arabic)</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
 	  <gda_value>TCVN</gda_value>
-	  <_gda_value>TCVN-5712/Windows CP1258 (Vietnamese)</_gda_value>
+	  <!-- To translators: Charset name --><_gda_value>TCVN-5712/Windows CP1258 (Vietnamese)</_gda_value>
 	</gda_array_row>
       </gda_array_data>
     </gda_array>

Modified: trunk/providers/postgres/postgres_specs_create_table.xml.in
==============================================================================
--- trunk/providers/postgres/postgres_specs_create_table.xml.in	(original)
+++ trunk/providers/postgres/postgres_specs_create_table.xml.in	Tue Jun 10 20:46:16 2008
@@ -126,10 +126,12 @@
 	</gda_array_row>
 	<gda_array_row>
           <gda_value>SET NULL</gda_value>
+	  <!-- To translators: Action of setting a value to NULL -->
           <_gda_value>Set to NULL</_gda_value>
 	</gda_array_row>
 	<gda_array_row>
           <gda_value>SET DEFAULT</gda_value>
+	  <!-- To translators: Action of setting a value to its default value -->
           <_gda_value>Set to default</_gda_value>
 	</gda_array_row>
       </gda_array_data>

Modified: trunk/providers/sqlite/sqlite_specs_create_index.xml.in
==============================================================================
--- trunk/providers/sqlite/sqlite_specs_create_index.xml.in	(original)
+++ trunk/providers/sqlite/sqlite_specs_create_index.xml.in	Tue Jun 10 20:46:16 2008
@@ -16,6 +16,7 @@
     <parameter id="INDEX_FIELD" _name="Indexed field or expression" gdatype="gchararray" nullok="FALSE" source="_INDEX_ON_TABLE/DICT_FIELDS_">
       <gda_value>indexed_field</gda_value>
     </parameter>
+    <!-- To translators: "Compare method" refers to the method SQLite has to compare values -->
     <parameter id="INDEX_COLLATE" _name="Compare method" _descr="Collation name (BINARY|NOCASE)" gdatype="gchararray"/>
     <parameter id="INDEX_SORT_ORDER" _name="Sort type" gdatype="gchararray" source="sort:0"/>
   </sequence>

Modified: trunk/providers/sqlite/sqlite_specs_create_table.xml.in
==============================================================================
--- trunk/providers/sqlite/sqlite_specs_create_table.xml.in	(original)
+++ trunk/providers/sqlite/sqlite_specs_create_table.xml.in	Tue Jun 10 20:46:16 2008
@@ -24,6 +24,7 @@
     <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean"/>
     <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray"/>
     <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray"/>
+    <!-- To translators: "Compare method" refers to the method SQLite has to compare values -->
     <gda_array_field id="COLUMN_COLLATE" _name="Compare method" _descr="Collation name (BINARY|NOCASE)" gdatype="gchararray"/>
     <gda_array_field id="COLUMN_CONFLICT" _name="Conflict" _descr="Conflict resolution method (ROLLBACK|ABORT|FAIL|IGNORE|REPLACE" gdatype="gchararray"/>
     <gda_array_data>

Modified: trunk/tools/gda-sql.c
==============================================================================
--- trunk/tools/gda-sql.c	(original)
+++ trunk/tools/gda-sql.c	Tue Jun 10 20:46:16 2008
@@ -969,7 +969,7 @@
 			}
 			else
 				if (!data->output_stream) 
-					g_print (_(" Done.\n"));
+					g_print (_("Done.\n"));
 		}
 
 		g_object_unref (store);
@@ -1054,10 +1054,7 @@
 		}
 
 		node = xmlNewChild (html, NULL, BAD_CAST "p", NULL);
-		if (nrows > 1)
-			str = g_strdup_printf (_("(%d rows)"), nrows);
-		else
-			str = g_strdup_printf (_("(%d row)"), nrows);
+		g_strdup_printf (ngettext ("(%d row)", "(%d rows)", nrows), nrows);
 		xmlNodeSetContent (node, BAD_CAST str);
 		g_free (str);
 
@@ -1754,7 +1751,7 @@
 					}
 					else
 						if (!data->output_stream) 
-							g_print (_(" Done.\n"));
+							g_print (_("Done.\n"));
 					
 					res = g_new0 (GdaInternalCommandResult, 1);
 					res->type = GDA_INTERNAL_COMMAND_RESULT_EMPTY;
@@ -2267,7 +2264,7 @@
 		else {
 			gint i;
 			for (i = 0; ; i++) {
-				qname = g_strdup_printf (_("saved_stmt_%d"), i);
+				qname = g_strdup_printf ("saved_stmt_%d", i);
 				stmt = find_statement_in_connection_meta_store (data->current->cnc, qname);
 				if (!stmt)
 					break;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]