aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--e-util/e-i18n.h6
-rw-r--r--widgets/menus/gal-define-views-dialog.c7
-rw-r--r--widgets/menus/gal-view-instance-save-as-dialog.c7
-rw-r--r--widgets/table/e-table-config.c46
-rw-r--r--widgets/table/e-table-config.h1
-rw-r--r--widgets/table/e-table-specification.c16
-rw-r--r--widgets/table/e-table-specification.h1
-rw-r--r--widgets/table/e-table-utils.c11
-rw-r--r--widgets/table/e-table-utils.h10
-rw-r--r--widgets/table/e-table.c9
-rw-r--r--widgets/table/e-table.h2
-rw-r--r--widgets/text/e-completion-view.c7
12 files changed, 87 insertions, 36 deletions
diff --git a/e-util/e-i18n.h b/e-util/e-i18n.h
index c376a22014..48c9f90458 100644
--- a/e-util/e-i18n.h
+++ b/e-util/e-i18n.h
@@ -45,8 +45,12 @@ BEGIN_GNOME_DECLS
# undef _
# ifdef GNOME_EXPLICIT_TRANSLATION_DOMAIN
# define _(String) dgettext (GNOME_EXPLICIT_TRANSLATION_DOMAIN, String)
+/* No parentheses allowed here since that breaks string concatenation. */
+# define E_I18N_DOMAIN GNOME_EXPLICIT_TRANSLATION_DOMAIN
# else
# define _(String) dgettext (PACKAGE, String)
+/* No parentheses allowed here since that breaks string concatenation. */
+# define E_I18N_DOMAIN PACKAGE
# endif
# ifdef gettext_noop
# define N_(String) gettext_noop (String)
@@ -62,6 +66,8 @@ BEGIN_GNOME_DECLS
# define bindtextdomain(Domain,Directory) (Domain)
# define _(String) (String)
# define N_(String) (String)
+/* No parentheses allowed here since that breaks string concatenation. */
+# define E_I18N_DOMAIN ""
#endif
/*
diff --git a/widgets/menus/gal-define-views-dialog.c b/widgets/menus/gal-define-views-dialog.c
index 6ce2db8f28..8d8c903de8 100644
--- a/widgets/menus/gal-define-views-dialog.c
+++ b/widgets/menus/gal-define-views-dialog.c
@@ -22,12 +22,15 @@
*/
#include <config.h>
+
+#include "gal-define-views-dialog.h"
+
#include <libgnomeui/gnome-dialog.h>
#include <libgnomeui/gnome-stock.h>
-#include "gal-define-views-dialog.h"
#include "gal-define-views-model.h"
#include "gal-view-new-dialog.h"
#include <gal/e-table/e-table-scrolled.h>
+#include <gal/util/e-i18n.h>
static void gal_define_views_dialog_init (GalDefineViewsDialog *card);
static void gal_define_views_dialog_class_init (GalDefineViewsDialogClass *klass);
@@ -92,7 +95,7 @@ gal_define_views_dialog_class_init (GalDefineViewsDialogClass *klass)
}
/* ETable creation */
-#define SPEC "<ETableSpecification cursor-mode=\"line\" draw-grid=\"true\" selection-mode=\"single\">" \
+#define SPEC "<ETableSpecification cursor-mode=\"line\" draw-grid=\"true\" selection-mode=\"single\" gettext-domain=\"" E_I18N_DOMAIN "\">" \
"<ETableColumn model_col= \"0\" _title=\"Name\" expansion=\"1.0\" minimum_width=\"18\" resizable=\"true\" cell=\"string\" compare=\"string\"/>" \
"<ETableState> <column source=\"0\"/> <grouping> </grouping> </ETableState>" \
"</ETableSpecification>"
diff --git a/widgets/menus/gal-view-instance-save-as-dialog.c b/widgets/menus/gal-view-instance-save-as-dialog.c
index 329bc97e37..c00937b46f 100644
--- a/widgets/menus/gal-view-instance-save-as-dialog.c
+++ b/widgets/menus/gal-view-instance-save-as-dialog.c
@@ -22,12 +22,15 @@
*/
#include <config.h>
+
+#include "gal-view-instance-save-as-dialog.h"
+
#include <libgnomeui/gnome-dialog.h>
#include <libgnomeui/gnome-stock.h>
-#include "gal-view-instance-save-as-dialog.h"
#include "gal-define-views-model.h"
#include "gal-view-new-dialog.h"
#include <gal/e-table/e-table-scrolled.h>
+#include <gal/util/e-i18n.h>
static GnomeDialogClass *parent_class = NULL;
#define PARENT_TYPE gnome_dialog_get_type()
@@ -218,7 +221,7 @@ gal_view_instance_save_as_dialog_init (GalViewInstanceSaveAsDialog *dialog)
/* For use from libglade. */
/* ETable creation */
-#define SPEC "<ETableSpecification no-header=\"true\" cursor-mode=\"line\" draw-grid=\"false\" selection-mode=\"single\">" \
+#define SPEC "<ETableSpecification no-header=\"true\" cursor-mode=\"line\" draw-grid=\"false\" selection-mode=\"single\" gettext-domain=\"" E_I18N_DOMAIN "\">" \
"<ETableColumn model_col= \"0\" _title=\"Name\" expansion=\"1.0\" minimum_width=\"18\" resizable=\"true\" cell=\"string\" compare=\"string\"/>" \
"<ETableState> <column source=\"0\"/> <grouping> </grouping> </ETableState>" \
"</ETableSpecification>"
diff --git a/widgets/table/e-table-config.c b/widgets/table/e-table-config.c
index b9922a2d38..05e5b09ddf 100644
--- a/widgets/table/e-table-config.c
+++ b/widgets/table/e-table-config.c
@@ -74,9 +74,13 @@ config_destroy (GtkObject *object)
gtk_object_unref (GTK_OBJECT (config->source_state));
gtk_object_unref (GTK_OBJECT (config->source_spec));
g_free (config->header);
+ config->header = NULL;
g_slist_free (config->column_names);
config->column_names = NULL;
+
+ g_free (config->domain);
+ config->domain = NULL;
GTK_OBJECT_CLASS (config_parent_class)->destroy (object);
}
@@ -132,6 +136,8 @@ config_class_init (GtkObjectClass *object_class)
gtk_object_add_arg_type ("ETableConfig::state", E_TABLE_STATE_TYPE,
GTK_ARG_READABLE, ARG_STATE);
+
+ glade_gnome_init ();
}
static ETableColumnSpecification *
@@ -222,7 +228,7 @@ update_sort_and_group_config_dialog (ETableConfig *config, gboolean is_sort)
continue;
}
- text = gettext (column->title);
+ text = dgettext (config->domain, column->title);
/*
* Update radio buttons
@@ -278,7 +284,7 @@ config_sort_info_update (ETableConfig *config)
continue;
}
- g_string_append (res, gettext ((column)->title));
+ g_string_append (res, dgettext (config->domain, (column)->title));
g_string_append_c (res, ' ');
g_string_append (
res,
@@ -319,8 +325,8 @@ config_group_info_update (ETableConfig *config)
g_warning ("Could not find model column in specification");
continue;
}
-
- g_string_append (res, gettext ((column)->title));
+
+ g_string_append (res, dgettext (config->domain, (column)->title));
g_string_append_c (res, ' ');
g_string_append (
res,
@@ -368,8 +374,8 @@ config_fields_info_update (ETableConfig *config)
if (config->state->columns [i] != (*column)->model_col)
continue;
-
- g_string_append (res, gettext ((*column)->title));
+
+ g_string_append (res, dgettext (config->domain, (*column)->title));
if (column [1])
g_string_append (res, ", ");
}
@@ -496,12 +502,13 @@ create_global_store (ETableConfig *config)
}
}
-char *spec = "<ETableSpecification no-headers=\"true\" cursor-mode=\"line\" draw-grid=\"false\" draw-focus=\"true\" selection-mode=\"browse\"> \
- <ETableColumn model_col= \"0\" _title=\"Name\" minimum_width=\"30\" resizable=\"true\" cell=\"string\" compare=\"string\"/> \
- <ETableState> <column source=\"0\"/> \
- <grouping/> \
- </ETableState> \
- </ETableSpecification>";
+char *spec = "<ETableSpecification gettext-domain=\"" E_I18N_DOMAIN "\" no-headers=\"true\" cursor-mode=\"line\" "
+ " draw-grid=\"false\" draw-focus=\"true\" selection-mode=\"browse\">"
+ "<ETableColumn model_col= \"0\" _title=\"Name\" minimum_width=\"30\" resizable=\"true\" cell=\"string\" compare=\"string\"/>"
+ "<ETableState> <column source=\"0\"/>"
+ "<grouping/>"
+ "</ETableState>"
+ "</ETableSpecification>";
GtkWidget *e_table_proxy_etable_shown_new (void);
@@ -680,9 +687,8 @@ configure_sort_dialog (ETableConfig *config, GladeXML *gui)
char *label = l->data;
for (i = 0; i < 4; i++){
- gtk_combo_text_add_item (
- config->sort [i].combo,
- gettext (label), label);
+ gtk_combo_text_add_item (config->sort [i].combo,
+ dgettext (config->domain, label), label);
}
}
@@ -792,7 +798,7 @@ configure_group_dialog (ETableConfig *config, GladeXML *gui)
for (i = 0; i < 4; i++){
gtk_combo_text_add_item (
config->group [i].combo,
- gettext (label), label);
+ dgettext (config->domain, label), label);
}
}
@@ -996,9 +1002,9 @@ setup_gui (ETableConfig *config)
create_global_store (config);
if (e_table_sort_info_get_can_group (config->state->sort_info)) {
- gui = glade_xml_new_with_domain (ETABLE_GLADEDIR "/e-table-config.glade", NULL, PACKAGE);
+ gui = glade_xml_new_with_domain (ETABLE_GLADEDIR "/e-table-config.glade", NULL, E_I18N_DOMAIN);
} else {
- gui = glade_xml_new_with_domain (ETABLE_GLADEDIR "/e-table-config-no-group.glade", NULL, PACKAGE);
+ gui = glade_xml_new_with_domain (ETABLE_GLADEDIR "/e-table-config-no-group.glade", NULL, E_I18N_DOMAIN);
}
gtk_object_unref (GTK_OBJECT (global_store));
@@ -1052,7 +1058,7 @@ setup_gui (ETableConfig *config)
static void
config_init (ETableConfig *config)
{
- glade_gnome_init ();
+ config->domain = NULL;
}
ETableConfig *
@@ -1077,6 +1083,8 @@ e_table_config_construct (ETableConfig *config,
config->state = e_table_state_duplicate (state);
+ config->domain = g_strdup (spec->domain);
+
for (column = config->source_spec->columns; *column; column++){
char *label = (*column)->title;
diff --git a/widgets/table/e-table-config.h b/widgets/table/e-table-config.h
index 46bf1507ac..d5640f73cd 100644
--- a/widgets/table/e-table-config.h
+++ b/widgets/table/e-table-config.h
@@ -82,6 +82,7 @@ typedef struct {
ETableWithout *available_model;
ETable *shown;
ETableSubsetVariable *shown_model;
+ char *domain;
/*
* List of valid column names
diff --git a/widgets/table/e-table-specification.c b/widgets/table/e-table-specification.c
index e449d4e9b7..4c04d78c80 100644
--- a/widgets/table/e-table-specification.c
+++ b/widgets/table/e-table-specification.c
@@ -54,9 +54,12 @@ etsp_destroy (GtkObject *object)
gtk_object_unref (GTK_OBJECT (etsp->state));
g_free (etsp->click_to_add_message);
+ g_free (etsp->domain);
+
etsp->columns = NULL;
etsp->state = NULL;
etsp->click_to_add_message = NULL;
+ etsp->domain = NULL;
GTK_OBJECT_CLASS (etsp_parent_class)->destroy (object);
}
@@ -90,6 +93,7 @@ etsp_init (ETableSpecification *etsp)
etsp->selection_mode = GTK_SELECTION_MULTIPLE;
etsp->click_to_add_message = NULL;
+ etsp->domain = NULL;
}
E_MAKE_TYPE (e_table_specification, "ETableSpecification", ETableSpecification, etsp_class_init, etsp_init, PARENT_TYPE)
@@ -214,12 +218,21 @@ e_table_specification_load_from_node (ETableSpecification *specification,
specification->cursor_mode = E_CURSOR_SPREADSHEET;
}
g_free (temp);
- g_free (specification->click_to_add_message);
+ g_free (specification->click_to_add_message);
specification->click_to_add_message =
e_xml_get_string_prop_by_name (
node, "_click-to-add-message");
+ g_free (specification->domain);
+ specification->domain =
+ e_xml_get_string_prop_by_name (
+ node, "gettext-domain");
+ if (specification->domain && !*specification->domain) {
+ g_free (specification->domain);
+ specification->domain = NULL;
+ }
+
if (specification->state)
gtk_object_unref (GTK_OBJECT (specification->state));
specification->state = NULL;
@@ -359,6 +372,7 @@ e_table_specification_save_to_node (ETableSpecification *specification,
xmlSetProp (node, "cursor-mode", s);
xmlSetProp (node, "_click-to-add-message", specification->click_to_add_message);
+ xmlSetProp (node, "gettext-domain", specification->domain);
if (specification->columns){
int i;
diff --git a/widgets/table/e-table-specification.h b/widgets/table/e-table-specification.h
index 35425fe0af..3f21426390 100644
--- a/widgets/table/e-table-specification.h
+++ b/widgets/table/e-table-specification.h
@@ -61,6 +61,7 @@ typedef struct {
ECursorMode cursor_mode;
char *click_to_add_message;
+ char *domain;
} ETableSpecification;
typedef struct {
diff --git a/widgets/table/e-table-utils.c b/widgets/table/e-table-utils.c
index a155d49b0a..c013a806b2 100644
--- a/widgets/table/e-table-utils.c
+++ b/widgets/table/e-table-utils.c
@@ -68,7 +68,8 @@ e_table_state_to_header (GtkWidget *widget, ETableHeader *full_header, ETableSta
static ETableCol *
et_col_spec_to_col (ETableColumnSpecification *col_spec,
- ETableExtras *ete)
+ ETableExtras *ete,
+ const char *domain)
{
ETableCol *col = NULL;
ECell *cell = NULL;
@@ -83,6 +84,8 @@ et_col_spec_to_col (ETableColumnSpecification *col_spec,
search = e_table_extras_get_search(ete, col_spec->search);
if (cell && compare) {
+ const char *title = dgettext (domain, col_spec->title);
+
if (col_spec->pixbuf && *col_spec->pixbuf) {
GdkPixbuf *pixbuf;
@@ -90,7 +93,7 @@ et_col_spec_to_col (ETableColumnSpecification *col_spec,
ete, col_spec->pixbuf);
if (pixbuf) {
col = e_table_col_new_with_pixbuf (
- col_spec->model_col, gettext (col_spec->title),
+ col_spec->model_col, title,
pixbuf, col_spec->expansion,
col_spec->minimum_width,
cell, compare, col_spec->resizable, col_spec->disabled, col_spec->priority);
@@ -98,7 +101,7 @@ et_col_spec_to_col (ETableColumnSpecification *col_spec,
}
if (col == NULL && col_spec->title && *col_spec->title) {
col = e_table_col_new (
- col_spec->model_col, gettext (col_spec->title),
+ col_spec->model_col, title,
col_spec->expansion, col_spec->minimum_width,
cell, compare, col_spec->resizable, col_spec->disabled, col_spec->priority);
}
@@ -121,7 +124,7 @@ e_table_spec_to_full_header (ETableSpecification *spec,
for (column = 0; spec->columns[column]; column++) {
ETableCol *col = et_col_spec_to_col (
- spec->columns[column], ete);
+ spec->columns[column], ete, spec->domain);
if (col)
e_table_header_add_column (nh, col, -1);
diff --git a/widgets/table/e-table-utils.h b/widgets/table/e-table-utils.h
index e5ac1d8a72..7438a9c759 100644
--- a/widgets/table/e-table-utils.h
+++ b/widgets/table/e-table-utils.h
@@ -32,12 +32,12 @@
BEGIN_GNOME_DECLS
-ETableHeader *e_table_state_to_header (GtkWidget *widget,
- ETableHeader *full_header,
- ETableState *state);
+ETableHeader *e_table_state_to_header (GtkWidget *widget,
+ ETableHeader *full_header,
+ ETableState *state);
-ETableHeader *e_table_spec_to_full_header (ETableSpecification *spec,
- ETableExtras *ete);
+ETableHeader *e_table_spec_to_full_header (ETableSpecification *spec,
+ ETableExtras *ete);
END_GNOME_DECLS
diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c
index 7106400d29..f80c2b6a04 100644
--- a/widgets/table/e-table.c
+++ b/widgets/table/e-table.c
@@ -327,6 +327,10 @@ et_destroy (GtkObject *object)
}
g_free(et->click_to_add_message);
+ et->click_to_add_message = NULL;
+
+ g_free(et->domain);
+ et->domain = NULL;
(*parent_class->destroy)(object);
}
@@ -447,6 +451,7 @@ e_table_init (GtkObject *object)
e_table->horizontal_resize = FALSE;
e_table->click_to_add_message = NULL;
+ e_table->domain = NULL;
e_table->drag_get_data_row = -1;
e_table->drag_get_data_col = -1;
@@ -1372,9 +1377,11 @@ et_real_construct (ETable *e_table, ETableModel *etm, ETableExtras *ete,
else
ete = e_table_extras_new();
+ e_table->domain = g_strdup (specification->domain);
+
e_table->use_click_to_add = specification->click_to_add;
e_table->use_click_to_add_end = specification->click_to_add_end;
- e_table->click_to_add_message = e_utf8_from_locale_string (gettext (specification->click_to_add_message));
+ e_table->click_to_add_message = e_utf8_from_locale_string (dgettext (e_table->domain, specification->click_to_add_message));
e_table->alternating_row_colors = specification->alternating_row_colors;
e_table->horizontal_draw_grid = specification->horizontal_draw_grid;
e_table->vertical_draw_grid = specification->vertical_draw_grid;
diff --git a/widgets/table/e-table.h b/widgets/table/e-table.h
index 8ffdee7771..58c88d2a0e 100644
--- a/widgets/table/e-table.h
+++ b/widgets/table/e-table.h
@@ -154,6 +154,8 @@ typedef struct {
ETableDragSourceSite *site;
int header_width;
+
+ char *domain;
} ETable;
typedef struct {
diff --git a/widgets/text/e-completion-view.c b/widgets/text/e-completion-view.c
index c2eafb6273..067f89aec8 100644
--- a/widgets/text/e-completion-view.c
+++ b/widgets/text/e-completion-view.c
@@ -23,11 +23,14 @@
*/
#include <config.h>
+
+#include "e-completion-view.h"
+
#include <math.h>
#include <gdk/gdkkeysyms.h>
#include <gal/e-table/e-table-simple.h>
#include <gal/e-table/e-table-scrolled.h>
-#include "e-completion-view.h"
+#include <gal/util/e-i18n.h>
enum {
E_COMPLETION_VIEW_NONEMPTY,
@@ -677,7 +680,7 @@ lost_completion_cb (ECompletion *completion, ECompletionMatch *match, gpointer u
/*** Table Callbacks ***/
static char *simple_spec =
-"<ETableSpecification no-headers=\"true\" draw-grid=\"false\" cursor-mode=\"line\" alternating-row-colors=\"false\">"
+"<ETableSpecification no-headers=\"true\" draw-grid=\"false\" cursor-mode=\"line\" alternating-row-colors=\"false\" gettext-domain=\"" E_I18N_DOMAIN "\">"
" <ETableColumn model_col=\"0\" _title=\"Node\" expansion=\"1.0\" "
" minimum_width=\"16\" resizable=\"true\" cell=\"string\" "
" compare=\"string\"/> "