[glib/new-gsettings] Add a testcase for message context and UTF-8 in messages
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/new-gsettings] Add a testcase for message context and UTF-8 in messages
- Date: Sat, 17 Apr 2010 04:47:30 +0000 (UTC)
commit 8f09d24c3ab2c9f1a6f808d8f2e64c541fa1ccd6
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Apr 17 00:45:26 2010 -0400
Add a testcase for message context and UTF-8 in messages
gio/tests/gsettings.c | 56 ++++++++++++++++++++++++++++++++++++++++
gio/tests/org.gtk.test.gschema | 9 ++++++
2 files changed, 65 insertions(+), 0 deletions(-)
---
diff --git a/gio/tests/gsettings.c b/gio/tests/gsettings.c
index c5e880b..3aee4c9 100644
--- a/gio/tests/gsettings.c
+++ b/gio/tests/gsettings.c
@@ -544,6 +544,61 @@ test_l10n (void)
g_free (locale);
}
+static gboolean
+gtk_translations_work (void)
+{
+ gchar *locale;
+ gchar *orig = "SCREEN";
+ gchar *str;
+
+ locale = g_strdup (setlocale (LC_MESSAGES, NULL));
+ setlocale (LC_MESSAGES, "de");
+ str = dgettext ("gtk20", orig);
+ setlocale (LC_MESSAGES, locale);
+ g_free (locale);
+
+ return str != orig;
+}
+
+static void
+test_l10n_context (void)
+{
+ GSettings *settings;
+ gchar *str;
+ gchar *locale;
+
+ if (!gtk_translations_work ())
+ {
+ g_test_message ("Skipping localization tests because translations don't work");
+ return;
+ }
+
+ bind_textdomain_codeset ("gtk20", "UTF-8");
+
+ locale = g_strdup (setlocale (LC_MESSAGES, NULL));
+
+ settings = g_settings_new ("org.gtk.test.localized");
+
+ setlocale (LC_MESSAGES, "C");
+ g_settings_get (settings, "backspace", "s", &str);
+ setlocale (LC_MESSAGES, locale);
+
+ g_assert_cmpstr (str, ==, "BackSpace");
+ g_free (str);
+ str = NULL;
+
+ setlocale (LC_MESSAGES, "de");
+ g_settings_get (settings, "backspace", "s", &str);
+ setlocale (LC_MESSAGES, locale);
+
+ g_assert_cmpstr (str, ==, "Löschen");
+ g_object_unref (settings);
+ g_free (str);
+ str = NULL;
+
+ g_free (locale);
+}
+
enum
{
PROP_0,
@@ -892,6 +947,7 @@ main (int argc, char *argv[])
g_test_add_func ("/gsettings/complex-types", test_complex_types);
g_test_add_func ("/gsettings/changes", test_changes);
g_test_add_func ("/gsettings/l10n", test_l10n);
+ g_test_add_func ("/gsettings/l10n-context", test_l10n_context);
g_test_add_func ("/gsettings/delay-apply", test_delay_apply);
g_test_add_func ("/gsettings/delay-revert", test_delay_revert);
g_test_add_func ("/gsettings/atomic", test_atomic);
diff --git a/gio/tests/org.gtk.test.gschema b/gio/tests/org.gtk.test.gschema
index 13937b6..a98a2e8 100644
--- a/gio/tests/org.gtk.test.gschema
+++ b/gio/tests/org.gtk.test.gschema
@@ -1,4 +1,5 @@
<schemalist>
+
<schema id="org.gtk.test" path="/tests/" gettext-domain="test">
<key name="greeting" type="s">
<default l10n="messages">"Hello, earthlings"</default>
@@ -15,6 +16,7 @@
<child name='complex-types' schema='org.gtk.test.complex-types'/>
<child name='localized' schema='org.gtk.test.localized'/>
</schema>
+
<schema id="org.gtk.test.basic-types" path="/tests/basic-types/">
<key name="test-boolean" type="b">
<default>true</default>
@@ -50,6 +52,7 @@
<default>"/a/object/path"</default>
</key>
</schema>
+
<schema id="org.gtk.test.complex-types" path="/tests/complex-types/">
<key name="test-tuple" type="(s(ii))">
<default>("one",(2,3))</default>
@@ -58,11 +61,16 @@
<default>[0,1,2,3,4,5]</default>
</key>
</schema>
+
<schema id="org.gtk.test.localized" path="/tests/localized/" gettext-domain="glib20">
<key name="error-message" type="s">
<default l10n="messages">"Unnamed"</default>
</key>
+ <key name="backspace" type="s">
+ <default l10n="messages" context="keyboard label">"BackSpace"</default>
+ </key>
</schema>
+
<schema id="org.gtk.test.binding" path="/tests/binding/">
<key name="bool" type="b">
<default>false</default>
@@ -77,4 +85,5 @@
<default>""</default>
</key>
</schema>
+
</schemalist>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]