From 54d61c622ba721b4ea57852e0ba6c87acfa66a2b Mon Sep 17 00:00:00 2001 From: oroborus Date: Fri, 8 Aug 2008 15:08:39 +0000 Subject: - 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 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://opensvn.csie.org/tuxanci_ng@193 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/client/language.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) (limited to 'src/client/language.c') 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 #include #include +#include #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 ) -- cgit v1.2.3