Esempio n. 1
0
std::wstring CLanguage::GetLangString ( const char * FileName, LanguageStringID ID )
{
    FILE *file = fopen(FileName, "rb");
    if (file == NULL)
    {
        return L"";
    }

    //Search for utf8 file marker
    uint8_t utf_bom[3];
    if (fread(&utf_bom, sizeof(utf_bom),1,file) != 1 ||
        utf_bom[0] != 0xEF ||
        utf_bom[1] != 0xBB ||
        utf_bom[2] != 0xBF)
    {
        fclose(file);
        return L"";
    }

    //String;
    while (!feof(file))
    {
        LANG_STR String = GetNextLangString(file);
        if (String.first == ID)
        {
            fclose(file);
            return String.second;
        }
    }
    fclose(file);
    return L"";
}
Esempio n. 2
0
bool CLanguage::LoadCurrentStrings(void)
{
    //clear all the current strings loaded
    m_CurrentStrings.clear();

    if (g_Settings->LoadBool(Debugger_DebugLanguage))
    {
        m_LanguageLoaded = true;
        return true;
    }

    LanguageList LangList = GetLangList();
    stdstr Filename;

    //Find the file name of the current language
    for (LanguageList::iterator Language = LangList.begin(); Language != LangList.end(); Language++)
    {
        if (g_Lang->IsCurrentLang(*Language))
        {
            Filename = Language->Filename;
            break;
        }
    }

    if (Filename.length() == 0)
    {
        return false;
    }

    //Process the file
    FILE *file = fopen(Filename.c_str(), "rb");
    if (file == NULL)
    {
        return false;
    }

    //Search for utf8 file marker
    uint8_t utf_bom[3];
    if (fread(&utf_bom, sizeof(utf_bom), 1, file) != 1 ||
        utf_bom[0] != 0xEF ||
        utf_bom[1] != 0xBB ||
        utf_bom[2] != 0xBF)
    {
        fclose(file);
        return false;
    }

    //String;
    while (!feof(file))
    {
        m_CurrentStrings.insert(GetNextLangString(file));
    }
    fclose(file);
    m_LanguageLoaded = true;
    return true;
}