A small JavaScript library for converting/transliterating Latin script into Javanese script, also known as Aksara Jawa or Carakan.
Carakan.js is a small library for converting/transliterating Latin script into Javanese script, also known as Aksara Jawa or Carakan, and vice versa.
Yes, I know there are already many Javanese script transliterating library out there, but they are not accurate. At least for some words with complicated syllable structure due to the nature of Javanese language. Like “ngglembyar”, “nggrambyang”.
The complexity of Javanese script writing rules made things difficult. Therefore, I want to create a library to create a more accurate transliteration from Latin into Javanese script and vice versa with the linguistic complexity and ease of use in mind, so we can just input the regular Javanese text we usually read and write in Latin text in our everyday conversations.
Carakan.js is also fast. The library is also extensively tested using various sentences and use cases. You can see the tests here.
Currently, Carakan.js can handle:
NPM:
$ npm install carakanjs
Yarn:
$ yarn add carakanjs
Example with default options
import { toJavanese } from "carakanjs";
let x = toJavanese("blumbang gxmblundhung kxmambang");
// with default configs (optional)
let x = toJavanese("blumbang gxmblundhung kxmambang", {useAccents: false, useSwara: true, useMurda: true})
console.log(x)
// => ꦧ꧀ꦭꦸꦩ꧀ꦧꦁꦒꦼꦩ꧀ꦧ꧀ꦭꦸꦤ꧀ꦝꦸꦁꦏꦼꦩꦩ꧀ꦧꦁ
Writing Pepet and Taling sounds (with default config)
// pepet is "x"
// taling is "e"
toJavanese("es dawxt");
// => ꦲꦺꦱ꧀ꦢꦮꦼꦠ꧀
Writing Pepet and Taling sounds (with useAccents = true
)
// pepet is "e"
// taling is "é", "è", or "e`" (e + backtick)
toJavanese("e`s dawet", {useAccents: true});
// or
toJavanese("és dawet", {useAccents: true});
// => ꦲꦺꦱ꧀ꦢꦮꦼꦠ꧀
// example text from Wikipedia basa Jawa
toJavanese(
"référèndhum menika mutusaken Timor Wétan pisah",
{useAccents: true}
);
// => ꦫꦺꦥ꦳ꦺꦫꦺꦤ꧀ꦝꦸꦩ꧀ꦩꦼꦤꦶꦏꦩꦸꦠꦸꦱꦏꦼꦤ꧀ꦡꦶꦩꦺꦴꦂꦮꦺꦠꦤ꧀ꦥꦶꦱꦃ
Writing Aksara Swara, Murda, and Rekan
toJavanese("GUSTI ALLAH YA KHALIK");
// => ꦓꦸꦯ꧀ꦡꦶꦄꦭ꧀ꦭꦃꦪꦏ꦳ꦭꦶꦑ꧀
Writing Angka (Numbers)
// pada pangkat (꧇) will be automatically added around numbers
toJavanese("tanggal 17 bulan 8 taun 1945");
// => ꦠꦁꦒꦭ꧀꧇꧑꧗꧇ꦧꦸꦭꦤ꧀꧇꧘꧇ꦠꦲꦸꦤ꧀꧇꧑꧙꧔꧕꧇
Writing Pada (Punctuations)
toJavanese("{<||,:.'\":()>}");
// => ꧁꧌꧋꧋꧈꧇꧉꧊꧊꧇꧊꧊꧍꧂
Writing Aksara Ganten & Panjingan
toJavanese("kreta krxtxg, lxmah rxgxd");
// => ꦏꦿꦺꦠꦏꦽꦠꦼꦒ꧀ꦊꦩꦃꦉꦒꦼꦢ꧀
🆕 Converting Aksara Jawa/Carakan into Latin
import { toLatin } from "carakanjs";
let x = toLatin("ꦗꦼꦂ ꦧꦱꦸꦏꦶ ꦩꦮ ꦧꦺꦪ");
console.log(x)
// => jer basuki mawa béya
Name | Input | Output |
---|---|---|
Pada lingsa * | , | ꧈ |
Pada lungsi * | . | ꧉ |
Pada pangkat | : | ꧇ |
Pada adeg | ” or ‘ or ( or ) | ꧊ |
Pada adeg-adeg | | | ꧋ |
Pada piseleh | < | ꧌ …… |
Pada piseleh walik | > | …… ꧍ |
Rerenggan kiwa | { | ꧁ … |
Rerenggan tengen | } | … ꧂ |
*) Pada Lingsa (comma) will not be rendered if a Pangkon is next to it. Pada Lungsi (period) will be reduced into Pada Lingsa if a Pangkon is next to it. This behavior is adheres to the rules of Javanese writing.
toJavanese(input, config?)
Returns a string of Javanese script converted from input
, using the set config
s.
input
Type: string
A string of Latin character which will be transliterated into Javanese script.
config.useAccents
Type: boolean
, default: false
A boolean indicating whether Carakan.js should convert the input string with accents. There are two modes of input:
Basically, the transliterator engine can only read string in non-accented mode. When useAccents
is set to true
, Carakan.js will convert the accented input into non-accented mode first, so then it can convert them into Javanese script.
config.useSwara
Type: boolean
, default: true
A boolean indicating whether Carakan.js should convert uppercase vowels (A, I, U, E, O) into Aksara Swara. If set to false
, Carakan.js will render them as regular vowels sound written with the letter “ha”.
config.useMurda
Type: boolean
, default: true
A boolean indicating whether Carakan.js should convert some uppercase consonants (N, K, T, S, P, NY, G, B) into Aksara Murda. If set to false
, Carakan.js will render them with their regular Javanese script character.
toLatin(input)
Returns a string of Latin script converted from an input
of Javanese script.
CarakanHelper
A namespace which contains various helper for the engine to convert Latin letters from and into Javanese Script.