Support for Melani system in Spanish Plover Spanish MQD last release

54 views
Skip to first unread message

Noelia Ruiz

unread,
Mar 10, 2021, 11:29:26 PM3/10/21
to ploversteno
Hello:

Yesterday we released version 1.0.4 of a plugin to add support for Melani system with italian keyboard in Spanish. It uses Python dictionaries, json files and another plugin required for using combinations with different translations if they are used to start or not a word. The theory is not documented, just some examples about the API.
We release new versions at least when Python dictionaries are modified.
Enviado desde mi iPhone

Flavio Egoavil

unread,
Mar 12, 2021, 10:46:47 AM3/12/21
to Plover
Hi,

I just starred your repository. This is very interesting work and no doubt having more than one Spanish system for Plover will strenghten the Open Steno project.

I just have a quick question after taking a look: Why does a large part of the dictionary is hardcoded into a .py file instead of residing on a separate JSON file? Is there a particular reason? Just curious.

For example this python file has OVER 9000 definitions:

Noelia

unread,
Mar 12, 2021, 10:55:49 AM3/12/21
to plove...@googlegroups.com
Hello, first of all, thanks for starring!
About using Python dictionaries, the reason is that they allow to
borrow lot of entries in json files.
For example, instead of writing:
# Json

"CAsa": "casa",
"CAse": "case",
"CAsi": "casi",
"CAso": "caso",
etc, we have in the Python file "the letters that can be use to write
these words, but they can be useful to type many many other
expressions. We use an algorythm as follows, similar to the algorythm
used by the original Melani system, with the difference that this is
open source and we had to make a lot of tests to know what Melani
system used the Microsoft Access database, in particular a field named
semplice, used for subsets of characters that can be part of a stroke:

def searchKey(dictionary, stroke):
searchKey = stroke[:]
searchKeyValue = ""
lenSearched = 0
value = ""
while len(searchKey) > 0:
if dictionary.get(searchKey) is not None:
searchKeyValue = dictionary.get(searchKey)[1]
if searchKeyValue == "":
searchKey = searchKey[:len(searchKey) - 1]
else:
value += searchKeyValue
searchKeyValue = ""
lenSearched += len(searchKey)
searchKey = stroke[lenSearched:]
if value == "":
value = "{empty}"
return value

Hope this helps
> --
> You received this message because you are subscribed to the Google Groups
> "Plover" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to ploversteno...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ploversteno/137c12d9-8772-4bd3-bf42-78c8dbec8a82n%40googlegroups.com.
>

Noelia

unread,
Mar 12, 2021, 10:57:31 AM3/12/21
to plove...@googlegroups.com
Sorry, a mistake: I wrote "what Melani
system used the Microsoft Access database", meaning "how, not what".
Thanks
Reply all
Reply to author
Forward
0 new messages