PoC for a Juxtalinear Bible Translation Editor
mvahowe opened this issue · comments
The Big Idea
- Take a Greek or Hebrew source text
- Restructure it in terms of source language sentences (which may span several verses or part of a verse or a non-integer number of verses)
- Convert to an array of objects with linguistic metadata and the original position of each word as well as the word itself
- provide a drag 'n' drop interface that allows the user to
-
- split the sentence into several "chunks"
-
- merge chunks
-
- reorder the chunks
-
- reorder the words within and between chunks
- Provide a text field for the "gloss" (rough translation) of each "chunk", as a single string per chunk, which 'moves' with the chunk when chunks are reordered
- Save out the resulting data as JSON
Data
- The original Greek as USFM: https://git.door43.org/unfoldingWord/el-x-koine_ugnt/raw/branch/master/50-EPH.usfm (we know how to turn this into whatever we need on screen so no need to reinvent any processing here)
- The 'sentences' data as JSON which ought to work as an internal data structure:
jxl_eph.zip generated by https://github.com/mvh-solutions/make-jxl-data
Drag 'n' Drop Interface
This is the heart of the UI and should eventually be a standalone component. There's a very simple and basic experiment with a drag 'n' drop interface at https://github.com/mvh-solutions/dnd-sentence (incomplete, a little buggy, works with Node v14). Screenshot to follow.
Required functionality is under 'big idea'. Each word appears exactly once, so we don't need to
- edit words
- add or remove words
- use words more than once
Keystroke navigation options would be nice, which probably means showing the selected word and chunk.
As mentioned, the gloss for each chunk should move with the chunk.
- If the membership of the chunk changes, including if the chunk is split, clear the gloss
- If the order of the chunk words changes, keep the gloss
- if two chunks are merged, merge the glosses, separated by a space
Poc App
- load and save JSON to local FS using browser dialogs
- load Greek USFM via browser dialog (convert using internals of the make-jxl-data repo)
- save reordered Greek USFM via browser dialog (I can sort out the data aspects once there's a UI to hang them on)
- nudge button navigation between sentences with chapter/verse context, ie
Sentence 3 of 57 (c1 v3-6)
- display the selected sentence or, maybe, that sentence plus the previous and next sentence in read-only mode.
- Columns:
-
- Original Greek as a single, wrapping string, sentence by sentence
-
- Drag 'n' drop for that sentence, one row per chunk
-
- Gloss fields for each chunk
- Use a font that renders Greek and Hebrew well. Maybe https://fonts.google.com/specimen/Cardo
This project is now being managed by Xenizo in a new repo: https://github.com/proskomma/sundesmos The code produced here is being used every week by our linguists, so thanks to all who contributed to this! @lucky-gru I think you could close this issue.