Git Product home page Git Product logo

plover_korean's People

Contributors

benoit-pierre avatar dependabot[bot] avatar nsmarkop avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

plover_korean's Issues

Better handling for number dictionary

Unit testing the numbers dictionary has revealed some issues even though the base functionality works as expected.

First, reverse_lookup sort-of worked but does not handle cases where the numbers are split with - or reversed with * properly. This may be a lost cause as at the moment it seems like it'd take significant effort to resolve.

Secondly, lookup is quite permissive of input. If you give it 1258 instead of 125-8, 1290 instead of 12-90, etc. it works fine even though that violates how the steno order is supposed to be written.

Thirdly, You can't unit test reverse_lookup code that has a return value (so, a "passing" case) because when it calls normalize_stroke it errors out due to a raised AssertionError because a "system" has not been initialized in the plover package which it's using during normalize_steno internally for things like NUMBER_KEY lookups and such.

[INFO] ㅋ in SORIZAVA

Thank you for your effort to build Korean stenotype layout for Plover.

FYI, In your sorizava config, the ㅋ in the home row is actually a final consonant.

I found this on Youtube Sorizava channel.
Link

The video has no subtitles, so if you want to know what he says please email me.

Figure out what to do with -ㄹㅅ in syllable block logic

-ㄹㅅ is normally used in syllable block logic to make the final syllable ㄽ which makes sense.

However, according to the CAS theory book -ㄹㅅ is the pattern for ㄹ 수 during syllable block logic as well. A note points out that for 올 수 you need to use ㅇㅗㄹㅅ instead of ㅗㄹㅅ, that latter taken by 옰, but has no mention of this conflicting for other ㄽ words.

At first I thought this may be a case of the CAS system not actually letting you type any ㄽ syllable blocks other than 옰, but that does not seem to be the case as elsewhere in the theory book when they first introduce -ㄹㅅ it uses 곬 as an examples,which with the new rule would output 골 수.

It is also clear that -ㄹㅅ does not mean using it individually rather than during syllable block logic should output ㄹ 수 due to context and the fact that -ㄹㅅ used individually is {^}로서.

Transition to code dictionary for the base CAS logic

Moving past basic functionality means going into the territory of special left and right hand briefs and partial briefs that mix with the standard syllable block construction rules. How all of these can be combined results in a large and hard to understand dictionary.

While dictionary generation code can be written like the syllable block rules are currently implemented, converting all of this base functionality into a dictionary composed of code to do the generation "real time" will be much simpler to maintain during development. It will also potentially be easier to extend for users adding to the special briefs with just one line in the dictionary code rather than needing a tool to generate all possible combinations a json dictionary would need for adding a new conjugation - whether this is the long term direction once everything settles is up in the air, though.

All entries that are actual dictionary entries and not part of the "logic" of the theory, like normal briefs for words or symbols or whatnot should still be in a base json dictionary.

I have this partially implemented using Hy via https://github.com/nsmarkop/plover_hy_dictionary (for fun) currently but I may switch to using a Python dictionary.

Difficult to install and try

I'm Korean and really appreciate your hard work here.
But as a beginner, it was difficult to follow the documentation and install plover_korean plugin.
After spending half day I could install the plugin but still didn't understand meta_plugin thing and I don't think all the abbreviation is working properly.
I wanted to introduce your work to my youtube community (with 600K followers) hope the installing process was easier to beginners.
Again, thanks for your effort!

Sorizava theory implementation

I've managed to acquire a Sorizava steno machine and accompanying theory book 디지털 영상속기사 Easy Start!, and decided to write up a summary of the theory principles so that a dictionary can be built and implemented in Plover.

As mentioned in #4, the second ㅋ key on the initial side is a final ㅋ, which is labeled ㉪ in the theory book, and ㈊ on my machine. I suggest be used as the key label in Plover. Alternatively, because it is technically a final, -ㅋ can be used, but it may need to be farther down in the steno order (not that there is one, officially).

Suggested implementation, using ㉪ for final ㅋ:

KEYS = (
  # Steno order for consonants is roughly left-to-right
  # then top-to-bottom, except for ㉪ and ᅴ

  "ㅊ-", "ㅌ-", "ㅋ-", "ㅂ-", "ㅍ-",
  "ㅅ-", "ㄷ-", "ㅈ-", "ㄱ-",
  "ㅁ-", "ㄹ-", "ㄴ-", "ㅎ-",

  "㉪", "ᅴ",

  "ㅗ", "ㅏ", "ㅜ", "ㅡ", "ㅓ", "ㅣ",

  "-ㄲ", "-ㅎ", "-ㅌ", "-ㅊ", "-ㅍ",
  "-ㄱ", "-ㄴ", "-ㄹ", "-ㅅ", "-ㅂ",
  "-ㅆ", "-ㅇ", "-ㅁ", "-ㄷ", "-ㅈ",
)

IMPLICIT_HYPHEN_KEYS = (
  "㉪", "ᅴ", "ㅗ", "ㅏ", "ㅜ", "ㅡ", "ㅓ", "ㅣ",
)

Alternative using -ㅋ for final ㅋ:

KEYS = (
  "ㅊ-", "ㅌ-", "ㅋ-", "ㅂ-", "ㅍ-",
  "ㅅ-", "ㄷ-", "ㅈ-", "ㄱ-",
  "ㅁ-", "ㄹ-", "ㄴ-", "ㅎ-",

  "-ᅴ",

  "-ㅗ", "-ㅏ", "-ㅜ", "-ㅡ", "-ㅓ", "-ㅣ",

  # Has to come after vowels in order to allow
  # vowels to have implicit hyphens without
  # conflicting with ㅋ-, but this makes steno
  # order potentially unintuitive
  "-ㅋ",

  "-ㄲ", "-ㅎ", "-ㅌ", "-ㅊ", "-ㅍ",
  "-ㄱ", "-ㄴ", "-ㄹ", "-ㅅ", "-ㅂ",
  "-ㅆ", "-ㅇ", "-ㅁ", "-ㄷ", "-ㅈ",
)

IMPLICIT_HYPHEN_KEYS = (
  "-ᅴ", "-ㅗ", "-ㅏ", "-ㅜ", "-ㅡ", "-ㅓ", "-ㅣ",
)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.