Multi-Language SupportSeen's keywords are defined in external TOML files, enabling programming in 6 languages with no compiler changes.

Multi-Language Support

Seen's keywords are defined in external TOML files, enabling programming in 6 languages with no compiler changes.

How It Works

Each language has a directory under languages/ containing TOML files for keywords, operators, and standard library names. The lexer reads these at compile time to tokenize source in the specified language.

seen compile hello.seen hello --language ar    # Compile Arabic source
seen compile hello.seen hello --language es    # Compile Spanish source
seen compile hello.seen hello -l zh            # Compile Chinese source

The language field in Seen.toml sets the default:

[project]
name = "my_project"
language = "ar"

Hello World in All 6 Languages

English (en)

fun main() {
    println("Hello, World!")
}

Arabic (ar)

دالة main() {
    println("!مرحبا بالعالم")
}

Spanish (es)

función main() {
    println("Hola, Mundo!")
}

Russian (ru)

функция main() {
    println("Привет, мир!")
}

Chinese (zh)

函数 main() {
    println("你好,世界!")
}

Japanese (ja)

関数 main() {
    println("こんにちは、世界!")
}

Complete Keyword Translation Tables

Control Flow (20 keywords)

EnglishArabicSpanishRussianChineseJapanese
funدالةfunciónфункция函数関数
ifإذاsiесли如果もし
elseوإلاsinoиначе否则そうでなければ
whileبينماmientrasпока
forلكلparaдля对于のために
inفيenв
matchطابقcoincidirсовпадение匹配一致
breakاكسرromperпрервать中断中止
continueاستمرcontinuarпродолжить继续継続
returnرجعretornarвернуть返回戻る
whenعندماcuandoкогда当时場合
tryجربintentarпопробовать尝试試行
catchامسكcapturarпоймать捕获捕捉
finallyأخيراfinalmenteнаконец最终最後に
throwارمlanzar_errorбросить抛出投げる
loopحلقةbucleцикл循环繰返
deferأجلdiferirотложить延迟延期
assertأكدafirmarутверждать断言表明
unsafeغير_آمنinseguroнебезопасный不安全安全でない
errdeferأجل_خطأdiferir_errorотложить_ошибку错误延迟エラー延期

Type Definitions (21 keywords)

EnglishArabicSpanishRussianChineseJapanese
classفئةclaseклассクラス
structهيكلestructuraструктура结构構造体
enumتعدادenumeraciónперечисление枚举列挙
dataبياناتdatosданные数据データ
traitسمةrasgo_tipoтрейт特征トレイト
implتطبيقimplementarреализовать实现実装
typeنوعtipoтип类型
interfaceواجهةinterfazинтерфейс接口インターフェース
extendsيمتدextiendeрасширяет继承継承
sealedمختومselladoзапечатанный密封封印
objectكائنobjetoобъект对象オブジェクト
abstractمجردabstractoабстрактный抽象抽象
finalنهائيfinalфинальный最终的最終
overrideتجاوزanularпереопределить重写上書き
openمفتوحabiertoоткрытый开放開放
extensionامتدادextensiónрасширение扩展拡張
companionرفيقcompañeroкомпаньон伴生同伴
specصفةrasgoчерта规范仕様
distinctمميزdistintoразличный独特独自
unionاتحادuniónобъединение联合共用体
lateinitمتأخر_البدءinit_tardíoпоздняя_инициализация延迟初始化遅延初期化

Variable Declarations (6 keywords)

EnglishArabicSpanishRussianChineseJapanese
letاجعلseaпусть定数
varمتغيرvariableпеременная变量変数
valثابتvalorзначение
mutقابل_للتغييرmutableизменяемый可变可変
constثابت_عامconstanteконстанта常量定義
staticساكنestáticoстатический静态静的

Module System (4 keywords)

EnglishArabicSpanishRussianChineseJapanese
moduleوحدةmóduloмодуль模块モジュール
importاستوردimportarимпортировать导入インポート
useاستخدمusarиспользовать使用使用
externalخارجيexternoвнешний外部外部

Literals (3 keywords)

EnglishArabicSpanishRussianChineseJapanese
trueصحيحverdaderoистина
falseخطأfalsoложь
nullعدمnuloноль

Async/Concurrency (19 keywords)

EnglishArabicSpanishRussianChineseJapanese
asyncغير_متزامنasíncronoасинхронный异步非同期
awaitانتظرesperarждать等待待機
spawnولدgenerarпородить生成生成
selectاخترseleccionarвыбрать选择選択
actorممثلactorактёр角色アクター
receiveاستقبلrecibirполучить接收受信
sendأرسلenviarотправить发送送信
parallel_forparallel_forparallel_forparallel_for并行遍历並列反復
scopeنطاقambitoscopeスコープ
cancelالغاءcancelarcancel取消キャンセル
detachedمنفصلdesvinculadodetached分离切離
suspendعلقsuspenderприостановить挂起中断
launchشغلlanzarзапустить启动起動
flowتدفقflujoпотокフロー
emitاصدرemitirизлучить发射放出
delayأخرretrasarзадержать延时遅延
requestطلبsolicitarзапросить请求リクエスト
replyردresponderответить回复返信
observableقابل_المراقبةobservableнаблюдаемый可观察観察可能

Memory Management (9 keywords)

EnglishArabicSpanishRussianChineseJapanese
moveانقلmoverпереместить移动移動
borrowاستعرprestarзаимствовать借用借用
refمرجعreferenciaссылка引用参照
ownملكpropioвладение拥有所有
inoutفي_المكانen_lugarна_месте输入输出入出力
regionمنطقةregiónрегион区域領域
arenaحلبةarenaарена竞技场アリーナ
transmuteتحويلtransmutarтрансмутировать变换変換
gpuمعالج_رسوماتgpuгпу图形处理グラフィック

Metaprogramming (2 keywords)

EnglishArabicSpanishRussianChineseJapanese
comptimeوقت_التجميعtiempo_compilaciónвремя_компиляции编译时コンパイル時
macroماكروmacroмакросマクロ

Miscellaneous (9 keywords)

EnglishArabicSpanishRussianChineseJapanese
isهوesявляетсяである
asكcomoкак作为として
andوyи且つ
orأوoили又は
notليسnoне
byبواسطةporчерезにより
toإلىaкまで
fromمنdeотから
effectتأثيرefectoэффект效果効果

Return Type Label

The return type label r: has an Arabic alternative:

LanguageSyntax
All languagesr:
Arabic (alternative)ن:

Example:

// English
fun add(a: Int, b: Int) r: Int { return a + b }

// Arabic
دالة add(a: Int, b: Int) ن: Int { رجع a + b }

Operators

All operators use universal symbols across all languages:

+  -  *  /  %  =  ==  !=  <  <=  >  >=
+=  -=  *=  /=  %=  &  |  ^  ~  <<  >>
->  =>  ?  .  ..  ...  ..<  ::  ?.  ?:  !!  _  @

Adding a New Language

  1. Create languages/xx/ (where xx is the ISO language code)
  2. Copy the English TOML files as templates:
    cp -r languages/en/ languages/xx/
    
  3. Translate keyword values in each TOML file
  4. The compiler auto-detects available languages

No compiler rebuild required.

TOML File Structure

Each language directory contains 17 TOML files:

  • xx-keywords-control.toml -- control flow keywords
  • xx-keywords-types.toml -- type definition keywords
  • xx-keywords-vars.toml -- variable declaration keywords
  • xx-keywords-module.toml -- module system keywords
  • xx-keywords-literals.toml -- literal keywords
  • xx-keywords-async.toml -- async/concurrency keywords
  • xx-keywords-modifiers.toml -- modifier keywords
  • xx-keywords-memory.toml -- memory management keywords
  • xx-keywords-meta.toml -- metaprogramming keywords
  • xx-keywords-misc.toml -- miscellaneous keywords
  • xx-builtins.toml -- built-in function names
  • xx-collections.toml -- collection names
  • xx-env.toml -- environment names
  • xx-io.toml -- I/O names
  • xx-math.toml -- math names
  • xx-operators.toml -- operator definitions
  • xx-str.toml -- string helpers

TOML format:

[keywords]
fun = "KeywordFun"
if = "KeywordIf"
else = "KeywordElse"
# ... etc

File Structure

languages/
├── en/     # English (default)
├── ar/     # Arabic
├── es/     # Spanish
├── ru/     # Russian
├── zh/     # Chinese
└── ja/     # Japanese

Total: 17 files per language, 102 files across 6 languages.

Architected in Kotlin. Rendered with Materia. Powered by Aether.
© 2026 Yousef.