"Programming should be accessible to everyone, in every language."
A collection of Raku programming language modules that provide native language support for programming in various languages: English, Deutsch, Español, Português, Français, Русский, 中文, 文言, 日本語, 한국어. These modules allow developers to write Raku code using keywords, operators, and functions in their native language while maintaining full compatibility with standard Raku.
The Raku Multilingual project enables programmers worldwide to code in their native languages. Each module provides:
- Translated keywords and operators
- Native language function names
- Cultural programming conventions
- Full Raku functionality in your language
A polyglot programming language allows developers to write code using multiple natural languages within the same program or ecosystem. This goes beyond simple Unicode identifier support to include keywords, syntax, and programming constructs in different languages.
- Repository: raku-english
- Module names:
English - Features: UK English keywords, operators, and functions (standard Raku with additional aliases)
- Example:
if True { say("Hello World") }
- Repository: raku-german
- Module names:
German,Deutsch - Features: German keywords, operators, and functions
- Example:
wenn Wahr { sagen("Hallo Welt") }
- Repository: raku-spanish
- Module names:
Spanish,Español - Features: Spanish keywords, operators, and functions
- Example:
si verdadero { decir("Hola Mundo") }
- Repository: raku-portuguese
- Module names:
Portuguese,Português - Features: Portuguese keywords, operators, and functions
- Example:
se verdadeiro { dizer("Olá Mundo") }
- Repository: raku-french
- Module names:
French,Français - Features: French keywords, operators, and functions
- Example:
si vrai { dire("Bonjour le Monde") }
- Repository: raku-russian
- Module names:
Russian,Русский - Features: Russian keywords, operators, and functions
- Example:
если истина { сказать("Привет мир") }
- Repository: raku-chinese
- Module names:
Chinese,中文 - Features: Simplified and Traditional Chinese support
- Example:
如果 真 { 說("你好世界") }
- Repository: raku-classical-chinese
- Module names:
ClassicalChinese,文言,文言文,古文,漢文 - Features: Classical Chinese programming constructs
- Example:
若 真 { 曰("天下太平") }
- Repository: raku-japanese
- Module names:
Japanese,日本語 - Features: Japanese keywords, operators, and functions
- Example:
もし 真 { 言う("こんにちは世界") }
- Repository: raku-korean
- Module names:
Korean,한국어,한글 - Features: Korean keywords, operators, and functions
- Example:
만약 참 { 말하기("안녕하세요 세계") }
Each module can be installed using zef:
# Install individual modules
zef install English
zef install German
zef install Spanish
zef install French
# ... etcHere's how to use the French module:
use French;
# or: use Français;
# Variables and constants
mon $nombre = 42;
ma @liste = 1, 2, 3;
# Control structures
si $nombre > 40 {
dire("Le nombre est grand!");
}
pour @liste -> $item {
imprimer("$item ");
}
# Functions
dire(ajouter(2, 3)); # Prints: 5All modules provide:
- ✅ Native language keywords (
if→si,for→pour, etc.) - ✅ Mathematical operators in native language
- ✅ String and array functions
- ✅ Type checking functions
- ✅ I/O operations
- ✅ Logical and comparison operators
- ✅ Full Raku functionality
Contributions are welcome! To add a new language or improve existing modules:
- Fork the relevant repository
- Create your feature branch
- Add tests for new functionality
- Submit a pull request
- All modules use Raku's EXPORT mechanism for clean namespace handling
- The
nilfunction pattern (sub word() { Nil }) ensures proper Nil type handling - Modules support multiple aliases for maximum accessibility
All modules are released under the Artistic-2.0 license.
Danslav Slavenskoj