feat: language picker with flags, paging and follow mode, translation run in the floating window
Language picker with search and SVG flags, real pagination with locate, one global machine translation run shown next to uploads. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5f6bd4508e
commit
7fa88e4025
82 files changed
+978
-187
No files matched your search
@@ -80,3 +80,19 @@ def test_po_and_csv_roundtrip(manifest):
|
||||
st = tr.stats(m, "de")
|
||||
assert st["translated"] == 1 and st["stringsTranslated"] == 1
|
||||
assert json.dumps(st)
|
||||
|
||||
|
||||
def test_entries_page_locates_a_line_in_the_filtered_list(manifest):
|
||||
idx = tr.text_index(manifest)
|
||||
first, second = idx.lines[0], idx.lines[1]
|
||||
page = tr.entries_page(manifest, "ru", state="untranslated", limit=1, locate=second.tid)
|
||||
assert page["located"] == 1 and page["total"] == len(idx.lines) and len(page["items"]) == 1
|
||||
|
||||
m = tr.apply_changes(manifest, "ru", lines={first.tid: {"t": "Привет", "state": "machine"}})
|
||||
# a translated line leaves the "untranslated" list, so the next one moves up
|
||||
assert tr.entries_page(m, "ru", state="untranslated", locate=second.tid)["located"] == 0
|
||||
assert tr.entries_page(m, "ru", state="untranslated", locate=first.tid)["located"] is None
|
||||
# ...but stays in "todo" because machine translations still await a review
|
||||
assert tr.entries_page(m, "ru", state="todo", locate=first.tid)["located"] == 0
|
||||
assert tr.entries_page(m, "ru", locate="")["located"] is None
|
||||
assert tr.entries_page(m, "ru", kind="strings", locate="Эйлин")["located"] is not None
|
||||
Reference in new issue
Block a user