コード例 #1
0
bool IEAcceptLanguagesAction::_isCurrentLanguageOk(wstring& firstlang)
{
	wstring langcode;

	_readLanguageCode(langcode);
	_parseLanguage(langcode);
	_getFirstLanguage(firstlang);

	// IE 6.0 uses two digit language codes, after IE 6 can also include country
	return firstlang.compare(L"ca-es") == 0 || firstlang.compare(L"ca") == 0;
}
コード例 #2
0
bool FirefoxAction::_readLanguageCode()
{	
	wstring location, line, langcode;
	wifstream reader;

	if (m_CachedLanguageCode == true)
		return true;	
	
	if (_getPreferencesFile(location) == false)
	{
		g_log.Log(L"FirefoxAction::_readLanguageCode. No preferences file found. Firefox is not installed");
		return false;
	}
	reader.open(location.c_str());

	if (reader.is_open())
	{
		int start, end;

		while(!reader.eof())
		{	
			getline(reader,line);
			start = line.find(USER_PREF);

			if (start == wstring::npos)
				continue;

			start+=wcslen(USER_PREF);

			end = line.find(L"\"", start);

			if (end == wstring::npos)
				continue;

			langcode = line.substr(start, end - start);
			_parseLanguage(langcode);
			break;
		}
	}
	else
	{
		g_log.Log(L"FirefoxAction::_readLanguageCode cannot open %s", (wchar_t *) location.c_str());
		return false;
	}

	reader.close();
	g_log.Log(L"FirefoxAction::_readLanguageCode open %s", (wchar_t *) location.c_str());
	m_CachedLanguageCode = true;
	return true;
}