diff options
| author | oroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e> | 2008-08-08 15:08:39 +0000 |
|---|---|---|
| committer | oroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e> | 2008-08-08 15:08:39 +0000 |
| commit | 54d61c622ba721b4ea57852e0ba6c87acfa66a2b (patch) | |
| tree | 5240311b5ab0aca967089b60df22034457fe515c /src/client/language.c | |
| parent | 8a49909114b3590d48d808b664db8b804bfe2ff7 (diff) | |
- schopnost autodetekce jazyka systému → v případě neznámého jazyka se zvolí default (angličtina)
- pamatovat posledně hranou arénu → vybrat ji a dostatečně zvýraznit
- pauza klevsa [P]
- seznam hráčů pod klávesou TAB – skóre, ping
git-svn-id: http://opensvn.csie.org/tuxanci_ng@193 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'src/client/language.c')
| -rw-r--r-- | src/client/language.c | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/src/client/language.c b/src/client/language.c index 6200e92..eb915ed 100644 --- a/src/client/language.c +++ b/src/client/language.c @@ -3,6 +3,7 @@ #include <stdlib.h> #include <string.h> #include <assert.h> +#include <sys/stat.h> #include "main.h" #include "list.h" @@ -11,12 +12,13 @@ #include "configFile.h" #include "language.h" +#include "director.h" static textFile_t *languageFile; static char fontFile[STR_FILE_NAME_SIZE]; static int fontSize; -char* getHead(textFile_t *ts) +static char* getHead(textFile_t *ts) { int i; @@ -34,7 +36,54 @@ char* getHead(textFile_t *ts) return NULL; } +static char* getSupportLanguage() +{ + director_t *director; + char *envLang; + char lang[STR_SIZE]; + int i; + + printf("I search language..\n"); + + envLang = getenv("LANG"); + + if( envLang == NULL ) + { + printf("Environment LANG not defined, I use default value \"en\"\n"); + return strdup("en"); + } + + memset(lang, 0, STR_SIZE); + strncpy(lang, envLang, 2); + + director = loadDirector(PATH_LANG); + + if( director == NULL ) + { + fprintf(stderr, "Do not open director %s\n", PATH_LANG); + return strdup("en"); + } + for( i = 0 ; i < director->list->count ; i++ ) + { + char *line; + + line = (char *)director->list->list[i]; + + if( strncmp(lang, line, 2) == 0 ) + { + printf("I choice lang %s in file %s\n", lang, line); + return strdup(lang); + } + } + + destroyDirector(director); + + printf("Lang %s not support, I use default language english\n", lang); + + return strdup("en"); +} + int initLanguage() { textFile_t *languageTypeFile; @@ -48,12 +97,16 @@ int initLanguage() if( languageTypeFile == NULL ) { + char *defaultLang; + fprintf(stderr, "Don't load %s\n", path); fprintf(stderr, "I create %s\n", path); languageTypeFile = newTextFile(path); - addList(languageTypeFile->text, strdup("en") ); + defaultLang = getSupportLanguage(); + addList(languageTypeFile->text, strdup(defaultLang) ); saveTextFile(languageTypeFile); + free(defaultLang); } if( languageTypeFile == NULL ) |