Advance on Spanish translation (still 13 rules to translate)
authorBenjamin Auder <benjamin.auder@somewhere>
Sun, 23 Dec 2018 22:45:20 +0000 (23:45 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Sun, 23 Dec 2018 22:45:20 +0000 (23:45 +0100)
43 files changed:
public/images/flags/de.svg [deleted file]
public/images/flags/it.svg [deleted file]
public/javascripts/components/game.js
public/javascripts/components/problems.js
routes/all.js
views/index.pug
views/langNames.pug [moved from views/langNames/fr.pug with 53% similarity]
views/langNames/en.pug [deleted file]
views/modal-help/en.pug
views/modal-help/es.pug [new file with mode: 0644]
views/modal-help/fr.pug
views/modal-lang/es.pug [new file with mode: 0644]
views/rules/Alice/en.pug
views/rules/Alice/es.pug [new file with mode: 0644]
views/rules/Alice/fr.pug
views/rules/Antiking/en.pug
views/rules/Antiking/fr.pug
views/rules/Atomic/en.pug
views/rules/Atomic/fr.pug
views/rules/Crazyhouse/en.pug
views/rules/Crazyhouse/fr.pug
views/rules/Extinction/en.pug
views/rules/Extinction/fr.pug
views/rules/Grand/en.pug
views/rules/Grand/fr.pug
views/rules/Loser/en.pug
views/rules/Loser/fr.pug
views/rules/Magnetic/en.pug
views/rules/Magnetic/fr.pug
views/rules/Switching/en.pug
views/rules/Switching/fr.pug
views/rules/Ultima/en.pug
views/rules/Ultima/fr.pug
views/rules/Wildebeest/en.pug
views/rules/Wildebeest/fr.pug
views/rules/Zen/en.pug
views/rules/Zen/fr.pug
views/translations/en.pug
views/translations/es.pug [new file with mode: 0644]
views/translations/fr.pug
views/variant.pug
views/welcome/es.pug [new file with mode: 0644]
views/welcome/fr.pug

diff --git a/public/images/flags/de.svg b/public/images/flags/de.svg
deleted file mode 100644 (file)
index 1acf302..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-de" viewBox="0 0 640 480">
-  <path fill="#ffce00" d="M0 320h640v160H0z"/>
-  <path d="M0 0h640v160H0z"/>
-  <path fill="#d00" d="M0 160h640v160H0z"/>
-</svg>
diff --git a/public/images/flags/it.svg b/public/images/flags/it.svg
deleted file mode 100644 (file)
index 5cb92aa..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-it" viewBox="0 0 640 480">
-  <g fill-rule="evenodd" stroke-width="1pt">
-    <path fill="#fff" d="M0 0h640v480H0z"/>
-    <path fill="#009246" d="M0 0h213.3v480H0z"/>
-    <path fill="#ce2b37" d="M426.7 0H640v480H426.7z"/>
-  </g>
-</svg>
index d996016..88b193f 100644 (file)
@@ -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',
index ef017e5..63f06e5 100644 (file)
@@ -39,7 +39,7 @@ Vue.component('my-problems', {
                                                <fieldset>
                                                        <label for="newpbFen">FEN</label>
                                                        <input id="newpbFen" type="text" v-model="newProblem.fen"
-                                                               :placeholder='translate("Full FEN string")'/>
+                                                               :placeholder='translate("Full FEN description")'/>
                                                </fieldset>
                                                <fieldset>
                                                        <p class="emphasis">{{ translate("Safe HTML tags allowed") }}</p>
@@ -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)
index 54f1611..79f7c3d 100644 (file)
@@ -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:
index 66c434a..34c059b 100644 (file)
@@ -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
similarity index 53%
rename from views/langNames/fr.pug
rename to views/langNames.pug
index cab58c8..997e583 100644 (file)
@@ -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 (file)
index fc1f7e5..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
--
-       var langName = {
-               "en": "English",
-               "fr": "French",
-       };
index 5311275..9541355 100644 (file)
@@ -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 (file)
index 0000000..28ff4c3
--- /dev/null
@@ -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
+                               | .
index 3d60e8b..54c607c 100644 (file)
@@ -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 (file)
index 0000000..114bbd0
--- /dev/null
@@ -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
+                               | &nbsp;: 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 !
index 4e9ab6a..726e58c 100644 (file)
@@ -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
        | &nbsp;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 (file)
index 0000000..808b78f
--- /dev/null
@@ -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
+       | &nbsp;y 
+       a(href="https://www.schemingmind.com/journalarticle.aspx?article_id=9")
+               | schemingmind.com
+       | .
index b187abb..d9353be 100644 (file)
@@ -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
        | &nbsp;et 
        a(href="https://www.schemingmind.com/journalarticle.aspx?article_id=9")
index d31ddd0..80b8521 100644 (file)
@@ -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")
index 2337aef..839cf2a 100644 (file)
@@ -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 
index b52aab5..ee8ae9e 100644 (file)
@@ -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.
index 0226b75..894155b 100644 (file)
@@ -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.
index 5dda3e2..4409473 100644 (file)
@@ -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 
index 370d4a4..77bd4c6 100644 (file)
@@ -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 
index d01b89d..c93f9c0 100644 (file)
@@ -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 
index 37b9a24..303bc24 100644 (file)
@@ -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 
index 381d313..26fe75c 100644 (file)
@@ -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 
index c75b357..30dee72 100644 (file)
@@ -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 
index babf89a..bf4ba82 100644 (file)
@@ -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.
index a957510..cfa3ae5 100644 (file)
@@ -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.
index 668cb8d..4d61b10 100644 (file)
@@ -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 
index 13e232a..86451cb 100644 (file)
@@ -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 
index f3433bf..7eb011a 100644 (file)
@@ -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 
index 6e4e435..256cf88 100644 (file)
@@ -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
index 16df02c..e2876fd 100644 (file)
@@ -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 
index 19addaa..006df69 100644 (file)
@@ -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 
index c22bb40..30516c9 100644 (file)
@@ -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 
index 1fcb354..c4894f3 100644 (file)
@@ -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
index 9fa2219..a5dab4d 100644 (file)
@@ -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: 
index ef4fdd3..bc3566f 100644 (file)
@@ -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 : 
index 5138e77..5253c97 100644 (file)
@@ -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 (file)
index 0000000..a839ef8
--- /dev/null
@@ -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",
+       };
index 8e4f66a..c4229fe 100644 (file)
@@ -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",
index 62e9d76..23e7076 100644 (file)
@@ -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 (file)
index 0000000..19d903e
--- /dev/null
@@ -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.
+                               &rarr; ¡ 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]
index 33b5fb6..3821f89 100644 (file)
@@ -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]