Merge branch 'master' into userlist
* master: remove duplicated Evropi :p allow casual hook elo range change own hook color fix lobby hook resync Revert "Revert "resync lobby hooks on schedule"" try to keep chrome hooks in sync Revert "resync lobby hooks on schedule" resync lobby hooks on schedule ro "Română" translation #3401. Author: Anonymous. id "Bahasa Indonesia" translation #3399. Author: Krystal_Jung. hihihi sr "српски јези" translation #3398. Author: Anonymous. ja "日本語" translation #3397. Author: atholic. 誤翻訳があるかもしれません。発見したら修正お願いします。 sa "संस्कृत" translation #3396. Author: Periannan Chandrasekaran. ta "தமி" translation #3395. Author: பெரியண்ணன் சந்திரசேகரன். th "ไท" translation #3393. Author: ชาว สยาม. hilight own hook fix draggable issue on game end
This commit is contained in:
commit
404b6b3cf0
|
@ -4,7 +4,7 @@
|
|||
|
||||
<div class="clock_config optional_config">
|
||||
<div class="clock_choice">
|
||||
<label class="required" for="clock">@trans.timeControl()</label>
|
||||
<label class="required pointer" for="clock">@trans.timeControl()</label>
|
||||
@setup.checkbox(form("clock"))
|
||||
</div>
|
||||
<div class="time_choice">
|
||||
|
|
|
@ -12,22 +12,24 @@
|
|||
<div class="mode_choice buttons">
|
||||
@setup.radios(form("mode"), translatedModeChoices)
|
||||
</div>
|
||||
<div class="elo_range_config optional_config">
|
||||
@trans.eloRange(): <span class="range">? - ?</span>
|
||||
<div class="elo_range">
|
||||
@setup.input(
|
||||
form("eloRange"),
|
||||
Symbol("type") -> "hidden",
|
||||
Symbol("data-min") -> EloRange.min,
|
||||
Symbol("data-max") -> EloRange.max)
|
||||
<div class="range_and_members optional_config">
|
||||
@if(ctx.isAuth) {
|
||||
<div class="members_only">
|
||||
<label class="required pointer" for="@form("membersOnly").name">@trans.membersOnly()</label>
|
||||
@setup.checkbox(form("membersOnly"))
|
||||
</div>
|
||||
}
|
||||
<div class="elo_range_config">
|
||||
@trans.eloRange(): <span class="range">? - ?</span>
|
||||
<div class="elo_range">
|
||||
@setup.input(
|
||||
form("eloRange"),
|
||||
Symbol("type") -> "hidden",
|
||||
Symbol("data-min") -> EloRange.min,
|
||||
Symbol("data-max") -> EloRange.max)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if(ctx.isAuth) {
|
||||
<div class="allow_anon_config optional_config">
|
||||
<label class="required" for="@form("allowAnon").name">@trans.anonymousCanJoin()</label>
|
||||
@setup.checkbox(form("allowAnon"))
|
||||
</div>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -239,7 +239,7 @@ createdBy=Created by
|
|||
waitingForNbPlayers=Waiting for %s players
|
||||
tournamentIsStarting=Tournament is starting
|
||||
nbMinutesPerSidePlusNbSecondsPerMove=%s minutes/side + %s seconds/move
|
||||
anonymousCanJoin=Anonymous can join
|
||||
membersOnly=Members only
|
||||
boardEditor=Board editor
|
||||
startPosition=Start position
|
||||
clearBoard=Clear board
|
||||
|
|
|
@ -45,6 +45,12 @@ shareThisUrlToLetSpectatorsSeeTheGame=Deel die link vir toeskouers
|
|||
youAreViewingThisGameAsASpectator=Jy is 'n toeskouer van hierdie spel
|
||||
replayAndAnalyse=Speel weer en ondersoek
|
||||
computerAnalysisInProgress=Analise de computador em progresso
|
||||
theComputerAnalysisYouRequestedIsNowAvailable=Die aangevraagde rekenaar analise is nou beskikbaar
|
||||
theComputerAnalysisHasFailed=Die rekenaar analise het misluk
|
||||
viewTheComputerAnalysis=Sien die rekenaar analise
|
||||
requestAComputerAnalysis=Versoek 'n rekenaar analise
|
||||
mistakes=Foute
|
||||
inaccuracies=Onakurate
|
||||
viewGameStats=Sien spel statistieke
|
||||
flipBoard=Draai bord
|
||||
threefoldRepetition=Herhaal drie keer
|
||||
|
@ -64,14 +70,18 @@ bookmarkedByNbPlayers=Deur %s spelers geboekmerk
|
|||
viewInFullSize=Sien vol-grootte
|
||||
logOut=Teken uit
|
||||
signIn=Teken in
|
||||
newToLichess=Nuut by Lichess?
|
||||
youNeedAnAccountToDoThat=Jy het 'n rekening nodig om dit te doen
|
||||
signUp=Registreer
|
||||
people=Mense
|
||||
games=Spelle
|
||||
forum=Forum
|
||||
xPostedInForumY=%S het 'n boodskak gepos in forum %s
|
||||
chessPlayers=Skaak spelers
|
||||
minutesPerSide=Minute per kant
|
||||
variant=Wissel
|
||||
timeControl=Teen tyd
|
||||
time=Tyd
|
||||
start=Begin
|
||||
username=Gebruiker
|
||||
password=Wagwoord
|
||||
|
@ -80,6 +90,7 @@ allYouNeedIsAUsernameAndAPassword=Dis vinnig, jy't net 'n gebruiker-naam en wagw
|
|||
learnMoreAboutLichess=Leer meer oor Lichess
|
||||
rank=Vlak
|
||||
gamesPlayed=Gespeel
|
||||
nbGamesWithYou=%s spelle vir jou
|
||||
declineInvitation=Nee dankie
|
||||
cancel=Moenie
|
||||
timeOut=Tyd verby
|
||||
|
@ -91,6 +102,7 @@ yourOpponentOffersADraw=Jou teenstander bied gelykop aan
|
|||
accept=Aanvaar
|
||||
decline=Verwerp
|
||||
playingRightNow=In spel
|
||||
finished=Klaar
|
||||
abortGame=Staak spel
|
||||
gameAborted=Spel gestaak
|
||||
standard=Standaard
|
||||
|
@ -112,6 +124,10 @@ chatRoom=Chat kamer
|
|||
spectatorRoom=Toeskouer kamer
|
||||
composeMessage=Tik boodskap
|
||||
sentMessages=Stuur boodskappe
|
||||
noNewMessages=Geen nuwe booskappe
|
||||
subject=Onderwerp
|
||||
recipient=Ontvanger
|
||||
send=Stuur
|
||||
incrementInSeconds=Tel in sekondes
|
||||
freeOnlineChess=Gratis Aanlyn Skaak
|
||||
spectators=Toeskouers
|
||||
|
@ -136,9 +152,12 @@ takebackPropositionCanceled=Terug-vat aanbod gekanselleer
|
|||
yourOpponentProposesATakeback=Jou teenstander stel 'n terug-vat voor
|
||||
bookmarkThisGame=Boekmerk die spel
|
||||
toggleBackground=Agetgrond kleur aan/af
|
||||
search=Soek
|
||||
advancedSearch=Gevorderde soek
|
||||
tournament=Toernooi
|
||||
tournaments=Toernooie
|
||||
tournamentPoints=Toernooi punte
|
||||
viewTournament=Sien tornooi
|
||||
freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Gratis aanlyn Skaak spel. Speel nou Skaak met 'n maklike skerm. Geen registrasie nodig, geen advertensies, niks om te installeer. Speel Skaak teen rekenaar, vriende of nuwe uitdagers.
|
||||
teams=Spanne
|
||||
nbMembers=%s lede
|
||||
|
@ -154,6 +173,8 @@ joiningPolicy=Voorwaardes vir aansluiting
|
|||
teamLeader=Spanleier
|
||||
teamBestPlayers=Beste spanlede
|
||||
teamRecentMembers=Onlangse spanlede
|
||||
xJoinedTeamY=%s het aangesluit by span %s
|
||||
xCreatedTeamY=%s het span %s geskep
|
||||
averageElo=Gemiddelde Elo
|
||||
location=Plek
|
||||
settings=Stellings
|
||||
|
@ -161,3 +182,57 @@ filterGames=Spel filter
|
|||
reset=Herstel
|
||||
apply=Pas toe
|
||||
leaderboard=Leierbord
|
||||
pasteTheFenStringHere=Plak die FEN string hier
|
||||
pasteThePgnStringHere=Plak die PGN string hier
|
||||
fromPosition=Van posisie
|
||||
continueFromHere=Gaan voort van hier af
|
||||
importGame=Trek spel in
|
||||
nbImportedGames=%s het spelle ingetrek
|
||||
thisIsAChessCaptcha=Dit is 'n skaak CAPTCHA
|
||||
clickOnTheBoardToMakeYourMove=Kliek op die bord om jou skuif te maak, en te bewys jy is 'n mens
|
||||
notACheckmate=Nie skaakmat nie
|
||||
colorPlaysCheckmateInOne=%s se skuif; mat in een
|
||||
retry=Probeer weer
|
||||
reconnecting=Konnekteer weer
|
||||
onlineFriends=Aanlyn vriende
|
||||
noFriendsOnline=Geen vriende aanlyn
|
||||
findFriends=Vind friende
|
||||
favoriteOpponents=Gunsteling oponente
|
||||
follow=Volg
|
||||
following=Volgend
|
||||
unfollow=Ontvolg
|
||||
block=Blokeer
|
||||
blocked=Geblok
|
||||
unblock=Ontblok
|
||||
followsYou=Volg jou
|
||||
xStartedFollowingY=%s het begin om %s te volg
|
||||
nbFollowers=%s volgeninge
|
||||
nbFollowing=volg %s
|
||||
profile=Profiel
|
||||
more=Meer
|
||||
memberSince=Lid vanaf
|
||||
lastLogin=Laaste in teken
|
||||
challengeToPlay=Daag uit vir 'n spel
|
||||
player=Speler
|
||||
list=Lys
|
||||
graph=Grafiek
|
||||
all=Alles
|
||||
lessThanNbMinutes=Minder as %s minute
|
||||
xToYMinutes=%s tot %s minute
|
||||
textIsTooShort=Teks is te min.
|
||||
textIsTooLong=Teks is te veel.
|
||||
required=Vereiste.
|
||||
addToChrome=Voeg by Chrome by
|
||||
openTournaments=Oop tornooie
|
||||
duration=Duur
|
||||
winner=Wenner
|
||||
standing=Stand
|
||||
createANewTournament=Skep 'n nuwe tornooi
|
||||
join=Sluit aan
|
||||
withdraw=Ontrek
|
||||
points=Punte
|
||||
wins=Oorwinnings
|
||||
losses=Verliese
|
||||
winStreak=Segetog
|
||||
createdBy=Geskep deur
|
||||
waitingForNbPlayers=Op wag vir %s spelers
|
||||
|
|
|
@ -240,3 +240,7 @@ waitingForNbPlayers=Menunggu %s pemain lagi
|
|||
tournamentIsStarting=Kejuaraan sudah dimulai
|
||||
nbMinutesPerSidePlusNbSecondsPerMove=%s menit/sisi + %s detik/langkah
|
||||
anonymousCanJoin=Anonymous dapat masuk
|
||||
boardEditor=papan edit
|
||||
startPosition=Posisi memulai
|
||||
clearBoard=Bersihkan papan
|
||||
savePosition=Simpan posisi
|
||||
|
|
|
@ -18,7 +18,7 @@ stalemate=ステイルメイト
|
|||
white=白
|
||||
black=黒
|
||||
createAGame=対局を作成する
|
||||
noGameAvailableRightNowCreateOne=現在参加できる対局はありません。対局を作成してください。
|
||||
noGameAvailableRightNowCreateOne=現在参加できる対局はありません 対局を作成してください
|
||||
whiteIsVictorious=白の勝ちです
|
||||
blackIsVictorious=黒の勝ちです
|
||||
playWithTheSameOpponentAgain=もう一度同じ相手と対局する
|
||||
|
@ -44,7 +44,14 @@ blackLeftTheGame=黒が対局からいなくなりました
|
|||
shareThisUrlToLetSpectatorsSeeTheGame=観覧者に対局を観せたいならこのURLをシェアしてください
|
||||
youAreViewingThisGameAsASpectator=この対局を観覧者として観ています
|
||||
replayAndAnalyse=棋譜再生と解析
|
||||
viewTheComputerAnalysis=コンピューターの分析を見る
|
||||
computerAnalysisInProgress=コンピューターの解析が進行中です
|
||||
theComputerAnalysisYouRequestedIsNowAvailable=あなたがリクエストしたコンピューター解析が利用可能になりました
|
||||
theComputerAnalysisHasFailed=コンピューター解析に失敗しました
|
||||
viewTheComputerAnalysis=コンピューターの解析を見る
|
||||
requestAComputerAnalysis=コンピューター解析をリクエスト
|
||||
blunders=大悪手
|
||||
mistakes=悪手
|
||||
inaccuracies=疑問手
|
||||
viewGameStats=対局の統計を見る
|
||||
flipBoard=盤を反転させる
|
||||
threefoldRepetition=スリーフォールド・レピティション
|
||||
|
@ -58,18 +65,21 @@ gamesBeingPlayedRightNow=現在対局中
|
|||
viewAllNbGames=全ての%s対局を見る
|
||||
viewNbCheckmates=全ての%sチェックメイトを見る
|
||||
nbBookmarks=%s ブックマーク
|
||||
nbPopularGames=%s ポピュラーな対局の割合
|
||||
nbAnalysedGames=%s 解析済み対局の割合
|
||||
nbPopularGames=%s ポピュラーな対局
|
||||
nbAnalysedGames=%s 解析済み対局
|
||||
bookmarkedByNbPlayers=%s プレイヤーにブックマークされています
|
||||
viewInFullSize=フルサイズで見る
|
||||
logOut=ログアウト
|
||||
signIn=ログイン
|
||||
newToLichess=lichessは初めてですか?
|
||||
youNeedAnAccountToDoThat=アカウントが必要です
|
||||
signUp=登録
|
||||
people=プレイヤー
|
||||
games=対局
|
||||
forum=掲示板
|
||||
games=ゲーム
|
||||
forum=フォーラム
|
||||
xPostedInForumY=%s 掲示板への投稿 %s
|
||||
chessPlayers=チェスプレイヤー
|
||||
minutesPerSide=各側の持ち時間
|
||||
minutesPerSide=持ち時間
|
||||
variant=バリアント
|
||||
timeControl=時間調整
|
||||
time=時間
|
||||
|
@ -81,6 +91,7 @@ allYouNeedIsAUsernameAndAPassword=必要なのはユーザー名とパスワー
|
|||
learnMoreAboutLichess=lichessについて
|
||||
rank=ランク
|
||||
gamesPlayed=過去の対局
|
||||
nbGamesWithYou=%s ゲームあなたと対局
|
||||
declineInvitation=招待を断る
|
||||
cancel=キャンセル
|
||||
timeOut=時間切れ
|
||||
|
@ -92,6 +103,7 @@ yourOpponentOffersADraw=相手が引き分けを申し込みました
|
|||
accept=合意
|
||||
decline=断る
|
||||
playingRightNow=対局中
|
||||
finished=終了しました
|
||||
abortGame=対局を中止する
|
||||
gameAborted=対局を中止しました
|
||||
standard=スタンダード
|
||||
|
@ -107,15 +119,17 @@ rematchOfferCanceled=再対局キャンセル
|
|||
rematchOfferDeclined=再対局拒否
|
||||
cancelRematchOffer=再対局の申し込みをキャンセルする
|
||||
viewRematch=再対局を鑑賞
|
||||
play=対局
|
||||
play=プレイ
|
||||
inbox=受信箱
|
||||
chatRoom=チャットルーム
|
||||
spectatorRoom=観戦席
|
||||
composeMessage=メッセージを作成する
|
||||
sentMessages=送信済みのメッセージ
|
||||
noNewMessages=メッセージはありません
|
||||
subject=件名
|
||||
recipient=受信者
|
||||
send=送信する
|
||||
incrementInSeconds=秒で増加する
|
||||
incrementInSeconds=1手毎に増える秒数
|
||||
freeOnlineChess=無料オンラインチェス
|
||||
spectators=観覧者数:
|
||||
nbWins=%sの勝ち
|
||||
|
@ -123,28 +137,29 @@ nbLosses=%sの負け
|
|||
nbDraws=%sの引き分け
|
||||
exportGames=対局をエクスポートする
|
||||
color=色
|
||||
eloRange=イロレーティング範囲
|
||||
eloRange=Eloレーティングの範囲
|
||||
giveNbSeconds=%s秒を与える
|
||||
whoIsOnline=オンライン中のプレイヤー
|
||||
allPlayers=全プレイヤー
|
||||
premoveEnabledClickAnywhereToCancel=次の指しを予約しました-キャンセルするならどこかをクリックしてください
|
||||
thisPlayerUsesChessComputerAssistance=このプレイヤーはチェス・ソフトを使用しています
|
||||
premoveEnabledClickAnywhereToCancel=次の手を予約しました-キャンセルするならどこかをクリックしてください
|
||||
thisPlayerUsesChessComputerAssistance=このプレイヤーはチェスソフトを使用しています
|
||||
opening=序盤
|
||||
takeback=待った
|
||||
proposeATakeback=待ったのお願い
|
||||
takebackPropositionSent=待ったをお願いを送りました
|
||||
proposeATakeback=待ったの申請
|
||||
takebackPropositionSent=待ったの申請を送りました
|
||||
takebackPropositionDeclined=待ったを拒否
|
||||
takebackPropositionAccepted=待ったを受け入れる
|
||||
takebackPropositionCanceled=待った申請をキャンセル
|
||||
takebackPropositionCanceled=待ったの申請をキャンセル
|
||||
yourOpponentProposesATakeback=対戦相手は待ったを提案しています
|
||||
bookmarkThisGame=この対局をブックマークする
|
||||
toggleBackground=背景色を切り替える
|
||||
search=探す
|
||||
advancedSearch=アドバンスサーチ
|
||||
tournament=トーナメント
|
||||
tournaments=トーナメント
|
||||
tournamentPoints=トーナメントポイント
|
||||
viewTournament=トーナメント閲覧
|
||||
freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=無料オンラインチェスゲーム。今すぐ綺麗なインターフェースでチェスをすることが出来ます。登録、プラグイン不要。広告なし。AI、友達、あるいはランダムな相手とチェスの対局することが出来ます。
|
||||
viewTournament=トーナメントを見る
|
||||
freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=無料オンラインチェスゲーム。今すぐ綺麗なインターフェースでチェスをすることが出来ます。登録、プラグイン不要。広告無し。AI、友達、あるいはランダムな相手とチェスの対局をすることが出来ます。
|
||||
teams=チーム
|
||||
nbMembers=%s メンバー
|
||||
allTeams=すべてのチーム
|
||||
|
@ -159,21 +174,25 @@ joiningPolicy=参加ポリシー
|
|||
teamLeader=チームリーダー
|
||||
teamBestPlayers=チームベストプレイヤー
|
||||
teamRecentMembers=最新チームメンバー
|
||||
averageElo=平均レーティング
|
||||
xJoinedTeamY=%s チームに参加しました %s
|
||||
xCreatedTeamY=%s チームを作成しました %s
|
||||
averageElo=平均Eloレーティング
|
||||
location=住所
|
||||
settings=設定
|
||||
filterGames=条件で絞り込む
|
||||
reset=リセット
|
||||
apply=適用
|
||||
leaderboard=スコアボード
|
||||
pasteTheFenStringHere=FEN形式棋譜をペースト
|
||||
pasteThePgnStringHere=ここにPGNをペースト
|
||||
pasteTheFenStringHere=ここにFEN形式の棋譜をペースト
|
||||
pasteThePgnStringHere=ここにPGN形式の棋譜をペースト
|
||||
fromPosition=特定の局面から
|
||||
continueFromHere=中断した所から再開
|
||||
importGame=ゲームをインポート
|
||||
nbImportedGames=%s(インポートしたゲームの割合)
|
||||
nbImportedGames=%s インポートしたゲーム
|
||||
thisIsAChessCaptcha=これはチェスのキャプチャです。
|
||||
clickOnTheBoardToMakeYourMove=駒を動かしてあなたが人間である事を証明して下さい。
|
||||
notACheckmate=チェックメイトではありません
|
||||
colorPlaysCheckmateInOne=%s の番; 1手でチェックメイト
|
||||
retry=もう一度
|
||||
reconnecting=再接続
|
||||
onlineFriends=オンラインにいる友達
|
||||
|
@ -187,7 +206,41 @@ block=ブロックする
|
|||
blocked=ブロックされています
|
||||
unblock=ブロックを外す
|
||||
followsYou=あなたをフォローしています
|
||||
xStartedFollowingY=%s フォローを開始 %s
|
||||
nbFollowers=%s フォロワー
|
||||
nbFollowing=%s フォロー
|
||||
profile=プロフィール
|
||||
more=その他
|
||||
memberSince=登録日
|
||||
lastLogin=最後のログイン
|
||||
challengeToPlay=対戦を申し込む
|
||||
player=プレイヤー
|
||||
list=リスト
|
||||
graph=グラフ
|
||||
all=全て
|
||||
lessThanNbMinutes=%s 分未満
|
||||
xToYMinutes=%s から %s 分
|
||||
textIsTooShort=テキストが短すぎます。
|
||||
textIsTooLong=テキストが長すぎます。
|
||||
required=要求されました。
|
||||
addToChrome=クロームに追加
|
||||
openTournaments=オープントーナメント
|
||||
duration=期限
|
||||
winner=勝者
|
||||
standing=順位
|
||||
createANewTournament=新しいトーナメントを作る
|
||||
join=参加
|
||||
withdraw=辞退
|
||||
points=ポイント
|
||||
wins=勝
|
||||
losses=敗
|
||||
winStreak=連勝数
|
||||
createdBy=トーナメント作成者
|
||||
waitingForNbPlayers=%s プレイヤー待機中
|
||||
tournamentIsStarting=トーナメント開始
|
||||
nbMinutesPerSidePlusNbSecondsPerMove=%s 分/サイド + %s 秒/移動
|
||||
anonymousCanJoin=未登録ユーザーの参加を許可する
|
||||
boardEditor=盤面編集
|
||||
startPosition=盤面編集
|
||||
clearBoard=盤面をクリア
|
||||
savePosition=盤面を保存
|
||||
|
|
|
@ -239,3 +239,8 @@ createdBy=Creat de
|
|||
waitingForNbPlayers=Așteptând încă %s jucători
|
||||
tournamentIsStarting=Campionatul începe
|
||||
nbMinutesPerSidePlusNbSecondsPerMove=%s minute + %s secunde/mutare
|
||||
anonymousCanJoin=anonimii se pot alatura
|
||||
boardEditor=editorul de tabla
|
||||
startPosition=pozitia de start
|
||||
clearBoard=curata tabla
|
||||
savePosition=salveaza pozitia
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
playWithAFriend=मित्रेण क्रीड
|
||||
inviteAFriendToPlayWithYou=क्रीडार्थम् मित्रम् उपह्व्यस्व
|
||||
playWithTheMachine=यन्त्रेण सह क्रीड
|
||||
playWithAFriend=मित्रेण सह क्रीडतु
|
||||
inviteAFriendToPlayWithYou=क्रीडार्थम् मित्रम् उपाह्वयताम्
|
||||
playWithTheMachine=यन्त्रेण सह क्रीडतु
|
||||
challengeTheArtificialIntelligence=कृत्रिमाम् चेतनाम् समुपाह्वय
|
||||
toInviteSomeoneToPlayGiveThisUrl=यं कंचित् क्रीडर्थम् उपाह्वयितुम् एतम् निर्देशम् प्रेषयतु
|
||||
toInviteSomeoneToPlayGiveThisUrl=यं कंचित् क्रीडार्थम् उपाह्वयितुम् एनम् निर्देशम् प्रेषयतु
|
||||
gameOver=द्यूतम् समाप्तम्
|
||||
waitingForOpponent=प्रतियोधम् अपेक्ष्यते
|
||||
waiting=अपेक्ष्यते
|
||||
yourTurn=भवतो वारः
|
||||
|
|
|
@ -239,3 +239,8 @@ createdBy=Направљено од
|
|||
waitingForNbPlayers=Чекајући %s играча
|
||||
tournamentIsStarting=Турнир почиње
|
||||
nbMinutesPerSidePlusNbSecondsPerMove=%s минута сваки + % секунди по потезу
|
||||
anonymousCanJoin=Анониман се може прикључити
|
||||
boardEditor=Уредник табле
|
||||
startPosition=Почетна позиција
|
||||
clearBoard=Склони фигуре
|
||||
savePosition=Сачувај позицију
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
playWithAFriend=ஒரு தோழரோடு விளையாடு
|
||||
inviteAFriendToPlayWithYou=ஒரு தோழரைத் தங்களோடு விளையாட அழை
|
||||
inviteAFriendToPlayWithYou=ஒரு தோழரை நும்மோடு விளையாட அழைக்க
|
||||
playWithTheMachine=கணினியோடு விளையாடு
|
||||
challengeTheArtificialIntelligence=செயற்கையறிவோடு பந்தயம் வை
|
||||
toInviteSomeoneToPlayGiveThisUrl=விளையாட்டுக்கு அழைக்க இந்தச்சுட்டியை அனுப்பு
|
||||
gameOver=ஆட்டம் முடிந்தது
|
||||
waitingForOpponent=எதிராளிக்காகக் காத்திருக்கிறது
|
||||
waiting=காத்திருக்கிறது
|
||||
waitingForOpponent=எதிராளிக்காகக் காத்திருக்கின்றது
|
||||
waiting=காத்திருக்கின்றது
|
||||
yourTurn=தங்கள் முறை
|
||||
aiNameLevelAiLevel=%s நிலைமட்டம் %s
|
||||
level=நிலைமட்டம்
|
||||
|
@ -24,10 +24,10 @@ blackIsVictorious=கருப்பு வென்றது
|
|||
playWithTheSameOpponentAgain=அதே எதிராளியோடு மீண்டும் விளையாடு
|
||||
newOpponent=புது எதிராளி
|
||||
playWithAnotherOpponent=வேறோர் எதிராளியோடு விளையாடு
|
||||
yourOpponentWantsToPlayANewGameWithYou=தங்கள் எதிராளி தங்களோடு புது ஆட்டமாட விரும்புகிறார்
|
||||
yourOpponentWantsToPlayANewGameWithYou=நும் எதிராளி நும்மோடு புது ஆட்டமாட விரும்புகிறார்
|
||||
joinTheGame=ஆட்டத்திலே சேர்
|
||||
whitePlays=வெள்ளை விளையாடுகிறது
|
||||
blackPlays=கருப்பு விளையாடுகிறது
|
||||
whitePlays=வெள்ளை விளையாடுகின்றது
|
||||
blackPlays=கருப்பு விளையாடுகின்றது
|
||||
theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=எதிராளி ஆட்டத்தை விட்டுவிட்டார். அவரை விலக வற்புறுத்தலாம் அல்லது காத்திருக்கலாம்
|
||||
makeYourOpponentResign=எதிராளியை விலகவை
|
||||
forceResignation=வலுக்கட்டாயமாக விலகவை
|
||||
|
@ -42,7 +42,7 @@ blackResigned=கருப்பு விலகிற்று
|
|||
whiteLeftTheGame=வெள்ளை ஆட்டத்தை விட்டது
|
||||
blackLeftTheGame=கருப்பு ஆட்டத்தை விட்டது
|
||||
shareThisUrlToLetSpectatorsSeeTheGame=பார்வையாளர்கள் ஆட்டத்தைப் பார்க்க இந்தச் சுட்டியைத் தெரிவி
|
||||
youAreViewingThisGameAsASpectator=நீர் பார்வையாளராக இந்த் ஆட்டத்தைப் பார்க்கின்றீர்
|
||||
youAreViewingThisGameAsASpectator=நீர் பார்வையாளராக இந்த ஆட்டத்தைப் பார்க்கின்றீர்
|
||||
replayAndAnalyse=மீள்விளையாடிப் பகுத்தாய்க
|
||||
computerAnalysisInProgress=கணினிப் பகுப்பாய்வு நிகழ்கின்றது
|
||||
theComputerAnalysisYouRequestedIsNowAvailable=நீர் கோரின கணினிப் பகுப்பாய்வு இப்பொழுது கிட்டும்
|
||||
|
@ -65,13 +65,13 @@ gamesBeingPlayedRightNow=இப்பொழுதைய ஆட்டங்கள
|
|||
viewAllNbGames=%s ஆட்டங்கள்
|
||||
viewNbCheckmates=%s முழுத்தடைகள்
|
||||
nbBookmarks=%s நினைவுக்குறிகள்
|
||||
nbPopularGames=%s பரவலான விளையாட்டுகள்
|
||||
nbPopularGames=%s பிரபலமான விளையாட்டுகள்
|
||||
nbAnalysedGames=%s பகுத்தாய்ந்த ஆட்டங்கள்
|
||||
bookmarkedByNbPlayers=%s விளையாடிகளால் நினைவுக்குறியானது
|
||||
bookmarkedByNbPlayers=%s விளையாடிகள் இதனை நினைவுக்குறியாக்கினர்
|
||||
viewInFullSize=முழு அளவில் காண்க
|
||||
logOut=வெளியேறு
|
||||
signIn=உள்நுழை
|
||||
newToLichess=நீர் இலைச்செசுக்குப் புதியவரா?
|
||||
newToLichess=நீர் இலைச்செசுக்குப் (Lichess) புதியவரா?
|
||||
youNeedAnAccountToDoThat=அதைச் செய்யக் கணக்கொன்று தேவை
|
||||
signUp=பதிக
|
||||
people=மக்கள்
|
||||
|
@ -80,7 +80,7 @@ forum=மன்றம்
|
|||
xPostedInForumY=%s இடுகைகள் %s என்ற மன்றத்தில்
|
||||
chessPlayers=சதுரங்க விளையாடிகள்
|
||||
minutesPerSide=ஒவ்வொரு கட்சிக்குமான நிமிடங்கள்
|
||||
variant=வகை
|
||||
variant=ஆட்ட வகை
|
||||
timeControl=நேர வரம்பு
|
||||
time=நேரம்
|
||||
start=தொடங்கு
|
||||
|
@ -95,11 +95,11 @@ nbGamesWithYou=%s ஆட்டங்கள் நும்மோடு
|
|||
declineInvitation=அழைப்பை மறு
|
||||
cancel=கழி
|
||||
timeOut=நேரந் தீர்வு
|
||||
drawOfferSent=இழுபறியளிப்புத் தெரிவிப்பு
|
||||
drawOfferDeclined=இழுபறியளிப்பு மறுப்பு
|
||||
drawOfferAccepted=இழுபறியளிப்பு எற்பு
|
||||
drawOfferCanceled=இழுபறி அளிப்பு கழிப்பு
|
||||
yourOpponentOffersADraw=நும் எதிராளி இழுபறி அளிக்கிறார்
|
||||
drawOfferSent=இழுபறி முன்வரவு தெரிவிப்பு
|
||||
drawOfferDeclined=இழுபறி முன்வரவு மறுப்பு
|
||||
drawOfferAccepted=இழுபறி முன்வரவு எற்பு
|
||||
drawOfferCanceled=இழுபறி முன்வரவு கழிப்பு
|
||||
yourOpponentOffersADraw=நும் எதிராளி இழுபறிக்கு முன்வருகின்றார்
|
||||
accept=ஏல்
|
||||
decline=மறு
|
||||
playingRightNow=இப்பொழுது ஆடுகின்றது
|
||||
|
@ -108,7 +108,7 @@ abortGame=ஆட்டத்தைக் கலை
|
|||
gameAborted=ஆட்டம் கலைந்தது
|
||||
standard=மரபு
|
||||
unlimited=வரம்பில்லை
|
||||
mode=போக்கு
|
||||
mode=மதிப்பீட்டுநிலை
|
||||
casual=மதிப்பீடின்றி
|
||||
rated=மதிப்பீட்டோடு
|
||||
thisGameIsRated=இந்த ஆட்டம் மதிப்பிடுகின்றது
|
||||
|
@ -121,7 +121,7 @@ cancelRematchOffer=மறுவாட்ட அளிப்பைக் கழ
|
|||
viewRematch=மறுவாட்டங்களைக் காண்
|
||||
play=ஆடு
|
||||
inbox=உள்வரத்து
|
||||
chatRoom=உரையாட்டறை
|
||||
chatRoom=உரையாடலறை
|
||||
spectatorRoom=பார்வையாளர் அறை
|
||||
composeMessage=செய்தி இயற்று
|
||||
sentMessages=அனுப்பின செய்திகள்
|
||||
|
@ -135,10 +135,10 @@ spectators=பார்வையாளர்கள்
|
|||
nbWins=%s வெற்றிகள்
|
||||
nbLosses=%s தோல்விகள்
|
||||
nbDraws=%s இழுபறிகள்
|
||||
exportGames=ஆட்டங்களை வெளியமைப்புக்கு மாற்று
|
||||
exportGames=ஆட்டங்களை வெளியேற்று
|
||||
color=நிறம்
|
||||
eloRange=Elo அளவு
|
||||
giveNbSeconds=%s நொடிகளாகத் தெரிவி
|
||||
eloRange=ஏலோ (Elo) அளவு
|
||||
giveNbSeconds=%s நொடிகள் அளி
|
||||
whoIsOnline=இணையத்திலே உள்ளவர்கள்
|
||||
allPlayers=எல்லா விளையாடிகளும்
|
||||
premoveEnabledClickAnywhereToCancel=முன்னகர்வு இயலும் - கழிக்க எங்கேயும் சொடுக்குக
|
||||
|
@ -200,15 +200,15 @@ noFriendsOnline=இணையத் தோழர் யாருமிலர்
|
|||
findFriends=தோழர்களைத் தேடு
|
||||
favoriteOpponents=பிடித்தமான எதிராளிகள்
|
||||
follow=பின்தொடர்
|
||||
following=பின்தொடருநர்
|
||||
following=பின்தொடர்கின்றார்
|
||||
unfollow=பின்தொடராதே
|
||||
block=தடு
|
||||
blocked=தடுபட்டது
|
||||
unblock=தடைநீக்கி
|
||||
unblock=தடைநீக்கு
|
||||
followsYou=நும்மைப் பின்தொடர்கின்றார்
|
||||
xStartedFollowingY=%s என்பவர் %s-ஐப் பின்தொடர்கின்றார்
|
||||
xStartedFollowingY=%s என்பவர் %s-ஐப் பின்தொடரத் தொடங்கினார்
|
||||
nbFollowers=%s பின்தொடர்நர்கள்
|
||||
nbFollowing=%s பின் தொடர்கின்றார்
|
||||
nbFollowing=%s -ஐப் பின்தொடர்கின்றார்
|
||||
profile=குறிப்புகள்
|
||||
more=மேலும்
|
||||
memberSince=உறுப்பினரான காலம்
|
||||
|
@ -232,7 +232,7 @@ createANewTournament=புதுப்போட்டி ஒன்றைப்
|
|||
join=சேர்
|
||||
withdraw=விலகு
|
||||
points=புள்ளிகள்
|
||||
wins=வெல்கிறார்
|
||||
wins=வெல்கின்றார்
|
||||
losses=தோல்விகள்
|
||||
winStreak=வெற்றித் தொடர்கள்
|
||||
createdBy=படைத்தவர்
|
||||
|
|
|
@ -240,3 +240,7 @@ waitingForNbPlayers=กำลังรอ %s ผู้เล่น
|
|||
tournamentIsStarting=ทัวร์นาเมนต์กำลังเริ่มต้น
|
||||
nbMinutesPerSidePlusNbSecondsPerMove=%s นาที/ข้าง + %s วินาที/การเดิน
|
||||
anonymousCanJoin=ผู้เล่นนิรนามสามารถเข้าร่วมได้
|
||||
boardEditor=ตัวแก้ไขกระดาน
|
||||
startPosition=ตำแหน่งเริ่มต้น
|
||||
clearBoard=ล้างกระดาน
|
||||
savePosition=บันทึกตำแหน่ง
|
||||
|
|
|
@ -30,7 +30,7 @@ private[i18n] object Contributors {
|
|||
"nn" -> List("Peropaal"),
|
||||
"eo" -> List("LaPingvino"),
|
||||
"tp" -> List("jan Mimoku"),
|
||||
"el" -> List("Yannis Anthymidis", "Tzortzakos Fivos", "Γιάννης Ανθυμίδης"),
|
||||
"el" -> List("Tzortzakos Fivos", "Γιάννης Ανθυμίδης"),
|
||||
"fp" -> List("Alex"),
|
||||
"lt" -> List("Anonymous"),
|
||||
"nb" -> List("sundaune"),
|
||||
|
|
|
@ -263,11 +263,11 @@ final class I18nKeys(translator: Translator) {
|
|||
val waitingForNbPlayers = new Key("waitingForNbPlayers")
|
||||
val tournamentIsStarting = new Key("tournamentIsStarting")
|
||||
val nbMinutesPerSidePlusNbSecondsPerMove = new Key("nbMinutesPerSidePlusNbSecondsPerMove")
|
||||
val anonymousCanJoin = new Key("anonymousCanJoin")
|
||||
val membersOnly = new Key("membersOnly")
|
||||
val boardEditor = new Key("boardEditor")
|
||||
val startPosition = new Key("startPosition")
|
||||
val clearBoard = new Key("clearBoard")
|
||||
val savePosition = new Key("savePosition")
|
||||
|
||||
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, youNeedAnAccountToDoThat, signUp, people, games, forum, xPostedInForumY, chessPlayers, minutesPerSide, variant, timeControl, time, start, username, password, haveAnAccount, allYouNeedIsAUsernameAndAPassword, learnMoreAboutLichess, rank, gamesPlayed, nbGamesWithYou, declineInvitation, cancel, timeOut, drawOfferSent, drawOfferDeclined, drawOfferAccepted, drawOfferCanceled, yourOpponentOffersADraw, accept, decline, playingRightNow, finished, abortGame, gameAborted, standard, unlimited, mode, casual, rated, thisGameIsRated, rematch, rematchOfferSent, rematchOfferAccepted, rematchOfferCanceled, rematchOfferDeclined, cancelRematchOffer, viewRematch, play, inbox, chatRoom, spectatorRoom, composeMessage, sentMessages, noNewMessages, subject, recipient, send, incrementInSeconds, freeOnlineChess, spectators, nbWins, nbLosses, nbDraws, exportGames, color, eloRange, giveNbSeconds, whoIsOnline, allPlayers, premoveEnabledClickAnywhereToCancel, thisPlayerUsesChessComputerAssistance, opening, takeback, proposeATakeback, takebackPropositionSent, takebackPropositionDeclined, takebackPropositionAccepted, takebackPropositionCanceled, yourOpponentProposesATakeback, bookmarkThisGame, toggleBackground, search, advancedSearch, tournament, tournaments, tournamentPoints, viewTournament, freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents, teams, nbMembers, allTeams, newTeam, myTeams, noTeamFound, joinTeam, quitTeam, anyoneCanJoin, aConfirmationIsRequiredToJoin, joiningPolicy, teamLeader, teamBestPlayers, teamRecentMembers, xJoinedTeamY, xCreatedTeamY, averageElo, location, settings, filterGames, reset, apply, leaderboard, pasteTheFenStringHere, pasteThePgnStringHere, fromPosition, continueFromHere, importGame, nbImportedGames, thisIsAChessCaptcha, clickOnTheBoardToMakeYourMove, notACheckmate, colorPlaysCheckmateInOne, retry, reconnecting, onlineFriends, noFriendsOnline, findFriends, favoriteOpponents, follow, following, unfollow, block, blocked, unblock, followsYou, xStartedFollowingY, nbFollowers, nbFollowing, profile, more, memberSince, lastLogin, challengeToPlay, player, list, graph, all, lessThanNbMinutes, xToYMinutes, textIsTooShort, textIsTooLong, required, addToChrome, openTournaments, duration, winner, standing, createANewTournament, join, withdraw, points, wins, losses, winStreak, createdBy, waitingForNbPlayers, tournamentIsStarting, nbMinutesPerSidePlusNbSecondsPerMove, anonymousCanJoin, boardEditor, startPosition, clearBoard, savePosition)
|
||||
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, youNeedAnAccountToDoThat, signUp, people, games, forum, xPostedInForumY, chessPlayers, minutesPerSide, variant, timeControl, time, start, username, password, haveAnAccount, allYouNeedIsAUsernameAndAPassword, learnMoreAboutLichess, rank, gamesPlayed, nbGamesWithYou, declineInvitation, cancel, timeOut, drawOfferSent, drawOfferDeclined, drawOfferAccepted, drawOfferCanceled, yourOpponentOffersADraw, accept, decline, playingRightNow, finished, abortGame, gameAborted, standard, unlimited, mode, casual, rated, thisGameIsRated, rematch, rematchOfferSent, rematchOfferAccepted, rematchOfferCanceled, rematchOfferDeclined, cancelRematchOffer, viewRematch, play, inbox, chatRoom, spectatorRoom, composeMessage, sentMessages, noNewMessages, subject, recipient, send, incrementInSeconds, freeOnlineChess, spectators, nbWins, nbLosses, nbDraws, exportGames, color, eloRange, giveNbSeconds, whoIsOnline, allPlayers, premoveEnabledClickAnywhereToCancel, thisPlayerUsesChessComputerAssistance, opening, takeback, proposeATakeback, takebackPropositionSent, takebackPropositionDeclined, takebackPropositionAccepted, takebackPropositionCanceled, yourOpponentProposesATakeback, bookmarkThisGame, toggleBackground, search, advancedSearch, tournament, tournaments, tournamentPoints, viewTournament, freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents, teams, nbMembers, allTeams, newTeam, myTeams, noTeamFound, joinTeam, quitTeam, anyoneCanJoin, aConfirmationIsRequiredToJoin, joiningPolicy, teamLeader, teamBestPlayers, teamRecentMembers, xJoinedTeamY, xCreatedTeamY, averageElo, location, settings, filterGames, reset, apply, leaderboard, pasteTheFenStringHere, pasteThePgnStringHere, fromPosition, continueFromHere, importGame, nbImportedGames, thisIsAChessCaptcha, clickOnTheBoardToMakeYourMove, notACheckmate, colorPlaysCheckmateInOne, retry, reconnecting, onlineFriends, noFriendsOnline, findFriends, favoriteOpponents, follow, following, unfollow, block, blocked, unblock, followsYou, xStartedFollowingY, nbFollowers, nbFollowing, profile, more, memberSince, lastLogin, challengeToPlay, player, list, graph, all, lessThanNbMinutes, xToYMinutes, textIsTooShort, textIsTooLong, required, addToChrome, openTournaments, duration, winner, standing, createANewTournament, join, withdraw, points, wins, losses, winStreak, createdBy, waitingForNbPlayers, tournamentIsStarting, nbMinutesPerSidePlusNbSecondsPerMove, membersOnly, boardEditor, startPosition, clearBoard, savePosition)
|
||||
}
|
||||
|
|
|
@ -46,6 +46,8 @@ private[i18n] case class JsDump(
|
|||
keys.addToChrome,
|
||||
keys.createANewTournament,
|
||||
keys.join,
|
||||
keys.joinTheGame,
|
||||
keys.cancel,
|
||||
keys.withdraw,
|
||||
keys.tournamentIsStarting)
|
||||
|
||||
|
|
|
@ -51,6 +51,9 @@ final class Env(
|
|||
scheduler.message(1 seconds) {
|
||||
lobby -> lila.socket.actorApi.Broom
|
||||
}
|
||||
scheduler.message(10 seconds) {
|
||||
lobby -> actorApi.Resync
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,10 +2,9 @@ package lila.lobby
|
|||
|
||||
import scala.concurrent.duration._
|
||||
|
||||
import actorApi._
|
||||
import akka.actor._
|
||||
import akka.pattern.{ ask, pipe }
|
||||
|
||||
import actorApi._
|
||||
import lila.db.api._
|
||||
import lila.hub.actorApi.GetUids
|
||||
import lila.memo.ExpireSetMemo
|
||||
|
@ -18,7 +17,7 @@ private[lobby] final class Lobby(
|
|||
|
||||
def receive = {
|
||||
|
||||
case GetOpen ⇒ sender ! HookRepo.allOpen
|
||||
case GetOpen ⇒ sender ! HookRepo.allOpen
|
||||
|
||||
case msg @ AddHook(hook) ⇒ {
|
||||
HookRepo byUid hook.uid foreach remove
|
||||
|
@ -47,6 +46,8 @@ private[lobby] final class Lobby(
|
|||
HookRepo.cleanupOld foreach remove
|
||||
}
|
||||
}
|
||||
|
||||
case Resync ⇒ socket ! HookIds(HookRepo.list map (_.id))
|
||||
}
|
||||
|
||||
private def remove(hook: Hook) = {
|
||||
|
|
|
@ -2,13 +2,9 @@ package lila.lobby
|
|||
|
||||
import scala.concurrent.duration._
|
||||
|
||||
import actorApi._
|
||||
import akka.actor._
|
||||
import akka.pattern.ask
|
||||
import play.api.libs.iteratee._
|
||||
import play.api.libs.json._
|
||||
import play.api.templates.Html
|
||||
|
||||
import actorApi._
|
||||
import lila.game.actorApi._
|
||||
import lila.hub.actorApi.lobby._
|
||||
import lila.hub.actorApi.router.{ Homepage, Player }
|
||||
|
@ -16,6 +12,9 @@ import lila.hub.actorApi.timeline._
|
|||
import lila.socket.actorApi.{ Connected ⇒ _, _ }
|
||||
import lila.socket.{ SocketActor, History, Historical }
|
||||
import makeTimeout.short
|
||||
import play.api.libs.iteratee._
|
||||
import play.api.libs.json._
|
||||
import play.api.templates.Html
|
||||
|
||||
private[lobby] final class Socket(
|
||||
val history: History,
|
||||
|
@ -58,9 +57,11 @@ private[lobby] final class Socket(
|
|||
}
|
||||
|
||||
case ChangeFeatured(html) ⇒ notifyFeatured(html)
|
||||
|
||||
case HookIds(ids) ⇒ notifyVersion("hook_list", ids)
|
||||
}
|
||||
|
||||
private def playerUrl(fullId: String) =
|
||||
private def playerUrl(fullId: String) =
|
||||
router ? Player(fullId) mapTo manifest[String]
|
||||
|
||||
private def notifyFeatured(html: Html) {
|
||||
|
|
|
@ -26,5 +26,7 @@ case class CancelHook(uid: String)
|
|||
case class BiteHook(hookId: String, uid: String, userId: Option[String])
|
||||
case class JoinHook(uid: String, hook: Hook, game: Game)
|
||||
case class Join(uid: String, user: Option[User])
|
||||
case object Resync
|
||||
case class HookIds(ids: List[String])
|
||||
|
||||
case object GetOpen
|
||||
|
|
|
@ -80,7 +80,7 @@ private[setup] final class FormFactory {
|
|||
"time" -> time,
|
||||
"increment" -> increment,
|
||||
"mode" -> mode(ctx.isAuth),
|
||||
"allowAnon" -> boolean,
|
||||
"membersOnly" -> boolean,
|
||||
"eloRange" -> eloRange,
|
||||
"color" -> nonEmptyText.verifying(Color.names contains _)
|
||||
)(HookConfig.<<)(_.>>)
|
||||
|
|
|
@ -16,7 +16,8 @@ case class HookConfig(
|
|||
color: Color,
|
||||
eloRange: EloRange) extends HumanConfig {
|
||||
|
||||
def >> = (variant.id, clock, time, increment, mode.id.some, allowAnon, eloRange.toString.some, color.name).some
|
||||
// allowAnons -> membersOnly
|
||||
def >> = (variant.id, clock, time, increment, mode.id.some, !allowAnon, eloRange.toString.some, color.name).some
|
||||
|
||||
def hook(uid: String, user: Option[User], sid: Option[String]) = Hook.make(
|
||||
uid = uid,
|
||||
|
@ -43,16 +44,17 @@ case class HookConfig(
|
|||
|
||||
object HookConfig extends BaseHumanConfig {
|
||||
|
||||
def <<(v: Int, k: Boolean, t: Int, i: Int, m: Option[Int], a: Boolean, e: Option[String], c: String) = {
|
||||
def <<(v: Int, k: Boolean, t: Int, i: Int, m: Option[Int], membersOnly: Boolean, e: Option[String], c: String) = {
|
||||
val realMode = m.fold(Mode.default)(Mode.orDefault)
|
||||
val useEloRange = realMode.rated || membersOnly
|
||||
new HookConfig(
|
||||
variant = Variant(v) err "Invalid game variant " + v,
|
||||
clock = k,
|
||||
time = t,
|
||||
increment = i,
|
||||
mode = realMode,
|
||||
allowAnon = a,
|
||||
eloRange = e.filter(_ ⇒ realMode.rated).fold(EloRange.default)(EloRange.orDefault),
|
||||
allowAnon = !membersOnly, // membersOnly
|
||||
eloRange = e.filter(_ ⇒ useEloRange).fold(EloRange.default)(EloRange.orDefault),
|
||||
color = Color(c) err "Invalid color " + c)
|
||||
}
|
||||
|
||||
|
|
|
@ -6,24 +6,32 @@
|
|||
// declare now, populate later in a distinct script.
|
||||
var lichess_translations = lichess_translations || [];
|
||||
var lichess_sri = Math.random().toString(36).substring(5); // 8 chars
|
||||
|
||||
function withStorage(f) {
|
||||
// can throw an exception when storage is full
|
||||
try {
|
||||
return !!window.localStorage ? f(window.localStorage) : null;
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
console.debug(e);
|
||||
}
|
||||
}
|
||||
var storage = {
|
||||
get: function(k) {
|
||||
return withStorage(function(s) { return s.getItem(k); });
|
||||
return withStorage(function(s) {
|
||||
return s.getItem(k);
|
||||
});
|
||||
},
|
||||
remove: function(k) {
|
||||
withStorage(function(s) { s.removeItem(k); });
|
||||
withStorage(function(s) {
|
||||
s.removeItem(k);
|
||||
});
|
||||
},
|
||||
set: function(k, v) {
|
||||
// removing first may help http://stackoverflow.com/questions/2603682/is-anyone-else-receiving-a-quota-exceeded-err-on-their-ipad-when-accessing-local
|
||||
withStorage(function(s) { s.removeItem(k); s.setItem(k, v); });
|
||||
withStorage(function(s) {
|
||||
s.removeItem(k);
|
||||
s.setItem(k, v);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -315,14 +323,14 @@ var storage = {
|
|||
}
|
||||
},
|
||||
challengeReminder: function(data) {
|
||||
if (!storage.get('challenge-refused-'+data.id) && !$('div.lichess_overboard.joining').length) {
|
||||
if (!storage.get('challenge-refused-' + data.id) && !$('div.lichess_overboard.joining').length) {
|
||||
$('#challenge_reminder').each(function() {
|
||||
clearTimeout($(this).data('timeout'));
|
||||
$(this).remove();
|
||||
});
|
||||
$('div.notifications').append(data.html).find("a.decline").click(function() {
|
||||
$.post($(this).attr("href"));
|
||||
storage.set('challenge-refused-'+data.id, 1)
|
||||
storage.set('challenge-refused-' + data.id, 1)
|
||||
$('#challenge_reminder').remove();
|
||||
return false;
|
||||
});
|
||||
|
@ -485,11 +493,11 @@ var storage = {
|
|||
}
|
||||
$(document).idleTimer(lichess.idleTime)
|
||||
.on('idle.idleTimer', function() {
|
||||
lichess.socket.destroy();
|
||||
})
|
||||
lichess.socket.destroy();
|
||||
})
|
||||
.on('active.idleTimer', function() {
|
||||
lichess.socket.connect();
|
||||
});
|
||||
lichess.socket.connect();
|
||||
});
|
||||
}, 500);
|
||||
|
||||
if ($board = $('div.with_marks').orNot()) {
|
||||
|
@ -702,7 +710,7 @@ var storage = {
|
|||
var enabled = !soundEnabled();
|
||||
$soundToggle.toggleClass('sound_state_on', enabled);
|
||||
$.playSound();
|
||||
if(enabled) storage.set('sound', 1);
|
||||
if (enabled) storage.set('sound', 1);
|
||||
else storage.remove('sound');
|
||||
return false;
|
||||
});
|
||||
|
@ -936,7 +944,12 @@ var storage = {
|
|||
.find("div.lichess_table").addClass("finished").end()
|
||||
.find(".moretime").remove().end()
|
||||
.find('div.clock').clock('stop');
|
||||
self.element.find("div.ui-draggable").draggable("destroy");
|
||||
try {
|
||||
self.element.find("div.ui-draggable").draggable("destroy");
|
||||
} catch (e) { }
|
||||
setTimeout(function() {
|
||||
self.element.find('.ui-draggable-dragging').remove();
|
||||
}, 500);
|
||||
// But enqueue the visible changes
|
||||
self.element.queue(function() {
|
||||
self.changeTitle($.trans("Game Over"));
|
||||
|
@ -1502,7 +1515,7 @@ var storage = {
|
|||
var enabled = $toggle.is(':checked');
|
||||
self.element.toggleClass('hidden', !enabled);
|
||||
self.options.onToggle(enabled);
|
||||
if(!enabled) storage.set('nochat', 1);
|
||||
if (!enabled) storage.set('nochat', 1);
|
||||
else storage.remove('nochat');
|
||||
});
|
||||
$toggle[0].checked = storage.get('nochat') != 1;
|
||||
|
@ -1851,13 +1864,14 @@ var storage = {
|
|||
}
|
||||
});
|
||||
var $eloRangeConfig = $this.parent();
|
||||
$modeChoices.on('change', function() {
|
||||
$modeChoices.add($form.find('.members_only input')).on('change', function() {
|
||||
var rated = $rated.prop('checked');
|
||||
$eloRangeConfig.toggle(rated);
|
||||
var membersOnly = $form.find('.members_only input').prop('checked');
|
||||
$eloRangeConfig.toggle(rated || membersOnly);
|
||||
if (isHook && rated && !$clockCheckbox.prop('checked')) {
|
||||
$clockCheckbox.click();
|
||||
}
|
||||
$form.find('.allow_anon_config').toggle(!rated);
|
||||
$form.find('.members_only').toggle(!rated);
|
||||
$.centerOverboard();
|
||||
}).trigger('change');
|
||||
});
|
||||
|
@ -2068,6 +2082,7 @@ var storage = {
|
|||
},
|
||||
hook_add: addHook,
|
||||
hook_remove: removeHook,
|
||||
hook_list: syncHookIds,
|
||||
featured: changeFeatured,
|
||||
redirect: function(e) {
|
||||
$.lichessOpeningPreventClicks();
|
||||
|
@ -2105,8 +2120,15 @@ var storage = {
|
|||
}
|
||||
|
||||
function removeHook(id) {
|
||||
pool = _.reject(pool, function(h) {
|
||||
return h.id == id;
|
||||
});
|
||||
drawHooks();
|
||||
}
|
||||
|
||||
function syncHookIds(ids) {
|
||||
pool = _.filter(pool, function(h) {
|
||||
return h.id != id;
|
||||
return _.contains(ids, h.id);
|
||||
});
|
||||
drawHooks();
|
||||
}
|
||||
|
@ -2120,12 +2142,12 @@ var storage = {
|
|||
drawHooks(inBatch || false);
|
||||
}
|
||||
|
||||
function undrawHook(hook) {
|
||||
$('#' + hook.id).not('.hiding').addClass('hiding').fadeOut(animation, function() {
|
||||
function undrawHook(id) {
|
||||
$('#' + id).not('.hiding').addClass('hiding').fadeOut(animation, function() {
|
||||
$.powerTip.destroy($(this));
|
||||
$(this).remove();
|
||||
});
|
||||
$tbody.children('.' + hook.id).remove();
|
||||
$tbody.children('.' + id).remove();
|
||||
}
|
||||
|
||||
function drawHooks(inBatch) {
|
||||
|
@ -2140,7 +2162,7 @@ var storage = {
|
|||
(filter.eloDiff > 0 && (!hook.elo || hook.elo > (myElo + filter.eloDiff) || hook.elo < (myElo - filter.eloDiff)));
|
||||
var hash = hook.mode + hook.variant + hook.time + hook.elo;
|
||||
if (hide && hook.action != 'cancel') {
|
||||
undrawHook(hook);
|
||||
undrawHook(hook.id);
|
||||
hidden++;
|
||||
} else if (_.contains(seen, hash) && hook.action != 'cancel') {
|
||||
$('#' + hook.id).filter(':visible').hide();
|
||||
|
@ -2158,13 +2180,15 @@ var storage = {
|
|||
}
|
||||
if (hook.action != 'cancel') seen.push(hash);
|
||||
});
|
||||
$canvas.find('>span.plot').each(function() {
|
||||
var id = $(this).attr('id');
|
||||
if (!_.find(pool, function(h) {
|
||||
return h.id == id;
|
||||
})) {
|
||||
undrawHook($(this).data('hook'));
|
||||
}
|
||||
_.each(_.union(
|
||||
_.map($canvas.find('>span.plot'), function(o) {
|
||||
return $(o).attr('id');
|
||||
}),
|
||||
_.map($tbody.children(), function(o) {
|
||||
return $(o).data('id');
|
||||
})
|
||||
), function(id) {
|
||||
if (!_.findWhere(pool, {id: id})) undrawHook(id);
|
||||
});
|
||||
|
||||
if (!(inBatch || false)) {
|
||||
|
@ -2252,7 +2276,8 @@ var storage = {
|
|||
}
|
||||
|
||||
function renderTr(hook) {
|
||||
return '<tr data-id="' + hook.id + '" class="' + hook.id + '">' + _.map([
|
||||
var title = (hook.action == "join") ? $.trans('Join the game') : $.trans('cancel');
|
||||
return '<tr title="' + title + '" data-id="' + hook.id + '" class="' + hook.id + ' ' + hook.action + '">' + _.map([
|
||||
['', '<span class="s16 ' + (hook.color || 'random') + '"></span>'],
|
||||
[hook.username, hook.elo ? '<a href="/@/' + hook.username + '" class="ulink">' + hook.username + '</a>' : 'Anonymous'],
|
||||
[hook.elo || 0, hook.elo || ''],
|
||||
|
|
|
@ -1358,8 +1358,7 @@ div.game_config .time_choice, div.game_config .increment_choice, div.game_config
|
|||
div.game_config .time_choice span {
|
||||
font-weight: bold;
|
||||
}
|
||||
div.game_config .allow_anon_config label,
|
||||
div.game_config .clock_config label {
|
||||
div.game_config label.pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
div.game_config button.submit {
|
||||
|
@ -1532,6 +1531,9 @@ div.game_config div.color_submits button.random span {
|
|||
#hooks_table tr:nth-child(even) td {
|
||||
background: rgba(230, 230, 230, 0.5);
|
||||
}
|
||||
#hooks_table tr.cancel td {
|
||||
background: rgba(200, 255, 200, 0.7);
|
||||
}
|
||||
#hooks_table tr:hover td {
|
||||
background: rgba(255, 255, 200, 0.7);
|
||||
}
|
||||
|
|
|
@ -191,6 +191,9 @@ body.dark #hooks_table tr:nth-child(even) td {
|
|||
body.dark #hooks_table tr:nth-child(odd) td {
|
||||
background: rgba(40, 40, 40, 0.6);
|
||||
}
|
||||
body.dark #hooks_table tr.cancel td {
|
||||
background: rgba(0, 80, 0, 0.7);
|
||||
}
|
||||
body.dark #hooks_table tr:hover td {
|
||||
background: rgba(50, 50, 20, 0.7);
|
||||
}
|
||||
|
|
2
todo
2
todo
|
@ -57,3 +57,5 @@ customize sound notifications http://imgur.com/70WVyb5
|
|||
opera issue http://en.lichess.org/forum/lichess-feedback/new-game-wont-show-on-games-list-opera#1
|
||||
embedded games links http://2ls.ru/chessonline/
|
||||
filter ranges http://en.lichess.org/forum/lichess-feedback/my-proposed-changes-with-filter-window#1
|
||||
hooks resync (chrome does not remove them all)
|
||||
casual games elo range
|
||||
|
|
Loading…
Reference in a new issue