Sun, 14 Jun 2015 20:14:42 -0400
facebook: use working locale language
--- 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