Skip to content
reaatechREAATECH

@reaatech/confidence-router-languages

npm v0.1.0

Provides localized clarification prompts and locale-aware formatting for the `confidence-router` ecosystem. It exports `LanguageManager` and `PromptGenerator` classes to handle 47 built-in languages, RTL support, and custom language definitions.

@reaatech/confidence-router-languages

npm version License: MIT CI

Status: Pre-1.0 — APIs may change in minor versions. Pin to a specific version in production.

Multi-language support for confidence-router clarification prompts, with 47 built-in locale configurations and a pluggable LanguageConfig system. Manages language metadata, prompt templates, and locale-aware formatting conventions.

Installation

terminal
npm install @reaatech/confidence-router-languages
# or
pnpm add @reaatech/confidence-router-languages

Feature Overview

  • 47 built-in languages — Afrikaans to Zulu, covering all major languages
  • Localized clarification templates — each language has prompt strings with {options} placeholder
  • Locale-aware formatting — list separators (", " vs "、") and conjunctions ("or" vs "还是")
  • RTL supportdirection: "rtl" for Arabic, Hebrew, Persian, Urdu
  • English fallback — unknown language codes silently fall back to English
  • Custom languagesaddLanguage() for adding new locale configs at runtime
  • Zero external dependencies beyond @reaatech/confidence-router-core

Quick Start

typescript
import { LanguageManager, PromptGenerator } from "@reaatech/confidence-router-languages";
 
const languages = new LanguageManager();
const prompt = new PromptGenerator(languages);
 
const text = prompt.generate(
  [
    { confidence: 0.55, label: "book_flight" },
    { confidence: 0.45, label: "check_status" },
  ],
  "es" // Spanish
);
// → "¿Quisiste decir: book_flight o check_status?"

Built-in Languages

CodeLanguageDirection
enEnglishltr
esSpanishltr
frFrenchltr
deGermanltr
itItalianltr
ptPortugueseltr
nlDutchltr
ruRussianltr
jaJapaneseltr
koKoreanltr
zh-cnChinese (Simplified)ltr
zh-twChinese (Traditional)ltr
arArabicrtl
heHebrewrtl
faPersianrtl
urUrdurtl
hiHindiltr
bnBengaliltr
taTamilltr
teTelugultr
mrMarathiltr
guGujaratiltr
knKannadaltr
mlMalayalamltr
trTurkishltr
plPolishltr
svSwedishltr
noNorwegianltr
daDanishltr
fiFinnishltr
csCzechltr
elGreekltr
thThailtr
viVietnameseltr
idIndonesianltr
msMalayltr
filFilipinoltr
roRomanianltr
bgBulgarianltr
hrCroatianltr
srSerbianltr
slSlovenianltr
huHungarianltr
skSlovakltr
ukUkrainianltr
swSwahililtr
afAfrikaansltr

API Reference

LanguageManager

typescript
import { LanguageManager } from "@reaatech/confidence-router-languages";
 
const lm = new LanguageManager();
MethodReturnsDescription
getLanguage(code)LanguageConfigRetrieves config by ISO 639-1 code; falls back to English
addLanguage(config)voidRegisters a custom language configuration
hasLanguage(code)booleanChecks whether a language is supported
getSupportedLanguages()string[]Returns all registered language codes

PromptGenerator

typescript
import { PromptGenerator } from "@reaatech/confidence-router-languages";
 
const pg = new PromptGenerator(languageManager);
MethodReturnsDescription
generate(predictions, languageCode, customTemplate?, maxOptions?)stringFormats a clarification prompt with sorted prediction labels

The generate method:

  1. Looks up the language config
  2. Sorts predictions by confidence descending
  3. Truncates to maxOptions (default: 3)
  4. Formats labels using locale-specific separators and conjunctions
  5. Replaces {options} in the template with the formatted list

Prompt Templating

Custom templates use the {options} placeholder:

typescript
const template = "Which of these did you mean: {options}";
const text = pg.generate(predictions, "en", template);
// → "Which of these did you mean: book_flight, check_status, or cancel_booking"

Adding a Custom Language

typescript
import type { LanguageConfig } from "@reaatech/confidence-router-core";
import { LanguageManager } from "@reaatech/confidence-router-languages";
 
const lm = new LanguageManager();
lm.addLanguage({
  code: "eo",
  name: "Esperanto",
  nativeName: "Esperanto",
  direction: "ltr",
  clarificationTemplates: {
    basic: "Ĉu vi celis: {options}?",
  },
  formatting: {
    listSeparator: ", ",
    conjunction: "aŭ",
  },
});

Usage Patterns

Multi-language Clarification

typescript
const languages = new LanguageManager();
const prompt = new PromptGenerator(languages);
 
for (const code of ["en", "es", "ja", "ar"]) {
  console.log(prompt.generate([
    { confidence: 0.55, label: "book" },
    { confidence: 0.45, label: "status" },
  ], code));
}
 
// en: "Did you mean: book or status?"
// es: "¿Quisiste decir: book o status?"
// ja: "どちらをお探しですか:book、status"
// ar: "هل كنت تقصد: book أو status؟"

License

MIT