I made some progress on WordBuilder last night.
As I discussed with su_liam on the forum, the rules for the translate command could be made tighter and easily readable by supporting sets on the matching side:
translate {
[b v d g] o ch => r a ch
}
and allow for randomization by supporting sets on the replacement side:
b o ch => [r m l] a ch
He also suggested that matching token sets would be nice:
b o $unvoicedAffricates => r a $voicedAffricates
So I added that. And a way to mix them:
tokens labials b p m
[$labials f] o $unvoicedAffricates => r a [s $voicedAffricates]
which would match b, p, m and f for the first token, and replace unvoiced affricates with voiced ones or the token ‘s’
After that, I added a way to add words to a dictionary directly from the main window, so when you have one or more words selected, you can add them to the active dictionary, and if there is no active dictionary, you can choose one.
Finally, I started working on the translator function, the slightly ambitious tool for translating a text using the dictionary you’ve built. For now, it supports translating texts with inflections based on branches (and marks), and marks words that don’t exist in the dictionary with curly brackets.
Next, I want to add a way to add a word to the dictionary by, say, right clicking words in {} 😉
I’ll note right here and now that I don’t intend for the dictionary to be able to translate plain English text. You will need to mark up your text with inflections, and move words around to match the correct word order of your target language.
The things described above are planned for release 1.2 – suggestions for more features are welcome, over at the forums.
Oh, and I’ve added a new forum, the Script workshop, where I’ll try to help you get WordBuilder to do what you want it to.