| |
@@ -11,7 +11,7 @@
|
| |
import tempfile
|
| |
import yaml
|
| |
|
| |
- from shutil import copyfile
|
| |
+ from shutil import copyfile, copy2
|
| |
from translation_finder import discover
|
| |
|
| |
def main():
|
| |
@@ -30,6 +30,7 @@
|
| |
|
| |
srpm_folder="./src.rpms/f{v}/".format(v=args.release)
|
| |
result_folder="./results/f{v}/".format(v=args.release)
|
| |
+ tm_folder="./tm/f{v}/".format(v=args.release)
|
| |
|
| |
pkgs = []
|
| |
for (dirpath, dirnames, filenames) in os.walk(srpm_folder):
|
| |
@@ -43,7 +44,7 @@
|
| |
package = [x for x in pkgs if x == args.srpm][0]
|
| |
srpm_file = "{srpm}/{a}".format(srpm=srpm_folder, a=package)
|
| |
extract_srpm(tmp, srpm_file, result_folder)
|
| |
- discover_translations(tmp, package, result_folder)
|
| |
+ discover_translations(tmp, package, result_folder, tm_folder)
|
| |
else:
|
| |
with tempfile.TemporaryDirectory() as tmp:
|
| |
if args.offset:
|
| |
@@ -60,7 +61,7 @@
|
| |
|
| |
srpm_file = "{srpm}/{a}".format(srpm=srpm_folder, a=package)
|
| |
extract_srpm(tmp, srpm_file, result_folder)
|
| |
- discover_translations(tmp, package, result_folder)
|
| |
+ discover_translations(tmp, package, result_folder, tm_folder)
|
| |
|
| |
subprocess.run(['./concat_csv.sh', result_folder],
|
| |
check=True)
|
| |
@@ -78,7 +79,7 @@
|
| |
out.close()
|
| |
error.close()
|
| |
|
| |
- def discover_translations(tmp, name, result_folder):
|
| |
+ def discover_translations(tmp, name, result_folder, tm_folder):
|
| |
"""find po file"""
|
| |
print("discover_translations: "+tmp)
|
| |
translation_files = []
|
| |
@@ -102,7 +103,7 @@
|
| |
for translation in translation_files:
|
| |
# TODO: multiple translation files for same package gnome-clocks-3.32.0-1.fc30.src.rpm
|
| |
if translation["file_format"] == "po":
|
| |
- get_po_translation_level(tmp, translation, name, result_folder)
|
| |
+ get_po_translation_level(tmp, translation, name, result_folder, tm_folder)
|
| |
elif translation["file_format"] == "ts":
|
| |
get_ts_translation_level(tmp, translation, name, result_folder)
|
| |
elif translation["file_format"] == "json":
|
| |
@@ -113,7 +114,7 @@
|
| |
else:
|
| |
unknown_format(tmp, translation, name, translation["file_format"], result_folder)
|
| |
|
| |
- def get_po_translation_level(path, mask, name, result_folder):
|
| |
+ def get_po_translation_level(path, mask, name, result_folder, tm_folder):
|
| |
filemask = mask["filemask"]
|
| |
print("get_po_translation_level: " + filemask)
|
| |
|
| |
@@ -121,12 +122,16 @@
|
| |
error = open(result_folder + '/{p}.errors.txt'.format(p=name), 'a')
|
| |
subprocess.run(["pocount", filemask.split("*")[0], "--csv"],
|
| |
stdout=stats, stderr=error, check=True, cwd=path)
|
| |
- print(filemask.split("*")[0])
|
| |
- print(os.listdir(path))
|
| |
|
| |
stats.close()
|
| |
error.close()
|
| |
|
| |
+ # Copy translation files in translation memory
|
| |
+ for po in glob.glob(path +"/"+ filemask):
|
| |
+ dest = tm_folder +"/"+ name +"/"+ filemask.split("*")[0]
|
| |
+ os.makedirs(dest, exist_ok=True)
|
| |
+ copy2(po, dest)
|
| |
+
|
| |
subprocess.run(["sed", "-i", "-e", "s|{p}|.|g".format(p=path),
|
| |
result_folder + '/{p}.errors.txt'.format(p=name)], check=True)
|
| |
|
| |