aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/translation.cpp17
-rw-r--r--common/translation.h2
2 files changed, 7 insertions, 12 deletions
diff --git a/common/translation.cpp b/common/translation.cpp
index 0b3d1237a9..5598cbcf8c 100644
--- a/common/translation.cpp
+++ b/common/translation.cpp
@@ -52,17 +52,12 @@ TranslationManager::TranslationManager() {
const char *locale = setlocale(LC_ALL, "");
// Detect the language from the locale
- if (!locale) {
- strcpy(_syslang, "C");
- } else {
- int len = strlen(locale);
- if (len > 5)
- len = 5;
- strncpy(_syslang, locale, len);
- _syslang[len] = 0;
- }
+ if (!locale)
+ _syslang = "C";
+ else
+ _syslang = locale;
#else // DETECTLANG
- strcpy(_syslang, "C");
+ _syslang = "C";
#endif // DETECTLANG
#ifdef TERMCONV
@@ -84,7 +79,7 @@ TranslationManager::~TranslationManager() {
void TranslationManager::setLanguage(const char *lang) {
if (*lang == '\0')
- po2c_setlang(_syslang);
+ po2c_setlang(_syslang.c_str());
else
po2c_setlang(lang);
diff --git a/common/translation.h b/common/translation.h
index 7be21df60f..a844c1f438 100644
--- a/common/translation.h
+++ b/common/translation.h
@@ -61,7 +61,7 @@ typedef Array<TLanguage> TLangArray;
*/
class TranslationManager : public Singleton<TranslationManager> {
private:
- char _syslang[6];
+ Common::String _syslang;
#ifdef TERMCONV
iconv_t _conversion;