romanize-string
Version:
A fully typed, general-purpose utility for unidirectional string transliteration (non-Latin script => Latin script).
20 lines (19 loc) • 802 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.romanizeJapanese = void 0;
const kuroshiro_js_1 = require("../utils/kuroshiro.js");
const romanizeJapanese = async (input) => {
if (!kuroshiro_js_1.kuroshiro._analyzer) {
await (0, kuroshiro_js_1.initKuroshiro)();
}
const transliteration = await kuroshiro_js_1.kuroshiro.convert(input, {
to: "romaji",
mode: "spaced",
});
const standardizedTransliteration = transliteration
.replace(/\b(\w+)\s+(ta|te|nai|masu|desu|da)\b/g, "$1$2") // Join common verb splits like "megumare ta" -> "megumareta".
.replace(/\s+/g, " ")
.replace(/\s+([.,!?!?。、])/g, "$1");
return standardizedTransliteration;
};
exports.romanizeJapanese = romanizeJapanese;