translate chess captcha
This commit is contained in:
parent
6bfe9dd505
commit
2547e6a092
|
@ -1,11 +1,9 @@
|
|||
@(form: Form[_])(implicit ctx: Context)
|
||||
|
||||
@auth.layout(title = trans.signIn.str()) {
|
||||
<div class="content_box small_box">
|
||||
<div class="content_box">
|
||||
<div class="signup_box">
|
||||
<h1 class="lichess_title">@trans.signIn()</h1>
|
||||
<br />
|
||||
<br />
|
||||
<form action="@routes.Auth.authenticate" method="POST">
|
||||
@form.globalError.map { error =>
|
||||
<p class="error">@error.message</p>
|
||||
|
@ -13,12 +11,15 @@
|
|||
<ul>
|
||||
@auth.formFields(form("username"), form("password"))
|
||||
<li>
|
||||
<input type="submit" value="@trans.signIn()" class="submit">
|
||||
<span class="alternative"><a href="@routes.Auth.signup()">@trans.signUp()</a></span>
|
||||
<input type="submit" value="@trans.signIn()" class="submit button">
|
||||
</li>
|
||||
</ul>
|
||||
<input type="hidden" class="referrer" name="_referrer" value="@currentUrl" />
|
||||
</form>
|
||||
</div>
|
||||
<div class="alternative">
|
||||
@trans.newToLichess()
|
||||
<a href="@routes.Auth.signup()" class="button">@trans.signUp()</a>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
|
|
@ -5,17 +5,9 @@ title = trans.signUp.str()) {
|
|||
<div class="content_box small_box">
|
||||
<div class="signup_box">
|
||||
<h1 class="lichess_title">@trans.signUp()</h1>
|
||||
<br />
|
||||
<br />
|
||||
<p class="explanation">
|
||||
@trans.allYouNeedIsAUsernameAndAPassword()
|
||||
</p>
|
||||
<p class="explanation">
|
||||
<em>
|
||||
It is <strong>not</strong> required to signup. You can play as <strong>anonymous</strong>.<br />
|
||||
Signup if you want to save your played games and have an Elo ranking.
|
||||
</em>
|
||||
</p>
|
||||
<form action="@routes.Auth.signupPost" method="POST">
|
||||
<ul>
|
||||
@auth.formFields(form("username"), form("password"))
|
||||
|
@ -24,8 +16,7 @@ title = trans.signUp.str()) {
|
|||
</li>
|
||||
@errMsg(form)
|
||||
<li>
|
||||
<input type="submit" value="@trans.signUp()" class="submit">
|
||||
<span class="alternative">@trans.haveAnAccount() <a href="@routes.Auth.login">@trans.signIn()</a></span>
|
||||
<input type="submit" value="@trans.signUp()" class="submit button">
|
||||
</li>
|
||||
</ul>
|
||||
<input type="hidden" class="referrer" name="_referrer" value="@currentUrl" />
|
||||
|
|
|
@ -1,23 +1,22 @@
|
|||
@(move: Field, gameId: Field, captcha: lila.common.Captcha)(implicit ctx: Context)
|
||||
<input type="hidden" name="@gameId.name" id="@gameId.id" value="@captcha.gameId" />
|
||||
@defining(captcha.white.fold("white", "black")) { color =>
|
||||
<div class="checkmateCaptcha clearfix" data-check-url="@routes.Main.captchaCheck(captcha.gameId)">
|
||||
<div class="checkmateFen">
|
||||
<div
|
||||
class="mini_board parse_fen with_keys"
|
||||
data-color="@color"
|
||||
data-color="@captcha.white.fold("white", "black")"
|
||||
data-fen="@captcha.fen"></div>
|
||||
</div>
|
||||
<div class="checkmateSection">
|
||||
<label>
|
||||
<strong>@color.capitalize plays; checkmate in one!</strong><br />
|
||||
This is a chess CAPTCHA.<br />
|
||||
Click on the board to make your move,<br />
|
||||
and prove you are human.<br /><br />
|
||||
<div class="result success">@trans.checkmate()!!</div>
|
||||
<div class="result failure">Not a checkmate <button class="button retry">Retry</button></div>
|
||||
<strong>@trans.colorPlaysCheckmateInOne(captcha.white.fold(trans.white, trans.black)())</strong><br />
|
||||
<br />
|
||||
@trans.thisIsAChessCaptcha()<br />
|
||||
@trans.clickOnTheBoardToMakeYourMove()
|
||||
<br /><br />
|
||||
<div class="result success">@trans.checkmate()</div>
|
||||
<div class="result failure">@trans.notACheckmate() <button class="button retry">@trans.retry()</button></div>
|
||||
</label>
|
||||
<input type="hidden" name="@move.name" id="@move.id" value="" />
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
|
|
@ -71,6 +71,7 @@ bookmarkedByNbPlayers=Bookmarked by %s players
|
|||
viewInFullSize=View in full size
|
||||
logOut=Log out
|
||||
signIn=Sign in
|
||||
newToLichess=New to Lichess?
|
||||
signUp=Sign up
|
||||
people=People
|
||||
games=Games
|
||||
|
@ -178,3 +179,8 @@ fromPosition=From position
|
|||
continueFromHere=Continue from here
|
||||
importGame=Import game
|
||||
nbImportedGames=%s Imported games
|
||||
thisIsAChessCaptcha=This is a chess CAPTCHA.
|
||||
clickOnTheBoardToMakeYourMove=Click on the board to make your move, and prove you are human.
|
||||
notACheckmate=Not a checkmate
|
||||
colorPlaysCheckmateInOne=%s plays; checkmate in one
|
||||
retry=Retry
|
||||
|
|
|
@ -178,3 +178,8 @@ fromPosition=Depuis une position
|
|||
continueFromHere=Continuer depuis cette position
|
||||
importGame=Importer une partie
|
||||
nbImportedGames=%s Parties importées
|
||||
thisIsAChessCaptcha=Ceci est un CAPTCHA d'échecs.
|
||||
clickOnTheBoardToMakeYourMove=Cliquez sur le plateau pour jouer un coup, et prouvez que vous êtes humain.
|
||||
notACheckmate=Ce n'est pas un échec et mat
|
||||
colorPlaysCheckmateInOne=%s joue, mat en un coup.
|
||||
retry=Réessayer
|
||||
|
|
|
@ -95,6 +95,7 @@ final class I18nKeys(translator: Translator) {
|
|||
val viewInFullSize = new Key("viewInFullSize")
|
||||
val logOut = new Key("logOut")
|
||||
val signIn = new Key("signIn")
|
||||
val newToLichess = new Key("newToLichess")
|
||||
val signUp = new Key("signUp")
|
||||
val people = new Key("people")
|
||||
val games = new Key("games")
|
||||
|
@ -202,6 +203,11 @@ final class I18nKeys(translator: Translator) {
|
|||
val continueFromHere = new Key("continueFromHere")
|
||||
val importGame = new Key("importGame")
|
||||
val nbImportedGames = new Key("nbImportedGames")
|
||||
val thisIsAChessCaptcha = new Key("thisIsAChessCaptcha")
|
||||
val clickOnTheBoardToMakeYourMove = new Key("clickOnTheBoardToMakeYourMove")
|
||||
val notACheckmate = new Key("notACheckmate")
|
||||
val colorPlaysCheckmateInOne = new Key("colorPlaysCheckmateInOne")
|
||||
val retry = new Key("retry")
|
||||
|
||||
def keys = List(playWithAFriend, inviteAFriendToPlayWithYou, playWithTheMachine, challengeTheArtificialIntelligence, toInviteSomeoneToPlayGiveThisUrl, gameOver, waitingForOpponent, waiting, yourTurn, aiNameLevelAiLevel, level, toggleTheChat, toggleSound, chat, resign, checkmate, stalemate, white, black, createAGame, noGameAvailableRightNowCreateOne, whiteIsVictorious, blackIsVictorious, playWithTheSameOpponentAgain, newOpponent, playWithAnotherOpponent, yourOpponentWantsToPlayANewGameWithYou, joinTheGame, whitePlays, blackPlays, theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim, makeYourOpponentResign, forceResignation, talkInChat, theFirstPersonToComeOnThisUrlWillPlayWithYou, whiteCreatesTheGame, blackCreatesTheGame, whiteJoinsTheGame, blackJoinsTheGame, whiteResigned, blackResigned, whiteLeftTheGame, blackLeftTheGame, shareThisUrlToLetSpectatorsSeeTheGame, youAreViewingThisGameAsASpectator, replayAndAnalyse, computerAnalysisInProgress, theComputerAnalysisYouRequestedIsNowAvailable, theComputerAnalysisHasFailed, viewTheComputerAnalysis, requestAComputerAnalysis, blunders, mistakes, inaccuracies, viewGameStats, flipBoard, threefoldRepetition, claimADraw, offerDraw, draw, nbConnectedPlayers, talkAboutChessAndDiscussLichessFeaturesInTheForum, seeTheGamesBeingPlayedInRealTime, gamesBeingPlayedRightNow, viewAllNbGames, viewNbCheckmates, nbBookmarks, nbPopularGames, nbAnalysedGames, bookmarkedByNbPlayers, viewInFullSize, logOut, signIn, signUp, people, games, forum, searchInForum, chessPlayers, minutesPerSide, variant, timeControl, start, username, password, haveAnAccount, allYouNeedIsAUsernameAndAPassword, learnMoreAboutLichess, rank, gamesPlayed, declineInvitation, cancel, timeOut, drawOfferSent, drawOfferDeclined, drawOfferAccepted, drawOfferCanceled, yourOpponentOffersADraw, accept, decline, playingRightNow, abortGame, gameAborted, standard, unlimited, mode, casual, rated, thisGameIsRated, rematch, rematchOfferSent, rematchOfferAccepted, rematchOfferCanceled, rematchOfferDeclined, cancelRematchOffer, viewRematch, play, inbox, chatRoom, spectatorRoom, composeMessage, sentMessages, incrementInSeconds, freeOnlineChess, spectators, nbWins, nbLosses, nbDraws, exportGames, color, eloRange, giveNbSeconds, searchAPlayer, whoIsOnline, allPlayers, premoveEnabledClickAnywhereToCancel, thisPlayerUsesChessComputerAssistance, opening, takeback, proposeATakeback, takebackPropositionSent, takebackPropositionDeclined, takebackPropositionAccepted, takebackPropositionCanceled, yourOpponentProposesATakeback, bookmarkThisGame, toggleBackground, advancedSearch, tournament, tournamentPoints, viewTournament, freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents, teams, nbMembers, allTeams, newTeam, myTeams, noTeamFound, joinTeam, quitTeam, anyoneCanJoin, aConfirmationIsRequiredToJoin, joiningPolicy, teamLeader, teamBestPlayers, teamRecentMembers, searchATeam, averageElo, location, settings, filterGames, reset, apply, leaderboard, pasteTheFenStringHere, pasteThePgnStringHere, fromPosition, continueFromHere, importGame, nbImportedGames)
|
||||
def keys = List(playWithAFriend, inviteAFriendToPlayWithYou, playWithTheMachine, challengeTheArtificialIntelligence, toInviteSomeoneToPlayGiveThisUrl, gameOver, waitingForOpponent, waiting, yourTurn, aiNameLevelAiLevel, level, toggleTheChat, toggleSound, chat, resign, checkmate, stalemate, white, black, createAGame, noGameAvailableRightNowCreateOne, whiteIsVictorious, blackIsVictorious, playWithTheSameOpponentAgain, newOpponent, playWithAnotherOpponent, yourOpponentWantsToPlayANewGameWithYou, joinTheGame, whitePlays, blackPlays, theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim, makeYourOpponentResign, forceResignation, talkInChat, theFirstPersonToComeOnThisUrlWillPlayWithYou, whiteCreatesTheGame, blackCreatesTheGame, whiteJoinsTheGame, blackJoinsTheGame, whiteResigned, blackResigned, whiteLeftTheGame, blackLeftTheGame, shareThisUrlToLetSpectatorsSeeTheGame, youAreViewingThisGameAsASpectator, replayAndAnalyse, computerAnalysisInProgress, theComputerAnalysisYouRequestedIsNowAvailable, theComputerAnalysisHasFailed, viewTheComputerAnalysis, requestAComputerAnalysis, blunders, mistakes, inaccuracies, viewGameStats, flipBoard, threefoldRepetition, claimADraw, offerDraw, draw, nbConnectedPlayers, talkAboutChessAndDiscussLichessFeaturesInTheForum, seeTheGamesBeingPlayedInRealTime, gamesBeingPlayedRightNow, viewAllNbGames, viewNbCheckmates, nbBookmarks, nbPopularGames, nbAnalysedGames, bookmarkedByNbPlayers, viewInFullSize, logOut, signIn, newToLichess, signUp, people, games, forum, searchInForum, chessPlayers, minutesPerSide, variant, timeControl, start, username, password, haveAnAccount, allYouNeedIsAUsernameAndAPassword, learnMoreAboutLichess, rank, gamesPlayed, declineInvitation, cancel, timeOut, drawOfferSent, drawOfferDeclined, drawOfferAccepted, drawOfferCanceled, yourOpponentOffersADraw, accept, decline, playingRightNow, abortGame, gameAborted, standard, unlimited, mode, casual, rated, thisGameIsRated, rematch, rematchOfferSent, rematchOfferAccepted, rematchOfferCanceled, rematchOfferDeclined, cancelRematchOffer, viewRematch, play, inbox, chatRoom, spectatorRoom, composeMessage, sentMessages, incrementInSeconds, freeOnlineChess, spectators, nbWins, nbLosses, nbDraws, exportGames, color, eloRange, giveNbSeconds, searchAPlayer, whoIsOnline, allPlayers, premoveEnabledClickAnywhereToCancel, thisPlayerUsesChessComputerAssistance, opening, takeback, proposeATakeback, takebackPropositionSent, takebackPropositionDeclined, takebackPropositionAccepted, takebackPropositionCanceled, yourOpponentProposesATakeback, bookmarkThisGame, toggleBackground, advancedSearch, tournament, tournamentPoints, viewTournament, freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents, teams, nbMembers, allTeams, newTeam, myTeams, noTeamFound, joinTeam, quitTeam, anyoneCanJoin, aConfirmationIsRequiredToJoin, joiningPolicy, teamLeader, teamBestPlayers, teamRecentMembers, searchATeam, averageElo, location, settings, filterGames, reset, apply, leaderboard, pasteTheFenStringHere, pasteThePgnStringHere, fromPosition, continueFromHere, importGame, nbImportedGames, thisIsAChessCaptcha, clickOnTheBoardToMakeYourMove, notACheckmate, colorPlaysCheckmateInOne, retry)
|
||||
}
|
||||
|
|
|
@ -744,6 +744,7 @@ div.checkmateFen div.lmcs.selected {
|
|||
}
|
||||
div.checkmateSection {
|
||||
float: left;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
div.checkmateSection div.result {
|
||||
display: none;
|
||||
|
|
|
@ -79,6 +79,7 @@ body.dark #lichess_message tr,
|
|||
body.dark #lichess_message div.thread_message,
|
||||
body.dark #lichess_message textarea,
|
||||
body.dark #lichess_message input,
|
||||
body.dark .content_box form input,
|
||||
body.dark div.progressbar,
|
||||
body.dark form.translation_form div.messages,
|
||||
body.dark form.translation_form input,
|
||||
|
|
|
@ -1,17 +1,24 @@
|
|||
div.signup_box p.explanation {
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
div.signup_box p.explanation em {
|
||||
font-style: italic;
|
||||
div.content_box {
|
||||
width: 232px;
|
||||
padding-bottom: 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
div.signup_box h1 {
|
||||
div.signup_box p.explanation {
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
div.signup_box .alternative {
|
||||
font-size: 0.8em;
|
||||
div.signup_box .lichess_title {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
div.alternative {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 2em;
|
||||
left: 312px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.content_box form {
|
||||
|
@ -22,34 +29,29 @@ div.signup_box .alternative {
|
|||
list-style: none;
|
||||
display: block;
|
||||
margin: 1em 0 1em 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.content_box form label {
|
||||
float: left;
|
||||
display: block;
|
||||
width: 150px;
|
||||
text-align: right;
|
||||
margin-right: 10px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.content_box form .username input, .content_box form .password input {
|
||||
width: 200px;
|
||||
padding: 0 3px;
|
||||
border: 1px solid #D4D4D4;
|
||||
.content_box form input {
|
||||
font-size: 1.1em;
|
||||
width: 212px;
|
||||
padding: 3px 5px;
|
||||
border: 1px solid #D4D4D4;
|
||||
}
|
||||
.content_box form input.button {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.content_box form input.submit {
|
||||
margin-left: 160px;
|
||||
margin-right: 20px;
|
||||
padding: 3px 1em;
|
||||
padding: 7px 1em;
|
||||
}
|
||||
|
||||
/* Errors */
|
||||
form .error {
|
||||
margin-left: 160px;
|
||||
color: red;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue