convert-layout icon indicating copy to clipboard operation
convert-layout copied to clipboard

JS library to convert text from one keyboard layout to other

Convert Layout

A JavaScript library to convert text from one keyboard layout to other.

Useful to prevent errors on english-only fields, like a credit card owner field.

var ru = require('convert-layout/ru');

bankcardName.keyup(function () {
  bankcardName.value = ru.toEn(bankcardName.value);
});
Sponsored by Evil Martians

Usage

There are two ways to load a keyboard layout definition. If you plan on using a single layout, just load the file directly:

var ru = require('convert-layout/ru');

Also you can get a object with all layouts (but app size will be bigger):

var layouts = require('convert-layout');
layout = layouts[name];

Every layout has fromEn and toEn methods:

ru.toEn('руддщ')    //=> "hello"
ru.fromEn('ghbdtn') //=> "привет"

Layouts

Currently supported keyboard layouts:

  • Arabic
  • Belarusian
  • English (QWERTY, Dvorak, Colemak)
  • German
  • Greek
  • Kazakh
  • Korean
  • Russian
  • Spanish
  • Ukrainian
  • Hebrew
  • Persian
  • Czech

If you want to add a new keyboard layout definition:

  1. Fork a project. Create a branch.
  2. Add a CODE.json file with layout buttons map. See example in ru.json. Lower case letters will be converted to upper case automatically. However, all non-letters symbols should be added both in uppercase and lowercase.
  3. Run yarn test. Project will be built automatically.
  4. Add layout to the list above.
  5. Send a pull request.