uint32_t CLocalizeStrings::LoadBlock(const CStdString &id, const CStdString &path, const CStdString &fallbackPath) { iBlocks it = m_blocks.find(id); if (it != m_blocks.end()) return it->second; // already loaded // grab a new block uint32_t offset = block_start + m_blocks.size()*block_size; m_blocks.insert(make_pair(id, offset)); // load the strings CStdString encoding; bool success = LoadStr2Mem(path, encoding, offset); if (!success) { if (path == fallbackPath) // no fallback, nothing to do return 0; } // load the fallback if (path != fallbackPath) success |= LoadStr2Mem(fallbackPath, encoding, offset); return success ? offset : 0; }
static bool LoadWithFallback(const std::string& path, const std::string& language, std::map<uint32_t, LocStr>& strings) { std::string encoding; if (!LoadStr2Mem(path, language, strings, encoding)) { if (StringUtils::EqualsNoCase(language, LANGUAGE_DEFAULT)) // no fallback, nothing to do return false; } // load the fallback if (!StringUtils::EqualsNoCase(language, LANGUAGE_DEFAULT)) LoadStr2Mem(path, LANGUAGE_DEFAULT, strings, encoding); return true; }
bool CLocalizeStrings::LoadSkinStrings(const CStdString& path, const CStdString& fallbackPath) { ClearSkinStrings(); // load the skin strings in. CStdString encoding; if (!LoadStr2Mem(path, encoding)) { if (path == fallbackPath) // no fallback, nothing to do return false; } // load the fallback if (path != fallbackPath) LoadStr2Mem(fallbackPath, encoding); return true; }
bool CLocalizeStrings::Load(const CStdString& strFileName, const CStdString& strFallbackFileName) { bool bLoadFallback = !strFileName.Equals(strFallbackFileName); CStdString encoding; Clear(); if (!LoadStr2Mem(strFileName, encoding)) { // try loading the fallback if (!bLoadFallback || !LoadStr2Mem(strFallbackFileName, encoding)) return false; bLoadFallback = false; } if (bLoadFallback) LoadStr2Mem(strFallbackFileName, encoding); // fill in the constant strings m_strings[20022] = ""; m_strings[20027] = ToUTF8(encoding, "°F"); m_strings[20028] = ToUTF8(encoding, "K"); m_strings[20029] = ToUTF8(encoding, "°C"); m_strings[20030] = ToUTF8(encoding, "°Ré"); m_strings[20031] = ToUTF8(encoding, "°Ra"); m_strings[20032] = ToUTF8(encoding, "°Rø"); m_strings[20033] = ToUTF8(encoding, "°De"); m_strings[20034] = ToUTF8(encoding, "°N"); m_strings[20200] = ToUTF8(encoding, "km/h"); m_strings[20201] = ToUTF8(encoding, "m/min"); m_strings[20202] = ToUTF8(encoding, "m/s"); m_strings[20203] = ToUTF8(encoding, "ft/h"); m_strings[20204] = ToUTF8(encoding, "ft/min"); m_strings[20205] = ToUTF8(encoding, "ft/s"); m_strings[20206] = ToUTF8(encoding, "mph"); m_strings[20207] = ToUTF8(encoding, "kts"); m_strings[20208] = ToUTF8(encoding, "Beaufort"); m_strings[20209] = ToUTF8(encoding, "inch/s"); m_strings[20210] = ToUTF8(encoding, "yard/s"); m_strings[20211] = ToUTF8(encoding, "Furlong/Fortnight"); return true; }