From c18c230f7a718f58c36cacbb5a11b2e159a8b227 Mon Sep 17 00:00:00 2001 From: Ayla Date: Tue, 12 Apr 2011 09:59:32 +0200 Subject: [PATCH] The translations can now be located on the system directory, or on the user-specific directory. The language selector on gmenu2x's settings will list the languages present on both directories. --- src/gmenu2x.cpp | 5 ++++- src/translator.cpp | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gmenu2x.cpp b/src/gmenu2x.cpp index d06168f..467ccc2 100644 --- a/src/gmenu2x.cpp +++ b/src/gmenu2x.cpp @@ -1121,8 +1121,11 @@ void GMenu2X::options() { int prevbacklight = confInt["backlight"]; bool showRootFolder = fileExists(CARD_ROOT); - FileLister fl_tr("translations"); + FileLister fl_tr(GMENU2X_SYSTEM_DIR "/translations"); fl_tr.browse(); + fl_tr.setPath(getHome() + "/translations", false); + fl_tr.browse(false); + fl_tr.insertFile("English"); string lang = tr.lang(); diff --git a/src/translator.cpp b/src/translator.cpp index d1c5553..56f3c5c 100644 --- a/src/translator.cpp +++ b/src/translator.cpp @@ -25,6 +25,7 @@ #include "translator.h" #include "debug.h" +#include "gmenu2x.h" using namespace std; @@ -44,7 +45,10 @@ void Translator::setLang(const string &lang) { translations.clear(); string line; - ifstream infile (string("translations/"+lang).c_str(), ios_base::in); + ifstream infile ((GMenu2X::getHome() + "/translations/" + lang).c_str(), ios_base::in); + if (!infile.is_open()) + infile.open((string(GMENU2X_SYSTEM_DIR "/translations/") + lang).c_str(), ios_base::in); + if (infile.is_open()) { while (getline(infile, line, '\n')) { line = trim(line);