Changed: #1129 Implement missing CI18N::getLanguageCodes and CI18N::getLanguageNames methods
This commit is contained in:
parent
78c1be5e62
commit
a07856f16c
2 changed files with 43 additions and 4 deletions
|
@ -218,8 +218,8 @@ private:
|
|||
// the alternative language that will be used if the sentence is not found in the original language
|
||||
static StrMapContainer _StrMapFallback;
|
||||
|
||||
static const std::string _LanguageCodes[];
|
||||
static const uint _NbLanguages;
|
||||
static std::vector<std::string> _LanguageCodes;
|
||||
static std::vector<ucstring> _LanguageNames;
|
||||
|
||||
static bool _LanguagesNamesLoaded;
|
||||
|
||||
|
|
|
@ -31,13 +31,52 @@ const ucstring CI18N::_NotTranslatedValue("<Not Translated>");
|
|||
bool CI18N::_LanguagesNamesLoaded = false;
|
||||
string CI18N::_SelectedLanguageCode;
|
||||
CI18N::ILoadProxy *CI18N::_LoadProxy = 0;
|
||||
|
||||
vector<string> CI18N::_LanguageCodes;
|
||||
vector<ucstring> CI18N::_LanguageNames;
|
||||
|
||||
void CI18N::setLoadProxy(ILoadProxy *loadProxy)
|
||||
{
|
||||
_LoadProxy = loadProxy;
|
||||
}
|
||||
|
||||
const std::vector<ucstring> &CI18N::getLanguageNames()
|
||||
{
|
||||
return _LanguageNames;
|
||||
}
|
||||
|
||||
const std::vector<std::string> &CI18N::getLanguageCodes()
|
||||
{
|
||||
if (!_LanguagesNamesLoaded)
|
||||
{
|
||||
std::vector<std::string> files;
|
||||
|
||||
// search all .uxt files
|
||||
CPath::getFileList("uxt", files);
|
||||
|
||||
// if not uxt found, use default languages
|
||||
if (files.empty())
|
||||
{
|
||||
_LanguageCodes.clear();
|
||||
_LanguageCodes.push_back("en");
|
||||
_LanguageCodes.push_back("fr");
|
||||
_LanguageCodes.push_back("de");
|
||||
_LanguageCodes.push_back("ru");
|
||||
}
|
||||
else
|
||||
{
|
||||
// add all languages found
|
||||
for(uint i = 0; i < files.size(); ++i)
|
||||
{
|
||||
_LanguageCodes.push_back(toLower(CFile::getFilenameWithoutExtension(files[i])));
|
||||
}
|
||||
|
||||
_LanguagesNamesLoaded = true;
|
||||
}
|
||||
}
|
||||
|
||||
return _LanguageCodes;
|
||||
}
|
||||
|
||||
void CI18N::load (const string &languageCode, const string &fallbackLanguageCode)
|
||||
{
|
||||
if (_StrMapLoaded) _StrMap.clear ();
|
||||
|
|
Loading…
Reference in a new issue