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
|
// the alternative language that will be used if the sentence is not found in the original language
|
||||||
static StrMapContainer _StrMapFallback;
|
static StrMapContainer _StrMapFallback;
|
||||||
|
|
||||||
static const std::string _LanguageCodes[];
|
static std::vector<std::string> _LanguageCodes;
|
||||||
static const uint _NbLanguages;
|
static std::vector<ucstring> _LanguageNames;
|
||||||
|
|
||||||
static bool _LanguagesNamesLoaded;
|
static bool _LanguagesNamesLoaded;
|
||||||
|
|
||||||
|
|
|
@ -31,13 +31,52 @@ const ucstring CI18N::_NotTranslatedValue("<Not Translated>");
|
||||||
bool CI18N::_LanguagesNamesLoaded = false;
|
bool CI18N::_LanguagesNamesLoaded = false;
|
||||||
string CI18N::_SelectedLanguageCode;
|
string CI18N::_SelectedLanguageCode;
|
||||||
CI18N::ILoadProxy *CI18N::_LoadProxy = 0;
|
CI18N::ILoadProxy *CI18N::_LoadProxy = 0;
|
||||||
|
vector<string> CI18N::_LanguageCodes;
|
||||||
|
vector<ucstring> CI18N::_LanguageNames;
|
||||||
|
|
||||||
void CI18N::setLoadProxy(ILoadProxy *loadProxy)
|
void CI18N::setLoadProxy(ILoadProxy *loadProxy)
|
||||||
{
|
{
|
||||||
_LoadProxy = 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)
|
void CI18N::load (const string &languageCode, const string &fallbackLanguageCode)
|
||||||
{
|
{
|
||||||
if (_StrMapLoaded) _StrMap.clear ();
|
if (_StrMapLoaded) _StrMap.clear ();
|
||||||
|
|
Loading…
Reference in a new issue