Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
locale: add filter for available locales
  • Loading branch information
perexg committed Jan 1, 2016
1 parent 4219b49 commit 188b93a
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 8 deletions.
20 changes: 12 additions & 8 deletions src/api/api_language.c
Expand Up @@ -58,21 +58,25 @@ api_language_locale_enum
l = htsmsg_create_list();
while (c->code2b) {
e = htsmsg_create_map();
htsmsg_add_str(e, "key", c->code2b);
htsmsg_add_str(e, "val", c->desc);
htsmsg_add_msg(l, NULL, e);
if (tvh_gettext_langcode_valid(c->code2b)) {
htsmsg_add_str(e, "key", c->code2b);
htsmsg_add_str(e, "val", c->desc);
htsmsg_add_msg(l, NULL, e);
}
s = c->locale;
while (s && *s) {
if (*s == '|')
s++;
if (s[0] == '\0' || s[1] == '\0')
break;
snprintf(buf1, sizeof(buf1), "%s_%c%c", c->code2b, s[0], s[1]);
snprintf(buf2, sizeof(buf2), "%s (%c%c)", c->desc, s[0], s[1]);
e = htsmsg_create_map();
htsmsg_add_str(e, "key", buf1);
htsmsg_add_str(e, "val", buf2);
htsmsg_add_msg(l, NULL, e);
if (tvh_gettext_langcode_valid(buf1)) {
snprintf(buf2, sizeof(buf2), "%s (%c%c)", c->desc, s[0], s[1]);
e = htsmsg_create_map();
htsmsg_add_str(e, "key", buf1);
htsmsg_add_str(e, "val", buf2);
htsmsg_add_msg(l, NULL, e);
}
s += 2;
}
c++;
Expand Down
15 changes: 15 additions & 0 deletions src/tvh_locale.c
Expand Up @@ -160,6 +160,21 @@ static struct lng *lng_get_locale(char *locale_lang)
return lng_get("eng");
}

/*
*
*/
int tvh_gettext_langcode_valid(const char *code)
{
struct lng ls;
int ret;

pthread_mutex_lock(&tvh_gettext_mutex);
ls.tvh_lang = code;
ret = RB_FIND(&lngs, &ls, link, lng_cmp) != NULL;
pthread_mutex_unlock(&tvh_gettext_mutex);
return ret;
}

/*
*
*/
Expand Down
2 changes: 2 additions & 0 deletions src/tvh_locale.h
Expand Up @@ -26,6 +26,8 @@ static inline const char *tvh_gettext(const char *s)
#define _(s) tvh_gettext(s)
#define N_(s) (s)

int tvh_gettext_langcode_valid(const char *code);

void tvh_gettext_init(void);
void tvh_gettext_done(void);

Expand Down

0 comments on commit 188b93a

Please sign in to comment.