diff --git a/install_lang.py b/install_lang.py index bbe02c0..80c40ea 100644 --- a/install_lang.py +++ b/install_lang.py @@ -36,6 +36,7 @@ if action == 'install': fname = fn_dir + filename print('Convert file "{}" to LMO ...'.format(fname)) lmo = po2lmo.Lmo() + lmo.skip_dup = True lmo.load_from_text(fname) lmo_fname = os.path.splitext(filename)[0] + '.lmo' lmo.save_to_bin(fn_dir + lmo_fname) diff --git a/po2lmo.py b/po2lmo.py index 6c5b175..57f3227 100644 --- a/po2lmo.py +++ b/po2lmo.py @@ -102,10 +102,15 @@ class Lmo: def __init__(self, verbose = 0): self.verbose = verbose + self.skip_dup = False self.entries = [] self.msg = Msg() def add_entry(self, key_id, val_id, val): + if self.skip_dup: + ent = next((ent for ent in self.entries if ent.key_id == key_id), None) + if ent: + return False # skip duplicate entry = LmoEntry() entry.key_id = key_id entry.val_id = val_id @@ -113,6 +118,7 @@ class Lmo: entry.length = len(val) entry.val = val self.entries.append(entry) + return True def print_msg(self): msg = self.msg