summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRui Matos <tiagomatos@gmail.com>2013-01-31 14:33:20 +0100
committerRui Matos <tiagomatos@gmail.com>2013-02-18 13:53:10 +0100
commit3a1c3d48c1f993f4d6f113da402c2858533a6dfe (patch)
treebcb777e5b8104df9433d425290e427c532168069
parent0e3144da7c1c65e60dc32dcdd32b4a0b8f795a4f (diff)
downloadgnome-desktop-3a1c3d48c1f993f4d6f113da402c2858533a6dfe.tar.gz
gnome-languages: Big renaming to make the API clearer
Several of these functions use the word 'name' or 'language' but the argument they take is actually a locale string. We also rename s/territory/country/ in the public API since country is the term that ISO 3166 actually talks about. https://bugzilla.gnome.org/show_bug.cgi?id=693774
-rw-r--r--libgnome-desktop/gnome-languages.c120
-rw-r--r--libgnome-desktop/gnome-languages.h32
-rw-r--r--libgnome-desktop/test-languages.c30
3 files changed, 93 insertions, 89 deletions
diff --git a/libgnome-desktop/gnome-languages.c b/libgnome-desktop/gnome-languages.c
index 6731405c..6ec6f460 100644
--- a/libgnome-desktop/gnome-languages.c
+++ b/libgnome-desktop/gnome-languages.c
@@ -121,11 +121,11 @@ normalize_codeset (const char *codeset)
* [language[_territory][.codeset][@modifier]]
*/
gboolean
-gnome_parse_language_name (const char *name,
- char **language_codep,
- char **territory_codep,
- char **codesetp,
- char **modifierp)
+gnome_parse_locale (const char *locale,
+ char **language_codep,
+ char **country_codep,
+ char **codesetp,
+ char **modifierp)
{
GRegex *re;
GMatchInfo *match_info;
@@ -149,15 +149,15 @@ gnome_parse_language_name (const char *name,
goto out;
}
- if (!g_regex_match (re, name, 0, &match_info) ||
+ if (!g_regex_match (re, locale, 0, &match_info) ||
g_match_info_is_partial_match (match_info)) {
- g_warning ("locale '%s' isn't valid\n", name);
+ g_warning ("locale '%s' isn't valid\n", locale);
goto out;
}
res = g_match_info_matches (match_info);
if (! res) {
- g_warning ("Unable to parse locale: %s", name);
+ g_warning ("Unable to parse locale: %s", locale);
goto out;
}
@@ -167,13 +167,13 @@ gnome_parse_language_name (const char *name,
*language_codep = g_match_info_fetch_named (match_info, "language");
}
- if (territory_codep != NULL) {
- *territory_codep = g_match_info_fetch_named (match_info, "territory");
+ if (country_codep != NULL) {
+ *country_codep = g_match_info_fetch_named (match_info, "territory");
- if (*territory_codep != NULL &&
- *territory_codep[0] == '\0') {
- g_free (*territory_codep);
- *territory_codep = NULL;
+ if (*country_codep != NULL &&
+ *country_codep[0] == '\0') {
+ g_free (*country_codep);
+ *country_codep = NULL;
}
}
@@ -200,7 +200,7 @@ gnome_parse_language_name (const char *name,
if (codesetp != NULL && *codesetp != NULL) {
normalized_codeset = normalize_codeset (*codesetp);
normalized_name = construct_language_name (language_codep ? *language_codep : NULL,
- territory_codep ? *territory_codep : NULL,
+ country_codep ? *country_codep : NULL,
normalized_codeset,
modifierp ? *modifierp : NULL);
@@ -246,7 +246,7 @@ construct_language_name (const char *language,
}
char *
-gnome_normalize_language_name (const char *name)
+gnome_normalize_locale (const char *locale)
{
char *normalized_name;
char *language_code;
@@ -255,14 +255,14 @@ gnome_normalize_language_name (const char *name)
char *modifier;
gboolean valid;
- if (name[0] == '\0') {
+ if (locale[0] == '\0') {
return NULL;
}
- valid = gnome_parse_language_name (name,
- &language_code,
- &territory_code,
- &codeset, &modifier);
+ valid = gnome_parse_locale (locale,
+ &language_code,
+ &territory_code,
+ &codeset, &modifier);
if (!valid)
return NULL;
@@ -329,14 +329,14 @@ language_name_get_codeset_details (const char *language_name,
}
gboolean
-gnome_language_has_translations (const char *language_name)
+gnome_language_has_translations (const char *code)
{
GDir *dir;
char *path;
const char *name;
gboolean has_translations;
- path = g_build_filename (GNOMELOCALEDIR, language_name, "LC_MESSAGES", NULL);
+ path = g_build_filename (GNOMELOCALEDIR, code, "LC_MESSAGES", NULL);
has_translations = FALSE;
dir = g_dir_open (path, 0, NULL);
@@ -399,11 +399,11 @@ add_locale (const char *language_name,
}
locale = g_new0 (GnomeLocale, 1);
- gnome_parse_language_name (name,
- &locale->language_code,
- &locale->territory_code,
- &locale->codeset,
- &locale->modifier);
+ gnome_parse_locale (name,
+ &locale->language_code,
+ &locale->territory_code,
+ &locale->codeset,
+ &locale->modifier);
g_free (name);
name = NULL;
@@ -1113,8 +1113,8 @@ territories_init (void)
}
char *
-gnome_get_language_from_name (const char *name,
- const char *locale)
+gnome_get_language_from_locale (const char *locale,
+ const char *translation)
{
GString *full_language;
char *language_code;
@@ -1125,8 +1125,8 @@ gnome_get_language_from_name (const char *name,
char *translated_territory;
gboolean is_utf8 = TRUE;
- g_return_val_if_fail (name != NULL, NULL);
- g_return_val_if_fail (*name != '\0', NULL);
+ g_return_val_if_fail (locale != NULL, NULL);
+ g_return_val_if_fail (*locale != '\0', NULL);
translated_territory = NULL;
translated_language = NULL;
@@ -1141,17 +1141,17 @@ gnome_get_language_from_name (const char *name,
territory_code = NULL;
codeset_code = NULL;
- gnome_parse_language_name (name,
- &language_code,
- &territory_code,
- &codeset_code,
- NULL);
+ gnome_parse_locale (locale,
+ &language_code,
+ &territory_code,
+ &codeset_code,
+ NULL);
if (language_code == NULL) {
goto out;
}
- translated_language = get_translated_language (language_code, locale);
+ translated_language = get_translated_language (language_code, translation);
if (translated_language == NULL) {
goto out;
}
@@ -1163,7 +1163,7 @@ gnome_get_language_from_name (const char *name,
}
if (territory_code != NULL) {
- translated_territory = get_translated_territory (territory_code, locale);
+ translated_territory = get_translated_territory (territory_code, translation);
}
if (translated_territory != NULL) {
g_string_append_printf (full_language,
@@ -1171,7 +1171,7 @@ gnome_get_language_from_name (const char *name,
translated_territory);
}
- language_name_get_codeset_details (name, &langinfo_codeset, &is_utf8);
+ language_name_get_codeset_details (locale, &langinfo_codeset, &is_utf8);
if (codeset_code == NULL && langinfo_codeset != NULL) {
codeset_code = g_strdup (langinfo_codeset);
@@ -1200,8 +1200,8 @@ gnome_get_language_from_name (const char *name,
}
char *
-gnome_get_region_from_name (const char *name,
- const char *locale)
+gnome_get_country_from_locale (const char *locale,
+ const char *translation)
{
GString *full_name;
char *language_code;
@@ -1212,8 +1212,8 @@ gnome_get_region_from_name (const char *name,
char *translated_territory;
gboolean is_utf8 = TRUE;
- g_return_val_if_fail (name != NULL, NULL);
- g_return_val_if_fail (*name != '\0', NULL);
+ g_return_val_if_fail (locale != NULL, NULL);
+ g_return_val_if_fail (*locale != '\0', NULL);
translated_territory = NULL;
translated_language = NULL;
@@ -1228,17 +1228,17 @@ gnome_get_region_from_name (const char *name,
territory_code = NULL;
codeset_code = NULL;
- gnome_parse_language_name (name,
- &language_code,
- &territory_code,
- &codeset_code,
- NULL);
+ gnome_parse_locale (locale,
+ &language_code,
+ &territory_code,
+ &codeset_code,
+ NULL);
if (territory_code == NULL) {
goto out;
}
- translated_territory = get_translated_territory (territory_code, locale);
+ translated_territory = get_translated_territory (territory_code, translation);
g_string_append (full_name, translated_territory);
if (is_unique_territory (territory_code)) {
@@ -1246,7 +1246,7 @@ gnome_get_region_from_name (const char *name,
}
if (language_code != NULL) {
- translated_language = get_translated_language (language_code, locale);
+ translated_language = get_translated_language (language_code, translation);
}
if (translated_language != NULL) {
g_string_append_printf (full_name,
@@ -1254,7 +1254,7 @@ gnome_get_region_from_name (const char *name,
translated_language);
}
- language_name_get_codeset_details (name, &langinfo_codeset, &is_utf8);
+ language_name_get_codeset_details (translation, &langinfo_codeset, &is_utf8);
if (codeset_code == NULL && langinfo_codeset != NULL) {
codeset_code = g_strdup (langinfo_codeset);
@@ -1283,7 +1283,7 @@ gnome_get_region_from_name (const char *name,
}
char **
-gnome_get_all_language_names (void)
+gnome_get_all_locales (void)
{
GHashTableIter iter;
gpointer key, value;
@@ -1310,7 +1310,7 @@ gnome_get_all_language_names (void)
/**
* gnome_get_language_from_code:
* @code: an ISO 639 code string
- * @locale: (allow-none): a locale string
+ * @translation: (allow-none): a locale string
*
* Gets the language name for @code. If @locale is provided the
* returned string is translated accordingly.
@@ -1322,19 +1322,19 @@ gnome_get_all_language_names (void)
*/
char *
gnome_get_language_from_code (const char *code,
- const char *locale)
+ const char *translation)
{
g_return_val_if_fail (code != NULL, NULL);
languages_init ();
- return get_translated_language (code, locale);
+ return get_translated_language (code, translation);
}
/**
* gnome_get_country_from_code:
* @code: an ISO 3166 code string
- * @locale: (allow-none): a locale string
+ * @translation: (allow-none): a locale string
*
* Gets the country name for @code. If @locale is provided the
* returned string is translated accordingly.
@@ -1346,13 +1346,13 @@ gnome_get_language_from_code (const char *code,
*/
char *
gnome_get_country_from_code (const char *code,
- const char *locale)
+ const char *translation)
{
g_return_val_if_fail (code != NULL, NULL);
territories_init ();
- return get_translated_territory (code, locale);
+ return get_translated_territory (code, translation);
}
/**
@@ -1393,7 +1393,7 @@ gnome_get_input_source_from_locale (const char *locale,
}
}
- if (!gnome_parse_language_name (locale, &l_code, &c_code, NULL, NULL))
+ if (!gnome_parse_locale (locale, &l_code, &c_code, NULL, NULL))
return FALSE;
key = g_strconcat (l_code, "_", c_code, NULL);
diff --git a/libgnome-desktop/gnome-languages.h b/libgnome-desktop/gnome-languages.h
index e08e410c..948d554c 100644
--- a/libgnome-desktop/gnome-languages.h
+++ b/libgnome-desktop/gnome-languages.h
@@ -30,22 +30,22 @@
G_BEGIN_DECLS
-char * gnome_get_language_from_name (const char *name,
- const char *locale);
-char * gnome_get_region_from_name (const char *name,
- const char *locale);
-char ** gnome_get_all_language_names (void);
-gboolean gnome_parse_language_name (const char *name,
- char **language_codep,
- char **territory_codep,
- char **codesetp,
- char **modifierp);
-char * gnome_normalize_language_name (const char *name);
-gboolean gnome_language_has_translations (const char *language_name);
-char * gnome_get_language_from_code (const char *code,
- const char *locale);
-char * gnome_get_country_from_code (const char *code,
- const char *locale);
+char * gnome_get_language_from_locale (const char *locale,
+ const char *translation);
+char * gnome_get_country_from_locale (const char *locale,
+ const char *translation);
+char ** gnome_get_all_locales (void);
+gboolean gnome_parse_locale (const char *locale,
+ char **language_codep,
+ char **country_codep,
+ char **codesetp,
+ char **modifierp);
+char * gnome_normalize_locale (const char *locale);
+gboolean gnome_language_has_translations (const char *code);
+char * gnome_get_language_from_code (const char *code,
+ const char *translation);
+char * gnome_get_country_from_code (const char *code,
+ const char *translation);
gboolean gnome_get_input_source_from_locale (const char *locale,
const char **type,
const char **id);
diff --git a/libgnome-desktop/test-languages.c b/libgnome-desktop/test-languages.c
index 04208323..9de5c396 100644
--- a/libgnome-desktop/test-languages.c
+++ b/libgnome-desktop/test-languages.c
@@ -9,7 +9,7 @@
int main (int argc, char **argv)
{
- char **langs;
+ char **locales;
guint i;
setlocale (LC_ALL, NULL);
@@ -18,30 +18,34 @@ int main (int argc, char **argv)
if (argc > 1) {
guint i;
for (i = 1; i < argc; i++) {
- char *lang, *norm;
- norm = gnome_normalize_language_name (argv[i]);
- lang = gnome_get_language_from_name (norm, NULL);
- g_print ("%s (norm: %s) == %s\n", argv[i], norm, lang);
+ char *lang, *country, *norm;
+ norm = gnome_normalize_locale (argv[i]);
+ lang = gnome_get_language_from_locale (norm, NULL);
+ country = gnome_get_country_from_locale (norm, NULL);
+ g_print ("%s (norm: %s) == %s -- %s\n", argv[i], norm, lang, country);
g_free (norm);
g_free (lang);
+ g_free (country);
}
return 0;
}
- langs = gnome_get_all_language_names ();
- if (langs == NULL) {
- g_warning ("No languages found");
+ locales = gnome_get_all_locales ();
+ if (locales == NULL) {
+ g_warning ("No locales found");
return 1;
}
- for (i = 0; langs[i] != NULL; i++) {
- char *lang;
- lang = gnome_get_language_from_name (langs[i], NULL);
- g_print ("%s == %s\n", langs[i], lang);
+ for (i = 0; locales[i] != NULL; i++) {
+ char *lang, *country;
+ lang = gnome_get_language_from_locale (locales[i], NULL);
+ country = gnome_get_country_from_locale (locales[i], NULL);
+ g_print ("%s == %s -- %s\n", locales[i], lang, country);
g_free (lang);
+ g_free (country);
}
- g_strfreev (langs);
+ g_strfreev (locales);
return 0;
}