src/eric7/Project/ProjectTranslationsBrowser.py

branch
eric7
changeset 9514
2b104ad132a4
parent 9512
6e29913ba7b6
child 9520
e12589f1d408
equal deleted inserted replaced
9513:6e260b424396 9514:2b104ad132a4
819 itmList = self.getSelectedItems() 819 itmList = self.getSelectedItems()
820 if itmList and not previewAll: 820 if itmList and not previewAll:
821 for itm in itmList: 821 for itm in itmList:
822 if isinstance(itm, ProjectBrowserSimpleDirectoryItem): 822 if isinstance(itm, ProjectBrowserSimpleDirectoryItem):
823 dname = self.project.getRelativePath(itm.dirName()) 823 dname = self.project.getRelativePath(itm.dirName())
824 trfiles = sorted(self.project.pdata["TRANSLATIONS"][:]) 824 trfiles = sorted(
825 self.project.getProjectData(dataKey="TRANSLATIONS")[:]
826 )
825 for trfile in trfiles: 827 for trfile in trfiles:
826 if trfile.startswith(dname) and trfile not in fileNames: 828 if trfile.startswith(dname) and trfile not in fileNames:
827 fileNames.append(os.path.join(self.project.ppath, trfile)) 829 fileNames.append(os.path.join(self.project.ppath, trfile))
828 else: 830 else:
829 fn = itm.fileName() 831 fn = itm.fileName()
830 if fn not in fileNames: 832 if fn not in fileNames:
831 fileNames.append(os.path.join(self.project.ppath, fn)) 833 fileNames.append(os.path.join(self.project.ppath, fn))
832 else: 834 else:
833 trfiles = sorted(self.project.pdata["TRANSLATIONS"][:]) 835 trfiles = sorted(self.project.getProjectData(dataKey="TRANSLATIONS")[:])
834 fileNames.extend( 836 fileNames.extend(
835 [ 837 [
836 os.path.join(self.project.ppath, trfile) 838 os.path.join(self.project.ppath, trfile)
837 for trfile in trfiles 839 for trfile in trfiles
838 if trfile.endswith(".qm") 840 if trfile.endswith(".qm")
866 pfile = "{0}_e4x.pro".format(path) 868 pfile = "{0}_e4x.pro".format(path)
867 869
868 # only consider files satisfying the filter criteria 870 # only consider files satisfying the filter criteria
869 _sources = [ 871 _sources = [
870 s 872 s
871 for s in self.project.pdata["SOURCES"] 873 for s in self.project.getProjectData(dataKey="SOURCES")
872 if os.path.splitext(s)[1] in filterList 874 if os.path.splitext(s)[1] in filterList
873 ] 875 ]
874 sources = [] 876 sources = []
875 for s in _sources: 877 for s in _sources:
876 addIt = True 878 addIt = True
877 for transExcept in self.project.pdata["TRANSLATIONEXCEPTIONS"]: 879 for transExcept in self.project.getProjectData(
880 dataKey="TRANSLATIONEXCEPTIONS"
881 ):
878 if s.startswith(transExcept): 882 if s.startswith(transExcept):
879 addIt = False 883 addIt = False
880 break 884 break
881 if addIt: 885 if addIt:
882 sources.append(s) 886 sources.append(s)
883 887
884 _forms = [f for f in self.project.pdata["FORMS"] if f.endswith(".ui")] 888 _forms = [
889 f for f in self.project.getProjectData(dataKey="FORMS") if f.endswith(".ui")
890 ]
885 forms = [] 891 forms = []
886 for f in _forms: 892 for f in _forms:
887 addIt = True 893 addIt = True
888 for transExcept in self.project.pdata["TRANSLATIONEXCEPTIONS"]: 894 for transExcept in self.project.getProjectData(
895 dataKey="TRANSLATIONEXCEPTIONS"
896 ):
889 if f.startswith(transExcept): 897 if f.startswith(transExcept):
890 addIt = False 898 addIt = False
891 break 899 break
892 if addIt: 900 if addIt:
893 forms.append(f) 901 forms.append(f)
898 for lang in langs 906 for lang in langs
899 if lang.fileName().endswith(".ts") 907 if lang.fileName().endswith(".ts")
900 ] 908 ]
901 else: 909 else:
902 try: 910 try:
903 pattern = self.project.pdata["TRANSLATIONPATTERN"].replace( 911 pattern = self.project.getProjectData(
904 "%language%", "*" 912 dataKey="TRANSLATIONPATTERN"
905 ) 913 ).replace("%language%", "*")
906 langs = [ 914 langs = [
907 lang 915 lang
908 for lang in self.project.pdata["TRANSLATIONS"] 916 for lang in self.project.getProjectData(dataKey="TRANSLATIONS")
909 if fnmatch.fnmatch(lang, pattern) 917 if fnmatch.fnmatch(lang, pattern)
910 ] 918 ]
911 except IndexError: 919 except IndexError:
912 langs = [] 920 langs = []
913 if not langs: 921 if not langs:
1116 1124
1117 # Hook support 1125 # Hook support
1118 if generateAll: 1126 if generateAll:
1119 if noobsolete: 1127 if noobsolete:
1120 if self.hooks["generateAll"] is not None: 1128 if self.hooks["generateAll"] is not None:
1121 self.hooks["generateAll"](self.project.pdata["TRANSLATIONS"]) 1129 self.hooks["generateAll"](
1130 self.project.getProjectData(dataKey="TRANSLATIONS")
1131 )
1122 return 1132 return
1123 else: 1133 else:
1124 if self.hooks["generateAllWithObsolete"] is not None: 1134 if self.hooks["generateAllWithObsolete"] is not None:
1125 self.hooks["generateAllWithObsolete"]( 1135 self.hooks["generateAllWithObsolete"](
1126 self.project.pdata["TRANSLATIONS"] 1136 self.project.getProjectData(dataKey="TRANSLATIONS")
1127 ) 1137 )
1128 return 1138 return
1129 else: 1139 else:
1130 if noobsolete: 1140 if noobsolete:
1131 if self.hooks["generateSelected"] is not None: 1141 if self.hooks["generateSelected"] is not None:
1175 for lang in langs 1185 for lang in langs
1176 if lang.fileName().endswith(".ts") 1186 if lang.fileName().endswith(".ts")
1177 ] 1187 ]
1178 else: 1188 else:
1179 try: 1189 try:
1180 pattern = self.project.pdata["TRANSLATIONPATTERN"].replace( 1190 pattern = self.project.getProjectData(
1181 "%language%", "*" 1191 dataKey="TRANSLATIONPATTERN"
1182 ) 1192 ).replace("%language%", "*")
1183 langs = [ 1193 langs = [
1184 lang 1194 lang
1185 for lang in self.project.pdata["TRANSLATIONS"] 1195 for lang in self.project.getProjectData(dataKey="TRANSLATIONS")
1186 if fnmatch.fnmatch(lang, pattern) 1196 if fnmatch.fnmatch(lang, pattern)
1187 ] 1197 ]
1188 except IndexError: 1198 except IndexError:
1189 langs = [] 1199 langs = []
1190 if not langs: 1200 if not langs:
1216 if noobsolete: 1226 if noobsolete:
1217 args.append("--no-obsolete") 1227 args.append("--no-obsolete")
1218 1228
1219 args += ["--ts", lang] 1229 args += ["--ts", lang]
1220 1230
1221 startPath = self.project.pdata.get("TRANSLATIONSOURCESTARTPATH", "") 1231 startPath = self.project.getProjectData(
1232 dataKey="TRANSLATIONSOURCESTARTPATH",
1233 default="",
1234 )
1222 args.append(startPath if bool(startPath) else ".") 1235 args.append(startPath if bool(startPath) else ".")
1223 1236
1224 proc.setWorkingDirectory(self.project.ppath) 1237 proc.setWorkingDirectory(self.project.ppath)
1225 proc.finished.connect( 1238 proc.finished.connect(
1226 functools.partial(self.__generateTSFileDone, proc) 1239 functools.partial(self.__generateTSFileDone, proc)
1357 self.tr("Translation file release"), 1370 self.tr("Translation file release"),
1358 self.tr( 1371 self.tr(
1359 "The release of the translation files (*.qm)" " was successful." 1372 "The release of the translation files (*.qm)" " was successful."
1360 ), 1373 ),
1361 ) 1374 )
1362 if self.project.pdata["TRANSLATIONSBINPATH"]: 1375 if self.project.getProjectData(dataKey="TRANSLATIONSBINPATH"):
1363 target = os.path.join( 1376 target = os.path.join(
1364 self.project.ppath, self.project.pdata["TRANSLATIONSBINPATH"] 1377 self.project.ppath,
1365 ) 1378 self.project.getProjectData(dataKey="TRANSLATIONSBINPATH"),
1366 for langFile in self.project.pdata["TRANSLATIONS"][:]: 1379 )
1380 for langFile in self.project.getProjectData(dataKey="TRANSLATIONS")[:]:
1367 if langFile.endswith(".ts"): 1381 if langFile.endswith(".ts"):
1368 qmFile = os.path.join( 1382 qmFile = os.path.join(
1369 self.project.ppath, langFile.replace(".ts", ".qm") 1383 self.project.ppath, langFile.replace(".ts", ".qm")
1370 ) 1384 )
1371 if os.path.exists(qmFile): 1385 if os.path.exists(qmFile):
1398 langs = [] if generateAll else self.getSelectedItems() 1412 langs = [] if generateAll else self.getSelectedItems()
1399 1413
1400 # Hooks support 1414 # Hooks support
1401 if generateAll: 1415 if generateAll:
1402 if self.hooks["releaseAll"] is not None: 1416 if self.hooks["releaseAll"] is not None:
1403 self.hooks["releaseAll"](self.project.pdata["TRANSLATIONS"]) 1417 self.hooks["releaseAll"](
1418 self.project.getProjectData(dataKey="TRANSLATIONS")
1419 )
1404 return 1420 return
1405 else: 1421 else:
1406 if self.hooks["releaseSelected"] is not None: 1422 if self.hooks["releaseSelected"] is not None:
1407 li = [self.project.getRelativePath(lang.fileName()) for lang in langs] 1423 li = [self.project.getRelativePath(lang.fileName()) for lang in langs]
1408 self.hooks["releaseSelected"](li) 1424 self.hooks["releaseSelected"](li)
1433 for lang in langs 1449 for lang in langs
1434 if lang.fileName().endswith(".ts") 1450 if lang.fileName().endswith(".ts")
1435 ] 1451 ]
1436 else: 1452 else:
1437 try: 1453 try:
1438 pattern = self.project.pdata["TRANSLATIONPATTERN"].replace( 1454 pattern = self.project.getProjectData(
1439 "%language%", "*" 1455 dataKey="TRANSLATIONPATTERN"
1440 ) 1456 ).replace("%language%", "*")
1441 langs = [ 1457 langs = [
1442 lang 1458 lang
1443 for lang in self.project.pdata["TRANSLATIONS"] 1459 for lang in self.project.getProjectData(dataKey="TRANSLATIONS")
1444 if fnmatch.fnmatch(lang, pattern) 1460 if fnmatch.fnmatch(lang, pattern)
1445 ] 1461 ]
1446 except IndexError: 1462 except IndexError:
1447 langs = [] 1463 langs = []
1448 if not langs: 1464 if not langs:

eric ide

mercurial