@gmana/km-translit
v0.0.2
Published
Khmer to Latin transliteration
Maintainers
Readme
@gmana/km-translit
A lightweight, dependency-free library for transliterating Khmer text to Latin script (romanization) and vice versa. It is based on the BGN/PCGN 1972 romanization system.
Features
- Khmer to Latin (
khmerToLatin): Converts Khmer script into Latin characters. - Latin to Khmer (
latinToKhmer): Converts Latin script back into Khmer characters. - Overrides Mechanism: Allows custom word overrides to handle exceptions and specific names.
- Dependency-Free: Small bundle size.
- TypeScript Support: Fully typed out-of-the-box.
Installation
npm install @gmana/km-translit
# or
pnpm add @gmana/km-translit
# or
yarn add @gmana/km-translit
# or
bun add @gmana/km-translitUsage
Khmer to Latin
import { khmerToLatin } from "@gmana/km-translit";
const latinText1 = khmerToLatin("សុន ស្រេង");
console.log(latinText1); // "Son Sreng"
const latinText2 = khmerToLatin("ចាន់ សុភា");
console.log(latinText2); // "Chan Sophea"You can also provide custom overrides for specific words:
const overrides = {
"សុន": "sun",
"ស្រេង": "sraeng",
};
const customLatin = khmerToLatin("សុន ស្រេង", overrides);
console.log(customLatin); // "Sun Sraeng"Latin to Khmer
import { latinToKhmer } from "@gmana/km-translit";
const khmerText = latinToKhmer("son seng");
console.log(khmerText); // "សុន សេង"Similar to khmerToLatin, custom overrides can be applied during reverse transliteration:
const overrides = {
"rath": "រតន៍",
};
const customKhmer = latinToKhmer("rath", overrides);
console.log(customKhmer); // "រតន៍"Functions
khmerToLatin(text: string, overrides?: Record<string, string>): string
Converts a string of Khmer text into Latin script. Spaces are preserved, and words are capitalized.
Optional dictionary of overrides will supersede default generated characters.
latinToKhmer(text: string, overrides?: Record<string, string>): string
Converts a string of Latin text back into Khmer script. Note that transliteration back to Khmer can be lossy since multiple Khmer characters might map to the same Latin character.
Optional dictionary of overrides allows manual mappings.
License
MIT
