Golden Crayon Community Languages

Overview
This file covers the collaborative half of translating Golden Crayon, which means browsing, downloading and working on a translation from inside the game, with other people, through the /languages panel on the server.
Its companion is translations.txt, and the two describe the same thing from opposite ends. translations.txt is the rawdata level. It says what a .lng file is, what its sections mean, how a line is written, and the order the engine resolves them in. This file is the GUI level. It says how those lines get written by several people at once, how a finished file reaches the players reading it, and what the game does with it afterwards.
You can work at either level. Nothing here replaces translations.txt, because every entry you add through a menu ends up as exactly the line that file describes, and knowing what those lines mean is what tells you whether an entry belongs under [DIRECT] or [PATTERN]. Equally, nothing in translations.txt requires this panel. A .lng file you write in a text editor and drop into translations/ works exactly as it always has. The panel exists because a translation is rarely one person's work and rarely finished.
Read translations.txt if you want to know what you are writing. Read this one if you want to know who you are writing it with.

Where the two meet
Every route into a translation ends at the same file.
A line you add through the panel's entry form is written into the .lng at the right place in the right section, quoted the way that section expects.
A language you download from the panel lands in translations/<Name>.lng, alongside the ones that ship with the game, and is selectable from Settings > General > Language like any other.
The panel's "Copy the whole file to my clipboard" hands you the raw text described by translations.txt, so you can read the whole thing, compare it against another copy, or keep it somewhere safe.
Editing your local copy in a text editor still works. See "Keeping your copy" below for the one thing to know before you do.
Two levels, one file. If a phrase is not translating, translations.txt tells you why the line does not match, and this file tells you who can fix it.

Getting a language
Type /languages, or /l. The panel lists what other players have translated. Each entry shows how complete it is, who works on it, and whether staff have marked it official.
Choosing one downloads it and switches to it immediately. It is written into the game's own translations folder, so it stays available from Settings > General > Language whether or not you are connected.
Some translations ship with the game and some come from the server. Both are chosen the same way and both are ordinary .lng files. Community ones are kept up to date for you. When somebody improves the language you are reading, your copy is refreshed while you play, and again when you log in.
An official language has been looked over by staff and is being actively maintained. Start with one of those if there is one for your language. The rest are worth trying, since using them is how their gaps get found, but they are works in progress, and translations.txt's own advice about testing applies doubly to somebody else's unfinished file.

Starting a language
Anyone can start one. From the panel, choose "Start a new language" and give it a name.
It does not start empty. A new language is seeded with a full copy of everything the game says, every line still in English, grouped into the sections translations.txt describes. That copy comes from the same template.lng the manual route starts from, so beginning here and beginning in a text editor give you the same starting point.
It stays private until you make it public in its settings, so there is no rush and nothing half finished is on display.
English cannot be taken as a name, because it is the language the game is written in, so there is nothing to translate it into. The translations that ship with the game are not reserved. If you speak one of them and can do better, you can write yours under the same name. Anyone who chooses yours gets yours, and nobody is switched over without picking it.

Working on one together
Everyone credited on a language is equal. Any contributor can add entries, change them, and bring in the next person. There is no owner who has to approve things, because a translation that only one person may change is a translation that stops the day they lose interest.
To help with one that already exists, open it and choose "Ask to help translate this language". Everybody working on it is told, and any of them can add you. How quickly that happens is up to them.
Whoever started a language keeps two decisions, both destructive rather than creative, which are removing somebody else and renaming or deleting the language. That is so a translation cannot be taken away from the people who built it. Staff can do both as well, which is what covers a starter who never comes back.

Three ways to edit
Once you are a contributor the panel gains three routes to the same file. Which one you want depends on what you are doing.
"Strings still needing translation" is the one to start with. It lists every entry still holding its English text, a page at a time, so you can work down it rather than hunting for gaps. Pick one, type the translation, and you are returned to the same page with the next one waiting. This is the fastest way to finish a language and the one to use for the bulk of the work.
"Add or change a translation" asks for an English phrase and what it should say instead, and writes the line for you. Use it when you know the exact phrase you want to fix, such as something you heard in game that read badly. It puts the entry in the section you choose and quotes it correctly, so you do not have to remember whether that section wants = or =>. If the entry already exists it is changed rather than duplicated, which matters. Two entries under one key is not an error the engine reports. It simply honours the later one, so a duplicate looks like your edit did nothing.
"Browse and edit every line" shows the file itself, a page at a time, including comments and section headers. This is the raw level, and it is where translations.txt stops being background reading and starts being the manual. Use it for anything the other two cannot express, such as adding a section, writing a regex rule, or reordering wildcard patterns so a specific one sits above a generic one.
Whichever route you use, the result is a line in the .lng file. There is no separate database.

Your edits are live
When you change something, everyone currently reading that language receives the new wording almost immediately, without reconnecting. There is no draft stage and nothing to publish.
That is worth pausing on. It means a fix reaches the people it helps straight away, and it means a mistake does too. Work as though someone is listening, because they are.
Several people may hold the same language open at once. If an entry changes under you, someone else got there first. Talk to them rather than changing it back.

Keeping your copy
Choosing a language keeps whatever was already there. If a file of that name is on disk when you pick one, the old copy is moved into translations/backup first, named with the date, so Spanish (2026-08-16).lng sits alongside the new Spanish.lng. Nothing is thrown away, and picking the same language again on another day adds another file rather than replacing the one already saved.
That matters most the first time you choose a community language named after one that ships with the game. The shipped file is what gets set aside, so it is still there afterwards, and copying it back out of the backup folder is all it takes to return to it. Files in that folder are not offered as languages to pick, since only the translations folder itself is listed.
Automatic refreshes do not make backups. Those replace a copy of a file the server can send again at any time, and one per edit would fill the folder for no reason.
Because community languages are refreshed automatically, a file you have hand edited locally will be overwritten the next time the server sends an update.
If you want to keep your own copy exactly as it is, turn off "Keep community languages up to date automatically" in Settings > General. Your file is then left alone, and you stop receiving other people's improvements. This is the right setting for someone maintaining a private variant and the wrong one for everybody else.
The tidier alternative, if your changes are worth having, is to make them through the panel so that everyone gets them.

Backups
The last ten versions of every language are kept on the server. If something goes wrong, whoever started the language can restore one from the language's Backups screen. A restore discards everything written since that point, which is why it is not something every contributor can do alone.

Staff moderation
Staff read community languages and act on what they find. A language can be marked official, which sorts it to the top of the list and says it is being maintained. It can be locked, which leaves it readable and usable but frozen. It can also be removed outright.
That is about conduct, not quality. Nobody on staff speaks every language in the list, and an inaccurate translation is not a moderation problem. It is a reason to tell the people working on it.
You will be asked to read the community language rules once, before you start a language or use a community one for the first time. They set out what a player written translation can and cannot be relied on for.

Things that catch people out
An entry that will not fire is almost always a section problem, such as an entry with => under [DIRECT], or one with = under [PATTERN]. The panel refuses the obvious cases, but see translations.txt's Resolution Order for what actually happens to a line at load time.
Placeholders such as $1, $2 and ${name} are where the game inserts a player's name, a number, or a map. Move them if your language needs a different word order, but do not delete or invent them. translations.txt covers what each one captures.
A wildcard that never matches is usually hidden by another one. Wildcard patterns are matched against the whole string, and the first one wins, so a generic rule placed above a specific one hides it. Use "Browse and edit every line" to move them.
Something translating twice, or oddly, usually comes from plain substring patterns, which are applied repeatedly. translations.txt explains the loop protection and why a pattern whose replacement contains its own search text is applied only once.
A translation that looks complete but is not can be a counting artefact. The progress figure treats an entry as untranslated while both sides still read the same, including a wildcard whose replacement is just its own capture groups. A language reporting 99 percent usually has a couple of entries whose translation genuinely is the English word.

See also
translations.txt covers the file format, every section, the resolution order, and the missing translation log. Read it alongside this one.
template.lng, in the translations folder, is the English source every language starts from, whether you start it here or by hand.
/help languages, in game, is the short version of this file.
