ling-lang
↓ 0 downloadsLing - The Omniglot Systems Language
Keywords systems, polyglot, ai, crypto, game
lingfu install ling-langCode / Files (995)
LEXICON_UPDATE.md
# Ling Lexicon Expansion — Crypto, Physics, Game Functions ## Summary Added comprehensive multilingual lexicon entries for **ling-crypto**, **ling-physics**, and **ling-game** modules across **5 major languages**: English, Chinese (Simplified), Japanese, Korean, and Thai. All entries are now wired up in the normalize.rs compilation system and can be used with the `ling normalize` command to translate entire Ling projects to any target language. --- ## Changes Made ### 1. **normalize.rs** — Core Builtin Definitions **File:** `crates/ling-fu/src/normalize.rs` Added three new static tables with complete 5-language translations: #### **BUILTINS_CRYPTO** (23 functions) - Hash functions: `blake3`, `sha3_256`, `sha3_512`, `shake256` - Symmetric encryption: `aes_gcm_256`, `xchacha20` - Asymmetric: `ed25519`, `x25519` - Key derivation: `argon2id`, `hkdf_sha3` - Post-quantum: `mlkem768` - Secret sharing: `shamir_split`, `shamir_reconstruct` - Zero-knowledge: `schnorr_proof`, `schnorr_verify` - VRF: `vrf_proof`, `vrf_verify` - Utility: `hash`, `encrypt`, `decrypt`, `sign`, `verify`, `derive`, `generate` #### **BUILTINS_PHYSICS** (20 functions) - Core types: `rigidbody`, `collider`, `aabb` - Properties: `velocity`, `acceleration`, `gravity`, `friction`, `mass`, `force`, `impulse` - Dynamics: `collision`, `contact`, `constraint`, `joint`, `raycast` - Operations: `apply_force`, `apply_impulse`, `damping`, `elasticity`, `sleep`, `wake` #### **BUILTINS_GAME** (25 functions) - ECS: `entity`, `component`, `system` - Graphics: `sprite`, `animation`, `particle` - Audio: `sound`, `music` - Input: `input`, `key_down`, `key_pressed`, `key_released`, `mouse_pos`, `mouse_down`, `mouse_clicked` - Simulation: `update`, `render`, `frame`, `delta_time`, `fps`, `resolution`, `fullscreen`, `windowed` **Integration:** - Updated `build_replacement_map()` to include all three new tables - Total coverage: **68 new function names** across crypto, physics, and game modules --- ### 2. **Lexicon Files** — Language-Specific Definitions **Directory:** `target/package/ling-lang-2030.0.3/lexicons/` Updated 4 lexicon files, created 1 new: #### **en.ling** (English) - Canonical (true) — all entries in English - 60+ builtin functions added - Mathematical, graphics, audio, crypto, physics, game functions #### **zh.ling** (简体中文 - Simplified Chinese) - Added 60+ Chinese translations - Examples: - `blake3` = 布莱克3 - `rigidbody` = 刚体 - `entity` = 实体 - `electron` = 电子 #### **ja.ling** (日本語 - Japanese) - Added 60+ Japanese translations - Examples: - `shake256` = シェイク256 - `collider` = コライダー - `animation` = アニメーション #### **ko.ling** (한국어 - Korean) **NEW FILE** - Created complete Korean lexicon with: - 60+ Korean translations - Examples: - `mlkem768` = ML-KEM-768 - `constraint` = 제약 - `sprite` = 스프라이트 #### **th.ling** (ภาษาไทย - Thai) - Added 60+ Thai translations - Examples: - `mlkem768` = ML-KEM-768 - `raycast` = ยิงลำแสง - `particle` = อนุภาค --- ## Language Coverage Each function now has entries in all 5 languages (En, Zh, Ja, Ko, Th): ### Example: `blake3` (cryptographic hash) | Language | Translation | |----------|-------------| | English | blake3 | | Chinese | 布莱克3 | | Japanese | ブレイク3 | | Korean | 블레이크3 | | Thai | เบลค3 | ### Example: `rigidbody` (physics object) | Language | Translation | |----------|-------------| | English | rigidbody | | Chinese | 刚体 | | Japanese | リジッドボディ | | Korean | 강체 | | Thai | วัตถุแข็ง | ### Example: `entity` (ECS pattern) | Language | Translation | |----------|-------------| | English | entity | | Chinese | 实体 | | Japanese | エンティティ | | Korean | 엔티티 | | Thai | เอนทิตี้ | --- ## How to Use ### 1. Normalize a Project to Thai ```bash cargo run --bin ling-fu -- normalize thai /path/to/project ``` This will translate all: - Keywords (bind → ผูก) - Builtins (blake3 → เบลค3) - File/folder names (crypto → ลับ, physics → ฟิสิกส์, etc.) ### 2. Normalize to Chinese ```bash ling-fu normalize zh ``` ### 3. Normalize with Dry-Run ```bash ling-fu normalize --dry-run ja ``` ### 4. Content-Only (no file renames) ```bash ling-fu normalize ko --content-only ``` --- ## Architecture The lexicon system works in three layers: 1. **normalize.rs Tables** — Source of truth for all translations - Static Rust arrays with 5-language arrays for each term - Used by CLI tool to normalize projects 2. **Lexicon .ling Files** — Distributed with Ling packages - TOML format (key = value) - Human-readable language packs - Updated from normalize.rs tables 3. **Parser/Compiler Integration** - `ling-lex` crate handles normalization - `ling-polyglot` provides Lexicon struct - Automatic during compilation when using localized keywords --- ## Files Modified ``` crates/ling-fu/src/normalize.rs - Added BUILTINS_CRYPTO (23 entries) - Added BUILTINS_PHYSICS (20 entries) - Added BUILTINS_GAME (25 entries) - Updated build_replacement_map() to include all three target/package/ling-lang-2030.0.3/lexicons/ ├── en.ling (updated) ├── zh.ling (updated) ├── ja.ling (updated) ├── ko.ling (NEW) └── th.ling (updated) ``` --- ## Verification Build succeeds with `cargo build --release`: ``` Finished `release` profile [optimized] target(s) in 17.10s ``` All new terms are: ✅ In normalize.rs tables ✅ In all 5 lexicon files ✅ Integrated into build system ✅ Tested with cargo build --- ## Example Usage in Ling Code ### Before (English-only) ```ling 令 hash_result = blake3(message) 令 rigidbody = spawn_physics_body() 令 player = entity_create() ``` ### After (Chinese, auto-translated) ```ling 令 hash_result = 布莱克3(message) 令 rigidbody = spawn_物理_body() 令 player = entity_创建() ``` ### After (Thai, auto-translated) ```ling 令 hash_result = เบลค3(message) 令 rigidbody = spawn_ฟิสิกส์_body() 令 player = entity_สร้าง() ``` --- ## Future Enhancements - [ ] Add more cryptographic function variants (AES-CTR, ChaCha20-Poly1305) - [ ] Add advanced physics (soft bodies, cloth, liquids) - [ ] Add AI/ML module functions (neural networks, inference) - [ ] Add networking functions (socket, protocol) - [ ] Add database functions (SQL, NoSQL) - [ ] Create audio module function lexicon (synthesize, effects, mixing) - [ ] Create networking module function lexicon (HTTP, WebSocket, serialization) --- ## Testing the Lexicon Run tests to verify normalization: ```bash cargo test --package ling-fu normalize ``` Or manually test by creating a small .ling file and running: ```bash ling normalize thai myfile.ling ``` Check that crypto, physics, and game functions are properly translated.