Code Monkey home page Code Monkey logo

lemonade's Issues

Sphinx documentation capability

Pybindings are expected to merge with bergamot-translator, which generates documentation with doxygen, exhale and sphinx. Python generally works well with sphinx. If we could add the basic wiring here, moving bindings to bergamot-translator can have one more additional feature.

Move IME to use Python

We may potentially use translateLocally if there's a daemonization prospect, but going to go with the python package and the C + Python connect commonly used to implement iBus engines.

Kind-of like eat your own dog-food, so those things live.

pytype CI run

https://github.com/google/pytype appears to be good at static analyzing and catching a few things. It gets ugly at failed import from library on applying to raw source.

Need to look into docs. One workaround is to fetch the wheels which contain the so and use those to run pytype.

Web based input method

The following kind-of tools are common-place in editing non Latin scripts through a US Keyboard layout, including my own mother tongue.

image

The existing iBus implementation for a demonstration of outbound translation uses an open source provision for the same. It is possible to attach something like iBus (more generally an input method) into a text area. https://swanalekha.smc.org.in/browser/ is such an in-browser implementation I am already aware of and I see source available in https://github.com/smc/swanalekha.

Since https://mozilla.github.io/translate/ is a static page consuming WebAssembly, it is possible to completely deliver the models from a separate URL and the JS through the existing web systems.

I believe JavaScript could potentially provide a richer environment with an ability to store the original source text etc, operating on larger content editable text areas. A verification UI can pop up on hover of the elements presented above, which is what's currently deemed missing in lemonade native.

We need better JavaScript primitives, which are reusable.

iBus engine eats enter keys

The keyboard event and the state machine is at best hacky. It also has some issues with enter keys, with only the first enter key being registered.

manylinux build

The wheels built on ubuntu straighforward work with the respective distributions. However python community seems to have imposed standards on what wheels can be published, and prefers a "manylinux" wheel.

https://github.com/pypa/manylinux

Good thing to have is a GitHub actions environment setting up manylinux, and creating the wheel for the same. We'll have to see if there are any issues of speed or symbol missing or such.

Use ssplit / Response to drop sentences and advance buffer

Each returned response, we have information on how translation splits sentences. We can use this to provide seamless typing experience. After maybe some window hyperparameter of consistent start of a new sentence, we may commit text.

Include mozilla repository

The capability already exists in some capacity. It will break backwards compatibility, but issok.
Currently we use only translateLocally.

Setup CI

Maybe attempt cross-platform. We have to compile bergamot-translator, so ccache will come in handy. WebAssembly is allowed upstream and won't be duplicated here.

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.