Translate lag page

pull/6535/head
kraktus 2020-05-02 12:32:11 +01:00
parent 4380596749
commit 79c1ea78ae
4 changed files with 44 additions and 33 deletions

View File

@ -6,6 +6,8 @@ import lila.app.ui.ScalatagsTemplate._
object lag {
import trans.lag._
def apply()(implicit ctx: Context) =
help.layout(
title = "Is Lichess lagging?",
@ -19,56 +21,45 @@ object lag {
) {
main(cls := "box box-pad lag")(
h1(
"Is Lichess lagging?",
isLichessLagging(),
span(cls := "answer short")(
span(cls := "waiting")("Measurements in progress..."),
span(cls := "nope-nope none")(strong("No."), " And your network is good."),
span(cls := "nope-yep none")(strong("No."), " But your network is bad."),
span(cls := "yep none")(strong("Yes."), " It will be fixed soon!")
span(cls := "waiting")(measurementInProgressThreeDot()),
span(cls := "nope-nope none")(strong(trans.no(), "."), " ", andYourNetworkIsGood()),
span(cls := "nope-yep none")(strong(trans.no(), "."), " ", andYourNetworkIsBad()),
span(cls := "yep none")(strong(trans.yes(), "."), " ", itWillBeFixedSoon())
)
),
div(cls := "answer long")(
"And now, the long answer! Game lag is composed of two unrelated values (lower is better):"
andNowTheLongAnswerLagComposedOfTwoValues()
),
div(cls := "sections")(
st.section(cls := "server")(
h2("Lichess server latency"),
h2(lichessServerLatency()),
div(cls := "meter"),
p(
"The time it takes to process a move on the server. ",
"It's the ",
strong("same for everybody"),
", and only depends on the server load. ",
"The more players and the higher it gets, but Lichess developers ",
"do their best to keep it low. It rarely exceeds 10ms."
lichessServerLatencyExplanation(
strong(sameForEverybody())
)
)
),
st.section(cls := "network")(
h2("Network between Lichess and you"),
h2(networkBetweenLichessAndYou()),
div(cls := "meter"),
p(
"The time it takes to send a move from your computer to Lichess server, ",
"and get the response back. ",
"It's specific to your ",
strong("distance to Lichess (France)"),
", and ",
"to the ",
strong("quality of your Internet connection"),
". ",
"Lichess developers can not fix your wifi or make light go faster."
networkBetweenLichessAndYouExplanation(
strong(distanceToLichessFrance()),
strong(qualityOfYourInternetConnection())
)
)
)
),
div(cls := "last-word")(
p("You can find both these values at any time, by clicking your username in the top bar."),
h2("Lag compensation"),
p(youCanFindTheseValuesAtAnyTimeByClickingOnYourUsername()),
h2(lagCompensation()),
p(
"Lichess compensates network lag. This includes sustained lag and occasional lag spikes. ",
"There are limits and heuristics based on time control and the compensated lag so far, ",
"so that the result should feel reasonable for both players. ",
"As a result, having a higher network lag than your opponent is ",
strong("not a handicap"),
"!"
lagCompensationExplanation(
strong(notAHandicap())
)
)
)
)

View File

@ -2,7 +2,7 @@ const fs = require('fs-extra');
const parseString = require('xml2js').parseString;
const baseDir = 'translation/source';
const dbs = 'site arena emails learn activity coordinates study clas contact patron coach broadcast streamer tfa settings preferences team perfStat search tourname faq'.split(' ');
const dbs = 'site arena emails learn activity coordinates study clas contact patron coach broadcast streamer tfa settings preferences team perfStat search tourname faq lag'.split(' ');
function ucfirst(s) {
return s.charAt(0).toUpperCase() + s.slice(1);

View File

@ -75,7 +75,7 @@ lazy val i18n = module("i18n",
MessageCompiler(
sourceDir = new File("translation/source"),
destDir = new File("translation/dest"),
dbs = "site arena emails learn activity coordinates study class contact patron coach broadcast streamer tfa settings preferences team perfStat search tourname faq".split(' ').toList,
dbs = "site arena emails learn activity coordinates study class contact patron coach broadcast streamer tfa settings preferences team perfStat search tourname faq lag".split(' ').toList,
compileTo = (sourceManaged in Compile).value
)
}.taskValue

View File

@ -1756,4 +1756,24 @@ val `viewSiteInformationPopUp` = new I18nKey("faq:viewSiteInformationPopUp")
val `lichessCanOptionnalySendPopUps` = new I18nKey("faq:lichessCanOptionnalySendPopUps")
}
object lag {
val `isLichessLagging` = new I18nKey("lag:isLichessLagging")
val `measurementInProgressThreeDot` = new I18nKey("lag:measurementInProgressThreeDot")
val `andYourNetworkIsGood` = new I18nKey("lag:andYourNetworkIsGood")
val `andYourNetworkIsBad` = new I18nKey("lag:andYourNetworkIsBad")
val `itWillBeFixedSoon` = new I18nKey("lag:itWillBeFixedSoon")
val `andNowTheLongAnswerLagComposedOfTwoValues` = new I18nKey("lag:andNowTheLongAnswerLagComposedOfTwoValues")
val `lichessServerLatency` = new I18nKey("lag:lichessServerLatency")
val `lichessServerLatencyExplanation` = new I18nKey("lag:lichessServerLatencyExplanation")
val `sameForEverybody` = new I18nKey("lag:sameForEverybody")
val `networkBetweenLichessAndYou` = new I18nKey("lag:networkBetweenLichessAndYou")
val `networkBetweenLichessAndYouExplanation` = new I18nKey("lag:networkBetweenLichessAndYouExplanation")
val `distanceToLichessFrance` = new I18nKey("lag:distanceToLichessFrance")
val `qualityOfYourInternetConnection` = new I18nKey("lag:qualityOfYourInternetConnection")
val `youCanFindTheseValuesAtAnyTimeByClickingOnYourUsername` = new I18nKey("lag:youCanFindTheseValuesAtAnyTimeByClickingOnYourUsername")
val `lagCompensation` = new I18nKey("lag:lagCompensation")
val `lagCompensationExplanation` = new I18nKey("lag:lagCompensationExplanation")
val `notAHandicap` = new I18nKey("lag:notAHandicap")
}
}