本文整理汇总了C++中SPDocument::getLanguage方法的典型用法代码示例。如果您正苦于以下问题:C++ SPDocument::getLanguage方法的具体用法?C++ SPDocument::getLanguage怎么用?C++ SPDocument::getLanguage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SPDocument
的用法示例。
在下文中一共展示了SPDocument::getLanguage方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: evaluateSystemLanguage
static bool evaluateSystemLanguage(SPItem const *item, gchar const *value) {
if ( NULL == value )
return true;
std::set<Glib::ustring> language_codes;
gchar *str = NULL;
gchar **strlist = g_strsplit( value, ",", 0);
for ( int i = 0 ; (str = strlist[i]) ; i++ ) {
gchar *lngcode = preprocessLanguageCode(str);
if ( 0 == *lngcode )
continue;
language_codes.insert(lngcode);
gchar *pos = strchr (lngcode, '-');
if (pos)
{
// if subtag is used, primary tag is still a perfect match
*pos = 0;
if ( language_codes.find(lngcode) == language_codes.end() ) {
language_codes.insert(lngcode);
}
}
}
g_strfreev(strlist);
if (language_codes.empty())
return false;
SPDocument *document = SP_OBJECT_DOCUMENT(item);
Glib::ustring document_language = document->getLanguage();
if (document_language.size() == 0)
return false;
bool match = true;
strlist = g_strsplit( document_language.c_str(), ",", 0);
for ( int i = 0 ; (str = strlist[i]) ; i++ ) {
gchar *lngcode = preprocessLanguageCode(str);
if ( 0 == *lngcode )
continue;
if ( language_codes.find(lngcode) != language_codes.end() ) {
match = true;
break;
}
match = false;
}
g_strfreev(strlist);
return match;
}