uint8_t LanguageIdentifier::guessLanguageFromDoctype(Xml *xml, char *content) {
	uint8_t rvDoc = langUnknown;
	int id;
	char *str;
	char lang[6];

	if(!content) return(langUnknown);

	for(int32_t i = 0; i < xml->getNumNodes(); i++) {
		id = xml->getNodeId(i);
		// skip if not DOCTYPE
		if ( id != TAG_DOCTYPE ) continue;
		// get the tag ptr to the tag
		char *tag    = xml->getNode(i);
		// this is in BYTES
		//int32_t  tagLen = xml->getNodeLen(i);
		// case might be upper, so we change
		// the first two letters to lower.
		str = FindLanguageIndex(tag);
		if(!str) continue;
		if(copyLangTag(lang, str, 5))
			rvDoc = getLanguageFromAbbr(lang);
		return(rvDoc);
	}
	return(rvDoc);
}
Exemple #2
0
PCWSTR
MUIGetOEMCodePage(
    IN PCWSTR LanguageId)
{
    ULONG lngIndex = max(FindLanguageIndex(LanguageId), 0);
    return MUILanguageList[lngIndex].OEMCPage;
}
Exemple #3
0
const MUI_LAYOUTS*
MUIGetLayoutsList(
    IN PCWSTR LanguageId)
{
    ULONG lngIndex = max(FindLanguageIndex(LanguageId), 0);
    return MUILanguageList[lngIndex].MuiLayouts;
}
Exemple #4
0
PCWSTR
MUIDefaultKeyboardLayout(
    IN PCWSTR LanguageId)
{
    ULONG lngIndex = max(FindLanguageIndex(LanguageId), 0);
    return MUILanguageList[lngIndex].MuiLayouts[0].LayoutID;
}
Exemple #5
0
PCWSTR
MUIGetGeoID(
    IN PCWSTR LanguageId)
{
    ULONG lngIndex = max(FindLanguageIndex(LanguageId), 0);
    return MUILanguageList[lngIndex].GeoID;
}