void LanguageManager::findHyphDictionarySets(QStringList& dictionaryPaths, QMap<QString, QString>& dictionaryMap) { for (int i=0; i<dictionaryPaths.count(); ++i) { // Find the dic and aff files in the location QDir dictLocation(dictionaryPaths.at(i)); QStringList dictFilters("hyph*.dic"); if (dictionaryPaths.at(i)==ScPaths::getUserDictDir(ScPaths::Hyph, false)) dictFilters.append("*.dic"); QStringList dictList(dictLocation.entryList(dictFilters, QDir::Files, QDir::Name)); dictList.replaceInStrings(".dic",""); foreach(QString dn, dictList) { // qDebug()<<dn; QString dictName; if (dn.startsWith("hyph_")) dictName=dn.section('_',1); else dictName=dn; if (!dictionaryMap.contains(dictName)) { if (dictName.length()<=2) { QString shortAbbrev(LanguageManager::getShortAbbrevFromAbbrev(dictName)); dictionaryMap.insert(dictName, dictionaryPaths.at(i)+dn+".dic"); } if (dictName.length()>2) { QString shortAbbrev(LanguageManager::getShortAbbrevFromAbbrev(dictName)); dictionaryMap.insert(shortAbbrev, dictionaryPaths.at(i)+dn+".dic"); } } } }
void LanguageManager::findDictionarySets(QStringList &dictionaryPaths, QMap<QString, QString> &dictionaryMap) { for (int i=0; i<dictionaryPaths.count(); ++i) { // Find the dic and aff files in the location QDir dictLocation(dictionaryPaths.at(i)); QStringList dictFilters("*.dic"); QStringList dictList(dictLocation.entryList(dictFilters, QDir::Files, QDir::Name)); dictList.replaceInStrings(".dic",""); //Ensure we have aff+dic file pairs, remove any hyphenation dictionaries from the list QString dictName; foreach(dictName, dictList) { if (!QFile::exists(dictionaryPaths.at(i)+dictName+".aff")) dictList.removeAll(dictName); else { if (!dictionaryMap.contains(dictName)) dictionaryMap.insert(dictName, dictionaryPaths.at(i)+dictName); } } // qDebug()<<"Number of dictionaries/AFFs found in"<<dictionaryPaths.at(i)<<":"<<dictList.count(); } }
void LanguageManager::findSpellingDictionarySets(QStringList &dictionaryPaths, QMap<QString, QString> &dictionaryMap) { for (int i=0; i<dictionaryPaths.count(); ++i) { // Find the dic and aff files in the location QDir dictLocation(dictionaryPaths.at(i)); QStringList dictFilters("*.dic"); QStringList dictList(dictLocation.entryList(dictFilters, QDir::Files, QDir::Name)); dictList.replaceInStrings(".dic",""); //Ensure we have aff+dic file pairs, remove any hyphenation dictionaries from the list QString dictName; foreach(dictName, dictList) { if (!QFile::exists(dictionaryPaths.at(i)+dictName+".aff")) dictList.removeAll(dictName); else { if (!dictionaryMap.contains(dictName)) { if (dictName.length()<=5) { //QString shortAbbrev(LanguageManager::getShortAbbrevFromAbbrev(dictName)); //qDebug()<<"findSpellingDictionarySets"<<dictName<<shortAbbrev; dictionaryMap.insert(dictName, dictionaryPaths.at(i)+dictName); //dictionaryMap.insert(shortAbbrev, dictionaryPaths.at(i)+dictName); } //qDebug()<<"Spell Finder:"<<dictName<<dictionaryPaths.at(i)+dictName; if (dictName.length()>5) { QString shortAbbrev(LanguageManager::getShortAbbrevFromAbbrev(dictName)); //qDebug()<<shortAbbrev; dictionaryMap.insert(shortAbbrev, dictionaryPaths.at(i)+dictName); } } } } // qDebug()<<"Number of dictionaries/AFFs found in"<<dictionaryPaths.at(i)<<":"<<dictList.count(); } //Now rescan dictionary map for any extra languages we can support with the files we have QMap<QString, QString>::iterator it = dictionaryMap.begin(); while (it != dictionaryMap.end()) { QString lang(it.key()); if (lang.length()==5) { QString shortAbbrev(LanguageManager::getShortAbbrevFromAbbrev(lang)); if (!dictionaryMap.contains(shortAbbrev)) { //qDebug()<<"Adding extra spelling definitions for:"<<lang<<":"<<shortAbbrev; dictionaryMap.insert(shortAbbrev, it.value()); } //else //qDebug()<<"Short abbreviation:"<<shortAbbrev<<"already exists for:"<<lang; } if (lang.length()==2) { QString altAbbrev(LanguageManager::getAlternativeAbbrevfromAbbrev(lang)); if (!dictionaryMap.contains(altAbbrev)) { //qDebug()<<"Adding extra spelling definitions for:"<<lang<<":"<<altAbbrev; dictionaryMap.insert(altAbbrev, it.value()); } //else //qDebug()<<"Alt. abbreviation:"<<altAbbrev<<"already exists for:"<<lang; } ++it; } }