Localized programming language Citrine
Citrine-lang is a localized programming language, allowing you to write
apps and games in your native language.
Download Citrine
Join on Patreon
How does it work?
HINT: New to programming in general? Check out the Citrine Manual for beginners and experienced programmers.
1. Sentences
Citrine reads programs from top to bottom,
from the beginning of a sentence to the end. Each sentence ends with a period.
2. Variables
This is how you declare a variable in Citrine:
3. Messages
You create a program by sending messages to objects
(numbers, texts, booleans, sequences, etc.). The general notation is:
If the message has arguments, you mix them with the message as follows:
<object> <a>: <argument 1> <b>: <argument 2>Here, a and b are both part of the same message. If a message consists of just a single character and there is also just one single argument (like with '+ 3') you may omit the colon.
4. Commas
You can chain multiple messages together. If a message has arguments,
you must add a comma (,) if you want to send a follow-up message.
5. Tasks
You can group instructions by surrounding them with { and }.
This creates a task. You can also send messages to tasks.
For example you can send the message '* 3' to repeat a task
3 times.
At the beginning of the task you can add parameters (:i). With <- you return a response from a task. You can extend any object with new tasks by connecting them to a spefic message.
This guide is suitable for both beginners and
advanced. Learn programming in a playful way with Citrine!
Manual
|
API
FAQ
|
Source code
How to help translating
Is your native language not yet supported? Or do you see some errors in the translations?
Feel free to help us!
If you translate the two header files in the tarball below, I will release a new version of Citrine
in your language.
Download the Citrine translation C-header files.
There is a separate translation form available for the Media Plugin:
Translation Kit Media Plugin or on
github.
STEP 2: Open the translation files with a plain text editor, replace the
English words between the double quotes with your translation.
Notes:
- every translation must be unique, please do not use the same translation twice
- if a word consists of just one character, the transation should also consist of just one
character
- if a word consists multiple characters, the translation must also consist of multiple
characters (of course the number does not have to be the same)
Please, do not change any of the following character sequences:
%s
:
\n
So if the original text does NOT contain a colon, do not add one.
If the original text DOES contain a colon, do not remove that one.
STEP 3:
Send the new file to:
gabordemooij at gaborsoftware dot nl.
In your e-mail, please state the name of the language or dialect.
DONE!
Keep an eye on this website as a new Citrine version supporting your
language will appear soon!
Progress
- 0% = No translation yet
- 25% = Planned
- 50% = Machine Translation
- 75% = Verified
- 100% = Verified and Media plugin
Dutch (Gabor de Mooij)
English (Bernadette Peeters)
German (Gabor de Mooij)
French (Mario Périard)
Spanish (Jose Alejandro Usero)
Russian (Roman Litwinow)
Indonesian (Muhammad Alvaro Syawal Siregar)
Hindi (Aavesh Jilani)
Marathi (Aavesh Jilani)
Brazillian Portugese (John Calistro)
Czech ("Tirifto")
Romanian ("Georgel Preput")
Lithuanian (Lina Dapkute)
Uzbek (Tulenov Temur)
Norwegian (Charles Taylor)
Urdu (Various language consultants)
Albanian (Various language consultants)
Yakut (Contact with translator)
Polish (Jan Wicijowski)
African
Amharic
Arabic
Azerbaijani
Belarusian
Bulgarian
Bengali
Bosnian
Catalan, Valencian
Cebuano
Corsican
Welsh
Danish
Greek
Estonian
Basque
Persian
Finnish
Frisian
Irish
Scottish, Gaelic
Galician
Gujarati
Hausa
Hawaiian
Hebrew
Hmong
Croatian
Haitian
Hungarian
Armenian
Igbo
Icelandic
Italian
Japanese
Javanese
Georgian
Kazakh
Khmer
Kannada
Korean
Kurdish
Kyrgyz
Latin
Luxembourgish
Lao
Latvian
Malagasy
Maori
Macedonian
Malayalam
Mongolian
Moldavian
Malay
Maltese
Burmese
Nepali
Chewa
Oriya
Punjabi
Papiamento
Pashto
Portuguese
Kinyarwanda
Sinhalese
Slovak
Slovene
Samoan
Shona
Somali
Serbian
Sotho
Sundanese
Swedish
Swahili
Tamil
Telugu
Tajik
Thai
Turkmen
Tagalog
Turkish
Tatar
Uyghur
Ukrainian
Vietnamese
Xhosa
Yiddish
Yoruba
Traditional Chinese
Simplified Chinese
ZuluIf you see any errors related to the language names and countries please contact me. Citrine has very few grammar rules and can be very flexible to suit the needs of your native language. However if the base is not flexible enough for your language. Feel free to fork the Citrine project if you need language specific lexer logic (I will link to your project).