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) } },
                                        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,
                                                        "class": {
                                                                "play": true,
                                                                "spaceleft": true,
@@ -568,7 +568,7 @@ Vue.component('my-game', {
                                                                {
                                                                        attrs: { "id": "titleFenedit" },
                                                                        "class": { "section": true },
                                                                {
                                                                        attrs: { "id": "titleFenedit" },
                                                                        "class": { "section": true },
-                                                                       domProps: { innerHTML: translations["Position + flags (FEN):"] },
+                                                                       domProps: { innerHTML: translations["Game state (FEN):"] },
                                                                }
                                                        ),
                                                        h('input',
                                                                }
                                                        ),
                                                        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"
                                                <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>
                                                </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))
                },
                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)
                        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 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:
 function selectLanguage(req, res)
 {
        // If preferred language already set:
index 66c434a..34c059b 100644 (file)
@@ -5,17 +5,20 @@ block css
 
 block content
        .container#indexPage
 
 block content
        .container#indexPage
-               // Modals
+               include langNames.pug
                case lang
                        when "en"
                                include translations/en.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
                                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
                        when "fr"
                                include translations/fr.pug
-                               include langNames/fr.pug
                                include welcome/fr.pug
                                include modal-lang/fr.pug
                                include modal-help/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 = {
 -
        var langName = {
+               "en": "English",
+               "es": "Español",
                "fr": "Français",
                "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),
                        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:
                                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),
                        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 :
                                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.
 
        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
 
 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")
        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.
 
        (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
 
 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")
        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.
 
        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")
 
 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.
 
        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 
 
 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.
 
        Note: suicide is forbidden. Thus a king can touch the opponent king -
        and become immune to checks.
 
-h3 Credits
+h3 More information
 
 p.
 
 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.
        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.
 
        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.
 
 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.
        (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.
 
        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 
 
 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.
 
        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 
 
 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
 
                | 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 
 
 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
 
                | 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 
 
 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.
 
        Thus the castling rule was introduced compared to the rules described
        on chessvariants.com.
 
-h3 Credits
+h3 Source
 
 p
        | Grand chess page on 
 
 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.
 
        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 
 
 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).
 
        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.
 
 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).
 
        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.
 
 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.
 
 
 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 
 
 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.
 
 
 p Note : lors du roque, les effets magnétiques sont appliqués par la tour en mouvement.
 
-h3 Liens
+h3 Source
 
 p
        | La 
 
 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.
 
        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 
 
 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.
 
        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
 
 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
 
                | 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 
 
 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
 
                | fen:7k/8/8/p4r/4K3/8/8/8 e5:
        figcaption 1.Ke5 est impossible
 
-h3 Liens
+h3 Plus d'information
 
 p
        | La 
 
 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.
 
        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 
 
 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.
 
        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
 
 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
 
        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: 
 
 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
 
        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 : 
 
 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",
                "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",
                "Problems": "Problems",
                "White win": "White win",
                "Black win": "Black win",
@@ -38,9 +38,8 @@
                "Settings": "Settings",
                "Resign": "Resign",
                "Undo": "Undo",
                "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",
                "Ok": "Ok",
                "Random": "Random",
                "Preferences": "Preferences",
@@ -52,7 +51,6 @@
                "blue": "blue",
                "Play sounds?": "Play sounds?",
                "None": "None",
                "blue": "blue",
                "Play sounds?": "Play sounds?",
                "None": "None",
-               "New game": "New game",
                "All": "All",
                "Chat with ": "Chat with ",
                "Type here": "Type here",
                "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",
                "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",
                "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",
                "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!":
                "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",
                "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",
                "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",
                "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",
                "Problems": "Problèmes",
                "White win": "Les blancs gagnent",
                "Black win": "Les noirs gagnent",
@@ -38,9 +38,8 @@
                "Settings": "Réglages",
                "Resign": "Abandonner",
                "Undo": "Annuler",
                "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",
                "Ok": "Ok",
                "Random": "Aléatoire",
                "Preferences": "Préférences",
@@ -52,7 +51,6 @@
                "blue": "bleu",
                "Play sounds?": "Jouer les sons ?",
                "None": "Aucun",
                "blue": "bleu",
                "Play sounds?": "Jouer les sons ?",
                "None": "Aucun",
-               "New game": "Nouvelle partie",
                "All": "Tous",
                "Chat with ": "Discuter avec ",
                "Type here": "Écrivez ici",
                "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",
                "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",
                "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
 
 block content
        .container#variantPage
-               // Modals
+               include langNames.pug
                case lang
                        when "en"
                                include translations/en.pug
                case lang
                        when "en"
                                include translations/en.pug
-                               include langNames/en.pug
                                include modal-lang/en.pug
                                include modal-help/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
                        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")
                                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')")
                                                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(
                                                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
                                #[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]