From f44fd3bf754c113aa6b9ab241cbf24933877ae31 Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Fri, 7 Feb 2020 16:40:19 +0100
Subject: [PATCH] Translations

---
 client/src/components/BaseGame.vue      |   2 +-
 client/src/components/ChallengeList.vue |   2 +-
 client/src/components/GameList.vue      |   2 +-
 client/src/components/UpsertUser.vue    |   2 +-
 client/src/translations/en.js           |  10 +-
 client/src/translations/es.js           | 187 ++++++++++++++----------
 client/src/translations/fr.js           | 169 ++++++++++++---------
 client/src/views/Hall.vue               |   2 +-
 client/src/views/Rules.vue              |   2 +-
 9 files changed, 222 insertions(+), 156 deletions(-)

diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue
index aa606aa5..d36c6326 100644
--- a/client/src/components/BaseGame.vue
+++ b/client/src/components/BaseGame.vue
@@ -29,7 +29,7 @@ div#baseGame(tabindex=-1 @click="() => focusBg()"
       #pgnDiv
         #downloadDiv(v-if="game.vname!='Dark' || game.score!='*'")
           a#download(href="#")
-          button(@click="download") {{ st.tr["Download PGN"] }}
+          button(@click="download") {{ st.tr["Download"] }} PGN
         button(onClick="doClick('modalAdjust')") &#10530;
         button(v-if="game.vname!='Dark' && game.mode!='analyze'"
             @click="analyzePosition")
diff --git a/client/src/components/ChallengeList.vue b/client/src/components/ChallengeList.vue
index fd2a9015..f94cb71e 100644
--- a/client/src/components/ChallengeList.vue
+++ b/client/src/components/ChallengeList.vue
@@ -6,7 +6,7 @@ div
         th {{ st.tr["Variant"] }}
         th {{ st.tr["From"] }}
         th {{ st.tr["To"] }}
-        th {{ st.tr["Time control"] }}
+        th {{ st.tr["Cadence"] }}
     tbody
       tr(v-for="c in sortedChallenges" @click="$emit('click-challenge',c)")
         td(data-label="Variant") {{ c.vname }}
diff --git a/client/src/components/GameList.vue b/client/src/components/GameList.vue
index 62c916fa..3620d329 100644
--- a/client/src/components/GameList.vue
+++ b/client/src/components/GameList.vue
@@ -6,7 +6,7 @@ div
         th {{ st.tr["Variant"] }}
         th {{ st.tr["White"] }}
         th {{ st.tr["Black"] }}
-        th {{ st.tr["Time control"] }}
+        th {{ st.tr["Cadence"] }}
         th {{ st.tr["Result"] }}
     tbody
       tr(v-for="g in sortedGames" @click="$emit('show-game',g)"
diff --git a/client/src/components/UpsertUser.vue b/client/src/components/UpsertUser.vue
index 81267bff..2b28f64b 100644
--- a/client/src/components/UpsertUser.vue
+++ b/client/src/components/UpsertUser.vue
@@ -4,7 +4,7 @@ div
   div(role="dialog" data-checkbox="modalUser")
     .card
       label.modal-close(for="modalUser")
-      h3 {{ stage }}
+      h3 {{ st.tr[stage] }}
       form#userForm(@submit.prevent="onSubmit()" @keyup.enter="onSubmit")
         div(v-show="stage!='Login'")
           fieldset
diff --git a/client/src/translations/en.js b/client/src/translations/en.js
index 527f11c8..bb5f39fa 100644
--- a/client/src/translations/en.js
+++ b/client/src/translations/en.js
@@ -15,6 +15,7 @@ export const translations =
   "Board size": "Board size",
   "blue": "blue",
   "brown": "brown",
+  "Cadence": "Cadence",
   "Challenge declined": "Challenge declined",
   "Connection token sent. Check your emails!": "Connection token sent. Check your emails!",
   "Contact": "Contact",
@@ -23,13 +24,14 @@ export const translations =
   "Correspondance challenges": "Correspondance challenges",
   "Correspondance games": "Correspondance games",
   "Database error:": "Database error:",
-  "Download PGN": "Download PGN",
+  "Download": "Download",
   "Draw": "Draw",
   "Draw offer only in your turn": "Draw offer only in your turn",
   "Email": "Email",
   "Email sent!": "Email sent!",
   "Empty message": "Empty message",
   "Error while loading database:": "Error while loading database:",
+  "Example game": "Example game",
   "Forum": "Forum",
   "From": "From",
   "Game retrieval failed:": "Game retrieval failed:",
@@ -58,7 +60,6 @@ export const translations =
   "Play with?": "Play with?",
   "Playing": "Playing",
   "Please log in to accept corr challenges": "Please log in to accept corr challenges",
-  "Please log in to play corr games": "Please log in to play corr games",
   "Please select a variant": "Please select a variant",
   "Practice": "Practice",
   "Processing... Please wait": "Processing... Please wait",
@@ -69,7 +70,6 @@ export const translations =
   "Resign the game?": "Resign the game?",
   "Result": "Result",
   "Rules": "Rules",
-  "Sample game": "Sample game",
   "Send": "Send",
   "Show possible moves?": "Show possible moves?",
   "Self-challenge is forbidden": "Self-challenge is forbidden",
@@ -80,11 +80,11 @@ export const translations =
   "Terminate game?": "Terminate game?",
   "Three repetitions": "Three repetitions",
   "Time": "Time",
-  "Time control": "Time control",
   "To": "To",
   "Type first letters...": "Type first letters...",
   "Type here": "Type here",
   "Unknown": "Unknown",
+  "Update": "Update",
   "Variant": "Variant",
   "Variants": "Variants",
   "Warning: target is not connected": "Warning: target is not connected",
@@ -106,8 +106,8 @@ export const translations =
   "Explosive captures": "Explosive captures",
   "In the shadow": "In the shadow",
   "Keep antiking in check": "Keep antiking in check",
-  "Lose all pieces": "Lose all pieces",
   "Laws of attraction": "Laws of attraction",
+  "Lose all pieces": "Lose all pieces",
   "Move twice": "Move twice",
   "Pawns move diagonally": "Pawns move diagonally",
   "Reverse captures": "Reverse captures",
diff --git a/client/src/translations/es.js b/client/src/translations/es.js
index e655aa25..98b3da9d 100644
--- a/client/src/translations/es.js
+++ b/client/src/translations/es.js
@@ -1,91 +1,120 @@
 export const translations =
 {
-  //jugada ou movimiento ?
-  //fin de la partida au lieu de final de partida ?
+  "Abort": "Terminar",
+  "About": "Acerca de",
+  "Accept draw?": "¿ Acceptar tablas ?",
+  "All": "Todos",
+  "Analyze": "Analizar",
+  "Analyze in Dark mode makes no sense!": "¡ Analizar en modo Dark no tiene sentido !",
+  "Apply": "Aplicar",
+  "Available": "Disponible",
+  "Black": "Negras",
+  "Black to move": "Juegan las negras",
+  "Black win": "Las negras gagnan",
+  "Board colors": "Colores del tablero",
+  "Board size": "Tamaño del tablero",
+  "blue": "azul",
+  "brown": "marrón",
+  "Cadence": "Cadencia",
+  "Challenge declined": "Desafío rechazado",
+  "Connection token sent. Check your emails!": "Token de conexión enviado. ¡ Revisa tus correos !",
+  "Contact": "Contacto",
+  "Contact form": "Formulario de contacto",
+  "Content": "Contenido",
+  "Correspondance challenges": "Desafíos por correspondencia",
+  "Correspondance games": "Partidas por correspondencia",
+  "Database error:": "Error de la base de datos :",
+  "Download": "Descargar",
+  "Draw": "Tablas",
+  "Draw offer only in your turn": "Oferta de tablas solo en tu turno",
+  "Email": "Email",
+  "Email sent!": "¡ Email enviado !",
+  "Empty message": "Mensaje vacio",
+  "Error while loading database:": "Error al cargar la base de datos:",
+  "Example game": "Ejemplo de partida",
+  "Forum": "Foro",
+  "From": "De",
+  "Game retrieval failed:": "La recuperación de la partida falló :",
+  "Game removal failed:": "La eliminación de la partida falló :",
+  "Go": "Go",
+  "green": "verde",
+  "Hall": "Salón",
+  "Highlight last move and checks?": "¿ Resaltar el último movimiento y jaques ?",
   "Language": "Idioma",
+  "Live challenges": "Desafíos en vivo",
+  "Live games": "Partidas en vivo",
+  "Login": "Login",
+  "Logout": "Logout",
+  "Modifications applied!": "¡ Modificaciones aplicadas !",
+  "Mutual agreement": "Acuerdo mutuo",
+  "My games": "Mis partidas",
+  "Name": "Nombre",
+  "Name or Email": "Nombre o Email",
+  "New game": "Nueva partida",
+  "No subject. Send anyway?": "Sin asunto. ¿ Enviar sin embargo ?",
+  "None": "Ninguno",
+  "Notifications by email": "Notificaciones por email",
+  "Offer draw?": "¿ Ofrecer tablas ?",
+  "Opponent action": "Acción del adversario",
+  "Play sounds?": "¿ Permitir sonidos ?",
+  "Play with?": "¿ Jugar con ?",
+  "Playing": "Jugando",
+  "Please log in to accept corr challenges": "Inicia sesión para aceptar los desafíos por correspondencia",
+  "Please select a variant": "Por favor seleccione una variante",
+  "Practice": "Práctica",
+  "Processing... Please wait": "Procesando... por favor espere",
+  "participant(s):": "participante(s) :",
+  "Register": "Registrarse",
+  "Registration complete! Please check your emails": "¡ Registro completo ! Por favor revise sus correos electrónicos",
+  "Resign": "Abandonar",
+  "Resign the game?": "¿ Abandonar la partida ?",
+  "Result": "Resultado",
+  "Rules": "Reglas",
+  "Send": "Enviar",
+  "Show possible moves?": "¿ Mostrar posibles movimientos ?",
+  "Self-challenge is forbidden": "Auto desafío está prohibido",
+  "Send challenge": "Enviar desafío",
+  "Settings": "Configuraciones",
+  "Stop game": "Terminar la partida",
+  "Subject": "Asunto",
+  "Terminate game?": "¿ Terminar la partida ?",
+  "Three repetitions": "Tres repeticiones",
+  "Time": "Tiempo",
+  "To": "A",
+  "Type first letters...": "Escribe las primeras letras...",
+  "Type here": "Escribe aquí",
+  "Unknown": "Desconocido",
+  "Update": "Actualización",
+  "Variant": "Variante",
+  "Variants": "Variantes",
+  "Warning: target is not connected": "Advertencia : el destinatario no está conectado",
+  "Warning: multi-tabs not supported": "Advertencia : múltiples pestañas no soportado",
+  "White": "Blancas",
+  "White to move": "Juegan las blancas",
+  "White win": "Las blancas gagnan",
+  "Who's there?": "¿ Quién está ahí ?",
 
-  // Index page:
-  "Help": "Ayuda",
-  "First visit?": "¿ Primera visita ?",
-  ">>> Please read this <<<": ">>> Por favor lee esto <<<",
   // Variants boxes:
+  "Balanced sliders & leapers": "Modos de desplazamiento equilibrados",
+  "Big board": "Gran tablero",
+  "Board upside down": "Tablero al revés",
   "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",
+  "Captures reborn": "Las capturas renacen",
   "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",
-  "Pawns move diagonally": "Peones se mueven en diagonal",
+  "Explosive captures": "Capturas explosivas",
   "In the shadow": "En la sombra",
+  "Keep antiking in check": "Mantener el antirey en jaque",
+  "Laws of attraction": "Las leyes de las atracciones",
+  "Lose all pieces": "Perder todas las piezas",
   "Move twice": "Mover dos veces",
-  "Board upside down": "Tablero al revés",
-
-  // 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 current game": "Borrar la partida actual",
-  "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 PGN": "Descargar el PGN",
-  "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",
-  ": current analysis will be erased":
-    " : el análisis actual será borrado",
+  "Pawns move diagonally": "Peones se mueven en diagonal",
+  "Reverse captures": "Capturas invertidas",
+  "Shared pieces": "Piezas compartidas",
+  "Standard rules": "Reglas estandar",
 };
+
+// TODO:
+// jugada ou movimiento ?
+// fin de la partida au lieu de final de partida ?
diff --git a/client/src/translations/fr.js b/client/src/translations/fr.js
index 815c2aa2..54e316c1 100644
--- a/client/src/translations/fr.js
+++ b/client/src/translations/fr.js
@@ -1,79 +1,116 @@
 export const translations =
 {
-  "Hall": "Hall",
-  "Variants": "Variantes",
-  "My games": "Mes parties",
-  "Forum": "Forum",
+  "Abort": "Arrêter",
+  "About": "À propos",
+  "Accept draw?": "Accepter la nulle ?",
+  "All": "Tous",
+  "Analyze": "Analyser",
+  "Analyze in Dark mode makes no sense!": "Analyser en mode Dark n'a pas de sens !",
+  "Apply": "Appliquer",
+  "Available": "Disponible",
+  "Black": "Noirs",
+  "Black to move": "Trait aux noirs",
+  "Black win": "Les noirs gagnent",
+  "Board colors": "Couleurs de l'échiquier",
+  "Board size": "Taille de l'échiquier",
+  "blue": "bleu",
+  "brown": "marron",
+  "Cadence": "Cadence",
+  "Challenge declined": "Défi refusé",
+  "Connection token sent. Check your emails!": "Token de connection envoyé. Allez voir vos emails !",
+  "Contact": "Contact",
   "Contact form": "Formulaire de contact",
-  "Source code": "Code source",
-
+  "Content": "Contenu",
+  "Correspondance challenges": "Défis par correspondance",
+  "Correspondance games": "Parties par correspondance",
+  "Database error:": "Erreur de base de données :",
+  "Download": "Télécharger",
+  "Draw": "Nulle",
+  "Draw offer only in your turn": "Proposition de nulle seulement sur votre temps",
+  "Email": "Email",
+  "Email sent!": "Email envoyé !",
+  "Empty message": "Message vide",
+  "Error while loading database:": "Erreur lors du chargement de la base de données :",
+  "Example game": "Partie exemple",
+  "Forum": "Forum",
+  "From": "De",
+  "Game retrieval failed:": "Échec de la récupération de la partie :",
+  "Game removal failed:": "Échec de la suppresion de la partie :",
+  "Go": "Go",
+  "green": "vert",
+  "Hall": "Salon",
+  "Highlight last move and checks?": "Mettre en valeur le dernier coup et les échecs ?",
   "Language": "Langue",
+  "Live challenges": "Défis en direct",
+  "Live games": "Parties en direct",
+  "Login": "Login",
+  "Logout": "Logout",
+  "Modifications applied!": "Modifications effectuées !",
+  "Mutual agreement": "Accord mutuel",
+  "My games": "Mes parties",
+  "Name": "Nom",
+  "Name or Email": "Nom ou Email",
+  "New game": "Nouvelle partie",
+  "No subject. Send anyway?": "Pas de sujet. Envoyer quand-même ??",
+  "None": "Aucun",
+  "Notifications by email": "Notifications par email",
+  "Offer draw?": "Proposer nulle ?",
+  "Opponent action": "Action de l'adversaire",
+  "Play sounds?": "Jouer les sons ?",
+  "Play with?": "Jouer avec ?",
+  "Playing": "Jouant",
+  "Please log in to accept corr challenges": "Identifiez vous pour accepter des défis par correspondance",
+  "Please select a variant": "Sélectionnez une variante SVP",
+  "Practice": "Pratiquer",
+  "Processing... Please wait": "Traitement en cours... Attendez SVP",
+  "participant(s):": "participant(s) :",
+  "Register": "S'enregistrer",
+  "Registration complete! Please check your emails": "Enregistrement terminé ! Allez voir vos emails",
+  "Resign": "Abandonner",
+  "Resign the game?": "Abandonner la partie ?",
+  "Result": "Résultat",
+  "Rules": "Règles",
+  "Send": "Envoyer",
+  "Show possible moves?": "Montrer les coups possibles ?",
+  "Self-challenge is forbidden": "Interdit de s'auto-défier",
+  "Send challenge": "Envoyer défi",
+  "Settings": "Réglages",
+  "Stop game": "Arrêter la partie",
+  "Subject": "Sujet",
+  "Terminate game?": "Stopper la partie ?",
+  "Three repetitions": "Triple répétition",
+  "Time": "Temps",
+  "To": "À",
+  "Type first letters...": "Tapez les premières lettres...",
+  "Type here": "Tapez ici",
+  "Unknown": "Inconnu",
+  "Update": "Mise à jour",
+  "Variant": "Variante",
+  "Variants": "Variantes",
+  "Warning: target is not connected": "Attention : la cible n'est pas connectée",
+  "Warning: multi-tabs not supported": "Attention : mode multi-onglets non supporté",
+  "White": "Blancs",
+  "White to move": "Trait aux blancs",
+  "White win": "Les blancs gagnent",
+  "Who's there?": "Qui est là ?",
 
-  // Index page:
-  "Help": "Aide",
-  "First visit?": "Première visite ?",
-  ">>> Please read this <<<": ">>> SVP lisez ceci <<<",
   // Variants boxes:
+  "Balanced sliders & leapers": "Modes de déplacement équilibrés",
+  "Big board": "Grand échiquier",
+  "Board upside down": "Échiquier à l'envers",
   "Both sides of the mirror": "Les deux côté du miroir",
-  "Keep antiking in check": "Gardez l'antiroi en échec",
-  "Explosive captures": "Captures explosives",
-  "Shared pieces": "Pièces partagées",
-  "Standard rules": "Règles usuelles",
-  "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",
-  "Laws of attraction": "Les lois de l'attraction",
+  "Captures reborn": "Les captures renaissent",
   "Exchange pieces positions": "Échangez les positions des pièces",
   "Exotic captures": "Captures exotiques",
-  "Balanced sliders & leapers": "Modes de déplacement équilibrés",
-  "Reverse captures": "Captures inversées",
-  "Pawns move diagonally": "Les pions vont en diagonale",
+  "Explosive captures": "Captures explosives",
   "In the shadow": "Dans l'ombre",
+  "Keep antiking in check": "Gardez l'antiroi en échec",
+  "Laws of attraction": "Les lois de l'attraction",
+  "Lose all pieces": "Perdez toutes les pièces",
   "Move twice": "Jouer deux coups",
-  "Board upside down": "Échiquier à l'envers",
-
-  // Variant page:
-  "New game": "Nouvelle partie",
-  "Waiting for opponent...": "En attente d'un adversaire...",
-  "Rules": "Règles",
-  "Play": "Jouer",
-  "White win": "Les blancs gagnent",
-  "Black win": "Les noirs gagnent",
-  "Draw": "Match nul",
-  "New live game": "Nouvelle partie en direct",
-  "New game versus computer": "Nouvelle partie contre l'ordinateur",
-  "Analysis mode": "Mode analyse",
-  "Start chat": "Démarrer le chat",
-  "Clear current game": "Effacer la partie courante",
-  "Settings": "Réglages",
-  "Resign": "Abandonner",
-  "Undo": "Annuler",
-  "Flip board": "Tourner l'échiquier",
-  "Game state (FEN):": "État de la partie (FEN) :",
-  "Ok": "Ok",
-  "Random": "Aléatoire",
-  "Preferences": "Préférences",
-  "My name is...": "Je m'appelle...",
-  "Show hints?": "Aides visuelles ?",
-  "Board colors": "Couleurs de l'échiquier",
-  "brown": "marron",
-  "green": "vert",
-  "blue": "bleu",
-  "Play sounds?": "Jouer les sons ?",
-  "None": "Aucun",
-  "All": "Tous",
-  "Chat with ": "Discuter avec ",
-  "Type here": "Écrivez ici",
-  "Send": "Envoyer",
-  "Download PGN": "Télécharger le PGN",
-  "Cancel": "Annuler",
-  "Already playing a game in this variant on another tab!":
-    "Une partie est en cours sur cette variante dans un autre onglet !",
-  "Finish your ": "Terminez votre ",
-  " game first!": " partie d'abord !",
-  ": unfinished computer game will be erased":
-    " : une partie inachevée contre l'ordinateur sera effacée",
-  ": current analysis will be erased":
-    " : l'analyse en cours sera effacée",
+  "Pawns move diagonally": "Les pions vont en diagonale",
+  "Reverse captures": "Captures inversées",
+  "Shared pieces": "Pièces partagées",
+  "Standard rules": "Règles usuelles",
 };
diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue
index 0ce00e70..fbd5e286 100644
--- a/client/src/views/Hall.vue
+++ b/client/src/views/Hall.vue
@@ -18,7 +18,7 @@ main
               :selected="newchallenge.vid==v.id")
             | {{ v.name }}
       fieldset
-        label(for="timeControl") {{ st.tr["Time control"] }} *
+        label(for="timeControl") {{ st.tr["Cadence"] }} *
         div#predefinedTimeControls
           button 3+2
           button 5+3
diff --git a/client/src/views/Rules.vue b/client/src/views/Rules.vue
index 5c38a2dc..b6a374aa 100644
--- a/client/src/views/Rules.vue
+++ b/client/src/views/Rules.vue
@@ -5,7 +5,7 @@ main
       .button-group
         button(@click="clickReadRules") {{ st.tr["Rules"] }}
         button(v-show="!gameInProgress" @click="() => startGame('auto')")
-          | {{ st.tr["Sample game"] }}
+          | {{ st.tr["Example game"] }}
         button(v-show="!gameInProgress" @click="() => startGame('versus')")
           | {{ st.tr["Practice"] }}
         button(v-show="gameInProgress" @click="() => stopGame()")
-- 
2.44.0