Here I describe a computer program that I don't know how to make, but that a competent programmer would be able to make. This is a product specification for a program that I want made. Let's call that program "autoglosser". At the time of this writing (September of YOLD 3188), I'm willing to pay money up front. Go to my Discord at https://discord.gg/zZFQfTkPp8 to apply if you want to make this in exchange for money.
Autoglosser has to do with translations in human languages. For example, translating Chinese into English, translating French into German, et cetera.
I have been doing translations of Chinese into English, and in the format of "matching translations". I'm interested in the potential of this format, but my workflow has been very inefficient because of my limited ability to create software tools.
The end product of my translation work has been to produce "matching translation visual audiobooks". The word "matching" in that description refers to the format of alternating lines of Chinese and their translations into English. "Visual audiobook" refers to the format of speaking the lines in alternating Chinese and English while showing the same on screen. See the following figure:
fig 00001 - a screenshot from the Word Guy scroll 1 matching translation
It's a screenshot from the YouTube video of my matching translation visual audiobook of Word Guy scroll 1, an ancient Chinese scroll. Link to the visual matching translation audiobook: https://www.youtube.com/watch?v=jClZ6oEtKxM. I've finished a substantial amount of that work inefficiently. It should be a realistic and not extreme amount of work for a programmer to make a software tool to make it much more efficient work for me to continue translating.
Describing further some translation formats, a "translation with gloss" is a form of matching translation with three lines, the top one being the original language, the bottom one being a translation to the destination language, and the middling line being a sort of verbatim translation or a translation of each individual word in the sequence of the original language. See the following figure:
fig 00002 - an excerpt from the Richter translation with gloss of The Art of War
It's an excerpt of a translation with gloss of The Art of War. The Art of War is by Sunzi and the translation with gloss is by Gregory C. Richter. The top line in each set is in pinyin, which is a code for writing the sounds of Chinese using Roman letters, but you can imagine that the top line is Chinese characters instead. The middling line has each Chinese word translated into English one word at a time, in the sequence of the original text in Chinese, but that doesn't result in grammatically correct English. The bottom line in each set is the English translation, which is basically to rearrange the words of the middling line into a sequence that is grammatically correct in English, and to make other slight adjustments like swapping out a word for a synonym.
The way I've been translating Word Guy is through a meticulous process of mapping Chinese words to English words in a manner as close as possible to a 1-to-1 mapping. See the following figure:
fig 00003 - an excerpt from my Word Guy word map
It's an excerpt from the word map I've been building up in the process of translating Word Guy. I believe that the only good way to translate a scroll like Word Guy is by maintaining this process of staying as close as possible to a 1-to-1 mapping. On a scale of literal to interpretive, I think there's a near-zero amount of room for interpretation in translating this series of scrolls in a way that has any value. That makes my translation seem weird in a way that has a specific sort of character to it. Part of that weirdness is because Word Guy itself is weird, but part of it is because I'm staying extremely on the literal side of the scale from literal to interpretive. It often seems like I've just thrown the whole text through google translate and called it done. See: Backstroke of the West. The truth is that my process is as meticulous as a translation process can be.
The purpose of autoglosser is not limited to the work of translating certain sorts of ancient scrolls. I believe there is huge potential for this to benefit the whole state of language learning resources for all languages. Matching translations with glosses are extremely effective tools for language learning, but the prevalence in the world of works of that format seems far short of ideal.
In brief, autoglosser is a program for managing the word mapping (building it up and deploying it), managing the translation as it's in progress, and managing the formatting of the translation once it's done.
Here I describe some ways the translation work has been inefficient and in ways that could be made quicker with no loss of efficacy, given the right software tools.
Note about terminology: "translation with gloss" doesn't seem to be standard nomenclature, and the word "gloss" in the context of translations actually means a glossary at the end of a translation, so let's call the three-line format thing a "translation with word mapping".
Inefficiencies are numbered and described now.
1. Although my matching translation of Word Guy doesn't include middle lines showing word mappings, the way I've been translating it is basically to map words first and then rearrange, all in Wordpad (the word processor that comes with Windows OS). For example: I get to the next line of Word Guy in the Chinese, then, with a lot of alt-tabbing, I find each of the Chinese words of that line in my word map and copy over the per-word translations one by one, then rework. My word mapping list now has more than 1000 lines, so this step has become very slow in a way that can be helped.
2. Although my matching translation of Word Guy doesn't include middle lines showing word mappings, I would like to have a format of it which does, but I don't want to do that while I'm still working inefficiently.
3. I have produced my translation of Word Guy in several formats, but with a lot of manually removing lines one by one in Wordpad. For example, I have a format with Chinese and pinyin and English, another format with Chinese and English without pinyin, another format with just the English, and another format with just the Chinese. To generate the second and third of those, I took the first and manually removed one line at a time.
4. Since I don't know much about technology, I now have my translation in the form of one Wordpad document with the Chinese and pinyin and English, another Wordpad document with the Chinese and English without pinyin, et cetera. But now that it's split up like that, whenever I revise the translation, and it does need to be revisable, I now have to make sure I apply all changes to all the separate documents.
5. To generate the picture files for the screens, I've had to take a lot of screenshots of Wordpad, invert the colors on all of them, align them in photoshop, and save them one by one.
6. Because of something to do with character encoding, the online tool I use to convert Chinese characters to pinyin renders many of the vowels all weird-looking. I tell the word processor to turn all the text into Arial font, and then most of the vowels show up right but some look like SimSun even though it says they're in Arial. Even 'find and replace' doesn't work then. e.g. I use 'find and replace' to replace [weird looking letter o with third-tone mark] into [normal-looking letter o with third-tone mark] and it finds them but then does nothing when I press "replace". Because of that, I've had to find several hundreds of instances of the vowels that are being rendered weirdly and manually replace them with vowels that look normal.
7. For video editing, I'm using Hitfilm, which doesn't support any scripting/automation/settings of the following sort: when I want to apply identical fade-ins and fade-outs to all screens, that's by dragging the fade effect one by one from the 'effects' list to the items on the timeline, and then manually dragging the length of each fade on the timeline to the right duration.
8. To match Chinese characters to pinyin, I've been using a webapp, copy-pasting the Chinese into it, then taking the results and copy-pasting those back over to the Wordpad document.
1. Have a program which can take a word mapping list and some Chinese text and apply the word mappings automatically.
2. Have a program which can keep track of all these formats as the work is done on them.
3. Have a program which can take a finished translation and output in the various formats.
4. Have a program which handles all the information together, then has an 'output all' button to press after making changes.
5. Have a program which can output to nice visual formats: an option for outputting as .pdf and another option for outputting as picture files.
6. Go around the step that introduces the problem of generating tone-marked vowels that display weirdly. See (8).
7. Have a program which can take time information and output a massive list of picture files, one for each frame, so these can be loaded in bulk into the video editing program. e.g. user tells program: "I want this screen to appear at t = 10.5 seconds with a 0.3 second fade in, then show until t = 15.5 seconds, and disappear with a 0.3 second fade out" and then the program outputs 150 picture files: 9 for fading in, 132 that identically show at full opacity, then 9 for fading out. Then the user can give all those to the video editing program and tell it to play one picture per frame and all the fades will appear done.
8. Have a program which does that conversion of Chinese characters to pinyin as part of the workflow instead of using a separate webapp for it.
Above, I have described generally how the workflow has been inefficient in ways that can be helped by a computer program, and what things a computer program would have to do in order to make that workflow efficient. It's not a full software specification yet. In this section, I describe more details about how I want the program to work, but still not yet arriving at a full software specification.
Some features and abilities of this program. 1) I want the program to have a tab for a translation in progress and a tab for a word mapping in progress, and assuming that the user often wants to develop a translation while building up a word mapping. Thus, the program has to support adding new words to a word mapping. 2) Supposing the user sometimes builds up a translation and a word mapping simultaneously, then goes on to translate some other work, the user must then have the ability to take a word mapping that he built up, apply it to a new translation, and continue to do that translation while developing the word mapping further. 3) There are a lot of words in Chinese that can mean "maybe one thing and maybe some other thing completely", and the user needs to be able to guess at one time and then correct that guess at some other time. For example: in this one line, this character might mean 'manage' and might mean 'butcher', then the user guesses that it means 'butcher', but then when he encounters that word the next time, it's clear that it means 'manage', and now the user has to be able to map it as 'manage' in this second instance and also go back and re-map it to 'manage' in the first instance.
Some ways this might be tricky. 1) Most words in this mapping are one Chinese character each. Many are two or more Chinese characters to one word. That's just part of how Chinese works, but an autoglosser would have to detect the longer words before mapping the remaining shorter words. 2) It's not always possible to map 1-to-1. There are some words that sometimes mean one thing and sometimes mean some other thing, even in the original. In these places, mappings have to be 1-to-2. Thus, when autoglossing a new line, the program will have to do something about "Hey, user. Do you want this Chinese character in this sentence mapped to this English word or this other English word?".
Further optional features: 1) Okay if the first version of the program assumes "traditional" Chinese characters are the only ones wanted, but a better version would be able to switch between "traditional" and "simplified". 2) Okay if the first version of the program assumes that all work done in it is translating Chinese into a language that uses the Roman alphabet, but a better version would be able to switch between language types. e.g. be able to set it to translate a Roman-alphabet language into another Roman-alphabet language, then be able to use it to translate German into French, Latin into English, et cetera. 3) There are some characters in Chinese that are sometimes pronounced one way and sometimes another way. Okay if the first version of the program assumes we aren't encountering any of those, but a better version would have to do something about "Hey, user. In the context of this line, is this character being pronounced this way or this other way?".
This is still not a full software specification, but I think I've described it in enough detail now that a competent programmer who is ready and willing should be able to produce autoglosser to the above specification in such a way that it wouldn't be an extreme amount of programming work, that would cut out all the inefficiencies in my own translation work, and in a way that's clearly extensible to a huge range of language learning resource development.
I want the code for autoglosser to be freely forkable with whatever software license is appropriate for that sort of openness.
Word Guy scroll 1's matching translation visual audiobook has almost no views on YouTube, but popularizing an ancient scroll takes time. There are 12 scrolls of Word Guy, and I've finished translating half of the second scroll, but I want to do the rest of the scrolls with appropriate software tools, and do additional things things with the text, like excerpting out the best parts, and several other things.
Again, I'm willing to pay money for autoglosser to get made, and go to my Discord at https://discord.gg/zZFQfTkPp8 if you want to make this in exchange for money, and we can decide on the remaining design decisions there.