Translate lag page
parent
4380596749
commit
79c1ea78ae
|
@ -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())
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue