Skip to content
4 changes: 2 additions & 2 deletions app/views/simul/homeInner.scala
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ object homeInner:
pendings.nonEmpty option frag(
thead(
tr(
th("Your pending simuls"),
th(trans.yourPendingSimuls()),
th(cls := "host")(trans.host()),
th(cls := "players")(trans.players())
)
Expand Down Expand Up @@ -54,7 +54,7 @@ object homeInner:
if ctx.isAuth then
a(href := routes.Simul.form, cls := "action button text")(trans.hostANewSimul())
else
a(href := routes.Auth.signup, cls := "action button text")("Sign up to host or join a simul")
a(href := routes.Auth.signup, cls := "action button text")(trans.signUpToHostOrJoinASimul())
)
)
),
Expand Down
65 changes: 15 additions & 50 deletions app/views/site/faq.scala
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ object faq:
ul(
li(inferiorThanXsEqualYtimeControl(29, "UltraBullet")),
li(inferiorThanXsEqualYtimeControl(179, "Bullet")),
li(inferiorThanXsEqualYtimeControl(479, "Blitz")),
li(inferiorThanXsEqualYtimeControl(479, trans.blitz())),
li(inferiorThanXsEqualYtimeControl(1499, trans.rapid())),
li(superiorThanXsEqualYtimeControl(1500, trans.classical()))
)
Expand Down Expand Up @@ -219,7 +219,7 @@ object faq:
p(
showYourTitle(
a(href := routes.Main.verifyTitle)(verificationForm()),
a(href := "#lm")("Lichess master (LM)")
a(href := "#lm")("Lichess Master (LM)")
)
)
),
Expand Down Expand Up @@ -355,6 +355,19 @@ object faq:
lichessCanOptionnalySendPopUps()
)
),
question(
"autoplay",
enableAutoplayForSoundsQ.txt(),
p(enableAutoplayForSoundsA()),
h3("Mozilla Firefox (", desktop(), ")"),
p(enableAutoplayForSoundsFirefox()),
h3("Google Chrome (", desktop(), ")"),
p(enableAutoplayForSoundsChrome()),
h3("Safari (", desktop(), ")"),
p(enableAutoplayForSoundsSafari()),
h3("Microsoft Edge (", desktop(), ")"),
p(enableAutoplayForSoundsMicrosoftEdge())
),
question(
"make-a-bot",
"Make a Lichess bot?",
Expand All @@ -367,54 +380,6 @@ object faq:
),
"."
)
),
question(
"autoplay",
"Enable autoplay for sounds?",
p("""
Most browsers can prevent sound from playing on a freshly loaded page to protect users.
Imagine if every website could immediately bombard you with audio ads.
"""),
p("""
The red mute icon appears when your browser prevents lichess.org from playing a sound.
Usually this restriction is lifted once you click something. On some mobile browsers,
touch dragging a piece does not count as a click. In that case you must tap the board to
allow sound at the start of each game.
"""),
p("""
We show the red icon to alert you when this happens. Often you can explicitly allow
lichess.org to play sounds. Here are instructions for doing so on recent versions of
some popular browsers.
"""),
h3("Mozilla Firefox (desktop):"),
ul(
li("Go to lichess.org"),
li("Press ctrl-i on linux/windows or cmd-i on macos"),
li("Click the Permissions tab"),
li("Allow Audio and Video on lichess.org")
),
h3("Google Chrome (desktop):"),
ul(
li("Go to lichess.org"),
li("Click the lock icon in the address bar"),
li("Click Site Settings"),
li("Allow Sound")
),
h3("Safari (desktop):"),
ul(
li("Go to lichess.org"),
li("Click Safari in the menu bar"),
li("Click Settings for lichess.org..."),
li("Allow All Auto-Play")
),
h3("Microsoft Edge (desktop):"),
ul(
li("Click the three dots in the top right corner"),
li("Click Settings"),
li("Click Cookies and Site Permissions"),
li("Scroll down and click Media autoplay"),
li("Add lichess.org to Allow")
)
)
)
}
12 changes: 10 additions & 2 deletions modules/i18n/src/main/I18nKeys.scala
Original file line number Diff line number Diff line change
Expand Up @@ -513,8 +513,10 @@ object I18nKeys:
val `simultaneousExhibitions` = I18nKey("simultaneousExhibitions")
val `host` = I18nKey("host")
val `hostColorX` = I18nKey("hostColorX")
val `yourPendingSimuls` = I18nKey("yourPendingSimuls")
val `createdSimuls` = I18nKey("createdSimuls")
val `hostANewSimul` = I18nKey("hostANewSimul")
val `signUpToHostOrJoinASimul` = I18nKey("signUpToHostOrJoinASimul")
val `noSimulFound` = I18nKey("noSimulFound")
val `noSimulExplanation` = I18nKey("noSimulExplanation")
val `returnToSimulHomepage` = I18nKey("returnToSimulHomepage")
Expand Down Expand Up @@ -1992,6 +1994,13 @@ object I18nKeys:
val `enableDisableNotificationPopUps` = I18nKey("faq:enableDisableNotificationPopUps")
val `viewSiteInformationPopUp` = I18nKey("faq:viewSiteInformationPopUp")
val `lichessCanOptionnalySendPopUps` = I18nKey("faq:lichessCanOptionnalySendPopUps")
val `enableAutoplayForSoundsQ` = I18nKey("faq:enableAutoplayForSoundsQ")
val `enableAutoplayForSoundsA` = I18nKey("faq:enableAutoplayForSoundsA")
val `desktop` = I18nKey("faq:desktop")
val `enableAutoplayForSoundsFirefox` = I18nKey("faq:enableAutoplayForSoundsFirefox")
val `enableAutoplayForSoundsChrome` = I18nKey("faq:enableAutoplayForSoundsChrome")
val `enableAutoplayForSoundsSafari` = I18nKey("faq:enableAutoplayForSoundsSafari")
val `enableAutoplayForSoundsMicrosoftEdge` = I18nKey("faq:enableAutoplayForSoundsMicrosoftEdge")

object lag:
val `isLichessLagging` = I18nKey("lag:isLichessLagging")
Expand Down Expand Up @@ -2406,11 +2415,10 @@ object I18nKeys:
val `safeAndRespectfulContent` = I18nKey("ublog:safeAndRespectfulContent")
val `inappropriateContentAccountClosed` = I18nKey("ublog:inappropriateContentAccountClosed")
val `blogTips` = I18nKey("ublog:blogTips")
val `discussThisBlogPostInTheForum` = I18nKey("ublog:discussThisBlogPostInTheForum")
val `publishedNbBlogPosts` = I18nKey("ublog:publishedNbBlogPosts")
val `nbViews` = I18nKey("ublog:nbViews")
val `viewAllNbPosts` = I18nKey("ublog:viewAllNbPosts")
val `discussThisBlogPostInTheForum` = I18nKey("ublog:discussThisBlogPostInTheForum")


object insight:
val `xChessInsights` = I18nKey("insight:xChessInsights")
Expand Down
24 changes: 24 additions & 0 deletions translation/source/faq.xml
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,28 @@ It's best to think of ratings as "relative" figures (as opposed to "absolute" fi
Click the lock icon next to the lichess.org address in the URL bar of your browser.

Then select whether to allow or block notifications from Lichess.</string>
<string name="enableAutoplayForSoundsQ">Enable autoplay for sounds?</string>
<string name="enableAutoplayForSoundsA">Most browsers can prevent sound from playing on a freshly loaded page to protect users. Imagine if every website could immediately bombard you with audio ads.

The red mute icon appears when your browser prevents lichess.org from playing a sound. Usually this restriction is lifted once you click something. On some mobile browsers, touch dragging a piece does not count as a click. In that case you must tap the board to allow sound at the start of each game.

We show the red icon to alert you when this happens. Often you can explicitly allow lichess.org to play sounds. Here are instructions for doing so on recent versions of some popular browsers.</string>
<string name="desktop">desktop</string>
<string name="enableAutoplayForSoundsFirefox">1. Go to lichess.org
2. Press Ctrl-i on Linux/Windows or cmd-i on MacOS
3. Click the Permissions tab
4. Allow Audio and Video on lichess.org</string>
<string name="enableAutoplayForSoundsChrome">1. Go to lichess.org
2. Click the lock icon in the address bar
3. Click Site Settings
4. Allow Sound</string>
<string name="enableAutoplayForSoundsSafari">1. Go to lichess.org
2. Click Safari in the menu bar
3. Click Settings for lichess.org ...
4. Allow All Auto-Play</string>
<string name="enableAutoplayForSoundsMicrosoftEdge">1. Click the three dots in the top right corner
2. Click Settings
3. Click Cookies and Site Permissions
4. Scroll down and click Media autoplay
5. Add lichess.org to Allow</string>
</resources>
2 changes: 2 additions & 0 deletions translation/source/site.xml
Original file line number Diff line number Diff line change
Expand Up @@ -659,8 +659,10 @@ computer analysis, game chat and shareable URL.</string>
<string name="simultaneousExhibitions">Simultaneous exhibitions</string>
<string name="host">Host</string>
<string name="hostColorX">Host colour: %s</string>
<string name="yourPendingSimuls">Your pending simuls</string>
<string name="createdSimuls">Newly created simuls</string>
<string name="hostANewSimul">Host a new simul</string>
<string name="signUpToHostOrJoinASimul">Sign up to host or join a simul</string>
<string name="noSimulFound">Simul not found</string>
<string name="noSimulExplanation">This simultaneous exhibition does not exist.</string>
<string name="returnToSimulHomepage">Return to simul homepage</string>
Expand Down