diff --git a/app/views/board/JsData.scala b/app/views/board/JsData.scala
index 3205547934..6205cc01a9 100644
--- a/app/views/board/JsData.scala
+++ b/app/views/board/JsData.scala
@@ -41,6 +41,7 @@ object JsData extends lila.Lilaisms {
I18nKeys.blackCastlingKingside,
I18nKeys.whitePlays,
I18nKeys.blackPlays,
+ I18nKeys.selectAVariant,
I18nKeys.continueFromHere,
I18nKeys.playWithTheMachine,
I18nKeys.playWithAFriend,
diff --git a/modules/i18n/src/main/I18nKeys.scala b/modules/i18n/src/main/I18nKeys.scala
index f53d0bd73f..a9d24300ec 100644
--- a/modules/i18n/src/main/I18nKeys.scala
+++ b/modules/i18n/src/main/I18nKeys.scala
@@ -182,6 +182,8 @@ val `ratedTournament` = new Translated("ratedTournament", Site)
val `thisGameIsRated` = new Translated("thisGameIsRated", Site)
val `rematch` = new Translated("rematch", Site)
val `rematchOfferSent` = new Translated("rematchOfferSent", Site)
+val `rematchOfferSentWhite` = new Translated("rematchOfferSentWhite", Site)
+val `rematchOfferSentBlack` = new Translated("rematchOfferSentBlack", Site)
val `rematchOfferAccepted` = new Translated("rematchOfferAccepted", Site)
val `rematchOfferCanceled` = new Translated("rematchOfferCanceled", Site)
val `rematchOfferDeclined` = new Translated("rematchOfferDeclined", Site)
@@ -292,6 +294,14 @@ val `winner` = new Translated("winner", Site)
val `standing` = new Translated("standing", Site)
val `createANewTournament` = new Translated("createANewTournament", Site)
val `tournamentCalendar` = new Translated("tournamentCalendar", Site)
+val `conditionOfEntry` = new Translated("conditionOfEntry", Site)
+val `advancedSettings` = new Translated("advancedSettings", Site)
+val `safeTournamentName` = new Translated("safeTournamentName", Site)
+val `inappropriateNameWarning` = new Translated("inappropriateNameWarning", Site)
+val `emptyTournamentName` = new Translated("emptyTournamentName", Site)
+val `recommendNotTouching` = new Translated("recommendNotTouching", Site)
+val `fewerPlayers` = new Translated("fewerPlayers", Site)
+val `showAdvancedSettings` = new Translated("showAdvancedSettings", Site)
val `join` = new Translated("join", Site)
val `withdraw` = new Translated("withdraw", Site)
val `points` = new Translated("points", Site)
@@ -322,6 +332,7 @@ val `startPosition` = new Translated("startPosition", Site)
val `clearBoard` = new Translated("clearBoard", Site)
val `savePosition` = new Translated("savePosition", Site)
val `loadPosition` = new Translated("loadPosition", Site)
+val `selectAVariant` = new Translated("selectAVariant", Site)
val `isPrivate` = new Translated("isPrivate", Site)
val `reportXToModerators` = new Translated("reportXToModerators", Site)
val `profileCompletion` = new Translated("profileCompletion", Site)
@@ -735,14 +746,6 @@ val `availableInNbLanguages` = new Translated("availableInNbLanguages", Site)
val `nbSecondsToPlayTheFirstMove` = new Translated("nbSecondsToPlayTheFirstMove", Site)
val `nbSeconds` = new Translated("nbSeconds", Site)
val `andSaveNbPremoveLines` = new Translated("andSaveNbPremoveLines", Site)
-val `conditionOfEntry` = new Translated("conditionOfEntry", Site)
-val `advancedSettings` = new Translated("advancedSettings", Site)
-val `recommendNotTouching` = new Translated("recommendNotTouching", Site)
-val `fewerPlayers` = new Translated("fewerPlayers", Site)
-val `showAdvancedSettings` = new Translated("showAdvancedSettings", Site)
-val `safeTournamentName` = new Translated("safeTournamentName", Site)
-val `inappropriateNameWarning` = new Translated("inappropriateNameWarning", Site)
-val `emptyTournamentName` = new Translated("emptyTournamentName", Site)
object arena {
val `isItRated` = new Translated("isItRated", Arena)
diff --git a/translation/source/site.xml b/translation/source/site.xml
index 40922fe091..adeb5214e1 100644
--- a/translation/source/site.xml
+++ b/translation/source/site.xml
@@ -425,6 +425,7 @@ a computer analysis, a game chat and a shareable URL.
Clear board
Save position
Load position
+ Select a variant
Private
Report %s to moderators
Profile completion: %s
diff --git a/ui/editor/src/view.js b/ui/editor/src/view.js
index b41977cb87..68924f2441 100644
--- a/ui/editor/src/view.js
+++ b/ui/editor/src/view.js
@@ -116,7 +116,7 @@ function controls(ctrl, fen) {
ctrl.changeVariant(e.target.value);
}
}, [
- optgroup("Select a variant", [
+ optgroup(ctrl.trans('selectAVariant'), [
variant2option("standard", "Standard"),
variant2option("antichess", "Antichess"),
variant2option("atomic", "Atomic"),