Skip to content

NabilSnigdho/avro-slate

Repository files navigation

Avro Slate

Avro Slate is is a full featured Avro Phonetic application with dictionary support. It is built with Slate, Windi CSS, Vite, অক্ষর - Okkhor and many other awesome libraries and tools.

Avro Slate is inspired by AvroPad and provides almost the same functionality and UI. Avro Slate also uses dictionary data and code from ibus-avro, so the dictionary suggestion is expected to be somewhat identical with some enhancements(see the differences below). A portion of the avro phonetic library is taken from riti (রীতি). Riti might be included with wasm support as the backend in future versions.

Suggestion differences from AvroPad

Currently known differences are:

  • Full stop(".") in number is not converted into Dari("।")
// For input "1.5" candidates will be
;['১.৫', '1.5']
  • Full stops(".") in abbreviations are not converted into Dari("।")
// For input "es.es.si." candidates will be
;['এস.এস.সি.', 'es.es.si.']
  • The phonetic value of input is guaranteed to appear in suggestion.
// For input "kOnO"
// Candidates in Avro Slate
;['কোন', 'কোনও', 'কওন', 'কোঁ', 'কোং', 'কোণ', 'কন', 'কওনও', 'কোনো', 'kOnO'][
  // Candidates in AvroPad(phonetic value "কোনো" is missing)
  ('কোন',
  'কোনও',
  'কওন',
  'কোঁ',
  'কোং',
  'কোণ',
  'কন',
  'কওনও',
  'কোঁও',
  'কোঙও',
  'kOnO')
]

Android support

One of the key features of Avro Slate is that it behaves similar to the native IMs. It does not reads the value from the text field but from the keyboard event. As most Android on-screen keyboards does NOT send key-codes on keyboard events, Avro Slate is not supported in Android.

Development

Install npm dependencies

npm install

Build Rust wasm crates

Install Rust toolchain, and wasm-pack, then run,

npm run wasm

Start dev server

npm run dev

Production Build

To build the project for production, run

npm run build

This will build the project under ./dist directory.

To locally preview the production build, run

npm run preview

Contributing

Pull requests are welcome. Open an issue for bug report, feature request or suggestions regarding ui, keyboard behavior etc.

Acknowledgements

License

This project is licensed under Mozilla Public License 2.0.