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 Windows8LPIAction::_isLanguagePanelFirstForLanguage(wstring expectedcode)
{
    bool bRslt;
    wstring langcode, firstlang;

    // TODO: Read always return a single language
    _readLanguageCode(langcode);
    //_parseLanguage(langcode);
    _getFirstLanguage(firstlang);

    std::transform(firstlang.begin(), firstlang.end(), firstlang.begin(), ::tolower);
    bRslt = firstlang.compare(expectedcode) == 0;
    g_log.Log(L"Windows8LPIAction::_isLanguagePanelFirstForLanguage '%u' (%s)", (wchar_t *) bRslt, (wchar_t *) firstlang.c_str());
    return bRslt;
}
bool FirefoxAction::IsNeed()
{
	bool bNeed = false;
	wstring firstlang;

	_readVersionAndLocale();

	if (_readLanguageCode())
	{
		if (m_languages.size() == 0)
		{
			if (m_locale == L"ca")
			{
				bNeed = false;
			}
			else
			{
				bNeed = true;
			}
		}
		else
		{
			_getFirstLanguage(firstlang);
			bNeed = firstlang.compare(L"ca-es") != 0 && firstlang.compare(L"ca") != 0;
		}

		if (bNeed == false)
		{
			SetStatus(AlreadyApplied);
		}
	}
	else
	{
		_setStatusNotInstalled();
	}
	
	g_log.Log(L"FirefoxAction::IsNeed returns %u (first lang:%s)", (wchar_t *) bNeed, (wchar_t *) firstlang.c_str());
	return bNeed;
}