Handle string-arrays in android format and editor

Julien LepillerSun Jan 12 04:35:47+0100 2020

28b6338

Handle string-arrays in android format and editor

offlate/formats/androidstrings.py

3737
    def content(self):
3838
        aresources = []
3939
        for entry in self.translation:
40-
            if entry.type == 'string-array':
41-
                index = 0
42-
                for item in entry.orig:
43-
                    aresources.append(
44-
                            AndroidStringsEntry(
45-
                                androidstringslib.parser.entry(
46-
                                    'string', entry.id + ':' + index, entry.orig[index], entry.dst[index]),
47-
                                entry, index))
48-
                    index += 1
49-
            else:
50-
                aresources.append(AndroidStringsEntry(entry))
40+
            aresources.append(AndroidStringsEntry(entry))
5141
        return aresources
5242
5343
    def save(self):

offlate/formats/entry.py

4242
        else:
4343
            return list(self.msgstrs.items())[index][1]
4444
45+
    def isPlural(self):
46+
        return len(self.msgstrs) > 1
47+
4548
class POEntry(Entry):
4649
    def __init__(self, entry):
4750
        msgids = [entry.msgid]

8689
            if self.parent is not None:
8790
                self.parent.dst[self.index] = content
8891
92+
    def isPlural(self):
93+
        return isinstance(self.msgstrs, dict)
94+
8995
class AppstoreEntry(Entry):
9096
    def __init__(self, filename, en, tr):
9197
        Entry.__init__(self, [en], [tr], False, False)

offlate/ui/editor.py

269269
                if i == 0:
270270
                    focuser = form
271271
                i=i+1
272-
        elif len(data.msgstrs) > 1:
272+
        elif data.isPlural():
273273
            self.msgid = QTabWidget()
274274
            self.msgstr = QTabWidget()
275275
            singular = TagClickEdit()

296296
                if i == 0:
297297
                    focuser = form
298298
                i=i+1
299+
        elif len(data.msgstrs) > 1:
300+
            self.msgid = QTabWidget()
301+
            self.msgstr = QTabWidget()
302+
            i = 0
303+
            for msgid in data.msgids:
304+
                edit = TagClickEdit()
305+
                edit.setFont(QFont(font))
306+
                edit.setReadOnly(True)
307+
                edit.setText(msgid)
308+
                edit.createLinks()
309+
                edit.anchorClicked.connect(self.copyTag)
310+
                self.msgid.addTab(edit, str(i))
311+
                i=i+1
312+
            i = 0
313+
            for msgstr in data.msgstrs:
314+
                form = SpellCheckEdit(self.project.lang)
315+
                form.setFont(QFont(font))
316+
                form.setText(msgstr)
317+
                form.textChanged.connect(self.modify)
318+
                self.msgstr.addTab(form, str(i))
319+
                if i == 0:
320+
                    focuser = form
321+
                i=i+1
299322
        else:
300323
            self.msgid = TagClickEdit()
301324
            self.msgid.setFont(QFont(font))