// Translation Template for Golden Crayon
// Copy this file and rename it to <LanguageName>.lng (e.g., Spanish.lng, French.lng).
//
// HOW TO TRANSLATE
// 1. Save as <YourLanguage>.lng and select it in Settings > General > Language.
// 2. Turn on Settings > General > "Log untranslated text..." and play the game.
//    Anything not yet translated is appended to <YourLanguage>.missing.txt.
// 3. Translate the right-hand sides here; extend the sections below as you go.
//
// FORMAT (full details in documentation/translations.txt)
//   [VARS]    reusable terms, referenced anywhere as ${name}
//   [DIRECT]  exact whole-phrase translations, and aliases (key = @otherKey)
//   [PATTERN] plain substring replacements, and wildcard patterns (* -> $1..$9,
//             plus plurals {n|singular|plural})
//   [REGEX]   regular-expression rules with $1.. backreferences
//   [CONFIG]  per-file options (e.g. nolog)
// Resolution order: DIRECT (exact, then case-insensitive), aliases, wildcard
// patterns, regex rules, then plain patterns.
//
// This skeleton covers the FIXED interface. It deliberately leaves out the noise
// that should never be translated: player/map names, numbers, coordinates, FPS,
// dates, achievements, chat and PM text, typed characters, and device names.

[VARS]
// Define a reusable term once and use it anywhere with ${name}. Example:
// app = "Golden Crayon"

[DIRECT]
// Whole messages the game speaks as a complete unit.
Loading. Please wait... = "Loading. Please wait..."
Load complete. = "Load complete."
Settings saved. = "Settings saved."
Canceled. = "Canceled."
Aborted. = "Aborted."
Operation cancelled. = "Operation cancelled."
Setup canceled. = "Setup canceled."
Creation canceled. = "Creation canceled."
invalid input = "invalid input"
Attempting to connect... = "Attempting to connect..."
Connection established. = "Connection established."
Stopped tracking. = "Stopped tracking."
You are not tracking anyone. = "You are not tracking anyone."
Noone is near you. = "Noone is near you."
You're the only one on this map. = "You're the only one on this map."
There are no zones to track. = "There are no zones to track."
There are no maps pending evaluation at this time. = "There are no maps pending evaluation at this time."
Volume mixer closed. = "Volume mixer closed."
Camera markers cleared. = "Camera markers cleared."
Voice activated mode enabled. = "Voice activated mode enabled."
Voice chat disabled. = "Voice chat disabled."
Showing your contributions. = "Showing your contributions."
No more buffers. = "No more buffers."
Are you sure you would like to exit? = "Are you sure you would like to exit?"
Select a language channel, or choose Disable Chat to turn chat off. = "Select a language channel, or choose Disable Chat to turn chat off."
To leave the building, press Enter = "To leave the building, press Enter"
Unknown Area = "Unknown Area"
Sign sounds enabled = "Sign sounds enabled"
Sign sounds disabled = "Sign sounds disabled"
Player beacons enabled = "Player beacons enabled"
Player beacons disabled = "Player beacons disabled"
Sonar Off = "Sonar Off"
Sonar On (follows you) = "Sonar On (follows you)"

// Compass directions (spoken on their own).
main = "main"
north = "north"
northeast = "northeast"
east = "east"
southeast = "southeast"
south = "south"
southwest = "southwest"
west = "west"
northwest = "northwest"

// Menu and list items that are spoken on their own (kept exact to avoid matching
// inside other words, e.g. "Connect" vs "Connection").
Connect = "Connect"
Setup Account = "Setup Account"
New Account = "New Account"
Test Speakers = "Test Speakers"
Options = "Options"
Exit = "Exit"
Locations = "Locations"
Main menu = "Main menu"
Challenge maps = "Challenge maps"
Public maps = "Public maps"
Contributions = "Contributions"
Map evaluations = "Map evaluations"
View challenge map leaderboards = "View challenge map leaderboards"
Add a line = "Add a line"
Edit a line = "Edit a line"
Edit element = "Edit element"
Remove a line = "Remove a line"
Map Settings = "Map Settings"
Close Builder = "Close Builder"
Right = "Right"
Left = "Left"

// Builder element types (spoken on their own in the builder menu).
platform = "platform"
wall = "wall"
double wall = "double wall"
floor = "floor"
vanishing platform = "vanishing platform"
activatable platform = "activatable platform"
source = "source"
excludable source = "excludable source"
excludable zone = "excludable zone"
timed source = "timed source"
ambience = "ambience"
3d source = "3d source"
stream = "stream"
music = "music"
music playlist = "music playlist"
clock = "clock"
calendar = "calendar"
checkpoint = "checkpoint"
hazard = "hazard"
health drainer = "health drainer"
hook controller = "hook controller"
tile zone = "tile zone"
chat zone = "chat zone"
zone = "zone"
blockage = "blockage"
sign = "sign"
text square = "text square"
dialog = "dialog"
door = "door"
north south gate = "north south gate"
east west gate = "east west gate"
passage = "passage"
travelpoint = "travelpoint"
lift = "lift"
elevator = "elevator"
belt = "belt"
slant = "slant"
reverb space = "reverb space"
occluded space = "occluded space"
reflection space = "reflection space"
acoustic material = "acoustic material"
zone reverb = "zone reverb"
button = "button"
lever = "lever"
spawn location = "spawn location"
death message = "death message"
menu = "menu"
store = "store"

[PATTERN]
// === Dynamic messages (wildcards: * captures the changing part as $1, $2, ...) ===
"The ping took * milliseconds." => "The ping took $1 milliseconds."
"Viewing * players." => "Viewing $1 {1|player|players}."
"Sonar On (* tiles in front of you)" => "Sonar On ($1 tiles in front of you)"
"Minimum * marker set to *" => "Minimum $1 marker set to $2"
"Maximum * marker set to *" => "Maximum $1 marker set to $2"
"Tracking *." => "Tracking $1."
"Showing public maps. Page * of *." => "Showing public maps. Page $1 of $2."
"* out of * health" => "$1 out of $2 health"
"*: * items. * of *" => "$1: $2 {2|item|items}. $3 of $4"

// === Form-control chrome (wildcards) ===
// The screen reader speaks each control as: <label> <type> [state] [Alt+<key>].
// These rules translate the type/state words for EVERY control at once. The
// label is captured as $1 (kept as-is) and the hotkey letter as the last $N.
// Translate only the type/state words on the right; leave the $ placeholders.
// IMPORTANT: keep the more specific "...Edit" rules above the bare "* Edit".
"* Tab panel Alt+*" => "$1 Tab panel Alt+$2"
"* Check Box Not Checked Alt+*" => "$1 Check Box Not Checked Alt+$2"
"* Check Box Checked Alt+*" => "$1 Check Box Checked Alt+$2"
"* Check Box Not Checked" => "$1 Check Box Not Checked"
"* Check Box Checked" => "$1 Check Box Checked"
"* Button Alt+*" => "$1 Button Alt+$2"
"* Button" => "$1 Button"
"* Slider Alt+*" => "$1 Slider Alt+$2"
"* Slider" => "$1 Slider"
"* List Alt+*" => "$1 List Alt+$2"
"* List" => "$1 List"
"* Read Only Edit" => "$1 Read Only Edit"
"* Edit Multi Line" => "$1 Edit Multi Line"
"* Edit Characters Hidden" => "$1 Edit Characters Hidden"
"* Edit" => "$1 Edit"
"* tab" => "$1 tab"
"* Dialog" => "$1 Dialog"

// To ALSO translate a specific control's label, add a more specific wildcard
// ABOVE the generic chrome rules (first match wins). For example:
// "Enable HRTF (may require restart) Check Box Checked Alt+*" => "<your label> Check Box Checked Alt+$1"
// "Enable HRTF (may require restart) Check Box Not Checked Alt+*" => "<your label> Check Box Not Checked Alt+$1"

// === Plain substring fragments ===
// Scaffolding inside map listings ("name. Format: 3D. Author: x. Likes: 0..."):
// names and numbers stay; only the labels are translated. Keep "contributors"
// (plural) above "contributor".
// CAUTION: never let a plain replacement contain its own search text. E.g.
// "Map" => "Mapa" ("Mapa" contains "Map") would otherwise grow as
// "Map tab" -> "Mapaaaaaaaaaa tab". The engine now applies such a pattern only
// once, but you should instead use [DIRECT] for a whole word (Map = "Mapa") or a
// wildcard for a role word ("* List" => "$1 Lista"). See documentation/translations.txt.
"Format: " => "Format: "
"Author: " => "Author: "
"Likes: " => "Likes: "
"Dislikes: " => "Dislikes: "
"Categories: " => "Categories: "
" contributors" => " contributors"
" contributor" => " contributor"
"None" => "None"

[REGEX]
// Advanced: full regular-expression rules with $1.. backreferences. Rules run in
// order; an invalid pattern is ignored. Use sparingly. Example:
// "(\d+):(\d+)" => "$1 hours and $2 minutes"

[CONFIG]
// Per-file options. Uncomment "nolog" once this translation is complete so it
// never writes a <Language>.missing.txt log on players' machines.
// nolog
// case_insensitive = false  // turn off the case-insensitive direct fallback
