Changes for help i18n in the core, the rest will take place in the help

2004-03-17  Sven Neumann  <sven@gimp.org>

	Changes for help i18n in the core, the rest will take place in the
	help plug-in:

	* app/text/gimptext.[ch]: removed gimp_text_get_default_language()

	* app/core/gimp-utils.[ch]: ... and added it here as
	gimp_get_default_language().

	* app/config/gimprc-blurbs.h
	* app/config/gimpdisplayconfig.[ch]: added property "help-locales".

	* app/widgets/gimphelp.c: use the new property and pass it to the
	help plug-in.

	* app/core/gimpselection.c (gimp_selection_invalidate_boundary):
	removed unused variable.
This commit is contained in:
Sven Neumann 2004-03-17 13:59:42 +00:00 committed by Sven Neumann
parent 021cc5379b
commit 4e0cb33472
9 changed files with 101 additions and 56 deletions

View File

@ -1,3 +1,22 @@
2004-03-17 Sven Neumann <sven@gimp.org>
Changes for help i18n in the core, the rest will take place in the
help plug-in:
* app/text/gimptext.[ch]: removed gimp_text_get_default_language()
* app/core/gimp-utils.[ch]: ... and added it here as
gimp_get_default_language().
* app/config/gimprc-blurbs.h
* app/config/gimpdisplayconfig.[ch]: added property "help-locales".
* app/widgets/gimphelp.c: use the new property and pass it to the
help plug-in.
* app/core/gimpselection.c (gimp_selection_invalidate_boundary):
removed unused variable.
2004-03-17 Simon Budig <simon@gimp.org> 2004-03-17 Simon Budig <simon@gimp.org>
* app/widgets/gimplayertreeview.c * app/widgets/gimplayertreeview.c

View File

@ -82,6 +82,7 @@ enum
PROP_THEME_PATH, PROP_THEME_PATH,
PROP_THEME, PROP_THEME,
PROP_USE_HELP, PROP_USE_HELP,
PROP_HELP_LOCALES,
PROP_HELP_BROWSER, PROP_HELP_BROWSER,
PROP_WEB_BROWSER, PROP_WEB_BROWSER,
PROP_TOOLBOX_WINDOW_HINT, PROP_TOOLBOX_WINDOW_HINT,
@ -218,6 +219,10 @@ gimp_gui_config_class_init (GimpGuiConfigClass *klass)
"use-help", USE_HELP_BLURB, "use-help", USE_HELP_BLURB,
TRUE, TRUE,
0); 0);
GIMP_CONFIG_INSTALL_PROP_STRING (object_class, PROP_HELP_LOCALES,
"help-locales", HELP_LOCALES_BLURB,
NULL,
0);
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_HELP_BROWSER, GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_HELP_BROWSER,
"help-browser", HELP_BROWSER_BLURB, "help-browser", HELP_BROWSER_BLURB,
GIMP_TYPE_HELP_BROWSER_TYPE, GIMP_TYPE_HELP_BROWSER_TYPE,
@ -249,6 +254,7 @@ gimp_gui_config_finalize (GObject *object)
g_free (gui_config->theme_path); g_free (gui_config->theme_path);
g_free (gui_config->theme); g_free (gui_config->theme);
g_free (gui_config->help_locales);
g_free (gui_config->web_browser); g_free (gui_config->web_browser);
G_OBJECT_CLASS (parent_class)->finalize (object); G_OBJECT_CLASS (parent_class)->finalize (object);
@ -326,6 +332,10 @@ gimp_gui_config_set_property (GObject *object,
case PROP_USE_HELP: case PROP_USE_HELP:
gui_config->use_help = g_value_get_boolean (value); gui_config->use_help = g_value_get_boolean (value);
break; break;
case PROP_HELP_LOCALES:
g_free (gui_config->help_locales);
gui_config->help_locales = g_value_dup_string (value);
break;
case PROP_HELP_BROWSER: case PROP_HELP_BROWSER:
gui_config->help_browser = g_value_get_enum (value); gui_config->help_browser = g_value_get_enum (value);
break; break;
@ -416,6 +426,9 @@ gimp_gui_config_get_property (GObject *object,
case PROP_USE_HELP: case PROP_USE_HELP:
g_value_set_boolean (value, gui_config->use_help); g_value_set_boolean (value, gui_config->use_help);
break; break;
case PROP_HELP_LOCALES:
g_value_set_string (value, gui_config->help_locales);
break;
case PROP_HELP_BROWSER: case PROP_HELP_BROWSER:
g_value_set_enum (value, gui_config->help_browser); g_value_set_enum (value, gui_config->help_browser);
break; break;

View File

@ -60,6 +60,7 @@ struct _GimpGuiConfig
gchar *theme_path; gchar *theme_path;
gchar *theme; gchar *theme;
gboolean use_help; gboolean use_help;
gchar *help_locales;
GimpHelpBrowserType help_browser; GimpHelpBrowserType help_browser;
gchar *web_browser; gchar *web_browser;
GimpWindowHint toolbox_window_hint; GimpWindowHint toolbox_window_hint;

View File

@ -142,6 +142,11 @@ N_("When enabled, the selected pattern will be used for all tools.")
#define HELP_BROWSER_BLURB \ #define HELP_BROWSER_BLURB \
N_("Sets the browser used by the help system.") N_("Sets the browser used by the help system.")
#define HELP_LOCALES_BLURB \
"Specifies the language preferences used by the help system. This is a" \
"colon-separated list of language identifiers with decreasing priority. " \
"If empty, the language is taken from the user's locale setting."
#define IMAGE_STATUS_FORMAT_BLURB \ #define IMAGE_STATUS_FORMAT_BLURB \
N_("Sets the text to appear in image window status bars.") N_("Sets the text to appear in image window status bars.")

View File

@ -93,3 +93,44 @@ gimp_g_list_get_memsize (GList *list,
{ {
return g_list_length (list) * (data_size + sizeof (GList)); return g_list_length (list) * (data_size + sizeof (GList));
} }
/*
* basically copied from gtk_get_default_language()
*/
gchar *
gimp_get_default_language (void)
{
gchar *lang;
gchar *p;
#ifdef G_OS_WIN32
p = getenv ("LC_ALL");
if (p != NULL)
lang = g_strdup (p);
else
{
p = getenv ("LANG");
if (p != NULL)
lang = g_strdup (p);
else
{
p = getenv ("LC_CTYPE");
if (p != NULL)
lang = g_strdup (p);
else
lang = g_win32_getlocale ();
}
}
#else
lang = g_strdup (setlocale (LC_CTYPE, NULL));
#endif
p = strchr (lang, '.');
if (p)
*p = '\0';
p = strchr (lang, '@');
if (p)
*p = '\0';
return lang;
}

View File

@ -40,5 +40,7 @@ gint64 gimp_g_slist_get_memsize (GSList *slist,
gint64 gimp_g_list_get_memsize (GList *list, gint64 gimp_g_list_get_memsize (GList *list,
gint64 data_size); gint64 data_size);
gchar * gimp_get_default_language (void);
#endif /* __APP_GIMP_UTILS_H__ */ #endif /* __APP_GIMP_UTILS_H__ */

View File

@ -324,8 +324,7 @@ gimp_selection_stroke (GimpItem *item,
static void static void
gimp_selection_invalidate_boundary (GimpDrawable *drawable) gimp_selection_invalidate_boundary (GimpDrawable *drawable)
{ {
GimpChannel *selection = GIMP_CHANNEL (drawable); GimpImage *gimage = gimp_item_get_image (GIMP_ITEM (drawable));
GimpImage *gimage = gimp_item_get_image (GIMP_ITEM (drawable));
GimpLayer *layer; GimpLayer *layer;
g_return_if_fail (GIMP_IS_IMAGE (gimage)); g_return_if_fail (GIMP_IS_IMAGE (gimage));

View File

@ -83,7 +83,6 @@ static void gimp_text_set_property (GObject *object,
GParamSpec *pspec); GParamSpec *pspec);
static gint64 gimp_text_get_memsize (GimpObject *object, static gint64 gimp_text_get_memsize (GimpObject *object,
gint64 *gui_size); gint64 *gui_size);
static gchar * gimp_text_get_default_language (void);
static GimpObjectClass *parent_class = NULL; static GimpObjectClass *parent_class = NULL;
@ -149,7 +148,7 @@ gimp_text_class_init (GimpTextClass *klass)
gimp_rgba_set (&black, 0.0, 0.0, 0.0, GIMP_OPACITY_OPAQUE); gimp_rgba_set (&black, 0.0, 0.0, 0.0, GIMP_OPACITY_OPAQUE);
gimp_matrix2_identity (&identity); gimp_matrix2_identity (&identity);
language = gimp_text_get_default_language (); language = gimp_get_default_language ();
GIMP_CONFIG_INSTALL_PROP_STRING (object_class, PROP_TEXT, GIMP_CONFIG_INSTALL_PROP_STRING (object_class, PROP_TEXT,
"text", NULL, "text", NULL,
@ -487,44 +486,3 @@ gimp_text_get_memsize (GimpObject *object,
return memsize + GIMP_OBJECT_CLASS (parent_class)->get_memsize (object, return memsize + GIMP_OBJECT_CLASS (parent_class)->get_memsize (object,
gui_size); gui_size);
} }
/*
* basically copied from gtk_get_default_language()
*/
static gchar *
gimp_text_get_default_language (void)
{
gchar *lang;
gchar *p;
#ifdef G_OS_WIN32
p = getenv ("LC_ALL");
if (p != NULL)
lang = g_strdup (p);
else
{
p = getenv ("LANG");
if (p != NULL)
lang = g_strdup (p);
else
{
p = getenv ("LC_CTYPE");
if (p != NULL)
lang = g_strdup (p);
else
lang = g_win32_getlocale ();
}
}
#else
lang = g_strdup (setlocale (LC_CTYPE, NULL));
#endif
p = strchr (lang, '.');
if (p)
*p = '\0';
p = strchr (lang, '@');
if (p)
*p = '\0';
return lang;
}

View File

@ -59,7 +59,7 @@ struct _GimpIdleHelp
{ {
Gimp *gimp; Gimp *gimp;
gchar *help_domain; gchar *help_domain;
gchar *help_locale; gchar *help_locales;
gchar *help_id; gchar *help_id;
}; };
@ -71,7 +71,7 @@ static gboolean gimp_help_internal (Gimp *gimp);
static void gimp_help_call (Gimp *gimp, static void gimp_help_call (Gimp *gimp,
const gchar *procedure, const gchar *procedure,
const gchar *help_domain, const gchar *help_domain,
const gchar *help_locale, const gchar *help_locales,
const gchar *help_id); const gchar *help_id);
@ -82,9 +82,13 @@ gimp_help (Gimp *gimp,
const gchar *help_domain, const gchar *help_domain,
const gchar *help_id) const gchar *help_id)
{ {
GimpGuiConfig *config;
g_return_if_fail (GIMP_IS_GIMP (gimp)); g_return_if_fail (GIMP_IS_GIMP (gimp));
if (GIMP_GUI_CONFIG (gimp->config)->use_help) config = GIMP_GUI_CONFIG (gimp->config);
if (config->use_help)
{ {
GimpIdleHelp *idle_help = g_new0 (GimpIdleHelp, 1); GimpIdleHelp *idle_help = g_new0 (GimpIdleHelp, 1);
@ -93,7 +97,10 @@ gimp_help (Gimp *gimp,
if (help_domain && strlen (help_domain)) if (help_domain && strlen (help_domain))
idle_help->help_domain = g_strdup (help_domain); idle_help->help_domain = g_strdup (help_domain);
idle_help->help_locale = g_strdup ("C"); if (config->help_locales)
idle_help->help_locales = g_strdup (config->help_locales);
else
idle_help->help_locales = gimp_get_default_language ();
if (help_id && strlen (help_id)) if (help_id && strlen (help_id))
idle_help->help_id = g_strdup (help_id); idle_help->help_id = g_strdup (help_id);
@ -136,11 +143,11 @@ gimp_idle_help (gpointer data)
gimp_help_call (idle_help->gimp, gimp_help_call (idle_help->gimp,
procedure, procedure,
idle_help->help_domain, idle_help->help_domain,
idle_help->help_locale, idle_help->help_locales,
idle_help->help_id); idle_help->help_id);
g_free (idle_help->help_domain); g_free (idle_help->help_domain);
g_free (idle_help->help_locale); g_free (idle_help->help_locales);
g_free (idle_help->help_id); g_free (idle_help->help_id);
g_free (idle_help); g_free (idle_help);
@ -248,7 +255,7 @@ static void
gimp_help_call (Gimp *gimp, gimp_help_call (Gimp *gimp,
const gchar *procedure, const gchar *procedure,
const gchar *help_domain, const gchar *help_domain,
const gchar *help_locale, const gchar *help_locales,
const gchar *help_id) const gchar *help_id)
{ {
ProcRecord *proc_rec; ProcRecord *proc_rec;
@ -305,9 +312,9 @@ gimp_help_call (Gimp *gimp,
#ifdef DEBUG_HELP #ifdef DEBUG_HELP
g_printerr ("Calling help via %s: %s %s %s\n", g_printerr ("Calling help via %s: %s %s %s\n",
procedure, procedure,
help_domain ? help_domain : NULL, help_domain ? help_domain : NULL,
help_locale ? help_locale : NULL, help_locales ? help_locales : NULL,
help_id ? help_id : NULL); help_id ? help_id : NULL);
#endif #endif
return_vals = return_vals =
@ -316,7 +323,7 @@ gimp_help_call (Gimp *gimp,
&n_return_vals, &n_return_vals,
GIMP_PDB_STRING, procedure, GIMP_PDB_STRING, procedure,
GIMP_PDB_STRING, help_domain, GIMP_PDB_STRING, help_domain,
GIMP_PDB_STRING, help_locale, GIMP_PDB_STRING, help_locales,
GIMP_PDB_STRING, help_id, GIMP_PDB_STRING, help_id,
GIMP_PDB_END); GIMP_PDB_END);