facebook: use working locale language facebook

Sun, 14 Jun 2015 20:14:42 -0400

author
James Geboski <jgeboski@gmail.com>
date
Sun, 14 Jun 2015 20:14:42 -0400
branch
facebook
changeset 37260
473934b0c408
parent 37259
40b7fc17eab5
child 37261
480d3184752c

facebook: use working locale language

libpurple/protocols/facebook/api.c file | annotate | diff | comparison | revisions
libpurple/protocols/facebook/util.c file | annotate | diff | comparison | revisions
libpurple/protocols/facebook/util.h file | annotate | diff | comparison | revisions
--- a/libpurple/protocols/facebook/api.c	Sat Jun 13 18:44:18 2015 -0400
+++ b/libpurple/protocols/facebook/api.c	Sun Jun 14 20:14:42 2015 -0400
@@ -382,14 +382,16 @@
 	PurpleHttpRequest *req;
 
 	fb_http_params_set_str(params, "api_key", FB_API_KEY);
-	fb_http_params_set_str(params, "client_country_code", "US");
 	fb_http_params_set_str(params, "device_id", priv->did);
 	fb_http_params_set_str(params, "fb_api_caller_class", info->klass);
 	fb_http_params_set_str(params, "fb_api_req_friendly_name", info->name);
 	fb_http_params_set_str(params, "format", "json");
-	fb_http_params_set_str(params, "locale", "en_US");
 	fb_http_params_set_str(params, "method", info->method);
 
+	val = fb_util_locale_str();
+	fb_http_params_set_str(params, "locale", val);
+	g_free(val);
+
 	req = purple_http_request_new(url);
 	purple_http_request_set_method(req, "POST");
 
--- a/libpurple/protocols/facebook/util.c	Sat Jun 13 18:44:18 2015 -0400
+++ b/libpurple/protocols/facebook/util.c	Sun Jun 14 20:14:42 2015 -0400
@@ -27,6 +27,34 @@
 #include "util.h"
 
 gchar *
+fb_util_locale_str(void)
+{
+	const gchar * const *langs;
+	const gchar *lang;
+	gchar *chr;
+	guint i;
+
+	static const gchar chrs[] = {'.', '@'};
+
+	langs = g_get_language_names();
+	lang = langs[0];
+
+	if (purple_strequal(lang, "C")) {
+		return g_strdup("en_US");
+	}
+
+	for (i = 0; i < G_N_ELEMENTS(chrs); i++) {
+		chr = strchr(lang, chrs[i]);
+
+		if (chr != NULL) {
+			return g_strndup(lang, chr - lang);
+		}
+	}
+
+	return g_strdup(lang);
+}
+
+gchar *
 fb_util_randstr(gsize size)
 {
 	gchar *ret;
--- a/libpurple/protocols/facebook/util.h	Sat Jun 13 18:44:18 2015 -0400
+++ b/libpurple/protocols/facebook/util.h	Sun Jun 14 20:14:42 2015 -0400
@@ -29,6 +29,9 @@
 typedef void (*FbUtilRequestBuddyFunc) (GSList *buddies, gpointer data);
 
 gchar *
+fb_util_locale_str(void);
+
+gchar *
 fb_util_randstr(gsize size);
 
 gpointer

mercurial