From e081ffe361b06ca74db0a36bf72dd73602abf57b Mon Sep 17 00:00:00 2001 From: Benjamin Auder Date: Sun, 23 Dec 2018 23:45:20 +0100 Subject: [PATCH] Advance on Spanish translation (still 13 rules to translate) --- public/images/flags/de.svg | 5 -- public/images/flags/it.svg | 7 -- public/javascripts/components/game.js | 4 +- public/javascripts/components/problems.js | 4 +- routes/all.js | 2 +- views/index.pug | 9 ++- views/{langNames/fr.pug => langNames.pug} | 3 +- views/langNames/en.pug | 5 -- views/modal-help/en.pug | 2 +- views/modal-help/es.pug | 23 +++++++ views/modal-help/fr.pug | 2 +- views/modal-lang/es.pug | 25 +++++++ views/rules/Alice/en.pug | 4 +- views/rules/Alice/es.pug | 62 +++++++++++++++++ views/rules/Alice/fr.pug | 4 +- views/rules/Antiking/en.pug | 2 +- views/rules/Antiking/fr.pug | 2 +- views/rules/Atomic/en.pug | 6 +- views/rules/Atomic/fr.pug | 4 +- views/rules/Crazyhouse/en.pug | 2 +- views/rules/Crazyhouse/fr.pug | 2 +- views/rules/Extinction/en.pug | 2 +- views/rules/Extinction/fr.pug | 2 +- views/rules/Grand/en.pug | 2 +- views/rules/Grand/fr.pug | 2 +- views/rules/Loser/en.pug | 2 +- views/rules/Loser/fr.pug | 2 +- views/rules/Magnetic/en.pug | 2 +- views/rules/Magnetic/fr.pug | 2 +- views/rules/Switching/en.pug | 2 +- views/rules/Switching/fr.pug | 2 +- views/rules/Ultima/en.pug | 2 +- views/rules/Ultima/fr.pug | 2 +- views/rules/Wildebeest/en.pug | 2 +- views/rules/Wildebeest/fr.pug | 2 +- views/rules/Zen/en.pug | 2 +- views/rules/Zen/fr.pug | 2 +- views/translations/en.pug | 12 ++-- views/translations/es.pug | 82 +++++++++++++++++++++++ views/translations/fr.pug | 12 ++-- views/variant.pug | 10 +-- views/welcome/es.pug | 54 +++++++++++++++ views/welcome/fr.pug | 2 +- 43 files changed, 307 insertions(+), 76 deletions(-) delete mode 100644 public/images/flags/de.svg delete mode 100644 public/images/flags/it.svg rename views/{langNames/fr.pug => langNames.pug} (53%) delete mode 100644 views/langNames/en.pug create mode 100644 views/modal-help/es.pug create mode 100644 views/modal-lang/es.pug create mode 100644 views/rules/Alice/es.pug create mode 100644 views/translations/es.pug create mode 100644 views/welcome/es.pug diff --git a/public/images/flags/de.svg b/public/images/flags/de.svg deleted file mode 100644 index 1acf302d..00000000 --- a/public/images/flags/de.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/images/flags/it.svg b/public/images/flags/it.svg deleted file mode 100644 index 5cb92aaa..00000000 --- a/public/images/flags/it.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/public/javascripts/components/game.js b/public/javascripts/components/game.js index d9960160..88b193ff 100644 --- a/public/javascripts/components/game.js +++ b/public/javascripts/components/game.js @@ -415,7 +415,7 @@ Vue.component('my-game', { h('button', { on: { click: () => { this.mycolor = this.vr.getOppCol(this.mycolor) } }, - attrs: { "aria-label": translations['Flip'] }, + attrs: { "aria-label": translations['Flip board'] }, "class": { "play": true, "spaceleft": true, @@ -568,7 +568,7 @@ Vue.component('my-game', { { attrs: { "id": "titleFenedit" }, "class": { "section": true }, - domProps: { innerHTML: translations["Position + flags (FEN):"] }, + domProps: { innerHTML: translations["Game state (FEN):"] }, } ), h('input', diff --git a/public/javascripts/components/problems.js b/public/javascripts/components/problems.js index ef017e59..63f06e55 100644 --- a/public/javascripts/components/problems.js +++ b/public/javascripts/components/problems.js @@ -39,7 +39,7 @@ Vue.component('my-problems', {
+ :placeholder='translate("Full FEN description")'/>

{{ translate("Safe HTML tags allowed") }}

@@ -105,7 +105,7 @@ Vue.component('my-problems', { }, previewNewProblem: function() { if (!V.IsGoodFen(this.newProblem.fen)) - return alert(translations["Bad FEN string"]); + return alert(translations["Bad FEN description"]); if (this.newProblem.instructions.trim().length == 0) return alert(translations["Empty instructions"]); if (this.newProblem.solution.trim().length == 0) diff --git a/routes/all.js b/routes/all.js index 54f1611d..79f7c3d8 100644 --- a/routes/all.js +++ b/routes/all.js @@ -7,7 +7,7 @@ const db = new sqlite3.Database(DbPath); const sanitizeHtml = require('sanitize-html'); const MaxNbProblems = 20; -const supportedLang = ["fr","en"]; +const supportedLang = ["en","es","fr"]; function selectLanguage(req, res) { // If preferred language already set: diff --git a/views/index.pug b/views/index.pug index 66c434a0..34c059b4 100644 --- a/views/index.pug +++ b/views/index.pug @@ -5,17 +5,20 @@ block css block content .container#indexPage - // Modals + include langNames.pug case lang when "en" include translations/en.pug - include langNames/en.pug include welcome/en.pug include modal-lang/en.pug include modal-help/en.pug + when "es" + include translations/es.pug + include welcome/es.pug + include modal-lang/es.pug + include modal-help/es.pug when "fr" include translations/fr.pug - include langNames/fr.pug include welcome/fr.pug include modal-lang/fr.pug include modal-help/fr.pug diff --git a/views/langNames/fr.pug b/views/langNames.pug similarity index 53% rename from views/langNames/fr.pug rename to views/langNames.pug index cab58c80..997e5830 100644 --- a/views/langNames/fr.pug +++ b/views/langNames.pug @@ -1,5 +1,6 @@ - var langName = { + "en": "English", + "es": "Español", "fr": "Français", - "en": "Anglais", }; diff --git a/views/langNames/en.pug b/views/langNames/en.pug deleted file mode 100644 index fc1f7e56..00000000 --- a/views/langNames/en.pug +++ /dev/null @@ -1,5 +0,0 @@ -- - var langName = { - "en": "English", - "fr": "French", - }; diff --git a/views/modal-help/en.pug b/views/modal-help/en.pug index 53112759..95413552 100644 --- a/views/modal-help/en.pug +++ b/views/modal-help/en.pug @@ -6,7 +6,7 @@ div(role="dialog") ol li Click on a variant, li Read the rules (in the upper left corner), - li Back to playing mode (click on "Play!") + li Back to playing mode (click on "Play") li Click on "new live game", and then, while waiting li Click on "new computer game" (just next). p Reminder: diff --git a/views/modal-help/es.pug b/views/modal-help/es.pug new file mode 100644 index 00000000..28ff4c3e --- /dev/null +++ b/views/modal-help/es.pug @@ -0,0 +1,23 @@ +input#modalHelp.modal(type="checkbox") +div(role="dialog") + #help.card + label.modal-close(for="modalHelp") + .section + ol + li Haga clic en una variante, + li Lee las reglas (arriba a la izquierda), + li Volver al modo de juego (haga clic en "Jugar"), + li Haga clic en "nuevo juego en vivo", luego, mientras tanto, + li Haga clic en "nuevo juego contra la computadora" (siguiente). + p Recordatorio : + ul + li Todas las partes comienzan con una posición aleatoria asimétrica. + li Los juegos no están cronometrados, y se juegan anónimamente. + li No charla durante el juego, para concentrarse en los movimientos. + .section + h3.red Informe de bug + p + | Por favor envíe un correo electrónico (en inglés o francés) a + a(href="mailto:contact@vchess.club?subject=[vchess.club] bug report") + | contact@vchess.club + | . diff --git a/views/modal-help/fr.pug b/views/modal-help/fr.pug index 3d60e8b2..54c607c0 100644 --- a/views/modal-help/fr.pug +++ b/views/modal-help/fr.pug @@ -6,7 +6,7 @@ div(role="dialog") ol li Cliquez sur une variante, li Lisez les règles (en haut à gauche), - li Revenez en mode jeu (cliquer sur "Jouer!") + li Revenez en mode jeu (cliquer sur "Jouer") li Cliquez sur "nouvelle partie en direct", puis, en attendant li Cliquez sur "nouvelle partie contre l'ordinateur" (à côté). p Rappel : diff --git a/views/modal-lang/es.pug b/views/modal-lang/es.pug new file mode 100644 index 00000000..114bbd0a --- /dev/null +++ b/views/modal-lang/es.pug @@ -0,0 +1,25 @@ +input#modalLang.modal(type="checkbox") +div(role="dialog") + #language.card + label.modal-close(for="modalLang") + .section + fieldset + label(for="langSelect") ¿ Idioma preferido ? + select#langSelect(onChange="setLanguage(event)") + each langCode in languages + option(value=langCode selected=(lang==langCode)) + =langName[langCode] + .section + h3.blue Contribuir + p + | ¿ Tu idioma favorito no está disponible ? Entonces... + | Navegar por el + a(href="https://github.com/yagu0/vchess/tree/master/views") + | repositorio github + |  : tiene que traducir todos los ficheros en los archivos langNames/, + | modal-help/, modal-lang/, translations/ y welcome/. + | Además, y esa es la parte principal del trabajo, tiene que traducir todas + | las reglas en rules/. Una vez hecho esto, envíame los archivos : + a(href="mailto:contact@vchess.club?subject=[vchess.club] translation") + | contact@vchess.club + | . ¡ Gracias ! diff --git a/views/rules/Alice/en.pug b/views/rules/Alice/en.pug index 4e9ab6a3..726e58c0 100644 --- a/views/rules/Alice/en.pug +++ b/views/rules/Alice/en.pug @@ -50,10 +50,10 @@ p. occur on board 2, because it would mean king and rook moved). Moreover, the king cannot be in check on board 2 after castling. -h3 Credits +h3 More information p - | Alice chess pages on + | See the Alice chess pages on a(href="https://www.chessvariants.com/other.dir/alice.html") chessvariants.com |  and on a(href="https://www.schemingmind.com/journalarticle.aspx?article_id=9") diff --git a/views/rules/Alice/es.pug b/views/rules/Alice/es.pug new file mode 100644 index 00000000..808b78f9 --- /dev/null +++ b/views/rules/Alice/es.pug @@ -0,0 +1,62 @@ +p.boxed + | Cada pieza movida llega a otra tabla ("en el otro lado del espejo"). + | Hay dos tableros. Todas las piezas comienzan en el tablero 1. + +h3 Especificaciones + +ul + li Tablero : estándar. + li Matériel : estándar + piezas Alice. + li Movimientos simples : estándar. + li Movimientos especiales : estándar. + li Capturas : estándar (en el mismo tablero). + li Final de partida : estándar. + +h3 Lo esencial + +p. + En esta variante se utilizan dos tableros. + Las piezas del tablero 2 están representadas al revés. + Cada movimiento jugado debe ser válido en su tablero (en el sentido habitual) + Además, la casilla de llegada no debe estar ocupado por una pieza en el otro + tablero (es lo que hace posible representar todo en 64 cajas). + +p La notación de las "piezas Alice" es la siguiente : +ul + li Peon : S + li Torre : U + li Caballo : O + li Alfil : C + li Dama : T + li Rey : L + +figure.diagram-container + .diagram + | fen:rnbqkbnr/ppp1pppp/8/8/2p5/5O2/PP1PPPPP/RNBQKB1R: + figcaption Despues de los movimientos 1.Nf3 Pd5 2.Pc4 Sxc4 + +h3 Final de partida + +p. + Al igual que con el ajedrez ortodoxo, jaque mate es una victoria. + El rey contrario no debe ser capaz de contrarrestar el jaque, ni siquiera mientras + se escapa en el otro tablero de ajedrez. + +p. + Nota : la captura en-passant y el enroque se hacen como en el juego ortodoxo. + Más precisamente, uno puede tomar en-passant cualquiera que sea el mundo de + salida y llegada de los peones. + Esto se justifica por el paso de los peones "a través del espejo": se pueden + capturar justo antes o después del espejo. El enroque debe ser legal en el + tablero de partida (necesariamente 1, de lo contrario el rey se ha movido y el + enroque ya no es legal), y el rey no debe estar bajo control en el tablero de llegada. + +h3 Más información + +p + | Ver las páginas dedicadas a esta variante en + a(href="https://www.chessvariants.com/other.dir/alice.html") chessvariants.com + |  y + a(href="https://www.schemingmind.com/journalarticle.aspx?article_id=9") + | schemingmind.com + | . diff --git a/views/rules/Alice/fr.pug b/views/rules/Alice/fr.pug index b187abb5..d9353be9 100644 --- a/views/rules/Alice/fr.pug +++ b/views/rules/Alice/fr.pug @@ -51,10 +51,10 @@ p. (forcément le 1, sinon le roi a bougé et le roque n'est plus légal), et le roi ne doit pas être en échec sur l'échiquier d'arrivée. -h3 Liens +h3 Plus d'information p - | Les pages dédiées à cette variante sur + | Voir les pages dédiées à cette variante sur a(href="https://www.chessvariants.com/other.dir/alice.html") chessvariants.com |  et a(href="https://www.schemingmind.com/journalarticle.aspx?article_id=9") diff --git a/views/rules/Antiking/en.pug b/views/rules/Antiking/en.pug index d31ddd0b..80b8521d 100644 --- a/views/rules/Antiking/en.pug +++ b/views/rules/Antiking/en.pug @@ -41,7 +41,7 @@ p. Note 2: since it would allow a basic tactic (keep antiking touching opponent's king), kings do not attack antikings. -h3 Credits +h3 Source p a(href="https://www.chessvariants.com/diffobjective.dir/anti-king-chess.html") diff --git a/views/rules/Antiking/fr.pug b/views/rules/Antiking/fr.pug index 2337aefc..839cf2a6 100644 --- a/views/rules/Antiking/fr.pug +++ b/views/rules/Antiking/fr.pug @@ -43,7 +43,7 @@ p. En effet ceci permettrait d'appliquer une méthode simple pour ne jamais être en "anti-échec" : rester collé au roi adverse. -h3 Liens +h3 Source p | La diff --git a/views/rules/Atomic/en.pug b/views/rules/Atomic/en.pug index b52aab55..ee8ae9e0 100644 --- a/views/rules/Atomic/en.pug +++ b/views/rules/Atomic/en.pug @@ -37,10 +37,10 @@ p. Note: suicide is forbidden. Thus a king can touch the opponent king - and become immune to checks. -h3 Credits +h3 More information p. - Many resources can be found on the web (this variation is played on lichess and - FICS, among others). + Many resources can be found on the web ("Google it"; this variation is played on + lichess and FICS, among others). This game was played first in 1995 at the German Internet Chess Server (GICS) according to Wikipedia. diff --git a/views/rules/Atomic/fr.pug b/views/rules/Atomic/fr.pug index 0226b75e..894155b0 100644 --- a/views/rules/Atomic/fr.pug +++ b/views/rules/Atomic/fr.pug @@ -37,10 +37,10 @@ p. Note : le suicide est interdit. Ainsi, le roi peut toucher le roi adverse et devenir invulnérable aux échecs. -h3 Liens +h3 Plus d'information p. - Beaucoup d'informations sont disponibles sur cette variante + Beaucoup d'informations sont disponibles sur cette variante : "Google it" (elle est jouée sur lichess et sur FICS, entre autres). Celle-ci est née en 1995 sur le German Internet Chess Server (GICS) à en croire Wikipedia. diff --git a/views/rules/Crazyhouse/en.pug b/views/rules/Crazyhouse/en.pug index 5dda3e2b..4409473b 100644 --- a/views/rules/Crazyhouse/en.pug +++ b/views/rules/Crazyhouse/en.pug @@ -35,7 +35,7 @@ p. not the promoted piece. This is to allow to gain material on last rank without fear of giving a queen to the opponent. -h3 Credits +h3 More information p | This variant is very popular, a possible starting point is diff --git a/views/rules/Crazyhouse/fr.pug b/views/rules/Crazyhouse/fr.pug index 370d4a4b..77bd4c60 100644 --- a/views/rules/Crazyhouse/fr.pug +++ b/views/rules/Crazyhouse/fr.pug @@ -37,7 +37,7 @@ p. joueur capturant, et non pas la pièce capturée. Ceci permet de promouvoir ses pions sans craindre de donner une dame à l'adversaire. -h3 Liens +h3 Plus d'information p | Cette variante est très populaire ; vous pouvez par exemple commencer par diff --git a/views/rules/Extinction/en.pug b/views/rules/Extinction/en.pug index d01b89d8..c93f9c04 100644 --- a/views/rules/Extinction/en.pug +++ b/views/rules/Extinction/en.pug @@ -33,7 +33,7 @@ figure.diagram-container | fen:n3brk1/5ppp/3q4/8/8/8/1Q3PPP/K1R1B1N1: figcaption White can win in 2 moves: 1.Qb7, 2.QxN -h3 Credits +h3 Source p a(href="https://www.chessvariants.com/winning.dir/extinction.html") Extinction chess diff --git a/views/rules/Extinction/fr.pug b/views/rules/Extinction/fr.pug index 37b9a24c..303bc247 100644 --- a/views/rules/Extinction/fr.pug +++ b/views/rules/Extinction/fr.pug @@ -33,7 +33,7 @@ figure.diagram-container | fen:n3brk1/5ppp/3q4/8/8/8/1Q3PPP/K1R1B1N1: figcaption Les blancs peuvent gagner en deux coups : 1.Qb7, 2.QxN -h3 Liens +h3 Source p | La diff --git a/views/rules/Grand/en.pug b/views/rules/Grand/en.pug index 381d3133..26fe75c7 100644 --- a/views/rules/Grand/en.pug +++ b/views/rules/Grand/en.pug @@ -50,7 +50,7 @@ p. Thus the castling rule was introduced compared to the rules described on chessvariants.com. -h3 Credits +h3 Source p | Grand chess page on diff --git a/views/rules/Grand/fr.pug b/views/rules/Grand/fr.pug index c75b357b..30dee721 100644 --- a/views/rules/Grand/fr.pug +++ b/views/rules/Grand/fr.pug @@ -51,7 +51,7 @@ p. variantes). Du coup la règle du roque a été ajoutée comparée aux règles décrites initialement. -h3 Liens +h3 Source p | La page dédiée à la variante Grand sur diff --git a/views/rules/Loser/en.pug b/views/rules/Loser/en.pug index babf89a6..bf4ba820 100644 --- a/views/rules/Loser/en.pug +++ b/views/rules/Loser/en.pug @@ -37,7 +37,7 @@ p. Win by losing all material or be stalemated (for example with only blocked pawns remaining on board). -h3 Credits +h3 More information p | This is a popular variant, played in many places on the web. diff --git a/views/rules/Loser/fr.pug b/views/rules/Loser/fr.pug index a9575103..cfa3ae5d 100644 --- a/views/rules/Loser/fr.pug +++ b/views/rules/Loser/fr.pug @@ -39,7 +39,7 @@ p. Gagnez en perdant tout votre matériel ou en étant pat (par exemple avec uniquement des pions bloqués restant sur l'échiquier). -h3 Liens +h3 Plus d'information p | Cette variante est très populaire, et est jouée en divers endroits sur internet. diff --git a/views/rules/Magnetic/en.pug b/views/rules/Magnetic/en.pug index 668cb8d7..4d61b10d 100644 --- a/views/rules/Magnetic/en.pug +++ b/views/rules/Magnetic/en.pug @@ -41,7 +41,7 @@ p Win by capturing opponent's king. There is no notion of check or stalemate her p Note: while castling, the changes are made by the rook movement. -h3 Credits +h3 Source p a(href="https://www.chessvariants.com/other.dir/magnetic.html") Magnetic chess diff --git a/views/rules/Magnetic/fr.pug b/views/rules/Magnetic/fr.pug index 13e232ab..86451cbd 100644 --- a/views/rules/Magnetic/fr.pug +++ b/views/rules/Magnetic/fr.pug @@ -42,7 +42,7 @@ p Gagnez en capturant le roi adverse. Il n'y a pas de notion d'échec ou de pat. p Note : lors du roque, les effets magnétiques sont appliqués par la tour en mouvement. -h3 Liens +h3 Source p | La diff --git a/views/rules/Switching/en.pug b/views/rules/Switching/en.pug index f3433bfd..7eb011a6 100644 --- a/views/rules/Switching/en.pug +++ b/views/rules/Switching/en.pug @@ -35,7 +35,7 @@ p. from the king are triggered in the same way. Castling takes priority: if you wanna switch, use the rook. -h3 Credits +h3 Source p a(href="https://www.chessvariants.com/diffmove.dir/switching.html") Switching chess diff --git a/views/rules/Switching/fr.pug b/views/rules/Switching/fr.pug index 6e4e4351..256cf883 100644 --- a/views/rules/Switching/fr.pug +++ b/views/rules/Switching/fr.pug @@ -36,7 +36,7 @@ p. l'échange peuvent parfois être déclenchés de la même façon. Le roque étant prioritaire, l'échange s'effectue en sélectionnant d'abord la tour. -h3 Liens +h3 Source p | La diff --git a/views/rules/Ultima/en.pug b/views/rules/Ultima/en.pug index 16df02c9..e2876fdf 100644 --- a/views/rules/Ultima/en.pug +++ b/views/rules/Ultima/en.pug @@ -157,7 +157,7 @@ figure.diagram-container | fen:7k/8/8/p4r/4K3/8/8/8 e5: figcaption 1.Ke5 is impossible -h3 Credits +h3 More information p. | A good starting point is the diff --git a/views/rules/Ultima/fr.pug b/views/rules/Ultima/fr.pug index 19addaad..006df693 100644 --- a/views/rules/Ultima/fr.pug +++ b/views/rules/Ultima/fr.pug @@ -163,7 +163,7 @@ figure.diagram-container | fen:7k/8/8/p4r/4K3/8/8/8 e5: figcaption 1.Ke5 est impossible -h3 Liens +h3 Plus d'information p | La diff --git a/views/rules/Wildebeest/en.pug b/views/rules/Wildebeest/en.pug index c22bb407..30516c9a 100644 --- a/views/rules/Wildebeest/en.pug +++ b/views/rules/Wildebeest/en.pug @@ -43,7 +43,7 @@ p. Note: the castling rule is more restrictive than described in the original rules. The game seems OK like that, but this may change soon enough. -h3 Credits +h3 Source p | The diff --git a/views/rules/Wildebeest/fr.pug b/views/rules/Wildebeest/fr.pug index 1fcb3541..c4894f3d 100644 --- a/views/rules/Wildebeest/fr.pug +++ b/views/rules/Wildebeest/fr.pug @@ -43,7 +43,7 @@ p. Note : la règle du roque est plus restrictive que celle décrite par les règles originelles. Le jeu semble OK comme ça, mais cela pourrait changer assez vite. -h3 Liens +h3 Source p | La diff --git a/views/rules/Zen/en.pug b/views/rules/Zen/en.pug index 9fa22191..a5dab4d9 100644 --- a/views/rules/Zen/en.pug +++ b/views/rules/Zen/en.pug @@ -37,7 +37,7 @@ figure.diagram-container figcaption. The king cannot take on a8 because it's guarded by the knight: it's checkmate -h3 Credits +h3 Source p. Very few resources about this variation: diff --git a/views/rules/Zen/fr.pug b/views/rules/Zen/fr.pug index ef4fdd32..bc3566fc 100644 --- a/views/rules/Zen/fr.pug +++ b/views/rules/Zen/fr.pug @@ -36,7 +36,7 @@ figure.diagram-container figcaption. Le roi ne peut prendre en a8, case gardée par le cavalier : c'est mat -h3 Liens +h3 Source p. Très peu d'informations sur le web à propos de cette variante : diff --git a/views/translations/en.pug b/views/translations/en.pug index 5138e77f..5253c976 100644 --- a/views/translations/en.pug +++ b/views/translations/en.pug @@ -25,7 +25,7 @@ "New game": "New game", "Waiting for opponent...": "Waiting for opponent...", "Rules": "Rules", - "Play!": "Play!", + "Play": "Play", "Problems": "Problems", "White win": "White win", "Black win": "Black win", @@ -38,9 +38,8 @@ "Settings": "Settings", "Resign": "Resign", "Undo": "Undo", - "Play": "Play", - "Flip": "Flip", - "Position + flags (FEN):": "Position + flags (FEN):", + "Flip board": "Flip board", + "Game state (FEN):": "Game state (FEN):", "Ok": "Ok", "Random": "Random", "Preferences": "Preferences", @@ -52,7 +51,6 @@ "blue": "blue", "Play sounds?": "Play sounds?", "None": "None", - "New game": "New game", "All": "All", "Chat with ": "Chat with ", "Type here": "Type here", @@ -63,7 +61,7 @@ "Load next problems": "Load next problems", "New": "New", "Add a problem": "Add a problem", - "Full FEN string": "Full FEN string", + "Full FEN description": "Full FEN description", "Safe HTML tags allowed": "Safe HTML tags allowed", "Instructions": "Instructions", "Describe the problem goal": "Describe the problem goal", @@ -72,7 +70,7 @@ "Preview": "Preview", "Cancel": "Cancel", "Solve": "Solve", - "Bad FEN string": "Bad FEN string", + "Bad FEN description": "Bad FEN description", "Empty instructions": "Empty instructions", "Empty solution": "Empty solution", "Already playing a game in this variant on another tab!": diff --git a/views/translations/es.pug b/views/translations/es.pug new file mode 100644 index 00000000..a839ef81 --- /dev/null +++ b/views/translations/es.pug @@ -0,0 +1,82 @@ +- + var translations = + { + // Index page: + "Help": "Ayuda", + "First visit?": "¿ Primera visita ?", + ">>> Please read this <<<": ">>> Por favor lee esto <<<", + // Variants boxes: + "Both sides of the mirror": "Ambos lados del espejo", + "Keep antiking in check": "Mantener el antirey en jaque", + "Explosive captures": "Capturas explosivas", + "Shared pieces": "Piezas compartidas", + "Standard rules": "Reglas estandar", + "Captures reborn": "Las capturas renacen", + "Capture all of a kind": "Capturar todo del mismo tipo", + "Big board": "Gran tablero", + "Lose all pieces": "Perder todas las piezas", + "Laws of attraction": "Las leyes de las atracciones", + "Exchange pieces positions": "Intercambiar las posiciones de las piezas", + "Exotic captures": "Capturas exóticas", + "Balanced sliders & leapers": "Modos de desplazamiento equilibrados", + "Reverse captures": "Capturas invertidas", + + // Variant page: + "New game": "Nueva partida", + "Waiting for opponent...": "Esperando a un oponente...", + "Rules": "Reglas", + "Play": "Jugar", + "Problems": "Problemas", + "White win": "Las blancas ganan", + "Black win": "Las negras ganan", + "Draw": "Empate", + "New live game": "Nueva partida en vivo", + "New game versus computer": "Nueva partida contra la computadora", + "Analysis mode": "Modo de análisis", + "Start chat": "Iniciar chat", + "Clear game versus computer": "Borrar la partida contra la computadora", + "Settings": "Ajustes", + "Resign": "Abandonar", + "Undo": "Deshacer", + "Flip board": "Girar el tablero", + "Game state (FEN):": "Estado del juego (FEN) :", + "Ok": "Ok", + "Random": "Aleatorio", + "Preferences": "Preferencias", + "My name is...": "Mi nombre es...", + "Show hints?": "Ayudas visuales ?", + "Board colors": "Colores del tablero", + "brown": "marrón", + "green": "verde", + "blue": "azul", + "Play sounds?": "¿ Tocar los sonidos ?", + "None": "No", + "All": "Todos", + "Chat with ": "Hablar con ", + "Type here": "Escribe aqui", + "Send": "Enviar", + "Download game": "Descargar la partida", + "Show solution": "Mostrar la solucion", + "Load previous problems": "Cargar los problemas anteriores", + "Load next problems": "Cargar los siguientes problemas", + "New": "Nuevo", + "Add a problem": "Añadir un problema", + "Full FEN description": "Descripción FEN completa", + "Safe HTML tags allowed": "HTML 'seguro' autorizado", + "Instructions": "Instrucciones", + "Describe the problem goal": "Describe el objetivo del problema", + "Solution": "Solución", + "How to solve the problem?": "¿ Como resolver el problema ?", + "Preview": "Previsualizar", + "Cancel": "Anular", + "Solve": "Resolver", + "Bad FEN string": "Mala descripción FEN", + "Empty instructions": "Instrucciones vacias", + "Empty solution": "Solución vacía", + "Already playing a game in this variant on another tab!": + "¡ Una partida está en progreso en esta variante en otra pestaña !", + "Finish your ": "¡ Termina tu ", + " game first!": " partida primero !", + ": unfinished computer game will be erased": + " : una partida inconclusa contra la computadora será borrado", + }; diff --git a/views/translations/fr.pug b/views/translations/fr.pug index 8e4f66a2..c4229fe8 100644 --- a/views/translations/fr.pug +++ b/views/translations/fr.pug @@ -11,7 +11,7 @@ "Explosive captures": "Captures explosives", "Shared pieces": "Pièces partagées", "Standard rules": "Règles usuelles", - "Captures reborn": "Captures ressucitées", + "Captures reborn": "Les captures renaissent", "Capture all of a kind": "Capturez tout d'un même type", "Big board": "Grand échiquier", "Lose all pieces": "Perdez toutes les pièces", @@ -25,7 +25,7 @@ "New game": "Nouvelle partie", "Waiting for opponent...": "En attente d'un adversaire...", "Rules": "Règles", - "Play!": "Jouer!", + "Play": "Jouer", "Problems": "Problèmes", "White win": "Les blancs gagnent", "Black win": "Les noirs gagnent", @@ -38,9 +38,8 @@ "Settings": "Réglages", "Resign": "Abandonner", "Undo": "Annuler", - "Play": "Jouer", - "Flip": "Retourner", - "Position + flags (FEN):": "Position + drapeaux (FEN) :", + "Flip board": "Tourner l'échiquier", + "Game state (FEN):": "État de la partie (FEN) :", "Ok": "Ok", "Random": "Aléatoire", "Preferences": "Préférences", @@ -52,7 +51,6 @@ "blue": "bleu", "Play sounds?": "Jouer les sons ?", "None": "Aucun", - "New game": "Nouvelle partie", "All": "Tous", "Chat with ": "Discuter avec ", "Type here": "Écrivez ici", @@ -63,7 +61,7 @@ "Load next problems": "Charger les problèmes suivants", "New": "Nouveau", "Add a problem": "Ajouter un problème", - "Full FEN string": "Chaîne FEN complète", + "Full FEN description": "Description FEN complète", "Safe HTML tags allowed": "HTML 'sûr' autorisé", "Instructions": "Instructions", "Describe the problem goal": "Décrire le but du problème", diff --git a/views/variant.pug b/views/variant.pug index 62e9d76d..23e70766 100644 --- a/views/variant.pug +++ b/views/variant.pug @@ -6,16 +6,18 @@ block css block content .container#variantPage - // Modals + include langNames.pug case lang when "en" include translations/en.pug - include langNames/en.pug include modal-lang/en.pug include modal-help/en.pug + when "es" + include translations/es.pug + include modal-lang/es.pug + include modal-help/es.pug when "fr" include translations/fr.pug - include langNames/fr.pug include modal-lang/fr.pug include modal-help/fr.pug input#modal-newgame.modal(type="checkbox") @@ -36,7 +38,7 @@ block content a(href="#rules" @click="setDisplay('rules')") =translations["Rules"] a(href="#play" @click="setDisplay('play')") - =translations["Play!"] + =translations["Play"] a(href="#problems" @click="setDisplay('problems')") =translations["Problems"] #flagMenu.clickable( diff --git a/views/welcome/es.pug b/views/welcome/es.pug new file mode 100644 index 00000000..19d903e1 --- /dev/null +++ b/views/welcome/es.pug @@ -0,0 +1,54 @@ +input#modalWelcome.modal(type="checkbox") +div(role="dialog") + #welcome.card.text-center + label.modal-close(for="modalWelcome") + h3.blue.section ¡ Bienvenido a v[ariant]chess.club ! + .section + p Un sitio donde jugar variantes del juego de ajedrez en vivo. + p Pero espera... ¿ qué es una "variante" ? + img(src="/images/Hexagonal_chess.svg") + p. + Como lo sugiere la imagen, el punto de inicio de una variante generalmente + se ve como un tablero de ajedrez con las piezas habituales. + (sino ya no es una variante, pero un nuevo juego). + p.emphasis.purple Sin embargo... + p Cada variante tiene sus propias reglas, que pueden definir + table.list-table + tbody + tr + td * diferentes desplazamientos de piezas + tr + td * differentes(s) tablero(s) + tr + td * nuevas piezas + tr + td * efectos de borde en los movimientos + tr + td ...etc + .section + p. + Ejemplo : Imagina que una captura es una explosión atómica que destruye + todo en los 8 hexes cercanos, excepto los peones, que como las cucarachas + se resisten a este tipo de cosas. + p Define también un objetivo : hacer explotar al rey del adversario. + p. + → ¡ Bien hecho, acabas de describir el ajedrez atómico ! + (Se puede jugar aquí) + .section + p.emphasis.purple + | OK, parece interesante, pero ¿ por qué sería divertido ?! + p. + Como todas las partidas comienzan con una posición aleatoria : + ¡ terminadas las laboriosas memorizaciones de aperturas, puedes expresar + tus habilidades de ajedrez desde el primer movimiento ! Ninguna partida + es como otra. + - + var wikipediaUrl = "https://en.wikipedia.org/wiki/" + + "List_of_chess_variants#/media/File:Hexagonal_chess.svg"; + p. + Pour s'informer sur des centaines de variantes (au moins), je vous invite à + visiter l'excellent site + #[a(href="https://www.chessvariants.com/") chessvariants]. + p#disableMsg.clickable(@click="markAsVisited") + | Haga clic aquí para no mostrar este mensaje la próxima vez. + p.smallfont Credito de imagen : #[a(href=wikipediaUrl) Wikipedia] diff --git a/views/welcome/fr.pug b/views/welcome/fr.pug index 33b5fb6f..3821f896 100644 --- a/views/welcome/fr.pug +++ b/views/welcome/fr.pug @@ -48,4 +48,4 @@ div(role="dialog") #[a(href="https://www.chessvariants.com/") chessvariants]. p#disableMsg.clickable(@click="markAsVisited") | Cliquer ici pour ne pas montrer ce message la prochaine fois - p.smallfont Crédit image: #[a(href=wikipediaUrl) Wikipedia] + p.smallfont Crédit image : #[a(href=wikipediaUrl) Wikipedia] -- 2.44.0