25b7f28

Update android-strings-lib and add support for plural and string-arrays

guix.scm

189189
        (method git-fetch)
190190
        (uri (git-reference
191191
               (url "https://framagit.org/tyreunom/python-android-strings-lib")
192-
               (commit "0415535b125a64eb6da20a6b15ad92456e73ca8d")))
192+
               (commit "92d15a9a31a0d3184be01ce433ec74c2f426dc01")))
193193
        (file-name (git-file-name name version))
194194
        (sha256
195-
          (base32
196-
            "0icalva7a5w8a6qcrgkxkywckdqv8r5j5y9d5m6ln8bbk9s9fbls"))))
195+
         (base32
196+
          "0q41vnh5q5phy36vnpfb8pr3zg9brwg2vqq72x2d8jh7yrdyrgdj"))))
197197
    (build-system python-build-system)
198198
    (arguments
199199
     `(#:tests? #f))

offlate/formats/androidstrings.py

7676
        return [self.enfilename, self.translationfilename]
7777
7878
    def reload(self):
79-
        self.translation = androidstringslib.android(self.conf["template"], self.conf["file"])
79+
        self.translation = androidstringslib.android(self.conf["template"], self.conf["file"], self.conf['lang'])
8080
8181
    def translationFiles(self):
8282
        return [self.translationfilename]

offlate/formats/entry.py

6565
        if entry.type == 'string':
6666
            msgids = [entry.orig]
6767
            msgstrs = [entry.dst]
68-
        elif entry.type == 'plurals':
69-
            msgid = entry.orig
68+
        else:
69+
            msgids = entry.orig
7070
            msgstrs = entry.dst
7171
        Entry.__init__(self, msgids, msgstrs, False, False)
7272
        self.entry = entry

offlate/ui/editor.py

9898
                cont = True
9999
            if not cont:
100100
                continue
101-
            item = QTreeWidgetItem([entry.msgids[0].replace('\n', ' '),
102-
                                    entry.msgstrs[0].replace('\n', ' ')])
101+
            txt = None
102+
            i = 0
103+
            while txt is None:
104+
                txt = entry.msgids[i] if isinstance(entry.msgids, list) else \
105+
                        list(entry.msgids.items())[i][1]
106+
                i = i + 1
107+
                if i >= len(entry.msgids) and txt is None:
108+
                    txt = ''
109+
            trans = None
110+
            i = 0
111+
            while trans is None:
112+
                trans = entry.msgstrs[i] if isinstance(entry.msgstrs, list) else \
113+
                        list(entry.msgstrs.items())[i][1]
114+
                i = i + 1
115+
                if i >= len(entry.msgstrs) and trans is None:
116+
                    trans = ''
117+
118+
            item = QTreeWidgetItem([txt.replace('\n', ' '),
119+
                                    trans.replace('\n', ' ')])
103120
            if entry.isFuzzy():
104121
                item.setForeground(1, self.fuzzyColor)
105122
            if not entry.isTranslated():

231248
        font = "monospace" if self.monospace else "sans-serif"
232249
        focuser = None
233250
234-
        if len(data.msgstrs) > 1:
235-
            self.msgid = QTabWidget();
236-
            self.msgstr = QTabWidget();
251+
        if isinstance(data.msgstrs, dict):
252+
            self.msgid = QTabWidget()
253+
            self.msgstr = QTabWidget()
254+
            for k in data.msgids:
255+
                edit = TagClickEdit()
256+
                edit.setFont(QFont(font))
257+
                edit.setReadOnly(True)
258+
                edit.setText(data.msgids[k])
259+
                edit.createLinks()
260+
                edit.anchorClicked.connect(self.copyTag)
261+
                self.msgid.addTab(edit, self.tr(k))
262+
            i = 0
263+
            for k in data.msgstrs:
264+
                form = SpellCheckEdit(self.project.lang)
265+
                form.setFont(QFont(font))
266+
                form.setText(data.msgstrs[k])
267+
                form.textChanged.connect(self.modify)
268+
                self.msgstr.addTab(form, self.tr(k))
269+
                if i == 0:
270+
                    focuser = form
271+
                i=i+1
272+
        elif len(data.msgstrs) > 1:
273+
            self.msgid = QTabWidget()
274+
            self.msgstr = QTabWidget()
237275
            singular = TagClickEdit()
238276
            singular.setFont(QFont(font))
239277
            singular.setReadOnly(True)

309347
310348
    def update(self, callback=None):
311349
        self.project.save()
312-
        print(callback)
313350
        self.project.update(self.askmerge, callback)
314351
        self.content = self.project.content()
315352
        self.updateContent()