diff --git a/modules/coreI18n/src/main/key.scala b/modules/coreI18n/src/main/key.scala
index b3b98ba0f4830..e4179c5b93215 100644
--- a/modules/coreI18n/src/main/key.scala
+++ b/modules/coreI18n/src/main/key.scala
@@ -202,7 +202,6 @@ object I18nKey:
val `timezone`: I18nKey = "broadcast:timezone"
val `fideRatingCategory`: I18nKey = "broadcast:fideRatingCategory"
val `optionalDetails`: I18nKey = "broadcast:optionalDetails"
- val `upcomingBroadcasts`: I18nKey = "broadcast:upcomingBroadcasts"
val `pastBroadcasts`: I18nKey = "broadcast:pastBroadcasts"
val `allBroadcastsByMonth`: I18nKey = "broadcast:allBroadcastsByMonth"
val `nbBroadcasts`: I18nKey = "broadcast:nbBroadcasts"
@@ -1134,6 +1133,7 @@ object I18nKey:
val `notifyWeb`: I18nKey = "preferences:notifyWeb"
val `notifyDevice`: I18nKey = "preferences:notifyDevice"
val `bellNotificationSound`: I18nKey = "preferences:bellNotificationSound"
+ val `blindfold`: I18nKey = "preferences:blindfold"
object puzzle:
val `puzzles`: I18nKey = "puzzle:puzzles"
diff --git a/translation/source/preferences.xml b/translation/source/preferences.xml
index 2ec3b7ddb337c..2a0040d62e1be 100644
--- a/translation/source/preferences.xml
+++ b/translation/source/preferences.xml
@@ -67,4 +67,5 @@
Browser
Device
Bell notification sound
+ Blindfold
diff --git a/ui/@types/lichess/i18n.d.ts b/ui/@types/lichess/i18n.d.ts
index f5fa3584abd7f..8df1de4f1f739 100644
--- a/ui/@types/lichess/i18n.d.ts
+++ b/ui/@types/lichess/i18n.d.ts
@@ -2065,6 +2065,8 @@ interface I18n {
preferences: {
/** Bell notification sound */
bellNotificationSound: string;
+ /** Blindfold */
+ blindfold: string;
/** Board coordinates (A-H, 1-8) */
boardCoordinates: string;
/** Board highlights (last move and check) */
diff --git a/ui/common/src/boardMenu.ts b/ui/common/src/boardMenu.ts
index b96c4c9fde8ee..9aa8c72967bcf 100644
--- a/ui/common/src/boardMenu.ts
+++ b/ui/common/src/boardMenu.ts
@@ -44,7 +44,7 @@ export class BoardMenu {
zenMode = (enabled = true): VNode =>
this.cmnToggle({
- name: 'Zen mode',
+ name: i18n.preferences.zenMode,
id: 'zen',
checked: $('body').hasClass('zen'),
change: () => pubsub.emit('zen'),
@@ -53,7 +53,7 @@ export class BoardMenu {
voiceInput = (toggle: Toggle, enabled = true): VNode =>
this.cmnToggle({
- name: 'Voice input',
+ name: i18n.preferences.inputMovesWithVoice,
id: 'voice',
checked: toggle(),
change: toggle,
@@ -63,7 +63,7 @@ export class BoardMenu {
keyboardInput = (toggle: Toggle, enabled = true): VNode =>
this.cmnToggle({
- name: 'Keyboard input',
+ name: i18n.preferences.inputMovesWithTheKeyboard,
id: 'keyboard',
checked: toggle(),
change: toggle,
@@ -73,7 +73,7 @@ export class BoardMenu {
blindfold = (toggle: Toggle, enabled = true): VNode =>
this.cmnToggle({
- name: 'Blindfold',
+ name: i18n.preferences.blindfold,
id: 'blindfold',
checked: toggle(),
change: toggle,
diff --git a/ui/puzzle/src/view/boardMenu.ts b/ui/puzzle/src/view/boardMenu.ts
index c85f207e7f271..d1ed0a9ff32e1 100644
--- a/ui/puzzle/src/view/boardMenu.ts
+++ b/ui/puzzle/src/view/boardMenu.ts
@@ -17,11 +17,7 @@ export default function (ctrl: PuzzleCtrl) {
menu.keyboardInput(boolPrefXhrToggle('keyboardMove', !!ctrl.keyboardMove), true),
]),
h('section.board-menu__links', [
- h(
- 'a',
- { attrs: { target: '_blank', href: '/account/preferences/display' } },
- 'Game display preferences',
- ),
+ h('a', { attrs: { target: '_blank', href: '/account/preferences/display' } }, i18n.preferences.display),
]),
]);
}
diff --git a/ui/round/src/view/boardMenu.ts b/ui/round/src/view/boardMenu.ts
index 80e5428ecee3d..0e4775db6e893 100644
--- a/ui/round/src/view/boardMenu.ts
+++ b/ui/round/src/view/boardMenu.ts
@@ -27,12 +27,12 @@ export default function (ctrl: RoundController): LooseVNode {
h(
'a',
{ attrs: { target: '_blank', href: '/account/preferences/display' } },
- 'Game display preferences',
+ i18n.preferences.display,
),
h(
'a',
{ attrs: { target: '_blank', href: '/account/preferences/game-behavior ' } },
- 'Game behavior preferences',
+ i18n.preferences.gameBehavior,
),
]),
];