@@ -19,10 +19,11 @@ from distutils import file_util from string import Template import metagraphe import metaphone2 +import thes_build # Dictionnaire des caractères pour le tri naturel. # Ordre souhaitable, mais pose problème pour la recherche, car engendre des égalités de lemmes différents. # Il faut donc travailler sur un dictionnaire trié *numériquement* et le sauvegarder selon le tri *naturel* @@ -566,14 +567,10 @@ for dVars in lDictVars: dicPath = spBuild + '/' + PREFIX_DICT_PATH + self.sVersion file_util.copy_file(dicPath+'/'+dVars['asciiName']+'.dic', spExt+'/dictionaries/'+dVars['asciiName']+'.dic') file_util.copy_file(dicPath+'/'+dVars['asciiName']+'.aff', spExt+'/dictionaries/'+dVars['asciiName']+'.aff') copyTemplate('orthographe', spExt+'/dictionaries', 'README_dict_fr.txt', dTplVars) - # thesaurus - file_util.copy_file('thesaurus/thes_fr.dat', spExt+'/dictionaries') - file_util.copy_file('thesaurus/thes_fr.idx', spExt+'/dictionaries') - file_util.copy_file('thesaurus/README_thes_fr.txt', spExt+'/dictionaries') # hyphenation file_util.copy_file('césures/hyph_fr.dic', spExt+'/dictionaries') file_util.copy_file('césures/hyph_fr.iso8859-1.dic', spExt+'/dictionaries') file_util.copy_file('césures/frhyph.tex', spExt+'/dictionaries') file_util.copy_file('césures/hyph-fr.tex', spExt+'/dictionaries') @@ -1502,10 +1499,22 @@ hDst.write(str(t)+"\n") for e in self.dFlexions.items(): hDst.write("{} - {}\n".format(e[0], e[1])) +def createThesaurusPackage (spBuild, sVersion, spCopy=""): + print("Création du thésaurus") + spThesaurus = spBuild+"/thesaurus-v"+sVersion + dir_util.mkpath(spThesaurus) + thes_build.build("thesaurus/thes_fr.dat", "thesaurus/synsets_fr.dat", spThesaurus) + file_util.copy_file('thesaurus/README_thes_fr.txt', spThesaurus) + if spCopy: + # copy in libreoffice extension package + file_util.copy_file(spThesaurus+'/thes_fr.dat', spCopy) + file_util.copy_file(spThesaurus+'/thes_fr.idx', spCopy) + file_util.copy_file(spThesaurus+'/README_thes_fr.txt', spCopy) + def main (): xParser = argparse.ArgumentParser() xParser.add_argument("-v", "--verdic", help="set dictionary version, i.e. 5.4", type=str, default="X.Y.z") xParser.add_argument("-m", "--mode", help="0: no tags, 1: Hunspell tags (default), 2: All tags", type=int, choices=[0, 1, 2], default=1) @@ -1556,27 +1565,28 @@ oStatsLex.addLexFromFile('lexique/corpus_data/stats_frwikisource.txt', 'S', 'Wikisource') oStatsLex.addLexFromFile('lexique/corpus_data/stats_litterature.txt', 'L', 'Littérature') oStatsLex.write(spBuild+'/test_lex.txt') oFrenchDict.calculateStats(oStatsLex, spfStats) - ### écriture des paquets + ### Écriture des paquets echo("Création des paquets...") spLexiconDestGL = "../../../lexicons" if xArgs.grammalecte else "" spLibreOfficeExtDestGL = "../oxt/Dictionnaires/dictionaries" if xArgs.grammalecte else "" spMozillaExtDestGL = "" if xArgs.grammalecte else "" # no more Hunspell dictionaries in Mozilla extensions for now spDataDestGL = "../data" if xArgs.grammalecte else "" + ### dictionnaires if not xArgs.uncompress: oFrenchDict.defineAbreviatedTags(xArgs.mode, spfStats) oFrenchDict.createFiles(spBuild, [dTOUTESVAR, dCLASSIQUE, dREFORME1990], xArgs.mode, xArgs.simplify) oFrenchDict.createLexiconPackages(spBuild, xArgs.verdic, oStatsLex, spLexiconDestGL) oFrenchDict.createFileIfqForDB(spBuild) + createThesaurusPackage(spBuild, xArgs.verdic, spLibreOfficeExtDestGL) oFrenchDict.createLibreOfficeExtension(spBuild, dMOZEXT, [dTOUTESVAR, dCLASSIQUE, dREFORME1990], spLibreOfficeExtDestGL) oFrenchDict.createMozillaExtensions(spBuild, dMOZEXT, [dTOUTESVAR, dCLASSIQUE, dREFORME1990], spMozillaExtDestGL) oFrenchDict.createDictConj(spBuild, spDataDestGL) oFrenchDict.createDictDecl(spBuild, spDataDestGL) - if __name__ == '__main__': main()