Table of Content
- Nulisa Aksara Jawa keyboard shortcuts
- Typing tests and input samples
- Usage Notes
- Development Notes
- Change History
Welcome! ꧁ꦱꦸꦒꦼꦁꦫꦮꦸꦃꦲꦶꦁꦤꦸꦭꦶꦱ꧀ꦱꦄꦏ꧀ꦱꦫꦗꦮ꧂
Thank you for using this keyboard. This keyboard aim to simplify the writing of Javanese script (Js). Nowadays Javanese speakers do not write (nor type) much in this script anymore, largely because the writing system has been supplanted by Latin script.
The current Js keyboard layouts that exist in the world require people to memorize an arbitrary placement of characters (for example the default Javanese keyboard layout in Win 10), since there are more than 26 letters/characters in Js.
This keyboard aim to simplify that by requiring user to memorize only very small amount of placement, and user can type naturally just like they type in Latin script. The users are only required, at minimal, to remember that the letter 'x' is mapped to 'ě' (pěpět) or schwa sound (IPA: /ə/).
Technically, this is achieved by making the software to be smart enough to look the characters typed previously (look-back algorithm) to accomplish this seamlessly.
If you have never tried my web-based Js transliterator, of which this is based from, I suggest you can give it a try here: is.gd/nulisa (url link shortener to my Github page)
How does it work?
Well, to simply put it, if you want to write "aku", just type "a-k-u" and it will give you ꦲꦏꦸ. You don't need to know which button to press for ꦲ, ꦏ, or ꦸ. It would work for 95% of the time.
The best part about it? It's language independent (as long as they're 26-letters-Latin based). It means, you can type in any language, e.g. Indonesian, or even English. For example: "rumah", just type "r-u-m-a-h" to get ꦫꦸꦩꦃ, or "far", just type "f-a-r" to get ꦥ꦳ꦂ.
But... you still need to know how the Javanese script work to be able to get the correct output. Js is phonetic-based writing. It means that you write what you hear, not what is written (in Latin). For example, if I want to write my name, "Benny", I need to first visualize how the it sounds (if you familiar with IPA, think of it as broad-transcription IPA), so I get either "/be-ni/" or "/ben-ni/". Now I would say that both are correct, but I prefer the second one, so I'm typing it as "b-e-n-n-i" to get ꦧꦺꦟꦶ. And this cannot be solved in the software level, because the software couldn't have any idea how a word sounds.
What about the space bar? Javanese script is a scriptio continua script; it doesn't have any space between words. In fact, adding a space between words would make the sentence look bad (it broke the pasangans, among others). Therefore, that long space bar in the bottom of you keyboard is largely unused (what a waste of space :p). If you type space, nothing would happen. But what if you want to force a space? There are two alternatives: regular space, type Ctrl+Space, zero-width space (ZWS), type ` (on the left of number 1 on most keyboard layouts).
With this approach, I believe typing Javanese script using Nulisa Aksara Jawa is the easiest way to type Javanese script!
Surakarta, International Mother's Tongue Day 2020,
Benny Lin
Nulisa Aksara Jawa keyboard shortcuts
ToC:
Welcome! |
Nulisa Aksara Jawa keyboard shortcuts |
Typing tests and input samples |
Usage Notes |
Development Notes |
Change History
The keyboard layout is designed with Indonesian qwerty keyboard layout (equal to American/US-basic layout) as the logic basis. Therefore, even though theoritically it could also work for other keyboard layout (British, German, DVORAK, etc), but no test have been done on those layouts. If you use non-Indonesian keyboard, I would love to hear your feedback!
Please refer to this combination table for the intended output. Don't rely on the On-Screen keyboard, as it has many limitations. If the pressed button doesn't produce the same result as below, please contact the author.
If you type the key on the left, followed by key on top, you'll get the following characters.
→ |
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
|
ꦲ
| ꦧ꧀
| ꦕ꧀
| ꦢ꧀
| ꦲꦺ
| ꦥ꦳꧀
| ꦒ꧀
| ꦃ
| ꦲꦶ
| ꦗ꧀
| ꦏ꧀
| ꦭ꧀
| ꦩ꧀
|
꧀+ |
| ꧀ꦧ꧀
| ꧀ꦕ꧀
| ꧀ꦢ꧀
| ꦺ
| ꧀ꦥ꦳꧀
| ꧀ꦒ꧀
| ꧀
| ꦶ
| ꧀ꦗ꧀
| ꧀ꦏ꧀
| ꧀ꦭ꧀
| ꧀ꦩ꧀
|
→ |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x=ě |
y |
z |
|
ꦤ꧀
| ꦲꦺꦴ
| ꦥ꧀
| ꧀
| ꦂ
| ꦱ꧀
| ꦠ꧀
| ꦲꦸ
| ꦮ꦳꧀
| ꦮ꧀
| ꦲꦼ
| ꦪ꧀
| ꦗ꦳꧀
|
꧀+ |
꧀ꦤ꧀
| ꦺꦴ
| ꧀ꦥ꧀
| ꧀
| ꧀
| ꧀ꦱ꧀
| ꧀ꦠ꧀
| ꦸ
| ꧀ꦮ꦳꧀
| ꧀ꦮ꧀
| ꦼ
| ꧀ꦪ꧀
| ꧀ꦗ꦳꧀
|
If you type the key on the top, followed by key on left, you'll get the following characters.
Aksara Nglegena & Sandhangan
↓ |
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
+a |
ꦲꦴ
| ꦧ
| ꦕ
| ꦢ
| ꦲꦺꦪ
| ꦥ꦳
| ꦒ
| ꦲ
| ꦲꦶꦪ
| ꦗ
| ꦏ
| ꦭ
| ꦩ
|
+e |
ꦲꦲꦺ
| ꦧꦺ
| ꦕꦺ
| ꦢꦺ
| ꦲꦺꦲꦺ
| ꦥ꦳ꦺ
| ꦒꦺ
| ꦲꦺ
| ꦲꦶꦪꦺ
| ꦗꦺ
| ꦏꦺ
| ꦭꦺ
| ꦩꦺ
|
+i |
ꦲꦻ
| ꦧꦶ
| ꦕꦶ
| ꦢꦶ
| ꦲꦺꦪꦶ
| ꦥ꦳ꦶ
| ꦒꦶ
| ꦲꦶ
| ꦲꦷ
| ꦗꦶ
| ꦏꦶ
| ꦭꦶ
| ꦩꦶ
|
+o |
ꦲꦲꦺꦴ
| ꦧꦺꦴ
| ꦕꦺꦴ
| ꦢꦺꦴ
| ꦲꦺꦪꦺꦴ
| ꦥ꦳ꦺꦴ
| ꦒꦺꦴ
| ꦲꦺꦴ
| ꦲꦶꦪꦺꦴ
| ꦗꦺꦴ
| ꦏꦺꦴ
| ꦭꦺꦴ
| ꦩꦺꦴ
|
+u |
ꦲꦻꦴ
| ꦧꦸ
| ꦕꦸ
| ꦢꦸ
| ꦲꦺꦵ
| ꦥ꦳ꦸ
| ꦒꦸ
| ꦲꦸ
| ꦲꦶꦪꦸ
| ꦗꦸ
| ꦏꦸ
| ꦭꦸ
| ꦩꦸ
|
+x=ě |
ꦲꦲꦼ
| ꦧꦼ
| ꦕꦼ
| ꦢꦼ
| ꦲꦺꦲꦼ
| ꦥ꦳ꦼ
| ꦒꦼ
| ꦲꦼ
| ꦲꦶꦪꦼ
| ꦗꦼ
| ꦏꦼ
| ꦊ
| ꦩꦼ
|
+h |
ꦲꦃ
| ꦨ꧀
| ꦖ꧀
| ꦝ꧀
| ꦲꦺꦃ
| ꦥ꦳꧀ꦃ
| ꦓ꧀
| ꦃꦲ꧀
| ꦲꦶꦃ
| ꦙ꧀
| ꦑ꧀
| ꦭ꧀ꦃ
| ꦩ꧀ꦃ
|
+r |
ꦲꦂ
| ꦧꦿ꧀
| ꦕꦿ꧀
| ꦢꦿ꧀
| ꦲꦺꦂ
| ꦥ꦳ꦿ꧀
| ꦒꦿ꧀
| ꦲꦿ꧀
| ꦲꦶꦂ
| ꦗꦿ꧀
| ꦏꦿ꧀
| ꦭꦿ꧀
| ꦩꦿ꧀
|
+y |
ꦲꦪ꧀
| ꦧꦾ꧀
| ꦕꦾ꧀
| ꦢꦾ꧀
| ꦲꦺꦪ꧀
| ꦥ꦳ꦾ꧀
| ꦒꦾ꧀
| ꦲꦾ꧀
| ꦲꦶꦪ꧀
| ꦗꦾ꧀
| ꦏꦾ꧀
| ꦭꦾ꧀
| ꦩꦾ꧀
|
↓ |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x=ě |
y |
z |
+a |
ꦤ
| ꦲꦺꦴꦮ
| ꦥ
|
| ꦫ
| ꦱ
| ꦠ
| ꦲꦸꦮ
| ꦮ꦳
| ꦮ
| ꦲꦼꦲ
| ꦪ
| ꦗ꦳
|
+e |
ꦤꦺ
| ꦲꦺꦴꦮꦺ
| ꦥꦺ
| ꦺ
| ꦫꦺ
| ꦱꦺ
| ꦠꦺ
| ꦲꦸꦮꦺ
| ꦮ꦳ꦺ
| ꦮꦺ
| ꦲꦼꦲꦺ
| ꦪꦺ
| ꦗ꦳ꦺ
|
+i |
ꦤꦶ
| ꦲꦺꦴꦮꦶ
| ꦥꦶ
| ꦶ
| ꦫꦶ
| ꦱꦶ
| ꦠꦶ
| ꦲꦸꦮꦶ
| ꦮ꦳ꦶ
| ꦮꦶ
| ꦲꦼꦲꦶ
| ꦪꦶ
| ꦗ꦳ꦶ
|
+o |
ꦤꦺꦴ
| ꦲꦺꦴꦲꦺꦴ
| ꦥꦺꦴ
| ꦺꦴ
| ꦫꦺꦴ
| ꦱꦺꦴ
| ꦠꦺꦴ
| ꦲꦸꦮꦺꦴ
| ꦮ꦳ꦺꦴ
| ꦮꦺꦴ
| ꦲꦼꦲꦺꦴ
| ꦪꦺꦴ
| ꦗ꦳ꦺꦴ
|
+u |
ꦤꦸ
| ꦲꦺꦴꦮꦸ
| ꦥꦸ
| ꦸ
| ꦫꦸ
| ꦱꦸ
| ꦠꦸ
| ꦲꦹ
| ꦮ꦳ꦸ
| ꦮꦸ
| ꦲꦼꦲꦸ
| ꦪꦸ
| ꦗ꦳ꦸ
|
+x=ě |
ꦤꦼ
| ꦲꦺꦴꦮꦼ
| ꦥꦼ
| ꦼ
| ꦉ
| ꦱꦼ
| ꦠꦼ
| ꦲꦸꦮꦼ
| ꦮ꦳ꦼ
| ꦮꦼ
| ꦲꦼꦲꦼ
| ꦪꦼ
| ꦗ꦳ꦼ
|
+h |
ꦟ꧀
| ꦲꦺꦴꦃ
| ꦦ꧀
| ꧀ꦃ
| ꦂꦲ꧀
| ꦯ꧀
| ꦛ꧀
| ꦲꦸꦃ
| ꦮ꦳꧀ꦃ
| ꦮ꧀ꦃ
| ꦲꦼꦃ
| ꦪ꧀ꦃ
| ꦗ꦳꧀ꦃ
|
+r |
ꦤꦿ꧀
| ꦲꦺꦴꦂ
| ꦥꦿ꧀
| ꧀ꦂ
| ꦂꦫ꧀
| ꦱꦿ꧀
| ꦠꦿ꧀
| ꦲꦸꦂ
| ꦮ꦳ꦿ꧀
| ꦮꦿ꧀
| ꦲꦼꦂ
| ꦪꦿ꧀
| ꦗ꦳ꦿ꧀
|
+y |
ꦚ꧀
| ꦲꦺꦴꦪ꧀
| ꦥꦾ꧀
| ꧀ꦪ꧀
| ꦂꦪ꧀
| ꦱꦾ꧀
| ꦠꦾ꧀
| ꦲꦸꦪ꧀
| ꦮ꦳ꦾ꧀
| ꦮꦾ꧀
| ꦲꦼꦪ꧀
| ꦪꦾ꧀
| ꦗ꦳ꦾ꧀
|
Aksara Swara and Murda
→ |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
|
ꦄ
| ꦨ꧀
| ꦖ꧀
| ꦣ꧀
| ꦌ
| ꦥ꦳꧀
| ꦓ꧀
| ꦃ
| ꦆ
| ꦙ꧀
| ꦑ꧀
| ꦭ꧀
| ꦩ꧀
|
꧀+ |
꧀ꦄ
| ꧀ꦨ꧀
| ꧀ꦖ꧀
| ꧀ꦣ꧀
| ꧀ꦌ
| ꧀ꦥ꦳꧀
| ꧀ꦓ꧀
| ꧀
| ꧀ꦆ
| ꧀ꦙ꧀
| ꧀ꦑ꧀
| ꧀ꦭ꧀
| ꧀ꦩ꧀
|
→ |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
|
ꦟ꧀
| ꦎ
| ꦦ꧀
| ꦐ꧀
| ꦂ
| ꦯ꧀
| ꦡ꧀
| ꦈ
| ꦮ꦳꧀
| ꦮ꧀
| ꦄꦼ
| ꦁ
| ꦰ꧀
|
꧀+ |
꧀ꦟ꧀
| ꧀ꦎ
| ꧀ꦦ꧀
| ꧀ꦐ꧀
| ꧀
| ꧀ꦯ꧀
| ꧀ꦡ꧀
| ꧀ꦈ
| ꧀ꦮ꦳꧀
| ꧀ꦮ꧀
| ꧀ꦄꦼ
| ꧀
| ꧀ꦰ꧀
|
Punctuation and symbols
→ |
` |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
- |
= |
[ |
] |
\ |
; |
' |
, |
. |
/ |
|
ZWJ[1]
| ꧑
| ꧒
| ꧓
| ꧔
| ꧕
| ꧖
| ꧗
| ꧘
| ꧙
| ꧐
| ꦀ
| ꧏ
| ꧌
| ꧍
| ꧊
| ꧃
| ꧄
| ꧈
| ꧉
| ꧅
|
shift+ |
꦳
| ꦉ
| ꦊ
| ꦔ
| ꦚ
| ꦛ
| ꦝ
| ꦽ
| ꦾ
| ꦿ
| ꦘ
| ꦜ
| ꦘ
| ꧁
| ꧂
| ꧋
| ꧇
| ꧆
| ꧞
| ꧟
| [2]
|
alt+ |
| ꦳
| ꦴ
| ꦵ
| ꦷ
| ꦹ
| ꦻ
| ꦽ
| ꦾ
| ꦿ
|
|
|
|
|
|
|
|
|
|
|
|
(ketik)
| ?
| ??
| ?x3
| ?x4
| ?x5
| ?x6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[1] ZWJ = Zero-Width Joiner
[2] The question mark sign (?) = switcher. Type it multiple times to go through the 6 long vowels (sandhangan)
Hidden features. They're still in testing mode, and may change in the future.
How to write down:
This is the inverse table of the tables above. You can get the output displayed on the top row (white) by typing the letters on the lower row (grey). There might be more than one way to type a character.
These are based on the complete list of Javanese Unicode block. So this table shows that you are able to write any Javanese character using this keyboard.
ꦄ |
ꦅ |
ꦆ |
ꦇ |
ꦈ |
ꦉ |
ꦊ |
ꦋ |
ꦌ |
ꦍ |
ꦎ |
ꦏ |
ꦐ |
ꦑ |
ꦒ |
ꦓ |
ꦔ |
A
| II
| I
| Ii
| O
| rx
| lx
| lxu
| E
| Ai
| O
| ka
| Qa
| Ka
| ga
| Ga
| nga |
|
|
|
|
| !
| @
|
|
|
|
|
|
| kha
|
| gha
| # |
ꦕ |
ꦖ |
ꦗ |
ꦘ |
ꦙ |
ꦚ |
ꦛ |
ꦜ |
ꦝ |
ꦞ |
ꦟ |
ꦠ |
ꦡ |
ꦢ |
ꦣ |
ꦤ |
ca
| Ca
| ja
| jnya
| Ja
| nya
| tha
| Tha
| dha
| Dha
| Na
| ta
| Ta
| da
| Da
| na |
| cha
|
| )
| jha
| $
| %
| )
| ^
| +
|
|
|
|
|
| |
ꦥ |
ꦦ |
ꦧ |
ꦨ |
ꦩ |
ꦪ |
ꦫ |
ꦬ |
ꦭ |
ꦮ |
ꦯ |
ꦰ |
ꦱ |
ꦲ |
pa
| Pa
| ba
| Ba
| ma
| ya
| ra
| RRa
| la
| wa
| Sa
| Za
| sa
| ha |
|
| pha
|
| bha
|
|
|
|
|
|
| sha
|
|
|
ꦁ |
ꦂ |
ꦃ |
꦳ |
ꦴ |
ꦵ |
ꦶ |
ꦷ |
ꦸ |
ꦹ |
ꦺ |
ꦻ |
ꦼ |
ꦽ |
ꦾ |
ꦿ |
꧀ |
ng
| r
| h
| ALT+1
| ALT+2
| ALT+3
| qi
| ALT+4
| qu
| ALT+5
| qe
| ALT+6
| qx
| ALT+7 or &
| ALT+8 or *
| ALT+9 or (
| q |
ꦥꦁ |
ꦥꦂ |
ꦥꦃ |
ꦥ꦳ |
ꦥꦴ |
ꦥꦵ |
ꦥꦶ |
ꦥꦷ |
ꦥꦸ |
ꦥꦹ |
ꦥꦺ |
ꦥꦻ |
ꦥꦼ |
ꦥꦽ |
ꦥꦾ |
ꦥꦿ |
ꦥ꧀ |
pang
| par
| pah
| fa
| paa
| *
| pi
| pii
| pu
| puu
| pe
| pai
| px
| prx
| pya
| pra
| p |
ꦀ |
꧁ |
꧂ |
꧃ |
꧄ |
꧅ |
꧆ |
꧇ |
꧈ |
꧉ |
꧊ |
꧋ |
꧌ |
꧍ |
ꧏ |
꧞ |
꧟ |
-
| {
| }
| ;
| '
| /
| "
| :
| ,
| .
| \
| |
| [
| ]
| =
| <
| > |
ꦎꦀ |
꧐ |
꧑ |
꧒ |
꧓ |
꧔ |
꧕ |
꧖ |
꧗ |
꧘ |
꧙ |
O-
| 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9 |
* To type ꦥ+ꦵ (
tolong), type 'p' then ALT+3
Typing tests and input samples
ToC:
Welcome! |
Nulisa Aksara Jawa keyboard shortcuts |
Typing tests and input samples |
Usage Notes |
Development Notes |
Change History
These are some sample text and how you can achive the output. These are the intended input and output. If you tried them and they mismatch, please inform the author.
If you have a better example, I would also like to know, so I can add them here.
These are mostly in modern Javanese language. But I also include some example of old Javanese. For non-Javanese language, theoretically they can also be typed, phonetically, using the keyboard.
Latin | jer basuki mawa béa |
Aksara | ꦗꦼꦂꦧꦱꦸꦏꦶꦩꦮꦧꦺꦪ |
Karakter | ꦗ+ꦼ+ꦂ+ꦧ+ꦱ+ꦸ+ꦏ+ꦶ+ꦩ+ꦮ+ꦧ+ꦺ+ꦪ |
Input | [j] [x] [r] [ba] [s] [u] [k] [i] [ma] [wa] [b] [e] [a] |
Latin | lambé biru kecu |
Aksara | ꦭꦩ꧀ꦧꦺꦧꦶꦫꦸꦏꦼꦕꦸ |
Karakter | ꦭ+ꦩ+꧀+ꦧ+ꦺ+ꦧ+ꦶ+ꦫ+ꦸ+ꦏ+ꦼ+ꦕ+ꦸ |
Input | [la] [m] [b] [e] [b] [i] [r] [u] [k] [x] [c] [u] |
Latin | flamboyan wungu |
Aksara | ꦥ꦳꧀ꦭꦩ꧀ꦧꦺꦴꦪꦤ꧀ꦮꦸꦔꦸ |
Karakter | ꦥ+꦳+꧀+ꦭ+ꦩ+꧀+ꦧ+ꦺ+ꦴ+ꦪ+ꦤ+꧀+ꦮ+ꦸ+ꦔ+ꦸ |
Input | [f] [la] [m] [b] [o] [ya] [n] [w] [u] [ng] [u] |
Latin | mangan krupuk lan klepon |
Aksara | ꦩꦔꦤ꧀ꦏꦿꦸꦥꦸꦏ꧀ꦭꦤ꧀ꦏ꧀ꦊꦥꦺꦴꦤ꧀ |
Karakter | ꦩ+ꦔ+ꦤ+꧀+ꦏ+ꦿ+ꦸ+ꦥ+ꦸ+ꦏ+꧀+ꦭ+ꦤ+꧀++ꦏ+꧀+ꦊ+ꦥ+ꦺ+ꦴ+ꦤ+꧀ |
Input | [ma] [nga] [n] [k] [r] [u] [p] [u] [k] [la] [n] [k] [l] [x] [p] [o] [n] |
Latin | cumplung kecemplung jumbleng |
Aksara | ꦕꦸꦩ꧀ꦥ꧀ꦭꦸꦁꦏꦼꦕꦼꦩ꧀ꦥ꧀ꦭꦸꦁꦗꦸꦩ꧀ꦧ꧀ꦊꦁ |
Karakter | ꦕ+ꦸ+ꦩ+꧀++ꦥ+꧀+ꦭ+ꦸ+ꦁ+ꦏ+ꦼ+ꦕ+ꦼ+ꦩ+꧀++ꦥ+꧀+ꦭ+ꦸ+ꦁ+ꦗ+ꦸ+ꦩ+꧀++ꦧ+꧀+ꦊ+ꦁ |
Input | [c] [u] [m] [p] [l] [u] [ng] [k] [x] [c] [x] [m] [p] [l] [u] [ng] [j] [u] [m] [b] [l] [x] [ng] |
Latin | konferènsi Asia Afrika |
Aksara | ꦏꦺꦴꦤ꧀ꦥ꦳ꦼꦫꦺꦤ꧀ꦱꦶꦪꦱꦶꦪꦃꦄꦥ꦳ꦿꦶꦏꦃ |
Karakter | ꦏ+ꦺ+ꦴ+ꦤ+꧀+ꦥ+꦳+ꦼ+ꦫ+ꦺ+ꦤ+꧀+ꦱ+ꦶ+ꦪ+ꦱ+ꦶ+ꦪ+ꦃ+ꦄ+ꦥ+꦳+ꦿ+ꦶ+ꦏ+ꦃ |
Input | [k] [o] [n] [f] [x] [r] [e] [n] [s] [i] [A] [s] [i] [a] [h] [A] [f] [r] [i] [ka] [h] |
Latin | Sumantri liwat kreteg |
Aksara | ꦱꦸꦩꦤ꧀ꦠꦿꦶꦭꦶꦮꦠ꧀ꦏꦽꦠꦼꦒ꧀ |
Karakter | ꦱ+ꦸ+ꦩ+ꦤ+꧀+ꦠ+ꦿ+ꦶ+ꦭ+ꦶ+ꦮ+ꦠ+꧀+ꦏ+ꦽ+ꦠ+ꦼ+ꦒ+꧀ |
Input | [s] [u] [ma] [n] [t] [r] [i] [l] [i] [wa] [t] [k] [rx] [t] [x] [g] |
Latin | isor bréngos nyakil mrongos |
Aksara | ꦲꦶꦱꦺꦴꦂꦧꦿꦺꦔꦺꦴꦱ꧀ꦚꦏꦶꦭ꧀ꦩꦿꦺꦴꦔꦺꦴꦱ꧀ |
Karakter | ꦲ+ꦶ+ꦱ+ꦺ+ꦴ+ꦂ+ꦧ+ꦿ+ꦺ+ꦔ+ꦺ+ꦴ+ꦱ+꧀+ꦚ+ꦏ+ꦶ+ꦭ+꧀+ꦩ+ꦿ+ꦺ+ꦴ+ꦔ+ꦺ+ꦴ+ꦱ+꧀ |
Input | [i] [s] [o] [r] [b] [r] [e] [ng] [o] [s] [nya] [k] [i] [l] [m] [r] [o] [ng] [o] [s] |
Latin | waiḍūryyāmaranīla |
Aksara | ꦮꦻꦝꦹꦂꦪꦾꦴꦩꦫꦤꦷꦭ |
Karakter | ꦮ+ꦻ+ꦝ+ꦹ+ꦂ+ꦪ+ꦾ+ꦴ+ꦩ+ꦫ+ꦤ+ꦷ+ꦭ |
Input | [wa] [i] [dh] [u] [u] [r] [y] [ya] [a] [ma] [ra] [n] [i] [i] [la] |
Latin | narāryya kṛṣṇān laku |
Aksara | ꦤꦫꦴꦂꦪꦾꦏꦽꦰ꧀ꦟꦴꦤ꧀ꦭꦏꦸ |
Karakter | ꦤ+ꦫ+ꦴ+ꦂ+ꦪ+ꦾ+ꦏ+ꦽ+ꦰ+꧀+ꦟ+ꦲ+ꦤ+꧀+ꦭ+ꦏ+ꦸ |
Input | [na] [ra] [a] [r] [y] [ya] [k] [rx] [Z] [Na] [a] [n] [la] [k] [u] |
Latin | sākṣāt sěkar ning suji |
Aksara | ꦱꦴꦏ꧀ꦰꦴꦠ꧀ꦱꦼꦏꦂꦤꦶꦁꦱꦸꦗꦶ |
Karakter | ꦱ+ꦴ+ꦏ+꧀+ꦰ+ꦲ+ꦠ+꧀+ꦱ+ꦼ+ꦏ+ꦂ+ꦤ+ꦶ+ꦁ+ꦱ+ꦸ+ꦗ+ꦶ |
Input | [sa] [a] [k] [Za] [a] [t] [s] [x] [ka] [r] [n] [i] [ng] [s] [u] [j] [i] |
Latin | jalesveva jayamahe |
Aksara | ꦗꦭꦺꦱ꧀ꦮꦺꦮꦗꦪꦩꦲꦺ |
Karakter | ꦗ+ꦭ+ꦺ+ꦱ+꧀+ꦮ+ꦺ+ꦮ+ꦗ+ꦪ+ꦩ+ꦲ+ꦺ |
Input | [ja] [l] [e] [s] [w] [e] [wa] [ja] [ya] [ma] [h] [e] |
Usage Notes
ToC:
Welcome! |
Nulisa Aksara Jawa keyboard shortcuts |
Typing tests and input samples |
Usage Notes |
Development Notes |
Change History
How to use the keyboard (for user), or read the codes (for developer)
- Adeg-adeg (sentence openings). Type the pipe symbol (|) to get 'adeg-adeg' ꧋. Type \ to get ꧊. 'Rerenggan kiwa/tengen' ꧁ and ꧂ can be typed using { and }.
- Nglegena. This is the basic 20 letters (consonantal syllables), and also the 16 murda letters and mahaprana letters. They can stand alone by themselves, and by default assigned the voice of 'a' /ɔ/.
- Sandhangan (vowels). This is the basic 4 vowels ('wulu', 'suku', 'taling', 'pepet'), and 6 long vowels (including 'tarung', see double vowels). They cannot stand alone by themselves, and must be joined by a nglegena. Also for the sake of category, I would include here the 8 'aksara swara' vowels (A/E/I/O/U/Ai/Ii/II), even though these vowels can stand by themselves, without nglegena. To type standalone sandhangan
- 'qe' - 'taling' ꦺ
- 'qi' - 'wulu' ꦶ
- 'qo' - 'taling tarung' ꦺꦴ
- 'qu' - 'suku' ꦸ
- 'qx' - 'pepet' ꦼ
- Letters. When you type a letter, if it's a vowel (a/e/i/o/u/x), then you get the character 'ha' with the appropriate 'sandhangan' immediately (one-to-two mapping, or in the case of 'o', one-to-three). If you type a consonant, you will get the 'nglegena' form with the pangkon attached (one-to-two, or one-to-three in the cases of 'f','v','z').
- X-Q rule. Typing 'x' will give you ('ha'+)'pepet'. Typing 'q' will give you 'pangkon'. These are the only arbitrary placement that you need to memorize. It just happened to fit nicely in QWERTY keyboard, because X and Q are unused letters (while 'f', 'v', and 'z', even though not found in native Javanese language, they are 'aksara rekan', and frequently used in words borrowed from Indonesian)
- Pangkon (virama). So, why the 'nglegena' was attached with 'pangkon' by default? Well, it's because if you just type a consonant, it could be anywhere, in the start, middle, or end of a syllable. If it's in the start, you just need to add a vowel, and the pangkon will be replaced by the appropriate 'sandhangan' (minus the 'ha', they're not needed anymore), if it's in the middle, it will transform to 'wyanjana', if it's 'r' or 'y'. If it's in the end, it would transform to 'sesigeg' if it's 'r', 'h', or 'ng'
- Rule 1: Pangkon + Vowel will remove the 'pangkon' and add a 'sandhangan' where appropriate.
- Rule 2: Pangkon + Consonant will turn the consonant into 'pasangan', followed by another 'pangkon'
- Rule 3: Pangkon + Consonant + Pangkon + Consonant will put a Zero-Width Joiner after first pangkon, so that it won't try to form a double subscript glyphs.
- Sesigeg (final consonants). If you type an 'r', an 'h', or an 'n'-followed-by-'g', you will get a 'sesigeg' ('layar', 'wignyan', or 'cecak'). If it is immediately followed by a 'wyanjana' and/or a vowel, they will transform to 'ra', 'ha', and 'nga' automatically (+ applicable 'sandhangan'), because 'layar', 'wignyan', or 'cecak' are basically 'ra pangkon', 'ha pangkon', and 'nga pangkon'. So all rules regarding 'pangkon' + 'letter' would apply to them as well. To type them independently, you can use:
- 'R' - 'layar'
- 'H' - 'wignyan'
- 'Y' - 'cecak'
- Double consonants. If you type these two/three letters in sequence, you would get different character (replacing the first one)
- 'ny' - 'nya pangkon' ꦚ꧀ (replacing 'na pangkon' ꦤ꧀)
- 'ng' - 'cecak' ꦁ (see sesigeg)
- 'nn' - 'na murda' ꦟ꧀
- 'th' - 'tha pangkon' ꦛ꧀ (replacing 'ta pangkon' ꦠ꧀)
- 'dh' - 'dha pangkon' ꦝ꧀ (replacing 'da pangkon' ꦢ꧀)
- 'nj' - 'nya pangkon ja pangkon' ꦚ꧀ꦗ꧀ (nasal sound)
- 'nc' - 'nya pangkon ca pangkon' ꦚ꧀ꦕ꧀ (nasal sound)
- Double vowels. If you type these two/three letters in sequence, you would get different character (replacing the first one)
- 'aa' - 'tarung' ꦴ
- 'ai' - 'dirga mure' ꦻ
- 'au' - 'dirga mure + tarung' ꦻꦴ
- 'ii' - 'wulu melik' ꦷ
- 'i'/'e' + any other vowel - instead of 'ha' in the middle, you get 'ya'
- 'uu' - 'suku mendhut' ꦹ
- 'u'/'o' + any other vowel - instead of 'ha' in the middle, you get 'wa'
- Wyanjana (medial consonants). If you type a consonant followed by an 'r' or a 'y', you will get 'wyanjana' ('cakra' or 'pengkal'), followed by a 'pangkon'*. You need to type a vowel afterwards, lest you would have an invalid 'wyanjana'+'pangkon' combination. If you type a consonant followed by an 'r' followed by an 'x', you will get a 'cakra keret' instead of 'cakra + pepet'. To type them independently, you can use:
- '&' (SHIFT+7) or (ALT+7) - 'cakra keret'
- '(' (SHIFT+8) or (ALT+8) - 'pengkal'
- ')' (SHIFT+9) or (ALT+9) - 'cakra'
- *Now, I know it's highly unusual to see 'wyanjana' with 'pangkon', but I decided for the sake of code brevity. Otherwise I have to make separate rules for 'wyanjana'. Instead, since they ends with 'pangkon', all the rules for 'pangkon' also applies for them. In one way, it makes sense, because if you only type 'br' for example, it doesn't have a vowel yet. If you leave it like that, of course it's wrong. Only after you type a vowel would the 'pangkon' get replaced by applicable 'sandhangan'
- Rekan. They're supplementing the letters that aren't found in Javanese language, namely 'f/v/z'. Some sources equate 'f' and 'v' as 'pa + cecak telu', while some others differentiate them. I subscribe to the second group: 'f' as 'pa + cecak telu'(+'pangkon') and 'v' as 'wa + cecak telu'(+'pangkon'). 'z' is 'ja + cecak telu'(+'pangkon'). Writing 'f/v/z' would also ends with 'pangkon'. For other rekan that uses 'cecak telu':
- ꦒ꦳ GA + CECAK TELU = غ (γa).
- ꦗ꦳ JA + CECAK TELU = ز (za).
- ꦢ꦳ DA + CECAK TELU = ذ (dza).
- ꦦ꦳ PA MURDA + CECAK TELU = ف (fa).
- ꦔ꦳ NGA + CECAK TELU = ع ('a).
- ꦱ꦳ SA + CECAK TELU = ش (ša).
- ꦲ꦳ HA + CECAK TELU = ح (ḥa).
For these letters there are no shortcuts, you have to be creative, and found a way to write it your own with the available means. For example, to type 'dza', you can type 'da'+'~' (tilde), 'dzi' = 'da'+'~'+'q'+' i'.
For Chinese 'rekan', I couldn't find any reliable source regarding their history, list, and usage (pronounciation), only from Wikipedia, and they're archaic/not proper pinyin/mandarin and not suitable for modern usage. I'm not listing them here for now, because I'm planning to build a systematic index of every Chinese syllable and their Javanese script counterpart (Indeks:Pinyin-Aksara Jawa).
- Murda and Mahaprana. I store them in the capital Latin consonant letters, but it doesn't necessarily mean they're Javanese capital letter, it's just for convenience and mnemonic. Their number is only 10 single-letter Murda ('KGCJTDNPBS') and 3 multi-letters Murda. Below are some double consonant combinations for murda letters.
- 'Th' - 'tta mahaprana pangkon' ꦜ꧀ (replacing 'Ta pangkon' ꦡ꧀)
- 'Dh' - 'dda mahaprana pangkon' ꦞ꧀ (replacing 'Da pangkon' ꦣ꧀)
- 'jny' - 'nya murda pangkon' ꦘ꧀
- the 10 murda above can also be written by typing the 10 corresponding nglegena with 'h'. So 'kh' = "K", 'gh' = 'G', etc. Except 'dh' and 'th'.
The other 10 capital Latin consonant letters (QZHRY) and (FVMLW) doesn't store 'murda' letters. I used Q for 'Ka Sasak', Z for 'Sa Mahaprana' (to differentiate from S, 'Sa Murda'), and H, R, Y for 'wyanjana'. If you typed a murda it will also attached by 'pangkon' and the above 'pangkon' rules apply. (FVMLW) are currently unused. The six capital Latin vowel letters and x (AEIOUX) are used for 'aksara swara' (see sandhangan above). Some special 'aksara swara' (long vowels):
- 'Aa' - 'A tarung' ꦄꦴ (long-A)
- 'Ai' - 'Ai' ꦍ
- 'Ii' - 'Ii' ꦇ (long-I)
- 'II' - 'I Kawi' ꦅ
- 'Uu' - 'U tarung' ꦈꦴ (long-U)
- 'Oo' - 'O tarung' 'Au' ꦎꦴ (long-O)
- Special letters. 'Aksara ganten'
- 'rx' - 'pa cerek' ꦉ (replacing 'ra pepet' ꦫꦼ)
- 'lx' - 'nga lelet' ꦊ
- 'RR' - 'ra agung + pangkon' ꦬ꧀
- Numbers. For numbers, you just typed it normally. The only difference with normal numbers is that Javanese numbers are always enclosed/surrounded by 'pada pangkat' ꧇ (looks like a semicolon) by typing a semicolon ':'. Rule:
- when a non-number followed by number, it's separated by 'pada pangkat'
- when a number followed by non-number, it's separated by 'pada pangkat' as well
- if the number is in the beginning, it's started with 'pada pangkat'
- if a number is at the end, followed by period ('pada lungsi')
- a number will be ended with 'pada pangkat' before the 'pada lungsi' automatically, except if it's at the very end, and there's no more character to follow, then you have to manually close the 'pada pangkat' by typing semicolon ':'.
- Special characters. See the visual mapping of the keyboard for reference, or the table above. They might move in the future. I'm trying to make it as intuitive as possible. Some special combinations:
- ꧅꧉ꦧ꧀ꦖ꧉꧅or ꧅ꦧ꧀ꦖ꧅or ꧅ꦧ꧀ꦕ꧅'purwapada' - to introduce a poem.
It can be typed as such: '/.bcha./' or '/bcha/' or '/bCa/' or '/bca/'
- ꧅꧉ꦟ꧀ꦢꦿ꧉꧅or ꧅ꦟ꧀ꦢꦿ꧅'madyapada' - to indicates a new song within a poem.
It can be typed as such: '/.Ndra./' or '/Ndra/'
- ꧅꧉ꦆ꧉꧅or ꧅ꦆ꧅'wasanapada' - to end a poem.
It can be typed as such: '/.I./' or '/I/'
- Invalid combinations. I have tried to reduce the possibility of invalid combinations as minimal as possible.
- Combination of a 'pangkon', 'sesigeg', 'wyanjana', 'panyangga' and themselves is not allowed (eg. q+q)
- Combination of a 'number' and number's 'pada pangkat', and a 'pangkon', 'sesigeg', 'wyanjana', 'panyangga' is not allowed. (But the reverse is allowed)
- Combination of a 'pada pangkat' and another 'pada pangkat' is not allowed
Development Notes
ToC:
Welcome! |
Nulisa Aksara Jawa keyboard shortcuts |
Typing tests and input samples |
Usage Notes |
Development Notes |
Change History
Version 1.0
- I started with importing the logic behind my other project: Nulisa Aksara Jawa - Javanese Transliteration and reading the documentation of Keyman. I was able to do the bare minimum coding to make the keyboard able to type the most common combinations in just one day.
- The purpose of the keyboard remain the same with my previous projects: to make typing Javanese script as naturally as possible using regular QWERTY keyboard (US English), with minimal memorizing of arbitrary positions. I've managed to reduce it into just 2: X and Q, both keys are not used in Javanese script. X is for 'pepet' (schwa) vowel, while Q is for 'pangkon' (virama) vowel-killer. With this spirit, one can easily type (10-fingers typing) 60 or 70 WPM of Javanese script.
- The target user (other than myself), are students, teachers, scholars, hobbyist, and other people who wanted to learn Javanese Script through typing. Hopefully through typing with this keyboard, people will learn the rules and the combinations that they can't get from reading books or writing by hand themselves.
- What this keyboard won't do is to teach the consonant duplication rule. Basically if a root word that ends with a consonant get a suffix, then the last consonant should be written double (with 'pasangan' or 'sesigeg'). To do this automatically would require a dictionary lookup method. This keyboard assume the typist would know the rule and double the consonant accordingly. What if they don't do it? Well, it would be pronounced incorrectly, because Javanese script is a phonetic writing system (such as IPA)
- In the news: Ahok was released on this day (2019-01-24) and made quite a big news. So lets dedicate this piece of code to his freedom, shall we.
A month later
- As I started reading more on the documentation, I was able to simplify most of the code, and also cover more rare glyph combinations, such as 'jnya'.
- I've run checks on the common keyboard tongue-twister, all documented in the section above. As well as mad the help page, and this welcome page.
- Made some features (options) using CTRL key. For full explanation, see section about Hidden Features above.
Further plan
- To develop the Android version.
Change History
ToC:
Welcome! |
Nulisa Aksara Jawa keyboard shortcuts |
Typing tests and input samples |
Usage Notes |
Development Notes |
Change History
1.02: Changing the .kmn file, put a name for every character, for greater readibility of the code and possible development for other Indonesian scripts in the future.
1.01: Adding web version, android version, mobile/tablet version (touch screen layout)
2020-02-21: Version 1.0 (desktop version) is published. Happy International Mother's Tongue Day!
2019-01-28: Adding documentation, help file, welcome file, fix bugs, more Sundanese support, rekan support, code simplification with store()s, less comments, harder to read, but shorter code
1.0: Initial release - 2019-01-24
License and copyrights:
This keyboard is developed by Benny Lin using Keyman software. It is available for free to use from Github and elsewhere. If you make modification, please credit Benny Lin and Keyman software. You can find him in his Github, Wikipedia, or Telegram, all under the name @bennylin