Антон
Антон
Open-source · BSD-2-Clause
Interscript encodes the world's romanization systems — BGN/PCGN, ISO, UN, ALA-LC, ODNI, ICAO, DIN — as machine-readable maps that produce byte-identical output across Ruby, TypeScript, and the browser. 289 systems, 35 authorities, 31 script pairs, all checked into git and tested against the published reference documents.
Антон
Антон
عَبد الله
عَبد الله
महात्मा
महात्मा
台北
台北
ኢትዮጵያ
ኢትዮጵያ
Αθήνα
Αθήνα
What it is
Most romanization libraries hand-roll one system per language. Interscript encodes the entire corpus of authority-backed systems using a single declarative map format. Maps are checked into git, versioned, independently testable, and executed identically by every runtime from one ISC source.
A declarative map language — ISC — captures the rules of an authority document verbatim, all special cases and notes included.
stage main {
parallel {
sub "А" "A"
sub "Б" "B"
sub "В" "V"
}
} The same human-readable ISC text is parsed by the Ruby gem, interscript-ts, and the browser — no intermediate compilation, no format drift between runtimes.
stage main {
run map.cyrllatn.stage.main
parallel {
sub "'" ""
}
} Ruby gem, TypeScript package, and in-browser widget — all parse the same ISC maps and produce the same bytes for the same input.
Interscript.transliterate(
"bgnpcgn-ukr-Cyrl-Latn-2019",
"Антон"
)
# => "Anton" A handful of the catalogue
Each system has a published authority document, machine-readable map, exhaustive test vectors, and live in-browser preview. The five below are running right now on this page.
bgnpcgn-ukr-Cyrl-Latn-2019 bgnpcgn-deu-Latn-Latn-2000 odni-rus-Cyrl-Latn-2015 alalc-amh-Ethi-Latn-2011 un-tam-Taml-Latn-1972 The neural layer
Some conversions have no authority document: restoring the diacritics a scribe left out, reading Thai or Urdu as phonemes. Those ship as checksummed neural artifacts under the same discipline — measured metrics, teacher next to student, identical bytes from every runtime.
heb-diac-1.0 DER 17.46 beam-4 tha-g2p-base-1.0 PER 9.19 urd-diac-1.0 CER 3.74 tha-g2p-small-1.0 int8/int4 · 246/193 MiB · PER 2.85 Get started
Open source under BSD-2-Clause. Maintained by Ribose Inc.
# Ruby
gem install interscript
# TypeScript / JavaScript
npm install interscript-ts
# Or load a single map's IR directly
curl interscript.org/maps/<system-code>.json