2 * Copyright (C) 2006 Jean Privat
3 * Part of the Neverball Project http://icculus.org/neverball/
5 * NEVERBALL is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published
7 * by the Free Software Foundation; either version 2 of the License,
8 * or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
16 /* The following declaration is needed to have the putenv function
17 * http://www.gnu.org/software/libc/manual/html_node/Environment-Access.html
19 #define _XOPEN_SOURCE 1
26 const char * gettextdbg(const char * c)
28 char * c2 = gettext(c);
33 const char * sgettext(const char *msgid)
35 const char *msgval = gettext (msgid);
36 if (msgval == msgid) {
37 msgval = strrchr (msgid, '^');
47 /*---------------------------------------------------------------------------*/
50 const char * language_names[] = {N_("English"), N_("French"), N_("German"), N_("Latvian")};
51 const char * language_codes[] = {"en", "fr", "de", "lv"};
53 /*---------------------------------------------------------------------------*/
55 void language_init(const char * domain, const char * locale_dir)
57 setlocale(LC_ALL, "");
58 bindtextdomain(domain, locale_dir);
60 bind_textdomain_codeset(domain, "UTF-8");
63 void language_set(int l)
67 /* remove the LANGUAGE env variable */
73 /* set the LANGUAGE env variable */
74 strcpy(e, "LANGUAGE=");
75 strncat(e, language_codes[l-1], 25-9);
78 setlocale(LC_ALL, ""); /* force to update getext */
81 int language_count(void)
86 int language_from_code(const char * code)
89 for(i=0; i<LANG_NUMBER; i++)
90 if (strcmp(language_codes[i], code) == 0)
95 const char * language_get_name(int id)
97 return id==0 ? _("System Default") : language_names[id-1];
101 const char * language_get_code(int id)
104 return language_codes[id-1];