summaryrefslogtreecommitdiffstats
path: root/widgets
diff options
context:
space:
mode:
authorChris Lumens <clumens@redhat.com>2012-11-29 15:35:59 -0500
committerChris Lumens <clumens@redhat.com>2012-12-04 10:16:52 -0500
commitbb41f4f4d4747572de58eda3be68e2189beebd0f (patch)
treee042f8e35b14af75239e44c3231d3bd96d30ca46 /widgets
parent518bfce42cc625581117a1c1e7abf7890324eec9 (diff)
downloadanaconda-bb41f4f4d4747572de58eda3be68e2189beebd0f.tar.gz
anaconda-bb41f4f4d4747572de58eda3be68e2189beebd0f.tar.xz
anaconda-bb41f4f4d4747572de58eda3be68e2189beebd0f.zip
When we retranslate the welcome window, inform glibc.
Everything in the beginning of anaconda_base_window_retranslate is critical to making sure we can change translations at runtime. Translations are still not totally working, but this gets us a lot closer.
Diffstat (limited to 'widgets')
-rw-r--r--widgets/src/BaseWindow.c12
-rw-r--r--widgets/src/BaseWindow.h2
-rw-r--r--widgets/src/StandaloneWindow.c4
-rw-r--r--widgets/src/StandaloneWindow.h2
-rw-r--r--widgets/src/intl.h2
5 files changed, 16 insertions, 6 deletions
diff --git a/widgets/src/BaseWindow.c b/widgets/src/BaseWindow.c
index 8b3fcc378..4d31ee4b0 100644
--- a/widgets/src/BaseWindow.c
+++ b/widgets/src/BaseWindow.c
@@ -17,6 +17,8 @@
* Author: Chris Lumens <clumens@redhat.com>
*/
+#include <libintl.h>
+#include <stdlib.h>
#include <string.h>
#include "BaseWindow.h"
@@ -522,10 +524,18 @@ void anaconda_base_window_clear_info(AnacondaBaseWindow *win) {
*
* Since: 1.0
*/
-void anaconda_base_window_retranslate(AnacondaBaseWindow *win) {
+void anaconda_base_window_retranslate(AnacondaBaseWindow *win, const char *lang) {
char *markup;
GValue distro = G_VALUE_INIT;
+ setenv("LANGUAGE", lang, 1);
+ setlocale(LC_ALL, "");
+
+ {
+ extern int _nl_msg_cat_cntr;
+ ++_nl_msg_cat_cntr;
+ }
+
g_value_init(&distro, G_TYPE_STRING);
g_value_set_string(&distro, _(win->priv->orig_distro));
diff --git a/widgets/src/BaseWindow.h b/widgets/src/BaseWindow.h
index 3dd82bc4c..ef9c21068 100644
--- a/widgets/src/BaseWindow.h
+++ b/widgets/src/BaseWindow.h
@@ -66,7 +66,7 @@ struct _AnacondaBaseWindowClass {
GType anaconda_base_window_get_type (void);
GtkWidget *anaconda_base_window_new ();
-void anaconda_base_window_retranslate (AnacondaBaseWindow *win);
+void anaconda_base_window_retranslate (AnacondaBaseWindow *win, const char *lang);
gboolean anaconda_base_window_get_beta (AnacondaBaseWindow *win);
void anaconda_base_window_set_beta (AnacondaBaseWindow *win, gboolean is_beta);
diff --git a/widgets/src/StandaloneWindow.c b/widgets/src/StandaloneWindow.c
index 5d68f8eb4..d7e86a82b 100644
--- a/widgets/src/StandaloneWindow.c
+++ b/widgets/src/StandaloneWindow.c
@@ -205,8 +205,8 @@ void anaconda_standalone_window_set_may_continue(AnacondaStandaloneWindow *win,
*
* Since: 1.0
*/
-void anaconda_standalone_window_retranslate(AnacondaStandaloneWindow *win) {
- anaconda_base_window_retranslate(ANACONDA_BASE_WINDOW(win));
+void anaconda_standalone_window_retranslate(AnacondaStandaloneWindow *win, const char *lang) {
+ anaconda_base_window_retranslate(ANACONDA_BASE_WINDOW(win), lang);
gtk_button_set_label(GTK_BUTTON(win->priv->quit_button), _(QUIT_TEXT));
gtk_button_set_label(GTK_BUTTON(win->priv->continue_button), _(CONTINUE_TEXT));
}
diff --git a/widgets/src/StandaloneWindow.h b/widgets/src/StandaloneWindow.h
index 6afce6fe7..d156205da 100644
--- a/widgets/src/StandaloneWindow.h
+++ b/widgets/src/StandaloneWindow.h
@@ -72,7 +72,7 @@ GType anaconda_standalone_window_get_type (void);
GtkWidget *anaconda_standalone_window_new ();
gboolean anaconda_standalone_window_get_may_continue (AnacondaStandaloneWindow *win);
void anaconda_standalone_window_set_may_continue (AnacondaStandaloneWindow *win, gboolean may_continue);
-void anaconda_standalone_window_retranslate (AnacondaStandaloneWindow *win);
+void anaconda_standalone_window_retranslate (AnacondaStandaloneWindow *win, const char *lang);
G_END_DECLS
diff --git a/widgets/src/intl.h b/widgets/src/intl.h
index 6f8b3d5ca..18aad9f64 100644
--- a/widgets/src/intl.h
+++ b/widgets/src/intl.h
@@ -23,7 +23,7 @@
#include "../config.h"
#include "gettext.h"
-#define _(x) gettext(x)
+#define _(x) dgettext("anaconda", x)
#define N_(String) String
#ifdef ENABLE_NLS