From a2376ebc779ec6b447c8cab4d68f941544e4ae8f Mon Sep 17 00:00:00 2001 From: Death Killer <884052+deathkiller@users.noreply.github.com> Date: Fri, 29 Nov 2024 10:06:44 +0100 Subject: [PATCH] Added Spanish and Galician translations by enfeitizador, minor changes --- Content/Translations/es.mo | Bin 0 -> 31491 bytes Content/Translations/es.po | 2314 +++++++++++++++++++ Content/Translations/gl.mo | Bin 0 -> 30593 bytes Content/Translations/gl.po | 2313 ++++++++++++++++++ Content/Translations/pl.mo | Bin 31459 -> 31456 bytes Content/Translations/pl.po | 4 +- Sources/Jazz2/UI/Menu/AboutSection.cpp | 7 +- Sources/Jazz2/UI/Menu/HighscoresSection.cpp | 46 +- Sources/Jazz2/UI/Menu/HighscoresSection.h | 2 + Sources/Main.cpp | 4 +- Sources/Shared/IO/AndroidAssetStream.cpp | 2 +- Sources/Shared/IO/FileAccess.h | 5 +- Sources/Shared/IO/FileStream.cpp | 41 +- Sources/nCine/I18n.cpp | 1 + 14 files changed, 4705 insertions(+), 34 deletions(-) create mode 100644 Content/Translations/es.mo create mode 100644 Content/Translations/es.po create mode 100644 Content/Translations/gl.mo create mode 100644 Content/Translations/gl.po diff --git a/Content/Translations/es.mo b/Content/Translations/es.mo new file mode 100644 index 0000000000000000000000000000000000000000..657d1a620da615f07a4ed0f05ccb9b3b138a3fc2 GIT binary patch literal 31491 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 Ld6u~BKG^@iPr@ad literal 0 HcmV?d00001 diff --git a/Content/Translations/es.po b/Content/Translations/es.po new file mode 100644 index 00000000..9bf86342 --- /dev/null +++ b/Content/Translations/es.po @@ -0,0 +1,2314 @@ +msgid "" +msgstr "" +"Project-Id-Version: jazz2-resurrection\n" +"POT-Creation-Date: 2024-11-29 09:12+0100\n" +"PO-Revision-Date: \n" +"Last-Translator: enfeitizador \n" +"Language-Team: enfeitizador\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.5\n" +"X-Poedit-Basepath: ../..\n" +"X-Poedit-KeywordsList: _;_n:1,2;_x:1c,2;_nx:1c,2,3;_f;_fn:1,2\n" +"X-Poedit-SearchPath-0: Sources/Jazz2\n" +"X-Poedit-SearchPath-1: .fake/Translations\n" +"X-Poedit-SearchPath-2: Sources/Main.cpp\n" + +#: .fake/Translations/flash/01_diam1.j2l.h:1 +msgctxt "flash/01_diam1" +msgid "" +"\n" +"Spaz ate the dopefish." +msgstr "" +"\n" +"Spaz se comió al dopefish." + +#: .fake/Translations/flash/01_diam1.j2l.h:2 +msgctxt "flash/01_diam1" +msgid "" +"\n" +"Find the gopher." +msgstr "" +"\n" +"Busca a la ardilla." + +#: .fake/Translations/flash/01_diam1.j2l.h:3 +msgctxt "flash/01_diam1" +msgid "" +"\n" +"Dragons live in burbank." +msgstr "" +"\n" +"Los dragones viven en burbank." + +#: .fake/Translations/flash/01_diam1.j2l.h:4 +msgctxt "flash/01_diam1" +msgid "" +"\n" +"Mark wears briefs. \n" +"Hoo Hah!" +msgstr "" +"\n" +"Mark lleva calzoncillos. \n" +"Hoo Hah!" + +#: .fake/Translations/flash/01_diam1.j2l.h:5 +msgctxt "flash/01_diam1" +msgid "" +"\n" +"Nick loves shiny. \n" +"Always has!" +msgstr "" +"\n" +"A Nick le encanta el brillo. \n" +"¡Como siempre!" + +#: .fake/Translations/flash/02_diam3.j2l.h:1 +msgctxt "flash/02_diam3" +msgid "" +"\n" +"Send Tim new socks." +msgstr "" +"\n" +"Envíale a Tim nuevos calcetines." + +#: .fake/Translations/flash/02_diam3.j2l.h:2 +msgctxt "flash/02_diam3" +msgid "" +"\n" +"Send Nigel a green card." +msgstr "" +"\n" +"Envíale a Nigel una tarjeta verde." + +#: .fake/Translations/flash/02_diam3.j2l.h:3 +msgctxt "flash/02_diam3" +msgid "" +"\n" +"Beware of chainsaw schmalz." +msgstr "" +"\n" +"Cuidado con of chainsaw schmalz." + +#: .fake/Translations/flash/02_diam3.j2l.h:4 +msgctxt "flash/02_diam3" +msgid "" +"\n" +"Dont give mark a burrito." +msgstr "" +"\n" +"No le des a Mark un burrito." + +#: .fake/Translations/flash/05_medivo1.j2l.h:1 +msgctxt "flash/05_medivo1" +msgid "" +"\n" +"Beware of falling enemies." +msgstr "" +"\n" +"Cuidado con los enemigos que caen." + +#: .fake/Translations/flash/05_medivo1.j2l.h:2 +msgctxt "flash/05_medivo1" +msgid "" +"\n" +"Craig is still a doofus!" +msgstr "" +"\n" +"¡Craig sigue siendo un imbécil!" + +#: .fake/Translations/flash/05_medivo1.j2l.h:3 +msgctxt "flash/05_medivo1" +msgid "" +"\n" +"Secret Level Time!!!" +msgstr "" +"\n" +"Tiempo de nivel secreto!!!" + +#: .fake/Translations/flash/bonus_garglair.j2l.h:1 +msgctxt "flash/bonus_garglair" +msgid "" +"\n" +"Buttstomp A Silver Crate\n" +"To Clear Your Path" +msgstr "" +"\n" +"Machaca con tu culo una caja de plata\n" +"para despejar tu camino" + +#: .fake/Translations/flash/bonus_garglair.j2l.h:2 +msgctxt "flash/bonus_garglair" +msgid "" +"\n" +"Crates can also make platforms appear..." +msgstr "" +"\n" +"Las cajas también pueden hacer que aparezcan plataformas..." + +#: .fake/Translations/flash/bonus_garglair.j2l.h:3 +msgctxt "flash/bonus_garglair" +msgid "" +"\n" +"Melt the Spring..." +msgstr "" +"\n" +"Derretir el trampolín..." + +#: .fake/Translations/flash/bonus_garglair.j2l.h:4 +msgctxt "flash/bonus_garglair" +msgid "" +"\n" +"Leh is a Camper" +msgstr "" +"\n" +"Leh es un campista" + +#: .fake/Translations/monk/01_jung1.j2l.h:1 +msgctxt "monk/01_jung1" +msgid "" +"\n" +"Falling boulders can \n" +"give you a headache." +msgstr "" +"\n" +"Cantos rodados que caen pueden \n" +"causarte dolor de cabeza." + +#: .fake/Translations/monk/01_jung1.j2l.h:2 +msgctxt "monk/01_jung1" +msgid "" +"\n" +"A Flamethrower works\n" +"well against bugs." +msgstr "" +"\n" +"Un lanzallamas funciona\n" +"bien contra microbios." + +#: .fake/Translations/monk/03_hell.j2l.h:1 +msgctxt "monk/03_hell" +msgid "" +"\n" +"Long live the ice level." +msgstr "" +"\n" +"Que dure el nivel helado." + +#: .fake/Translations/monk/03_hell.j2l.h:2 +msgctxt "monk/03_hell" +msgid "" +"\n" +"Goodnight, bubba!" +msgstr "" +"\n" +"¡Buenas noches, bubba!" + +#: .fake/Translations/monk/06_damn2.j2l.h:2 +msgctxt "monk/06_damn2" +msgid "" +"\n" +"What the heck? Aaaah! No! \n" +"This is NOT over!" +msgstr "" +"\n" +"¿Qué diablos? ¡Aaaah! No! \n" +"¡Esto NO ha terminado!" + +#: .fake/Translations/prince/01_castle1.j2l.h:1 +msgctxt "prince/01_castle1" +msgid "" +"\n" +"Poles spin you around so\n" +" you can go even faster." +msgstr "" +"\n" +"Los bastones te hacen girar para\n" +" que puedas ir aún más rápido." + +#: .fake/Translations/prince/01_castle1.j2l.h:2 +msgctxt "prince/01_castle1" +msgid "" +"\n" +"You found a secret area." +msgstr "" +"\n" +"Has encontrado una zona secreta." + +#: .fake/Translations/prince/01_castle1.j2l.h:3 +msgctxt "prince/01_castle1" +msgid "" +"\n" +"Secret Treasure Room." +msgstr "" +"\n" +"Sala del tesoro secreto." + +#: .fake/Translations/prince/01_castle1.j2l.h:4 +msgctxt "prince/01_castle1" +msgid "" +"\n" +"Nothing to see here." +msgstr "" +"\n" +"Nada que ver aquí." + +#: .fake/Translations/prince/01_castle1.j2l.h:5 +msgctxt "prince/01_castle1" +msgid "" +"\n" +"Collect coins to activate \n" +"bonus warp devices." +msgstr "" +"\n" +"Colecciona monedas para activar \n" +"dispositivos de ventanas extras." + +#: .fake/Translations/prince/02_castle1n.j2l.h:1 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"Cheese is green on tuesday." +msgstr "" +"\n" +"El queso es verde el martes." + +#: .fake/Translations/prince/02_castle1n.j2l.h:2 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"Craig is king doofus." +msgstr "" +"\n" +"Craig es el rey idiota." + +#: .fake/Translations/prince/02_castle1n.j2l.h:3 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"To beat the queen \n" +"shoot her off her ledge." +msgstr "" +"\n" +"Para ganar a la reina \n" +"tírala de su alféizar." + +#: .fake/Translations/prince/02_castle1n.j2l.h:4 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"Good job! \n" +"Now go get Devan Shell!" +msgstr "" +"\n" +"¡Enhorabuena!\n" +"¡Ahora ve a buscar a Devan Shell!" + +#: .fake/Translations/prince/02_castle1n.j2l.h:5 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"To kick through these\n" +"blocks, press down and jump!" +msgstr "" +"\n" +"Para pasar a través de estos\n" +"bloques, ¡aprieta y salta!" + +#: .fake/Translations/prince/02_castle1n.j2l.h:6 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"Press down and jump beneath \n" +"these blocks to break them!" +msgstr "" +"\n" +"¡Aprieta y salta por debajo de\n" +"estos bloques para romperlos!" + +#: .fake/Translations/prince/02_castle1n.j2l.h:7 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"Buttstomp the metal box \n" +"to open key blocks!" +msgstr "" +"\n" +"¡Machaca fuerte con tu culo la caja de metal \n" +"para abrir los bloques clave!" + +#: .fake/Translations/prince/03_carrot1.j2l.h:1 +msgctxt "prince/03_carrot1" +msgid "" +"\n" +"Stomp your booty to exit." +msgstr "" +"\n" +"Machaca tu culo para salir." + +#: .fake/Translations/prince/03_carrot1.j2l.h:2 +msgctxt "prince/03_carrot1" +msgid "" +"\n" +"This spring is frozen." +msgstr "" +"\n" +"Este trampolín está congelado." + +#: .fake/Translations/prince/04_carrot1n.j2l.h:1 +msgctxt "prince/04_carrot1n" +msgid "" +"\n" +"Super dooper secret." +msgstr "" +"\n" +"Un secreto súper genial." + +#: .fake/Translations/prince/04_carrot1n.j2l.h:2 +msgctxt "prince/04_carrot1n" +msgid "" +"\n" +"Shields will give you unlimited \n" +"special ammo for a short time." +msgstr "" +"\n" +"Las corazas te darán especial protección ilimitada \n" +"durante un corto espacio de tiempo." + +#: .fake/Translations/prince/04_carrot1n.j2l.h:4 +msgctxt "prince/04_carrot1n" +msgid "" +"\n" +"Stopwatches will add time to\n" +"the life of a shield." +msgstr "" +"\n" +"Los cronógrafos añadirán tiempo a\n" +"la vida de una coraza." + +#: .fake/Translations/prince/04_carrot1n.j2l.h:5 +msgctxt "prince/04_carrot1n" +msgid "" +"\n" +"This schwartzenguard is toast!" +msgstr "" +"\n" +"¡Este schwartzenguard es un plomo!" + +#: .fake/Translations/prince/06_labrat2.j2l.h:1 +msgctxt "prince/06_labrat2" +msgid "" +"\n" +"\n" +"You cannot defeat me, Jazz!\n" +"Prepare to face my superbot!" +msgstr "" +"\n" +"\n" +"¡No puedes ganarme, Jazz!\n" +"¡Prepárate a enfrentarte con mi súper robot!" + +#: .fake/Translations/prince/06_labrat2.j2l.h:2 +msgctxt "prince/06_labrat2" +msgid "" +"\n" +"\n" +"Ack! I'm outta here!" +msgstr "" +"\n" +"\n" +"¡Aja! ¡Estoy ganando!" + +#: .fake/Translations/prince/06_labrat2.j2l.h:3 +msgctxt "prince/06_labrat2" +msgid "" +"\n" +"These blocks are speed blocks.\n" +"Run into them at full speed!" +msgstr "" +"\n" +"Estos bloques son bloques de velocidad.\n" +"¡Corre hacia ellos a toda velocidad!" + +#: .fake/Translations/prince/trainer.j2l.h:1 +msgctxt "prince/trainer" +msgid "" +"\n" +"Welcome to Jazz Jackrabbit 2. \n" +" This is a training level." +msgstr "" +"\n" +"Bienvenido a Jazz Jackrabbit 2. \n" +" Este nivel es un nivel de formación." + +#: .fake/Translations/prince/trainer.j2l.h:2 +msgctxt "prince/trainer" +msgid "" +"\n" +"Collect goodies for\n" +"points and surprises." +msgstr "" +"\n" +"Recoge cosas buenas para\n" +"conseguir puntos y sorpresas." + +#: .fake/Translations/prince/trainer.j2l.h:3 +msgctxt "prince/trainer" +msgid "" +"\n" +"After jumping, press jump\n" +"again to do a special move." +msgstr "" +"\n" +"Después de saltar, vuelve a apretar saltar\n" +"para hacer un movimiento especial." + +#: .fake/Translations/prince/trainer.j2l.h:4 +msgctxt "prince/trainer" +msgid "" +"\n" +"Some walls can be shot." +msgstr "" +"\n" +"Puede dispararse a algunas paredes." + +#: .fake/Translations/prince/trainer.j2l.h:5 +msgctxt "prince/trainer" +msgid "" +"\n" +"When in the air, press down\n" +"to stomp with your butt." +msgstr "" +"\n" +"Cuando en el aire, aprieta para\n" +"machacar fuerte con tu culo." + +#: .fake/Translations/prince/trainer.j2l.h:6 +msgctxt "prince/trainer" +msgid "" +"\n" +"Secrets abound in Jazz 2. \n" +" Check the walls." +msgstr "" +"\n" +"Los secretos abundan en Jazz 2. \n" +" Comprueba las paredes." + +#: .fake/Translations/prince/trainer.j2l.h:7 +msgctxt "prince/trainer" +msgid "" +"\n" +"Good job. Remember to\n" +"look for secrets." +msgstr "" +"\n" +"Buen trabajo. Recuerda\n" +"buscar secretos." + +#: .fake/Translations/prince/trainer.j2l.h:8 +msgctxt "prince/trainer" +msgid "" +"\n" +"Collect gems for \n" +"an extra life." +msgstr "" +"\n" +"Recoge piedras preciosas para \n" +"tener una vida más." + +#: .fake/Translations/prince/trainer.j2l.h:9 +msgctxt "prince/trainer" +msgid "" +"\n" +"Red Gems count\n" +"as one gem." +msgstr "" +"\n" +"Las piedras rojas cuentan\n" +"como una piedra." + +#: .fake/Translations/prince/trainer.j2l.h:10 +msgctxt "prince/trainer" +msgid "" +"\n" +"Green gems count\n" +"as five gems." +msgstr "" +"\n" +"Las piedras verdes cuentan\n" +"como cinco piedras." + +#: .fake/Translations/prince/trainer.j2l.h:11 +msgctxt "prince/trainer" +msgid "" +"\n" +"Blue gems count\n" +"as ten gems." +msgstr "" +"\n" +"Las piedras azules cuentan\n" +"como diez piedras." + +#: .fake/Translations/prince/trainer.j2l.h:12 +msgctxt "prince/trainer" +msgid "" +"\n" +"Carrots give you health." +msgstr "" +"\n" +"Las zanahorias te dan salud." + +#: .fake/Translations/prince/trainer.j2l.h:13 +msgctxt "prince/trainer" +msgid "" +"\n" +"Checkpoints save your\n" +"spot if you lose a life." +msgstr "" +"\n" +"Los controles te salvan el puesto\n" +"si pierdes una vida." + +#: .fake/Translations/prince/trainer.j2l.h:14 +msgctxt "prince/trainer" +msgid "" +"\n" +"Collect coins to\n" +"unlock bonus rooms." +msgstr "" +"\n" +"Recoge monedas para\n" +"abrir las habitaciones de primas." + +#: .fake/Translations/prince/trainer.j2l.h:15 +msgctxt "prince/trainer" +msgid "" +"\n" +"Beware of sharp stuff.\n" +"It hurts." +msgstr "" +"\n" +"Cuidado con cosas aguzadas.\n" +"Duelen." + +#: .fake/Translations/prince/trainer.j2l.h:16 +msgctxt "prince/trainer" +msgid "" +"\n" +"Now youre ready to play.\n" +" Good luck and have fun." +msgstr "" +"\n" +"Ahora ya puedes jugar.\n" +" Buena suerte y a divertirse." + +#: .fake/Translations/rescue/01_colon1.j2l.h:1 +msgctxt "rescue/01_colon1" +msgid "" +"\n" +"Buttstomp the manhole cover!" +msgstr "" +"\n" +"Machaca con tu culo la tapa de la alcantarilla!" + +#: .fake/Translations/rescue/03_psych1.j2l.h:1 +msgctxt "rescue/03_psych1" +msgid "" +"\n" +"Smoke rings will \n" +"make you dizzy." +msgstr "" +"\n" +"Los círculos de humo \n" +"te marearán." + +#: .fake/Translations/secretf/01_easter1.j2l.h:1 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"You can't buttstomp\n" +"so go up and around!" +msgstr "" +"\n" +"¡No puedes machacar con el culo\n" +"pues ponte de pie y vete!" + +#: .fake/Translations/secretf/01_easter1.j2l.h:2 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"No rewards to those\n" +"with itchy trigger fingers." +msgstr "" +"\n" +"No hay premios para los que\n" +"no tienen mano firme." + +#: .fake/Translations/secretf/01_easter1.j2l.h:3 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"Todays Forcast: Strong Winds!" +msgstr "" +"\n" +"El pronóstico del tiempo para hoy: ¡Vientos fuertes!" + +#: .fake/Translations/secretf/01_easter1.j2l.h:4 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"Find the crate\n" +"to clear your path." +msgstr "" +"\n" +"Busca la caja\n" +"y despeja tu camino." + +#: .fake/Translations/secretf/01_easter1.j2l.h:5 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"Welcome to\n" +"Jazz Jackrabbit 2:\n" +"The Secret Files!" +msgstr "" +"\n" +"Bienvenido a\n" +"Jazz Jackrabbit 2:\n" +"¡Los Archivos secretos!" + +#: .fake/Translations/secretf/01_easter1.j2l.h:6 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"Only Spaz can get to\n" +"the room up on the left.\n" +"He may need something\n" +"to stand on." +msgstr "" +"\n" +"Sólo Spaz puede ir\n" +"a la habitación izquierda.\n" +"Posiblemente necesita algo\n" +"para ponerse de pie." + +#: .fake/Translations/secretf/01_easter1.j2l.h:7 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"Don't beat Nigel at pool.\n" +"You've veen warned. :)" +msgstr "" +"\n" +"No ganes de Nigel jugando al billar.\n" +"¡Te lo he advertido! :)" + +#: .fake/Translations/secretf/01_easter1.j2l.h:16 +msgctxt "secretf/01_easter1" +msgid "" +"Eating too many chocolate\n" +"eggs can make you sick :p" +msgstr "" +"Si comes demasiados huevos\n" +"de chocolate te pondrás enfermo :p" + +#: .fake/Translations/secretf/02_easter2.j2l.h:1 +msgctxt "secretf/02_easter2" +msgid "" +"\n" +"Sloping Tunnel Entrance" +msgstr "" +"\n" +"Entrada de túnel inclinada" + +#: .fake/Translations/secretf/02_easter2.j2l.h:2 +msgctxt "secretf/02_easter2" +msgid "" +"\n" +"To access the tunnels above\n" +"find the access warp." +msgstr "" +"\n" +"Para entrar en los túneles superiores\n" +"tienes que buscar el warp de acceso." + +#: .fake/Translations/secretf/02_easter2.j2l.h:3 +msgctxt "secretf/02_easter2" +msgid "" +"\n" +"One route leads to riches.\n" +"One route leads to battle." +msgstr "" +"\n" +"Un camino conduce a la riqueza.\n" +"Un camino conduce a la lucha." + +#: .fake/Translations/secretf/03_easter3.j2l.h:1 +msgctxt "secretf/03_easter3" +msgid "" +"\n" +"Only those who can double-jump\n" +"can get to the goodies!" +msgstr "" +"\n" +"¡Sólo los que pueden hacer un salto doble\n" +"pueden llegar a los chismes!" + +#: .fake/Translations/secretf/03_easter3.j2l.h:2 +msgctxt "secretf/03_easter3" +msgid "" +"\n" +"Find the crate to make\n" +"your climbing blocks appear" +msgstr "" +"\n" +"Busca la caja para\n" +"dejar aparecer tus escalones" + +#: .fake/Translations/secretf/03_easter3.j2l.h:3 +msgctxt "secretf/03_easter3" +msgid "" +"\n" +"Stomping this crate also\n" +"free's some enemies :)" +msgstr "" +"\n" +"Machacando esta caja también\n" +"pone en libertad a algunos enemigos :)" + +#: .fake/Translations/secretf/04_haunted1.j2l.h:1 +msgctxt "secretf/04_haunted1" +msgid "" +"\n" +"Enter the house with caution....." +msgstr "" +"\n" +"Entra en la casa con cautela....." + +#: .fake/Translations/secretf/04_haunted1.j2l.h:3 +msgctxt "secretf/04_haunted1" +msgid "" +"\n" +"Silver Crates can't be broken underwater..." +msgstr "" +"\n" +"No se pueden romper las cajas de plata que están en el agua..." + +#: .fake/Translations/secretf/04_haunted1.j2l.h:4 +msgctxt "secretf/04_haunted1" +msgid "" +"\n" +"Water Level control crate above." +msgstr "" +"\n" +"La caja de control del nivel del agua se encuentra arriba." + +#: .fake/Translations/secretf/04_haunted1.j2l.h:5 +msgctxt "secretf/04_haunted1" +msgid "" +"\n" +"Stomping crates can be good and bad..." +msgstr "" +"\n" +"Machacar las cajas puede ser bueno o malo..." + +#: .fake/Translations/secretf/04_haunted1.j2l.h:7 +msgctxt "secretf/04_haunted1" +msgid "" +"\n" +"But you need a way to get up there..." +msgstr "" +"\n" +"Pero necesitas una manera para llegar aquí arriba..." + +#: .fake/Translations/secretf/06_haunted3.j2l.h:16 +msgctxt "secretf/06_haunted3" +msgid "" +"\n" +"Michelle,\n" +"I will love you always and forever :)" +msgstr "" +"\n" +"Michelle,\n" +"Te amaré siempre y para siempre :)" + +#: .fake/Translations/secretf/07_town1.j2l.h:1 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"Take to the roof tops!" +msgstr "" +"\n" +"¡Huye a los techos!" + +#: .fake/Translations/secretf/07_town1.j2l.h:2 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"The skies above will reward\n" +"those who stomp..." +msgstr "" +"\n" +"Los cielos premiarán\n" +"a los que machacan...." + +#: .fake/Translations/secretf/07_town1.j2l.h:3 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"Jump as far over to the\n" +"right as you possibly can..." +msgstr "" +"\n" +"Salta a la derecha\n" +"cuan lejos posible..." + +#: .fake/Translations/secretf/07_town1.j2l.h:4 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"Didn't make the jump huh? :)" +msgstr "" +"\n" +"No has logrado el salto, ¿he? :)" + +#: .fake/Translations/secretf/07_town1.j2l.h:5 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"Well Done!" +msgstr "" +"\n" +"¡Bien hecho!" + +#: .fake/Translations/secretf/07_town1.j2l.h:6 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"Use your Special Moves to get up the air cons!\n" +"For Jazz, press Crouch and Jump.\n" +"For Spaz, Press Jump Twice!" +msgstr "" +"\n" +"¡Utiliza tus movimientos especiales para elevar los tubos de aire!\n" +"Para Jazz, pulsa Agacharse y Saltar.\n" +"Para Spaz, pulsa Saltar dos veces!" + +#: .fake/Translations/secretf/08_town2.j2l.h:1 +msgctxt "secretf/08_town2" +msgid "" +"\n" +"Find the crate and the gems are yours!" +msgstr "" +"\n" +"¡Busca la caja y las joyas son tuyas!" + +#: .fake/Translations/secretf/08_town2.j2l.h:2 +msgctxt "secretf/08_town2" +msgid "" +"\n" +"Springs Don't Work When Frozen..." +msgstr "" +"\n" +"Los trampolines no funcionan cuando estén congelados..." + +#: .fake/Translations/secretf/08_town2.j2l.h:3 +msgctxt "secretf/08_town2" +msgid "" +"\n" +"Collecting 20 coins is more rewarding..." +msgstr "" +"\n" +"Coleccionar 20 monedas es mas provechoso..." + +#: .fake/Translations/secretf/09_town3.j2l.h:1 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"Find the crate to clear the blocks...." +msgstr "" +"\n" +"Busca la caja para quitar los bloques...." + +#: .fake/Translations/secretf/09_town3.j2l.h:2 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"BEWARE! Flocks of Ravens can\n" +"be very dangerous." +msgstr "" +"\n" +"¡ATENCIÓN! Bandadas de cuervos pueden ser\n" +"muy peligrosas." + +#: .fake/Translations/secretf/09_town3.j2l.h:3 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"The remove the blocks\n" +"look to the tallest building." +msgstr "" +"\n" +"Para quitar los bloques\n" +"mira al edificio más alto." + +#: .fake/Translations/secretf/09_town3.j2l.h:4 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"Choose a cover and stomp away!" +msgstr "" +"\n" +"¡Busca una tapadera y empieza a pegar a diestro y siniestro!!" + +#: .fake/Translations/secretf/09_town3.j2l.h:5 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"Hi GeoBunny :)" +msgstr "" +"\n" +"Hola GeoBunny :)" + +#: .fake/Translations/secretf/09_town3.j2l.h:6 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"Goto www.project2.com\n" +"use\n" +"password: BUNNYLOVER\n" +msgstr "" +"\n" +"Ve a www.project2.com\n" +"usa la\n" +"contraseña: BUNNYLOVER\n" + +#: .fake/Translations/share/01_share1.j2l.h:1 +msgctxt "share/01_share1" +msgid "" +"\n" +"Shoot these blocks!" +msgstr "" +"\n" +"¡Dispara estos bloques!" + +#: .fake/Translations/share/01_share1.j2l.h:2 +msgctxt "share/01_share1" +msgid "" +"\n" +"When in the air, press down\n" +"to stomp with your butt." +msgstr "" +"\n" +"Cuando estés en el aire, aprieta\n" +"para machacar fuerte con tu culo." + +#: .fake/Translations/share/01_share1.j2l.h:3 +msgctxt "share/01_share1" +msgid "" +"\n" +"To pass this area, stomp\n" +"the secret metal crate." +msgstr "" +"\n" +"Para pasar esta zona pisa fuerte\n" +"el cajón de metal secreto." + +#: .fake/Translations/share/01_share1.j2l.h:4 +msgctxt "share/01_share1" +msgid "" +"\n" +"You need twenty coins to pass \n" +"through this secret warp!" +msgstr "" +"\n" +"¡Necesitas veinte monedas para pasar por \n" +"esta ventana secreta!" + +#: .fake/Translations/share/01_share1.j2l.h:5 +msgctxt "share/01_share1" +msgid "" +"\n" +"Coins give you access to \n" +"warps that appear later." +msgstr "" +"\n" +"Las monedas te dan acceso a \n" +"ventanas que aparecen después." + +#: .fake/Translations/share/01_share1.j2l.h:6 +msgctxt "share/01_share1" +msgid "" +"\n" +"Stomp in the right place and\n" +"you might find a surprise!" +msgstr "" +"\n" +"¡Pisa fuerte en el lugar correcto y\n" +"es posible que te encuentres con una sorpresa!" + +#: .fake/Translations/share/01_share1.j2l.h:7 +msgctxt "share/01_share1" +msgid "" +"\n" +"Some crates contain\n" +"bombs or baddies!" +msgstr "" +"\n" +"¡Algunos cajones tienen\n" +"bombas y personajes malos!" + +#: .fake/Translations/share/02_share2.j2l.h:1 +msgctxt "share/02_share2" +msgid "" +"\n" +"You need twenty coins to pass \n" +"through this secret warp!" +msgstr "" +"\n" +"¡Necesitas veinte monedas para pasar por \n" +"esta ventana secreta!" + +#: .fake/Translations/share/02_share2.j2l.h:2 +msgctxt "share/02_share2" +msgid "" +"\n" +"A flamethrower works well \n" +"against nasty bugs." +msgstr "" +"\n" +"Un lanzallamas funciona bien \n" +"contra microbios." + +#: .fake/Translations/share/02_share2.j2l.h:3 +msgctxt "share/02_share2" +msgid "" +"\n" +"Smoke rings will make\n" +"you very dizzy!" +msgstr "" +"\n" +"¡Los círculos de humo\n" +"te marearán mucho!" + +#: .fake/Translations/share/03_share3.j2l.h:1 +msgctxt "share/03_share3" +msgid "" +"\n" +"Beware the witch! She can\n" +"turn you into a frog." +msgstr "" +"\n" +"¡Cuidado con la bruja! Puede\n" +"convertirte en una rana." + +#: .fake/Translations/share/03_share3.j2l.h:2 +msgctxt "share/03_share3" +msgid "" +"\n" +"If you are turned into a frog\n" +"Eva Earlong can help!" +msgstr "" +"\n" +"¡Si te conviertes en una rana\n" +"Eva Earlong puede ayudarte!" + +#: .fake/Translations/share/03_share3.j2l.h:3 +msgctxt "share/03_share3" +msgid "" +"\n" +"You made it! This is the end\n" +" of the shareware version.\n" +"Now check out the order info\n" +"for M O R E!" +msgstr "" +"\n" +"¡Lo conseguiste! Este es el final\n" +" de la versión de demostración.\n" +"Ahora revisa la orden de pedido\n" +"para M Á S!" + +#: .fake/Translations/xmas99/01_xmas1.j2l.h:1 +msgctxt "xmas99/01_xmas1" +msgid "" +"\n" +"Watch out for the spikes below!" +msgstr "" +"\n" +"¡Cuidado con los picos de abajo!" + +#: .fake/Translations/xmas99/01_xmas1.j2l.h:2 +msgctxt "xmas99/01_xmas1" +msgid "" +"\n" +"You can buttstomp through\n" +"some of the weakspots\n" +"in the pathways!" +msgstr "" +"\n" +"¡Puedes machacar con el culo\n" +"algunos de los puntos débiles\n" +"en los caminos!" + +#: .fake/Translations/xmas99/01_xmas1.j2l.h:3 +msgctxt "xmas99/01_xmas1" +msgid "" +"\n" +"Some blocks can only\n" +"be broken with a\n" +"certain weapon." +msgstr "" +"\n" +"Algunos bloques sólo\n" +"se pueden romper con\n" +"una determinada arma." + +#: .fake/Translations/xmas99/01_xmas1.j2l.h:4 +msgctxt "xmas99/01_xmas1" +msgid "" +"\n" +"Welcome to Christmas Chronicles!" +msgstr "" +"\n" +"¡Bienvenido a Christmas Chronicles!" + +#: .fake/Translations/xmas99/01_xmas1.j2l.h:5 +msgctxt "xmas99/01_xmas1" +msgid "" +"\n" +"Seasons Greetings from\n" +"Epic MegaGames\n" +"Orange Games and\n" +"Project 2 Interactive!" +msgstr "" +"\n" +"Felicitaciones estivales de\n" +"Epic MegaGames\n" +"Orange Games y\n" +"Project 2 Interactive!" + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:1 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"You can stand on top\n" +"of some of the trees!" +msgstr "" +"\n" +"¡Puedes pararte en la cima\n" +"de algunos de los árboles!" + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:2 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"You can buttstomp through\n" +"some of the weakspots\n" +"in the pathways!" +msgstr "" +"\n" +"¡Puedes machacar con el culo\n" +"algunos de los puntos débiles\n" +"en los caminos!" + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:3 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"Punching the blocks above you\n" +"can be rewarding." +msgstr "" +"\n" +"Golpear los bloques que están encima tuyo\n" +"puede ser gratificante." + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:6 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"Gem Trail Entry Crate." +msgstr "" +"\n" +"Cajón de entrada para sendero de gemas." + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:7 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"Gem Trail Entrance.\n" +"Climb the treetops to find\n" +"and stomp the Entry Crate." +msgstr "" +"\n" +"Entrada al sendero de gemas.\n" +"Sube a las copas de los árboles para encontrar\n" +"y machacar la caja de entrada." + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:14 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"\n" +"Hi There, Piggy!\n" +"\n" +"- Poopy" +msgstr "" +"\n" +"\n" +"¡Hola Piggy!\n" +"\n" +"- Poopy" + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:15 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"\n" +"Michelle:\n" +"You've changed my life in so many ways\n" +"I dedicate this project to you.\n" +"I love you so much." +msgstr "" +"\n" +"\n" +"Michelle:\n" +"Has cambiado mi vida de muchas maneras\n" +"Te dedico este proyecto.\n" +"Te quiero mucho." + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:16 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"\n" +"Kassi Nicole:\n" +"A million things I long to say to you\n" +"But my words always lead to the same ending\n" +"I love you, I love you." +msgstr "" +"\n" +"\n" +"Kassi Nicole:\n" +"Anhelo decirte un millón de cosas\n" +"Pero mis palabras siempre conducen al mismo final\n" +"Te quiero, te quiero." + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:1 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Please use your TNT wisely." +msgstr "" +"\n" +"Usa tu TNT sabiamente." + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:2 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Don't lose your grip!" +msgstr "" +"\n" +"¡No pierdas el control!" + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:3 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Welcome to Burrowsville\n" +"Please drive carefully." +msgstr "" +"\n" +"Bienvenido a Burrowsville\n" +"Conduce con precaución." + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:4 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"That bridge doesnt\n" +"look too safe..." +msgstr "" +"\n" +"Este puente no parece\n" +"muy seguro..." + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:5 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Robert and Craig:\n" +"Springs RULE! :)" +msgstr "" +"\n" +"Robert y Craig:\n" +"¡Los trampolines son lo MÁXIMO! :)" + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:6 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Now leaving Burrowsville\n" +"Please visit again." +msgstr "" +"\n" +"Abandonando Burrowsville\n" +"Visítanos de nuevo." + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:7 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Password: xmasbunny\n" +"Please visit\n" +"www.project2.com" +msgstr "" +"\n" +"Contraseña: xmasbunny\n" +"Por favor, visita\n" +"www.project2.com" + +#. TRANSLATORS: Header text in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:130 +msgid "" +"Reimplementation of the game \f[c:#9e7056]Jazz Jackrabbit 2\f[/c] released " +"in 1998. Supports various versions of the game (Shareware Demo, Holiday Hare " +"'98, The Secret Files and Christmas Chronicles). Also, it partially supports " +"some features of JJ2+ extension." +msgstr "" +"Reimplementación del juego \f[c:#9e7056]Jazz Jackrabbit 2\f[/c] publicado en " +"1998. Compatible con varias versiones del juego (Shareware Demo, Holiday " +"Hare '98, The Secret Files y Christmas Chronicles). Además, es compatible " +"parcialmente con alguna funciones de la extensión JJ2+." + +#. TRANSLATORS: Link to website under header text in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:132 +#, c-format +msgid "For more information, visit the official website: %s" +msgstr "Para más información, visita la web oficial: %s" + +#. TRANSLATORS: Label in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:134 +msgid "Developers" +msgstr "Desarrolladores" + +#. TRANSLATORS: Label in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:136 +msgid "Contributors" +msgstr "Colaboradores" + +#. TRANSLATORS: Label in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:138 +msgid "Translators" +msgstr "Traductores" + +#. TRANSLATORS: Footer text in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:140 +msgid "" +"This project uses modified \f[c:#9e7056]nCine\f[/c] game engine and " +"following libraries:" +msgstr "" +"Este proyecto usa el motor de juego \f[c:#9e7056]nCine\f[/c] modificado y " +"las siguientes librerías:" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:59 +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:76 +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:148 +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:150 +msgid "Play Story" +msgstr "Jugar historia" + +#. TRANSLATORS: Menu item in main menu (Emscripten only) +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:62 +msgid "Play Shareware Demo" +msgstr "Jugar demostración" + +#. TRANSLATORS: Menu item in main menu (Emscripten only) +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:67 +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:66 +msgid "Import Episodes" +msgstr "Importar episodios" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:72 +msgid "Continue" +msgstr "Continuar" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:79 +msgid "Play Custom Game" +msgstr "Jugar juego personalizado" + +#. TRANSLATORS: Menu item in main menu +#. TRANSLATORS: Menu item in Play Custom Game section +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:82 +#: Sources/Jazz2/UI/Menu/CustomLevelSelectSection.cpp:126 +#: Sources/Jazz2/UI/Menu/PlayCustomSection.cpp:19 +msgid "Play Custom Levels" +msgstr "Jugar niveles personalizados" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:86 +msgid "Highscores" +msgstr "Mejores puntuaciones" + +#. TRANSLATORS: Menu item in main menu +#. TRANSLATORS: Subheader in First Run section +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:88 +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:58 +#: Sources/Jazz2/UI/Menu/OptionsSection.cpp:41 +#: Sources/Jazz2/UI/Menu/PauseSection.cpp:15 +msgid "Options" +msgstr "Opciones" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:90 +msgid "About" +msgstr "Acerca de" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:93 +msgid "Quit" +msgstr "Salir" + +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:195 +msgid "Access to external storage has been granted!" +msgstr "¡Se ha concedido acceso al almacenamiento externo!" + +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:197 +msgid "" +"\f[c:#337233]Restart the game to read \f[c:#9e7056]Jazz Jackrabbit 2\f[c:" +"#337233] files correctly." +msgstr "" +"\f[c:#337233]Reinicia el juego para leer los ficheros de \f[c:#9e7056]Jazz " +"Jackrabbit 2\f[c:#337233] correctamente." + +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:202 +msgid "" +"\f[c:#704a4a]This game requires original \f[c:#9e7056]Jazz Jackrabbit 2\f[c:" +"#704a4a] files!" +msgstr "" +"\f[c:#704a4a]Este juego requiere los ficheros del \f[c:#9e7056]Jazz " +"Jackrabbit 2\f[c:#704a4a] original!" + +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:204 +msgid "Make sure Jazz Jackrabbit 2 files are present in following path:" +msgstr "" +"Asegúrate que los ficheros de Jazz Jackrabbit 2 están presentes en la " +"siguiente ruta:" + +#. TRANSLATORS: Menu item in main menu (Android 11+ only) +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:212 +msgid "Allow access to external storage" +msgstr "Permitir acceso al almacenamiento externo" + +#. TRANSLATORS: Menu item in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:20 +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:171 +#, c-format +msgid "Remap Controls for Player %i" +msgstr "Reasignar controles para participante %i" + +#. TRANSLATORS: Menu item in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:24 +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:174 +msgid "Remap Controls" +msgstr "Reasignar controles" + +#. TRANSLATORS: Menu item in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:27 +#: Sources/Jazz2/UI/Menu/TouchControlsOptionsSection.cpp:45 +msgid "Touch Controls" +msgstr "Controles táctiles" + +#. TRANSLATORS: Menu item in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:29 +msgid "Toggle Run" +msgstr "Alternar correr" + +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:30 +msgid "Gamepad Button Labels" +msgstr "Etiquetas de los botones del mando" + +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:32 +msgid "Gamepad Rumble" +msgstr "Vibración del mando" + +#. TRANSLATORS: Menu item in Options > Controls section (Android only) +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:36 +msgid "Native Back Button" +msgstr "Botón trasero nativo" + +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:38 +#: Sources/Jazz2/UI/Menu/InputDiagnosticsSection.cpp:72 +msgid "Input Diagnostics" +msgstr "Diagnósticos de entrada" + +#. TRANSLATORS: Menu item in Options section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:71 +#: Sources/Jazz2/UI/Menu/OptionsSection.cpp:25 +msgid "Controls" +msgstr "Controles" + +#. TRANSLATORS: Option for Gamepad Rumble in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:121 +msgid "Strong" +msgstr "Fuerte" + +#. TRANSLATORS: Option for Gamepad Rumble in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:124 +msgid "Weak" +msgstr "Débil" + +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:125 +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:134 +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:128 +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:133 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:168 +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:123 +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:127 +msgid "Disabled" +msgstr "Deshabilitado" + +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:134 +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:128 +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:133 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:159 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:162 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:168 +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:127 +msgid "Enabled" +msgstr "Habilitado" + +#. TRANSLATORS: Menu item to select player character (Jazz, Spaz, Lori) +#: Sources/Jazz2/UI/Menu/CreateServerOptionsSection.cpp:31 +msgid "Character" +msgstr "Personaje" + +#. TRANSLATORS: Menu item to select game mode +#: Sources/Jazz2/UI/Menu/CreateServerOptionsSection.cpp:33 +msgid "Game Mode" +msgstr "Modo de juego" + +#. TRANSLATORS: Menu item to create server with selected settings +#: Sources/Jazz2/UI/Menu/CreateServerOptionsSection.cpp:35 +msgid "Create Server" +msgstr "Crear servidor" + +#: Sources/Jazz2/UI/Menu/CustomLevelSelectSection.cpp:139 +msgid "No custom level found!" +msgstr "¡No se encuentra nivel personalizado!" + +#. TRANSLATORS: Menu item in Play Custom Game section +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:148 +#: Sources/Jazz2/UI/Menu/PlayCustomSection.cpp:21 +msgid "Play Story in Cooperation" +msgstr "Jugar historia en cooperativo" + +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:160 +msgid "No episode found!" +msgstr "No se encuentran episodios!" + +#. TRANSLATORS: Menu subitem in Play Story section +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:206 +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:207 +msgid "Restart episode" +msgstr "Reiniciar episodio" + +#. TRANSLATORS: Information in Play Story section that episode is locked because the previous episode is not complete +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:229 +#, c-format +msgid "You must complete \"%s\" first!" +msgstr "Tienes que completar \"%s\" antes!" + +#. TRANSLATORS: Information in Play Story section that episode is locked +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:233 +msgid "Episode is locked!" +msgstr "¡Episodio bloqueado!" + +#. TRANSLATORS: Menu item in First Run section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:16 +msgid "Legacy" +msgstr "Legado" + +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:16 +msgid "I want to play the game the way it used to be." +msgstr "Quiero jugar al juego como solía ser." + +#. TRANSLATORS: Menu item in First Run section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:18 +msgid "Reforged" +msgstr "Reforjado" + +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:18 +msgid "I want to play the game with something new." +msgstr "Quiero jugar al juego con algo nuevo." + +#. TRANSLATORS: Header in First Run section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:54 +msgid "Welcome to \f[c:#9e7056]Jazz Jackrabbit 2\f[/c] reimplementation!" +msgstr "¡Bienvenido a \f[c:#9e7056]Jazz Jackrabbit 2\f[/c] reimplementado!" + +#. TRANSLATORS: Menu item in Options section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:58 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:97 +#: Sources/Jazz2/UI/Menu/OptionsSection.cpp:17 +msgid "Gameplay" +msgstr "Jugabilidad" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:58 +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:70 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:42 +msgid "Enhancements" +msgstr "Mejoras" + +#. TRANSLATORS: Subheader in First Run section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:58 +#, c-format +msgid "" +"You can choose your preferred play style.\n" +"This option can be changed at any time in \f[c:#707070]%s\f[/c] > \f[c:" +"#707070]%s\f[/c] > \f[c:#707070]%s\f[/c].\n" +"For more information, visit %s and  Discord!" +msgstr "" +"Puedes elegir tu estilo de juego preferido.\n" +"Esta opción se puede cambiar en cualquier momento en \f[c:#707070]%s\f[/c] > " +"\f[c:#707070]%s\f[/c] > \f[c:#707070]%s\f[/c].\n" +"¡Para más información, visita %s y  Discord!" + +#. TRANSLATORS: Menu item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:16 +msgid "Reforged Gameplay" +msgstr "Jugabilidad reforjada" + +#. TRANSLATORS: Menu item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:18 +msgid "Reforged HUD" +msgstr "Pantalla táctil reforjada" + +#. TRANSLATORS: Menu item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:20 +msgid "Reforged Main Menu" +msgstr "Menú principal reforjado" + +#. TRANSLATORS: Menu item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:22 +msgid "Ledge Climbing" +msgstr "Escalada de cornisas" + +#. TRANSLATORS: Menu item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:24 +msgid "Weapon Wheel" +msgstr "Rueda de armas" + +#. TRANSLATORS: Header in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:74 +msgid "You can enable enhancements that were added to this remake." +msgstr "Puedes habilitar las mejoras que se agregaron a este remake." + +#. TRANSLATORS: Option for Weapon Wheel item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:127 +msgid "Enabled With Ammo Count" +msgstr "Habilitado con conteo de munición" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:44 +#: Sources/Jazz2/UI/Menu/LanguageSelectSection.cpp:42 +msgid "Language" +msgstr "Idioma" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:47 +msgid "Scripting" +msgstr "Escritura" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:51 +msgid "Allow Cheats" +msgstr "Permitir trampas" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:53 +msgid "Overwrite Episode Completion" +msgstr "Sobrescribir episodio completado" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:57 +msgid "Discord Integration" +msgstr "Integración con Discord" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:61 +msgid "Razer Chroma™" +msgstr "Razer Chroma™" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:65 +msgid "Browse \"Source\" Directory" +msgstr "Explorar directorio \"Source\"" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:70 +#: Sources/Jazz2/UI/Menu/RefreshCacheSection.cpp:77 +msgid "Refresh Cache" +msgstr "Recargar cache" + +#. TRANSLATORS: Option for Allow Cheats in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:137 +msgid "\f[c:#d86664]Yes\f[/c]" +msgstr "\f[c:#d86664]Si\f[/c]" + +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:137 +msgid "No" +msgstr "No" + +#. TRANSLATORS: Option for Overwrite Episode Completion in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:141 +msgid "No Cheats Only" +msgstr "Sólo sin trampas" + +#. TRANSLATORS: Option for Overwrite Episode Completion in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:144 +msgid "Higher Score Only" +msgstr "Sólo puntuación más alta" + +#. TRANSLATORS: Option for Overwrite Episode Completion in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:146 +msgid "Always" +msgstr "Siempre" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:19 +msgid "Rescale Mode" +msgstr "Modo reescalado" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:27 +msgid "Fullscreen" +msgstr "Pantalla completa" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:31 +msgid "Antialiasing" +msgstr "Antiplegamiento" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:33 +msgid "Water Quality" +msgstr "Calidad del agua" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:35 +msgid "Show Player Trails" +msgstr "Mostrar rastros del jugador" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:37 +msgid "Preferred Splitscreen" +msgstr "Pantalla partida preferida" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:39 +msgid "Prefer Zoom Out" +msgstr "Alejamiento preferido" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:41 +msgid "Keep Aspect Ratio In Cinematics" +msgstr "Mantener relación de aspecto en cinemáticas" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:43 +msgid "Unaligned Viewport" +msgstr "Ventana gráfica no alineada" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:45 +msgid "Performance Metrics" +msgstr "Métricas de rendimiento" + +#. TRANSLATORS: Menu item in Options section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:78 +#: Sources/Jazz2/UI/Menu/OptionsSection.cpp:19 +msgid "Graphics" +msgstr "Gráficos" + +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:118 +msgid "Low" +msgstr "Bajo" + +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:118 +msgid "High" +msgstr "Alto" + +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:120 +msgid "Vertical" +msgstr "Vertical" + +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:120 +msgid "Horizontal" +msgstr "Horizontal" + +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:123 +msgid "Enabled \f[c:#d0705d](Experimental)\f[/c]" +msgstr "Habilitado \f[c:#d0705d](Experimental)\f[/c]" + +#: Sources/Jazz2/UI/Menu/HighscoresSection.cpp:105 +msgid "Highscores for \f[c:#d0705d]Base game\f[/c]" +msgstr "Mejores puntuaciones para \f[c:#d0705d]juego base\f[/c]" + +#: Sources/Jazz2/UI/Menu/HighscoresSection.cpp:115 +#, c-format +msgid "Highscores for \f[c:#d0705d]%s\f[/c]" +msgstr "Mejores puntuaciones para \f[c:#d0705d]%s\f[/c]" + +#. TRANSLATORS: Header in Import Episodes section +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:70 +msgid "Select files of your original game to unlock additional episodes" +msgstr "" +"Selecciona ficheros de tu juego original para desbloquear episodios " +"adicionales" + +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:76 +msgid "Processing of selected files..." +msgstr "Procesando los ficheros seleccionados..." + +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:79 +msgid "Waiting for files..." +msgstr "Esperando por los ficheros..." + +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:85 +msgid "No files were selected!" +msgstr "¡No se detectaron ficheros!" + +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:90 +msgid "No new episodes were imported!" +msgstr "¡No se importaron episodios nuevos!" + +#: Sources/Jazz2/UI/Menu/InputDiagnosticsSection.cpp:87 +msgid "No gamepads are detected!" +msgstr "¡No se detectan mandos!" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:18 +msgid "Battle" +msgstr "Batalla" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:20 +msgid "Team Battle" +msgstr "Batalla en equipo" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:22 +msgid "Capture The Flag" +msgstr "Capturar la bandera" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:24 +msgid "Race" +msgstr "Carrera" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:26 +msgid "Team Race" +msgstr "Carrera en equipo" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:28 +msgid "Treasure Hunt" +msgstr "En busca del tesoro" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:30 +msgid "Cooperation" +msgstr "Cooperativa" + +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:46 +msgid "Select Game Mode" +msgstr "Escoge modalidad juego" + +#. TRANSLATORS: Menu item in Options section +#: Sources/Jazz2/UI/Menu/OptionsSection.cpp:22 +#: Sources/Jazz2/UI/Menu/SoundsOptionsSection.cpp:106 +msgid "Sounds" +msgstr "Sonidos" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/PauseSection.cpp:13 +msgid "Resume" +msgstr "Reanudar" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/PauseSection.cpp:17 +msgid "Save & Exit" +msgstr "Guardar y salir" + +#. TRANSLATORS: Menu item in Play Custom Game section +#: Sources/Jazz2/UI/Menu/PlayCustomSection.cpp:23 +msgid "Create Custom Server" +msgstr "Crear servidor personalizado" + +#. TRANSLATORS: Menu item in Play Custom Game section +#: Sources/Jazz2/UI/Menu/PlayCustomSection.cpp:25 +msgid "Connect To Server" +msgstr "Conectar a servidor" + +#: Sources/Jazz2/UI/Menu/RefreshCacheSection.cpp:80 +msgid "Processing of files in \f[c:#9e7056]\"Source\"\f[/c] directory..." +msgstr "" +"Procesando los ficheros del directorio \f[c:#9e7056]\"Source\"\f[/c]..." + +#: Sources/Jazz2/UI/Menu/RefreshCacheSection.cpp:83 +msgid "Newly added levels and episodes will be available soon." +msgstr "Los niveles y episodios recién agregados estarán disponibles pronto." + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:17 +msgid "Left" +msgstr "Izquierda" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:19 +msgid "Right" +msgstr "Derecha" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:21 +msgid "Up" +msgstr "Arriba" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:23 +msgid "Down" +msgstr "Abajo" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:25 +msgid "Fire" +msgstr "Disparar" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:27 +msgid "Jump" +msgstr "Saltar" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:29 +msgid "Run" +msgstr "Correr" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:31 +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:188 +msgid "Change Weapon" +msgstr "Cambiar arma" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:33 +msgid "Back" +msgstr "Volver" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:37 +#, c-format +msgid "Weapon %i" +msgstr "Arma %i" + +#. TRANSLATORS: Bottom hint in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:182 +msgid "Press any key or button to assign" +msgstr "Pulsa cualquier tecla o botón para asignar" + +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:188 +msgid "or" +msgstr "o" + +#. TRANSLATORS: Bottom hint in Options > Controls > Remap Controls section, prefixed with key/button to press +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:194 +msgid "to remove assignment" +msgstr "para eliminar la asignación" + +#. TRANSLATORS: Menu item in Options > Graphics > Rescale Mode section +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:22 +msgid "None / Pixel-perfect" +msgstr "Nada / Pixel perfecto" + +#. TRANSLATORS: Menu item in Options > Graphics > Rescale Mode section +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:29 +msgid "CRT Scanlines" +msgstr "CRT líneas de exploración" + +#. TRANSLATORS: Menu item in Options > Graphics > Rescale Mode section +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:31 +msgid "CRT Shadow Mask" +msgstr "CRT máscara de sombra" + +#. TRANSLATORS: Menu item in Options > Graphics > Rescale Mode section +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:33 +msgid "CRT Aperture Grille" +msgstr "CRT rejilla de apertura" + +#. TRANSLATORS: Menu item in Options > Graphics > Rescale Mode section +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:35 +msgid "Monochrome" +msgstr "Monocromático" + +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:53 +msgid "Select Rescale Mode" +msgstr "Selecciona modo de reescalado" + +#: Sources/Jazz2/UI/Menu/ServerSelectSection.cpp:108 +msgid "Connect to Server" +msgstr "Conectar a servidor" + +#: Sources/Jazz2/UI/Menu/ServerSelectSection.cpp:121 +msgid "No servers found, but still searchin'!" +msgstr "No se encuentran servidores, pero seguimos buscando!" + +#: Sources/Jazz2/UI/Menu/SimpleMessageSection.cpp:46 +msgid "Press \f[c:#d0705d]Fire\f[/c] to continue" +msgstr "Presiona \f[c:#d0705d]Fuego\f[/c] para continuar" + +#. TRANSLATORS: Menu item in Options > Sounds section +#: Sources/Jazz2/UI/Menu/SoundsOptionsSection.cpp:15 +msgid "Master Volume" +msgstr "Volumen principal" + +#. TRANSLATORS: Menu item in Options > Sounds section +#: Sources/Jazz2/UI/Menu/SoundsOptionsSection.cpp:17 +msgid "SFX Volume" +msgstr "Volumen de efectos" + +#. TRANSLATORS: Menu item in Options > Sounds section +#: Sources/Jazz2/UI/Menu/SoundsOptionsSection.cpp:19 +msgid "Music Volume" +msgstr "Volumen de música" + +#. TRANSLATORS: Menu item to select number of players +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:18 +msgid "Number of Local Players" +msgstr "Número de jugadores en local" + +#. TRANSLATORS: Menu item to select difficulty +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:20 +msgid "Difficulty" +msgstr "Dificultad" + +#. TRANSLATORS: Menu item to start selected episode/level +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:22 +msgid "Start" +msgstr "Empezar" + +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:294 +msgid "Easy" +msgstr "Fácil" + +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:294 +msgid "Medium" +msgstr "Medio" + +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:294 +msgid "Hard" +msgstr "Difícil" + +#. TRANSLATORS: Header in Options > Controls > Touch Controls section +#: Sources/Jazz2/UI/Menu/TouchControlsOptionsSection.cpp:49 +msgid "You can adjust position of the touch zones by drag and drop." +msgstr "" +"Puedes ajustar la posición de las zonas táctiles arrastrando y soltando." + +#: Sources/Main.cpp:273 Sources/Main.cpp:328 +#, c-format +msgid "Connecting to %s:%u..." +msgstr "Conectando a %s:%u..." + +#: Sources/Main.cpp:525 Sources/Main.cpp:573 +msgid "" +"\f[c:#704a4a]Cannot load specified level!\f[/c]\n" +"\n" +"\n" +"Make sure all necessary files\n" +"are accessible and try it again." +msgstr "" +"\f[c:#704a4a]No se puede cargar el nivel especificado!\f[/c]\n" +"\n" +"\n" +"Asegúrate que todos los ficheros necesarios\n" +"son accesibles e inténtalo de nuevo." + +#: Sources/Main.cpp:627 +msgid "" +"\f[c:#704a4a]Cannot resume saved state!\f[/c]\n" +"\n" +"\n" +"Make sure all necessary files\n" +"are accessible and try it again." +msgstr "" +"\f[c:#704a4a]No se puede continuar la partida guardada!\f[/c]\n" +"\n" +"\n" +"Asegúrate que todos los ficheros necesarios\n" +"son accesibles e inténtalo de nuevo." + +#: Sources/Main.cpp:764 +msgid "" +"\f[c:#704a4a]Cannot connect to the server!\f[/c]\n" +"\n" +"\n" +"Your client version is not compatible with the server." +msgstr "" +"\f[c:#704a4a]No se puede conectar al servidor!\f[/c]\n" +"\n" +"\n" +"La versión de tu cliente no es compatible con la del servidor." + +#: Sources/Main.cpp:765 +msgid "" +"\f[c:#704a4a]Cannot connect to the server!\f[/c]\n" +"\n" +"\n" +"Server capacity is full.\n" +"Please try it later." +msgstr "" +"\f[c:#704a4a]No se puede conectar al servidor!\f[/c]\n" +"\n" +"\n" +"La capacidad del servidor está completa.\n" +"Inténtalo de nuevo más tarde." + +#: Sources/Main.cpp:766 +msgid "" +"\f[c:#704a4a]Cannot connect to the server!\f[/c]\n" +"\n" +"\n" +"Server is not in a state where it can process your request.\n" +"Please try again in a few seconds." +msgstr "" +"\f[c:#704a4a]No se puede conectar al servidor!\f[/c]\n" +"\n" +"\n" +"El servidor non está en un estado que pueda procesar tu solicitud.\n" +"Inténtalo de nuevo dentro de unos segundos." + +#: Sources/Main.cpp:767 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"Server is shutting down.\n" +"Please try it later." +msgstr "" +"\f[c:#704a4a]La conexión se ha cerrado!\f[/c]\n" +"\n" +"\n" +"El servidor se está apagando.\n" +"Inténtalo de nuevo más tarde." + +#: Sources/Main.cpp:768 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"Server is shutting down for maintenance.\n" +"Please try it again later." +msgstr "" +"\f[c:#704a4a]La conexión se ha cerrado!\f[/c]\n" +"\n" +"\n" +"El servidor se está apagando para mantenimiento.\n" +"Inténtalo de nuevo más tarde." + +#: Sources/Main.cpp:769 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"Server is shutting down for reconfiguration.\n" +"Please try it again later." +msgstr "" +"\f[c:#704a4a]La conexión se ha cerrado!\f[/c]\n" +"\n" +"\n" +"El servidor se está apagando para reconfigurarse.\n" +"Inténtalo de nuevo más tarde." + +#: Sources/Main.cpp:770 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"Server is shutting down for update.\n" +"Please check your client version and try it again in a minute." +msgstr "" +"\f[c:#704a4a]La conexión se ha cerrado!\f[/c]\n" +"\n" +"\n" +"El servidor se está apagando por una actualización.\n" +"Inténtalo de nuevo más tarde." + +#: Sources/Main.cpp:771 +msgid "" +"\f[c:#704a4a]Connection has been lost!\f[/c]\n" +"\n" +"\n" +"Please try it again and if the problem persists,\n" +"check your network connection." +msgstr "" +"\f[c:#704a4a]La conexión se ha perdido!\f[/c]\n" +"\n" +"\n" +"Inténtalo de nuevo y si el problema persiste,\n" +"comprueba tu conexión a la red." + +#: Sources/Main.cpp:772 +msgid "" +"\f[c:#704a4a]Cannot connect to the server!\f[/c]\n" +"\n" +"\n" +"The server is not responding for connection request." +msgstr "" +"\f[c:#704a4a]No se puede conectar al servidor!\f[/c]\n" +"\n" +"\n" +"El servidor no está respondiendo a la petición de conexión." + +#: Sources/Main.cpp:773 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"You have been \f[c:#907050]kicked\f[/c] off the server.\n" +"Contact server administrators for more information." +msgstr "" +"\f[c:#704a4a]La conexión se ha cerrado!\f[/c]\n" +"\n" +"\n" +"Has sido \f[c:#907050]expulsado\f[/c] del servidor.\n" +"Contacta con la administración del servidor para más información." + +#: Sources/Main.cpp:774 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"You have been \f[c:#725040]banned\f[/c] off the server.\n" +"Contact server administrators for more information." +msgstr "" +"\f[c:#704a4a]La conexión se ha cerrado!\f[/c]\n" +"\n" +"\n" +"Has sido \f[c:#725040]baneado\f[/c] del servidor.\n" +"Contacta con la administración del servidor para más información." + +#~ msgid "Creating server..." +#~ msgstr "Creando servidor..." + +#~ msgid "Error" +#~ msgstr "Error" diff --git a/Content/Translations/gl.mo b/Content/Translations/gl.mo new file mode 100644 index 0000000000000000000000000000000000000000..8654b987523d4bc4b3af01164458ced9325d9c21 GIT binary patch literal 30593 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\n" +"Language-Team: enfeitizador\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.5\n" +"X-Poedit-Basepath: ../..\n" +"X-Poedit-KeywordsList: _;_n:1,2;_x:1c,2;_nx:1c,2,3;_f;_fn:1,2\n" +"X-Poedit-SearchPath-0: Sources/Jazz2\n" +"X-Poedit-SearchPath-1: .fake/Translations\n" +"X-Poedit-SearchPath-2: Sources/Main.cpp\n" + +#: .fake/Translations/flash/01_diam1.j2l.h:1 +msgctxt "flash/01_diam1" +msgid "" +"\n" +"Spaz ate the dopefish." +msgstr "" +"\n" +"Spaz comeu o Dopefish." + +#: .fake/Translations/flash/01_diam1.j2l.h:2 +msgctxt "flash/01_diam1" +msgid "" +"\n" +"Find the gopher." +msgstr "" +"\n" +"Atopa o esquío." + +#: .fake/Translations/flash/01_diam1.j2l.h:3 +msgctxt "flash/01_diam1" +msgid "" +"\n" +"Dragons live in burbank." +msgstr "" +"\n" +"Os dragóns viven en Burbank." + +#: .fake/Translations/flash/01_diam1.j2l.h:4 +msgctxt "flash/01_diam1" +msgid "" +"\n" +"Mark wears briefs. \n" +"Hoo Hah!" +msgstr "" +"\n" +"Mark leva calzóns slip. \n" +"Hoo Hah!" + +#: .fake/Translations/flash/01_diam1.j2l.h:5 +msgctxt "flash/01_diam1" +msgid "" +"\n" +"Nick loves shiny. \n" +"Always has!" +msgstr "" +"\n" +"Nick ama o brillante. \n" +"Desde sempre!" + +#: .fake/Translations/flash/02_diam3.j2l.h:1 +msgctxt "flash/02_diam3" +msgid "" +"\n" +"Send Tim new socks." +msgstr "" +"\n" +"Mándalle a Tim calcetíns novos." + +#: .fake/Translations/flash/02_diam3.j2l.h:2 +msgctxt "flash/02_diam3" +msgid "" +"\n" +"Send Nigel a green card." +msgstr "" +"\n" +"Mándalle a Nigel unha tarxeta verde." + +#: .fake/Translations/flash/02_diam3.j2l.h:3 +msgctxt "flash/02_diam3" +msgid "" +"\n" +"Beware of chainsaw schmalz." +msgstr "" +"\n" +"Coidado coa parvada da motoserra." + +#: .fake/Translations/flash/02_diam3.j2l.h:4 +msgctxt "flash/02_diam3" +msgid "" +"\n" +"Dont give mark a burrito." +msgstr "" +"\n" +"Non lle deas a Mark un burrito." + +#: .fake/Translations/flash/05_medivo1.j2l.h:1 +msgctxt "flash/05_medivo1" +msgid "" +"\n" +"Beware of falling enemies." +msgstr "" +"\n" +"Coidado cos inimigos que caen." + +#: .fake/Translations/flash/05_medivo1.j2l.h:2 +msgctxt "flash/05_medivo1" +msgid "" +"\n" +"Craig is still a doofus!" +msgstr "" +"\n" +"Craig segue a ser un idiota!" + +#: .fake/Translations/flash/05_medivo1.j2l.h:3 +msgctxt "flash/05_medivo1" +msgid "" +"\n" +"Secret Level Time!!!" +msgstr "" +"\n" +"Tempo do nivel secreto!!!" + +#: .fake/Translations/flash/bonus_garglair.j2l.h:1 +msgctxt "flash/bonus_garglair" +msgid "" +"\n" +"Buttstomp A Silver Crate\n" +"To Clear Your Path" +msgstr "" +"\n" +"Esmaga co traseiro unha caixa de prata\n" +"para limpar o camiño" + +#: .fake/Translations/flash/bonus_garglair.j2l.h:2 +msgctxt "flash/bonus_garglair" +msgid "" +"\n" +"Crates can also make platforms appear..." +msgstr "" +"\n" +"As caixas tamén fan aparecer plataformas..." + +#: .fake/Translations/flash/bonus_garglair.j2l.h:3 +msgctxt "flash/bonus_garglair" +msgid "" +"\n" +"Melt the Spring..." +msgstr "" +"\n" +"Derrete o resorte..." + +#: .fake/Translations/flash/bonus_garglair.j2l.h:4 +msgctxt "flash/bonus_garglair" +msgid "" +"\n" +"Leh is a Camper" +msgstr "" +"\n" +"Leh é un campista" + +#: .fake/Translations/monk/01_jung1.j2l.h:1 +msgctxt "monk/01_jung1" +msgid "" +"\n" +"Falling boulders can \n" +"give you a headache." +msgstr "" +"\n" +"As pedras que caen \n" +"poden darche xaquecas." + +#: .fake/Translations/monk/01_jung1.j2l.h:2 +msgctxt "monk/01_jung1" +msgid "" +"\n" +"A Flamethrower works\n" +"well against bugs." +msgstr "" +"\n" +"O lanzachamas é o tal\n" +"contra os bechos." + +#: .fake/Translations/monk/03_hell.j2l.h:1 +msgctxt "monk/03_hell" +msgid "" +"\n" +"Long live the ice level." +msgstr "" +"\n" +"Longa vida ao nivel de xeo." + +#: .fake/Translations/monk/03_hell.j2l.h:2 +msgctxt "monk/03_hell" +msgid "" +"\n" +"Goodnight, bubba!" +msgstr "" +"\n" +"Boa noite, Bubba!" + +#: .fake/Translations/monk/06_damn2.j2l.h:2 +msgctxt "monk/06_damn2" +msgid "" +"\n" +"What the heck? Aaaah! No! \n" +"This is NOT over!" +msgstr "" +"\n" +"Que cousa? Aaaah! Non! \n" +"Isto NON rematou!" + +#: .fake/Translations/prince/01_castle1.j2l.h:1 +msgctxt "prince/01_castle1" +msgid "" +"\n" +"Poles spin you around so\n" +" you can go even faster." +msgstr "" +"\n" +"Os mastros fante xirar para que\n" +" poidas ir máis rápido." + +#: .fake/Translations/prince/01_castle1.j2l.h:2 +msgctxt "prince/01_castle1" +msgid "" +"\n" +"You found a secret area." +msgstr "" +"\n" +"Atopaches unha área secreta." + +#: .fake/Translations/prince/01_castle1.j2l.h:3 +msgctxt "prince/01_castle1" +msgid "" +"\n" +"Secret Treasure Room." +msgstr "" +"\n" +"Cuarto do tesouro secreto." + +#: .fake/Translations/prince/01_castle1.j2l.h:4 +msgctxt "prince/01_castle1" +msgid "" +"\n" +"Nothing to see here." +msgstr "" +"\n" +"Nada que ver aquí." + +#: .fake/Translations/prince/01_castle1.j2l.h:5 +msgctxt "prince/01_castle1" +msgid "" +"\n" +"Collect coins to activate \n" +"bonus warp devices." +msgstr "" +"\n" +"Recolle moedas para activar \n" +"dispositivos de fiestras extra." + +#: .fake/Translations/prince/02_castle1n.j2l.h:1 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"Cheese is green on tuesday." +msgstr "" +"\n" +"O queixo é verde o martes." + +#: .fake/Translations/prince/02_castle1n.j2l.h:2 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"Craig is king doofus." +msgstr "" +"\n" +"Craig é o rei parvo." + +#: .fake/Translations/prince/02_castle1n.j2l.h:3 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"To beat the queen \n" +"shoot her off her ledge." +msgstr "" +"\n" +"Para derrotar á raíña \n" +"tíraa do seu rebordo." + +#: .fake/Translations/prince/02_castle1n.j2l.h:4 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"Good job! \n" +"Now go get Devan Shell!" +msgstr "" +"\n" +"Bo traballo! \n" +"Agora colle a Devan Shell!" + +#: .fake/Translations/prince/02_castle1n.j2l.h:5 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"To kick through these\n" +"blocks, press down and jump!" +msgstr "" +"\n" +"Para pasar a través destes\n" +"bloques, preme abaixo e salto!" + +#: .fake/Translations/prince/02_castle1n.j2l.h:6 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"Press down and jump beneath \n" +"these blocks to break them!" +msgstr "" +"\n" +"Preme abaixo e salta baixo \n" +"nestes bloques para rompelos!" + +#: .fake/Translations/prince/02_castle1n.j2l.h:7 +msgctxt "prince/02_castle1n" +msgid "" +"\n" +"Buttstomp the metal box \n" +"to open key blocks!" +msgstr "" +"\n" +"Esmaga co traseiro a caixa de metal \n" +"para abrir os bloques chave!" + +#: .fake/Translations/prince/03_carrot1.j2l.h:1 +msgctxt "prince/03_carrot1" +msgid "" +"\n" +"Stomp your booty to exit." +msgstr "" +"\n" +"Esmaga o teu botín para saír." + +#: .fake/Translations/prince/03_carrot1.j2l.h:2 +msgctxt "prince/03_carrot1" +msgid "" +"\n" +"This spring is frozen." +msgstr "" +"\n" +"O resorte está conxelado." + +#: .fake/Translations/prince/04_carrot1n.j2l.h:1 +msgctxt "prince/04_carrot1n" +msgid "" +"\n" +"Super dooper secret." +msgstr "" +"\n" +"Secreto súper xenial." + +#: .fake/Translations/prince/04_carrot1n.j2l.h:2 +msgctxt "prince/04_carrot1n" +msgid "" +"\n" +"Shields will give you unlimited \n" +"special ammo for a short time." +msgstr "" +"\n" +"Os escudos danche munición \n" +"especial ilimitada por un tempo." + +#: .fake/Translations/prince/04_carrot1n.j2l.h:4 +msgctxt "prince/04_carrot1n" +msgid "" +"\n" +"Stopwatches will add time to\n" +"the life of a shield." +msgstr "" +"\n" +"Os cronómetros engaden tempo á\n" +"vida dun escudo." + +#: .fake/Translations/prince/04_carrot1n.j2l.h:5 +msgctxt "prince/04_carrot1n" +msgid "" +"\n" +"This schwartzenguard is toast!" +msgstr "" +"\n" +"Este Schwartzenguard está torrado!" + +#: .fake/Translations/prince/06_labrat2.j2l.h:1 +msgctxt "prince/06_labrat2" +msgid "" +"\n" +"\n" +"You cannot defeat me, Jazz!\n" +"Prepare to face my superbot!" +msgstr "" +"\n" +"\n" +"Non me poderás gañar, Jazz!\n" +"Prepárate a enfrontar o súper robot!" + +#: .fake/Translations/prince/06_labrat2.j2l.h:2 +msgctxt "prince/06_labrat2" +msgid "" +"\n" +"\n" +"Ack! I'm outta here!" +msgstr "" +"\n" +"\n" +"Ai! Lisco de aquí!" + +#: .fake/Translations/prince/06_labrat2.j2l.h:3 +msgctxt "prince/06_labrat2" +msgid "" +"\n" +"These blocks are speed blocks.\n" +"Run into them at full speed!" +msgstr "" +"\n" +"Estes son bloques de velocidade.\n" +"Corre cara eles o máis que poidas!" + +#: .fake/Translations/prince/trainer.j2l.h:1 +msgctxt "prince/trainer" +msgid "" +"\n" +"Welcome to Jazz Jackrabbit 2. \n" +" This is a training level." +msgstr "" +"\n" +"Benvida a Jazz Jackrabbit 2. \n" +" Este é un nivel de adestramento." + +#: .fake/Translations/prince/trainer.j2l.h:2 +msgctxt "prince/trainer" +msgid "" +"\n" +"Collect goodies for\n" +"points and surprises." +msgstr "" +"\n" +"Recolle obxectos para\n" +"puntos e sorpresas." + +#: .fake/Translations/prince/trainer.j2l.h:3 +msgctxt "prince/trainer" +msgid "" +"\n" +"After jumping, press jump\n" +"again to do a special move." +msgstr "" +"\n" +"Despois de saltar, preme saltar de\n" +"novo para facer un movemento especial." + +#: .fake/Translations/prince/trainer.j2l.h:4 +msgctxt "prince/trainer" +msgid "" +"\n" +"Some walls can be shot." +msgstr "" +"\n" +"Pódese disparar a algunhas paredes." + +#: .fake/Translations/prince/trainer.j2l.h:5 +msgctxt "prince/trainer" +msgid "" +"\n" +"When in the air, press down\n" +"to stomp with your butt." +msgstr "" +"\n" +"Cando estás no aire, preme abaixo\n" +"para pegar duro co teu traseiro." + +#: .fake/Translations/prince/trainer.j2l.h:6 +msgctxt "prince/trainer" +msgid "" +"\n" +"Secrets abound in Jazz 2. \n" +" Check the walls." +msgstr "" +"\n" +"Os secretos abundan no Jazz 2. \n" +" Comproba as paredes." + +#: .fake/Translations/prince/trainer.j2l.h:7 +msgctxt "prince/trainer" +msgid "" +"\n" +"Good job. Remember to\n" +"look for secrets." +msgstr "" +"\n" +"Bo traballo. Lembra buscar\n" +"polos secretos." + +#: .fake/Translations/prince/trainer.j2l.h:8 +msgctxt "prince/trainer" +msgid "" +"\n" +"Collect gems for \n" +"an extra life." +msgstr "" +"\n" +"Recolle xemas para \n" +"unha vida adicional." + +#: .fake/Translations/prince/trainer.j2l.h:9 +msgctxt "prince/trainer" +msgid "" +"\n" +"Red Gems count\n" +"as one gem." +msgstr "" +"\n" +"As xemas vermellas contan\n" +"como unha xema." + +#: .fake/Translations/prince/trainer.j2l.h:10 +msgctxt "prince/trainer" +msgid "" +"\n" +"Green gems count\n" +"as five gems." +msgstr "" +"\n" +"As xemas verdes contan\n" +"como cinco xemas." + +#: .fake/Translations/prince/trainer.j2l.h:11 +msgctxt "prince/trainer" +msgid "" +"\n" +"Blue gems count\n" +"as ten gems." +msgstr "" +"\n" +"As xemas azuis contan\n" +"como dez xemas." + +#: .fake/Translations/prince/trainer.j2l.h:12 +msgctxt "prince/trainer" +msgid "" +"\n" +"Carrots give you health." +msgstr "" +"\n" +"As cenorias danche saúde." + +#: .fake/Translations/prince/trainer.j2l.h:13 +msgctxt "prince/trainer" +msgid "" +"\n" +"Checkpoints save your\n" +"spot if you lose a life." +msgstr "" +"\n" +"Os puntos de control gardan\n" +"o progreso se perdes unha vida." + +#: .fake/Translations/prince/trainer.j2l.h:14 +msgctxt "prince/trainer" +msgid "" +"\n" +"Collect coins to\n" +"unlock bonus rooms." +msgstr "" +"\n" +"Recolle moedas para\n" +"desbloquear cuartos de bonos." + +#: .fake/Translations/prince/trainer.j2l.h:15 +msgctxt "prince/trainer" +msgid "" +"\n" +"Beware of sharp stuff.\n" +"It hurts." +msgstr "" +"\n" +"Coidado coas cousas aguzadas.\n" +"Mancan." + +#: .fake/Translations/prince/trainer.j2l.h:16 +msgctxt "prince/trainer" +msgid "" +"\n" +"Now youre ready to play.\n" +" Good luck and have fun." +msgstr "" +"\n" +"Agora estás a punto para xogar.\n" +" Boa sorte e divírtete." + +#: .fake/Translations/rescue/01_colon1.j2l.h:1 +msgctxt "rescue/01_colon1" +msgid "" +"\n" +"Buttstomp the manhole cover!" +msgstr "" +"\n" +"Pégalle duro á tampa da arqueta!" + +#: .fake/Translations/rescue/03_psych1.j2l.h:1 +msgctxt "rescue/03_psych1" +msgid "" +"\n" +"Smoke rings will \n" +"make you dizzy." +msgstr "" +"\n" +"Os aneis de fume \n" +"vante marear." + +#: .fake/Translations/secretf/01_easter1.j2l.h:1 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"You can't buttstomp\n" +"so go up and around!" +msgstr "" +"\n" +"Non podes baterlle\n" +"así que sube e xira!" + +#: .fake/Translations/secretf/01_easter1.j2l.h:2 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"No rewards to those\n" +"with itchy trigger fingers." +msgstr "" +"\n" +"Non hai recompensa para eses\n" +"con ronchas nos dedos do gatillo." + +#: .fake/Translations/secretf/01_easter1.j2l.h:3 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"Todays Forcast: Strong Winds!" +msgstr "" +"\n" +"Prognóstico de hoxe: Fortes refachos!" + +#: .fake/Translations/secretf/01_easter1.j2l.h:4 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"Find the crate\n" +"to clear your path." +msgstr "" +"\n" +"Atopa a caixa\n" +"para despexar o camiño." + +#: .fake/Translations/secretf/01_easter1.j2l.h:5 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"Welcome to\n" +"Jazz Jackrabbit 2:\n" +"The Secret Files!" +msgstr "" +"\n" +"Benvida a\n" +"Jazz Jackrabbit 2:\n" +"The Secret Files!" + +#: .fake/Translations/secretf/01_easter1.j2l.h:6 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"Only Spaz can get to\n" +"the room up on the left.\n" +"He may need something\n" +"to stand on." +msgstr "" +"\n" +"Só Spaz pode chegar ao\n" +"cuarto de arriba á esquerda.\n" +"Quizais necesite algo onde\n" +"pousarse." + +#: .fake/Translations/secretf/01_easter1.j2l.h:7 +msgctxt "secretf/01_easter1" +msgid "" +"\n" +"Don't beat Nigel at pool.\n" +"You've veen warned. :)" +msgstr "" +"\n" +"Non lle gañes a Nigel ao billar.\n" +"Advertíuseche, xa sabes. :)" + +#: .fake/Translations/secretf/01_easter1.j2l.h:16 +msgctxt "secretf/01_easter1" +msgid "" +"Eating too many chocolate\n" +"eggs can make you sick :p" +msgstr "" +"Rillar moitos ovos de\n" +"chocolate farate enfermar :p" + +#: .fake/Translations/secretf/02_easter2.j2l.h:1 +msgctxt "secretf/02_easter2" +msgid "" +"\n" +"Sloping Tunnel Entrance" +msgstr "" +"\n" +"Entrada ao túnel inclinado" + +#: .fake/Translations/secretf/02_easter2.j2l.h:2 +msgctxt "secretf/02_easter2" +msgid "" +"\n" +"To access the tunnels above\n" +"find the access warp." +msgstr "" +"\n" +"Para acceder aos túneles de arriba\n" +"atopa a fiestra de acceso." + +#: .fake/Translations/secretf/02_easter2.j2l.h:3 +msgctxt "secretf/02_easter2" +msgid "" +"\n" +"One route leads to riches.\n" +"One route leads to battle." +msgstr "" +"\n" +"Unha ruta leva á riqueza.\n" +"Unha ruta leva á batalla." + +#: .fake/Translations/secretf/03_easter3.j2l.h:1 +msgctxt "secretf/03_easter3" +msgid "" +"\n" +"Only those who can double-jump\n" +"can get to the goodies!" +msgstr "" +"\n" +"Só aqueles que fan o dobre salto\n" +"conseguirán os obxectos!" + +#: .fake/Translations/secretf/03_easter3.j2l.h:2 +msgctxt "secretf/03_easter3" +msgid "" +"\n" +"Find the crate to make\n" +"your climbing blocks appear" +msgstr "" +"\n" +"Atopa a caixa para facer\n" +"que aparezan os bloques a escalar" + +#: .fake/Translations/secretf/03_easter3.j2l.h:3 +msgctxt "secretf/03_easter3" +msgid "" +"\n" +"Stomping this crate also\n" +"free's some enemies :)" +msgstr "" +"\n" +"Esmagando esta caixa tamén\n" +"libera algúns inimigos :)" + +#: .fake/Translations/secretf/04_haunted1.j2l.h:1 +msgctxt "secretf/04_haunted1" +msgid "" +"\n" +"Enter the house with caution....." +msgstr "" +"\n" +"Entra na casa con cautela....." + +#: .fake/Translations/secretf/04_haunted1.j2l.h:3 +msgctxt "secretf/04_haunted1" +msgid "" +"\n" +"Silver Crates can't be broken underwater..." +msgstr "" +"\n" +"As caixas de prata non se poden romper baixo a auga..." + +#: .fake/Translations/secretf/04_haunted1.j2l.h:4 +msgctxt "secretf/04_haunted1" +msgid "" +"\n" +"Water Level control crate above." +msgstr "" +"\n" +"Caixa de control do nivel de auga enriba." + +#: .fake/Translations/secretf/04_haunted1.j2l.h:5 +msgctxt "secretf/04_haunted1" +msgid "" +"\n" +"Stomping crates can be good and bad..." +msgstr "" +"\n" +"Esmagar caixas pode ser bo ou malo..." + +#: .fake/Translations/secretf/04_haunted1.j2l.h:7 +msgctxt "secretf/04_haunted1" +msgid "" +"\n" +"But you need a way to get up there..." +msgstr "" +"\n" +"Pero necesitas unha maneira de chegar arriba..." + +#: .fake/Translations/secretf/06_haunted3.j2l.h:16 +msgctxt "secretf/06_haunted3" +msgid "" +"\n" +"Michelle,\n" +"I will love you always and forever :)" +msgstr "" +"\n" +"Michelle,\n" +"amareite sempre e por sempre :)" + +#: .fake/Translations/secretf/07_town1.j2l.h:1 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"Take to the roof tops!" +msgstr "" +"\n" +"Sube aos tellados!" + +#: .fake/Translations/secretf/07_town1.j2l.h:2 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"The skies above will reward\n" +"those who stomp..." +msgstr "" +"\n" +"Os ceos por riba han recompensar\n" +"aqueles que esmaguen..." + +#: .fake/Translations/secretf/07_town1.j2l.h:3 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"Jump as far over to the\n" +"right as you possibly can..." +msgstr "" +"\n" +"Salta o máis cara á\n" +"dereita que sexas quen..." + +#: .fake/Translations/secretf/07_town1.j2l.h:4 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"Didn't make the jump huh? :)" +msgstr "" +"\n" +"E non fixéchelo salto, meu? :)" + +#: .fake/Translations/secretf/07_town1.j2l.h:5 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"Well Done!" +msgstr "" +"\n" +"Ben feito!" + +#: .fake/Translations/secretf/07_town1.j2l.h:6 +msgctxt "secretf/07_town1" +msgid "" +"\n" +"Use your Special Moves to get up the air cons!\n" +"For Jazz, press Crouch and Jump.\n" +"For Spaz, Press Jump Twice!" +msgstr "" +"\n" +"Usa os movementos especiais para chegar aos condutos!\n" +"Para Jazz, preme agachar e saltar.\n" +"Para Spaz, preme saltar dúas veces!" + +#: .fake/Translations/secretf/08_town2.j2l.h:1 +msgctxt "secretf/08_town2" +msgid "" +"\n" +"Find the crate and the gems are yours!" +msgstr "" +"\n" +"Atopa a caixa e as xemas son túas!" + +#: .fake/Translations/secretf/08_town2.j2l.h:2 +msgctxt "secretf/08_town2" +msgid "" +"\n" +"Springs Don't Work When Frozen..." +msgstr "" +"\n" +"Os resortes non funciona conxelados..." + +#: .fake/Translations/secretf/08_town2.j2l.h:3 +msgctxt "secretf/08_town2" +msgid "" +"\n" +"Collecting 20 coins is more rewarding..." +msgstr "" +"\n" +"Recoller 20 moedas é máis gratificante..." + +#: .fake/Translations/secretf/09_town3.j2l.h:1 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"Find the crate to clear the blocks...." +msgstr "" +"\n" +"Atopa a caixa para limpar estes bloques...." + +#: .fake/Translations/secretf/09_town3.j2l.h:2 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"BEWARE! Flocks of Ravens can\n" +"be very dangerous." +msgstr "" +"\n" +"COIDADO! As mandas de corvos poden\n" +"ser moi perigosas." + +#: .fake/Translations/secretf/09_town3.j2l.h:3 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"The remove the blocks\n" +"look to the tallest building." +msgstr "" +"\n" +"Para quitar os bloques\n" +"mira o edificio máis alto." + +#: .fake/Translations/secretf/09_town3.j2l.h:4 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"Choose a cover and stomp away!" +msgstr "" +"\n" +"Escolle unha cuberta e esmaga forte!" + +#: .fake/Translations/secretf/09_town3.j2l.h:5 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"Hi GeoBunny :)" +msgstr "" +"\n" +"Ola GeoBunny :)" + +#: .fake/Translations/secretf/09_town3.j2l.h:6 +msgctxt "secretf/09_town3" +msgid "" +"\n" +"Goto www.project2.com\n" +"use\n" +"password: BUNNYLOVER\n" +msgstr "" +"\n" +"Vai a www.project2.com\n" +"e usa o\n" +"contrasinal: BUNNYLOVER\n" + +#: .fake/Translations/share/01_share1.j2l.h:1 +msgctxt "share/01_share1" +msgid "" +"\n" +"Shoot these blocks!" +msgstr "" +"\n" +"Dispara a eses bloques!" + +#: .fake/Translations/share/01_share1.j2l.h:2 +msgctxt "share/01_share1" +msgid "" +"\n" +"When in the air, press down\n" +"to stomp with your butt." +msgstr "" +"\n" +"Cando estás no aire, preme abaixo\n" +"para esmagar co teu traseiro." + +#: .fake/Translations/share/01_share1.j2l.h:3 +msgctxt "share/01_share1" +msgid "" +"\n" +"To pass this area, stomp\n" +"the secret metal crate." +msgstr "" +"\n" +"Para pasar esta área, esmaga\n" +"a caixa secreta de metal." + +#: .fake/Translations/share/01_share1.j2l.h:4 +msgctxt "share/01_share1" +msgid "" +"\n" +"You need twenty coins to pass \n" +"through this secret warp!" +msgstr "" +"\n" +"Necesitas vinte moedas para pasar \n" +"a través desta fiestra secreta!" + +#: .fake/Translations/share/01_share1.j2l.h:5 +msgctxt "share/01_share1" +msgid "" +"\n" +"Coins give you access to \n" +"warps that appear later." +msgstr "" +"\n" +"As moedas danche acceso a \n" +"fiestras que aparecen despois." + +#: .fake/Translations/share/01_share1.j2l.h:6 +msgctxt "share/01_share1" +msgid "" +"\n" +"Stomp in the right place and\n" +"you might find a surprise!" +msgstr "" +"\n" +"Esmaga no lugar correcto e\n" +"quizais haches unha sorpresa!" + +#: .fake/Translations/share/01_share1.j2l.h:7 +msgctxt "share/01_share1" +msgid "" +"\n" +"Some crates contain\n" +"bombs or baddies!" +msgstr "" +"\n" +"Algunhas caixas conteñen\n" +"bombas ou malotes!" + +#: .fake/Translations/share/02_share2.j2l.h:1 +msgctxt "share/02_share2" +msgid "" +"\n" +"You need twenty coins to pass \n" +"through this secret warp!" +msgstr "" +"\n" +"Necesitas vinte moedas para pasar \n" +"a través desta fiestra secreta!" + +#: .fake/Translations/share/02_share2.j2l.h:2 +msgctxt "share/02_share2" +msgid "" +"\n" +"A flamethrower works well \n" +"against nasty bugs." +msgstr "" +"\n" +"O lanzachamas vai ben \n" +"contra vermes noxentos." + +#: .fake/Translations/share/02_share2.j2l.h:3 +msgctxt "share/02_share2" +msgid "" +"\n" +"Smoke rings will make\n" +"you very dizzy!" +msgstr "" +"\n" +"Os aneis de fumes farán\n" +"que te marees!" + +#: .fake/Translations/share/03_share3.j2l.h:1 +msgctxt "share/03_share3" +msgid "" +"\n" +"Beware the witch! She can\n" +"turn you into a frog." +msgstr "" +"\n" +"Coidado coa bruxa! Pódete\n" +"converter nunha rá." + +#: .fake/Translations/share/03_share3.j2l.h:2 +msgctxt "share/03_share3" +msgid "" +"\n" +"If you are turned into a frog\n" +"Eva Earlong can help!" +msgstr "" +"\n" +"Se te convertes nunha ra\n" +"Eva Earlong pode axudar!" + +#: .fake/Translations/share/03_share3.j2l.h:3 +msgctxt "share/03_share3" +msgid "" +"\n" +"You made it! This is the end\n" +" of the shareware version.\n" +"Now check out the order info\n" +"for M O R E!" +msgstr "" +"\n" +"Fixéchelo! Este é o final\n" +" da versión de demostración.\n" +"Agora bota un ollo á folla de pedido\n" +"para M Á I S!" + +#: .fake/Translations/xmas99/01_xmas1.j2l.h:1 +msgctxt "xmas99/01_xmas1" +msgid "" +"\n" +"Watch out for the spikes below!" +msgstr "" +"\n" +"Coidado cos picos de abaixo!" + +#: .fake/Translations/xmas99/01_xmas1.j2l.h:2 +msgctxt "xmas99/01_xmas1" +msgid "" +"\n" +"You can buttstomp through\n" +"some of the weakspots\n" +"in the pathways!" +msgstr "" +"\n" +"Podes esmagar por medio\n" +"de algúns puntos febles\n" +"nos camiños!" + +#: .fake/Translations/xmas99/01_xmas1.j2l.h:3 +msgctxt "xmas99/01_xmas1" +msgid "" +"\n" +"Some blocks can only\n" +"be broken with a\n" +"certain weapon." +msgstr "" +"\n" +"Algúns bloques só se\n" +"poden romper cunha\n" +"arma específica." + +#: .fake/Translations/xmas99/01_xmas1.j2l.h:4 +msgctxt "xmas99/01_xmas1" +msgid "" +"\n" +"Welcome to Christmas Chronicles!" +msgstr "" +"\n" +"Benvida a Christmas Chronicles!" + +#: .fake/Translations/xmas99/01_xmas1.j2l.h:5 +msgctxt "xmas99/01_xmas1" +msgid "" +"\n" +"Seasons Greetings from\n" +"Epic MegaGames\n" +"Orange Games and\n" +"Project 2 Interactive!" +msgstr "" +"\n" +"Saúdos estacionais de\n" +"Epic MegaGames\n" +"Orange Games e\n" +"Project 2 Interactive!" + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:1 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"You can stand on top\n" +"of some of the trees!" +msgstr "" +"\n" +"Podes parar encima de\n" +"algunhas das árbores!" + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:2 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"You can buttstomp through\n" +"some of the weakspots\n" +"in the pathways!" +msgstr "" +"\n" +"Podes esmagar por medio\n" +"de algúns puntos febles\n" +"nos camiños!" + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:3 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"Punching the blocks above you\n" +"can be rewarding." +msgstr "" +"\n" +"Bater nos bloques encima túa\n" +"pode ser beneficioso." + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:6 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"Gem Trail Entry Crate." +msgstr "" +"\n" +"Caixón de entrada ao sendeiro de xemas." + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:7 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"Gem Trail Entrance.\n" +"Climb the treetops to find\n" +"and stomp the Entry Crate." +msgstr "" +"\n" +"Entrada ao sendeiro de xemas.\n" +"Rube ás copas das árbores para atopar\n" +"e esmagar a caixa de entrada." + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:14 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"\n" +"Hi There, Piggy!\n" +"\n" +"- Poopy" +msgstr "" +"\n" +"\n" +"Ola, Piggy!\n" +"\n" +"- Poopy" + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:15 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"\n" +"Michelle:\n" +"You've changed my life in so many ways\n" +"I dedicate this project to you.\n" +"I love you so much." +msgstr "" +"\n" +"\n" +"Michelle:\n" +"Cambiaches a miña vida de moitas formas\n" +"Adícote este proxecto.\n" +"Quérote moito." + +#: .fake/Translations/xmas99/02_xmas2.j2l.h:16 +msgctxt "xmas99/02_xmas2" +msgid "" +"\n" +"\n" +"Kassi Nicole:\n" +"A million things I long to say to you\n" +"But my words always lead to the same ending\n" +"I love you, I love you." +msgstr "" +"\n" +"\n" +"Kassi Nicole:\n" +"Quixera dicirche un millón de cousas\n" +"pero as miñas palabras levan ao mesmo fin\n" +"Quérote, quérote." + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:1 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Please use your TNT wisely." +msgstr "" +"\n" +"Usa a túa TNT sabiamente." + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:2 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Don't lose your grip!" +msgstr "" +"\n" +"Non perdas o control!" + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:3 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Welcome to Burrowsville\n" +"Please drive carefully." +msgstr "" +"\n" +"Benvida a Burrowsville\n" +"Conduce con coidado." + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:4 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"That bridge doesnt\n" +"look too safe..." +msgstr "" +"\n" +"Esa ponte non se ve\n" +"moi segura..." + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:5 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Robert and Craig:\n" +"Springs RULE! :)" +msgstr "" +"\n" +"Robert e Craig:\n" +"Os resortes MOLAN! :)" + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:6 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Now leaving Burrowsville\n" +"Please visit again." +msgstr "" +"\n" +"Agora abandonas Burrowsville\n" +"Por favor, visítanos de novo." + +#: .fake/Translations/xmas99/03_xmas3.j2l.h:7 +msgctxt "xmas99/03_xmas3" +msgid "" +"\n" +"Password: xmasbunny\n" +"Please visit\n" +"www.project2.com" +msgstr "" +"\n" +"Contrasinal: xmasbunny\n" +"Por favor, visita\n" +"www.project2.com" + +#. TRANSLATORS: Header text in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:130 +msgid "" +"Reimplementation of the game \f[c:#9e7056]Jazz Jackrabbit 2\f[/c] released " +"in 1998. Supports various versions of the game (Shareware Demo, Holiday Hare " +"'98, The Secret Files and Christmas Chronicles). Also, it partially supports " +"some features of JJ2+ extension." +msgstr "" +"Re-implementación do xogo \f[c:#9e7056]Jazz Jackrabbit 2\f[/c] publicado no " +"1998. Admite varias versións do xogo (Shareware Demo, Holiday Hare '98, The " +"Secret Files e Christmas Chronicles). Tamén admite parcialmente algunhas " +"características da extensión JJ2+." + +#. TRANSLATORS: Link to website under header text in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:132 +#, c-format +msgid "For more information, visit the official website: %s" +msgstr "Para máis información, visita a páxina web oficial: %s" + +#. TRANSLATORS: Label in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:134 +msgid "Developers" +msgstr "Desenvolvedores" + +#. TRANSLATORS: Label in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:136 +msgid "Contributors" +msgstr "Colaboradores" + +#. TRANSLATORS: Label in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:138 +msgid "Translators" +msgstr "Tradutores" + +#. TRANSLATORS: Footer text in About section +#: Sources/Jazz2/UI/Menu/AboutSection.cpp:140 +msgid "" +"This project uses modified \f[c:#9e7056]nCine\f[/c] game engine and " +"following libraries:" +msgstr "" +"Este proxecto usa o motor de xogo \f[c:#9e7056]nCine\f[c] modificado e as " +"seguintes librarías:" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:59 +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:76 +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:148 +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:150 +msgid "Play Story" +msgstr "Xogar historia" + +#. TRANSLATORS: Menu item in main menu (Emscripten only) +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:62 +msgid "Play Shareware Demo" +msgstr "Xogar Shareware Demo" + +#. TRANSLATORS: Menu item in main menu (Emscripten only) +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:67 +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:66 +msgid "Import Episodes" +msgstr "Importar episodios" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:72 +msgid "Continue" +msgstr "Continuar" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:79 +msgid "Play Custom Game" +msgstr "Xogar partida personalizada" + +#. TRANSLATORS: Menu item in main menu +#. TRANSLATORS: Menu item in Play Custom Game section +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:82 +#: Sources/Jazz2/UI/Menu/CustomLevelSelectSection.cpp:126 +#: Sources/Jazz2/UI/Menu/PlayCustomSection.cpp:19 +msgid "Play Custom Levels" +msgstr "Xogar niveis personalizados" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:86 +msgid "Highscores" +msgstr "Máximas puntuacións" + +#. TRANSLATORS: Menu item in main menu +#. TRANSLATORS: Subheader in First Run section +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:88 +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:58 +#: Sources/Jazz2/UI/Menu/OptionsSection.cpp:41 +#: Sources/Jazz2/UI/Menu/PauseSection.cpp:15 +msgid "Options" +msgstr "Opcións" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:90 +msgid "About" +msgstr "Acerca de" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:93 +msgid "Quit" +msgstr "Saír" + +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:195 +msgid "Access to external storage has been granted!" +msgstr "Acceso ao almacenamento externo garantido!" + +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:197 +msgid "" +"\f[c:#337233]Restart the game to read \f[c:#9e7056]Jazz Jackrabbit 2\f[c:" +"#337233] files correctly." +msgstr "" +"\f[c:#337233]Restabelece o xogo para ler os ficheiros do \f[c:#9e7056]Jazz " +"Jackrabbit 2\f[c:#337233] correctamente." + +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:202 +msgid "" +"\f[c:#704a4a]This game requires original \f[c:#9e7056]Jazz Jackrabbit 2\f[c:" +"#704a4a] files!" +msgstr "" +"\f[c:#704a4a]Este xogo require ficheiros do \f[c:#9e7056]Jazz Jackrabbit " +"2\f[c:#704a4a] orixinal!" + +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:204 +msgid "Make sure Jazz Jackrabbit 2 files are present in following path:" +msgstr "" +"Asegura que os ficheiros do Jazz Jackrabbit 2 estean no seguinte camiño:" + +#. TRANSLATORS: Menu item in main menu (Android 11+ only) +#: Sources/Jazz2/UI/Menu/BeginSection.cpp:212 +msgid "Allow access to external storage" +msgstr "Permite o acceso ao almacenamento externo" + +#. TRANSLATORS: Menu item in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:20 +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:171 +#, c-format +msgid "Remap Controls for Player %i" +msgstr "Reasignar controis para participante %i" + +#. TRANSLATORS: Menu item in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:24 +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:174 +msgid "Remap Controls" +msgstr "Reconfigurar controis" + +#. TRANSLATORS: Menu item in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:27 +#: Sources/Jazz2/UI/Menu/TouchControlsOptionsSection.cpp:45 +msgid "Touch Controls" +msgstr "Controis táctiles" + +#. TRANSLATORS: Menu item in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:29 +msgid "Toggle Run" +msgstr "Alternar correr" + +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:30 +msgid "Gamepad Button Labels" +msgstr "Etiquetas dos botóns do mando" + +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:32 +msgid "Gamepad Rumble" +msgstr "Vibración do mando" + +#. TRANSLATORS: Menu item in Options > Controls section (Android only) +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:36 +msgid "Native Back Button" +msgstr "Botón atrás nativo" + +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:38 +#: Sources/Jazz2/UI/Menu/InputDiagnosticsSection.cpp:72 +msgid "Input Diagnostics" +msgstr "Diagnoses de entrada" + +#. TRANSLATORS: Menu item in Options section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:71 +#: Sources/Jazz2/UI/Menu/OptionsSection.cpp:25 +msgid "Controls" +msgstr "Controis" + +#. TRANSLATORS: Option for Gamepad Rumble in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:121 +msgid "Strong" +msgstr "Forte" + +#. TRANSLATORS: Option for Gamepad Rumble in Options > Controls section +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:124 +msgid "Weak" +msgstr "Feble" + +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:125 +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:134 +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:128 +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:133 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:168 +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:123 +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:127 +msgid "Disabled" +msgstr "Desactivado" + +#: Sources/Jazz2/UI/Menu/ControlsOptionsSection.cpp:134 +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:128 +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:133 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:159 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:162 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:168 +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:127 +msgid "Enabled" +msgstr "Activado" + +#. TRANSLATORS: Menu item to select player character (Jazz, Spaz, Lori) +#: Sources/Jazz2/UI/Menu/CreateServerOptionsSection.cpp:31 +msgid "Character" +msgstr "Personaxe" + +#. TRANSLATORS: Menu item to select game mode +#: Sources/Jazz2/UI/Menu/CreateServerOptionsSection.cpp:33 +msgid "Game Mode" +msgstr "Modo de xogo" + +#. TRANSLATORS: Menu item to create server with selected settings +#: Sources/Jazz2/UI/Menu/CreateServerOptionsSection.cpp:35 +msgid "Create Server" +msgstr "Crear servidor" + +#: Sources/Jazz2/UI/Menu/CustomLevelSelectSection.cpp:139 +msgid "No custom level found!" +msgstr "Non se atopa nivel personalizado!" + +#. TRANSLATORS: Menu item in Play Custom Game section +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:148 +#: Sources/Jazz2/UI/Menu/PlayCustomSection.cpp:21 +msgid "Play Story in Cooperation" +msgstr "Xogar historia en cooperativo" + +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:160 +msgid "No episode found!" +msgstr "Non se atopa episodio!" + +#. TRANSLATORS: Menu subitem in Play Story section +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:206 +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:207 +msgid "Restart episode" +msgstr "Restabelecer episodio" + +#. TRANSLATORS: Information in Play Story section that episode is locked because the previous episode is not complete +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:229 +#, c-format +msgid "You must complete \"%s\" first!" +msgstr "Tes que completar \"%s\" antes!" + +#. TRANSLATORS: Information in Play Story section that episode is locked +#: Sources/Jazz2/UI/Menu/EpisodeSelectSection.cpp:233 +msgid "Episode is locked!" +msgstr "Episodio bloqueado!" + +#. TRANSLATORS: Menu item in First Run section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:16 +msgid "Legacy" +msgstr "Legado" + +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:16 +msgid "I want to play the game the way it used to be." +msgstr "Quero xogar ao xogo como se debería facer." + +#. TRANSLATORS: Menu item in First Run section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:18 +msgid "Reforged" +msgstr "Reforxado" + +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:18 +msgid "I want to play the game with something new." +msgstr "Quero xogar ao xogo con algo novo." + +#. TRANSLATORS: Header in First Run section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:54 +msgid "Welcome to \f[c:#9e7056]Jazz Jackrabbit 2\f[/c] reimplementation!" +msgstr "Benvida a \f[c:#9e7056]Jazz Jackrabbit 2\f[/c] re-implementado!" + +#. TRANSLATORS: Menu item in Options section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:58 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:97 +#: Sources/Jazz2/UI/Menu/OptionsSection.cpp:17 +msgid "Gameplay" +msgstr "Axustes do xogo" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:58 +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:70 +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:42 +msgid "Enhancements" +msgstr "Melloras" + +#. TRANSLATORS: Subheader in First Run section +#: Sources/Jazz2/UI/Menu/FirstRunSection.cpp:58 +#, c-format +msgid "" +"You can choose your preferred play style.\n" +"This option can be changed at any time in \f[c:#707070]%s\f[/c] > \f[c:" +"#707070]%s\f[/c] > \f[c:#707070]%s\f[/c].\n" +"For more information, visit %s and  Discord!" +msgstr "" +"Podes escoller o teu estilo de xogo preferido.\n" +"Esta opción pode cambiarse en calquera momento en \f[c:#707070]%s\f[/c] > " +"\f[c:#707070]%s\f[/c] > \f[c:#707070]%s\f[/c].\n" +"Para máis información, visita %s e  Discord!" + +#. TRANSLATORS: Menu item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:16 +msgid "Reforged Gameplay" +msgstr "Xogabilidade reforxada" + +#. TRANSLATORS: Menu item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:18 +msgid "Reforged HUD" +msgstr "HUD reforxado" + +#. TRANSLATORS: Menu item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:20 +msgid "Reforged Main Menu" +msgstr "Menú principal reforxado" + +#. TRANSLATORS: Menu item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:22 +msgid "Ledge Climbing" +msgstr "Escalada de saíntes" + +#. TRANSLATORS: Menu item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:24 +msgid "Weapon Wheel" +msgstr "Roda de armas" + +#. TRANSLATORS: Header in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:74 +msgid "You can enable enhancements that were added to this remake." +msgstr "Podes activar as melloras engadidas a este remake." + +#. TRANSLATORS: Option for Weapon Wheel item in Options > Gameplay > Enhancements section +#: Sources/Jazz2/UI/Menu/GameplayEnhancementsSection.cpp:127 +msgid "Enabled With Ammo Count" +msgstr "Activado con reconto de munición" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:44 +#: Sources/Jazz2/UI/Menu/LanguageSelectSection.cpp:42 +msgid "Language" +msgstr "Idioma" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:47 +msgid "Scripting" +msgstr "Secuencia de comandos" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:51 +msgid "Allow Cheats" +msgstr "Permitir trucos" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:53 +msgid "Overwrite Episode Completion" +msgstr "Sobrescribir episodio completado" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:57 +msgid "Discord Integration" +msgstr "Integración co Discord" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:61 +msgid "Razer Chroma™" +msgstr "Razer Chroma™" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:65 +msgid "Browse \"Source\" Directory" +msgstr "Explorar directorio \"Source\"" + +#. TRANSLATORS: Menu item in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:70 +#: Sources/Jazz2/UI/Menu/RefreshCacheSection.cpp:77 +msgid "Refresh Cache" +msgstr "Recargar caché" + +#. TRANSLATORS: Option for Allow Cheats in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:137 +msgid "\f[c:#d86664]Yes\f[/c]" +msgstr "\f[c:#d86664]Si\f[/c]" + +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:137 +msgid "No" +msgstr "Non" + +#. TRANSLATORS: Option for Overwrite Episode Completion in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:141 +msgid "No Cheats Only" +msgstr "Só sen trucos" + +#. TRANSLATORS: Option for Overwrite Episode Completion in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:144 +msgid "Higher Score Only" +msgstr "Só puntuación máis alta" + +#. TRANSLATORS: Option for Overwrite Episode Completion in Options > Gameplay section +#: Sources/Jazz2/UI/Menu/GameplayOptionsSection.cpp:146 +msgid "Always" +msgstr "Sempre" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:19 +msgid "Rescale Mode" +msgstr "Modo de escalado" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:27 +msgid "Fullscreen" +msgstr "A toda pantalla" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:31 +msgid "Antialiasing" +msgstr "Suavizado" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:33 +msgid "Water Quality" +msgstr "Calidade da auga" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:35 +msgid "Show Player Trails" +msgstr "Amosar rastro do xogador" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:37 +msgid "Preferred Splitscreen" +msgstr "Pantalla partida preferida" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:39 +msgid "Prefer Zoom Out" +msgstr "Afastamento preferido" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:41 +msgid "Keep Aspect Ratio In Cinematics" +msgstr "Manter proporción do aspecto nas cinemáticas" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:43 +msgid "Unaligned Viewport" +msgstr "Xanela gráfica sen aliñar" + +#. TRANSLATORS: Menu item in Options > Graphics section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:45 +msgid "Performance Metrics" +msgstr "Métricas de rendemento" + +#. TRANSLATORS: Menu item in Options section +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:78 +#: Sources/Jazz2/UI/Menu/OptionsSection.cpp:19 +msgid "Graphics" +msgstr "Gráficos" + +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:118 +msgid "Low" +msgstr "Baixo" + +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:118 +msgid "High" +msgstr "Alto" + +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:120 +msgid "Vertical" +msgstr "Vertical" + +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:120 +msgid "Horizontal" +msgstr "Horizontal" + +#: Sources/Jazz2/UI/Menu/GraphicsOptionsSection.cpp:123 +msgid "Enabled \f[c:#d0705d](Experimental)\f[/c]" +msgstr "Activado \f[c:#d0705d](experimental)\f[/c]" + +#: Sources/Jazz2/UI/Menu/HighscoresSection.cpp:105 +msgid "Highscores for \f[c:#d0705d]Base game\f[/c]" +msgstr "Mellores puntuacións para \f[c:#d0705d]xogo base\f[/c]" + +#: Sources/Jazz2/UI/Menu/HighscoresSection.cpp:115 +#, c-format +msgid "Highscores for \f[c:#d0705d]%s\f[/c]" +msgstr "Mellores puntuacións para \f[c:#d0705d]%s\f[/c]" + +#. TRANSLATORS: Header in Import Episodes section +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:70 +msgid "Select files of your original game to unlock additional episodes" +msgstr "" +"Selecciona ficheiros do xogo orixinal para desbloquear episodios adicionais" + +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:76 +msgid "Processing of selected files..." +msgstr "Procesando os ficheiros seleccionados..." + +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:79 +msgid "Waiting for files..." +msgstr "Agardando por ficheiros..." + +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:85 +msgid "No files were selected!" +msgstr "Non se seleccionaron ficheiros!" + +#: Sources/Jazz2/UI/Menu/ImportSection.cpp:90 +msgid "No new episodes were imported!" +msgstr "Non se importaron novos episodios!" + +#: Sources/Jazz2/UI/Menu/InputDiagnosticsSection.cpp:87 +msgid "No gamepads are detected!" +msgstr "Non se detectan mandos!" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:18 +msgid "Battle" +msgstr "Batalla" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:20 +msgid "Team Battle" +msgstr "Batalla en equipo" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:22 +msgid "Capture The Flag" +msgstr "Capturar a bandeira" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:24 +msgid "Race" +msgstr "Carreira" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:26 +msgid "Team Race" +msgstr "Carreira en equipo" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:28 +msgid "Treasure Hunt" +msgstr "Busca do tesouro" + +#. TRANSLATORS: Menu item in Select Game Mode section +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:30 +msgid "Cooperation" +msgstr "Cooperativo" + +#: Sources/Jazz2/UI/Menu/MultiplayerGameModeSelectSection.cpp:46 +msgid "Select Game Mode" +msgstr "Selecciona modo de xogo" + +#. TRANSLATORS: Menu item in Options section +#: Sources/Jazz2/UI/Menu/OptionsSection.cpp:22 +#: Sources/Jazz2/UI/Menu/SoundsOptionsSection.cpp:106 +msgid "Sounds" +msgstr "Sons" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/PauseSection.cpp:13 +msgid "Resume" +msgstr "Retomar" + +#. TRANSLATORS: Menu item in main menu +#: Sources/Jazz2/UI/Menu/PauseSection.cpp:17 +msgid "Save & Exit" +msgstr "Gardar e saír" + +#. TRANSLATORS: Menu item in Play Custom Game section +#: Sources/Jazz2/UI/Menu/PlayCustomSection.cpp:23 +msgid "Create Custom Server" +msgstr "Crear servidor propio" + +#. TRANSLATORS: Menu item in Play Custom Game section +#: Sources/Jazz2/UI/Menu/PlayCustomSection.cpp:25 +msgid "Connect To Server" +msgstr "Conectar ao servidor" + +#: Sources/Jazz2/UI/Menu/RefreshCacheSection.cpp:80 +msgid "Processing of files in \f[c:#9e7056]\"Source\"\f[/c] directory..." +msgstr "Procesando ficheiros no directorio \f[c:0x9e7056]\"Source\"\f[c]..." + +#: Sources/Jazz2/UI/Menu/RefreshCacheSection.cpp:83 +msgid "Newly added levels and episodes will be available soon." +msgstr "Os novos niveis e episodios engadidos estarán dispoñíbeis axiña." + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:17 +msgid "Left" +msgstr "Esquerda" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:19 +msgid "Right" +msgstr "Dereita" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:21 +msgid "Up" +msgstr "Arriba" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:23 +msgid "Down" +msgstr "Abaixo" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:25 +msgid "Fire" +msgstr "Disparar" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:27 +msgid "Jump" +msgstr "Saltar" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:29 +msgid "Run" +msgstr "Correr" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:31 +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:188 +msgid "Change Weapon" +msgstr "Cambiar arma" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:33 +msgid "Back" +msgstr "Atrás" + +#. TRANSLATORS: Menu item in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:37 +#, c-format +msgid "Weapon %i" +msgstr "Arma %i" + +#. TRANSLATORS: Bottom hint in Options > Controls > Remap Controls section +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:182 +msgid "Press any key or button to assign" +msgstr "Preme una tecla ou botón para asignar" + +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:188 +msgid "or" +msgstr "ou" + +#. TRANSLATORS: Bottom hint in Options > Controls > Remap Controls section, prefixed with key/button to press +#: Sources/Jazz2/UI/Menu/RemapControlsSection.cpp:194 +msgid "to remove assignment" +msgstr "para quitar asignación" + +#. TRANSLATORS: Menu item in Options > Graphics > Rescale Mode section +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:22 +msgid "None / Pixel-perfect" +msgstr "Nada / Píxel perfecto" + +#. TRANSLATORS: Menu item in Options > Graphics > Rescale Mode section +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:29 +msgid "CRT Scanlines" +msgstr "CRT liñas de escaneado" + +#. TRANSLATORS: Menu item in Options > Graphics > Rescale Mode section +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:31 +msgid "CRT Shadow Mask" +msgstr "CRT máscara de sombra" + +#. TRANSLATORS: Menu item in Options > Graphics > Rescale Mode section +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:33 +msgid "CRT Aperture Grille" +msgstr "CRT grella de apertura" + +#. TRANSLATORS: Menu item in Options > Graphics > Rescale Mode section +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:35 +msgid "Monochrome" +msgstr "Monocromático" + +#: Sources/Jazz2/UI/Menu/RescaleModeSection.cpp:53 +msgid "Select Rescale Mode" +msgstr "Selecciona modo de escalado" + +#: Sources/Jazz2/UI/Menu/ServerSelectSection.cpp:108 +msgid "Connect to Server" +msgstr "Conectar ao servidor" + +#: Sources/Jazz2/UI/Menu/ServerSelectSection.cpp:121 +msgid "No servers found, but still searchin'!" +msgstr "Non se atoparon servidores, pero seguimos a busca!" + +#: Sources/Jazz2/UI/Menu/SimpleMessageSection.cpp:46 +msgid "Press \f[c:#d0705d]Fire\f[/c] to continue" +msgstr "Preme \f[c:#d0705d]Disparo\f[/c] para seguir" + +#. TRANSLATORS: Menu item in Options > Sounds section +#: Sources/Jazz2/UI/Menu/SoundsOptionsSection.cpp:15 +msgid "Master Volume" +msgstr "Volume xeral" + +#. TRANSLATORS: Menu item in Options > Sounds section +#: Sources/Jazz2/UI/Menu/SoundsOptionsSection.cpp:17 +msgid "SFX Volume" +msgstr "Volume efectos" + +#. TRANSLATORS: Menu item in Options > Sounds section +#: Sources/Jazz2/UI/Menu/SoundsOptionsSection.cpp:19 +msgid "Music Volume" +msgstr "Volume música" + +#. TRANSLATORS: Menu item to select number of players +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:18 +msgid "Number of Local Players" +msgstr "Número de participantes locais" + +#. TRANSLATORS: Menu item to select difficulty +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:20 +msgid "Difficulty" +msgstr "Dificultade" + +#. TRANSLATORS: Menu item to start selected episode/level +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:22 +msgid "Start" +msgstr "Comezar" + +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:294 +msgid "Easy" +msgstr "Fácil" + +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:294 +msgid "Medium" +msgstr "Medio" + +#: Sources/Jazz2/UI/Menu/StartGameOptionsSection.cpp:294 +msgid "Hard" +msgstr "Difícil" + +#. TRANSLATORS: Header in Options > Controls > Touch Controls section +#: Sources/Jazz2/UI/Menu/TouchControlsOptionsSection.cpp:49 +msgid "You can adjust position of the touch zones by drag and drop." +msgstr "Podes axustar a posición das zonas de toque por esvarar e soltar." + +#: Sources/Main.cpp:273 Sources/Main.cpp:328 +#, c-format +msgid "Connecting to %s:%u..." +msgstr "Conectando a %s:%u..." + +#: Sources/Main.cpp:525 Sources/Main.cpp:573 +msgid "" +"\f[c:#704a4a]Cannot load specified level!\f[/c]\n" +"\n" +"\n" +"Make sure all necessary files\n" +"are accessible and try it again." +msgstr "" +"\f[c:#704a4a]Non se pode cargar o nivel especificado!\f[/c]\n" +"\n" +"\n" +"Asegura que todo ficheiro necesario\n" +"sexa accesíbel e proba de novo." + +#: Sources/Main.cpp:627 +msgid "" +"\f[c:#704a4a]Cannot resume saved state!\f[/c]\n" +"\n" +"\n" +"Make sure all necessary files\n" +"are accessible and try it again." +msgstr "" +"\f[c:#704a4a]Non se pode retomar o progreso!\f[/c]\n" +"\n" +"\n" +"Asegura que todo ficheiro necesario\n" +"sexa accesíbel e proba de novo." + +#: Sources/Main.cpp:764 +msgid "" +"\f[c:#704a4a]Cannot connect to the server!\f[/c]\n" +"\n" +"\n" +"Your client version is not compatible with the server." +msgstr "" +"\f[c:#704a4a]Non se pode conectar co servidor!\f[/c]\n" +"\n" +"\n" +"A túa versión do cliente non é compatíbel coa do servidor." + +#: Sources/Main.cpp:765 +msgid "" +"\f[c:#704a4a]Cannot connect to the server!\f[/c]\n" +"\n" +"\n" +"Server capacity is full.\n" +"Please try it later." +msgstr "" +"\f[c:#704a4a]Non se pode conectar co servidor!\f[/c]\n" +"\n" +"\n" +"O servidor está completo.\n" +"Proba máis tarde." + +#: Sources/Main.cpp:766 +msgid "" +"\f[c:#704a4a]Cannot connect to the server!\f[/c]\n" +"\n" +"\n" +"Server is not in a state where it can process your request.\n" +"Please try again in a few seconds." +msgstr "" +"\f[c:#704a4a]Non se pode conectar co servidor!\f[/c]\n" +"\n" +"\n" +"O servidor non está nun estado que poida procesar a túa solicitude.\n" +"Proba de novo dentro dun pouco." + +#: Sources/Main.cpp:767 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"Server is shutting down.\n" +"Please try it later." +msgstr "" +"\f[c:#704a4a]Non se pode conectar co servidor!\f[/c]\n" +"\n" +"\n" +"O servidor está completo.\n" +"Proba máis tarde." + +#: Sources/Main.cpp:768 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"Server is shutting down for maintenance.\n" +"Please try it again later." +msgstr "" +"\f[c:#704a4a]Pechouse a conexión!\f[/c]\n" +"\n" +"\n" +"O servidor estase apagando para mantemento.\n" +"Proba máis tarde." + +#: Sources/Main.cpp:769 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"Server is shutting down for reconfiguration.\n" +"Please try it again later." +msgstr "" +"\f[c:#704a4a]Pechouse a conexión!\f[/c]\n" +"\n" +"\n" +"O servidor estase apagando para configurarse.\n" +"Proba máis tarde." + +#: Sources/Main.cpp:770 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"Server is shutting down for update.\n" +"Please check your client version and try it again in a minute." +msgstr "" +"\f[c:#704a4a]Pechouse a conexión!\f[/c]\n" +"\n" +"\n" +"O servidor estase apagando para unha actualización.\n" +"Comproba a túa versión de cliente e proba nun minuto." + +#: Sources/Main.cpp:771 +msgid "" +"\f[c:#704a4a]Connection has been lost!\f[/c]\n" +"\n" +"\n" +"Please try it again and if the problem persists,\n" +"check your network connection." +msgstr "" +"\f[c:#704a4a]Perdeuse a conexión!\f[/c]\n" +"\n" +"\n" +"Proba de novo e se o problema continúa,\n" +"revisa a túa conexión á rede." + +#: Sources/Main.cpp:772 +msgid "" +"\f[c:#704a4a]Cannot connect to the server!\f[/c]\n" +"\n" +"\n" +"The server is not responding for connection request." +msgstr "" +"\f[c:#704a4a]Non se pode conectar co servidor!\f[/c]\n" +"\n" +"\n" +"A túa versión do cliente non é compatíbel coa do servidor." + +#: Sources/Main.cpp:773 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"You have been \f[c:#907050]kicked\f[/c] off the server.\n" +"Contact server administrators for more information." +msgstr "" +"\f[c:#704a4a]Pechouse a conexión!\f[/c]\n" +"\n" +"\n" +"Fuches \f[c:#907050]expulsado\f[/c] do servidor.\n" +"Contacta coa administración do servidor para máis información." + +#: Sources/Main.cpp:774 +msgid "" +"\f[c:#704a4a]Connection has been closed!\f[/c]\n" +"\n" +"\n" +"You have been \f[c:#725040]banned\f[/c] off the server.\n" +"Contact server administrators for more information." +msgstr "" +"\f[c:#704a4a]Pechouse a conexión!\f[/c]\n" +"\n" +"\n" +"Fuches \f[c:#725040]baneado\f[/c] do servidor.\n" +"Contacta coa administración do servidor para máis información." + +#~ msgid "Creating server..." +#~ msgstr "Creando servidor..." + +#~ msgid "Error" +#~ msgstr "Erro" + +#~ msgid "Created By" +#~ msgstr "Creado por" diff --git a/Content/Translations/pl.mo b/Content/Translations/pl.mo index 96bab58dcfc55e001074ba794b4b7c95f9d73e83..a15ae720dd3dee672916b565bf669f2f95f8d997 100644 GIT binary patch delta 2330 zcmXZdeN2{B7{~Dok$@Blc@YxfAu&i0Xa*!wA!-^Rf{0nZQ3NQUg(Q_0k3}ysq(6W; z{|I$0MkNawm2J?>{<4?p7Hhh4vw^c*v7~8h#9H6q&i&Wtocn&xxvz6w*L^<|cLIL7 z6L4mBsNXlstb4s#otb@FWLAsu#b)i;hBX*g;;uJiC-a}M8+UIo^WzM*;j5))y=WWF zo`VxOjDcllAL3cmx~g)sr|@<;%cB^SZZf+It8qEj;{rT^Y52K!e;i|&-}L5IVHU(Z z7=0Lq(U^hZxCZaR&7L(lmw5{YV_OB`M>6Q(f;@@ZU>HO38=Qw@csGutHkd>OGVR@u z*z7j+VFcGxaSrBTB0i1^v=(*HM$~@Ieg?}Jw4zQr;N7@_@ysVsky@o0)v*v%02LU5 zRhWc(FcLdZfuBUJ`v~>GAtX@1P>=#yIT9d_0eV_#e*4 zSzFB>#As9i>u?d)d-Efxz)$02cm-oHmd;y%nHZ$@UB|%3g$<}5>_a`^EpL7t71$uE z7e-Ju{ubl#Dyqr;MrAPgX|tu6kB?v-D!@KehAyBEd?fs}yoWYeiij>v5jLP|){Y4{fJyir-iwo{jY6I^E5u|}v(=$8(SzEzACvJM=HYekdSbO(pX+Dv zC^srF5W7%aeGJuH7m%;BjiYLw#&^|+g}554Q33U%0{j})gx8U;vc=VyJ&bi&f~PPM zCq4aPweE+@P$@Zts@(wU!*m`M$e&n&p>^(c+JUQ>_u^W-hMBlzw>w!S(gxOq3g8lE zV8|Z#iOSTk+UuI74GWm};0pZFn}_dn8<$}Y*Wbn^_$BJ3 z6PSVV&%1z%Q3pJND$x*T;uy~7`4;$sJ9!L}Wh+3HpdVGsQB21vT#gA%?!lW-P1x?u z`%oFWiYi&ue%D(WsDSoj1iptl=qKneW^jvvnkm28jG*i=swr=wBF%i!rFa+WdME1S z-(wL59xywKr5KApV+Y{nr|5OHjK59e=V5zlG$-g!FTa1Y{iW)yP91@ zz3lj)fR|(4~GG>i(OUg@YJ?gz{I!RBk}_@Qo)T=MGO- H-c0@Cb| delta 2332 zcmXZddra0<9LMp)HMt~mkxL-=lEAonNx(44B=7=0LYRd_aR~*rz^E-A&8SRqZVt({ z*5h1@JuNISXZ`_Q>@QYLH&~;V%|Ms7GDTY#wfAS|_t)!uf4}FP-}ija_xF2#zTxxB z4WEzwgWRdU#vCd$rr8*CvfP*^Osp_wFZN&~hOM^OJF%DeM?8eBYm9N@ZQO(1YmIpq zeb*WDEP8Ml11gOfz|Tt(?y)l8dJ z;>1CijA1wzb1@7b#W`5x*o>jXU3eGvxJW;eK`$5NQPcvTVi1nuY#hg6oI)+|2P%>O zocoa*?1HHn&h<)J@j$q7o>_dD!N}`%sAwVhR3$(HKwX#b7=LsC~;BBy*t>^@AO#2fXRT@1PPJ zLiNH3>Wsg^I6RMPvcFLk41R+1#}ZtIt*8VCP!$?OZTK99@q9DMKqb12+W8E|(*6DrZNCvD=JQAe}O@gV9!9#qLcKpoXbn1(~B-%p@hnOtO`9sG_e%^h5h zF;CgIp%#^3J8Ho$$8OZT*H9Jf!>4foIa?E4XE&6DnqPo(aT&&=tB(3>!EIbnBAuuN zUctMu54DqHsBZV7j$#;#a1=RK^Dq8`8#WuW3fI-!%JgF_@hMcIXHgHnfVp_Pp8D&7 zIi!6buEKfPjykjbn25(Q1;536@G5GdkOpH`;CxiGwW2D~k6PD@>G&lU;w9&L>N9qJ zp_{=&+^9i6>_c_+5ma-HVHr-N&ODp%YBH|GQfxvcvRNxD&IcO3O$I)h5&8oDsF*}hKo_%N{tSK6r2)((s!ejhXOG%mtvT!HZ~+tSye?!SS#ID|gPm*iUbpG*7}X6Fx2 NJr)@{e6#v;`v1=2 && n%10<=4 && (n%100<12 " "|| n%100>14) ? 1 : 2);\n" -"X-Generator: Poedit 3.4.2\n" +"X-Generator: Poedit 3.5\n" "X-Poedit-Basepath: ../..\n" "X-Poedit-KeywordsList: _;_n:1,2;_x:1c,2;_nx:1c,2,3;_f;_fn:1,2\n" "X-Poedit-SearchPath-0: Sources/Jazz2\n" @@ -1875,7 +1875,7 @@ msgstr "Tabela wyników dla \f[c:#d0705d]gry podstawowej\f[/c]" #: Sources/Jazz2/UI/Menu/HighscoresSection.cpp:115 #, c-format msgid "Highscores for \f[c:#d0705d]%s\f[/c]" -msgstr "Tabela wyników dla \f[c:#d0705d]%s\f[/c]" +msgstr "Tabela wyników dla \f[c:#d0705d]%s\f[/c]" #. TRANSLATORS: Header in Import Episodes section #: Sources/Jazz2/UI/Menu/ImportSection.cpp:70 diff --git a/Sources/Jazz2/UI/Menu/AboutSection.cpp b/Sources/Jazz2/UI/Menu/AboutSection.cpp index 14f41c9d..a602f63f 100644 --- a/Sources/Jazz2/UI/Menu/AboutSection.cpp +++ b/Sources/Jazz2/UI/Menu/AboutSection.cpp @@ -301,7 +301,12 @@ namespace Jazz2::UI::Menu StringView langName = I18n::GetLanguageName(language); - std::int32_t lineLength = formatString(result, resultLength, "\f[c:#707070]%s\f[/c] \f[h:86](%s)\f[/h]\n", desc.data(), langName.data()); + std::int32_t lineLength; + if (langName) { + lineLength = formatString(result, resultLength, "\f[c:#707070]%s\f[/c] \f[h:86](%s)\f[/h]\n", desc.data(), langName.data()); + } else { + lineLength = formatString(result, resultLength, "\f[c:#707070]%s\f[/c]\n", desc.data()); + } result += lineLength; resultLength -= lineLength; } diff --git a/Sources/Jazz2/UI/Menu/HighscoresSection.cpp b/Sources/Jazz2/UI/Menu/HighscoresSection.cpp index 25bfb166..328b78c6 100644 --- a/Sources/Jazz2/UI/Menu/HighscoresSection.cpp +++ b/Sources/Jazz2/UI/Menu/HighscoresSection.cpp @@ -20,7 +20,7 @@ using namespace Jazz2::UI::Menu::Resources; namespace Jazz2::UI::Menu { HighscoresSection::HighscoresSection() - : _selectedSeries(0), _textCursor(0), _carretAnim(0.0f), _waitForInput(false) + : _selectedSeries(0), _notValidPos(-1), _notValidSeries(-1), _textCursor(0), _carretAnim(0.0f), _waitForInput(false) { DeserializeFromFile(); FillDefaultsIfEmpty(); @@ -32,7 +32,6 @@ namespace Jazz2::UI::Menu { if (seriesIndex >= 0 && seriesIndex < (std::int32_t)SeriesName::Count) { _selectedSeries = seriesIndex; - _waitForInput = true; String name = TryGetDefaultName(); if (name.size() > MaxNameLength) { @@ -81,6 +80,8 @@ namespace Jazz2::UI::Menu } } + EnsureVisibleSelected(); + _carretAnim += timeMult; } } @@ -238,14 +239,28 @@ namespace Jazz2::UI::Menu } std::int32_t pos = (std::int32_t)(&item - &_items[0] + 1); - if (pos <= MaxItems) { + bool isNotValid = (_notValidPos == pos && _notValidSeries == _selectedSeries); + if (_notValidPos > 0 && _notValidPos < pos && _notValidSeries == _selectedSeries) { + pos--; + } + if (!isNotValid && pos <= MaxItems) { formatString(stringBuffer, sizeof(stringBuffer), "%i.", pos); _root->DrawStringShadow(stringBuffer, charOffset, nameX - 16.0f, item.Y, IMenuContainer::MainLayer - 100, Alignment::Right, (isSelected ? Colorf(0.48f, 0.48f, 0.48f, 0.5f) : Font::DefaultColor), 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 0.8f); } - _root->DrawStringShadow(item.Item->PlayerName, charOffset, nameX, item.Y, IMenuContainer::MainLayer - 100, Alignment::Left, - isSelected && _waitForInput ? Colorf(0.62f, 0.44f, 0.34f, 0.5f) : (isSelected ? Colorf(0.48f, 0.48f, 0.48f, 0.5f) : Font::DefaultColor), 0.8f); + bool cheatsUsed = (item.Item->Flags & HighscoreFlags::CheatsUsed) == HighscoreFlags::CheatsUsed; + + Colorf nameColor; + if (isSelected && _waitForInput) { + nameColor = Colorf(0.62f, 0.44f, 0.34f, 0.5f); + } else if (isSelected) { + nameColor = (cheatsUsed ? Colorf(0.6f, 0.43f, 0.43f, 0.5f) : Colorf(0.48f, 0.48f, 0.48f, 0.5f)); + } else { + nameColor = (cheatsUsed ? Colorf(0.48f, 0.38f, 0.34f, 0.5f) : Font::DefaultColor); + } + + _root->DrawStringShadow(item.Item->PlayerName, charOffset, nameX, item.Y, IMenuContainer::MainLayer - 100, Alignment::Left, nameColor, 0.8f); if (item.Item->Lives <= 0) { Vector2f nameSize = _root->MeasureString(item.Item->PlayerName, 0.8f); @@ -510,6 +525,11 @@ namespace Jazz2::UI::Menu void HighscoresSection::SerializeToFile() { + if (_notValidPos >= 0) { + // Don't save list with invalid items + return; + } + auto configDir = PreferencesCache::GetDirectory(); auto s = fs::Open(fs::CombinePath(configDir, FileName), FileAccess::Write); if (*s) { @@ -563,15 +583,21 @@ namespace Jazz2::UI::Menu auto* newItem = items.insert(nearestItem, std::move(item)); std::int32_t index = (std::int32_t)(newItem - &items[0]); - // Keep limited number of items - while (items.size() > MaxItems && newItem != &items.back()) { - items.pop_back(); + if ((item.Flags & HighscoreFlags::CheatsUsed) == HighscoreFlags::CheatsUsed && PreferencesCache::OverwriteEpisodeEnd != EpisodeEndOverwriteMode::Always) { + _notValidPos = index + 1; + _notValidSeries = _selectedSeries; + } else { + // Keep limited number of items + while (items.size() > MaxItems && newItem != &items.back()) { + items.pop_back(); + } + + _textCursor = newItem->PlayerName.size(); + _waitForInput = true; } RefreshList(); - _selectedIndex = index; - _textCursor = newItem->PlayerName.size(); } void HighscoresSection::RefreshList() diff --git a/Sources/Jazz2/UI/Menu/HighscoresSection.h b/Sources/Jazz2/UI/Menu/HighscoresSection.h index c1610e7a..94466268 100644 --- a/Sources/Jazz2/UI/Menu/HighscoresSection.h +++ b/Sources/Jazz2/UI/Menu/HighscoresSection.h @@ -61,6 +61,8 @@ namespace Jazz2::UI::Menu HighscoreSeries _series[(std::int32_t)SeriesName::Count]; std::int32_t _selectedSeries; + std::int32_t _notValidPos; + std::int32_t _notValidSeries; std::size_t _textCursor; float _carretAnim; bool _waitForInput; diff --git a/Sources/Main.cpp b/Sources/Main.cpp index c0033215..89b9991d 100644 --- a/Sources/Main.cpp +++ b/Sources/Main.cpp @@ -1294,11 +1294,11 @@ void GameEventHandler::RefreshCacheLevels() } #if defined(DEATH_DEBUG) /*else if (extension == "j2s"_s) { - // Episode + // Translations Compatibility::JJ2Strings strings; strings.Open(item); - String fullPath = fs::CombinePath({ resolver.GetCachePath(), "Translations"_s, strings.Name + ".h"_s }); + String fullPath = fs::CombinePath({ resolver.GetCachePath(), "ExtractedTranslations"_s, String(strings.Name + ".h"_s) }); fs::CreateDirectories(fs::GetDirectoryName(fullPath)); strings.Convert(fullPath, LevelTokenConversion); }*/ diff --git a/Sources/Shared/IO/AndroidAssetStream.cpp b/Sources/Shared/IO/AndroidAssetStream.cpp index 45b130aa..ee3b2ea8 100644 --- a/Sources/Shared/IO/AndroidAssetStream.cpp +++ b/Sources/Shared/IO/AndroidAssetStream.cpp @@ -269,7 +269,7 @@ namespace Death { namespace IO { void AndroidAssetStream::Open(FileAccess mode) { - FileAccess maskedMode = mode & ~FileAccess::Exclusive; + FileAccess maskedMode = mode & FileAccess::ReadWrite; if (maskedMode != FileAccess::Read) { LOGE("Can't open file \"%s\" - wrong open mode", _path.data()); return; diff --git a/Sources/Shared/IO/FileAccess.h b/Sources/Shared/IO/FileAccess.h index fc8c3a26..20029c04 100644 --- a/Sources/Shared/IO/FileAccess.h +++ b/Sources/Shared/IO/FileAccess.h @@ -10,10 +10,13 @@ namespace Death { namespace IO { */ enum struct FileAccess { None = 0, + Read = 0x01, Write = 0x02, ReadWrite = Read | Write, - Exclusive = 0x08 + + Exclusive = 0x10, + InheritHandle = 0x20 }; DEFINE_ENUM_OPERATORS(FileAccess); diff --git a/Sources/Shared/IO/FileStream.cpp b/Sources/Shared/IO/FileStream.cpp index bdf74f5d..dbfeb7e3 100644 --- a/Sources/Shared/IO/FileStream.cpp +++ b/Sources/Shared/IO/FileStream.cpp @@ -45,7 +45,7 @@ namespace Death { namespace IO { FileStream::FileStream(Containers::String&& path, FileAccess mode, std::int32_t bufferSize) : _path(std::move(path)), _size(Stream::Invalid), _filePos(0), _readPos(0), _readLength(0), _writePos(0), _bufferLength(bufferSize), #if defined(DEATH_TARGET_WINDOWS) - _fileHandle(NULL) + _fileHandle(INVALID_HANDLE_VALUE) #else _fileDescriptor(-1) @@ -64,10 +64,10 @@ namespace Death { namespace IO { FlushWriteBuffer(); #if defined(DEATH_TARGET_WINDOWS) - if (_fileHandle != NULL) { + if (_fileHandle != INVALID_HANDLE_VALUE) { if (::CloseHandle(_fileHandle)) { LOGI("File \"%s\" closed", _path.data()); - _fileHandle = NULL; + _fileHandle = INVALID_HANDLE_VALUE; } else { LOGW("Can't close the file \"%s\"", _path.data()); } @@ -288,7 +288,7 @@ namespace Death { namespace IO { bool FileStream::IsValid() { #if defined(DEATH_TARGET_WINDOWS) - return (_fileHandle != NULL); + return (_fileHandle != INVALID_HANDLE_VALUE); #else return (_fileDescriptor >= 0); #endif @@ -337,7 +337,7 @@ namespace Death { namespace IO { { #if defined(DEATH_TARGET_WINDOWS) DWORD desireAccess, creationDisposition, shareMode; - switch (mode & ~FileAccess::Exclusive) { + switch (mode & FileAccess::ReadWrite) { case FileAccess::Read: desireAccess = GENERIC_READ; creationDisposition = OPEN_EXISTING; @@ -351,22 +351,26 @@ namespace Death { namespace IO { case FileAccess::ReadWrite: desireAccess = GENERIC_READ | GENERIC_WRITE; creationDisposition = /*OPEN_ALWAYS*/OPEN_EXISTING; // NOTE: File must already exist - shareMode = ((mode & FileAccess::Exclusive) == FileAccess::Exclusive ? 0 : FILE_SHARE_READ); + shareMode = ((mode & FileAccess::Exclusive) == FileAccess::Exclusive ? 0 : FILE_SHARE_READ | FILE_SHARE_WRITE); break; default: LOGE("Can't open file \"%s\" - wrong open mode", _path.data()); return; } + SECURITY_ATTRIBUTES securityAttribs = { sizeof(SECURITY_ATTRIBUTES) }; + securityAttribs.bInheritHandle = (mode & FileAccess::InheritHandle) == FileAccess::InheritHandle; + # if defined(DEATH_TARGET_WINDOWS_RT) - _fileHandle = ::CreateFile2FromAppW(Utf8::ToUtf16(_path), desireAccess, shareMode, creationDisposition, NULL); + CREATEFILE2_EXTENDED_PARAMETERS params = { sizeof(CREATEFILE2_EXTENDED_PARAMETERS), FILE_ATTRIBUTE_NORMAL }; + params.lpSecurityAttributes = &securityAttribs; + _fileHandle = ::CreateFile2FromAppW(Utf8::ToUtf16(_path), desireAccess, shareMode, creationDisposition, ¶ms); # else - _fileHandle = ::CreateFile(Utf8::ToUtf16(_path), desireAccess, shareMode, NULL, creationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); + _fileHandle = ::CreateFile(Utf8::ToUtf16(_path), desireAccess, shareMode, &securityAttribs, creationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); # endif - if (_fileHandle == NULL || _fileHandle == INVALID_HANDLE_VALUE) { + if (_fileHandle == INVALID_HANDLE_VALUE) { DWORD error = ::GetLastError(); LOGE("Can't open file \"%s\" - failed with error 0x%08X%s", _path.data(), error, __GetWin32ErrorSuffix(error)); - _fileHandle = NULL; return; } @@ -375,24 +379,27 @@ namespace Death { namespace IO { _size = fileSize.QuadPart; } #else - int openFlag; - switch (mode & ~FileAccess::Exclusive) { + int openFlags; + switch (mode & FileAccess::ReadWrite) { case FileAccess::Read: - openFlag = O_RDONLY; + openFlags = O_RDONLY; break; case FileAccess::Write: - openFlag = O_WRONLY | O_CREAT | O_TRUNC; + openFlags = O_WRONLY | O_CREAT | O_TRUNC; break; case FileAccess::ReadWrite: - openFlag = O_RDWR; // NOTE: File must already exist + openFlags = O_RDWR; // NOTE: File must already exist break; default: LOGE("Can't open file \"%s\" - wrong open mode", _path.data()); return; } + if ((mode & FileAccess::InheritHandle) != FileAccess::InheritHandle) { + openFlags |= O_CLOEXEC; + } int defaultPermissions = (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); // 0666 - _fileDescriptor = ::open(_path.data(), openFlag, defaultPermissions); + _fileDescriptor = ::open(_path.data(), openFlags, defaultPermissions); if (_fileDescriptor < 0) { LOGE("Can't open file \"%s\" - failed with error %i", _path.data(), errno); return; @@ -405,7 +412,7 @@ namespace Death { namespace IO { } #endif - switch (mode & ~FileAccess::Exclusive) { + switch (mode & FileAccess::ReadWrite) { default: LOGI("File \"%s\" opened", _path.data()); break; case FileAccess::Write: LOGI("File \"%s\" opened for write", _path.data()); break; case FileAccess::ReadWrite: LOGI("File \"%s\" opened for read+write", _path.data()); break; diff --git a/Sources/nCine/I18n.cpp b/Sources/nCine/I18n.cpp index afc54b45..c66698e2 100644 --- a/Sources/nCine/I18n.cpp +++ b/Sources/nCine/I18n.cpp @@ -44,6 +44,7 @@ namespace nCine { "et", "Eesti"_s }, { "fi", "Suomi"_s }, { "fr", "Français"_s }, + { "gl", "Galego"_s }, { "gr", "Greek"_s }, { "hr", "Hrvatski"_s }, { "hu", "Magyar"_s },