summaryrefslogtreecommitdiff
path: root/kartik/lang
diff options
context:
space:
mode:
Diffstat (limited to 'kartik/lang')
-rwxr-xr-xkartik/lang/de.json237
-rwxr-xr-xkartik/lang/en.json237
-rwxr-xr-xkartik/lang/es.json237
-rwxr-xr-xkartik/lang/fr.json237
-rwxr-xr-xkartik/lang/it.json237
-rwxr-xr-xkartik/lang/jp.json237
-rwxr-xr-xkartik/lang/languages.json12
-rwxr-xr-xkartik/lang/loader.js28
-rwxr-xr-xkartik/lang/nl.json237
-rwxr-xr-xkartik/lang/preload.js2
-rwxr-xr-xkartik/lang/pt.json237
-rwxr-xr-xkartik/lang/ru.json237
-rwxr-xr-xkartik/lang/zh.json237
13 files changed, 2412 insertions, 0 deletions
diff --git a/kartik/lang/de.json b/kartik/lang/de.json
new file mode 100755
index 0000000..1e18c6f
--- /dev/null
+++ b/kartik/lang/de.json
@@ -0,0 +1,237 @@
+{
+ "crash": {
+ "title": "Kartik Crash Reporter",
+ "head": "Kartik hat aufgeh\u00f6rt zu arbeiten",
+ "intro": "Kartik ist auf ein Problem gesto\u00dfen und hat unerwartet angehalten. ",
+ "report": [
+ "Au\u00dferdem wurde ein Absturzbericht in \"",
+ "Damit Sie es an die Entwickler senden k\u00f6nnen, wenn Sie einen Internetzugang haben."
+ ],
+ "close": "Schlie\u00dfen",
+ "reset": "Kartik zur\u00fccksetzen und schlie\u00dfen"
+ },
+ "updates": {
+ "ok": "Auf dem Laufenden",
+ "available": "Spiel-Updates verf\u00fcgbar",
+ "git": "Ausf\u00fchren der Trunk-Version",
+ "error": "Suche nach Updates nicht m\u00f6glich",
+ "wait": "Suche nach Updates ...",
+ "warn": [
+ "Updates sind verf\u00fcgbar",
+ "Laden Sie die neue Version von Kartik von der offiziellen Website herunter, um von den neuesten Funktionen und Fehlerbehebungen zu profitieren."
+ ]
+ },
+ "scenario": {
+ "intro": [
+ "Hey, hallo, wie w\u00e4re es mit einem schnellen Lauf?",
+ "Ah, da bist du wieder! ",
+ "Wie w\u00e4re es mit einem kleinen Rennen?",
+ "Machen wir einen Spaziergang?"
+ ],
+ "ahead1": [
+ "Ach nein !",
+ "Verdammt, das ist nicht m\u00f6glich!",
+ "Aber ich komm da nicht hin...",
+ "Und Schei\u00dfe...",
+ "Warum du ?"
+ ],
+ "ahead2": [
+ "Hee hee hee",
+ "Dieser ist f\u00fcr mich!",
+ "Ich werde es haben !",
+ "Es ist f\u00fcr mich!",
+ "Es geh\u00f6rt mir !"
+ ],
+ "won1": [
+ "Gute Partie !",
+ "Schade f\u00fcr mich...",
+ "ich h\u00e4tte hoffen k\u00f6nnen...",
+ "Aber es ist nicht sehr sch\u00f6n!",
+ "Gut gemacht !"
+ ],
+ "won2": [
+ "Ich habe es dir gesagt !",
+ "Als h\u00e4tte ich dich nicht gewarnt!",
+ "Ich habe gewonnen !",
+ "Super, ich habe gewonnen!",
+ "Und noch eins f\u00fcr mich!"
+ ],
+ "wall1": [
+ "Ah ah!",
+ "Na dann, gehen wir nicht richtig?",
+ "Autsch",
+ "Es muss weh tun...",
+ "Spaf, c't'obstacle!"
+ ],
+ "wall2": [
+ "Scheisse",
+ "Kacke",
+ "Nicht m\u00f6glich",
+ "Puti"
+ ],
+ "start": [
+ "Ich werde Spa\u00df haben!",
+ "Du wirst sehen, ich mache dich zu einer dieser Rassen!",
+ "Erz\u00e4hl mir Neuigkeiten",
+ "Lass uns gehen!",
+ "Auf geht's !",
+ "Wooo, vorw\u00e4rts!"
+ ]
+ },
+ "discord": {
+ "credits": [
+ "Warten",
+ "Im Abspann"
+ ],
+ "game": [
+ "Eins\u00e4tze",
+ "Solo-Modus",
+ "Versus-Modus",
+ "In der Pause"
+ ],
+ "intro": [
+ "Warten",
+ "\u00dcber die Einf\u00fchrung"
+ ],
+ "settings": [
+ "Warten",
+ "In den Einstellungen"
+ ],
+ "win": [
+ "Gerade gewonnen",
+ "Gerade verloren"
+ ]
+ },
+ "intro": [
+ "Dr\u00fccken Sie die Eingabetaste, um zu starten",
+ "Dr\u00fccke A zum Starten"
+ ],
+ "game": {
+ "credits": {
+ "by": "von"
+ },
+ "gpause": {
+ "title": "Spiel pausiert",
+ "continueg": "Weitermachen",
+ "showhb": "Hitbox anzeigen",
+ "hidehb": "Hitbox ausblenden",
+ "quit": "Verlassen"
+ }
+ },
+ "menu": {
+ "titles": [
+ "Solo",
+ "Gegen",
+ "Optionen",
+ "Credits",
+ "Verlassen"
+ ],
+ "descriptions": [
+ "Spiele alleine und offline gegen einen Roboter",
+ "Spielen Sie zwei auf demselben Bildschirm",
+ "Zoom und Einstellungen \u00e4ndern",
+ "Liste der Spieleautoren anzeigen",
+ "Schlie\u00dfe das Spiel und kehre zur\u00fcck zu"
+ ],
+ "distribute": "Nicht st\u00f6ren"
+ },
+ "settings": {
+ "title": "Optionen",
+ "back": "Zur\u00fcckkehren",
+ "size": "Schnittstellengr\u00f6\u00dfe",
+ "music": "Musik aktivieren",
+ "lang": "Zunge",
+ "voice": "Stimme aktivieren",
+ "yes": "Jawohl",
+ "no": "Nein",
+ "notice": "Die Einstellungen werden erst nach dem Neustart von Kartik \u00fcbernommen"
+ },
+ "win": {
+ "solo": {
+ "win": "Du hast gewonnen !",
+ "lose": "Du hast verloren !"
+ },
+ "versus": "Spieler 0 hat gewonnen!",
+ "quit": [
+ "Zum Beenden Esc dr\u00fccken",
+ "Dr\u00fccken Sie B zum Beenden"
+ ]
+ },
+ "online": {
+ "menu": {
+ "local": "Lokal",
+ "online": "In der Reihe",
+ "dlocal": "Spiele mit einem Freund auf derselben Maschine",
+ "donline": "Spiele mit einem Freund auf verschiedenen Maschinen"
+ },
+ "error": {
+ "connection": "Kommunikationsfehler",
+ "disconnect": "Getrennt"
+ },
+ "connecting": "Verbindung zum Server...",
+ "intro": {
+ "create": "Erstelle ein Spiel",
+ "pcreate": "Geben Sie Ihrem Teamkollegen diesen Code, um sich in Ihr Spiel einzuloggen:",
+ "join": "Mach mit bei einem Spiel",
+ "pjoin": "Geben Sie den Code Ihres Teamkollegen ein, um an seinem Spiel teilzunehmen:"
+ },
+ "disconnected": "Verbindung unterbrochen",
+ "unable": "Verbindung zum Server nicht m\u00f6glich",
+ "internal": "Interner Systemfehler",
+ "loading": "Vorbereitung auf das Spiel...",
+ "discord": "In der Reihe",
+ "generate": "Laden des Landes ...",
+ "discord2": "Auf einen Fehler sto\u00dfen",
+ "timeout": "Das Timeout wurde \u00fcberschritten",
+ "aborted": "Der andere Spieler hat das Spiel verlassen",
+ "car0": "Dein Auto",
+ "car1": "Sein Auto"
+ },
+ "stats": {
+ "menu": "Statistiken",
+ "title": "Spielstatistiken",
+ "items": {
+ "times.single": "Im Einzelspielermodus verbrachte Zeit",
+ "times.local": "Im lokalen Modus verbrachte Zeit",
+ "times.online": "Im Online-Modus verbrachte Zeit",
+ "results.wins": "Anzahl der gewonnenen Spiele",
+ "results.loses": "Anzahl der verlorenen Spiele",
+ "ingame.walls": "Gesamtzahl der Kollisionen",
+ "ingame.laps": "Gesamtzahl der Runden",
+ "ingame.turns": "Gesamtzahl der Umdrehungen"
+ }
+ },
+ "polymer": {
+ "gpu": "GPU-Unterst\u00fctzungsstatus",
+ "gpuShift": "Dr\u00fccken Sie die Umschalttaste, um mehr zu sehen",
+ "logging": "Wir verbinden Sie; ",
+ "loginClose": "Sie k\u00f6nnen nun diese Registerkarte oder dieses Fenster schlie\u00dfen und zu Kartik zur\u00fcckkehren.",
+ "gatheringLogin": "Wir verifizieren Ihr Konto; ",
+ "loginIntro": "Dr\u00fccken Sie L, um eine Verbindung herzustellen",
+ "logout": "L zum Abmelden",
+ "ktoLevel": "Niveau",
+ "ktoMaxLevel": "Gott",
+ "error": [
+ "Kommunikation mit Servern nicht m\u00f6glich",
+ "Sie k\u00f6nnen Kartik Online erst nutzen, wenn wir mit den Servern kommunizieren k\u00f6nnen.",
+ "Mit dem Internet verbinden"
+ ],
+ "updateError": [
+ "Suche nach Updates nicht m\u00f6glich",
+ "Wir k\u00f6nnen derzeit nicht nach Updates suchen. Bitte versuchen Sie es sp\u00e4ter erneut."
+ ],
+ "levelup": [
+ "H\u00f6heres Level !",
+ "Du hast das Level erreicht",
+ "und du gewinnst an Macht! "
+ ],
+ "finished": [
+ "Du hast das Spiel geschlagen!",
+ "Fertige Kartik ?! "
+ ],
+ "token": [
+ "Von woanders getrennt",
+ "Sie wurden von Kartik Online abgemeldet, weil Ihre Sitzung an anderer Stelle beendet wurde."
+ ]
+ }
+} \ No newline at end of file
diff --git a/kartik/lang/en.json b/kartik/lang/en.json
new file mode 100755
index 0000000..d6d25c9
--- /dev/null
+++ b/kartik/lang/en.json
@@ -0,0 +1,237 @@
+{
+ "crash": {
+ "title": "Kartik Crash Reporter",
+ "head": "Kartik stopped working",
+ "intro": "Kartik encountered a problem and exited unexpectedly. We recorded some additional information, and a crash report has been automatically sent to the developers if you were connected to the Internet.",
+ "report": [
+ "Alternately, a crash report has been created in « ",
+ " », so that you can send it to the developers when you will have Internet access."
+ ],
+ "close": "Close",
+ "reset": "Reset Kartik and close"
+ },
+ "updates": {
+ "ok": "Up to date",
+ "available": "Game updates available",
+ "git": "Running trunk version",
+ "error": "Unable to check for updates",
+ "wait": "Checking for updates...",
+ "warn": [
+ "Updates available",
+ "Download the new version of Kartik from the official website to get the newest features and bug fixes."
+ ]
+ },
+ "scenario": {
+ "intro": [
+ "Heyo, what about a lil race?",
+ "Hey, you're back! What 'bout a lil race?",
+ "Shall we do a lil race?",
+ "Have a race?"
+ ],
+ "ahead1": [
+ "Oh no!",
+ "Aw shit, that's not possible!",
+ "But I won't get it...",
+ "Damnit...",
+ "Why you?"
+ ],
+ "ahead2": [
+ "Hey hey hey",
+ "This one's for me!",
+ "I'll get it!",
+ "It's for me!",
+ "For me!"
+ ],
+ "won1": [
+ "Good game!",
+ "Nevermind...",
+ "At least I hoped...",
+ "But, that's not kind!",
+ "Congrats!"
+ ],
+ "won2": [
+ "I told ya!",
+ "As if I hadn't told you!",
+ "I won!",
+ "Great, I won this one!",
+ "And one more for me!"
+ ],
+ "wall1": [
+ "Hey hey!",
+ "Well then, you don't drive well?",
+ "Ouch",
+ "That must've hurt...",
+ "Ouch, in the wall..."
+ ],
+ "wall2": [
+ "Damnit...",
+ "Well...",
+ "Impossible",
+ "Aw crap"
+ ],
+ "start": [
+ "Let's get you airborne!",
+ "You'll see, I'll make you one of those races!",
+ "You'll tell me what ya think",
+ "Let's go!",
+ "And, let's go!",
+ "Wooo, right away!"
+ ]
+ },
+ "discord": {
+ "credits": [
+ "Waiting",
+ "Viewing the credits"
+ ],
+ "game": [
+ "In game",
+ "Singleplayer",
+ "Versus",
+ "Paused"
+ ],
+ "intro": [
+ "Waiting",
+ "On the intro"
+ ],
+ "settings": [
+ "Waiting",
+ "In the settings"
+ ],
+ "win": [
+ "Just won",
+ "Just lost"
+ ]
+ },
+ "intro": [
+ "Press Enter to start",
+ "Press A to start"
+ ],
+ "game": {
+ "credits": {
+ "by": "by"
+ },
+ "gpause": {
+ "title": "Game Paused",
+ "continueg": "Continue",
+ "showhb": "Show hitboxes",
+ "hidehb": "Hide hitboxes",
+ "quit": "Quit"
+ }
+ },
+ "menu": {
+ "titles": [
+ "Singleplayer",
+ "Versus",
+ "Settings",
+ "Credits",
+ "Quit"
+ ],
+ "descriptions": [
+ "Play alone and offline against a robot",
+ "Play with a friend on one screen",
+ "Change zoom and other settings",
+ "View game authors list",
+ "Close the game and return to"
+ ],
+ "distribute": "Do not distribute"
+ },
+ "settings": {
+ "title": "Settings",
+ "back": "Back",
+ "size": "Interface size",
+ "music": "Enable music",
+ "lang": "Language",
+ "voice": "Enable voice",
+ "yes": "yes",
+ "no": "no",
+ "notice": "Changed settings won't apply until you restart Kartik"
+ },
+ "win": {
+ "solo": {
+ "win": "You win!",
+ "lose": "You lose!"
+ },
+ "versus": "Player 0 win!",
+ "quit": [
+ "Press Esc to quit",
+ "Press B to quit"
+ ]
+ },
+ "online": {
+ "menu": {
+ "local": "Local",
+ "online": "Online",
+ "dlocal": "Play with a friend on the same computer",
+ "donline": "Play with a friend on different computers"
+ },
+ "error": {
+ "connection": "Communication Error",
+ "disconnect": "Disconnected"
+ },
+ "connecting": "Connecting to server...",
+ "intro": {
+ "create": "Create a party",
+ "join": "Join a party",
+ "pcreate": "Give this code to your teammate so they can connect to your party:",
+ "pjoin": "Enter the code your teammate gave to connect to their party:"
+ },
+ "disconnected": "Connection Lost",
+ "unable": "Unable to connect to server",
+ "internal": "Internal System Error",
+ "loading": "Preparing to play...",
+ "discord": "Online",
+ "generate": "Loading terrain...",
+ "discord2": "Facing an error",
+ "timeout": "The connection timed out",
+ "aborted": "The other player ended the game",
+ "car0": "Your car",
+ "car1": "Their car"
+ },
+ "stats": {
+ "menu": "Statistics",
+ "title": "Game Statistics",
+ "items": {
+ "times.single": "Time spent in singleplayer",
+ "times.local": "Time spent in local mode",
+ "times.online": "Time spent playing online",
+ "results.wins": "Number of games that you won",
+ "results.loses": "Number of games that you lost",
+ "ingame.walls": "Number of collisions you had",
+ "ingame.laps": "Number of laps you made",
+ "ingame.turns": "Number of rotations you made"
+ }
+ },
+ "polymer": {
+ "gpu": "GPU Support Status",
+ "gpuShift": "Press Shift for details",
+ "logging": "We are logging you in ; check for your Web browser window and accept the login.",
+ "loginClose": "You can now close this tab/window and go back to Kartik.",
+ "gatheringLogin": "We are checking your account ; this may take a while.",
+ "loginIntro": "Press L to login",
+ "logout": "L to logout",
+ "ktoLevel": "Level",
+ "ktoMaxLevel": "God",
+ "error": [
+ "Unable to communicate with servers",
+ "You won't be able to use Kartik Online until we can connect to the servers.",
+ "Go online to log in"
+ ],
+ "updateError": [
+ "Unable to check for updates",
+ "We cannot check for new updates right now, please try again later."
+ ],
+ "levelup": [
+ "Level up!",
+ "You have reached level",
+ "and you're gaining power! Continue and try to reach the maximum level."
+ ],
+ "finished": [
+ "You've beaten the game!",
+ "Finished Kartik?! Yes. You've reached the god level!"
+ ],
+ "token": [
+ "Logged out from another place",
+ "You have been logged out from Kartik Online because your session has been terminated from somewhere else."
+ ]
+ }
+}
diff --git a/kartik/lang/es.json b/kartik/lang/es.json
new file mode 100755
index 0000000..7eacf11
--- /dev/null
+++ b/kartik/lang/es.json
@@ -0,0 +1,237 @@
+{
+ "crash": {
+ "title": "Kartik Crash Reportero",
+ "head": "Kartik ha dejado de funcionar",
+ "intro": "Kartik se encontr\u00f3 con un problema y se detuvo inesperadamente.Recopilamos informaci\u00f3n adicional y se envi\u00f3 autom\u00e1ticamente un informe de bloqueo a los desarrolladores si estaba conectado a Internet.",
+ "report": [
+ "Adem\u00e1s, se cre\u00f3 un informe de bloqueo en \"",
+ "\", para que pueda enviarlo a los desarrolladores cuando tenga acceso a Internet."
+ ],
+ "close": "cerrar",
+ "reset": "Reinicializaci\u00f3n Kartik y cierre"
+ },
+ "updates": {
+ "ok": "Hasta la fecha",
+ "available": "Actualizaciones de juegos disponibles",
+ "git": "Ejecuci\u00f3n de la versi\u00f3n troncal",
+ "error": "No se puede comprobar si hay actualizaciones",
+ "wait": "Buscando actualizaciones...",
+ "warn": [
+ "Las actualizaciones est\u00e1n disponibles",
+ "Descargue la nueva versi\u00f3n de Kartik desde el sitio web oficial para beneficiarse de las \u00faltimas caracter\u00edsticas y correcciones de errores."
+ ]
+ },
+ "scenario": {
+ "intro": [
+ "Oye, hola, eso te dice una peque\u00f1a carrera?",
+ "\u00a1Ah, aqu\u00ed est\u00e1s de nuevo! \u00bfEso te dice un poco de raza?",
+ "\u00bfY si tuvi\u00e9ramos una peque\u00f1a carrera?",
+ "\u00bfVamos a dar un paseo?"
+ ],
+ "ahead1": [
+ "\u00a1No!",
+ "\u00a1Joder, no es posible!",
+ "Pero no voy a llegar all\u00ed...",
+ "oh...",
+ "\u00bfPor qu\u00e9?"
+ ],
+ "ahead2": [
+ "Hola hola hola",
+ "\u00a1Este es para m\u00ed!",
+ "\u00a1Lo tendr\u00e9!",
+ "\u00a1Es para m\u00ed!",
+ "\u00a1Es m\u00edo!"
+ ],
+ "won1": [
+ "\u00a1Bien hecho!",
+ "L\u00e1stima para m\u00ed...",
+ "Podr\u00eda haber esperado...",
+ "Pero, no es muy agradable!",
+ "\u00a1Bien hecho!"
+ ],
+ "won2": [
+ "Te lo hab\u00eda dicho !",
+ "\u00a1Como si no te lo hubiera advertido!",
+ "He ganado !",
+ "\u00a1Genial, lo gan\u00e9!",
+ "\u00a1Y uno m\u00e1s para m\u00ed!"
+ ],
+ "wall1": [
+ "\u00a1Ah ah!",
+ "Bueno, entonces, \u00bfno vamos bien?",
+ "Ay",
+ "Debe doler ...",
+ "\u00a1Splaf, c't'obstacle!"
+ ],
+ "wall2": [
+ "Mierda",
+ "Caca",
+ "No es posible",
+ "Puti"
+ ],
+ "start": [
+ "\u00a1Voy a divertirme!",
+ "Ya ver\u00e1s, \u00a1te har\u00e9 una de esas carreras!",
+ "Dime alguna noticia",
+ "\u00a1Vamos!",
+ "Aqu\u00ed vamos !",
+ "\u00a1Wooo, adelante!"
+ ]
+ },
+ "discord": {
+ "credits": [
+ "A la espera",
+ "En los creditos"
+ ],
+ "game": [
+ "Apuesta",
+ "Modo solo",
+ "Modo Versus",
+ "Pausa"
+ ],
+ "intro": [
+ "A la espera",
+ "Sobre la introducci\u00f3n"
+ ],
+ "settings": [
+ "A la espera",
+ "En la configuraci\u00f3n"
+ ],
+ "win": [
+ "Acaba de ganar",
+ "Acaba de perder"
+ ]
+ },
+ "intro": [
+ "Presiona enter para comenzar",
+ "Presione A para comenzar"
+ ],
+ "game": {
+ "credits": {
+ "by": "por"
+ },
+ "gpause": {
+ "title": "Juego pausado",
+ "continueg": "seguir",
+ "showhb": "Mostrar hitbox",
+ "hidehb": "Ocultar hitbox",
+ "quit": "Dejar"
+ }
+ },
+ "menu": {
+ "titles": [
+ "Solo",
+ "Versus",
+ "Opciones",
+ "Cr\u00e9ditos",
+ "Dejar"
+ ],
+ "descriptions": [
+ "Juega solo y sin conexi\u00f3n contra un robot",
+ "Juega dos en la misma pantalla",
+ "Cambiar el zoom y la configuraci\u00f3n",
+ "Muestra la lista de autores del juego.",
+ "Cierra el juego y vuelve a"
+ ],
+ "distribute": "No distribuir"
+ },
+ "settings": {
+ "title": "Opciones",
+ "back": "Regresar",
+ "size": "Tama\u00f1o de la interfaz",
+ "music": "Activar musica",
+ "lang": "Lengua",
+ "voice": "Activar voz",
+ "yes": "s\u00ed",
+ "no": "No",
+ "notice": "La configuraci\u00f3n solo se aplicar\u00e1 despu\u00e9s de reiniciar Kartik"
+ },
+ "win": {
+ "solo": {
+ "win": "Hab\u00e9is ganado !",
+ "lose": "Perdiste !"
+ },
+ "versus": "\u00a1El jugador 0 ha ganado!",
+ "quit": [
+ "Presione Esc para salir",
+ "Presione B para salir"
+ ]
+ },
+ "online": {
+ "menu": {
+ "local": "Local",
+ "online": "En l\u00ednea",
+ "dlocal": "Juega con un amigo en la misma m\u00e1quina",
+ "donline": "Juega con un amigo en diferentes m\u00e1quinas."
+ },
+ "error": {
+ "connection": "Error de comunicaci\u00f3n",
+ "disconnect": "Desconectado"
+ },
+ "connecting": "Conexi\u00f3n al servidor ...",
+ "intro": {
+ "create": "Crea un juego",
+ "pcreate": "Dale este c\u00f3digo a tu compa\u00f1ero de equipo para que inicie sesi\u00f3n en tu juego:",
+ "join": "Unirse a un juego",
+ "pjoin": "Ingrese el c\u00f3digo de su compa\u00f1ero de equipo para unirse a su juego:"
+ },
+ "disconnected": "Conexi\u00f3n perdida",
+ "unable": "Imposible conectarse al servidor",
+ "internal": "Error interno del sistema",
+ "loading": "Prepar\u00e1ndose para el juego ...",
+ "discord": "En l\u00ednea",
+ "generate": "Cargando la tierra ...",
+ "discord2": "Encontrar un error",
+ "timeout": "Se super\u00f3 el tiempo de espera",
+ "aborted": "El otro jugador ha dejado el juego.",
+ "car0": "Tu carro",
+ "car1": "Su auto"
+ },
+ "stats": {
+ "menu": "Estad\u00edsticas",
+ "title": "Estad\u00edsticas de juego",
+ "items": {
+ "times.single": "Tiempo empleado en el modo de un jugador",
+ "times.local": "Tiempo empleado en modo local",
+ "times.online": "Tiempo pasado en modo online",
+ "results.wins": "Numero de juegos ganados",
+ "results.loses": "N\u00famero de juegos perdidos",
+ "ingame.walls": "N\u00famero total de colisiones",
+ "ingame.laps": "N\u00famero total de vueltas",
+ "ingame.turns": "N\u00famero total de vueltas"
+ }
+ },
+ "polymer": {
+ "gpu": "Estado de soporte de GPU",
+ "gpuShift": "Presione Shift para ver m\u00e1s",
+ "logging": "Te conectamos; ",
+ "loginClose": "Ahora puede cerrar esta pesta\u00f1a o ventana y volver a Kartik.",
+ "gatheringLogin": "Verificamos su cuenta; ",
+ "loginIntro": "Presione L para conectarse",
+ "logout": "L para cerrar la sesi\u00f3n",
+ "ktoLevel": "Nivel",
+ "ktoMaxLevel": "Dios",
+ "error": [
+ "No se puede comunicar con los servidores.",
+ "No podr\u00e1 utilizar Kartik Online hasta que podamos comunicarnos con los servidores.",
+ "Conectar a internet"
+ ],
+ "updateError": [
+ "No se puede buscar actualizaciones",
+ "No podemos buscar actualizaciones en este momento, int\u00e9ntelo de nuevo m\u00e1s tarde."
+ ],
+ "levelup": [
+ "Nivel Superior !",
+ "Has alcanzado el nivel",
+ "y ganas poder! "
+ ],
+ "finished": [
+ "\u00a1Ganaste el juego!",
+ "\u00a1\u00bfKartik terminado ?! "
+ ],
+ "token": [
+ "Desconectado de otro lugar",
+ "Se ha desconectado de Kartik Online porque su sesi\u00f3n se termin\u00f3 en otro lugar."
+ ]
+ }
+} \ No newline at end of file
diff --git a/kartik/lang/fr.json b/kartik/lang/fr.json
new file mode 100755
index 0000000..b09debc
--- /dev/null
+++ b/kartik/lang/fr.json
@@ -0,0 +1,237 @@
+{
+ "crash": {
+ "title": "Rapporteur de plantages de Kartik",
+ "head": "Kartik a cessé de fonctionner",
+ "intro": "Kartik a rencontré un problème et s'est arrêté inopinément. Nous avons collecté des informations supplémentaires, et un rapport de plantage a automatiquement été envoyé aux développeurs si vous étiez connecté à Internet.",
+ "report": [
+ "De plus, un rapport de plantage a été créé dans « ",
+ " », afin que vous puissiez l'envoyer aux développeurs lorsque vous aurez accès à Internet."
+ ],
+ "close": "Fermer",
+ "reset": "Réinitialiser Kartik et fermer"
+ },
+ "updates": {
+ "ok": "À jour",
+ "available": "Mises à jour du jeu disponibles",
+ "git": "Exécution de la version trunk",
+ "error": "Impossible de rechercher les mises à jour",
+ "wait": "Recherche de mises à jour...",
+ "warn": [
+ "Des mises à jour sont disponibles",
+ "Téléchargez la nouvelle version de Kartik depuis le site officiel pour bénéficier des dernières fonctionnalités et corrections de bugs."
+ ]
+ },
+ "scenario": {
+ "intro": [
+ "Hey, salut, ça te dit une petite course ?",
+ "Ah, te revoilà ! Ça te dit une petite course ?",
+ "Et si on se faisait une petite course ?",
+ "On fait un tour ?"
+ ],
+ "ahead1": [
+ "Oh non !",
+ "Putain, c'est pas possible !",
+ "Mais je vais pas y arriver...",
+ "Et merde...",
+ "Pourquoi toi ?"
+ ],
+ "ahead2": [
+ "Hi hi hi",
+ "Celle-là est pour moi !",
+ "Je l'aurai !",
+ "Elle est pour moi !",
+ "C'est à moi !"
+ ],
+ "won1": [
+ "Bien joué !",
+ "Tant pis pour moi...",
+ "J'aurai pu espérer...",
+ "Mais, c'est pas très sympa !",
+ "Bravo !"
+ ],
+ "won2": [
+ "Je te l'avais dit !",
+ "Comme si je t'avais pas prévenu !",
+ "J'ai gagné !",
+ "Génial, je l'ai gagnée !",
+ "Et une de plus pour moi !"
+ ],
+ "wall1": [
+ "Ah ah !",
+ "Bah alors, on va pas droit ?",
+ "Ouch",
+ "Ça doit faire mal...",
+ "Splaf, c't'obstacle !"
+ ],
+ "wall2": [
+ "Merde",
+ "Crotte",
+ "Pas possible",
+ "Puti"
+ ],
+ "start": [
+ "Je vais t'éclater !",
+ "Tu vas voir, je vais t'en faire une de ces courses !",
+ "Tu m'en diras des nouvelles",
+ "Allons-y !",
+ "Et, c'est parti !",
+ "Wooo, en avant !"
+ ]
+ },
+ "discord": {
+ "credits": [
+ "En attente",
+ "Dans les crédits"
+ ],
+ "game": [
+ "En jeu",
+ "Mode Solo",
+ "Mode Versus",
+ "En pause"
+ ],
+ "intro": [
+ "En attente",
+ "Sur l'introduction"
+ ],
+ "settings": [
+ "En attente",
+ "Dans les paramètres"
+ ],
+ "win": [
+ "Vient de gagner",
+ "Vient de perdre"
+ ]
+ },
+ "intro": [
+ "Appuyez sur Entrée pour commencer",
+ "Appuyez sur A pour commencer"
+ ],
+ "game": {
+ "credits": {
+ "by": "par"
+ },
+ "gpause": {
+ "title": "Jeu en pause",
+ "continueg": "Continuer",
+ "showhb": "Afficher hitbox",
+ "hidehb": "Masquer hitbox",
+ "quit": "Quitter"
+ }
+ },
+ "menu": {
+ "titles": [
+ "Solo",
+ "Versus",
+ "Options",
+ "Crédits",
+ "Quitter"
+ ],
+ "descriptions": [
+ "Jouer seul et hors ligne contre un robot",
+ "Jouer à deux sur le même écran",
+ "Modifier le zoom et les paramètres",
+ "Afficher la liste des auteurs du jeu",
+ "Fermer le jeu et retourner à"
+ ],
+ "distribute": "Ne pas distribuer"
+ },
+ "settings": {
+ "title": "Options",
+ "back": "Retour",
+ "size": "Taille de l'interface",
+ "music": "Activer la musique",
+ "lang": "Langue",
+ "voice": "Activer la voix",
+ "yes": "oui",
+ "no": "non",
+ "notice": "Les paramètres ne seront appliqués qu'après le redémarrage de Kartik"
+ },
+ "win": {
+ "solo": {
+ "win": "Vous avez gagné !",
+ "lose": "Vous avez perdu !"
+ },
+ "versus": "Joueur 0 a gagné !",
+ "quit": [
+ "Appuyez sur Échap pour quitter",
+ "Appuyez sur B pour quitter"
+ ]
+ },
+ "online": {
+ "menu": {
+ "local": "Local",
+ "online": "En ligne",
+ "dlocal": "Jouer avec un ami sur la même machine",
+ "donline": "Jouer avec un ami sur des machines différentes"
+ },
+ "error": {
+ "connection": "Erreur de communication",
+ "disconnect": "Déconnecté"
+ },
+ "connecting": "Connexion au serveur...",
+ "intro": {
+ "create": "Créer une partie",
+ "pcreate": "Donnez ce code à votre coéquipier pour qu'il se connecte à votre partie :",
+ "join": "Rejoindre une partie",
+ "pjoin": "Entrez le code de votre coéquipier pour rejoindre sa partie :"
+ },
+ "disconnected": "Connexion perdue",
+ "unable": "Impossible de se connecter au serveur",
+ "internal": "Erreur système interne",
+ "loading": "Préparation de la partie...",
+ "discord": "En ligne",
+ "generate": "Chargement du terrain...",
+ "discord2": "Rencontre une erreur",
+ "timeout": "Le délai d'attente a été dépassé",
+ "aborted": "L'autre joueur à quitté la partie",
+ "car0": "Votre voiture",
+ "car1": "Sa voiture"
+ },
+ "stats": {
+ "menu": "Statistiques",
+ "title": "Statistiques sur le jeu",
+ "items": {
+ "times.single": "Temps passé en mode solo",
+ "times.local": "Temps passé en mode local",
+ "times.online": "Temps passé en mode en ligne",
+ "results.wins": "Nombre de parties gagnées",
+ "results.loses": "Nombre de parties perdues",
+ "ingame.walls": "Nombre total de collisions",
+ "ingame.laps": "Nombre total de tours",
+ "ingame.turns": "Nombre total de virages"
+ }
+ },
+ "polymer": {
+ "gpu": "État de support GPU",
+ "gpuShift": "Appuyez sur Shift pour voir plus",
+ "logging": "Nous vous connectons ; vérifiez la fenêtre de votre navigateur Web et autorisez la connexion.",
+ "loginClose": "Vous pouvez maintenant fermer cet onglet ou cette fenêtre et retourner à Kartik.",
+ "gatheringLogin": "Nous vérifions votre compte ; cela peut prendre un moment.",
+ "loginIntro": "Appuyez sur L pour vous connecter",
+ "logout": "L pour vous déconnecter",
+ "ktoLevel": "Niveau",
+ "ktoMaxLevel": "Dieu",
+ "error": [
+ "Impossible de communiquer avec les serveurs",
+ "Vous ne pourrez pas utiliser Kartik Online tant que nous n'arrivons pas à communiquer avec les serveurs.",
+ "Connectez-vous à Internet"
+ ],
+ "updateError": [
+ "Impossible de rechercher les mises à jour",
+ "Nous ne pouvons pas rechercher les mises à jour en ce moment, réessayez plus tard."
+ ],
+ "levelup": [
+ "Niveau supérieur !",
+ "Vous avez atteint le niveau",
+ "et vous gagnez du pouvoir ! Continuez et essayez d'atteindre le niveau maximal."
+ ],
+ "finished": [
+ "Vous avez battu le jeu !",
+ "Fini Kartik ?! Oui. Vous avez atteint le niveau Dieu!"
+ ],
+ "token": [
+ "Déconnecté depuis autre part",
+ "Vous avez été déconnecté de Kartik Online parce que votre session a été terminée depuis autre part."
+ ]
+ }
+}
diff --git a/kartik/lang/it.json b/kartik/lang/it.json
new file mode 100755
index 0000000..4b32d71
--- /dev/null
+++ b/kartik/lang/it.json
@@ -0,0 +1,237 @@
+{
+ "crash": {
+ "title": "Kartik Crash Reporter",
+ "head": "Kartik ha smesso di funzionare",
+ "intro": "Kartik ha incontrato un problema e si \u00e8 fermato inaspettatamente.Abbiamo raccolto informazioni aggiuntive e un rapporto sull'arresto anomalo \u00e8 stato inviato automaticamente agli sviluppatori se eri connesso a Internet.",
+ "report": [
+ "Inoltre, \u00e8 stato creato un rapporto sugli arresti anomalo in \"",
+ "\", in modo da poterlo inviare agli sviluppatori quando si ha accesso a Internet."
+ ],
+ "close": "Chiudi",
+ "reset": "ResetTa Kartik e chiudi"
+ },
+ "updates": {
+ "ok": "Aggiornato",
+ "available": "Aggiornamenti di gioco disponibili",
+ "git": "Esecuzione della versione trunk",
+ "error": "Impossibile verificare la disponibilit\u00e0 di aggiornamenti",
+ "wait": "Controllo della disponibilit\u00e0 di aggiornamenti in...",
+ "warn": [
+ "Gli aggiornamenti sono disponibili",
+ "Scarica la nuova versione di Kartik dal sito ufficiale per beneficiare delle ultime funzionalit\u00e0 e correzioni di bug."
+ ]
+ },
+ "scenario": {
+ "intro": [
+ "Ehi, ciao, questo ti dice una piccola gara?",
+ "Ah, eccoti di nuovo qui! Questo ti dice una piccola gara?",
+ "E se avessimo una piccola gara?",
+ "Andiamo a fare un giro?"
+ ],
+ "ahead1": [
+ "Oh no!",
+ "Accidenti, non \u00e8 possibile!",
+ "Ma non ci andro'...",
+ "Oh...",
+ "Perch\u00e9 tu?"
+ ],
+ "ahead2": [
+ "Ciao ciao ciao",
+ "Questo \u00e8 per me!",
+ "Lo avr\u00f2!",
+ "\u00c8 per me!",
+ "\u00c8 mio!"
+ ],
+ "won1": [
+ "Ben fatto!",
+ "Peccato per me...",
+ "Avrei potuto sperare...",
+ "Ma non \u00e8 molto bello!",
+ "Ben fatto!"
+ ],
+ "won2": [
+ "Te l'avevo detto!",
+ "Come se non ti avessi avvertito!",
+ "Ho vinto!",
+ "Grandioso, l'ho vinto!",
+ "E un altro per me!"
+ ],
+ "wall1": [
+ "Ah ah!",
+ "Beh, allora non andremo dritti?",
+ "ahi",
+ "Deve far male...",
+ "Splaf, \u00e8 un ostacolo!"
+ ],
+ "wall2": [
+ "dannare",
+ "merda",
+ "Assolutamente no",
+ ""
+ ],
+ "start": [
+ "Mi divertir\u00f2 con te!",
+ "Vedrai, ti far\u00f2 una di queste gare!",
+ "Me lo dirai",
+ "Andiamo!",
+ "Ci siamo!",
+ "Wooo, avanti!"
+ ]
+ },
+ "discord": {
+ "credits": [
+ "In sospeso",
+ "Nei crediti"
+ ],
+ "game": [
+ "a rischio",
+ "Modalit\u00e0 Solo",
+ "Modalit\u00e0 rispetto",
+ "Pausa"
+ ],
+ "intro": [
+ "In sospeso",
+ "L'introduzione"
+ ],
+ "settings": [
+ "In sospeso",
+ "Nelle impostazioni"
+ ],
+ "win": [
+ "Appena vinto",
+ "Appena perso"
+ ]
+ },
+ "intro": [
+ "Premere INVIO per iniziare",
+ "Premere A per iniziare"
+ ],
+ "game": {
+ "credits": {
+ "by": "presso"
+ },
+ "gpause": {
+ "title": "Gioco in pausa",
+ "continueg": "continuare",
+ "showhb": "Mostra hitbox",
+ "hidehb": "Nascondi hitbox",
+ "quit": "Lasciare"
+ }
+ },
+ "menu": {
+ "titles": [
+ "assolo",
+ "contro",
+ "Opzioni",
+ "Crediti",
+ "Lasciare"
+ ],
+ "descriptions": [
+ "Gioca da solo e offline contro un robot",
+ "Riproduci due sullo stesso schermo",
+ "Modificare lo zoom e le impostazioni",
+ "Visualizzare l'elenco degli autori di giochi",
+ "Chiudere la partita e tornare a"
+ ],
+ "distribute": "Non distribuire"
+ },
+ "settings": {
+ "title": "Opzioni",
+ "back": "ritorno",
+ "size": "Dimensioni interfaccia",
+ "music": "Attivare la musica",
+ "lang": "lingua",
+ "voice": "Abilitare la voce",
+ "yes": "s\u00ec",
+ "no": "No",
+ "notice": "Le impostazioni verranno applicate solo dopo il riavvio di Kartik"
+ },
+ "win": {
+ "solo": {
+ "win": "Hai vinto!",
+ "lose": "Hai perso!"
+ },
+ "versus": "Giocatore 0 ha vinto!",
+ "quit": [
+ "Premere ESC per uscire",
+ "Premere B per uscire"
+ ]
+ },
+ "online": {
+ "menu": {
+ "local": "locale",
+ "online": "in linea",
+ "dlocal": "Gioca con un amico sulla stessa macchina",
+ "donline": "Gioca con un amico su macchine diverse"
+ },
+ "error": {
+ "connection": "Errore di comunicazione",
+ "disconnect": "sconnesso"
+ },
+ "connecting": "Connessione al server in linea con il server in...",
+ "intro": {
+ "create": "Creare una parte",
+ "pcreate": "Dai questo codice al tuo compagno di squadra per connetterti al tuo gioco:",
+ "join": "Partecipa a una partita",
+ "pjoin": "Inserisci il codice del tuo compagno di squadra per unirti al suo gioco:"
+ },
+ "disconnected": "Connessione persa",
+ "unable": "Impossibile connettersi al server",
+ "internal": "Errore interno del sistema",
+ "loading": "Preparazione della parte...",
+ "discord": "in linea",
+ "generate": "Caricare il terreno...",
+ "discord2": "Rileva un errore",
+ "timeout": "Il timeout \u00e8 stato superato",
+ "aborted": "L'altro giocatore ha lasciato il gioco",
+ "car0": "La tua auto",
+ "car1": "La sua auto"
+ },
+ "stats": {
+ "menu": "statistica",
+ "title": "Statistiche di gioco",
+ "items": {
+ "times.single": "Tempo trascorso in modalit\u00e0 giocatore singolo",
+ "times.local": "Tempo trascorso in modalit\u00e0 locale",
+ "times.online": "Tempo trascorso in modalit\u00e0 online",
+ "results.wins": "Numero di partite vinte",
+ "results.loses": "Numero di partite perse",
+ "ingame.walls": "Numero totale di collisioni",
+ "ingame.laps": "Numero totale di turni",
+ "ingame.turns": "Numero totale di turni"
+ }
+ },
+ "polymer": {
+ "gpu": "Stato supporto GPU",
+ "gpuShift": "Toccare MAIUSC per saperne di pi\u00f9",
+ "logging": "Ti colleghiamo; controllare la finestra del browser Web e consentire la connessione.",
+ "loginClose": "Ora puoi chiudere questa scheda o finestra e tornare a Kartik.",
+ "gatheringLogin": "Verifichiamo il tuo account; potrebbe volere un po'.",
+ "loginIntro": "Premere L per accedere",
+ "logout": "L per disconnettersi",
+ "ktoLevel": "livello",
+ "ktoMaxLevel": "dio",
+ "error": [
+ "Impossibile comunicare con i server",
+ "Non potrai utilizzare Kartik Online fino a quando non saremo in grado di comunicare con i server.",
+ "Connettersi a Internet"
+ ],
+ "updateError": [
+ "Impossibile verificare la disponibilit\u00e0 di aggiornamenti",
+ "Non \u00e8 possibile verificare la disponibilit\u00e0 di aggiornamenti in questo momento, riprovare pi\u00f9 tardi."
+ ],
+ "levelup": [
+ "Di alto livello!",
+ "Hai raggiunto il livello",
+ "e si ottiene il potere! Vai avanti e cerca di raggiungere il livello massimo."
+ ],
+ "finished": [
+ "Hai battuto la partita!",
+ "Niente pi\u00f9 Kartik?! s\u00ec. Avete raggiunto il livello di Dio!"
+ ],
+ "token": [
+ "Disconnesso da altrove",
+ "Sei stato disconnesso da Kartik Online perch\u00e9 la tua sessione \u00e8 terminata da altrove."
+ ]
+ }
+} \ No newline at end of file
diff --git a/kartik/lang/jp.json b/kartik/lang/jp.json
new file mode 100755
index 0000000..ca98eb7
--- /dev/null
+++ b/kartik/lang/jp.json
@@ -0,0 +1,237 @@
+{
+ "crash": {
+ "title": "Kartik\u30af\u30e9\u30c3\u30b7\u30e5\u30ec\u30dd\u30fc\u30bf\u30fc",
+ "head": "Kartik\u306f\u52d5\u4f5c\u3092\u505c\u6b62\u3057\u307e\u3057\u305f",
+ "intro": "Kartik\u306f\u554f\u984c\u306b\u906d\u9047\u3057\u3001\u4e88\u671f\u305b\u305a\u505c\u6b62\u3057\u307e\u3057\u305f\u3002",
+ "report": [
+ "\u3055\u3089\u306b\u3001\u30af\u30e9\u30c3\u30b7\u30e5\u30ec\u30dd\u30fc\u30c8\u306f\u300c",
+ "\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3068\u304d\u306b\u958b\u767a\u8005\u306b\u9001\u4fe1\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002"
+ ],
+ "close": "\u9589\u3058\u308b\u306b\u306f",
+ "reset": "Kartik\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u3066\u9589\u3058\u307e\u3059"
+ },
+ "updates": {
+ "ok": "\u6700\u65b0\u306e",
+ "available": "\u5229\u7528\u53ef\u80fd\u306a\u30b2\u30fc\u30e0\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8",
+ "git": "\u30c8\u30e9\u30f3\u30af\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u5b9f\u884c",
+ "error": "\u66f4\u65b0\u3092\u78ba\u8a8d\u3067\u304d\u307e\u305b\u3093",
+ "wait": "\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306e\u78ba\u8a8d ...",
+ "warn": [
+ "\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u304c\u5229\u7528\u53ef\u80fd\u3067\u3059",
+ "\u6700\u65b0\u306e\u6a5f\u80fd\u3068\u30d0\u30b0\u4fee\u6b63\u3092\u5229\u7528\u3059\u308b\u306b\u306f\u3001\u516c\u5f0fWeb\u30b5\u30a4\u30c8\u304b\u3089\u65b0\u3057\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u306eKartik\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002"
+ ]
+ },
+ "scenario": {
+ "intro": [
+ "\u306d\u3048\u3001\u3053\u3093\u306b\u3061\u306f\u3001\u30af\u30a4\u30c3\u30af\u30e9\u30f3\u306f\u3069\u3046\u3067\u3059\u304b\uff1f",
+ "\u3042\u3042\u3001\u307e\u305f\u3044\u308b\u3088\uff01",
+ "\u3061\u3087\u3063\u3068\u3057\u305f\u30ec\u30fc\u30b9\u306f\u3044\u304b\u304c\u3067\u3059\u304b\uff1f",
+ "\u6563\u6b69\u3057\u307e\u305b\u3093\u304b\uff1f"
+ ],
+ "ahead1": [
+ "\u5927\u91ce \uff01",
+ "\u304f\u305d\u30fc\u3001\u305d\u308c\u306f\u4e0d\u53ef\u80fd\u3067\u3059\uff01",
+ "\u3057\u304b\u3057\u3001\u79c1\u306f\u305d\u3053\u306b\u884c\u304f\u3064\u3082\u308a\u306f\u3042\u308a\u307e\u305b\u3093...",
+ "\u305d\u3057\u3066\u305f\u308f\u3054\u3068...",
+ "\u306a\u305c\u3042\u306a\u305f\u306f\uff1f"
+ ],
+ "ahead2": [
+ "\u30d2\u30d2\u30d2\u30d2",
+ "\u3053\u308c\u306f\u79c1\u306e\u305f\u3081\u3067\u3059\uff01",
+ "\u6301\u3063\u3066\u3044\u304d\u307e\u3059\uff01",
+ "\u305d\u308c\u306f\u79c1\u306e\u305f\u3081\u3067\u3059\uff01",
+ "\u305d\u308c\u306f\u79c1\u306e\u3082\u306e\u3067\u3059\uff01"
+ ],
+ "won1": [
+ "\u826f\u3044\u30b2\u30fc\u30e0\u3067\u3059\uff01",
+ "\u79c1\u306b\u306f\u6b8b\u5ff5\u3067\u3059...",
+ "\u79c1\u306f\u671b\u3093\u3060\u304b\u3082\u3057\u308c\u306a\u3044...",
+ "\u3057\u304b\u3057\u3001\u305d\u308c\u306f\u3042\u307e\u308a\u3044\u3044\u3053\u3068\u3067\u306f\u3042\u308a\u307e\u305b\u3093\uff01",
+ "\u7d20\u6674\u3089\u3057\u3044 \uff01"
+ ],
+ "won2": [
+ "\u5148\u307b\u3069\u3082\u8a00\u3044\u307e\u3057\u305f \uff01",
+ "\u79c1\u304c\u3042\u306a\u305f\u306b\u8b66\u544a\u3057\u306a\u304b\u3063\u305f\u304b\u306e\u3088\u3046\u306b\uff01",
+ "\u52dd\u3063\u305f \uff01",
+ "\u7d20\u6674\u3089\u3057\u3044\u3001\u79c1\u306f\u305d\u308c\u3092\u52dd\u3061\u53d6\u308a\u307e\u3057\u305f\uff01",
+ "\u305d\u3057\u3066\u79c1\u306e\u305f\u3081\u306b\u3082\u30461\u3064\uff01"
+ ],
+ "wall1": [
+ "\u3042\u3042\u3042\u3042\uff01",
+ "\u305d\u308c\u3067\u306f\u3001\u79c1\u305f\u3061\u306f\u6b63\u3057\u304f\u884c\u304b\u306a\u3044\u306e\u3067\u3059\u304b\uff1f",
+ "\u75db\u3044",
+ "\u75db\u3044\u306b\u9055\u3044\u306a\u3044...",
+ "Splaf\u3001c't'obstacle\uff01"
+ ],
+ "wall2": [
+ "\u305f\u308f\u3054\u3068",
+ "\u3046\u3093\u3053",
+ "\u3042\u308a\u3048\u306a\u3044",
+ "\u30d7\u30c6\u30a3"
+ ],
+ "start": [
+ "\u697d\u3057\u307f\u307e\u3059\uff01",
+ "\u3042\u306a\u305f\u304c\u898b\u308b\u3067\u3057\u3087\u3046\u3001\u79c1\u306f\u3042\u306a\u305f\u3092\u305d\u308c\u3089\u306e\u30ec\u30fc\u30b9\u306e1\u3064\u306b\u3057\u307e\u3059\uff01",
+ "\u30cb\u30e5\u30fc\u30b9\u3092\u6559\u3048\u3066\u304f\u3060\u3055\u3044",
+ "\u3055\u3042\u884c\u3053\u3046\uff01",
+ "\u3069\u3046\u305e \uff01",
+ "\u3046\u308f\u30fc\u3001\u30d5\u30a9\u30ef\u30fc\u30c9\uff01"
+ ]
+ },
+ "discord": {
+ "credits": [
+ "\u5f85\u3063\u3066\u3044\u308b",
+ "\u30af\u30ec\u30b8\u30c3\u30c8\u3067"
+ ],
+ "game": [
+ "\u30b9\u30c6\u30fc\u30af\u30b9",
+ "\u30bd\u30ed\u30e2\u30fc\u30c9",
+ "\u5bfe\u30e2\u30fc\u30c9",
+ "\u4f11\u3093\u3067"
+ ],
+ "intro": [
+ "\u5f85\u3063\u3066\u3044\u308b",
+ "\u7d39\u4ecb\u306b\u3064\u3044\u3066"
+ ],
+ "settings": [
+ "\u5f85\u3063\u3066\u3044\u308b",
+ "\u8a2d\u5b9a\u3067"
+ ],
+ "win": [
+ "\u52dd\u3063\u305f\u3070\u304b\u308a",
+ "\u8ca0\u3051\u305f\u3070\u304b\u308a"
+ ]
+ },
+ "intro": [
+ "Enter\u30ad\u30fc\u3092\u62bc\u3057\u3066\u958b\u59cb\u3057\u307e\u3059",
+ "A\u3092\u62bc\u3057\u3066\u958b\u59cb\u3057\u307e\u3059"
+ ],
+ "game": {
+ "credits": {
+ "by": "\u306b"
+ },
+ "gpause": {
+ "title": "\u30b2\u30fc\u30e0\u304c\u4e00\u6642\u505c\u6b62\u3057\u307e\u3057\u305f",
+ "continueg": "\u7d9a\u3051\u308b",
+ "showhb": "\u30d2\u30c3\u30c8\u30dc\u30c3\u30af\u30b9\u3092\u8868\u793a",
+ "hidehb": "\u30d2\u30c3\u30c8\u30dc\u30c3\u30af\u30b9\u3092\u975e\u8868\u793a",
+ "quit": "\u53bb\u308b\u306b\u306f"
+ }
+ },
+ "menu": {
+ "titles": [
+ "\u30bd\u30ed",
+ "\u5bfe",
+ "\u30aa\u30d7\u30b7\u30e7\u30f3",
+ "\u30af\u30ec\u30b8\u30c3\u30c8",
+ "\u53bb\u308b\u306b\u306f"
+ ],
+ "descriptions": [
+ "\u30ed\u30dc\u30c3\u30c8\u306b\u5bfe\u3057\u3066\u4e00\u4eba\u3067\u30aa\u30d5\u30e9\u30a4\u30f3\u3067\u904a\u3076",
+ "\u540c\u3058\u753b\u9762\u30672\u3064\u518d\u751f\u3059\u308b",
+ "\u30ba\u30fc\u30e0\u3068\u8a2d\u5b9a\u3092\u5909\u66f4\u3059\u308b",
+ "\u30b2\u30fc\u30e0\u306e\u4f5c\u8005\u306e\u30ea\u30b9\u30c8\u3092\u8868\u793a\u3059\u308b",
+ "\u30b2\u30fc\u30e0\u3092\u9589\u3058\u3066\u3001\u306b\u623b\u308a\u307e\u3059"
+ ],
+ "distribute": "\u914d\u5e03\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044"
+ },
+ "settings": {
+ "title": "\u30aa\u30d7\u30b7\u30e7\u30f3",
+ "back": "\u623b\u308b",
+ "size": "\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u30b5\u30a4\u30ba",
+ "music": "\u97f3\u697d\u3092\u30a2\u30af\u30c6\u30a3\u30d6\u306b\u3059\u308b",
+ "lang": "\u820c",
+ "voice": "\u97f3\u58f0\u3092\u30a2\u30af\u30c6\u30a3\u30d6\u306b\u3059\u308b",
+ "yes": "\u306f\u3044",
+ "no": "\u3044\u3044\u3048",
+ "notice": "\u8a2d\u5b9a\u306f\u3001Kartik\u3092\u518d\u8d77\u52d5\u3057\u305f\u5f8c\u306b\u306e\u307f\u9069\u7528\u3055\u308c\u307e\u3059"
+ },
+ "win": {
+ "solo": {
+ "win": "\u3042\u306a\u305f\u306f\u52dd\u3061\u307e\u3057\u305f\uff01",
+ "lose": "\u3042\u306a\u305f\u304c\u8ca0\u3051\u305f \uff01"
+ },
+ "versus": "\u30d7\u30ec\u30a4\u30e4\u30fc0\u304c\u52dd\u3061\u307e\u3057\u305f\uff01",
+ "quit": [
+ "Esc\u30ad\u30fc\u3092\u62bc\u3057\u3066\u7d42\u4e86\u3057\u307e\u3059",
+ "B\u3092\u62bc\u3057\u3066\u7d42\u4e86\u3057\u307e\u3059"
+ ]
+ },
+ "online": {
+ "menu": {
+ "local": "\u30ed\u30fc\u30ab\u30eb",
+ "online": "\u5217\u3092\u306a\u3057\u3066",
+ "dlocal": "\u540c\u3058\u30de\u30b7\u30f3\u3067\u53cb\u9054\u3068\u904a\u3076",
+ "donline": "\u5225\u306e\u30de\u30b7\u30f3\u3067\u53cb\u9054\u3068\u904a\u3076"
+ },
+ "error": {
+ "connection": "\u30b3\u30df\u30e5\u30cb\u30b1\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc",
+ "disconnect": "\u5207\u65ad\u3055\u308c\u307e\u3057\u305f"
+ },
+ "connecting": "\u30b5\u30fc\u30d0\u30fc\u3078\u306e\u63a5\u7d9a...",
+ "intro": {
+ "create": "\u30b2\u30fc\u30e0\u3092\u4f5c\u6210\u3059\u308b",
+ "pcreate": "\u3053\u306e\u30b3\u30fc\u30c9\u3092\u30c1\u30fc\u30e0\u30e1\u30a4\u30c8\u306b\u6e21\u3057\u3066\u3001\u30b2\u30fc\u30e0\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3059\u3002",
+ "join": "\u30b2\u30fc\u30e0\u306b\u53c2\u52a0\u3059\u308b",
+ "pjoin": "\u30c1\u30fc\u30e0\u30e1\u30a4\u30c8\u306e\u30b3\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u3001\u30b2\u30fc\u30e0\u306b\u53c2\u52a0\u3057\u307e\u3059\u3002"
+ },
+ "disconnected": "\u63a5\u7d9a\u5207\u65ad",
+ "unable": "\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093",
+ "internal": "\u5185\u90e8\u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc",
+ "loading": "\u30b2\u30fc\u30e0\u306e\u6e96\u5099..\u3002",
+ "discord": "\u5217\u3092\u306a\u3057\u3066",
+ "generate": "\u571f\u5730\u306e\u8aad\u307f\u8fbc\u307f..\u3002",
+ "discord2": "\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f",
+ "timeout": "\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3092\u8d85\u3048\u307e\u3057\u305f",
+ "aborted": "\u4ed6\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u304c\u30b2\u30fc\u30e0\u3092\u96e2\u308c\u307e\u3057\u305f",
+ "car0": "\u3042\u306a\u305f\u306e\u8eca",
+ "car1": "\u5f7c\u306e\u8eca"
+ },
+ "stats": {
+ "menu": "\u7d71\u8a08",
+ "title": "\u30b2\u30fc\u30e0\u7d71\u8a08",
+ "items": {
+ "times.single": "\u30b7\u30f3\u30b0\u30eb\u30d7\u30ec\u30a4\u30e4\u30fc\u30e2\u30fc\u30c9\u3067\u8cbb\u3084\u3057\u305f\u6642\u9593",
+ "times.local": "\u30ed\u30fc\u30ab\u30eb\u30e2\u30fc\u30c9\u3067\u8cbb\u3084\u3057\u305f\u6642\u9593",
+ "times.online": "\u30aa\u30f3\u30e9\u30a4\u30f3\u30e2\u30fc\u30c9\u3067\u8cbb\u3084\u3057\u305f\u6642\u9593",
+ "results.wins": "\u52dd\u3063\u305f\u30b2\u30fc\u30e0\u306e\u6570",
+ "results.loses": "\u5931\u308f\u308c\u305f\u30b2\u30fc\u30e0\u306e\u6570",
+ "ingame.walls": "\u885d\u7a81\u306e\u7dcf\u6570",
+ "ingame.laps": "\u7dcf\u5468\u56de\u6570",
+ "ingame.turns": "\u7dcf\u30bf\u30fc\u30f3\u6570"
+ }
+ },
+ "polymer": {
+ "gpu": "GPU\u30b5\u30dd\u30fc\u30c8\u30b9\u30c6\u30fc\u30bf\u30b9",
+ "gpuShift": "Shift\u30ad\u30fc\u3092\u62bc\u3057\u3066\u3001\u8a73\u7d30\u3092\u8868\u793a\u3057\u307e\u3059",
+ "logging": "\u79c1\u305f\u3061\u306f\u3042\u306a\u305f\u3092\u3064\u306a\u304e\u307e\u3059\u3002 ",
+ "loginClose": "\u3053\u308c\u3067\u3001\u3053\u306e\u30bf\u30d6\u307e\u305f\u306f\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u3066\u3001Kartik\u306b\u623b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002",
+ "gatheringLogin": "\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002",
+ "loginIntro": "L\u3092\u62bc\u3057\u3066\u63a5\u7d9a\u3057\u307e\u3059",
+ "logout": "\u30ed\u30b0\u30a2\u30a6\u30c8\u3059\u308bL",
+ "ktoLevel": "\u30ec\u30d9\u30eb",
+ "ktoMaxLevel": "\u795e\u69d8",
+ "error": [
+ "\u30b5\u30fc\u30d0\u30fc\u3068\u901a\u4fe1\u3067\u304d\u307e\u305b\u3093",
+ "\u30b5\u30fc\u30d0\u30fc\u3068\u901a\u4fe1\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u307e\u3067\u3001KartikOnline\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",
+ "\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u63a5\u7d9a\u3059\u308b"
+ ],
+ "updateError": [
+ "\u66f4\u65b0\u3092\u78ba\u8a8d\u3067\u304d\u307e\u305b\u3093",
+ "\u73fe\u5728\u3001\u66f4\u65b0\u3092\u78ba\u8a8d\u3067\u304d\u307e\u305b\u3093\u3002\u3057\u3070\u3089\u304f\u3057\u3066\u304b\u3089\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002"
+ ],
+ "levelup": [
+ "\u3088\u308a\u9ad8\u3044\u30ec\u30d9\u30eb\uff01",
+ "\u30ec\u30d9\u30eb\u306b\u9054\u3057\u307e\u3057\u305f",
+ "\u305d\u3057\u3066\u3042\u306a\u305f\u306f\u529b\u3092\u5f97\u308b\uff01"
+ ],
+ "finished": [
+ "\u3042\u306a\u305f\u306f\u30b2\u30fc\u30e0\u306b\u52dd\u3061\u307e\u3057\u305f\uff01",
+ "\u5b8c\u6210\u3057\u305fKartik \uff1f\uff01"
+ ],
+ "token": [
+ "\u4ed6\u306e\u5834\u6240\u304b\u3089\u5207\u65ad\u3055\u308c\u307e\u3057\u305f",
+ "\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u4ed6\u306e\u5834\u6240\u3067\u7d42\u4e86\u3057\u305f\u305f\u3081\u3001KartikOnline\u304b\u3089\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\u307e\u3057\u305f\u3002"
+ ]
+ }
+} \ No newline at end of file
diff --git a/kartik/lang/languages.json b/kartik/lang/languages.json
new file mode 100755
index 0000000..7cdf3f6
--- /dev/null
+++ b/kartik/lang/languages.json
@@ -0,0 +1,12 @@
+{
+ "en": "English",
+ "fr": "Français",
+ "es": "Español",
+ "it": "Italiano",
+ "pt": "Português",
+ "de": "Deutsch",
+ "nl": "Nederlands",
+ "zh": "中国人",
+ "jp": "日本語",
+ "ru": "русский"
+}
diff --git a/kartik/lang/loader.js b/kartik/lang/loader.js
new file mode 100755
index 0000000..dff903a
--- /dev/null
+++ b/kartik/lang/loader.js
@@ -0,0 +1,28 @@
+function getCookie(cname) {
+ var name = cname + "=";
+ var decodedCookie = decodeURIComponent(document.cookie);
+ var ca = decodedCookie.split(';');
+ for(var i = 0; i <ca.length; i++) {
+ var c = ca[i];
+ while (c.charAt(0) == ' ') {
+ c = c.substring(1);
+ }
+ if (c.indexOf(name) == 0) {
+ return c.substring(name.length, c.length);
+ }
+ }
+ return "";
+}
+
+if (getCookie("kartik_lang").trim() === "") {
+ document.cookie = "kartik_lang=en; path=/";
+}
+
+try {
+ global.lp = getCookie("kartik_lang");
+ global.lang = JSON.parse($.ajax("/kartik/lang/" + lp + ".json", { async: false }).responseText);
+} catch (e) {
+ console.error(e);
+ global.lp = "en";
+ global.lang = JSON.parse($.ajax("/kartik/lang/" + lp + ".json", { async: false }).responseText);
+} \ No newline at end of file
diff --git a/kartik/lang/nl.json b/kartik/lang/nl.json
new file mode 100755
index 0000000..916f382
--- /dev/null
+++ b/kartik/lang/nl.json
@@ -0,0 +1,237 @@
+{
+ "crash": {
+ "title": "Kartik Crash Reporter",
+ "head": "Kartik werkt niet meer",
+ "intro": "Kartik ondervond een probleem en stopte onverwachts. ",
+ "report": [
+ "Bovendien is er een crashrapport gemaakt in \"",
+ "Zodat je het naar de ontwikkelaars kunt sturen als je internettoegang hebt."
+ ],
+ "close": "sluiten",
+ "reset": "Reset Kartik en sluit"
+ },
+ "updates": {
+ "ok": "Bijgewerkt",
+ "available": "Game-updates beschikbaar",
+ "git": "De kofferbakversie uitvoeren",
+ "error": "Kan niet controleren op updates",
+ "wait": "Controleren op updates...",
+ "warn": [
+ "Updates zijn beschikbaar",
+ "Download de nieuwe versie van Kartik van de offici\u00eble website om te profiteren van de nieuwste functies en bugfixes."
+ ]
+ },
+ "scenario": {
+ "intro": [
+ "H\u00e9, hoi, wat dacht je van een snelle run?",
+ "Aha, daar ben je weer! ",
+ "Zullen we een beetje racen?",
+ "Zullen we gaan wandelen?"
+ ],
+ "ahead1": [
+ "Oh nee !",
+ "Verdomme, dat kan niet!",
+ "Maar ik kom er niet...",
+ "En shit...",
+ "Waarom jij ?"
+ ],
+ "ahead2": [
+ "Hee hee hee",
+ "Deze is voor mij!",
+ "Ik zal het hebben !",
+ "Het is voor mij!",
+ "Het is van mij !"
+ ],
+ "won1": [
+ "Goed spel !",
+ "Jammer voor mij...",
+ "Ik had kunnen hopen...",
+ "Maar, het is niet erg leuk!",
+ "Goed gedaan !"
+ ],
+ "won2": [
+ "Ik zei het je !",
+ "Alsof ik je niet gewaarschuwd had!",
+ "Ik won !",
+ "Super, ik heb hem gewonnen!",
+ "En nog eentje voor mij!"
+ ],
+ "wall1": [
+ "Ach ach!",
+ "Nou, gaan we dan niet goed?",
+ "Ouch",
+ "Het moet pijn doen...",
+ "Splaf, geen obstakel!"
+ ],
+ "wall2": [
+ "Shit",
+ "Poep",
+ "Niet mogelijk",
+ "Zet ik"
+ ],
+ "start": [
+ "Ik zal plezier hebben!",
+ "Je zult zien, ik zal je een van die races maken!",
+ "Vertel me nieuws",
+ "Laten we gaan!",
+ "Daar gaan we !",
+ "Wauw, vooruit!"
+ ]
+ },
+ "discord": {
+ "credits": [
+ "Aan het wachten",
+ "In de aftiteling"
+ ],
+ "game": [
+ "Inzetten",
+ "Solo-modus",
+ "Versus-modus",
+ "op pauze"
+ ],
+ "intro": [
+ "Aan het wachten",
+ "Over de introductie"
+ ],
+ "settings": [
+ "Aan het wachten",
+ "In de instellingen"
+ ],
+ "win": [
+ "Zojuist gewonnen",
+ "Net verloren"
+ ]
+ },
+ "intro": [
+ "Druk op enter om te beginnen",
+ "Druk op A om te beginnen"
+ ],
+ "game": {
+ "credits": {
+ "by": "door"
+ },
+ "gpause": {
+ "title": "Spel gepauzeerd",
+ "continueg": "doorgaan",
+ "showhb": "Toon hitbox",
+ "hidehb": "Hitbox verbergen",
+ "quit": "Verlaten"
+ }
+ },
+ "menu": {
+ "titles": [
+ "Solo",
+ "Versus",
+ "Opties",
+ "Credits",
+ "Verlaten"
+ ],
+ "descriptions": [
+ "Speel alleen en offline tegen een robot",
+ "Speel twee op hetzelfde scherm",
+ "Zoom en instellingen wijzigen",
+ "Toon de lijst met game-auteurs",
+ "Sluit het spel en keer terug naar"
+ ],
+ "distribute": "Niet distribueren"
+ },
+ "settings": {
+ "title": "Opties",
+ "back": "Opbrengst",
+ "size": "Interfacegrootte:",
+ "music": "Muziek activeren",
+ "lang": "Tong",
+ "voice": "Stem activeren",
+ "yes": "Ja",
+ "no": "Neen",
+ "notice": "De instellingen worden pas toegepast nadat Kartik . opnieuw is opgestart"
+ },
+ "win": {
+ "solo": {
+ "win": "Je hebt gewonnen !",
+ "lose": "Je hebt verloren!"
+ },
+ "versus": "Speler 0 heeft gewonnen!",
+ "quit": [
+ "Druk op Esc om af te sluiten",
+ "Druk op B om af te sluiten"
+ ]
+ },
+ "online": {
+ "menu": {
+ "local": "lokaal",
+ "online": "In lijn",
+ "dlocal": "Speel met een vriend op dezelfde machine",
+ "donline": "Speel met een vriend op verschillende machines"
+ },
+ "error": {
+ "connection": "Communicatie fout",
+ "disconnect": "Verbinding verbroken"
+ },
+ "connecting": "Verbinding met de server...",
+ "intro": {
+ "create": "Maak een spel",
+ "pcreate": "Geef deze code aan je teamgenoot om in te loggen op je game:",
+ "join": "Doe mee aan een spel",
+ "pjoin": "Voer de code van je teamgenoot in om deel te nemen aan hun spel:"
+ },
+ "disconnected": "Verbinding verbroken",
+ "unable": "Onmogelijk om verbinding te maken met de server",
+ "internal": "Interne systeemfout",
+ "loading": "Voorbereiden op het spel...",
+ "discord": "In lijn",
+ "generate": "Het land laden...",
+ "discord2": "Er is een fout opgetreden",
+ "timeout": "De time-out is overschreden",
+ "aborted": "De andere speler heeft het spel verlaten",
+ "car0": "Jouw auto",
+ "car1": "Zijn auto"
+ },
+ "stats": {
+ "menu": "Statistieken",
+ "title": "Spelstatistieken",
+ "items": {
+ "times.single": "Tijd doorgebracht in de modus voor \u00e9\u00e9n speler",
+ "times.local": "Tijd doorgebracht in lokale modus",
+ "times.online": "Tijd doorgebracht in online modus",
+ "results.wins": "Aantal gewonnen games",
+ "results.loses": "Aantal verloren games",
+ "ingame.walls": "Totaal aantal botsingen",
+ "ingame.laps": "Totaal aantal ronden",
+ "ingame.turns": "Totaal aantal beurten"
+ }
+ },
+ "polymer": {
+ "gpu": "GPU-ondersteuningsstatus",
+ "gpuShift": "Druk op Shift om meer te zien",
+ "logging": "Wij verbinden u; ",
+ "loginClose": "U kunt dit tabblad of venster nu sluiten en terugkeren naar Kartik.",
+ "gatheringLogin": "Wij verifi\u00ebren uw account; ",
+ "loginIntro": "Druk op L om verbinding te maken",
+ "logout": "L om uit te loggen",
+ "ktoLevel": "Niveau",
+ "ktoMaxLevel": "God",
+ "error": [
+ "Kan niet communiceren met servers",
+ "U kunt Kartik Online pas gebruiken als we met de servers kunnen communiceren.",
+ "Verbinden met het internet"
+ ],
+ "updateError": [
+ "Kan niet controleren op updates",
+ "We kunnen momenteel niet op updates controleren. Probeer het later opnieuw."
+ ],
+ "levelup": [
+ "Hoger level !",
+ "Je hebt het niveau bereikt",
+ "en je krijgt kracht! "
+ ],
+ "finished": [
+ "Je hebt het spel verslagen!",
+ "Afgewerkt Kartik?! "
+ ],
+ "token": [
+ "Losgekoppeld van elders",
+ "U bent uitgelogd bij Kartik Online omdat uw sessie ergens anders is be\u00ebindigd."
+ ]
+ }
+} \ No newline at end of file
diff --git a/kartik/lang/preload.js b/kartik/lang/preload.js
new file mode 100755
index 0000000..5fbaa65
--- /dev/null
+++ b/kartik/lang/preload.js
@@ -0,0 +1,2 @@
+global.lp = win.lp;
+global.lang = JSON.parse(require('fs').readFileSync("./lang/" + lp + ".json")); \ No newline at end of file
diff --git a/kartik/lang/pt.json b/kartik/lang/pt.json
new file mode 100755
index 0000000..7c144e7
--- /dev/null
+++ b/kartik/lang/pt.json
@@ -0,0 +1,237 @@
+{
+ "crash": {
+ "title": "Kartik Crash Reporter",
+ "head": "Kartik parou de trabalhar.",
+ "intro": "Kartik teve um problema e parou inesperadamente.Coletamos informa\u00e7\u00f5es adicionais, e um relat\u00f3rio de falha foi enviado automaticamente aos desenvolvedores se voc\u00ea estivesse conectado \u00e0 Internet.",
+ "report": [
+ "Al\u00e9m disso, um relat\u00f3rio de acidente foi criado em \"",
+ "\", para que voc\u00ea possa envi\u00e1-lo para desenvolvedores quando voc\u00ea tiver acesso \u00e0 Internet."
+ ],
+ "close": "fechar",
+ "reset": "Redefinir Kartik e fechar"
+ },
+ "updates": {
+ "ok": "Atualizado",
+ "available": "Atualiza\u00e7\u00f5es de jogos dispon\u00edveis",
+ "git": "Executando a vers\u00e3o do porta-malas",
+ "error": "N\u00e3o \u00e9 poss\u00edvel verificar se h\u00e1 atualiza\u00e7\u00f5es",
+ "wait": "Procurando atualiza\u00e7\u00f5es...",
+ "warn": [
+ "Atualiza\u00e7\u00f5es est\u00e3o dispon\u00edveis",
+ "Baixe a nova vers\u00e3o de Kartik no site oficial para se beneficiar dos recursos mais recentes e corre\u00e7\u00f5es de bugs."
+ ]
+ },
+ "scenario": {
+ "intro": [
+ "Ei, oi, isso te diz uma pequena corrida?",
+ "Ah, aqui est\u00e1 voc\u00ea de novo! Isso te diz uma pequena corrida?",
+ "E se tiv\u00e9ssemos uma pequena corrida?",
+ "Vamos dar uma volta?"
+ ],
+ "ahead1": [
+ "Ah, n\u00e3o!",
+ "Droga, n\u00e3o \u00e9 poss\u00edvel!",
+ "Mas eu n\u00e3o vou chegar l\u00e1...",
+ "ah...",
+ "Por que voc\u00ea?"
+ ],
+ "ahead2": [
+ "Oi oi oi",
+ "Este \u00e9 para mim!",
+ "Eu vou t\u00ea-lo!",
+ "\u00c9 para mim!",
+ "\u00c9 meu!"
+ ],
+ "won1": [
+ "Muito bem!",
+ "Muito ruim para mim...",
+ "Eu poderia ter esperado...",
+ "Mas n\u00e3o \u00e9 muito agrad\u00e1vel!",
+ "Muito bem!"
+ ],
+ "won2": [
+ "Eu te avisei!",
+ "Como se eu n\u00e3o tivesse avisado voc\u00ea!",
+ "Eu ganhei!",
+ "\u00d3timo, eu ganhei!",
+ "E mais um para mim!"
+ ],
+ "wall1": [
+ "Ah ah!",
+ "Bem, ent\u00e3o, n\u00e3o vamos direto?",
+ "ai",
+ "Deve doer...",
+ "Splaf, \u00e9 um obst\u00e1culo!"
+ ],
+ "wall2": [
+ "droga",
+ "porcaria",
+ "De maneira nenhuma",
+ ""
+ ],
+ "start": [
+ "Vou me divertir com voc\u00ea!",
+ "Voc\u00ea vai ver, eu vou fazer de voc\u00ea uma dessas corridas!",
+ "Voc\u00ea vai me falar sobre isso.",
+ "Vamos!",
+ "Aqui vamos n\u00f3s!",
+ "Wooo, para a frente!"
+ ]
+ },
+ "discord": {
+ "credits": [
+ "pendente",
+ "Nos cr\u00e9ditos"
+ ],
+ "game": [
+ "em risco",
+ "Modo Solo",
+ "Modo Versus",
+ "Pausado"
+ ],
+ "intro": [
+ "pendente",
+ "A introdu\u00e7\u00e3o"
+ ],
+ "settings": [
+ "pendente",
+ "Nas configura\u00e7\u00f5es"
+ ],
+ "win": [
+ "Acabou de ganhar.",
+ "Acabou de perder"
+ ]
+ },
+ "intro": [
+ "Pressione Enter para come\u00e7ar",
+ "Pressione A para come\u00e7ar"
+ ],
+ "game": {
+ "credits": {
+ "by": "por"
+ },
+ "gpause": {
+ "title": "Jogo pausado",
+ "continueg": "continuar",
+ "showhb": "Show hitbox",
+ "hidehb": "Ocultar caixa de sucesso",
+ "quit": "Sair"
+ }
+ },
+ "menu": {
+ "titles": [
+ "solo",
+ "contra",
+ "Op\u00e7\u00f5es",
+ "Cr\u00e9ditos",
+ "Sair"
+ ],
+ "descriptions": [
+ "Jogue sozinho e offline contra um rob\u00f4",
+ "Jogue dois na mesma tela",
+ "Alterar zoom e configura\u00e7\u00f5es",
+ "Veja a lista de autores de jogos",
+ "Feche o jogo e volte para"
+ ],
+ "distribute": "N\u00e3o distribua"
+ },
+ "settings": {
+ "title": "Op\u00e7\u00f5es",
+ "back": "retornar",
+ "size": "Tamanho da interface",
+ "music": "Ligue a m\u00fasica",
+ "lang": "l\u00edngua",
+ "voice": "Habilitar a voz",
+ "yes": "sim",
+ "no": "N\u00e3o",
+ "notice": "As configura\u00e7\u00f5es s\u00f3 ser\u00e3o aplicadas ap\u00f3s a reinicializa\u00e7\u00e3o do Kartik"
+ },
+ "win": {
+ "solo": {
+ "win": "Voc\u00ea ganhou!",
+ "lose": "Voc\u00ea perdeu!"
+ },
+ "versus": "Jogador 0 ganhou!",
+ "quit": [
+ "Pressione A Esc para sair",
+ "Pressione B para sair"
+ ]
+ },
+ "online": {
+ "menu": {
+ "local": "local",
+ "online": "online",
+ "dlocal": "Brinque com um amigo na mesma m\u00e1quina",
+ "donline": "Brinque com um amigo em diferentes m\u00e1quinas"
+ },
+ "error": {
+ "connection": "Erro de comunica\u00e7\u00e3o",
+ "disconnect": "Desconectado"
+ },
+ "connecting": "Conectando-se ao servidor...",
+ "intro": {
+ "create": "Crie uma pe\u00e7a",
+ "pcreate": "D\u00ea este c\u00f3digo ao seu companheiro de equipe para se conectar ao seu jogo:",
+ "join": "Participe de um jogo",
+ "pjoin": "Digite o c\u00f3digo do seu companheiro de equipe para participar do jogo dele:"
+ },
+ "disconnected": "Conex\u00e3o perdida",
+ "unable": "Incapaz de se conectar ao servidor",
+ "internal": "Erro interno do sistema",
+ "loading": "Prepara\u00e7\u00e3o da pe\u00e7a...",
+ "discord": "online",
+ "generate": "Carregando a terra...",
+ "discord2": "Encontra um erro",
+ "timeout": "O tempo limite foi excedido",
+ "aborted": "O outro jogador deixou o jogo.",
+ "car0": "Seu carro",
+ "car1": "O carro dele."
+ },
+ "stats": {
+ "menu": "estat\u00edstica",
+ "title": "Estat\u00edsticas do jogo",
+ "items": {
+ "times.single": "Tempo gasto no modo single player",
+ "times.local": "Tempo gasto no modo local",
+ "times.online": "Tempo gasto no modo online",
+ "results.wins": "N\u00famero de jogos ganhos",
+ "results.loses": "N\u00famero de jogos perdidos",
+ "ingame.walls": "N\u00famero total de colis\u00f5es",
+ "ingame.laps": "N\u00famero total de rodadas",
+ "ingame.turns": "N\u00famero total de curvas"
+ }
+ },
+ "polymer": {
+ "gpu": "Status de suporte a GPU",
+ "gpuShift": "Toque em Shift para ver mais",
+ "logging": "N\u00f3s conectamos voc\u00ea; verifique a janela do seu navegador da Web e permita a conex\u00e3o.",
+ "loginClose": "Agora voc\u00ea pode fechar esta guia ou janela e retornar para Kartik.",
+ "gatheringLogin": "Verificamos sua conta; pode demorar um pouco.",
+ "loginIntro": "Pressione L para fazer login",
+ "logout": "L para sair",
+ "ktoLevel": "n\u00edvel",
+ "ktoMaxLevel": "deus",
+ "error": [
+ "Incapaz de se comunicar com servidores",
+ "Voc\u00ea n\u00e3o poder\u00e1 usar o Kartik Online at\u00e9 que possamos nos comunicar com os servidores.",
+ "Conecte-se \u00e0 Internet"
+ ],
+ "updateError": [
+ "N\u00e3o \u00e9 poss\u00edvel verificar se h\u00e1 atualiza\u00e7\u00f5es",
+ "N\u00e3o podemos verificar se h\u00e1 atualiza\u00e7\u00f5es agora, tentar novamente mais tarde."
+ ],
+ "levelup": [
+ "N\u00edvel superior!",
+ "Voc\u00ea atingiu o n\u00edvel",
+ "e voc\u00ea ganha poder! V\u00e1 em frente e tente alcan\u00e7ar o n\u00edvel m\u00e1ximo."
+ ],
+ "finished": [
+ "Voc\u00ea venceu o jogo!",
+ "Chega de Kartik? sim. Voc\u00ea atingiu o n\u00edvel de Deus!"
+ ],
+ "token": [
+ "Desconectado de outro lugar",
+ "Voc\u00ea foi logado fora do Kartik Online porque sua sess\u00e3o foi encerrada desde outro lugar."
+ ]
+ }
+} \ No newline at end of file
diff --git a/kartik/lang/ru.json b/kartik/lang/ru.json
new file mode 100755
index 0000000..da158b9
--- /dev/null
+++ b/kartik/lang/ru.json
@@ -0,0 +1,237 @@
+{
+ "crash": {
+ "title": "Kartik Crash Reporter",
+ "head": "\u041a\u0430\u0440\u0442\u0438\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c",
+ "intro": "\u041a\u0430\u0440\u0442\u0438\u043a \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0438 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f. ",
+ "report": [
+ "\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u0442\u0447\u0435\u0442 \u043e \u0441\u0431\u043e\u0435 \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0432 \"",
+ "\u0427\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u043a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442."
+ ],
+ "close": "\u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0442\u044c",
+ "reset": "\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u041a\u0430\u0440\u0442\u0438\u043a \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044c"
+ },
+ "updates": {
+ "ok": "\u0421\u0432\u043e\u0435\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e",
+ "available": "\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u044b",
+ "git": "\u0417\u0430\u043f\u0443\u0441\u043a \u043c\u0430\u0433\u0438\u0441\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438",
+ "error": "\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439",
+ "wait": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 ...",
+ "warn": [
+ "\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f",
+ "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Kartik \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u043e\u0448\u0438\u0431\u043e\u043a."
+ ]
+ },
+ "scenario": {
+ "intro": [
+ "\u042d\u0439, \u043f\u0440\u0438\u0432\u0435\u0442, \u043a\u0430\u043a \u043d\u0430\u0441\u0447\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043f\u0440\u043e\u0431\u0435\u0436\u043a\u0438?",
+ "\u0410, \u0432\u043e\u0442 \u0438 \u0442\u044b! ",
+ "\u041a\u0430\u043a \u043d\u0430\u0441\u0447\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0433\u043e\u043d\u043a\u0443?",
+ "\u041c\u043e\u0436\u0435\u0442, \u043f\u0440\u043e\u0433\u0443\u043b\u044f\u0435\u043c\u0441\u044f?"
+ ],
+ "ahead1": [
+ "\u041e, \u043d\u0435\u0442 !",
+ "\u0411\u043b\u0438\u043d, \u044d\u0442\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e!",
+ "\u041d\u043e \u044f \u0442\u0443\u0434\u0430 \u043d\u0435 \u0434\u043e\u0431\u0435\u0440\u0443\u0441\u044c ...",
+ "\u0418 \u0447\u0435\u0440\u0442 ...",
+ "\u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u044b ?"
+ ],
+ "ahead2": [
+ "\u0425\u0438 \u0445\u0438 \u0445\u0438",
+ "\u042d\u0442\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f!",
+ "\u042f \u0431\u0443\u0434\u0443 \u0438\u043c\u0435\u0442\u044c \u044d\u0442\u043e!",
+ "\u042d\u0442\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f!",
+ "\u042d\u0442\u043e \u043c\u043e\u0435 !"
+ ],
+ "won1": [
+ "\u0425\u043e\u0440\u043e\u0448\u0430\u044f \u0438\u0433\u0440\u0430 !",
+ "\u0416\u0430\u043b\u043a\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f ...",
+ "\u042f \u043c\u043e\u0433 \u043d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f ...",
+ "\u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u043e!",
+ "\u041e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 !"
+ ],
+ "won2": [
+ "\u042f \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u0442\u0435\u0431\u0435 !",
+ "\u041a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u044f \u0442\u0435\u0431\u044f \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u043b!",
+ "\u042f \u0432\u044b\u0438\u0433\u0440\u0430\u043b !",
+ "\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u044f \u043f\u043e\u0431\u0435\u0434\u0438\u043b!",
+ "\u0418 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0434\u043b\u044f \u043c\u0435\u043d\u044f!"
+ ],
+ "wall1": [
+ "\u0410\u0445 \u0430\u0445!",
+ "\u0427\u0442\u043e \u0436, \u043c\u044b \u043d\u0435 \u043f\u043e\u0439\u0434\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e?",
+ "\u041e\u0439",
+ "\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0431\u043e\u043b\u044c\u043d\u043e ...",
+ "\u0421\u043f\u043b\u0430\u0444, \u043d\u0435 \u043c\u0435\u0448\u0430\u0439!"
+ ],
+ "wall2": [
+ "\u0414\u0435\u0440\u044c\u043c\u043e",
+ "\u041a\u0430\u043a\u0430\u0442\u044c",
+ "\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e",
+ "\u041f\u0443\u0442\u0438"
+ ],
+ "start": [
+ "\u042f \u0431\u0443\u0434\u0443 \u0432\u0435\u0441\u0435\u043b\u0438\u0442\u044c\u0441\u044f!",
+ "\u0412\u043e\u0442 \u0443\u0432\u0438\u0434\u0438\u0448\u044c, \u044f \u0441\u0434\u0435\u043b\u0430\u044e \u0442\u0435\u0431\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0442\u0435\u0445 \u0433\u043e\u043d\u043e\u043a!",
+ "\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0438 \u043c\u043d\u0435 \u043a\u0430\u043a\u0438\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u043d\u043e\u0432\u043e\u0441\u0442\u0438",
+ "\u041f\u043e\u0439\u0434\u0435\u043c!",
+ "\u0412\u043e\u0442 \u0442\u0430\u043a !",
+ "\u0423\u0443\u0443\u0443, \u0432\u043f\u0435\u0440\u0435\u0434!"
+ ]
+ },
+ "discord": {
+ "credits": [
+ "\u041e\u0436\u0438\u0434\u0430\u044e\u0449\u0438\u0439",
+ "\u0412 \u0442\u0438\u0442\u0440\u0430\u0445"
+ ],
+ "game": [
+ "\u0421\u0442\u0430\u0432\u043a\u0438",
+ "\u0421\u043e\u043b\u043e \u0440\u0435\u0436\u0438\u043c",
+ "\u0420\u0435\u0436\u0438\u043c Versus",
+ "\u0412 \u043f\u0435\u0440\u0435\u0440\u044b\u0432\u0435"
+ ],
+ "intro": [
+ "\u041e\u0436\u0438\u0434\u0430\u044e\u0449\u0438\u0439",
+ "\u041e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0438"
+ ],
+ "settings": [
+ "\u041e\u0436\u0438\u0434\u0430\u044e\u0449\u0438\u0439",
+ "\u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445"
+ ],
+ "win": [
+ "\u0422\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0432\u044b\u0438\u0433\u0440\u0430\u043b",
+ "\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0442\u0435\u0440\u044f\u043b"
+ ]
+ },
+ "intro": [
+ "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 Enter, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c",
+ "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 A, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c"
+ ],
+ "game": {
+ "credits": {
+ "by": "\u043f\u043e"
+ },
+ "gpause": {
+ "title": "\u0418\u0433\u0440\u0430 \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430",
+ "continueg": "\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c",
+ "showhb": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0445\u0438\u0442\u0431\u043e\u043a\u0441",
+ "hidehb": "\u0421\u043a\u0440\u044b\u0442\u044c \u0445\u0438\u0442\u0431\u043e\u043a\u0441",
+ "quit": "\u041f\u043e\u043a\u0438\u0434\u0430\u0442\u044c, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c"
+ }
+ },
+ "menu": {
+ "titles": [
+ "\u0421\u043e\u043b\u043e",
+ "\u041f\u0440\u043e\u0442\u0438\u0432",
+ "\u041e\u043f\u0446\u0438\u0438",
+ "\u041a\u0440\u0435\u0434\u0438\u0442\u044b",
+ "\u041f\u043e\u043a\u0438\u0434\u0430\u0442\u044c, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c"
+ ],
+ "descriptions": [
+ "\u0418\u0433\u0440\u0430\u0439\u0442\u0435 \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u043a\u0443 \u0438 \u0432 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0442\u0438\u0432 \u0440\u043e\u0431\u043e\u0442\u0430",
+ "\u0418\u0433\u0440\u0430\u0439\u0442\u0435 \u0432\u0434\u0432\u043e\u0435\u043c \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0435",
+ "\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",
+ "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u0432\u0442\u043e\u0440\u043e\u0432 \u0438\u0433\u0440\u044b",
+ "\u0417\u0430\u043a\u0440\u043e\u0439\u0442\u0435 \u0438\u0433\u0440\u0443 \u0438 \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u0432"
+ ],
+ "distribute": "\u041d\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c"
+ },
+ "settings": {
+ "title": "\u041e\u043f\u0446\u0438\u0438",
+ "back": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435",
+ "size": "\u0420\u0430\u0437\u043c\u0435\u0440 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430",
+ "music": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0443\u0437\u044b\u043a\u0443",
+ "lang": "\u042f\u0437\u044b\u043a",
+ "voice": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u043e\u043b\u043e\u0441",
+ "yes": "\u0434\u0430",
+ "no": "\u043d\u0435\u0442",
+ "notice": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u0441\u0442\u0443\u043f\u044f\u0442 \u0432 \u0441\u0438\u043b\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u041a\u0430\u0440\u0442\u0438\u043a\u0430."
+ },
+ "win": {
+ "solo": {
+ "win": "\u0412\u044b \u0432\u044b\u0438\u0433\u0440\u0430\u043b\u0438 !",
+ "lose": "\u0422\u044b \u043f\u0440\u043e\u0438\u0433\u0440\u0430\u043b\u0430 !"
+ },
+ "versus": "\u0418\u0433\u0440\u043e\u043a 0 \u0432\u044b\u0438\u0433\u0440\u0430\u043b!",
+ "quit": [
+ "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 Esc \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u0430",
+ "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 B, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0439\u0442\u0438"
+ ]
+ },
+ "online": {
+ "menu": {
+ "local": "\u041c\u0435\u0441\u0442\u043d\u044b\u0439",
+ "online": "\u0412 \u043e\u0447\u0435\u0440\u0435\u0434\u0438",
+ "dlocal": "\u0418\u0433\u0440\u0430\u0439\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435",
+ "donline": "\u0418\u0433\u0440\u0430\u0439\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445"
+ },
+ "error": {
+ "connection": "\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0432\u044f\u0437\u0438",
+ "disconnect": "\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d"
+ },
+ "connecting": "\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 ...",
+ "intro": {
+ "create": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0433\u0440\u0443",
+ "pcreate": "\u0414\u0430\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0441\u0432\u043e\u0435\u043c\u0443 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0443 \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435, \u0447\u0442\u043e\u0431\u044b \u0432\u043e\u0439\u0442\u0438 \u0432 \u0432\u0430\u0448\u0443 \u0438\u0433\u0440\u0443:",
+ "join": "\u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u043a \u0438\u0433\u0440\u0435",
+ "pjoin": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u0434 \u0441\u0432\u043e\u0435\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0430 \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u0435\u0433\u043e \u0438\u0433\u0440\u0435:"
+ },
+ "disconnected": "\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043e",
+ "unable": "\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443",
+ "internal": "\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430",
+ "loading": "\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u0438\u0433\u0440\u0435 ...",
+ "discord": "\u0412 \u043e\u0447\u0435\u0440\u0435\u0434\u0438",
+ "generate": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0437\u0435\u043c\u043b\u0438 ...",
+ "discord2": "\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443",
+ "timeout": "\u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d \u0442\u0430\u0439\u043c-\u0430\u0443\u0442",
+ "aborted": "\u0414\u0440\u0443\u0433\u043e\u0439 \u0438\u0433\u0440\u043e\u043a \u043f\u043e\u043a\u0438\u043d\u0443\u043b \u0438\u0433\u0440\u0443",
+ "car0": "\u0422\u0432\u043e\u044f \u043c\u0430\u0448\u0438\u043d\u0430",
+ "car1": "\u0415\u0433\u043e \u043c\u0430\u0448\u0438\u043d\u0430"
+ },
+ "stats": {
+ "menu": "\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430",
+ "title": "\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0438\u0433\u0440",
+ "items": {
+ "times.single": "\u0412\u0440\u0435\u043c\u044f, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0435 \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435",
+ "times.local": "\u0412\u0440\u0435\u043c\u044f, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0435 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435",
+ "times.online": "\u0412\u0440\u0435\u043c\u044f, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0435 \u0432 \u043e\u043d\u043b\u0430\u0439\u043d-\u0440\u0435\u0436\u0438\u043c\u0435",
+ "results.wins": "\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0438\u0433\u0440\u0430\u043d\u043d\u044b\u0445 \u0438\u0433\u0440",
+ "results.loses": "\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0438\u0433\u0440\u0430\u043d\u043d\u044b\u0445 \u0438\u0433\u0440",
+ "ingame.walls": "\u041e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0439",
+ "ingame.laps": "\u041e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0440\u0443\u0433\u043e\u0432",
+ "ingame.turns": "\u041e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0438\u0442\u043a\u043e\u0432"
+ }
+ },
+ "polymer": {
+ "gpu": "\u0421\u0442\u0430\u0442\u0443\u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 GPU",
+ "gpuShift": "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 Shift, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435",
+ "logging": "\u041c\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432\u0430\u0441; ",
+ "loginClose": "\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u044d\u0442\u0443 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u0438\u043b\u0438 \u043e\u043a\u043d\u043e \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 Kartik.",
+ "gatheringLogin": "\u041c\u044b \u0432\u0435\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0432\u0430\u0448\u0443 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c; ",
+ "loginIntro": "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 L, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f",
+ "logout": "L \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u0430",
+ "ktoLevel": "\u0423\u0440\u043e\u0432\u0435\u043d\u044c",
+ "ktoMaxLevel": "\u0411\u043e\u0433",
+ "error": [
+ "\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438",
+ "\u0412\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Kartik Online, \u043f\u043e\u043a\u0430 \u043c\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u043c \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438.",
+ "\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443"
+ ],
+ "updateError": [
+ "\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439",
+ "\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435."
+ ],
+ "levelup": [
+ "\u0412\u044b\u0441\u0448\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c !",
+ "\u0412\u044b \u0434\u043e\u0441\u0442\u0438\u0433\u043b\u0438 \u0443\u0440\u043e\u0432\u043d\u044f",
+ "\u0438 \u0442\u044b \u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0448\u044c \u0441\u0438\u043b\u0443! "
+ ],
+ "finished": [
+ "\u0412\u044b \u043f\u0440\u043e\u0448\u043b\u0438 \u0438\u0433\u0440\u0443!",
+ "\u0414\u043e\u0434\u0435\u043b\u0430\u043b \u041a\u0430\u0440\u0442\u0438\u043a ?! "
+ ],
+ "token": [
+ "\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445",
+ "\u0412\u044b \u0432\u044b\u0448\u043b\u0438 \u0438\u0437 Kartik Online, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u0430\u0448 \u0441\u0435\u0430\u043d\u0441 \u0431\u044b\u043b \u043f\u0440\u0435\u0440\u0432\u0430\u043d \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043c\u0435\u0441\u0442\u0435."
+ ]
+ }
+} \ No newline at end of file
diff --git a/kartik/lang/zh.json b/kartik/lang/zh.json
new file mode 100755
index 0000000..f921ddb
--- /dev/null
+++ b/kartik/lang/zh.json
@@ -0,0 +1,237 @@
+{
+ "crash": {
+ "title": "Kartik \u5d29\u6e83\u62a5\u544a\u5668",
+ "head": "Kartik \u5df2\u505c\u6b62\u5de5\u4f5c",
+ "intro": "Kartik \u9047\u5230\u95ee\u9898\uff0c\u610f\u5916\u505c\u6b62\u3002",
+ "report": [
+ "\u6b64\u5916\uff0c\u5728\u201c",
+ "\u4ee5\u4fbf\u60a8\u53ef\u4ee5\u5728\u53ef\u4ee5\u8bbf\u95ee Internet \u65f6\u5c06\u5176\u53d1\u9001\u7ed9\u5f00\u53d1\u4eba\u5458\u3002"
+ ],
+ "close": "\u5173\u95ed",
+ "reset": "\u91cd\u7f6e Kartik \u5e76\u5173\u95ed"
+ },
+ "updates": {
+ "ok": "\u6700\u65b0",
+ "available": "\u53ef\u7528\u7684\u6e38\u620f\u66f4\u65b0",
+ "git": "\u8fd0\u884c\u4e3b\u5e72\u7248\u672c",
+ "error": "\u65e0\u6cd5\u68c0\u67e5\u66f4\u65b0",
+ "wait": "\u67e5\u8be2\u66f4\u65b0 ...",
+ "warn": [
+ "\u6709\u66f4\u65b0\u53ef\u7528",
+ "\u4ece\u5b98\u65b9\u7f51\u7ad9\u4e0b\u8f7d\u65b0\u7248 Kartik \u4ee5\u53d7\u76ca\u4e8e\u6700\u65b0\u529f\u80fd\u548c\u9519\u8bef\u4fee\u590d\u3002"
+ ]
+ },
+ "scenario": {
+ "intro": [
+ "\u563f\uff0c\u55e8\uff0c\u5feb\u8dd1\u600e\u4e48\u6837\uff1f",
+ "\u554a\uff0c\u4f60\u53c8\u6765\u4e86\uff01",
+ "\u6211\u4eec\u6765\u4e00\u573a\u5c0f\u6bd4\u8d5b\u600e\u4e48\u6837\uff1f",
+ "\u6211\u4eec\u53bb\u6563\u6563\u6b65\u5427\uff1f"
+ ],
+ "ahead1": [
+ "\u4e0d\u597d\u4e86 \uff01",
+ "\u53ef\u6076\uff0c\u8fd9\u4e0d\u53ef\u80fd\uff01",
+ "\u4f46\u6211\u4e0d\u4f1a\u53bb\u90a3\u91cc......",
+ "\u8fd8\u6709\u5988\u7684...",
+ "\u4e3a\u4ec0\u4e48\u4f60 \uff1f"
+ ],
+ "ahead2": [
+ "\u563b\u563b\u563b",
+ "\u8fd9\u4e2a\u662f\u7ed9\u6211\u7684\uff01",
+ "\u6211\u4f1a\u7684\uff01",
+ "\u8fd9\u662f\u7ed9\u6211\u7684\uff01",
+ "\u8fd9\u662f\u6211\u7684 \uff01"
+ ],
+ "won1": [
+ "\u597d\u6e38\u620f \uff01",
+ "\u5bf9\u6211\u6765\u8bf4\u592a\u7cdf\u7cd5\u4e86...",
+ "\u6211\u672c\u6765\u53ef\u4ee5\u5e0c\u671b...",
+ "\u4f46\u662f\uff0c\u4e0d\u662f\u5f88\u597d\u770b\uff01",
+ "\u505a\u5f97\u597d \uff01"
+ ],
+ "won2": [
+ "\u6211\u544a\u8bc9\u4f60\u4e86 \uff01",
+ "\u597d\u50cf\u6211\u6ca1\u6709\u8b66\u544a\u8fc7\u4f60\uff01",
+ "\u6211\u8d62\u4e86 \uff01",
+ "\u592a\u597d\u4e86\uff0c\u6211\u8d62\u4e86\uff01",
+ "\u8fd8\u6709\u4e00\u4e2a\u7ed9\u6211\uff01"
+ ],
+ "wall1": [
+ "\u554a\u554a\uff01",
+ "\u90a3\u4e48\uff0c\u6211\u4eec\u662f\u4e0d\u662f\u8d70\u5bf9\u4e86\uff1f",
+ "\u54ce\u54df",
+ "\u4e00\u5b9a\u5f88\u75db...",
+ "\u65af\u666e\u62c9\u592b\uff0c\u6ca1\u6709\u969c\u788d\uff01"
+ ],
+ "wall2": [
+ "\u62c9\u5c4e",
+ "\u8239\u5c3e",
+ "\u4e0d\u53ef\u80fd",
+ "\u8386\u7530"
+ ],
+ "start": [
+ "\u6211\u4f1a\u73a9\u5f97\u5f88\u5f00\u5fc3\uff01",
+ "\u4f60\u4f1a\u770b\u5230\uff0c\u6211\u4f1a\u8ba9\u4f60\u6210\u4e3a\u90a3\u4e9b\u79cd\u65cf\u4e4b\u4e00\uff01",
+ "\u6709\u4ec0\u4e48\u6d88\u606f\u544a\u8bc9\u6211",
+ "\u6211\u4eec\u8d70\u5427\uff01",
+ "\u5f00\u59cb\u4e86 \uff01",
+ "\u545c\uff0c\u524d\u8fdb\uff01"
+ ]
+ },
+ "discord": {
+ "credits": [
+ "\u7b49\u5f85",
+ "\u5728\u5b66\u5206\u4e2d"
+ ],
+ "game": [
+ "\u8d4c\u6ce8",
+ "\u5355\u4eba\u6a21\u5f0f",
+ "\u5bf9\u6218\u6a21\u5f0f",
+ "\u4f11\u606f\u65f6"
+ ],
+ "intro": [
+ "\u7b49\u5f85",
+ "\u5173\u4e8e\u4ecb\u7ecd"
+ ],
+ "settings": [
+ "\u7b49\u5f85",
+ "\u5728\u8bbe\u7f6e\u4e2d"
+ ],
+ "win": [
+ "\u521a\u8d62",
+ "\u521a\u521a\u5931\u53bb\u4e86"
+ ]
+ },
+ "intro": [
+ "\u6309\u56de\u8f66\u5f00\u59cb",
+ "\u6309A\u5f00\u59cb"
+ ],
+ "game": {
+ "credits": {
+ "by": "\u7ecf\u8fc7"
+ },
+ "gpause": {
+ "title": "\u6e38\u620f\u6682\u505c",
+ "continueg": "\u63a5\u7740\u8bf4",
+ "showhb": "\u663e\u793a\u547d\u4e2d\u6846",
+ "hidehb": "\u9690\u85cf\u78b0\u649e\u7bb1",
+ "quit": "\u79bb\u5f00"
+ }
+ },
+ "menu": {
+ "titles": [
+ "\u72ec\u594f",
+ "\u76f8\u5bf9",
+ "\u9009\u9879",
+ "\u5b66\u5206",
+ "\u79bb\u5f00"
+ ],
+ "descriptions": [
+ "\u5355\u72ec\u548c\u79bb\u7ebf\u5bf9\u6297\u673a\u5668\u4eba",
+ "\u5728\u540c\u4e00\u5c4f\u5e55\u4e0a\u64ad\u653e\u4e24\u4e2a",
+ "\u66f4\u6539\u7f29\u653e\u548c\u8bbe\u7f6e",
+ "\u663e\u793a\u6e38\u620f\u4f5c\u8005\u5217\u8868",
+ "\u5173\u95ed\u6e38\u620f\u5e76\u8fd4\u56de"
+ ],
+ "distribute": "\u4e0d\u8981\u6253\u6270"
+ },
+ "settings": {
+ "title": "\u9009\u9879",
+ "back": "\u8fd4\u56de",
+ "size": "\u63a5\u53e3\u5c3a\u5bf8",
+ "music": "\u6fc0\u6d3b\u97f3\u4e50",
+ "lang": "\u820c\u5934",
+ "voice": "\u6fc0\u6d3b\u8bed\u97f3",
+ "yes": "\u662f\u7684",
+ "no": "\u4e0d",
+ "notice": "\u8bbe\u7f6e\u5c06\u4ec5\u5728\u91cd\u65b0\u542f\u52a8 Kartik \u540e\u5e94\u7528"
+ },
+ "win": {
+ "solo": {
+ "win": "\u4f60\u8d62\u4e86\uff01",
+ "lose": "\u4f60\u8f93\u4e86 \uff01"
+ },
+ "versus": "0\u53f7\u73a9\u5bb6\u8d62\u4e86\uff01",
+ "quit": [
+ "\u6309 Esc \u9000\u51fa",
+ "\u6309B\u9000\u51fa"
+ ]
+ },
+ "online": {
+ "menu": {
+ "local": "\u5f53\u5730\u7684",
+ "online": "\u6392\u961f",
+ "dlocal": "\u548c\u670b\u53cb\u5728\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u73a9",
+ "donline": "\u5728\u4e0d\u540c\u7684\u673a\u5668\u4e0a\u4e0e\u670b\u53cb\u4e00\u8d77\u73a9"
+ },
+ "error": {
+ "connection": "\u901a\u4fe1\u6545\u969c",
+ "disconnect": "\u65ad\u5f00\u8fde\u63a5"
+ },
+ "connecting": "\u8fde\u63a5\u5230\u670d\u52a1\u5668...",
+ "intro": {
+ "create": "\u521b\u5efa\u6e38\u620f",
+ "pcreate": "\u5c06\u6b64\u4ee3\u7801\u63d0\u4f9b\u7ed9\u60a8\u7684\u961f\u53cb\u4ee5\u767b\u5f55\u60a8\u7684\u6e38\u620f\uff1a",
+ "join": "\u52a0\u5165\u6e38\u620f",
+ "pjoin": "\u8f93\u5165\u60a8\u961f\u53cb\u7684\u4ee3\u7801\u4ee5\u52a0\u5165\u4ed6\u4eec\u7684\u6e38\u620f\uff1a"
+ },
+ "disconnected": "\u8fde\u63a5\u4e22\u5931",
+ "unable": "\u65e0\u6cd5\u8fde\u63a5\u5230\u670d\u52a1\u5668",
+ "internal": "\u5185\u90e8\u7cfb\u7edf\u9519\u8bef",
+ "loading": "\u51c6\u5907\u6bd4\u8d5b...",
+ "discord": "\u6392\u961f",
+ "generate": "\u52a0\u8f7d\u571f\u5730...",
+ "discord2": "\u9047\u5230\u9519\u8bef",
+ "timeout": "\u5df2\u8d85\u8fc7\u8d85\u65f6",
+ "aborted": "\u5176\u4ed6\u73a9\u5bb6\u5df2\u79bb\u5f00\u6e38\u620f",
+ "car0": "\u4f60\u7684\u8f66",
+ "car1": "\u4ed6\u7684\u8f66"
+ },
+ "stats": {
+ "menu": "\u7edf\u8ba1\u6570\u636e",
+ "title": "\u6bd4\u8d5b\u7edf\u8ba1",
+ "items": {
+ "times.single": "\u5728\u5355\u4eba\u6a21\u5f0f\u4e2d\u82b1\u8d39\u7684\u65f6\u95f4",
+ "times.local": "\u5728\u672c\u5730\u6a21\u5f0f\u4e0b\u82b1\u8d39\u7684\u65f6\u95f4",
+ "times.online": "\u5728\u7ebf\u6a21\u5f0f\u82b1\u8d39\u7684\u65f6\u95f4",
+ "results.wins": "\u80dc\u573a\u6570",
+ "results.loses": "\u8f93\u7403\u6570",
+ "ingame.walls": "\u78b0\u649e\u603b\u6570",
+ "ingame.laps": "\u603b\u5708\u6570",
+ "ingame.turns": "\u603b\u531d\u6570"
+ }
+ },
+ "polymer": {
+ "gpu": "GPU \u652f\u6301\u72b6\u6001",
+ "gpuShift": "\u6309 Shift \u67e5\u770b\u66f4\u591a",
+ "logging": "\u6211\u4eec\u4e0e\u60a8\u8054\u7cfb\uff1b",
+ "loginClose": "\u60a8\u73b0\u5728\u53ef\u4ee5\u5173\u95ed\u6b64\u9009\u9879\u5361\u6216\u7a97\u53e3\u5e76\u8fd4\u56de Kartik\u3002",
+ "gatheringLogin": "\u6211\u4eec\u9a8c\u8bc1\u60a8\u7684\u5e10\u6237\uff1b",
+ "loginIntro": "\u6309L\u8fde\u63a5",
+ "logout": "L \u9000\u51fa",
+ "ktoLevel": "\u7b49\u7ea7",
+ "ktoMaxLevel": "\u4e0a\u5e1d",
+ "error": [
+ "\u65e0\u6cd5\u4e0e\u670d\u52a1\u5668\u901a\u4fe1",
+ "\u5728\u6211\u4eec\u80fd\u591f\u4e0e\u670d\u52a1\u5668\u901a\u4fe1\u4e4b\u524d\uff0c\u60a8\u5c06\u65e0\u6cd5\u4f7f\u7528 Kartik Online\u3002",
+ "\u8fde\u63a5\u5230\u4e92\u8054\u7f51"
+ ],
+ "updateError": [
+ "\u65e0\u6cd5\u68c0\u67e5\u66f4\u65b0",
+ "\u6211\u4eec\u76ee\u524d\u65e0\u6cd5\u68c0\u67e5\u66f4\u65b0\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002"
+ ],
+ "levelup": [
+ "\u66f4\u9ad8\u5c42\u6b21 \uff01",
+ "\u4f60\u5df2\u7ecf\u8fbe\u5230\u4e86\u6c34\u5e73",
+ "\u4f60\u83b7\u5f97\u4e86\u529b\u91cf\uff01"
+ ],
+ "finished": [
+ "\u4f60\u8d62\u4e86\u6bd4\u8d5b\uff01",
+ "\u5b8c\u6210\u5361\u8482\u514b\uff1f\uff01"
+ ],
+ "token": [
+ "\u4e0e\u522b\u5904\u65ad\u5f00\u8fde\u63a5",
+ "\u60a8\u5df2\u4ece Kartik Online \u6ce8\u9500\uff0c\u56e0\u4e3a\u60a8\u7684\u4f1a\u8bdd\u5df2\u5728\u522b\u5904\u7ec8\u6b62\u3002"
+ ]
+ }
+} \ No newline at end of file