diff --git a/ediv/src/ediv/language.c b/ediv/src/ediv/language.c index 7c004a1..c34b8b6 100644 --- a/ediv/src/ediv/language.c +++ b/ediv/src/ediv/language.c @@ -18,75 +18,83 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - #ifdef _WIN32 -# include +#include #else -# include -# include +#include +#include #endif #include "shared.h" #include "language.h" #include "edivcfg/iniparser.h" +static char *ediv_strlwr(char *str); -int detecta_idioma_iso(char* lang) +int detecta_idioma_iso(char *lang) { int i; static char getid[NUM_LANGUAGES][3] = { - "es", /* español */ - "it", /* italiano */ - "pt", /* portugués */ - "en", /* inglés */ - "ca", /* catalán */ - "eu" /* euskera */ + "es", /* español */ + "it", /* italiano */ + "pt", /* portugués */ + "en", /* inglés */ + "ca", /* catalán */ + "eu" /* euskera */ }; - if(lang==NULL) return DEFAULT_LANGUAGE; - if(strlen(lang)>2) lang[2]=0; - strlwr(lang); - for(i=0;i 2) + lang[2] = 0; + ediv_strlwr(lang); + for (i = 0; i < NUM_LANGUAGES; i++) + if (lang[0] == getid[i][0]) + if (lang[1] == getid[i][1]) break; - if(i==NUM_LANGUAGES) i=DEFAULT_LANGUAGE; + if (i == NUM_LANGUAGES) + i = DEFAULT_LANGUAGE; return i; } - int detecta_idioma() { - char* langcfg=NULL; - if (ini!=NULL) langcfg=iniparser_getstr(ini,"general:lang"); - if(langcfg==NULL) { - #ifdef _WIN32 - int i; - static int getid[NUM_LANGUAGES] = { - 0x0a, /* español */ - 0x10, /* italiano */ - 0x16, /* portugués */ - 0x09, /* inglés */ - 0x03, /* catalán */ - 0x2d /* euskera */ - }; - LANGID lang; + char *langcfg = NULL; + if (ini != NULL) + langcfg = iniparser_getstr(ini, "general:lang"); + if (langcfg == NULL) + { +#ifdef _WIN32 + int i; + static int getid[NUM_LANGUAGES] = { + 0x0a, /* español */ + 0x10, /* italiano */ + 0x16, /* portugués */ + 0x09, /* inglés */ + 0x03, /* catalán */ + 0x2d /* euskera */ + }; + LANGID lang; - lang=GetSystemDefaultLangID()&0xff; - for(i=0;i