Add helper function for locale (name) enumeration

master
Palana 2014-07-11 20:10:35 +02:00
parent b5ec57c2b5
commit 0413ada9b5
2 changed files with 25 additions and 0 deletions

View File

@ -440,6 +440,29 @@ string GenerateTimeDateFilename(const char *extension)
return string(file);
}
vector<pair<string, string>> GetLocaleNames()
{
string path;
if (!GetDataFilePath("locale.ini", path))
throw "Could not find locale.ini path";
ConfigFile ini;
if (ini.Open(path.c_str(), CONFIG_OPEN_EXISTING) != 0)
throw "Could not open locale.ini";
size_t sections = config_num_sections(ini);
vector<pair<string, string>> names;
names.reserve(sections);
for (size_t i = 0; i < sections; i++) {
const char *tag = config_get_section(ini, i);
const char *name = config_get_string(ini, tag, "Name");
names.emplace_back(tag, name);
}
return names;
}
static void create_log_file(fstream &logFile)
{
stringstream dst;

View File

@ -23,6 +23,7 @@
#include <util/util.hpp>
#include <string>
#include <memory>
#include <vector>
#include "window-main.hpp"
@ -98,5 +99,6 @@ inline OBSApp *App() {return static_cast<OBSApp*>(qApp);}
inline config_t GetGlobalConfig() {return App()->GlobalConfig();}
std::vector<std::pair<std::string, std::string>> GetLocaleNames();
inline const char *Str(const char *lookup) {return App()->GetString(lookup);}
#define QTStr(lookupVal) QString::fromUtf8(Str(lookupVal))