Антон
Антон
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 compiled to a typed JSON IR that any runtime can execute.
A declarative Ruby DSL captures the rules of an authority document verbatim, including all special cases and notes.
stage :main do
parallel do
sub "щ" => "shch"
sub "ъ" => "ʺ"
sub "Антон" => "Anton"
end
end
The Ruby Compiler::JsonIR emits a typed, versioned
intermediate representation any runtime can load.
{
"schemaVersion": 1,
"systemCode": "bgnpcgn-ukr-Cyrl-Latn-2019",
"stages": [
{ "kind": "stage", "name": "main",
"rules": [ /* parallel sub-rules */ ] }
]
} Ruby gem, TypeScript package, and in-browser widget — all consume the same IR 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