Merge branch 'master' into autocomplete
commit
bb370dcc6e
|
@ -44,6 +44,10 @@
|
||||||
path = public/vendor/Sunsetter8
|
path = public/vendor/Sunsetter8
|
||||||
url = https://github.com/niklasf/Sunsetter8
|
url = https://github.com/niklasf/Sunsetter8
|
||||||
branch = js
|
branch = js
|
||||||
|
[submodule "public/vendor/stockfish.pexe"]
|
||||||
|
path = public/vendor/stockfish.pexe
|
||||||
|
url = https://github.com/niklasf/stockfish.pexe
|
||||||
|
branch = ddugovic
|
||||||
[submodule "public/vendor/jquery-textcomplete"]
|
[submodule "public/vendor/jquery-textcomplete"]
|
||||||
path = public/vendor/jquery-textcomplete
|
path = public/vendor/jquery-textcomplete
|
||||||
url = https://github.com/yuku-t/jquery-textcomplete
|
url = https://github.com/yuku-t/jquery-textcomplete
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
sudo: false
|
||||||
language: scala
|
language: scala
|
||||||
|
|
||||||
# https://docs.travis-ci.com/user/notifications/#IRC-notification
|
# https://docs.travis-ci.com/user/notifications/#IRC-notification
|
||||||
|
|
|
@ -48,7 +48,10 @@ drop us an email at contact@lichess.org and we'll discuss it.
|
||||||
|
|
||||||
### API Limits
|
### API Limits
|
||||||
|
|
||||||
To respect the API servers and avoid an IP ban, please wait 1 second between requests. If you receive an HTTP response with a [429 status](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#429), please wait a full minute before resuming API usage.
|
To respect the API servers and avoid an IP ban, please wait 1 second between requests.
|
||||||
|
If you receive an HTTP response with a [429 status](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#429), please wait a full minute before resuming API usage.
|
||||||
|
|
||||||
|
Please do not automate computer analysis requests. They're very expensive.
|
||||||
|
|
||||||
### `GET /api/user/<username>` fetch one user
|
### `GET /api/user/<username>` fetch one user
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@ final class Env(
|
||||||
val CliUsername = config getString "cli.username"
|
val CliUsername = config getString "cli.username"
|
||||||
|
|
||||||
private val RendererName = config getString "app.renderer.name"
|
private val RendererName = config getString "app.renderer.name"
|
||||||
private val WebPath = config getString "app.web_path"
|
|
||||||
|
|
||||||
lazy val bus = lila.common.Bus(system)
|
lazy val bus = lila.common.Bus(system)
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import play.api.mvc._, Results._
|
||||||
import lila.api.Context
|
import lila.api.Context
|
||||||
import lila.app._
|
import lila.app._
|
||||||
import lila.common.LilaCookie
|
import lila.common.LilaCookie
|
||||||
|
import lila.common.PimpedJson._
|
||||||
import lila.security.Permission
|
import lila.security.Permission
|
||||||
import lila.user.{ User => UserModel, UserRepo }
|
import lila.user.{ User => UserModel, UserRepo }
|
||||||
import views._
|
import views._
|
||||||
|
@ -51,8 +52,10 @@ object Account extends LilaController {
|
||||||
"nowPlaying" -> JsArray(povs take 20 map Env.api.lobbyApi.nowPlaying),
|
"nowPlaying" -> JsArray(povs take 20 map Env.api.lobbyApi.nowPlaying),
|
||||||
"nbFollowing" -> nbFollowing,
|
"nbFollowing" -> nbFollowing,
|
||||||
"nbFollowers" -> nbFollowers,
|
"nbFollowers" -> nbFollowers,
|
||||||
"kid" -> me.kid,
|
"kid" -> me.kid.option(true),
|
||||||
"nbChallenges" -> nbChallenges)
|
"troll" -> me.troll.option(true),
|
||||||
|
"nbChallenges" -> nbChallenges
|
||||||
|
).noNull
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,40 +1,32 @@
|
||||||
package controllers
|
package controllers
|
||||||
|
|
||||||
import scala.util.{ Success, Failure }
|
import scala.concurrent.duration._
|
||||||
|
|
||||||
import akka.pattern.ask
|
|
||||||
import play.api.http.ContentTypes
|
|
||||||
import play.api.mvc._
|
import play.api.mvc._
|
||||||
import play.twirl.api.Html
|
|
||||||
|
|
||||||
import lila.api.Context
|
import lila.api.Context
|
||||||
import lila.app._
|
import lila.app._
|
||||||
import lila.common.HTTPRequest
|
import lila.common.HTTPRequest
|
||||||
import lila.evaluation.PlayerAssessments
|
import lila.game.{ Pov, GameRepo }
|
||||||
import lila.game.{ Pov, Game => GameModel, GameRepo, PgnDump }
|
|
||||||
import lila.hub.actorApi.map.Tell
|
|
||||||
import views._
|
import views._
|
||||||
|
|
||||||
import chess.Color
|
|
||||||
|
|
||||||
object Analyse extends LilaController {
|
object Analyse extends LilaController {
|
||||||
|
|
||||||
private def env = Env.analyse
|
private def env = Env.analyse
|
||||||
private def bookmarkApi = Env.bookmark.api
|
private def bookmarkApi = Env.bookmark.api
|
||||||
private val divider = Env.game.divider
|
private val divider = Env.game.divider
|
||||||
|
|
||||||
def requestAnalysis(id: String) = Auth { implicit ctx =>
|
def requestAnalysis(id: String) = Auth { implicit ctx => me =>
|
||||||
me =>
|
OptionFuResult(GameRepo game id) { game =>
|
||||||
OptionFuResult(GameRepo game id) { game =>
|
Env.fishnet.analyser(game, lila.fishnet.Work.Sender(
|
||||||
Env.fishnet.analyser(game, lila.fishnet.Work.Sender(
|
userId = me.id.some,
|
||||||
userId = me.id.some,
|
ip = HTTPRequest.lastRemoteAddress(ctx.req).some,
|
||||||
ip = HTTPRequest.lastRemoteAddress(ctx.req).some,
|
mod = isGranted(_.Hunter),
|
||||||
mod = isGranted(_.Hunter),
|
system = false)) map {
|
||||||
system = false)) map {
|
case true => Ok
|
||||||
case true => Ok
|
case false => Unauthorized
|
||||||
case false => Unauthorized
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def replay(pov: Pov, userTv: Option[lila.user.User])(implicit ctx: Context) =
|
def replay(pov: Pov, userTv: Option[lila.user.User])(implicit ctx: Context) =
|
||||||
|
@ -56,19 +48,19 @@ object Analyse extends LilaController {
|
||||||
withMoveTimes = true,
|
withMoveTimes = true,
|
||||||
withDivision = true,
|
withDivision = true,
|
||||||
withOpening = true) map { data =>
|
withOpening = true) map { data =>
|
||||||
Ok(html.analyse.replay(
|
Ok(html.analyse.replay(
|
||||||
pov,
|
pov,
|
||||||
data,
|
data,
|
||||||
initialFen,
|
initialFen,
|
||||||
Env.analyse.annotator(pgn, analysis, pov.game.opening, pov.game.winnerColor, pov.game.status, pov.game.clock).toString,
|
Env.analyse.annotator(pgn, analysis, pov.game.opening, pov.game.winnerColor, pov.game.status, pov.game.clock).toString,
|
||||||
analysis,
|
analysis,
|
||||||
analysisInProgress,
|
analysisInProgress,
|
||||||
simul,
|
simul,
|
||||||
crosstable,
|
crosstable,
|
||||||
userTv,
|
userTv,
|
||||||
chat,
|
chat,
|
||||||
bookmarked = bookmarked))
|
bookmarked = bookmarked))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ object Lobby extends LilaController {
|
||||||
|
|
||||||
private val cache = lila.memo.AsyncCache[RequestKey, Html](
|
private val cache = lila.memo.AsyncCache[RequestKey, Html](
|
||||||
f = renderRequestKey,
|
f = renderRequestKey,
|
||||||
timeToLive = 500 millis)
|
timeToLive = 1 second)
|
||||||
|
|
||||||
private def renderCtx(implicit ctx: Context): Fu[Html] = Env.current.preloader(
|
private def renderCtx(implicit ctx: Context): Fu[Html] = Env.current.preloader(
|
||||||
posts = Env.forum.recent(ctx.me, Env.team.cached.teamIds),
|
posts = Env.forum.recent(ctx.me, Env.team.cached.teamIds),
|
||||||
|
|
|
@ -102,15 +102,18 @@ object Main extends LilaController {
|
||||||
} inject Ok
|
} inject Ok
|
||||||
}
|
}
|
||||||
|
|
||||||
def glyphs = Action { req =>
|
private lazy val glyphsResult: Result = {
|
||||||
import chess.format.pgn.Glyph
|
import chess.format.pgn.Glyph
|
||||||
import lila.socket.tree.Node.glyphWriter
|
import lila.socket.tree.Node.glyphWriter
|
||||||
Ok(Json.obj(
|
Ok(Json.obj(
|
||||||
"move" -> Glyph.MoveAssessment.all,
|
"move" -> Glyph.MoveAssessment.display,
|
||||||
"position" -> Glyph.PositionAssessment.all,
|
"position" -> Glyph.PositionAssessment.display,
|
||||||
"observation" -> Glyph.Observation.all
|
"observation" -> Glyph.Observation.display
|
||||||
)) as JSON
|
)) as JSON
|
||||||
}
|
}
|
||||||
|
def glyphs = Action { req =>
|
||||||
|
glyphsResult
|
||||||
|
}
|
||||||
|
|
||||||
def image(id: String, hash: String, name: String) = Action.async { req =>
|
def image(id: String, hash: String, name: String) = Action.async { req =>
|
||||||
Env.db.image.fetch(id) map {
|
Env.db.image.fetch(id) map {
|
||||||
|
@ -124,6 +127,15 @@ object Main extends LilaController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val robots = Action { _ =>
|
||||||
|
Ok {
|
||||||
|
if (Env.api.Net.Crawlable)
|
||||||
|
"User-agent: *\nAllow: /\nDisallow: /game/export"
|
||||||
|
else
|
||||||
|
"User-agent: *\nDisallow: /"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
def notFound(req: RequestHeader): Fu[Result] =
|
def notFound(req: RequestHeader): Fu[Result] =
|
||||||
reqToCtx(req) map { implicit ctx =>
|
reqToCtx(req) map { implicit ctx =>
|
||||||
lila.mon.http.response.code404()
|
lila.mon.http.response.code404()
|
||||||
|
|
|
@ -46,6 +46,7 @@ object Environment
|
||||||
|
|
||||||
def netDomain = apiEnv.Net.Domain
|
def netDomain = apiEnv.Net.Domain
|
||||||
def netBaseUrl = apiEnv.Net.BaseUrl
|
def netBaseUrl = apiEnv.Net.BaseUrl
|
||||||
|
val isGloballyCrawlable = apiEnv.Net.Crawlable
|
||||||
|
|
||||||
def isProd = apiEnv.isProd
|
def isProd = apiEnv.isProd
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ side: Option[Html] = None,
|
||||||
menu: Option[Html] = None,
|
menu: Option[Html] = None,
|
||||||
chat: Option[Html] = None,
|
chat: Option[Html] = None,
|
||||||
underchat: Option[Html] = None,
|
underchat: Option[Html] = None,
|
||||||
robots: Boolean = true,
|
robots: Boolean = isGloballyCrawlable,
|
||||||
moreCss: Html = Html(""),
|
moreCss: Html = Html(""),
|
||||||
moreJs: Html = Html(""),
|
moreJs: Html = Html(""),
|
||||||
zen: Boolean = false,
|
zen: Boolean = false,
|
||||||
|
@ -149,7 +149,7 @@ withGtm: Boolean = false)(body: Html)(implicit ctx: Context)
|
||||||
<a class="fright link text data-count" href="@routes.Report.list" data-count="@reportNbUnprocessed" data-icon="@icon.mod"></a>
|
<a class="fright link text data-count" href="@routes.Report.list" data-count="@reportNbUnprocessed" data-icon="@icon.mod"></a>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
<a id="reconnecting" class="fright link" onclick="location.reload();" data-icon="B"> @trans.reconnecting()</a>
|
<a id="reconnecting" class="fright link" onclick="window.location.reload()" data-icon="B"> @trans.reconnecting()</a>
|
||||||
</div>
|
</div>
|
||||||
<div id="fpmenu">@fpmenu()</div>
|
<div id="fpmenu">@fpmenu()</div>
|
||||||
<div class="content @ctx.is3d.fold("is3d", "is2d")">
|
<div class="content @ctx.is3d.fold("is3d", "is2d")">
|
||||||
|
|
|
@ -10,12 +10,6 @@ cd gfc-semver
|
||||||
sbt publish-local
|
sbt publish-local
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
git clone https://github.com/ornicar/ReactiveMongo --branch lichess
|
|
||||||
cd ReactiveMongo
|
|
||||||
git checkout b3e895f1c723d7cb518763f31fba62dc74311eab
|
|
||||||
sbt publish-local
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
git clone https://github.com/ornicar/scalalib
|
git clone https://github.com/ornicar/scalalib
|
||||||
cd scalalib
|
cd scalalib
|
||||||
sbt publish-local
|
sbt publish-local
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
var puzzles = db.puzzle;
|
||||||
|
var count = 0;
|
||||||
|
|
||||||
|
function depthOf(obj) {
|
||||||
|
var level = 1;
|
||||||
|
var key;
|
||||||
|
|
||||||
|
for (key in obj) {
|
||||||
|
if (!obj.hasOwnProperty(key)) continue;
|
||||||
|
|
||||||
|
if (typeof obj[key] === 'object') {
|
||||||
|
var depth = depthOf(obj[key]) + 1;
|
||||||
|
level = Math.max(depth, level);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
|
puzzles.find({
|
||||||
|
"mate": true,
|
||||||
|
"_id": {
|
||||||
|
"$gt": 60120
|
||||||
|
},
|
||||||
|
'vote.sum': {
|
||||||
|
'$gt': -8000
|
||||||
|
}
|
||||||
|
}).forEach(function(p) {
|
||||||
|
var depth = depthOf(p);
|
||||||
|
if (depth % 2 === 1) {
|
||||||
|
count++;
|
||||||
|
puzzles.update({
|
||||||
|
_id: p._id
|
||||||
|
}, {
|
||||||
|
$set: {
|
||||||
|
vote: {
|
||||||
|
up: NumberInt(0),
|
||||||
|
down: NumberInt(9000),
|
||||||
|
sum: NumberInt(-9000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
print(p._id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
print("Disabled " + count + " puzzles");
|
|
@ -0,0 +1,21 @@
|
||||||
|
var puzzles = db.puzzle;
|
||||||
|
var count = 0;
|
||||||
|
puzzles.find().forEach(function(p) {
|
||||||
|
var parts = p.fen.split(/\s/);
|
||||||
|
var pieceCount = parts[0].split(/[nbrqkp]/i).length - 1;
|
||||||
|
if (pieceCount < 9 && p.vote.sum < 50 && p.vote.sum > -1000) {
|
||||||
|
count++;
|
||||||
|
puzzles.update({
|
||||||
|
_id: p._id
|
||||||
|
}, {
|
||||||
|
$set: {
|
||||||
|
vote: {
|
||||||
|
up: NumberInt(0),
|
||||||
|
down: NumberInt(0),
|
||||||
|
sum: NumberInt(-9000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
print("Disabled " + count + " puzzles");
|
|
@ -0,0 +1,10 @@
|
||||||
|
var coll = db.puzzle;
|
||||||
|
coll.find({_id:{$lt:60120},'vote.sum':{$gte:100}}).sort({_id:1}).forEach(function(p) {
|
||||||
|
if (coll.count({fen:p.fen}) == 1) {
|
||||||
|
var nextId = coll.find({},{_id:1}).sort({_id:-1}).limit(1)[0]._id + 1;
|
||||||
|
p.salvaged = NumberInt(p._id);
|
||||||
|
p._id = NumberInt(nextId);
|
||||||
|
print(p.salvaged + ' -> ' + p._id);
|
||||||
|
coll.insert(p);
|
||||||
|
}
|
||||||
|
});
|
|
@ -33,7 +33,9 @@ if [ $mode = "main" ]; then
|
||||||
$CLI deploy pre
|
$CLI deploy pre
|
||||||
fi
|
fi
|
||||||
|
|
||||||
bin/dev ";stage;exit"
|
SBT_OPTS=""
|
||||||
|
export JAVA_OPTS="-Xms1024M -Xmx1024M -XX:ReservedCodeCacheSize=64m -XX:+UseConcMarkSweepGC"
|
||||||
|
sbt ";stage;exit"
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
lilalog "Deploy canceled"
|
lilalog "Deploy canceled"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -10,9 +10,10 @@ net {
|
||||||
ip = "5.196.91.160"
|
ip = "5.196.91.160"
|
||||||
asset {
|
asset {
|
||||||
domain = ${net.domain}
|
domain = ${net.domain}
|
||||||
version = 1126
|
version = 1141
|
||||||
}
|
}
|
||||||
email = "contact@lichess.org"
|
email = "contact@lichess.org"
|
||||||
|
crawlable = false
|
||||||
}
|
}
|
||||||
forcedev = false
|
forcedev = false
|
||||||
play {
|
play {
|
||||||
|
@ -217,6 +218,7 @@ bookmark {
|
||||||
}
|
}
|
||||||
analyse {
|
analyse {
|
||||||
collection.analysis = analysis2
|
collection.analysis = analysis2
|
||||||
|
collection.requester = analysis_requester
|
||||||
net.domain = ${net.domain}
|
net.domain = ${net.domain}
|
||||||
cached.nb.ttl = ${game.cached.nb.ttl}
|
cached.nb.ttl = ${game.cached.nb.ttl}
|
||||||
paginator.max_per_page = ${game.paginator.max_per_page}
|
paginator.max_per_page = ${game.paginator.max_per_page}
|
||||||
|
|
|
@ -26,6 +26,13 @@
|
||||||
<!-- </appender> -->
|
<!-- </appender> -->
|
||||||
<!-- </logger> -->
|
<!-- </logger> -->
|
||||||
|
|
||||||
|
<logger name="reactivemongo" level="DEBUG">
|
||||||
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
|
<file>${application.home}/logs/reactivemongo.log</file>
|
||||||
|
<encoder><pattern>%date [%level] %message%n%xException</pattern></encoder>
|
||||||
|
</appender>
|
||||||
|
</logger>
|
||||||
|
|
||||||
<logger name="lobby" level="DEBUG">
|
<logger name="lobby" level="DEBUG">
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>${application.home}/logs/lobby.log</file>
|
<file>${application.home}/logs/lobby.log</file>
|
||||||
|
|
|
@ -492,3 +492,5 @@ POST /jslog/$id<\w{12}> controllers.Main.jslog(id)
|
||||||
# Assets
|
# Assets
|
||||||
GET /glyphs controllers.Main.glyphs
|
GET /glyphs controllers.Main.glyphs
|
||||||
GET /assets/*file controllers.Assets.at(path="/public", file)
|
GET /assets/*file controllers.Assets.at(path="/public", file)
|
||||||
|
|
||||||
|
GET /robots.txt controllers.Main.robots
|
||||||
|
|
|
@ -3,12 +3,14 @@ package lila.analyse
|
||||||
import akka.actor.ActorSelection
|
import akka.actor.ActorSelection
|
||||||
|
|
||||||
import chess.format.FEN
|
import chess.format.FEN
|
||||||
|
import lila.db.dsl._
|
||||||
import lila.game.actorApi.InsertGame
|
import lila.game.actorApi.InsertGame
|
||||||
import lila.game.{ Game, GameRepo }
|
import lila.game.{ Game, GameRepo }
|
||||||
import lila.hub.actorApi.map.Tell
|
import lila.hub.actorApi.map.Tell
|
||||||
|
|
||||||
final class Analyser(
|
final class Analyser(
|
||||||
indexer: ActorSelection,
|
indexer: ActorSelection,
|
||||||
|
requesterApi: RequesterApi,
|
||||||
roundSocket: ActorSelection,
|
roundSocket: ActorSelection,
|
||||||
bus: lila.common.Bus) {
|
bus: lila.common.Bus) {
|
||||||
|
|
||||||
|
@ -21,6 +23,7 @@ final class Analyser(
|
||||||
sendAnalysisProgress(analysis) >>- {
|
sendAnalysisProgress(analysis) >>- {
|
||||||
bus.publish(actorApi.AnalysisReady(game, analysis), 'analysisReady)
|
bus.publish(actorApi.AnalysisReady(game, analysis), 'analysisReady)
|
||||||
indexer ! InsertGame(game)
|
indexer ! InsertGame(game)
|
||||||
|
requesterApi save analysis
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,15 +17,19 @@ final class Env(
|
||||||
indexer: ActorSelection) {
|
indexer: ActorSelection) {
|
||||||
|
|
||||||
private val CollectionAnalysis = config getString "collection.analysis"
|
private val CollectionAnalysis = config getString "collection.analysis"
|
||||||
|
private val CollectionRequester = config getString "collection.requester"
|
||||||
private val NetDomain = config getString "net.domain"
|
private val NetDomain = config getString "net.domain"
|
||||||
private val CachedNbTtl = config duration "cached.nb.ttl"
|
private val CachedNbTtl = config duration "cached.nb.ttl"
|
||||||
private val PaginatorMaxPerPage = config getInt "paginator.max_per_page"
|
private val PaginatorMaxPerPage = config getInt "paginator.max_per_page"
|
||||||
private val ActorName = config getString "actor.name"
|
private val ActorName = config getString "actor.name"
|
||||||
|
|
||||||
private[analyse] lazy val analysisColl = db(CollectionAnalysis)
|
lazy val analysisColl = db(CollectionAnalysis)
|
||||||
|
|
||||||
|
lazy val requesterApi = new RequesterApi(db(CollectionRequester))
|
||||||
|
|
||||||
lazy val analyser = new Analyser(
|
lazy val analyser = new Analyser(
|
||||||
indexer = indexer,
|
indexer = indexer,
|
||||||
|
requesterApi = requesterApi,
|
||||||
roundSocket = roundSocket,
|
roundSocket = roundSocket,
|
||||||
bus = system.lilaBus)
|
bus = system.lilaBus)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
package lila.analyse
|
||||||
|
|
||||||
|
import org.joda.time._
|
||||||
|
|
||||||
|
import lila.db.dsl._
|
||||||
|
import lila.user.User
|
||||||
|
|
||||||
|
final class RequesterApi(coll: Coll) {
|
||||||
|
|
||||||
|
private val formatter = format.DateTimeFormat.forPattern("YYYY-MM-dd")
|
||||||
|
|
||||||
|
private def today = formatter.print(DateTime.now)
|
||||||
|
|
||||||
|
def save(analysis: Analysis): Funit = coll.update(
|
||||||
|
$id(analysis.uid | "anonymous"),
|
||||||
|
$inc("total" -> 1) ++
|
||||||
|
$inc(today -> 1) ++
|
||||||
|
$set("last" -> analysis.id),
|
||||||
|
upsert = true
|
||||||
|
).void
|
||||||
|
|
||||||
|
def countToday(userId: User.ID): Fu[Int] =
|
||||||
|
coll.primitiveOne[Int]($id(userId), today) map (~_)
|
||||||
|
}
|
|
@ -44,6 +44,7 @@ final class Env(
|
||||||
val AssetDomain = config getString "net.asset.domain"
|
val AssetDomain = config getString "net.asset.domain"
|
||||||
val AssetVersion = config getInt "net.asset.version"
|
val AssetVersion = config getInt "net.asset.version"
|
||||||
val Email = config getString "net.email"
|
val Email = config getString "net.email"
|
||||||
|
val Crawlable = config getBoolean "net.crawlable"
|
||||||
}
|
}
|
||||||
val PrismicApiUrl = config getString "prismic.api_url"
|
val PrismicApiUrl = config getString "prismic.api_url"
|
||||||
val EditorAnimationDuration = config duration "editor.animation.duration"
|
val EditorAnimationDuration = config duration "editor.animation.duration"
|
||||||
|
|
|
@ -29,9 +29,9 @@ final class BookmarkApi(
|
||||||
user ?? { u =>
|
user ?? { u =>
|
||||||
val candidateIds = games.filter(_.bookmarks > 0).map(_.id)
|
val candidateIds = games.filter(_.bookmarks > 0).map(_.id)
|
||||||
if (candidateIds.isEmpty) fuccess(Set.empty)
|
if (candidateIds.isEmpty) fuccess(Set.empty)
|
||||||
else coll.distinct("g", Some(
|
else coll.distinct[String, Set]("g", Some(
|
||||||
userIdQuery(u.id) ++ $doc("g" $in candidateIds)
|
userIdQuery(u.id) ++ $doc("g" $in candidateIds)
|
||||||
)) map lila.db.BSON.asStringSet
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
def removeByGameId(gameId: String): Funit =
|
def removeByGameId(gameId: String): Funit =
|
||||||
|
|
|
@ -53,7 +53,7 @@ private final class ChallengeRepo(coll: Coll, maxPerUser: Int) {
|
||||||
)).cursor[Challenge]().gather[List](max)
|
)).cursor[Challenge]().gather[List](max)
|
||||||
|
|
||||||
private[challenge] def expired(max: Int): Fu[List[Challenge]] =
|
private[challenge] def expired(max: Int): Fu[List[Challenge]] =
|
||||||
coll.find($doc("expiresAt" -> $doc("$lt" -> DateTime.now))).list[Challenge](max)
|
coll.find($doc("expiresAt" -> $lt(DateTime.now))).list[Challenge](max)
|
||||||
|
|
||||||
def setSeenAgain(id: Challenge.ID) = coll.update(
|
def setSeenAgain(id: Challenge.ID) = coll.update(
|
||||||
$id(id),
|
$id(id),
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 8c4592ad012f2f4e1e2631ea2db64f6cde9698a3
|
Subproject commit 645fad395ee538ed54a474aadf138c9f2df1be03
|
|
@ -196,23 +196,6 @@ object BSON extends Handlers {
|
||||||
def debugDoc(doc: Bdoc): String = (doc.elements.toList map {
|
def debugDoc(doc: Bdoc): String = (doc.elements.toList map {
|
||||||
case (k, v) => s"$k: ${debug(v)}"
|
case (k, v) => s"$k: ${debug(v)}"
|
||||||
}).mkString("{", ", ", "}")
|
}).mkString("{", ", ", "}")
|
||||||
|
|
||||||
def hashDoc(doc: Bdoc): String = debugDoc(doc).replace(" ", "")
|
def hashDoc(doc: Bdoc): String = debugDoc(doc).replace(" ", "")
|
||||||
|
|
||||||
def asStrings(vs: List[BSONValue]): List[String] = {
|
|
||||||
val b = new scala.collection.mutable.ListBuffer[String]
|
|
||||||
vs foreach {
|
|
||||||
case BSONString(s) => b += s
|
|
||||||
case _ =>
|
|
||||||
}
|
|
||||||
b.toList
|
|
||||||
}
|
|
||||||
|
|
||||||
def asStringSet(vs: List[BSONValue]): Set[String] = {
|
|
||||||
val b = Set.newBuilder[String]
|
|
||||||
vs foreach {
|
|
||||||
case BSONString(s) => b += s
|
|
||||||
case _ =>
|
|
||||||
}
|
|
||||||
b.result
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,10 +34,13 @@ trait CollExt { self: dsl with QueryBuilderExt =>
|
||||||
def exists(selector: Bdoc): Fu[Boolean] = countSel(selector).map(0!=)
|
def exists(selector: Bdoc): Fu[Boolean] = countSel(selector).map(0!=)
|
||||||
|
|
||||||
def byOrderedIds[D: BSONDocumentReader](ids: Iterable[String], readPreference: ReadPreference = ReadPreference.primary)(docId: D => String): Fu[List[D]] =
|
def byOrderedIds[D: BSONDocumentReader](ids: Iterable[String], readPreference: ReadPreference = ReadPreference.primary)(docId: D => String): Fu[List[D]] =
|
||||||
coll.find($inIds(ids)).cursor[D](readPreference = readPreference).collect[List]() map { docs =>
|
coll.find($inIds(ids)).cursor[D](readPreference = readPreference).
|
||||||
val docsMap = docs.map(u => docId(u) -> u).toMap
|
collect[List](Int.MaxValue, err = Cursor.FailOnError[List[D]]()).
|
||||||
ids.flatMap(docsMap.get).toList
|
map { docs =>
|
||||||
}
|
val docsMap = docs.map(u => docId(u) -> u).toMap
|
||||||
|
ids.flatMap(docsMap.get).toList
|
||||||
|
}
|
||||||
|
|
||||||
// def byOrderedIds[A <: Identified[String]: TubeInColl](ids: Iterable[String]): Fu[List[A]] =
|
// def byOrderedIds[A <: Identified[String]: TubeInColl](ids: Iterable[String]): Fu[List[A]] =
|
||||||
// byOrderedIds[String, A](ids)
|
// byOrderedIds[String, A](ids)
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,11 @@ import reactivemongo.bson._
|
||||||
|
|
||||||
trait CursorExt { self: dsl =>
|
trait CursorExt { self: dsl =>
|
||||||
|
|
||||||
|
// Can be refactor as CursorProducer
|
||||||
final implicit class ExtendCursor[A: BSONDocumentReader](val c: Cursor[A]) {
|
final implicit class ExtendCursor[A: BSONDocumentReader](val c: Cursor[A]) {
|
||||||
|
|
||||||
// like collect, but with stopOnError defaulting to false
|
// like collect, but with stopOnError defaulting to false
|
||||||
def gather[M[_]](upTo: Int = Int.MaxValue)(implicit cbf: CanBuildFrom[M[_], A, M[A]]): Fu[M[A]] =
|
def gather[M[_]](upTo: Int = Int.MaxValue)(implicit cbf: CanBuildFrom[M[_], A, M[A]]): Fu[M[A]] = c.collect[M](upTo, Cursor.ContOnError[M[A]]())
|
||||||
c.collect[M](upTo, stopOnError = false)
|
|
||||||
|
|
||||||
def list(limit: Option[Int]): Fu[List[A]] = gather[List](limit | Int.MaxValue)
|
def list(limit: Option[Int]): Fu[List[A]] = gather[List](limit | Int.MaxValue)
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ trait CursorExt { self: dsl =>
|
||||||
def list(): Fu[List[A]] = list(none)
|
def list(): Fu[List[A]] = list(none)
|
||||||
|
|
||||||
// like headOption, but with stopOnError defaulting to false
|
// like headOption, but with stopOnError defaulting to false
|
||||||
def uno: Fu[Option[A]] =
|
def uno: Fu[Option[A]] = c.collect[Iterable](
|
||||||
c.collect[Iterable](1, stopOnError = false).map(_.headOption)
|
1, Cursor.ContOnError[Iterable[A]]()).map(_.headOption)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,48 +1,64 @@
|
||||||
package lila.db
|
package lila.db
|
||||||
|
|
||||||
import com.typesafe.config.Config
|
import com.typesafe.config.Config
|
||||||
import reactivemongo.api._
|
import dsl.Coll
|
||||||
|
import reactivemongo.api.{ DefaultDB, MongoConnection, MongoDriver }
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
import scala.concurrent.Future
|
import scala.concurrent.{ Await, ExecutionContext, Future }
|
||||||
import scala.util.{ Success, Failure }
|
import scala.util.{ Failure, Success, Try }
|
||||||
import dsl._
|
|
||||||
|
|
||||||
final class Env(
|
final class Env(
|
||||||
|
name: String,
|
||||||
config: Config,
|
config: Config,
|
||||||
lifecycle: play.api.inject.ApplicationLifecycle) {
|
lifecycle: play.api.inject.ApplicationLifecycle) {
|
||||||
|
|
||||||
lazy val db = {
|
lazy val (connection, dbName) = {
|
||||||
val parsedUri: MongoConnection.ParsedURI =
|
|
||||||
MongoConnection.parseURI(config.getString("uri")) match {
|
|
||||||
case Success(parsedURI) => parsedURI
|
|
||||||
case Failure(e) => sys error s"Invalid mongodb.uri"
|
|
||||||
}
|
|
||||||
val driver = new MongoDriver(Some(config))
|
val driver = new MongoDriver(Some(config))
|
||||||
val connection = driver.connection(parsedUri)
|
|
||||||
|
|
||||||
parsedUri.db.fold[DefaultDB](sys error s"cannot resolve database from URI: $parsedUri") { dbUri =>
|
registerDriverShutdownHook(driver)
|
||||||
val db = DB(dbUri, connection)
|
|
||||||
registerDriverShutdownHook(driver)
|
(for {
|
||||||
logger.info(s"""ReactiveMongoApi successfully started with DB '$dbUri'! Servers: ${parsedUri.hosts.map { s => s"[${s._1}:${s._2}]" }.mkString("\n\t\t")}""")
|
parsedUri <- MongoConnection.parseURI(config getString "uri")
|
||||||
db
|
con <- driver.connection(parsedUri, true)
|
||||||
}
|
db <- parsedUri.db match {
|
||||||
|
case Some(name) => Success(name)
|
||||||
|
case _ => Failure[String](new IllegalArgumentException(
|
||||||
|
s"cannot resolve connection from URI: $parsedUri"))
|
||||||
|
}
|
||||||
|
} yield con -> db).get
|
||||||
}
|
}
|
||||||
|
|
||||||
def apply(name: String): Coll = db(name)
|
private lazy val lnm = s"${connection.supervisor}/${connection.name}"
|
||||||
|
|
||||||
|
@inline private def resolveDB(ec: ExecutionContext) =
|
||||||
|
connection.database(dbName)(ec).andThen {
|
||||||
|
case _ => /*logger.debug*/ println(s"[$lnm] MongoDB resolved: $dbName")
|
||||||
|
}
|
||||||
|
|
||||||
|
def db(implicit ec: ExecutionContext): DefaultDB =
|
||||||
|
Await.result(resolveDB(ec), 10.seconds)
|
||||||
|
|
||||||
|
def apply(name: String)(implicit ec: ExecutionContext): Coll =
|
||||||
|
db(ec).apply(name)
|
||||||
|
|
||||||
object image {
|
object image {
|
||||||
private lazy val imageColl = apply(config getString "image.collection")
|
private lazy val imageColl = apply(config getString "image.collection")
|
||||||
|
import dsl._
|
||||||
import DbImage.DbImageBSONHandler
|
import DbImage.DbImageBSONHandler
|
||||||
def fetch(id: String): Fu[Option[DbImage]] = imageColl.byId[DbImage](id)
|
def fetch(id: String): Fu[Option[DbImage]] = imageColl.byId[DbImage](id)
|
||||||
}
|
}
|
||||||
|
|
||||||
private def registerDriverShutdownHook(mongoDriver: MongoDriver): Unit =
|
private def registerDriverShutdownHook(mongoDriver: MongoDriver): Unit =
|
||||||
lifecycle.addStopHook { () => Future(mongoDriver.close()) }
|
lifecycle.addStopHook { () =>
|
||||||
|
logger.info(s"[$lnm] Stopping the MongoDriver...")
|
||||||
|
Future(mongoDriver.close())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
object Env {
|
object Env {
|
||||||
|
|
||||||
lazy val current = "db" boot new Env(
|
lazy val current = "db" boot new Env(
|
||||||
|
name = "main",
|
||||||
config = lila.common.PlayApp loadConfig "mongodb",
|
config = lila.common.PlayApp loadConfig "mongodb",
|
||||||
lifecycle = lila.common.PlayApp.lifecycle)
|
lifecycle = lila.common.PlayApp.lifecycle)
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ trait QueryBuilderExt { self: dsl =>
|
||||||
|
|
||||||
// like collect, but with stopOnError defaulting to false
|
// like collect, but with stopOnError defaulting to false
|
||||||
def gather[A, M[_]](upTo: Int = Int.MaxValue)(implicit cbf: CanBuildFrom[M[_], A, M[A]], reader: BSONDocumentReader[A]): Fu[M[A]] =
|
def gather[A, M[_]](upTo: Int = Int.MaxValue)(implicit cbf: CanBuildFrom[M[_], A, M[A]], reader: BSONDocumentReader[A]): Fu[M[A]] =
|
||||||
b.cursor[A]().collect[M](upTo, stopOnError = false)
|
b.cursor[A]().collect[M](upTo, Cursor.ContOnError[M[A]]())
|
||||||
|
|
||||||
def list[A: BSONDocumentReader](limit: Option[Int]): Fu[List[A]] = gather[A, List](limit | Int.MaxValue)
|
def list[A: BSONDocumentReader](limit: Option[Int]): Fu[List[A]] = gather[A, List](limit | Int.MaxValue)
|
||||||
|
|
||||||
|
@ -27,10 +27,9 @@ trait QueryBuilderExt { self: dsl =>
|
||||||
// like one, but with stopOnError defaulting to false
|
// like one, but with stopOnError defaulting to false
|
||||||
def uno[A: BSONDocumentReader]: Fu[Option[A]] = uno[A](ReadPreference.primary)
|
def uno[A: BSONDocumentReader]: Fu[Option[A]] = uno[A](ReadPreference.primary)
|
||||||
|
|
||||||
def uno[A: BSONDocumentReader](readPreference: ReadPreference): Fu[Option[A]] =
|
def uno[A: BSONDocumentReader](readPreference: ReadPreference): Fu[Option[A]] = b.copy(options = b.options.batchSize(1))
|
||||||
b.copy(options = b.options.batchSize(1))
|
.cursor[A](readPreference = readPreference)
|
||||||
.cursor[A](readPreference = readPreference)
|
.collect[Iterable](1, Cursor.ContOnError[Iterable[A]]())
|
||||||
.collect[Iterable](1, stopOnError = false)
|
.map(_.headOption)
|
||||||
.map(_.headOption)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,10 +55,11 @@ case class Assessible(analysed: Analysed) {
|
||||||
// SF1 SF2 BLR1 BLR2 MTs1 MTs2 Holds
|
// SF1 SF2 BLR1 BLR2 MTs1 MTs2 Holds
|
||||||
case PlayerFlags(T, T, T, T, T, T, T) => Cheating // all T, obvious cheat
|
case PlayerFlags(T, T, T, T, T, T, T) => Cheating // all T, obvious cheat
|
||||||
case PlayerFlags(T, _, T, _, _, T, _) => Cheating // high accuracy, high blurs, no fast moves
|
case PlayerFlags(T, _, T, _, _, T, _) => Cheating // high accuracy, high blurs, no fast moves
|
||||||
|
case PlayerFlags(T, _, _, T, _, _, _) => Cheating // high accuracy, moderate blurs
|
||||||
|
|
||||||
|
case PlayerFlags(_, _, _, T, T, _, _) => LikelyCheating // high accuracy, moderate blurs => 93% chance cheating
|
||||||
case PlayerFlags(T, _, _, _, _, _, T) => LikelyCheating // Holds are bad, hmk?
|
case PlayerFlags(T, _, _, _, _, _, T) => LikelyCheating // Holds are bad, hmk?
|
||||||
case PlayerFlags(_, T, _, _, _, _, T) => LikelyCheating // Holds are bad, hmk?
|
case PlayerFlags(_, T, _, _, _, _, T) => LikelyCheating // Holds are bad, hmk?
|
||||||
case PlayerFlags(T, _, _, T, _, T, _) => LikelyCheating // high accuracy, moderate blurs, no fast moves
|
|
||||||
case PlayerFlags(_, T, _, T, T, _, _) => LikelyCheating // always has advantage, moderate blurs, highly consistent move times
|
case PlayerFlags(_, T, _, T, T, _, _) => LikelyCheating // always has advantage, moderate blurs, highly consistent move times
|
||||||
case PlayerFlags(_, T, T, _, _, _, _) => LikelyCheating // always has advantage, high blurs
|
case PlayerFlags(_, T, T, _, _, _, _) => LikelyCheating // always has advantage, high blurs
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ import lila.common.PimpedConfig._
|
||||||
final class Env(
|
final class Env(
|
||||||
config: Config,
|
config: Config,
|
||||||
uciMemo: lila.game.UciMemo,
|
uciMemo: lila.game.UciMemo,
|
||||||
|
requesterApi: lila.analyse.RequesterApi,
|
||||||
hub: lila.hub.Env,
|
hub: lila.hub.Env,
|
||||||
db: lila.db.Env,
|
db: lila.db.Env,
|
||||||
system: ActorSystem,
|
system: ActorSystem,
|
||||||
|
@ -48,11 +49,11 @@ final class Env(
|
||||||
monitor = monitor,
|
monitor = monitor,
|
||||||
sink = sink,
|
sink = sink,
|
||||||
socketExists = id => {
|
socketExists = id => {
|
||||||
import lila.hub.actorApi.map.Exists
|
import lila.hub.actorApi.map.Exists
|
||||||
import akka.pattern.ask
|
import akka.pattern.ask
|
||||||
import makeTimeout.short
|
import makeTimeout.short
|
||||||
hub.socket.round ? Exists(id) mapTo manifest[Boolean]
|
hub.socket.round ? Exists(id) mapTo manifest[Boolean]
|
||||||
},
|
},
|
||||||
offlineMode = OfflineMode,
|
offlineMode = OfflineMode,
|
||||||
analysisNodes = AnalysisNodes)(system)
|
analysisNodes = AnalysisNodes)(system)
|
||||||
|
|
||||||
|
@ -61,11 +62,15 @@ final class Env(
|
||||||
uciMemo = uciMemo,
|
uciMemo = uciMemo,
|
||||||
maxPlies = MovePlies)
|
maxPlies = MovePlies)
|
||||||
|
|
||||||
|
private val limiter = new Limiter(
|
||||||
|
analysisColl = analysisColl,
|
||||||
|
requesterApi = requesterApi)
|
||||||
|
|
||||||
val analyser = new Analyser(
|
val analyser = new Analyser(
|
||||||
repo = repo,
|
repo = repo,
|
||||||
uciMemo = uciMemo,
|
uciMemo = uciMemo,
|
||||||
sequencer = sequencer,
|
sequencer = sequencer,
|
||||||
limiter = new Limiter(analysisColl))
|
limiter = limiter)
|
||||||
|
|
||||||
val aiPerfApi = new AiPerfApi
|
val aiPerfApi = new AiPerfApi
|
||||||
|
|
||||||
|
@ -110,6 +115,7 @@ object Env {
|
||||||
lazy val current: Env = "fishnet" boot new Env(
|
lazy val current: Env = "fishnet" boot new Env(
|
||||||
system = lila.common.PlayApp.system,
|
system = lila.common.PlayApp.system,
|
||||||
uciMemo = lila.game.Env.current.uciMemo,
|
uciMemo = lila.game.Env.current.uciMemo,
|
||||||
|
requesterApi = lila.analyse.Env.current.requesterApi,
|
||||||
hub = lila.hub.Env.current,
|
hub = lila.hub.Env.current,
|
||||||
db = lila.db.Env.current,
|
db = lila.db.Env.current,
|
||||||
config = lila.common.PlayApp loadConfig "fishnet",
|
config = lila.common.PlayApp loadConfig "fishnet",
|
||||||
|
|
|
@ -1,12 +1,27 @@
|
||||||
package lila.fishnet
|
package lila.fishnet
|
||||||
|
|
||||||
|
import scala.concurrent.duration._
|
||||||
import reactivemongo.bson._
|
import reactivemongo.bson._
|
||||||
|
|
||||||
import lila.db.dsl.Coll
|
import lila.db.dsl.Coll
|
||||||
|
|
||||||
private final class Limiter(analysisColl: Coll) {
|
private final class Limiter(
|
||||||
|
analysisColl: Coll,
|
||||||
|
requesterApi: lila.analyse.RequesterApi) {
|
||||||
|
|
||||||
def apply(sender: Work.Sender): Fu[Boolean] = sender match {
|
def apply(sender: Work.Sender): Fu[Boolean] =
|
||||||
|
concurrentCheck(sender) flatMap {
|
||||||
|
case false => fuccess(false)
|
||||||
|
case true => perDayCheck(sender)
|
||||||
|
}
|
||||||
|
|
||||||
|
private val RequestLimitPerIP = new lila.memo.RateLimit(
|
||||||
|
credits = 50,
|
||||||
|
duration = 20 hours,
|
||||||
|
name = "request analysis per IP",
|
||||||
|
key = "request_analysis.ip")
|
||||||
|
|
||||||
|
private def concurrentCheck(sender: Work.Sender) = sender match {
|
||||||
case Work.Sender(_, _, mod, system) if (mod || system) => fuccess(true)
|
case Work.Sender(_, _, mod, system) if (mod || system) => fuccess(true)
|
||||||
case Work.Sender(Some(userId), _, _, _) => analysisColl.count(BSONDocument(
|
case Work.Sender(Some(userId), _, _, _) => analysisColl.count(BSONDocument(
|
||||||
"sender.userId" -> userId
|
"sender.userId" -> userId
|
||||||
|
@ -16,4 +31,13 @@ private final class Limiter(analysisColl: Coll) {
|
||||||
).some) map (0 ==)
|
).some) map (0 ==)
|
||||||
case _ => fuccess(false)
|
case _ => fuccess(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private def perDayCheck(sender: Work.Sender) = sender match {
|
||||||
|
case Work.Sender(_, _, mod, system) if (mod || system) => fuccess(true)
|
||||||
|
case Work.Sender(Some(userId), _, _, _) => requesterApi.countToday(userId) map (_ < 25)
|
||||||
|
case Work.Sender(_, Some(ip), _, _) => fuccess {
|
||||||
|
RequestLimitPerIP(ip, cost = 1)(true)
|
||||||
|
}
|
||||||
|
case _ => fuccess(false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ private final class Monitor(
|
||||||
|
|
||||||
private case class AnalysisMeta(time: Int, nodes: Int, nps: Int, depth: Int, pvSize: Int)
|
private case class AnalysisMeta(time: Int, nodes: Int, nps: Int, depth: Int, pvSize: Int)
|
||||||
|
|
||||||
private def sumOf[A](ints: List[A])(f: A => Option[Int]) = ints.foldLeft(0) {
|
private def sumOf[A](items: List[A])(f: A => Option[Int]) = items.foldLeft(0) {
|
||||||
case (acc, a) => acc + f(a).getOrElse(0)
|
case (acc, a) => acc + f(a).getOrElse(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,10 +70,10 @@ sealed abstract class PostRepo(troll: Boolean) {
|
||||||
def sortQuery = $sort.createdAsc
|
def sortQuery = $sort.createdAsc
|
||||||
|
|
||||||
def userIdsByTopicId(topicId: String): Fu[List[String]] =
|
def userIdsByTopicId(topicId: String): Fu[List[String]] =
|
||||||
coll.distinct("userId", $doc("topicId" -> topicId).some) map lila.db.BSON.asStrings
|
coll.distinct[String, List]("userId", $doc("topicId" -> topicId).some)
|
||||||
|
|
||||||
def idsByTopicId(topicId: String): Fu[List[String]] =
|
def idsByTopicId(topicId: String): Fu[List[String]] =
|
||||||
coll.distinct("_id", $doc("topicId" -> topicId).some) map lila.db.BSON.asStrings
|
coll.distinct[String, List]("_id", $doc("topicId" -> topicId).some)
|
||||||
|
|
||||||
import reactivemongo.api.ReadPreference
|
import reactivemongo.api.ReadPreference
|
||||||
def cursor(
|
def cursor(
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package lila.forumSearch
|
package lila.forumSearch
|
||||||
|
|
||||||
|
import reactivemongo.api.Cursor
|
||||||
|
|
||||||
import lila.forum.actorApi._
|
import lila.forum.actorApi._
|
||||||
import lila.forum.{ Post, PostView, PostLiteView, PostApi, PostRepo }
|
import lila.forum.{ Post, PostView, PostLiteView, PostApi, PostRepo }
|
||||||
import lila.search._
|
import lila.search._
|
||||||
|
@ -37,14 +39,15 @@ final class ForumSearchApi(
|
||||||
case c: ESClientHttp => c.putMapping >> {
|
case c: ESClientHttp => c.putMapping >> {
|
||||||
lila.log("forumSearch").info(s"Index to ${c.index.name}")
|
lila.log("forumSearch").info(s"Index to ${c.index.name}")
|
||||||
import lila.db.dsl._
|
import lila.db.dsl._
|
||||||
import play.api.libs.iteratee._
|
|
||||||
PostRepo.cursor($empty).enumerateBulks(Int.MaxValue) |>>>
|
PostRepo.cursor($empty).foldBulksM({}) { (_, posts) =>
|
||||||
Iteratee.foldM[Iterator[Post], Unit](()) {
|
for {
|
||||||
case (_, posts) => (postApi liteViews posts.toList) flatMap { views =>
|
views <- postApi liteViews posts.toList
|
||||||
c.storeBulk(views map (v => Id(v.post.id) -> toDoc(v)))
|
_ <- c.storeBulk(views map (v => Id(v.post.id) -> toDoc(v)))
|
||||||
}
|
} yield Cursor.Cont({})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
case _ => funit
|
case _ => funit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,7 +168,7 @@ object BinaryFormat {
|
||||||
lastMove = for {
|
lastMove = for {
|
||||||
from ← posAt((b1 & 15) >> 1, ((b1 & 1) << 2) + (b2 >> 6))
|
from ← posAt((b1 & 15) >> 1, ((b1 & 1) << 2) + (b2 >> 6))
|
||||||
to ← posAt((b2 & 63) >> 3, b2 & 7)
|
to ← posAt((b2 & 63) >> 3, b2 & 7)
|
||||||
if from != to
|
if from != Pos.A1 || to != Pos.A1
|
||||||
} yield from -> to,
|
} yield from -> to,
|
||||||
lastMoveTime = readInt24(b3, b4, b5).some filter (0 !=),
|
lastMoveTime = readInt24(b3, b4, b5).some filter (0 !=),
|
||||||
check = b6 flatMap { x => posAt(x >> 3, x & 7) })
|
check = b6 flatMap { x => posAt(x >> 3, x & 7) })
|
||||||
|
|
|
@ -191,9 +191,9 @@ object GameRepo {
|
||||||
coll.exists($id(id) ++ Query.analysed(true))
|
coll.exists($id(id) ++ Query.analysed(true))
|
||||||
|
|
||||||
def filterAnalysed(ids: Seq[String]): Fu[Set[String]] =
|
def filterAnalysed(ids: Seq[String]): Fu[Set[String]] =
|
||||||
coll.distinct("_id", ($inIds(ids) ++ $doc(
|
coll.distinct[String, Set]("_id", ($inIds(ids) ++ $doc(
|
||||||
F.analysed -> true
|
F.analysed -> true
|
||||||
)).some) map lila.db.BSON.asStringSet
|
)).some)
|
||||||
|
|
||||||
def exists(id: String) = coll.exists($id(id))
|
def exists(id: String) = coll.exists($id(id))
|
||||||
|
|
||||||
|
@ -247,11 +247,19 @@ object GameRepo {
|
||||||
.uno[Game]
|
.uno[Game]
|
||||||
|
|
||||||
def findRandomFinished(distribution: Int): Fu[Option[Game]] = coll.find(
|
def findRandomFinished(distribution: Int): Fu[Option[Game]] = coll.find(
|
||||||
Query.finished ++ Query.variantStandard ++ Query.turnsMoreThan(10) ++ Query.rated
|
Query.finished ++ Query.variantStandard ++ Query.turnsMoreThan(20) ++ Query.rated
|
||||||
).sort(Query.sortCreated)
|
).sort(Query.sortCreated)
|
||||||
.skip(Random nextInt distribution)
|
.skip(Random nextInt distribution)
|
||||||
.uno[Game]
|
.uno[Game]
|
||||||
|
|
||||||
|
def randomFinished(distribution: Int): Fu[Option[Game]] = coll.find(
|
||||||
|
Query.finished ++ Query.rated ++
|
||||||
|
Query.variantStandard ++ Query.bothRatingsGreaterThan(1600)
|
||||||
|
).sort(Query.sortCreated)
|
||||||
|
.skip(Random nextInt distribution)
|
||||||
|
.cursor[Game](ReadPreference.secondary)
|
||||||
|
.uno
|
||||||
|
|
||||||
def insertDenormalized(g: Game, ratedCheck: Boolean = true, initialFen: Option[chess.format.FEN] = None): Funit = {
|
def insertDenormalized(g: Game, ratedCheck: Boolean = true, initialFen: Option[chess.format.FEN] = None): Funit = {
|
||||||
val g2 = if (ratedCheck && g.rated && g.userIds.distinct.size != 2)
|
val g2 = if (ratedCheck && g.rated && g.userIds.distinct.size != 2)
|
||||||
g.copy(mode = chess.Mode.Casual)
|
g.copy(mode = chess.Mode.Casual)
|
||||||
|
@ -352,7 +360,7 @@ object GameRepo {
|
||||||
Match($doc(F.playerUids -> $doc("$ne" -> userId))),
|
Match($doc(F.playerUids -> $doc("$ne" -> userId))),
|
||||||
GroupField(F.playerUids)("gs" -> SumValue(1)),
|
GroupField(F.playerUids)("gs" -> SumValue(1)),
|
||||||
Sort(Descending("gs")),
|
Sort(Descending("gs")),
|
||||||
Limit(limit))).map(_.documents.flatMap { obj =>
|
Limit(limit))).map(_.firstBatch.flatMap { obj =>
|
||||||
obj.getAs[String]("_id") flatMap { id =>
|
obj.getAs[String]("_id") flatMap { id =>
|
||||||
obj.getAs[Int]("gs") map { id -> _ }
|
obj.getAs[Int]("gs") map { id -> _ }
|
||||||
}
|
}
|
||||||
|
@ -430,7 +438,7 @@ object GameRepo {
|
||||||
)),
|
)),
|
||||||
GroupField(F.playerUids)("nb" -> SumValue(1)),
|
GroupField(F.playerUids)("nb" -> SumValue(1)),
|
||||||
Sort(Descending("nb")),
|
Sort(Descending("nb")),
|
||||||
Limit(max))).map(_.documents.flatMap { obj =>
|
Limit(max))).map(_.firstBatch.flatMap { obj =>
|
||||||
obj.getAs[Int]("nb") map { nb =>
|
obj.getAs[Int]("nb") map { nb =>
|
||||||
UidNb(~obj.getAs[String]("_id"), nb)
|
UidNb(~obj.getAs[String]("_id"), nb)
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ final class PlayTime(gameColl: Coll) {
|
||||||
|
|
||||||
def apply(user: User): Fu[User.PlayTime] = user.playTime match {
|
def apply(user: User): Fu[User.PlayTime] = user.playTime match {
|
||||||
case Some(pt) => fuccess(pt)
|
case Some(pt) => fuccess(pt)
|
||||||
case None => {
|
case _ => {
|
||||||
gameColl
|
gameColl
|
||||||
.find($doc(
|
.find($doc(
|
||||||
Game.BSONFields.playerUids -> user.id,
|
Game.BSONFields.playerUids -> user.id,
|
||||||
|
@ -25,15 +25,13 @@ final class PlayTime(gameColl: Coll) {
|
||||||
moveTimeField -> true,
|
moveTimeField -> true,
|
||||||
tvField -> true
|
tvField -> true
|
||||||
))
|
))
|
||||||
.cursor[Bdoc]()
|
.cursor[Bdoc]().fold(User.PlayTime(0, 0)) { (pt, doc) =>
|
||||||
.enumerate() |>>> (Iteratee.fold(User.PlayTime(0, 0)) {
|
val t = doc.getAs[ByteArray](moveTimeField) ?? { times =>
|
||||||
case (pt, doc) =>
|
BinaryFormat.moveTime.read(times).sum
|
||||||
val t = doc.getAs[ByteArray](moveTimeField) ?? { times =>
|
} / 10
|
||||||
BinaryFormat.moveTime.read(times).sum
|
val isTv = doc.get(tvField).isDefined
|
||||||
} / 10
|
User.PlayTime(pt.total + t, pt.tv + isTv.fold(t, 0))
|
||||||
val isTv = doc.get(tvField).isDefined
|
}
|
||||||
User.PlayTime(pt.total + t, pt.tv + isTv.fold(t, 0))
|
|
||||||
})
|
|
||||||
}.addEffect { UserRepo.setPlayTime(user, _) }
|
}.addEffect { UserRepo.setPlayTime(user, _) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package lila.hub
|
||||||
package actorApi
|
package actorApi
|
||||||
|
|
||||||
import lila.common.LightUser
|
import lila.common.LightUser
|
||||||
|
import org.joda.time.DateTime
|
||||||
|
|
||||||
import play.api.libs.json._
|
import play.api.libs.json._
|
||||||
import play.twirl.api.Html
|
import play.twirl.api.Html
|
||||||
|
@ -199,5 +200,5 @@ case class UnBlock(u1: String, u2: String)
|
||||||
}
|
}
|
||||||
|
|
||||||
package plan {
|
package plan {
|
||||||
case class ChargeEvent(username: String, amount: Int, percent: Int)
|
case class ChargeEvent(username: String, amount: Int, percent: Int, date: DateTime)
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Checkmates
|
||||||
nbBookmarks=%s Bookmarks
|
nbBookmarks=%s Bookmarks
|
||||||
nbPopularGames=%s Popular games
|
nbPopularGames=%s Popular games
|
||||||
nbAnalysedGames=%s Analysed games
|
nbAnalysedGames=%s Analysed games
|
||||||
bookmarkedByNbPlayers=Bookmarked by %s players
|
|
||||||
viewInFullSize=View in full size
|
viewInFullSize=View in full size
|
||||||
logOut=Sign out
|
logOut=Sign out
|
||||||
signIn=Sign in
|
signIn=Sign in
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Sien %s skaakmat spelle
|
||||||
nbBookmarks=%s Bookmerke
|
nbBookmarks=%s Bookmerke
|
||||||
nbPopularGames=%s Gewilde spelle
|
nbPopularGames=%s Gewilde spelle
|
||||||
nbAnalysedGames=%s Spelle ontleed
|
nbAnalysedGames=%s Spelle ontleed
|
||||||
bookmarkedByNbPlayers=Deur %s spelers geboekmerk
|
|
||||||
viewInFullSize=Sien vol-grootte
|
viewInFullSize=Sien vol-grootte
|
||||||
logOut=Teken uit
|
logOut=Teken uit
|
||||||
signIn=Teken in
|
signIn=Teken in
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s لعبة منتهية بكش مات
|
||||||
nbBookmarks=%s اللعبات المفضلة
|
nbBookmarks=%s اللعبات المفضلة
|
||||||
nbPopularGames=%s مباريات رائجة
|
nbPopularGames=%s مباريات رائجة
|
||||||
nbAnalysedGames=%s مباريات محللة بالحاسب
|
nbAnalysedGames=%s مباريات محللة بالحاسب
|
||||||
bookmarkedByNbPlayers=فضلها %s لاعب
|
|
||||||
viewInFullSize=عرض بالحجم الكامل
|
viewInFullSize=عرض بالحجم الكامل
|
||||||
logOut=خروج
|
logOut=خروج
|
||||||
signIn=دخول
|
signIn=دخول
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s mat edilmiş oyunlar
|
||||||
nbBookmarks=%s nişan edilmiş oyun
|
nbBookmarks=%s nişan edilmiş oyun
|
||||||
nbPopularGames=%s populyar oyunlar
|
nbPopularGames=%s populyar oyunlar
|
||||||
nbAnalysedGames=%s təhlil olunmuş oyun
|
nbAnalysedGames=%s təhlil olunmuş oyun
|
||||||
bookmarkedByNbPlayers=%s oyunçu tərəfindən nişanlanıb
|
|
||||||
viewInFullSize=Tam görünüşlə bax
|
viewInFullSize=Tam görünüşlə bax
|
||||||
logOut=Xətdən çıx
|
logOut=Xətdən çıx
|
||||||
signIn=Xəttə bağlan
|
signIn=Xəttə bağlan
|
||||||
|
|
|
@ -59,7 +59,6 @@ viewNbCheckmates=Глядзець %s маты
|
||||||
nbBookmarks=%s Закладкі
|
nbBookmarks=%s Закладкі
|
||||||
nbPopularGames=%s Папулярныя гульні
|
nbPopularGames=%s Папулярныя гульні
|
||||||
nbAnalysedGames=%s Прааналізаваных гульняў
|
nbAnalysedGames=%s Прааналізаваных гульняў
|
||||||
bookmarkedByNbPlayers=Дададзена ў закладкі %s гульцамі
|
|
||||||
viewInFullSize=Глядзець у поўным памеры
|
viewInFullSize=Глядзець у поўным памеры
|
||||||
logOut=Выйсьці
|
logOut=Выйсьці
|
||||||
signIn=Увайсьці
|
signIn=Увайсьці
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Виж %s шах мата
|
||||||
nbBookmarks=%s Отбелязани
|
nbBookmarks=%s Отбелязани
|
||||||
nbPopularGames=%s Известни игри
|
nbPopularGames=%s Известни игри
|
||||||
nbAnalysedGames=%s Проучени игри
|
nbAnalysedGames=%s Проучени игри
|
||||||
bookmarkedByNbPlayers=Отбелязана от %s играчи
|
|
||||||
viewInFullSize=Гледай на пълен екран
|
viewInFullSize=Гледай на пълен екран
|
||||||
logOut=Излез
|
logOut=Излез
|
||||||
signIn=Влез
|
signIn=Влез
|
||||||
|
|
|
@ -59,7 +59,6 @@ viewNbCheckmates=%s টি কিস্তিমাত
|
||||||
nbBookmarks=%s টি বুকমার্ক
|
nbBookmarks=%s টি বুকমার্ক
|
||||||
nbPopularGames=%s টি জনপ্রিয় খেলা
|
nbPopularGames=%s টি জনপ্রিয় খেলা
|
||||||
nbAnalysedGames=%s টি বিশ্লেষিত খেলা
|
nbAnalysedGames=%s টি বিশ্লেষিত খেলা
|
||||||
bookmarkedByNbPlayers=%s জন খেলোয়াড় খেলাটিকে Bookmark করেছেন
|
|
||||||
viewInFullSize=পূর্ণ আকারে দেখুন
|
viewInFullSize=পূর্ণ আকারে দেখুন
|
||||||
logOut=প্রস্থান
|
logOut=প্রস্থান
|
||||||
signIn=সাইন ইন
|
signIn=সাইন ইন
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
playWithAFriend=Igrajte protiv prijatelja
|
playWithAFriend=Igrajte protiv prijatelja
|
||||||
playWithTheMachine=Igrajte protiv računara
|
playWithTheMachine=Igrajte protiv računara
|
||||||
toInviteSomeoneToPlayGiveThisUrl=Za poziv u igru pošaljite ovu adresu
|
toInviteSomeoneToPlayGiveThisUrl=Za poziv u igru pošaljite ovaj link
|
||||||
gameOver=Partija je gotova
|
gameOver=Partija je gotova
|
||||||
waitingForOpponent=Čekanje na protivnika
|
waitingForOpponent=Čekanje na protivnika
|
||||||
waiting=Protivnik na potezu
|
waiting=Čekanje
|
||||||
yourTurn=Vi ste na potezu
|
yourTurn=Vi ste na potezu
|
||||||
aiNameLevelAiLevel=%s Razina %s
|
aiNameLevelAiLevel=%s nivo %s
|
||||||
level=Razina
|
level=Nivo
|
||||||
toggleTheChat=Uključite/isključite dopisivanje
|
toggleTheChat=Uključite/isključite dopisivanje
|
||||||
toggleSound=Uključite/isključite zvuk
|
toggleSound=Uključite/isključite zvuk
|
||||||
chat=Dopisivanje
|
chat=Dopisivanje
|
||||||
resign=Predaja
|
resign=Predaja
|
||||||
checkmate=Mat
|
checkmate=Šah-mat
|
||||||
stalemate=Pat
|
stalemate=Pat
|
||||||
white=Bijeli
|
white=Bijeli
|
||||||
black=Crni
|
black=Crni
|
||||||
|
@ -21,19 +21,19 @@ whiteIsVictorious=Bijeli je pobjednik
|
||||||
blackIsVictorious=Crni je pobjednik
|
blackIsVictorious=Crni je pobjednik
|
||||||
kingInTheCenter=Kralj u centru
|
kingInTheCenter=Kralj u centru
|
||||||
threeChecks=Tri šaha
|
threeChecks=Tri šaha
|
||||||
raceFinished=Trka je zavrsena
|
raceFinished=Trka je završena
|
||||||
variantEnding=Varianta završnice
|
variantEnding=Varijanta završnice
|
||||||
newOpponent=Novi protivnik
|
newOpponent=Novi protivnik
|
||||||
yourOpponentWantsToPlayANewGameWithYou=Vaš protivnik želi revanš
|
yourOpponentWantsToPlayANewGameWithYou=Vaš protivnik želi revanš
|
||||||
joinTheGame=Pridružite se partiji
|
joinTheGame=Pridružite se partiji
|
||||||
whitePlays=Bijeli na potezu
|
whitePlays=Bijeli na potezu
|
||||||
blackPlays=Crni na potezu
|
blackPlays=Crni na potezu
|
||||||
theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Vaš protivnik možda je napustio partiju. Možete proglasiti pobjedu ili čekati.
|
theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Vaš protivnik je možda napustio partiju. Možete proglasiti pobjedu ili čekati.
|
||||||
makeYourOpponentResign=Tražite da protivnik preda
|
makeYourOpponentResign=Tražite da protivnik preda
|
||||||
forceResignation=Proglasite pobjedu
|
forceResignation=Proglasite pobjedu
|
||||||
forceDraw=Proglasite remi
|
forceDraw=Proglasite remi
|
||||||
talkInChat=Dopisujte se
|
talkInChat=Dopisujte se
|
||||||
theFirstPersonToComeOnThisUrlWillPlayWithYou=Prva osoba koja se pojavi na ovoj adresi igrat će protiv Vas.
|
theFirstPersonToComeOnThisUrlWillPlayWithYou=Prva osoba koja se pojavi na ovom linku igrat će protiv Vas.
|
||||||
whiteResigned=Bijeli je predao
|
whiteResigned=Bijeli je predao
|
||||||
blackResigned=Crni je predao
|
blackResigned=Crni je predao
|
||||||
whiteLeftTheGame=Bijeli je napustio partiju
|
whiteLeftTheGame=Bijeli je napustio partiju
|
||||||
|
@ -41,43 +41,42 @@ blackLeftTheGame=Crni je napustio partiju
|
||||||
shareThisUrlToLetSpectatorsSeeTheGame=Podijelite ovaj link kako bi drugi mogli vidjeti partiju
|
shareThisUrlToLetSpectatorsSeeTheGame=Podijelite ovaj link kako bi drugi mogli vidjeti partiju
|
||||||
theComputerAnalysisHasFailed=Računarska analiza nije uspjela
|
theComputerAnalysisHasFailed=Računarska analiza nije uspjela
|
||||||
viewTheComputerAnalysis=Pogledajte računarsku analizu
|
viewTheComputerAnalysis=Pogledajte računarsku analizu
|
||||||
requestAComputerAnalysis=Zahtijevajte računarsku analizu
|
requestAComputerAnalysis=Zatražite računarsku analizu
|
||||||
computerAnalysis=Računarska analiza
|
computerAnalysis=Računarska analiza
|
||||||
analysis=Analiza
|
analysis=Ploča za analizu
|
||||||
blunders=Grubi previdi
|
blunders=Grubi previdi
|
||||||
mistakes=Greške
|
mistakes=Greške
|
||||||
inaccuracies=Nepreciznosti
|
inaccuracies=Nepreciznosti
|
||||||
moveTimes=Vrijeme za potez
|
moveTimes=Vremena za potez
|
||||||
flipBoard=Okrenite tablu
|
flipBoard=Okrenite tablu
|
||||||
threefoldRepetition=Trostruko ponavljanje
|
threefoldRepetition=Trostruko ponavljanje
|
||||||
claimADraw=Proglasite remi
|
claimADraw=Proglasite remi
|
||||||
offerDraw=Ponudite remi
|
offerDraw=Ponudite remi
|
||||||
draw=Remi
|
draw=Remi
|
||||||
nbConnectedPlayers=%s prisutnih igrača
|
nbConnectedPlayers=%s igrača
|
||||||
gamesBeingPlayedRightNow=Trenutne partije
|
gamesBeingPlayedRightNow=Trenutne partije
|
||||||
viewAllNbGames=%s partija
|
viewAllNbGames=%s partija
|
||||||
viewNbCheckmates=%s matova
|
viewNbCheckmates=%s matova
|
||||||
nbBookmarks=%s zabilježenih partija
|
nbBookmarks=%s zabilježenih partija
|
||||||
nbPopularGames=%s popularnih partija
|
nbPopularGames=%s popularnih partija
|
||||||
nbAnalysedGames=%s analiziranih partija
|
nbAnalysedGames=%s analiziranih partija
|
||||||
bookmarkedByNbPlayers=Partiju je zabilježilo %s protivnika
|
|
||||||
viewInFullSize=Pogledajte u punoj veličini
|
viewInFullSize=Pogledajte u punoj veličini
|
||||||
logOut=Odjava
|
logOut=Odjava
|
||||||
signIn=Prijava
|
signIn=Prijava
|
||||||
newToLichess=Novi na Lichessu?
|
newToLichess=Novi na Lichessu?
|
||||||
youNeedAnAccountToDoThat=Treba Vam račun da biste to uradili
|
youNeedAnAccountToDoThat=Treba Vam račun da biste to uradili
|
||||||
signUp=Registrirajte se
|
signUp=Registrirajte se
|
||||||
computersAreNotAllowedToPlay=Računarima i igračima koji koriste pomoć računara nije dozvoljeno igrati. Molimo Vas da ne koristite pomoć šahovskih programa, baza podataka ili drugih igrača dok igrate.Takodje koristenje vise racuna vodi do toga da cete biti iskljuceni.
|
computersAreNotAllowedToPlay=Računarima i igračima koji koriste pomoć računara nije dozvoljeno igrati. Molimo Vas da ne koristite pomoć šahovskih programa, baza podataka ili drugih igrača dok igrate.Također, korištenje više računa vodi blokadi računa.
|
||||||
games=Partije
|
games=Partije
|
||||||
forum=Forum
|
forum=Forum
|
||||||
xPostedInForumY=%s objavio u forumu %s
|
xPostedInForumY=%s je pisao na forumskoj temi %s
|
||||||
latestForumPosts=Posljednja poruka na forumu
|
latestForumPosts=Zadnje poruke na forumu
|
||||||
players=Igrači
|
players=Igrači
|
||||||
minutesPerSide=Minuta po igraču
|
minutesPerSide=Minuta po igraču
|
||||||
variant=Varijanta
|
variant=Varijanta
|
||||||
variants=Varijante
|
variants=Varijante
|
||||||
timeControl=Vremenska kontrola
|
timeControl=Vremenska kontrola
|
||||||
realTime=Stvarno Vrijeme
|
realTime=Stvarno vrijeme
|
||||||
correspondence=Dopisni šah
|
correspondence=Dopisni šah
|
||||||
daysPerTurn=Dana po potezu
|
daysPerTurn=Dana po potezu
|
||||||
oneDay=Jedan dan
|
oneDay=Jedan dan
|
||||||
|
@ -85,17 +84,17 @@ nbDays=%s dana
|
||||||
nbHours=%s sati
|
nbHours=%s sati
|
||||||
time=Vrijeme
|
time=Vrijeme
|
||||||
rating=Rejting
|
rating=Rejting
|
||||||
ratingStats=Rejting pozicija
|
ratingStats=Statistike rejtinga
|
||||||
username=Korisničko ime
|
username=Korisničko ime
|
||||||
usernameOrEmail=Korisničko ime
|
usernameOrEmail=Korisničko ime
|
||||||
password=Lozinka
|
password=Lozinka
|
||||||
haveAnAccount=Već imate račun?
|
haveAnAccount=Već imate račun?
|
||||||
changePassword=Promijeni lozinku
|
changePassword=Promjena lozinke
|
||||||
changeEmail=Promijeni e-Mail
|
changeEmail=Promjena e-maila
|
||||||
email=e-Mail
|
email=E-mail
|
||||||
emailIsOptional=e-Mail je neoavezan. Lichess ce je koristiti da resetuje vasu Lozinku ako je zaboravite.
|
emailIsOptional=E-mail nije obavezan. Lichess će ga koristiti da povrati Vašu lozinku ako je zaboravite.
|
||||||
passwordReset=resetuj lozinku
|
passwordReset=Resetovanje lozinke
|
||||||
forgotPassword=Zaboravio si lozinku ?
|
forgotPassword=Zaboravljena lozinka?
|
||||||
rank=Poredak
|
rank=Poredak
|
||||||
gamesPlayed=Broj odigranih partija
|
gamesPlayed=Broj odigranih partija
|
||||||
nbGamesWithYou=%s odigranih partija protiv Vas
|
nbGamesWithYou=%s odigranih partija protiv Vas
|
||||||
|
@ -106,9 +105,9 @@ drawOfferSent=Ponuda za remi poslana
|
||||||
drawOfferDeclined=Ponuda za remi odbijena
|
drawOfferDeclined=Ponuda za remi odbijena
|
||||||
drawOfferAccepted=Ponuda za remi prihvaćena
|
drawOfferAccepted=Ponuda za remi prihvaćena
|
||||||
drawOfferCanceled=Ponuda za remi povučena
|
drawOfferCanceled=Ponuda za remi povučena
|
||||||
whiteOffersDraw=Beli nudi remi
|
whiteOffersDraw=Bijeli nudi remi
|
||||||
blackOffersDraw=Crni nudi remi
|
blackOffersDraw=Crni nudi remi
|
||||||
whiteDeclinesDraw=Beli odbija ponudu za remi
|
whiteDeclinesDraw=Bijeli odbija ponudu za remi
|
||||||
blackDeclinesDraw=Crni odbija ponudu za remi
|
blackDeclinesDraw=Crni odbija ponudu za remi
|
||||||
yourOpponentOffersADraw=Protivnik nudi remi
|
yourOpponentOffersADraw=Protivnik nudi remi
|
||||||
accept=Prihvatite
|
accept=Prihvatite
|
||||||
|
@ -140,8 +139,8 @@ subject=Predmet
|
||||||
recipient=Primalac
|
recipient=Primalac
|
||||||
send=Pošaljite
|
send=Pošaljite
|
||||||
incrementInSeconds=Dodatnih sekundi po potezu
|
incrementInSeconds=Dodatnih sekundi po potezu
|
||||||
freeOnlineChess=Besplatni internet-šah
|
freeOnlineChess=Besplatni internetski šah
|
||||||
spectators=Posmatrača
|
spectators=Posmatrača:
|
||||||
nbWins=%s pobjeda
|
nbWins=%s pobjeda
|
||||||
nbLosses=%s poraza
|
nbLosses=%s poraza
|
||||||
nbDraws=%s remija
|
nbDraws=%s remija
|
||||||
|
@ -149,17 +148,17 @@ exportGames=Izvezite odigrane partije
|
||||||
ratingRange=Raspon rejtinga
|
ratingRange=Raspon rejtinga
|
||||||
giveNbSeconds=Dajte protivniku %s sekundi
|
giveNbSeconds=Dajte protivniku %s sekundi
|
||||||
premoveEnabledClickAnywhereToCancel=Potez unaprijed uključen - Kliknite bilo gdje da otkažete
|
premoveEnabledClickAnywhereToCancel=Potez unaprijed uključen - Kliknite bilo gdje da otkažete
|
||||||
thisPlayerUsesChessComputerAssistance=Ovaj igrač koristi šahovski računar za pomoć
|
thisPlayerUsesChessComputerAssistance=Ovaj igrač koristi pomoć šahovskog programa
|
||||||
thisPlayerArtificiallyIncreasesTheirRating=Ovaj igrač umjetno diže/spušta svoj rejting
|
thisPlayerArtificiallyIncreasesTheirRating=Ovaj igrač umjetno diže/spušta svoj rejting
|
||||||
opening=Otvaranje
|
opening=Otvaranje
|
||||||
openingExplorer=Pretraživač otvaranja
|
openingExplorer=Pretraživač otvaranja
|
||||||
takeback=Vratite potez
|
takeback=Vratite potez
|
||||||
proposeATakeback=Predložite vraćanje poteza
|
proposeATakeback=Predložite vraćanje poteza
|
||||||
takebackPropositionSent=Prijedlog za vračanje poteza poslan
|
takebackPropositionSent=Prijedlog za vraćanje poteza poslat
|
||||||
takebackPropositionDeclined=Prijedlog za vraćanje poteza odbijen
|
takebackPropositionDeclined=Prijedlog za vraćanje poteza odbijen
|
||||||
takebackPropositionAccepted=Prijedlog za vraćanje poteza prihvaćen
|
takebackPropositionAccepted=Prijedlog za vraćanje poteza prihvaćen
|
||||||
takebackPropositionCanceled=Prijedlog za vraćanje poteza otkazan
|
takebackPropositionCanceled=Prijedlog za vraćanje poteza otkazan
|
||||||
yourOpponentProposesATakeback=Vaš protivnik predlaže da vratite potez
|
yourOpponentProposesATakeback=Vaš protivnik predlaže vraćanje poteza
|
||||||
bookmarkThisGame=Zabilježite partiju
|
bookmarkThisGame=Zabilježite partiju
|
||||||
search=Traži
|
search=Traži
|
||||||
advancedSearch=Napredna pretraga
|
advancedSearch=Napredna pretraga
|
||||||
|
@ -169,7 +168,7 @@ tournamentPoints=Bodovi na turniru
|
||||||
viewTournament=Pogledajte turnir
|
viewTournament=Pogledajte turnir
|
||||||
backToTournament=Vratite se na turnir
|
backToTournament=Vratite se na turnir
|
||||||
backToGame=Vrati se igri
|
backToGame=Vrati se igri
|
||||||
freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Besplatni internet-šah. Igrajte šah sa čistim interfejsom. Registracija nije neophodna, nema reklama, ne zahtijevaju se priključci za preglednik. Igrajte protiv računara, prijatelja ili slučajnih protivnika.
|
freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Besplatni internetski šah. Igrajte šah s čistim interfejsom. Registracija nije obavezna, nema reklama, ne zahtijevaju se dodaci za preglednik. Igrajte protiv računara, prijatelja ili slučajnih protivnika.
|
||||||
teams=Ekipe
|
teams=Ekipe
|
||||||
nbMembers=%s članova
|
nbMembers=%s članova
|
||||||
allTeams=Sve ekipe
|
allTeams=Sve ekipe
|
||||||
|
@ -184,13 +183,13 @@ joiningPolicy=Postavke pridruživanja
|
||||||
teamLeader=Vođa ekipe
|
teamLeader=Vođa ekipe
|
||||||
teamBestPlayers=Najbolji igrači
|
teamBestPlayers=Najbolji igrači
|
||||||
teamRecentMembers=Najnoviji članovi
|
teamRecentMembers=Najnoviji članovi
|
||||||
xJoinedTeamY=%s pridružio se ekipi %s
|
xJoinedTeamY=%s se pridružio ekipi %s
|
||||||
xCreatedTeamY=%s je sastavio ekipu %s
|
xCreatedTeamY=%s je sastavio ekipu %s
|
||||||
averageElo=Prosječni rejting
|
averageElo=Prosječni rejting
|
||||||
location=Lokacija
|
location=Lokacija
|
||||||
settings=Postavke
|
settings=Postavke
|
||||||
filterGames=Filtriraj partije
|
filterGames=Filtriraj partije
|
||||||
reset=Resetirajte
|
reset=Resetujte
|
||||||
apply=Primijenite
|
apply=Primijenite
|
||||||
leaderboard=Ljestvica vodećih
|
leaderboard=Ljestvica vodećih
|
||||||
pasteTheFenStringHere=Zalijepite FEN kod ovdje
|
pasteTheFenStringHere=Zalijepite FEN kod ovdje
|
||||||
|
@ -214,23 +213,23 @@ following=Pratite igrača
|
||||||
unfollow=Prekinite praćenje
|
unfollow=Prekinite praćenje
|
||||||
block=Blokirajte
|
block=Blokirajte
|
||||||
blocked=Blokiran
|
blocked=Blokiran
|
||||||
unblock=Odblokiraj
|
unblock=Deblokiraj
|
||||||
followsYou=Prati vas
|
followsYou=Prati vas
|
||||||
xStartedFollowingY=%s je počeo pratiti %s
|
xStartedFollowingY=%s je počeo pratiti %s
|
||||||
nbFollowers=%s pratilaca
|
nbFollowers=%s pratilaca
|
||||||
nbFollowing=%s prati
|
nbFollowing=%s prati
|
||||||
more=Više
|
more=Više
|
||||||
memberSince=Član od
|
memberSince=Član od
|
||||||
lastSeenActive=Posljednje prijavljivanje %s
|
lastSeenActive=Zadnja aktivnost %s
|
||||||
challengeToPlay=Izazovite
|
challengeToPlay=Izazovite na partiju
|
||||||
player=Igrač
|
player=Igrač
|
||||||
list=Spisak
|
list=Spisak
|
||||||
graph=Grafikon
|
graph=Grafikon
|
||||||
lessThanNbMinutes=manje od %s minuta
|
lessThanNbMinutes=manje od %s minuta
|
||||||
xToYMinutes=%s do %s minuta
|
xToYMinutes=%s do %s minuta
|
||||||
textIsTooShort=Tekst je prekratak
|
textIsTooShort=Tekst je prekratak.
|
||||||
textIsTooLong=Tekst je predug
|
textIsTooLong=Tekst je predug.
|
||||||
required=Potrebno
|
required=Potrebno.
|
||||||
openTournaments=Otvoreni turniri
|
openTournaments=Otvoreni turniri
|
||||||
duration=Trajanje
|
duration=Trajanje
|
||||||
winner=Pobjednik
|
winner=Pobjednik
|
||||||
|
@ -245,7 +244,7 @@ winStreak=Uzastopne pobjede
|
||||||
createdBy=Kreirao
|
createdBy=Kreirao
|
||||||
tournamentIsStarting=Turnir počinje
|
tournamentIsStarting=Turnir počinje
|
||||||
membersOnly=Samo članovi
|
membersOnly=Samo članovi
|
||||||
boardEditor=Namjestite početnu poziciju
|
boardEditor=Namjestite poziciju
|
||||||
startPosition=Početna pozicija
|
startPosition=Početna pozicija
|
||||||
clearBoard=Očistite tablu
|
clearBoard=Očistite tablu
|
||||||
savePosition=Sačuvajte poziciju
|
savePosition=Sačuvajte poziciju
|
||||||
|
@ -258,21 +257,21 @@ firstName=Ime
|
||||||
lastName=Prezime
|
lastName=Prezime
|
||||||
biography=Biografija
|
biography=Biografija
|
||||||
country=Država
|
country=Država
|
||||||
preferences=Vlastita podešavanja
|
preferences=Postavke
|
||||||
watchLichessTV=Gledajte Lichess TV
|
watchLichessTV=Gledajte Lichess TV
|
||||||
previouslyOnLichessTV=Prethodno na Lichess TV-u
|
previouslyOnLichessTV=Prethodno na Lichess TV-u
|
||||||
onlinePlayers=Prisutni igrači
|
onlinePlayers=Prisutni igrači
|
||||||
activeToday=Aktivni danas
|
activeToday=Aktivni danas
|
||||||
activePlayers=Aktivni Igrači
|
activePlayers=Aktivni igrači
|
||||||
bewareTheGameIsRatedButHasNoClock=Pažnja: partija je rangirana, ali bez sata!
|
bewareTheGameIsRatedButHasNoClock=Pažnja: partija je rangirana, ali bez sata!
|
||||||
training=Vježba
|
training=Trening
|
||||||
yourPuzzleRatingX=Vaš rejting u problemima: %s
|
yourPuzzleRatingX=Vaš rejting u problemima: %s
|
||||||
findTheBestMoveForWhite=Pronadji najbolji potez za Bijelog
|
findTheBestMoveForWhite=Pronađi najbolji potez za bijelog
|
||||||
findTheBestMoveForBlack=Pronadji najbolji potez za Crnog
|
findTheBestMoveForBlack=Pronađi najbolji potez za crnog
|
||||||
toTrackYourProgress=Da pratite napredak:
|
toTrackYourProgress=Da pratite napredak:
|
||||||
trainingSignupExplanation=Lichess će zadavati probleme koji odgovaraju Vašim mogućnostima da vježba bude bolja i uspješnija.
|
trainingSignupExplanation=Lichess će zadavati probleme koji odgovaraju Vašim mogućnostima da vježba bude bolja i uspješnija.
|
||||||
recentlyPlayedPuzzles=Nedavno rješavani problemi
|
recentlyPlayedPuzzles=Nedavno rješavani problemi
|
||||||
puzzleId=Vježba %s
|
puzzleId=Problem %s
|
||||||
puzzleOfTheDay=Problem dana
|
puzzleOfTheDay=Problem dana
|
||||||
clickToSolve=Kliknite za rješenje
|
clickToSolve=Kliknite za rješenje
|
||||||
goodMove=Dobar potez
|
goodMove=Dobar potez
|
||||||
|
@ -285,19 +284,19 @@ victory=Pobjeda!
|
||||||
giveUp=Predajte se
|
giveUp=Predajte se
|
||||||
puzzleSolvedInXSeconds=Problem riješen za %s sekundi
|
puzzleSolvedInXSeconds=Problem riješen za %s sekundi
|
||||||
wasThisPuzzleAnyGood=Da li je ovaj problem bio dobar?
|
wasThisPuzzleAnyGood=Da li je ovaj problem bio dobar?
|
||||||
pleaseVotePuzzle=Pomozi da se Lichess poboljša, koristeći strelice gore/dolje
|
pleaseVotePuzzle=Pomozi da se Lichess poboljša, koristeći strelice gore/dolje:
|
||||||
thankYou=Hvala!
|
thankYou=Hvala!
|
||||||
ratingX=Rejting: %s
|
ratingX=Rejting: %s
|
||||||
playedXTimes=Odigrano %s puta
|
playedXTimes=Odigrano %s puta
|
||||||
fromGameLink=Iz partije %s
|
fromGameLink=Iz partije %s
|
||||||
startTraining=Počnite vježbu
|
startTraining=Počnite trening
|
||||||
continueTraining=Nastavite vježbu
|
continueTraining=Nastavite trening
|
||||||
retryThisPuzzle=Pokušajte ponovo
|
retryThisPuzzle=Pokušajte ponovo ovaj problem
|
||||||
thisPuzzleIsCorrect=Ovaj problem je ispravan i zanimljiv
|
thisPuzzleIsCorrect=Ovaj problem je ispravan i zanimljiv
|
||||||
thisPuzzleIsWrong=Ovaj problem je neispravan ili dosadan
|
thisPuzzleIsWrong=Ovaj problem je neispravan ili dosadan
|
||||||
youHaveNbSecondsToMakeYourFirstMove=Imate %s sekundi da načinite vaš prvi potez!
|
youHaveNbSecondsToMakeYourFirstMove=Imate %s sekundi da načinite vaš prvi potez!
|
||||||
nbGamesInPlay=odigrano %s partija
|
nbGamesInPlay=odigrano %s partija
|
||||||
automaticallyProceedToNextGameAfterMoving=Automatski prebaci na sljedecu partiju poslije odigranog poteza
|
automaticallyProceedToNextGameAfterMoving=Automatski prebaci na sljedeću partiju poslije odigranog poteza
|
||||||
autoSwitch=Automatski prebaci
|
autoSwitch=Automatski prebaci
|
||||||
openingId=Otvaranje %s
|
openingId=Otvaranje %s
|
||||||
yourOpeningRatingX=Vaš rejting u otvaranju %s
|
yourOpeningRatingX=Vaš rejting u otvaranju %s
|
||||||
|
@ -334,7 +333,7 @@ cheat=Varanje
|
||||||
insult=Uvreda
|
insult=Uvreda
|
||||||
troll=Mamljenje
|
troll=Mamljenje
|
||||||
other=Ostalo
|
other=Ostalo
|
||||||
reportDescriptionHelp=Zalijepiti link za igru (e) i objasniti šta je pogrešno u ponašanju ovog korisnika.
|
reportDescriptionHelp=Zalijepiti link za igru(e) i objasniti šta je pogrešno u ponašanju ovog korisnika. Nemojte pisati samo "ovaj vara", nego nam reci kako si došao do ovog zaključka. Vaš iskaz će biti brže riješen ako pišete na engleskom jeziku.
|
||||||
by=od %s
|
by=od %s
|
||||||
thisTopicIsNowClosed=Ova tema je sada zatvorena.
|
thisTopicIsNowClosed=Ova tema je sada zatvorena.
|
||||||
theming=Izgled
|
theming=Izgled
|
||||||
|
@ -342,32 +341,32 @@ donate=Donacija
|
||||||
blog=Blog
|
blog=Blog
|
||||||
questionsAndAnswers=Pitanja i odgovori
|
questionsAndAnswers=Pitanja i odgovori
|
||||||
notes=Bilješke
|
notes=Bilješke
|
||||||
typePrivateNotesHere=Ovdje upiši ličnu bilješku
|
typePrivateNotesHere=Ovdje upiši privatnu bilješku
|
||||||
gameDisplay=Prikaz igre
|
gameDisplay=Prikaz igre
|
||||||
pieceAnimation=Animacija figura
|
pieceAnimation=Animacija figura
|
||||||
materialDifference=Razlika materijala
|
materialDifference=Razlika materijala
|
||||||
closeAccount=Zatvorite račun
|
closeAccount=Zatvorite račun
|
||||||
closeYourAccount=Zatvorite Vaš račun
|
closeYourAccount=Zatvorite Vaš račun
|
||||||
changedMindDoNotCloseAccount=Predomislio sam se, nemoj zatvoriti moj račun
|
changedMindDoNotCloseAccount=Predomislio sam se, nemojte zatvoriti moj račun
|
||||||
closeAccountExplanation=Jesi li siguran da želiš zatvoriti račun? Ova odluka je stalna. Poslje toga tvoj profil neče više biti dostupan.
|
closeAccountExplanation=Jeste li sigurni da želite zatvoriti račun? Ova odluka je konačna. Poslije toga Vaš profil neće više biti dostupan.
|
||||||
thisAccountIsClosed=Ovaj račun je zatvoren.
|
thisAccountIsClosed=Ovaj račun je zatvoren.
|
||||||
invalidUsernameOrPassword=Pogreško korisničko ime ili lozinka.
|
invalidUsernameOrPassword=Pogreško korisničko ime ili lozinka.
|
||||||
emailMeALink=Šalji link
|
emailMeALink=Pošalji link preko e-maila
|
||||||
currentPassword=Trenutna lozinka.
|
currentPassword=Trenutna lozinka.
|
||||||
newPassword=Nova lozinka
|
newPassword=Nova lozinka
|
||||||
newPasswordAgain=Nova lozinka (ponovo)
|
newPasswordAgain=Nova lozinka (ponovo)
|
||||||
boardHighlights=Zanimljivosti na Ploci (zadnja poteza i šah)
|
boardHighlights=Zanimljivosti na ploči (zadnji potez i šah)
|
||||||
pieceDestinations=Dostupna polja (moguče poteze)
|
pieceDestinations=Dostupna polja (mogući potezi i predpotezi)
|
||||||
boardCoordinates=Koordinate na ploci (A-H, 1-8)
|
boardCoordinates=Koordinate na ploči (A-H, 1-8)
|
||||||
moveListWhilePlaying=Lista poteza u igri
|
moveListWhilePlaying=Lista poteza u igri
|
||||||
chessClock=Šahovski sat
|
chessClock=Šahovski sat
|
||||||
tenthsOfSeconds=Desetinke sekunde
|
tenthsOfSeconds=Desetinke sekunde
|
||||||
never=Nikada
|
never=Nikada
|
||||||
whenTimeRemainingLessThanTenSeconds=Kada je vremena < 10 sekundi
|
whenTimeRemainingLessThanTenSeconds=Kada je ostalo < 10 sekundi
|
||||||
horizontalGreenProgressBars=Horizontalna zelena linija
|
horizontalGreenProgressBars=Horizontalna zelena linija napretka
|
||||||
soundWhenTimeGetsCritical=Audio opozorenje kada nema više vremena
|
soundWhenTimeGetsCritical=Zvučno opozorenje pri kraju vremena
|
||||||
gameBehavior=Ponašanje igre
|
gameBehavior=Ponašanje igre
|
||||||
premovesPlayingDuringOpponentTurn=Pred-potezi (igranje prilikom protivnikovog poteza)
|
premovesPlayingDuringOpponentTurn=Predpotezi (igranje prilikom protivnikovog poteza)
|
||||||
takebacksWithOpponentApproval=Povrat poteza (uz odobrenje protivnika)
|
takebacksWithOpponentApproval=Povrat poteza (uz odobrenje protivnika)
|
||||||
promoteToQueenAutomatically=Automatska zamjena za kraljicu
|
promoteToQueenAutomatically=Automatska zamjena za kraljicu
|
||||||
claimDrawOnThreefoldRepetitionAutomatically=Prihvati remi %strostruko ponavljanje%s automatski
|
claimDrawOnThreefoldRepetitionAutomatically=Prihvati remi %strostruko ponavljanje%s automatski
|
||||||
|
@ -376,19 +375,19 @@ letOtherPlayersFollowYou=Dopustite da vas drugi igrači prate
|
||||||
letOtherPlayersChallengeYou=Dopustite da vas drugi igrači izazovu
|
letOtherPlayersChallengeYou=Dopustite da vas drugi igrači izazovu
|
||||||
sound=Zvuk
|
sound=Zvuk
|
||||||
soundControlInTheTopBarOfEveryPage=Kontrola za zvuk je pri vrhu svake stranice, na desnoj strani
|
soundControlInTheTopBarOfEveryPage=Kontrola za zvuk je pri vrhu svake stranice, na desnoj strani
|
||||||
yourPreferencesHaveBeenSaved=Tvoje postavke su memorisane.
|
yourPreferencesHaveBeenSaved=Vaše postavke su sačuvane.
|
||||||
none=Nikakva
|
none=Nikakva
|
||||||
fast=Brza
|
fast=Brza
|
||||||
normal=Normalna
|
normal=Normalna
|
||||||
slow=Spora
|
slow=Spora
|
||||||
insideTheBoard=Unutar ploce
|
insideTheBoard=Unutar ploče
|
||||||
outsideTheBoard=Izvan ploce
|
outsideTheBoard=Van ploče
|
||||||
onSlowGames=Na sporim igrama
|
onSlowGames=Na sporim igrama
|
||||||
always=Uvijek
|
always=Uvijek
|
||||||
inCasualGamesOnly=Samo u običnim igrama
|
inCasualGamesOnly=Samo u običnim igrama
|
||||||
whenPremoving=Prlikom pred-poteza
|
whenPremoving=Prilikom predpoteza
|
||||||
whenTimeRemainingLessThanThirtySeconds=Kada je preostalo vrijeme <30 sekundi
|
whenTimeRemainingLessThanThirtySeconds=Kada je preostalo < 30 sekundi
|
||||||
difficultyEasy=Lagano
|
difficultyEasy=Lahko
|
||||||
difficultyNormal=Normalno
|
difficultyNormal=Normalno
|
||||||
difficultyHard=Teško
|
difficultyHard=Teško
|
||||||
xLeftANoteOnY=%s je ostavio bilješku na %s
|
xLeftANoteOnY=%s je ostavio bilješku na %s
|
||||||
|
@ -396,65 +395,65 @@ xCompetesInY=%s se takmiči u %s
|
||||||
xAskedY=%s je pitao %s
|
xAskedY=%s je pitao %s
|
||||||
xAnsweredY=%s je odgovorio %s
|
xAnsweredY=%s je odgovorio %s
|
||||||
xCommentedY=%s je komentarisao %s
|
xCommentedY=%s je komentarisao %s
|
||||||
timeline=Vremenska linija
|
timeline=Hronologija
|
||||||
seeAllTournaments=Pogledaj sve turnire
|
seeAllTournaments=Pogledaj sve turnire
|
||||||
starting=Počinje:
|
starting=Počinje:
|
||||||
allInformationIsPublicAndOptional=Sve informacije su javne.
|
allInformationIsPublicAndOptional=Sve informacije su javne i neobavezne.
|
||||||
yourCityRegionOrDepartment=Tvoj grad, regija ili pokrajina.
|
yourCityRegionOrDepartment=Vaš grad, regija ili pokrajina.
|
||||||
biographyDescription=Nešto više o vama, što volite u šahu, omiljena otvaranja, igre, igrači...
|
biographyDescription=Nešto više o Vama, šta volite u šahu, omiljena otvaranja, igre, igrači...
|
||||||
maximumNbCharacters=Maksimalno %s znakova.
|
maximumNbCharacters=Najviše %s znakova.
|
||||||
blocks=%s blokiranih
|
blocks=%s blokiranih
|
||||||
listBlockedPlayers=Lista blokiranih igrača
|
listBlockedPlayers=Lista blokiranih igrača
|
||||||
human=Osoba
|
human=Osoba
|
||||||
computer=Kompjuter
|
computer=Računar
|
||||||
side=Strana
|
side=Strana
|
||||||
clock=Sat
|
clock=Sat
|
||||||
unauthorizedError=Pristup neodozvoljen.
|
unauthorizedError=Pristup neodozvoljen.
|
||||||
noInternetConnection=Nedostupan internet. Možeš i dalje igrati preko menuja
|
noInternetConnection=Nedostupan internet. Možete i dalje igrati vanmrežno preko menija.
|
||||||
connectedToLichess=Spojeni ste na lichess.org
|
connectedToLichess=Spojeni ste na lichess.org
|
||||||
signedOut=Odjavljeni ste
|
signedOut=Odjavljeni ste
|
||||||
loginSuccessful=Prijavljeni ste
|
loginSuccessful=Prijavljeni ste
|
||||||
playOnTheBoardOffline=Igraj udvoje
|
playOnTheBoardOffline=Igraj u dvoje
|
||||||
playOfflineComputer=Igraj protiv kompjutera
|
playOfflineComputer=Igraj protiv računara
|
||||||
opponent=Protivnik
|
opponent=Protivnik
|
||||||
learn=Vježba
|
learn=Učenje
|
||||||
community=Zajednica
|
community=Zajednica
|
||||||
tools=Alati
|
tools=Alati
|
||||||
increment=Dodatak
|
increment=Inkrement
|
||||||
board=Ploca
|
board=Ploča
|
||||||
pieces=Figure
|
pieces=Figure
|
||||||
sharePGN=Podjeli PGN
|
sharePGN=Podijeli PGN
|
||||||
playOnline=Igraj na mreži
|
playOnline=Igraj na mreži
|
||||||
playOffline=Igraj bez mreže
|
playOffline=Igraj bez mreže
|
||||||
allowAnalytics=Dozvoli anonimnu statistiku
|
allowAnalytics=Dozvoli anonimnu statistiku
|
||||||
shareGameURL=Podijeli URL partije
|
shareGameURL=Podijeli link partije
|
||||||
error.required=Ovo polje je obavezno
|
error.required=Ovo polje je obavezno
|
||||||
error.email=Ova e-mail adresa je neispravna
|
error.email=Ova e-mail adresa je neispravna
|
||||||
error.email_acceptable=Ova e-mail adresa nije prihvatljiva
|
error.email_acceptable=Ova e-mail adresa nije prihvatljiva
|
||||||
error.email_unique=Ova e-mail adresa je već korištena
|
error.email_unique=Ova e-mail adresa je već zauzeta
|
||||||
blindfoldChess=Šah na slijepo (nevidljive figure)
|
blindfoldChess=Šah na slijepo (nevidljive figure)
|
||||||
moveConfirmation=Potvrda poteza
|
moveConfirmation=Potvrda poteza
|
||||||
inCorrespondenceGames=U dopisnim partijama
|
inCorrespondenceGames=U dopisnim partijama
|
||||||
ifRatingIsPlusMinusX=Ukoliko je rejting ± %s
|
ifRatingIsPlusMinusX=Ako je rejting ± %s
|
||||||
onlyFriends=Samo prijatelji
|
onlyFriends=Samo prijatelji
|
||||||
menu=Izbor
|
menu=Izbornik
|
||||||
castling=Rokada
|
castling=Rokada
|
||||||
whiteCastlingKingside=Bijeli O-O
|
whiteCastlingKingside=Bijeli O-O
|
||||||
whiteCastlingQueenside=Bijeli O-O-O
|
whiteCastlingQueenside=Bijeli O-O-O
|
||||||
blackCastlingKingside=Crni O-O
|
blackCastlingKingside=Crni O-O
|
||||||
blackCastlingQueenside=Crni O-O-O
|
blackCastlingQueenside=Crni O-O-O
|
||||||
nbForumPosts=%s Forumskih poruka
|
nbForumPosts=%s forumskih poruka
|
||||||
tpTimeSpentPlaying=Vrijeme provedeno igrajući: %s
|
tpTimeSpentPlaying=Vrijeme provedeno igrajući: %s
|
||||||
watchGames=Gledaj partije
|
watchGames=Gledaj partije
|
||||||
tpTimeSpentOnTV=Vrijeme na TV-u: %s
|
tpTimeSpentOnTV=Vrijeme na TV-u: %s
|
||||||
watch=Gledaj
|
watch=Gledaj
|
||||||
internationalEvents=Međunarodni događaji
|
internationalEvents=Međunarodni događaji
|
||||||
videoLibrary=Video biblioteka
|
videoLibrary=Video biblioteka
|
||||||
mobileApp=Mobilni App
|
mobileApp=Mobilna aplikacija
|
||||||
webmasters=Webmasteri
|
webmasters=Webmasteri
|
||||||
contribute=Doprinesi
|
contribute=Doprinesi
|
||||||
contact=Kontaktiraj
|
contact=Kontaktiraj
|
||||||
termsOfService=ToS
|
termsOfService=Uvjeti korištenja
|
||||||
sourceCode=Izvorni kod
|
sourceCode=Izvorni kod
|
||||||
simultaneousExhibitions=Simultanke
|
simultaneousExhibitions=Simultanke
|
||||||
host=Domaćin
|
host=Domaćin
|
||||||
|
@ -464,18 +463,18 @@ noSimulFound=Simultanka nije pronađena
|
||||||
noSimulExplanation=Ova simultanka ne postoji.
|
noSimulExplanation=Ova simultanka ne postoji.
|
||||||
returnToSimulHomepage=Vrati se na početnu stranicu sa simultankama
|
returnToSimulHomepage=Vrati se na početnu stranicu sa simultankama
|
||||||
aboutSimul=Simultanke uključuju jednog igrača koji igra protiv više protivnika odjednom.
|
aboutSimul=Simultanke uključuju jednog igrača koji igra protiv više protivnika odjednom.
|
||||||
aboutSimulImage=Od 50 protivnika, Fischer je pobijedio 47 parija, remizirao 2 i izgubio 1.
|
aboutSimulImage=Od 50 protivnika, Fischer je pobijedio 47 partija, remizirao 2 i izgubio 1.
|
||||||
aboutSimulRealLife=Koncept je preuzet iz stvarnog života. U stvarnom životu, ovo uključuje domaćina simultanke koji ide od table do table da odigra pojedinačni potez.
|
aboutSimulRealLife=Koncept je preuzet iz stvarnog života. U stvarnom životu, ovo uključuje domaćina simultanke koji ide od ploče do ploče da odigra pojedinačni potez.
|
||||||
aboutSimulRules=Kada simultanka započne, svaki igrač započinje partiju protiv domaćina, koji dobija bijele figure. Simultanka završava kada su i sve partije završene.
|
aboutSimulRules=Kada simultanka započne, svaki igrač započinje partiju protiv domaćina, koji dobija bijele figure. Simultanka završava kada su i sve partije završene.
|
||||||
aboutSimulSettings=Simultanke su uvijek prijateljske. Igraj ponovo, vrati potez i dodaj vrijeme je isključeno.
|
aboutSimulSettings=Simultanke su uvijek prijateljske. Opcije "igraj ponovo", "vrati potez" i "dodaj vrijeme" su isključene.
|
||||||
create=Kreiraj
|
create=Kreiraj
|
||||||
whenCreateSimul=Kada kreiraš simultanku, igraš protiv više igrača istovremeno.
|
whenCreateSimul=Kada kreiraš simultanku, igraš protiv više igrača istovremeno.
|
||||||
simulVariantsHint=Ako izabereš nekoliko varijanti, svaki igrač je u mogućnosti da izabere koju će igrati.
|
simulVariantsHint=Ako izabereš nekoliko varijanti, svaki igrač je u mogućnosti da izabere koju će igrati.
|
||||||
simulClockHint=Fischer podešavanje sata. Što više igrača primiš, više vremena bit će ti potrebno.
|
simulClockHint=Fischerovo podešavanje sata. Što više igrača primiš, više vremena bit će ti potrebno.
|
||||||
simulAddExtraTime=Možeš dodati vrijeme na svoj sat da ti pomogne savladati simultanku.
|
simulAddExtraTime=Možeš dodati vrijeme na svoj sat da ti pomogne savladati simultanku.
|
||||||
simulHostExtraTime=Dodatno vrijeme domaćina
|
simulHostExtraTime=Dodatno vrijeme domaćina
|
||||||
lichessTournaments=Lichess turniri
|
lichessTournaments=Lichess turniri
|
||||||
tournamentFAQ=Arena turniri, najčešće postavljena pitanja
|
tournamentFAQ=Najčešće postavljena pitanja za Arena turnire
|
||||||
tournamentOfficial=Službeno
|
tournamentOfficial=Službeno
|
||||||
timeBeforeTournamentStarts=Vrijeme do početka turnira
|
timeBeforeTournamentStarts=Vrijeme do početka turnira
|
||||||
averageCentipawnLoss=Prosječni gubitak u stotim dijelovima pješaka
|
averageCentipawnLoss=Prosječni gubitak u stotim dijelovima pješaka
|
||||||
|
@ -484,29 +483,38 @@ keyMoveBackwardOrForward=Potez nazad/naprijed
|
||||||
keyGoToStartOrEnd=idi na početak/kraj
|
keyGoToStartOrEnd=idi na početak/kraj
|
||||||
keyShowOrHideComments=pokaži/sakrij komentare
|
keyShowOrHideComments=pokaži/sakrij komentare
|
||||||
keyEnterOrExitVariation=otvori/zatvori varijantu
|
keyEnterOrExitVariation=otvori/zatvori varijantu
|
||||||
keyYouCanDrawArrowsCirclesAndScrollToMove=Pritisnite shift i kliknite lijevom tipkom miša ili desnom tipkom kako biste crtali krugove i strelice na tabli. Možete također skrolati tabli kako biste se pomicali u igri.
|
keyYouCanDrawArrowsCirclesAndScrollToMove=Pritisnite shift i kliknite lijevom tipkom miša ili desnom tipkom kako biste crtali krugove i strelice na tabli. Možete također skrolati po tabli kako biste se pomicali u igri.
|
||||||
newTournament=Novi turnir
|
newTournament=Novi turnir
|
||||||
tournamentHomeTitle=Šahovski turniri sa različitim vremenskim kontrolama i varijantama
|
tournamentHomeTitle=Šahovski turniri sa različitim vremenskim kontrolama i varijantama
|
||||||
tournamentHomeDescription=Igraj brze turnire! Pridruži se turniru ili stvori svoj turnir. Zuger, Blitz, Klasicni, Chess 960, King of the Hill, Tri Saha, i jos vise opcije je dostupno za beskrajnu sahovsku zanimaciju.
|
tournamentHomeDescription=Igraj brze turnire! Pridruži se turniru ili stvori svoj turnir. Zuger, Blitz, Klasični, Chess 960, King of the Hill, Tri šaha, i jos više opcije je dostupno za beskrajnu šahovsku zanimaciju.
|
||||||
tournamentNotFound=Turnir nije pronađen
|
tournamentNotFound=Turnir nije pronađen
|
||||||
tournamentDoesNotExist=Turnir ne postoji.
|
tournamentDoesNotExist=Turnir ne postoji.
|
||||||
tournamentMayHaveBeenCanceled=Turnir je možda bio otkazan, ako su ga svi igrači napustili prije početka.
|
tournamentMayHaveBeenCanceled=Turnir je možda bio otkazan, ako su ga svi igrači napustili prije početka.
|
||||||
returnToTournamentsHomepage=Povratak na početnu stranicu turnira
|
returnToTournamentsHomepage=Povratak na početnu stranicu turnira
|
||||||
weeklyPerfTypeRatingDistribution=Mjesečna %s rejting raspodjela
|
weeklyPerfTypeRatingDistribution=Mjesečna %s rejting raspodjela
|
||||||
nbPerfTypePlayersThisWeek=%s %s Igrača ovog mjeseca
|
nbPerfTypePlayersThisWeek=%s %s igrača ovog mjeseca.
|
||||||
yourPerfTypeRatingisRating=Vas %s rejting je %s.
|
yourPerfTypeRatingisRating=Vaš %s rejting je %s.
|
||||||
youAreBetterThanPercentOfPerfTypePlayers=Bolji ste nego %s od %s igrača
|
youAreBetterThanPercentOfPerfTypePlayers=Bolji ste nego %s od %s igrača.
|
||||||
youDoNotHaveAnEstablishedPerfTypeRating=Nemate tačno odredjenu poziciju %s rejtinga
|
youDoNotHaveAnEstablishedPerfTypeRating=Nemate tačno uspostavljen %s rejting.
|
||||||
checkYourEmail=Provjerite vaše email-ove
|
checkYourEmail=Provjerite Vaš e-mail
|
||||||
weHaveSentYouAnEmailClickTheLink=Mi smo vam poslali e-mail. Kliknite na link u e-mailu da biste aktivirali svoj račun.
|
weHaveSentYouAnEmailClickTheLink=Mi smo Vam poslali e-mail. Kliknite na link u e-mailu da biste aktivirali svoj račun.
|
||||||
ifYouDoNotSeeTheEmailCheckOtherPlaces=Ako ne vidite e-mail, provjerite na drugim mjestima, kao što su Junk, Spam, socijalne ili druge mape.
|
ifYouDoNotSeeTheEmailCheckOtherPlaces=Ako ne vidite e-mail, provjerite na drugim mjestima, kao što su junk, spam, društvene ili druge mape.
|
||||||
areYouSureYouEvenRegisteredYourEmailOnLichess=Jeste li sigurni da ste registrirali svoj e-mail na Lichess?
|
areYouSureYouEvenRegisteredYourEmailOnLichess=Jeste li sigurni da ste registrirali svoj e-mail na Lichess?
|
||||||
itWasNotRequiredForYourRegistration=To nije bilo potrebno za registraciju.
|
itWasNotRequiredForYourRegistration=To nije bilo potrebno za registraciju.
|
||||||
weHaveSentYouAnEmailTo=Poslali smo e-mail na %s. Kliknite na link u e-mailu za resetiranje vaše lozinke.
|
weHaveSentYouAnEmailTo=Poslali smo e-mail na %s. Kliknite na link u e-mailu za resetiranje vaše lozinke.
|
||||||
|
byRegisteringYouAgreeToBeBoundByOur=Registriranjem, slažete se da ćete se pridržavati naših %s.
|
||||||
|
networkLagBetweenYouAndLichess=Mrežno kašnjenje između Vas i lichessa
|
||||||
|
timeToProcessAMoveOnLichessServer=Vrijeme za procesiranje poteza na lichess serveru
|
||||||
|
downloadAnnotated=Skini sa anotacijom
|
||||||
|
downloadRaw=Skini sirovo
|
||||||
downloadImported=Preuzimanje uvezeno
|
downloadImported=Preuzimanje uvezeno
|
||||||
printFriendlyPDF=PDF koji se može printati
|
printFriendlyPDF=PDF koji se može printati
|
||||||
crosstable=Ukrštena tabela
|
crosstable=Ukrštena tabela
|
||||||
|
youCanAlsoScrollOverTheBoardToMoveInTheGame=Možete također skrolati po ploči da se pomjerate u igri.
|
||||||
|
pressShiftPlusClickOrRightClickToDrawCirclesAndArrowsOnTheBoard=Pritisni shift+klik ili desni klik za crtanje krugova i strelica na ploči.
|
||||||
|
confirmResignation=Potvrdi predaju
|
||||||
letOtherPlayersMessageYou=Pusti druge igrače da te kontaktiraju
|
letOtherPlayersMessageYou=Pusti druge igrače da te kontaktiraju
|
||||||
|
shareYourInsightsData=Prikaži svoje podatke uvida
|
||||||
youHaveAlreadyRegisteredTheEmail=Već ste registrirali email: %s
|
youHaveAlreadyRegisteredTheEmail=Već ste registrirali email: %s
|
||||||
kidMode=Dječiji način rada
|
kidMode=Dječiji način rada
|
||||||
playChessEverywhere=Igrajte šaha svugdje
|
playChessEverywhere=Igrajte šaha svugdje
|
||||||
|
@ -514,6 +522,13 @@ asFreeAsLichess=Besplatno kao lichess
|
||||||
builtForTheLoveOfChessNotMoney=Izgrađeno zbog ljubavi prema šahu, ne novcu
|
builtForTheLoveOfChessNotMoney=Izgrađeno zbog ljubavi prema šahu, ne novcu
|
||||||
everybodyGetsAllFeaturesForFree=Svako dobija sve mogućnosti besplatno
|
everybodyGetsAllFeaturesForFree=Svako dobija sve mogućnosti besplatno
|
||||||
zeroAdvertisement=Bez reklama
|
zeroAdvertisement=Bez reklama
|
||||||
|
fullFeatured=Sa svim mogućnostima
|
||||||
phoneAndTablet=Telefon i tablet
|
phoneAndTablet=Telefon i tablet
|
||||||
|
bulletBlitzClassical=Bullet, blic, klasični
|
||||||
|
correspondenceChess=Prepisni šah
|
||||||
onlineAndOfflinePlay=Mrežna i vanmrežna igra
|
onlineAndOfflinePlay=Mrežna i vanmrežna igra
|
||||||
viewTheSolution=Prika
|
correspondenceAndUnlimited=Prepiska i neograničeno
|
||||||
|
viewTheSolution=Prikaži rješenje
|
||||||
|
followAndChallengeFriends=Prati i izazovi prijatelje
|
||||||
|
availableInNbLanguages=Dostupno na %s jezika!
|
||||||
|
gameAnalysis=Analiza igre
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Escacs i mat
|
||||||
nbBookmarks=%s Marcadors
|
nbBookmarks=%s Marcadors
|
||||||
nbPopularGames=%s Partides populars
|
nbPopularGames=%s Partides populars
|
||||||
nbAnalysedGames=%s Partides analitzades
|
nbAnalysedGames=%s Partides analitzades
|
||||||
bookmarkedByNbPlayers=Marcat per %s jugadors
|
|
||||||
viewInFullSize=Veure a mida completa
|
viewInFullSize=Veure a mida completa
|
||||||
logOut=Tanca la sessió
|
logOut=Tanca la sessió
|
||||||
signIn=Inicia la sessió
|
signIn=Inicia la sessió
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
playWithAFriend=ghjucà cù un amicu
|
||||||
|
playWithTheMachine=Ghjucà contru l'urdinatore
|
||||||
|
toInviteSomeoneToPlayGiveThisUrl=Per fà vene à qualchisia à ghjucà, dà st'indirizzu
|
||||||
|
gameOver=hè finitu u ghjocu
|
||||||
|
waitingForOpponent=Aspittava di un avversu
|
||||||
|
waiting=Aspittava
|
||||||
|
yourTurn=Tocca a te
|
||||||
|
aiNameLevelAiLevel=%s livellu %s
|
||||||
|
level=Livellu
|
||||||
|
toggleTheChat=Attivà u Tchat/Disattivà u Tchat
|
||||||
|
toggleSound=Attivà u sonu/Disattivà u sonu
|
||||||
|
chat=Tchat
|
||||||
|
resign=Abandunnà
|
||||||
|
checkmate=Scaccu mattu
|
||||||
|
stalemate=Pattu
|
||||||
|
white=Biancu
|
||||||
|
black=Neru
|
||||||
|
randomColor=Culore casuale
|
||||||
|
createAGame=Creà un ghjocu
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Zobrazit všech %s matů
|
||||||
nbBookmarks=Záložky: %s
|
nbBookmarks=Záložky: %s
|
||||||
nbPopularGames=Oblíbené partie: %s
|
nbPopularGames=Oblíbené partie: %s
|
||||||
nbAnalysedGames=%s zanalyzovaných partií
|
nbAnalysedGames=%s zanalyzovaných partií
|
||||||
bookmarkedByNbPlayers=Počet hráčů, kteří mají partii v záložkách: %s
|
|
||||||
viewInFullSize=Zobrazit v plné velikosti
|
viewInFullSize=Zobrazit v plné velikosti
|
||||||
logOut=Odhlásit se
|
logOut=Odhlásit se
|
||||||
signIn=Přihlásit se
|
signIn=Přihlásit se
|
||||||
|
|
|
@ -22,19 +22,26 @@ blackIsVictorious=Хурисем ҫӗнтерчӗҫ
|
||||||
kingInTheCenter=Ту патши
|
kingInTheCenter=Ту патши
|
||||||
threeChecks=Виҫӗ шах пани
|
threeChecks=Виҫӗ шах пани
|
||||||
raceFinished=Чупу вӗҫленчӗ
|
raceFinished=Чупу вӗҫленчӗ
|
||||||
|
variantEnding=Уйрӑм вӗҫленни
|
||||||
newOpponent=Ҫӗнӗ ӑмӑртуҫӑ
|
newOpponent=Ҫӗнӗ ӑмӑртуҫӑ
|
||||||
yourOpponentWantsToPlayANewGameWithYou=Ӑмӑртуҫу санпа тепӗр хут выљасшӑн
|
yourOpponentWantsToPlayANewGameWithYou=Ӑмӑртуҫу санпа тепӗр хут выљасшӑн
|
||||||
joinTheGame=Вӑййине хутшӑн
|
joinTheGame=Вӑййине хутшӑн
|
||||||
whitePlays=Шуррисен ҫӳремелле
|
whitePlays=Шуррисен ҫӳремелле
|
||||||
blackPlays=Хурисен ҫӳремелле
|
blackPlays=Хурисен ҫӳремелле
|
||||||
|
theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Тепӗр вӑйӑҫ вӑййинчен тухнӑ пек турӗ. Ҫӗнтерӳ, парма-пар ҫинчен пӗлтер йе кӗтсе тӑр.
|
||||||
makeYourOpponentResign=Ӑмӑртуҫуна парӑнтаттар
|
makeYourOpponentResign=Ӑмӑртуҫуна парӑнтаттар
|
||||||
forceResignation=Ҫӗнтерӳ пирки пӗлтер
|
forceResignation=Ҫӗнтерӳ пирки пӗлтер
|
||||||
forceDraw=Парма-пар пирки пӗлтер
|
forceDraw=Парма-пар пирки пӗлтер
|
||||||
talkInChat=Калаҫура сӑпайлӑ пул!
|
talkInChat=Калаҫура сӑпайлӑ пул!
|
||||||
|
theFirstPersonToComeOnThisUrlWillPlayWithYou=Ҫак каҫҫипе пӗрремӗш килекен ҫын санпа вылӗ.
|
||||||
whiteResigned=Шуррисем парӑнчӗҫ
|
whiteResigned=Шуррисем парӑнчӗҫ
|
||||||
blackResigned=Хурисем парӑнчӗҫ
|
blackResigned=Хурисем парӑнчӗҫ
|
||||||
whiteLeftTheGame=Шуррисем вӑййинчен тухрӗҫ
|
whiteLeftTheGame=Шуррисем вӑййинчен тухрӗҫ
|
||||||
blackLeftTheGame=Хурисем вӑййинчен тухрӗҫ
|
blackLeftTheGame=Хурисем вӑййинчен тухрӗҫ
|
||||||
|
shareThisUrlToLetSpectatorsSeeTheGame=Вӑййине сӑнма ирӗк парас тесе каҫҫине пайлаш
|
||||||
|
theComputerAnalysisHasFailed=Компуйтӑр тишкерӗвӗ ӑнӑҫланман
|
||||||
|
viewTheComputerAnalysis=Компуйтӑр тишкереве патне
|
||||||
|
requestAComputerAnalysis=Компйутӑр тишкервне ыйт
|
||||||
computerAnalysis=Компйутӑр тишкерӗвӗ
|
computerAnalysis=Компйутӑр тишкерӗвӗ
|
||||||
analysis=Тишкерӳ хӑми
|
analysis=Тишкерӳ хӑми
|
||||||
blunders=Тӳрккес йӑнӑшсем
|
blunders=Тӳрккес йӑнӑшсем
|
||||||
|
@ -53,7 +60,7 @@ viewNbCheckmates=%s Мат туни
|
||||||
nbBookmarks=%s Картса хуни
|
nbBookmarks=%s Картса хуни
|
||||||
nbPopularGames=%s Йуратнӑ вӑйӑ
|
nbPopularGames=%s Йуратнӑ вӑйӑ
|
||||||
nbAnalysedGames=%s Тишкернӗ вӑйӑ
|
nbAnalysedGames=%s Тишкернӗ вӑйӑ
|
||||||
bookmarkedByNbPlayers=%s Вӑйӑҫӑ картса хунӑ
|
viewInFullSize=Тулли калӑпӑшла пӑх
|
||||||
logOut=Тух
|
logOut=Тух
|
||||||
signIn=Кӗр
|
signIn=Кӗр
|
||||||
newToLichess=Lichess пӗрремӗш хут?
|
newToLichess=Lichess пӗрремӗш хут?
|
||||||
|
@ -84,6 +91,8 @@ haveAnAccount=Аккаунт пур-и?
|
||||||
changePassword=Кӗме сӑмах улӑштарни
|
changePassword=Кӗме сӑмах улӑштарни
|
||||||
changeEmail=Ел. пуштӑ улӑштарни
|
changeEmail=Ел. пуштӑ улӑштарни
|
||||||
email=Ел. пуштӑ
|
email=Ел. пуштӑ
|
||||||
|
emailIsOptional=Ел. пуштӑ тивӗҫлӗ мар. Кӗме сӑмахна манса кайсан, ҫӗнӗ кӗме сӑмах лартас тесе Lichess сан пуштӑпа усӑ курӗ.
|
||||||
|
passwordReset=Кӗме сӑмах улӑштарасси
|
||||||
forgotPassword=Кӗме сӑмаха мансан
|
forgotPassword=Кӗме сӑмаха мансан
|
||||||
rank=Хаклав
|
rank=Хаклав
|
||||||
gamesPlayed=вӑйӑ выљанӑ
|
gamesPlayed=вӑйӑ выљанӑ
|
||||||
|
@ -118,6 +127,7 @@ rematchOfferAccepted=Реванш ыйтнине йышӑннӑ
|
||||||
rematchOfferCanceled=Реванш ыйтнине пӑрахӑҫланӑ
|
rematchOfferCanceled=Реванш ыйтнине пӑрахӑҫланӑ
|
||||||
rematchOfferDeclined=Реванш ыйтнине сирнӗ
|
rematchOfferDeclined=Реванш ыйтнине сирнӗ
|
||||||
cancelRematchOffer=Реванш ыйтнине пӑрахӑҫла
|
cancelRematchOffer=Реванш ыйтнине пӑрахӑҫла
|
||||||
|
viewRematch=Рематчне тишкер
|
||||||
play=Выљасси
|
play=Выљасси
|
||||||
inbox=Ҫырусем
|
inbox=Ҫырусем
|
||||||
chatRoom=Калаҫу ани
|
chatRoom=Калаҫу ани
|
||||||
|
@ -172,6 +182,7 @@ teamBestPlayers=Чи вӑйлӑ вӑйӑҫӑ
|
||||||
teamRecentMembers=Тин хутшӑннӑ пайташсем
|
teamRecentMembers=Тин хутшӑннӑ пайташсем
|
||||||
xJoinedTeamY=%s -> %s ушкӑна хутшӑннӑ
|
xJoinedTeamY=%s -> %s ушкӑна хутшӑннӑ
|
||||||
xCreatedTeamY=%s усӑҫ %s ушкӑн йӗркеленӗ
|
xCreatedTeamY=%s усӑҫ %s ушкӑн йӗркеленӗ
|
||||||
|
averageElo=Вӑтам рейтинг
|
||||||
location=Вырӑн
|
location=Вырӑн
|
||||||
filterGames=Вӑйӑ али
|
filterGames=Вӑйӑ али
|
||||||
reset=Силле
|
reset=Силле
|
||||||
|
@ -217,6 +228,7 @@ required=Тивӗҫлӗ.
|
||||||
openTournaments=Уҫӑ турнирсем
|
openTournaments=Уҫӑ турнирсем
|
||||||
duration=Вӑрӑмӑш
|
duration=Вӑрӑмӑш
|
||||||
winner=Ҫӗнтерӳҫӗ
|
winner=Ҫӗнтерӳҫӗ
|
||||||
|
standing=Лару-тӑру
|
||||||
createANewTournament=Ҫӗнӗ турнир йӗркеле
|
createANewTournament=Ҫӗнӗ турнир йӗркеле
|
||||||
join=Хутшӑнас
|
join=Хутшӑнас
|
||||||
withdraw=Тухасси
|
withdraw=Тухасси
|
||||||
|
@ -345,7 +357,6 @@ gameBehavior=Вӑййа йертсе пыни
|
||||||
premovesPlayingDuringOpponentTurn=Умӗн ҫӳресси (ӑмӑртуҫӗн ҫӳремелли вӑхӑтра утни)
|
premovesPlayingDuringOpponentTurn=Умӗн ҫӳресси (ӑмӑртуҫӗн ҫӳремелли вӑхӑтра утни)
|
||||||
takebacksWithOpponentApproval=Тавӑрасси (ӑмӑртуҫу килӗшнипе)
|
takebacksWithOpponentApproval=Тавӑрасси (ӑмӑртуҫу килӗшнипе)
|
||||||
promoteToQueenAutomatically=Фӑрӑҫа хӑй халлӗн тухасси
|
promoteToQueenAutomatically=Фӑрӑҫа хӑй халлӗн тухасси
|
||||||
claimDrawOnThreefoldRepetitionAutomatically=%Лартӑма 3 хут лексен%s п-паршӑн х-халӗн пӗлтересси
|
|
||||||
privacy=Вӑрттӑнлӑх
|
privacy=Вӑрттӑнлӑх
|
||||||
letOtherPlayersFollowYou=Ытти вӑйӑҫ ман ҫине ҫырӑнасси
|
letOtherPlayersFollowYou=Ытти вӑйӑҫ ман ҫине ҫырӑнасси
|
||||||
letOtherPlayersChallengeYou=Ытти вӑйӑҫ мана выљатасси
|
letOtherPlayersChallengeYou=Ытти вӑйӑҫ мана выљатасси
|
||||||
|
@ -360,6 +371,7 @@ outsideTheBoard=Хӑма тулӗнче
|
||||||
onSlowGames=Вӑрах вӑйӑра
|
onSlowGames=Вӑрах вӑйӑра
|
||||||
always=Йалан
|
always=Йалан
|
||||||
inCasualGamesOnly=Ахаль выльанӑ чухне кана
|
inCasualGamesOnly=Ахаль выльанӑ чухне кана
|
||||||
|
whenPremoving=Умӗн куҫнӑ чух
|
||||||
whenTimeRemainingLessThanThirtySeconds=Вӑхӑт < 30 ҫеккунтран сахал йулсан
|
whenTimeRemainingLessThanThirtySeconds=Вӑхӑт < 30 ҫеккунтран сахал йулсан
|
||||||
difficultyEasy=Ансат
|
difficultyEasy=Ансат
|
||||||
difficultyNormal=Виҫеллӗ
|
difficultyNormal=Виҫеллӗ
|
||||||
|
@ -396,8 +408,11 @@ pieces=Кӗлеткесем
|
||||||
sharePGN=PGN пайлаш
|
sharePGN=PGN пайлаш
|
||||||
playOnline=Онлайн вӑйӑ
|
playOnline=Онлайн вӑйӑ
|
||||||
playOffline=Офлайн вӑйӑ
|
playOffline=Офлайн вӑйӑ
|
||||||
|
allowAnalytics=Йатсӑр статистике пултар
|
||||||
shareGameURL=Вӑйӑ каҫҫине пайлаш
|
shareGameURL=Вӑйӑ каҫҫине пайлаш
|
||||||
error.required=Тивӗҫлӗ ани
|
error.required=Тивӗҫлӗ ани
|
||||||
|
error.email=Ку ел. пуштӑ йурӑхсӑр
|
||||||
|
error.email_acceptable=Ку ел. пуштӑна йышӑнма ҫук
|
||||||
error.email_unique=Ҫак ел. пуштӑпа усӑ кураҫҫӗ ӗнтӗ
|
error.email_unique=Ҫак ел. пуштӑпа усӑ кураҫҫӗ ӗнтӗ
|
||||||
blindfoldChess=Суккӑр шахмат (курӑнман кӗлетке)
|
blindfoldChess=Суккӑр шахмат (курӑнман кӗлетке)
|
||||||
moveConfirmation=Куҫӑма ҫирӗплетесси
|
moveConfirmation=Куҫӑма ҫирӗплетесси
|
||||||
|
@ -428,12 +443,16 @@ createdSimuls=Тин йӗркеленӗ пӗр вӑхӑтри вӑйӑсем
|
||||||
hostANewSimul=Ҫӗнӗ пӗр вӑхӑтри вӑййа вырӑнӑҫтар
|
hostANewSimul=Ҫӗнӗ пӗр вӑхӑтри вӑййа вырӑнӑҫтар
|
||||||
noSimulFound=Пӗр вӑхӑтри вӑйӑ тупӑнман
|
noSimulFound=Пӗр вӑхӑтри вӑйӑ тупӑнман
|
||||||
returnToSimulHomepage=Пӗр вӑхӑтри вӑйӑ патнелле
|
returnToSimulHomepage=Пӗр вӑхӑтри вӑйӑ патнелле
|
||||||
|
aboutSimul=Пӗр вӑхӑтри вӑйӑсенче пӗр вӑйӑҫ темиҫе вӑйӑҫа пӗр вӑхӑтра выльатать.
|
||||||
|
aboutSimulImage=50 ӑмӑртуҫран, Фишӗр 47 ҫӗнтернӗ, 2 парма-пар выльанӑ, 1 выльаса йанӑ.
|
||||||
aboutSimulSettings=Пӗр вӑхӑтри вӑйӑ йаланах ахаль вӑйӑ. Рематч выльама, тавӑрма тата "ытлаши вӑхӑт" илме ҫук.
|
aboutSimulSettings=Пӗр вӑхӑтри вӑйӑ йаланах ахаль вӑйӑ. Рематч выльама, тавӑрма тата "ытлаши вӑхӑт" илме ҫук.
|
||||||
create=Йӗркелес
|
create=Йӗркелес
|
||||||
whenCreateSimul=Пӗр вӑхӑтри вӑйӑ йӗрекелесен, санӑн темиҫе ӑмӑртуҫпа пӗр вӑхӑтра выльамалла.
|
whenCreateSimul=Пӗр вӑхӑтри вӑйӑ йӗрекелесен, санӑн темиҫе ӑмӑртуҫпа пӗр вӑхӑтра выльамалла.
|
||||||
lichessTournaments=Lichess турнирӗсем
|
lichessTournaments=Lichess турнирӗсем
|
||||||
tournamentFAQ=Аренӑ турнирӗн ТЛЫӗ
|
tournamentFAQ=Аренӑ турнирӗн ТЛЫӗ
|
||||||
tournamentOfficial=Офиссаллӑ
|
tournamentOfficial=Офиссаллӑ
|
||||||
|
averageCentipawnLoss=Вӑтам сантисалтак ҫухатӑвӗ
|
||||||
|
keyboardShortcuts=Хӑвӑрт пускӑчсем
|
||||||
keyMoveBackwardOrForward=кайалла/малалла куҫ
|
keyMoveBackwardOrForward=кайалла/малалла куҫ
|
||||||
keyGoToStartOrEnd=пуҫӗ/вӗҫӗ патне куҫ
|
keyGoToStartOrEnd=пуҫӗ/вӗҫӗ патне куҫ
|
||||||
keyShowOrHideComments=шухӑшсене кӑтарт / пытар
|
keyShowOrHideComments=шухӑшсене кӑтарт / пытар
|
||||||
|
@ -449,6 +468,9 @@ youDoNotHaveAnEstablishedPerfTypeRating=Саншӑн шутланӑ %s рейт
|
||||||
checkYourEmail=Ел. пуштуна тӗрӗсле
|
checkYourEmail=Ел. пуштуна тӗрӗсле
|
||||||
weHaveSentYouAnEmailClickTheLink=Епир сан патна ел. ҫыру йатӑмӑр. Аккаунтна тапратас тесе ҫырури каҫӑ ҫине пус.
|
weHaveSentYouAnEmailClickTheLink=Епир сан патна ел. ҫыру йатӑмӑр. Аккаунтна тапратас тесе ҫырури каҫӑ ҫине пус.
|
||||||
weHaveSentYouAnEmailTo=Епир %s ҫине ҫыру йатӑмӑр. Вӑрттӑн сӑмахна улӑштарас тесе ҫырури каҫӑ ҫине пус.
|
weHaveSentYouAnEmailTo=Епир %s ҫине ҫыру йатӑмӑр. Вӑрттӑн сӑмахна улӑштарас тесе ҫырури каҫӑ ҫине пус.
|
||||||
|
networkLagBetweenYouAndLichess=Санпа Lichess хушшинче тетел чӑрмантарса тӑни пур
|
||||||
|
timeToProcessAMoveOnLichessServer=Lichess сервӗрӗ пӗр куҫӑм ӗҫлесе илмелли вӑхӑт
|
||||||
|
crosstable=Пӑнчӑ тапӑлӗ
|
||||||
confirmResignation=Парӑнасса ҫирӗплетесси
|
confirmResignation=Парӑнасса ҫирӗплетесси
|
||||||
letOtherPlayersMessageYou=Ытти вӑйӑҫ ман пата ҫырасси
|
letOtherPlayersMessageYou=Ытти вӑйӑҫ ман пата ҫырасси
|
||||||
youHaveAlreadyRegisteredTheEmail=Есӗ ҫак пуштӑпа регистратсиленнӗ-ха: %s
|
youHaveAlreadyRegisteredTheEmail=Есӗ ҫак пуштӑпа регистратсиленнӗ-ха: %s
|
||||||
|
|
|
@ -59,7 +59,6 @@ viewNbCheckmates=Edrych ar y %s o gêmau sydd wedi cael eu henill
|
||||||
nbBookmarks=%s o gêmau wedi'u nodi
|
nbBookmarks=%s o gêmau wedi'u nodi
|
||||||
nbPopularGames=%s o gêmau wedi'u nodi mwy nag unwaith
|
nbPopularGames=%s o gêmau wedi'u nodi mwy nag unwaith
|
||||||
nbAnalysedGames=%s o gêmau wedi'u dadansoddi
|
nbAnalysedGames=%s o gêmau wedi'u dadansoddi
|
||||||
bookmarkedByNbPlayers=wedi nodi gan %s o chwaraewyr
|
|
||||||
viewInFullSize=Edrych yn maint llawn
|
viewInFullSize=Edrych yn maint llawn
|
||||||
logOut=Allgofnodi
|
logOut=Allgofnodi
|
||||||
signIn=Mewngofnodi
|
signIn=Mewngofnodi
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Se %s skakmatter
|
||||||
nbBookmarks=%s bogmærker
|
nbBookmarks=%s bogmærker
|
||||||
nbPopularGames=%s populære partier
|
nbPopularGames=%s populære partier
|
||||||
nbAnalysedGames=%s analyserede partier
|
nbAnalysedGames=%s analyserede partier
|
||||||
bookmarkedByNbPlayers=Bogmærke til %s spillere
|
|
||||||
viewInFullSize=Se i fuldskærm
|
viewInFullSize=Se i fuldskærm
|
||||||
logOut=Log ud
|
logOut=Log ud
|
||||||
signIn=Log ind
|
signIn=Log ind
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Schachmatts
|
||||||
nbBookmarks=%s Lesezeichen
|
nbBookmarks=%s Lesezeichen
|
||||||
nbPopularGames=%s Beliebte Partien
|
nbPopularGames=%s Beliebte Partien
|
||||||
nbAnalysedGames=%s Analysierte Partien
|
nbAnalysedGames=%s Analysierte Partien
|
||||||
bookmarkedByNbPlayers=Von %s Spielern mit einem Lesezeichen versehen
|
|
||||||
viewInFullSize=In voller Größe anzeigen
|
viewInFullSize=In voller Größe anzeigen
|
||||||
logOut=Abmelden
|
logOut=Abmelden
|
||||||
signIn=Anmelden
|
signIn=Anmelden
|
||||||
|
@ -515,7 +514,7 @@ youCanAlsoScrollOverTheBoardToMoveInTheGame=Du kannst auch auf dem Brett scrolle
|
||||||
pressShiftPlusClickOrRightClickToDrawCirclesAndArrowsOnTheBoard=Drücke Shift+Mausklick oder Rechtsklick, um Kreise und Pfeile auf dem Brett zu zeichnen.
|
pressShiftPlusClickOrRightClickToDrawCirclesAndArrowsOnTheBoard=Drücke Shift+Mausklick oder Rechtsklick, um Kreise und Pfeile auf dem Brett zu zeichnen.
|
||||||
confirmResignation=Aufgabe bestätigen
|
confirmResignation=Aufgabe bestätigen
|
||||||
letOtherPlayersMessageYou=Erlaube anderen Spielern dich zu kontaktieren.
|
letOtherPlayersMessageYou=Erlaube anderen Spielern dich zu kontaktieren.
|
||||||
shareYourInsightsData=Teile deine persönliche Spierstatistiken
|
shareYourInsightsData=Teile deine persönliche Spielerstatistiken
|
||||||
youHaveAlreadyRegisteredTheEmail=Du hast die folgende Emailadresse schon registriert: %s
|
youHaveAlreadyRegisteredTheEmail=Du hast die folgende Emailadresse schon registriert: %s
|
||||||
kidMode=Kinder Modus
|
kidMode=Kinder Modus
|
||||||
playChessEverywhere=Spiele Schach überall
|
playChessEverywhere=Spiele Schach überall
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Ματ
|
||||||
nbBookmarks=%s Σελιδοδείκτες
|
nbBookmarks=%s Σελιδοδείκτες
|
||||||
nbPopularGames=%s Δημοφιλή παιχνίδια
|
nbPopularGames=%s Δημοφιλή παιχνίδια
|
||||||
nbAnalysedGames=%s Αναλυμένα παιχνίδια
|
nbAnalysedGames=%s Αναλυμένα παιχνίδια
|
||||||
bookmarkedByNbPlayers=Προστέθηκε ως σελιδοδείκτης από %s παίκτες
|
|
||||||
viewInFullSize=Προβολή σε πλήρες μέγεθος
|
viewInFullSize=Προβολή σε πλήρες μέγεθος
|
||||||
logOut=Έξοδος
|
logOut=Έξοδος
|
||||||
signIn=Είσοδος
|
signIn=Είσοδος
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Ŝakmatoj
|
||||||
nbBookmarks=%s Paĝmarkoj
|
nbBookmarks=%s Paĝmarkoj
|
||||||
nbPopularGames=%s Popularaj ludoj
|
nbPopularGames=%s Popularaj ludoj
|
||||||
nbAnalysedGames=%s Analizitaj ludoj
|
nbAnalysedGames=%s Analizitaj ludoj
|
||||||
bookmarkedByNbPlayers=Paĝmarkita de %s ludantoj
|
|
||||||
viewInFullSize=Vidi plengrande
|
viewInFullSize=Vidi plengrande
|
||||||
logOut=Elsaluti
|
logOut=Elsaluti
|
||||||
signIn=Ensaluti
|
signIn=Ensaluti
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
playWithAFriend=Jugar con un amigo
|
playWithAFriend=Jugar con un amigo
|
||||||
playWithTheMachine=Jugar con el ordenador
|
playWithTheMachine=Jugar contra el ordenador
|
||||||
toInviteSomeoneToPlayGiveThisUrl=Para invitar a alguien a jugar, comparte este URL
|
toInviteSomeoneToPlayGiveThisUrl=Para invitar a alguien a jugar, comparte este enlace
|
||||||
gameOver=Fin del juego
|
gameOver=Fin de la partida
|
||||||
waitingForOpponent=Esperando oponente
|
waitingForOpponent=Esperando al oponente
|
||||||
waiting=Esperando
|
waiting=Esperando
|
||||||
yourTurn=Tu turno
|
yourTurn=Tu turno
|
||||||
aiNameLevelAiLevel=%s nivel %s
|
aiNameLevelAiLevel=%s nivel %s
|
||||||
|
@ -21,7 +21,7 @@ whiteIsVictorious=Las blancas ganan
|
||||||
blackIsVictorious=Las negras ganan
|
blackIsVictorious=Las negras ganan
|
||||||
kingInTheCenter=Rey en el centro
|
kingInTheCenter=Rey en el centro
|
||||||
threeChecks=Tres jaques
|
threeChecks=Tres jaques
|
||||||
raceFinished=Carrera acabada
|
raceFinished=Carrera terminada
|
||||||
variantEnding=Final alternativo
|
variantEnding=Final alternativo
|
||||||
newOpponent=Nuevo oponente
|
newOpponent=Nuevo oponente
|
||||||
yourOpponentWantsToPlayANewGameWithYou=Tu oponente quiere la revancha
|
yourOpponentWantsToPlayANewGameWithYou=Tu oponente quiere la revancha
|
||||||
|
@ -38,13 +38,13 @@ whiteResigned=Las blancas se han rendido
|
||||||
blackResigned=Las negras se han rendido
|
blackResigned=Las negras se han rendido
|
||||||
whiteLeftTheGame=Las blancas han abandonado la partida
|
whiteLeftTheGame=Las blancas han abandonado la partida
|
||||||
blackLeftTheGame=Las negras han abandonado la partida
|
blackLeftTheGame=Las negras han abandonado la partida
|
||||||
shareThisUrlToLetSpectatorsSeeTheGame=Comparte este URL para que los espectadores puedan ver la partida
|
shareThisUrlToLetSpectatorsSeeTheGame=Comparte este enlace para que los espectadores puedan ver la partida
|
||||||
theComputerAnalysisHasFailed=El análisis del ordenador ha fallado
|
theComputerAnalysisHasFailed=El análisis del ordenador ha fallado
|
||||||
viewTheComputerAnalysis=Ver el análisis del ordenador
|
viewTheComputerAnalysis=Ver el análisis del ordenador
|
||||||
requestAComputerAnalysis=Solicitar un análisis del ordenador
|
requestAComputerAnalysis=Solicitar un análisis del ordenador
|
||||||
computerAnalysis=Análisis del ordenador
|
computerAnalysis=Análisis del ordenador
|
||||||
analysis=Tablero de análisis
|
analysis=Tablero de análisis
|
||||||
blunders=Errores serios
|
blunders=Errores graves
|
||||||
mistakes=Errores
|
mistakes=Errores
|
||||||
inaccuracies=Imprecisiones
|
inaccuracies=Imprecisiones
|
||||||
moveTimes=Tiempo por movimiento
|
moveTimes=Tiempo por movimiento
|
||||||
|
@ -55,22 +55,21 @@ offerDraw=Ofrecer tablas
|
||||||
draw=Tablas
|
draw=Tablas
|
||||||
nbConnectedPlayers=%s jugadores
|
nbConnectedPlayers=%s jugadores
|
||||||
gamesBeingPlayedRightNow=Partidas actuales
|
gamesBeingPlayedRightNow=Partidas actuales
|
||||||
viewAllNbGames=%s partidas
|
viewAllNbGames=%s Partidas
|
||||||
viewNbCheckmates=%s jaque mates
|
viewNbCheckmates=%s Jaques mate
|
||||||
nbBookmarks=%s partidas marcadas
|
nbBookmarks=%s Partidas favoritas
|
||||||
nbPopularGames=%s partidas populares
|
nbPopularGames=%s Partidas populares
|
||||||
nbAnalysedGames=%s partidas analizadas
|
nbAnalysedGames=%s Partidas analizadas
|
||||||
bookmarkedByNbPlayers=Marcado por %s jugadores
|
|
||||||
viewInFullSize=Ver en tamaño completo
|
viewInFullSize=Ver en tamaño completo
|
||||||
logOut=Cerrar sesión
|
logOut=Cerrar sesión
|
||||||
signIn=Iniciar sesión
|
signIn=Iniciar sesión
|
||||||
newToLichess=¿Nuevo en Lichess?
|
newToLichess=¿Nuevo en Lichess?
|
||||||
youNeedAnAccountToDoThat=Necesitas crear una cuenta para hacer eso
|
youNeedAnAccountToDoThat=Necesitas crear una cuenta para hacer eso
|
||||||
signUp=Regístrate
|
signUp=Registrarse
|
||||||
computersAreNotAllowedToPlay=No les está permitido jugar a las computadoras ni a jugadores asistidos por ellas. Por favor, no te ayudes de motores de ajedrez, bases de datos o de otros jugadores durante el juego. También ten en cuenta que se desalienta tener más de una cuenta y el uso excesivo de varias cuentas resultará en la cancelación de las mismas.
|
computersAreNotAllowedToPlay=No les está permitido jugar a las computadoras ni a jugadores asistidos por ellas. Por favor, no te ayudes de motores de ajedrez, bases de datos o de otros jugadores durante la partida. Además, ten en cuenta que se desaconseja la utilización de varias cuentas de usuario y que el uso de un excesivo número de cuentas resultará en la cancelación de las mismas.
|
||||||
games=Partidas
|
games=Partidas
|
||||||
forum=Foro
|
forum=Foro
|
||||||
xPostedInForumY=%s ha escrito en el foro %s
|
xPostedInForumY=%s ha escrito en el tema %s
|
||||||
latestForumPosts=Últimos mensajes del foro
|
latestForumPosts=Últimos mensajes del foro
|
||||||
players=Jugadores
|
players=Jugadores
|
||||||
minutesPerSide=Minutos por jugador
|
minutesPerSide=Minutos por jugador
|
||||||
|
@ -84,28 +83,28 @@ oneDay=Un día
|
||||||
nbDays=%s días
|
nbDays=%s días
|
||||||
nbHours=%s horas
|
nbHours=%s horas
|
||||||
time=Tiempo
|
time=Tiempo
|
||||||
rating=Puntos
|
rating=Puntuación
|
||||||
ratingStats=Estadísticas de puntuación
|
ratingStats=Estadísticas de puntuación
|
||||||
username=Nombre de usuario
|
username=Nombre de usuario
|
||||||
usernameOrEmail=Nombre de usuario o email
|
usernameOrEmail=Nombre de usuario o email
|
||||||
password=Contraseña
|
password=Contraseña
|
||||||
haveAnAccount=¿Tienes una cuenta?
|
haveAnAccount=¿Tienes una cuenta?
|
||||||
changePassword=Cambiar contraseña
|
changePassword=Cambiar contraseña
|
||||||
changeEmail=Cambiar email
|
changeEmail=Cambiar correo
|
||||||
email=Email
|
email=Correo
|
||||||
emailIsOptional=El email es opcional. Lichess usará tu email para resetear tu contraseña si la olvidas.
|
emailIsOptional=El correo es opcional. Lichess usará tu correo para restaurar tu contraseña si la olvidas.
|
||||||
passwordReset=Cambiar contraseña
|
passwordReset=Cambiar contraseña
|
||||||
forgotPassword=¿Olvidaste tu contraseña?
|
forgotPassword=¿Olvidaste tu contraseña?
|
||||||
rank=Posición
|
rank=Posición
|
||||||
gamesPlayed=Partidas jugadas
|
gamesPlayed=Partidas jugadas
|
||||||
nbGamesWithYou=%s de juegos contigo
|
nbGamesWithYou=%s partidas contigo
|
||||||
declineInvitation=Rechazar invitación
|
declineInvitation=Rechazar invitación
|
||||||
cancel=Cancelar
|
cancel=Cancelar
|
||||||
timeOut=Tiempo agotado
|
timeOut=Tiempo agotado
|
||||||
drawOfferSent=Propuesta de tablas enviada
|
drawOfferSent=Oferta de tablas enviada
|
||||||
drawOfferDeclined=Propuesta de tablas rechazada
|
drawOfferDeclined=Oferta de tablas rechazada
|
||||||
drawOfferAccepted=Propuesta de tablas aceptada
|
drawOfferAccepted=Oferta de tablas aceptada
|
||||||
drawOfferCanceled=Propuesta de tablas cancelada
|
drawOfferCanceled=Oferta de tablas cancelada
|
||||||
whiteOffersDraw=Las blancas ofrecen tablas
|
whiteOffersDraw=Las blancas ofrecen tablas
|
||||||
blackOffersDraw=Las negras ofrecen tablas
|
blackOffersDraw=Las negras ofrecen tablas
|
||||||
whiteDeclinesDraw=Las blancas rechazan tablas
|
whiteDeclinesDraw=Las blancas rechazan tablas
|
||||||
|
@ -118,22 +117,22 @@ finished=Terminado
|
||||||
abortGame=Cancelar partida
|
abortGame=Cancelar partida
|
||||||
gameAborted=Partida cancelada
|
gameAborted=Partida cancelada
|
||||||
standard=Estándar
|
standard=Estándar
|
||||||
unlimited=Sin límite
|
unlimited=Ilimitado
|
||||||
mode=Modo
|
mode=Modo
|
||||||
casual=Amistosa
|
casual=Amistosa
|
||||||
rated=Por puntos
|
rated=Por puntos
|
||||||
thisGameIsRated=Esta partida es por puntos
|
thisGameIsRated=Esta partida es por puntos
|
||||||
rematch=Revancha
|
rematch=Revancha
|
||||||
rematchOfferSent=Petición de revancha enviada
|
rematchOfferSent=Oferta de revancha enviada
|
||||||
rematchOfferAccepted=Revancha aceptada
|
rematchOfferAccepted=Oferta de revancha aceptada
|
||||||
rematchOfferCanceled=Propuesta de revancha cancelada
|
rematchOfferCanceled=Oferta de revancha cancelada
|
||||||
rematchOfferDeclined=Propuesta de revancha rechazada
|
rematchOfferDeclined=Oferta de revancha rechazada
|
||||||
cancelRematchOffer=Cancelar propuesta de revancha
|
cancelRematchOffer=Cancelar oferta de revancha
|
||||||
viewRematch=Ver revancha
|
viewRematch=Ver revancha
|
||||||
play=Jugar
|
play=Jugar
|
||||||
inbox=Buzón de entrada
|
inbox=Recibidos
|
||||||
chatRoom=Sala de chat
|
chatRoom=Sala de chat
|
||||||
spectatorRoom=Chat del espectador
|
spectatorRoom=Chat de espectador
|
||||||
composeMessage=Escribir mensaje
|
composeMessage=Escribir mensaje
|
||||||
noNewMessages=No hay mensajes nuevos
|
noNewMessages=No hay mensajes nuevos
|
||||||
subject=Asunto
|
subject=Asunto
|
||||||
|
@ -142,17 +141,17 @@ send=Enviar
|
||||||
incrementInSeconds=Segundos de incremento
|
incrementInSeconds=Segundos de incremento
|
||||||
freeOnlineChess=Ajedrez en línea gratis
|
freeOnlineChess=Ajedrez en línea gratis
|
||||||
spectators=Espectadores:
|
spectators=Espectadores:
|
||||||
nbWins=%s de victorias
|
nbWins=%s victorias
|
||||||
nbLosses=%s de derrotas
|
nbLosses=%s derrotas
|
||||||
nbDraws=%s de tablas
|
nbDraws=%s tablas
|
||||||
exportGames=Exportar partidas
|
exportGames=Exportar partidas
|
||||||
ratingRange=Rango de puntuación
|
ratingRange=Rango de puntuación
|
||||||
giveNbSeconds=Dar %s segundos
|
giveNbSeconds=Dar %s segundos
|
||||||
premoveEnabledClickAnywhereToCancel=Premovimiento activado; hacer clic en cualquier lugar para cancelarlo
|
premoveEnabledClickAnywhereToCancel=Pre-jugada activada - Hacer clic en cualquier lugar para cancelar
|
||||||
thisPlayerUsesChessComputerAssistance=Este jugador usa un motor de ajedrez
|
thisPlayerUsesChessComputerAssistance=Este jugador usa un motor de ajedrez
|
||||||
thisPlayerArtificiallyIncreasesTheirRating=Este jugador incrementa/disminuye artificialmente su puntaje
|
thisPlayerArtificiallyIncreasesTheirRating=Este jugador incrementa/disminuye artificialmente su puntuación
|
||||||
opening=Apertura
|
opening=Apertura
|
||||||
openingExplorer=Explorador de aperturas
|
openingExplorer=Explorador de aperturas y base de datos de finales
|
||||||
takeback=Deshacer jugada
|
takeback=Deshacer jugada
|
||||||
proposeATakeback=Proponer deshacer jugada
|
proposeATakeback=Proponer deshacer jugada
|
||||||
takebackPropositionSent=Propuesta de deshacer jugada enviada
|
takebackPropositionSent=Propuesta de deshacer jugada enviada
|
||||||
|
@ -160,7 +159,7 @@ takebackPropositionDeclined=Propuesta de deshacer jugada rechazada
|
||||||
takebackPropositionAccepted=Propuesta de deshacer jugada aceptada
|
takebackPropositionAccepted=Propuesta de deshacer jugada aceptada
|
||||||
takebackPropositionCanceled=Propuesta de deshacer jugada cancelada
|
takebackPropositionCanceled=Propuesta de deshacer jugada cancelada
|
||||||
yourOpponentProposesATakeback=Tu oponente propone deshacer la jugada
|
yourOpponentProposesATakeback=Tu oponente propone deshacer la jugada
|
||||||
bookmarkThisGame=Marcar este juego
|
bookmarkThisGame=Marcar este juego como favorito
|
||||||
search=Buscar
|
search=Buscar
|
||||||
advancedSearch=Búsqueda avanzada
|
advancedSearch=Búsqueda avanzada
|
||||||
tournament=Torneo
|
tournament=Torneo
|
||||||
|
@ -169,7 +168,7 @@ tournamentPoints=Puntos de torneo
|
||||||
viewTournament=Ver torneo
|
viewTournament=Ver torneo
|
||||||
backToTournament=Regresar al torneo
|
backToTournament=Regresar al torneo
|
||||||
backToGame=Volver a la partida
|
backToGame=Volver a la partida
|
||||||
freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Ajedrez en línea gratis. Juega ajedrez en una interfaz limpia. Sin registrarse, sin publicidad, sin plugins. Juega ajedrez contra el ordenador, amigos u oponentes aleatorios.
|
freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Servidor de ajedrez en línea gratuito. Juega al ajedrez en una interfaz simple. Sin registro, sin publicidad, sin necesidad de complementos. Juega contra el ordenador, amigos u oponentes desconocidos.
|
||||||
teams=Equipos
|
teams=Equipos
|
||||||
nbMembers=%s miembros
|
nbMembers=%s miembros
|
||||||
allTeams=Todos los equipos
|
allTeams=Todos los equipos
|
||||||
|
@ -182,25 +181,25 @@ anyoneCanJoin=Cualquiera puede unirse
|
||||||
aConfirmationIsRequiredToJoin=Se requiere una confirmación para unirse
|
aConfirmationIsRequiredToJoin=Se requiere una confirmación para unirse
|
||||||
joiningPolicy=Política para unirse
|
joiningPolicy=Política para unirse
|
||||||
teamLeader=Capitán del equipo
|
teamLeader=Capitán del equipo
|
||||||
teamBestPlayers=Mejores jugadores del equipo
|
teamBestPlayers=Mejores jugadores
|
||||||
teamRecentMembers=Miembros recientes del equipo
|
teamRecentMembers=Miembros recientes
|
||||||
xJoinedTeamY=%s se unió al equipo %s
|
xJoinedTeamY=%s se unió al equipo %s
|
||||||
xCreatedTeamY=%s creó el equipo %s
|
xCreatedTeamY=%s creó el equipo %s
|
||||||
averageElo=Clasificación promedio
|
averageElo=Puntuación promedio
|
||||||
location=Ubicación
|
location=Ubicación
|
||||||
settings=Configuración
|
settings=Configuración
|
||||||
filterGames=Filtrar partidas
|
filterGames=Filtrar partidas
|
||||||
reset=Resetear
|
reset=Resetear
|
||||||
apply=Aplicar
|
apply=Enviar
|
||||||
leaderboard=Clasificación
|
leaderboard=Clasificación
|
||||||
pasteTheFenStringHere=Pega el texto FEN aquí
|
pasteTheFenStringHere=Pega el texto FEN aquí
|
||||||
pasteThePgnStringHere=Pega el texto PGN aquí
|
pasteThePgnStringHere=Pega el texto PGN aquí
|
||||||
fromPosition=Desde posición
|
fromPosition=Desde posición
|
||||||
continueFromHere=Continuar desde aquí
|
continueFromHere=Continuar desde aquí
|
||||||
importGame=Importar partida
|
importGame=Importar partida
|
||||||
nbImportedGames=%s de partidas importadas
|
nbImportedGames=%s Partidas importadas
|
||||||
thisIsAChessCaptcha=Esto es un CAPTCHA de ajedrez
|
thisIsAChessCaptcha=Esto es un CAPTCHA de ajedrez.
|
||||||
clickOnTheBoardToMakeYourMove=Haz clic en el tablero para hacer tu movimiento y demostrar que eres humano.
|
clickOnTheBoardToMakeYourMove=Haz clic en el tablero para hacer tu jugada y demostrar que eres humano.
|
||||||
notACheckmate=No es jaque mate
|
notACheckmate=No es jaque mate
|
||||||
colorPlaysCheckmateInOne=%s juegan; mate en una
|
colorPlaysCheckmateInOne=%s juegan; mate en una
|
||||||
retry=Reintentar
|
retry=Reintentar
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Vaata %s matti
|
||||||
nbBookmarks=%s järjehoidjad
|
nbBookmarks=%s järjehoidjad
|
||||||
nbPopularGames=Vaata %s populaarset
|
nbPopularGames=Vaata %s populaarset
|
||||||
nbAnalysedGames=Vaata %s analüüsituid
|
nbAnalysedGames=Vaata %s analüüsituid
|
||||||
bookmarkedByNbPlayers=Märgitud mängija %s poolt
|
|
||||||
viewInFullSize=Vaata täisekraanil
|
viewInFullSize=Vaata täisekraanil
|
||||||
logOut=Logi välja
|
logOut=Logi välja
|
||||||
signIn=Logi sisse
|
signIn=Logi sisse
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Xake-mate
|
||||||
nbBookmarks=%s partida nabarmenduak
|
nbBookmarks=%s partida nabarmenduak
|
||||||
nbPopularGames=%s jendearen gustuko partida
|
nbPopularGames=%s jendearen gustuko partida
|
||||||
nbAnalysedGames=%s Analizatutako partida kopurua
|
nbAnalysedGames=%s Analizatutako partida kopurua
|
||||||
bookmarkedByNbPlayers=%s jokalarik nabarmendu dute
|
|
||||||
viewInFullSize=Pantaila osoa
|
viewInFullSize=Pantaila osoa
|
||||||
logOut=Irten
|
logOut=Irten
|
||||||
signIn=Sartu
|
signIn=Sartu
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s کیش و مات
|
||||||
nbBookmarks=%s بازی مورد علاقه
|
nbBookmarks=%s بازی مورد علاقه
|
||||||
nbPopularGames=%s بازی پرطرفدار
|
nbPopularGames=%s بازی پرطرفدار
|
||||||
nbAnalysedGames=%s بازی آنالیز شده
|
nbAnalysedGames=%s بازی آنالیز شده
|
||||||
bookmarkedByNbPlayers=نشانه گذاری شده توسط %s بازیکن
|
|
||||||
viewInFullSize=تماشا کردن در اندازه کامل
|
viewInFullSize=تماشا کردن در اندازه کامل
|
||||||
logOut=خروج
|
logOut=خروج
|
||||||
signIn=ورود
|
signIn=ورود
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Katso %s shakkimatit
|
||||||
nbBookmarks=%s omaa kirjanmerkkiä
|
nbBookmarks=%s omaa kirjanmerkkiä
|
||||||
nbPopularGames=%s suosittua peliä
|
nbPopularGames=%s suosittua peliä
|
||||||
nbAnalysedGames=%s analysoitua peliä
|
nbAnalysedGames=%s analysoitua peliä
|
||||||
bookmarkedByNbPlayers=%s kirjanmerkkiä
|
|
||||||
viewInFullSize=Näytä täyskokoisena
|
viewInFullSize=Näytä täyskokoisena
|
||||||
logOut=Kirjaudu ulos
|
logOut=Kirjaudu ulos
|
||||||
signIn=Kirjaudu sisään
|
signIn=Kirjaudu sisään
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Voir les %s mats
|
||||||
nbBookmarks=%s favoris
|
nbBookmarks=%s favoris
|
||||||
nbPopularGames=%s parties populaires
|
nbPopularGames=%s parties populaires
|
||||||
nbAnalysedGames=%s parties analysées
|
nbAnalysedGames=%s parties analysées
|
||||||
bookmarkedByNbPlayers=Mis en favoris par %s joueurs
|
|
||||||
viewInFullSize=Agrandir
|
viewInFullSize=Agrandir
|
||||||
logOut=Déconnexion
|
logOut=Déconnexion
|
||||||
signIn=Connexion
|
signIn=Connexion
|
||||||
|
|
|
@ -59,7 +59,6 @@ viewAllNbGames=%s Cluiche
|
||||||
viewNbCheckmates=%s Marbhsháinn
|
viewNbCheckmates=%s Marbhsháinn
|
||||||
nbBookmarks=%s Leabharmharc
|
nbBookmarks=%s Leabharmharc
|
||||||
nbAnalysedGames=%s Cluichí ainilísithe
|
nbAnalysedGames=%s Cluichí ainilísithe
|
||||||
bookmarkedByNbPlayers=Leabharmharc déanta ag %s imreoir
|
|
||||||
viewInFullSize=Amharc lánmhéide
|
viewInFullSize=Amharc lánmhéide
|
||||||
logOut=Logáil amach
|
logOut=Logáil amach
|
||||||
signIn=Logáil isteach
|
signIn=Logáil isteach
|
||||||
|
|
|
@ -58,7 +58,6 @@ viewNbCheckmates=%s tul-chaisg
|
||||||
nbBookmarks=%s comharran-lìn
|
nbBookmarks=%s comharran-lìn
|
||||||
nbPopularGames=%s geamannan mòr-chòrdte
|
nbPopularGames=%s geamannan mòr-chòrdte
|
||||||
nbAnalysedGames=%s geamannan sgrùdaichte
|
nbAnalysedGames=%s geamannan sgrùdaichte
|
||||||
bookmarkedByNbPlayers=Comharra-leabhair le %s cluicheadairean
|
|
||||||
viewInFullSize=Seall sa mheud iomlan
|
viewInFullSize=Seall sa mheud iomlan
|
||||||
logOut=Log a-mach
|
logOut=Log a-mach
|
||||||
signIn=Log a-steach
|
signIn=Log a-steach
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Xaques mates
|
||||||
nbBookmarks=%s Marcadores
|
nbBookmarks=%s Marcadores
|
||||||
nbPopularGames=%s Xogos máis populares
|
nbPopularGames=%s Xogos máis populares
|
||||||
nbAnalysedGames=%s Partidas analizadas
|
nbAnalysedGames=%s Partidas analizadas
|
||||||
bookmarkedByNbPlayers=Marcado por %s xogadores
|
|
||||||
viewInFullSize=Ver a tamaño completo
|
viewInFullSize=Ver a tamaño completo
|
||||||
logOut=Pechar sesión
|
logOut=Pechar sesión
|
||||||
signIn=Iniciar sesión
|
signIn=Iniciar sesión
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s מטים
|
||||||
nbBookmarks=%s מועדפים
|
nbBookmarks=%s מועדפים
|
||||||
nbPopularGames=%s משחקים פופולריים
|
nbPopularGames=%s משחקים פופולריים
|
||||||
nbAnalysedGames=משחקים מנותחים %s
|
nbAnalysedGames=משחקים מנותחים %s
|
||||||
bookmarkedByNbPlayers=הועדף על ידי %s שחקנים
|
|
||||||
viewInFullSize=צפה בגודל מלא
|
viewInFullSize=צפה בגודל מלא
|
||||||
logOut=התנתק
|
logOut=התנתק
|
||||||
signIn=התחבר
|
signIn=התחבר
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s सह मात
|
||||||
nbBookmarks=%s पृष्ठ स्मृतियाँ
|
nbBookmarks=%s पृष्ठ स्मृतियाँ
|
||||||
nbPopularGames=%s प्रसिद्ध खेल
|
nbPopularGames=%s प्रसिद्ध खेल
|
||||||
nbAnalysedGames=%s विश्लेषित खेल
|
nbAnalysedGames=%s विश्लेषित खेल
|
||||||
bookmarkedByNbPlayers=%s खिलाड़ियों द्वारा इसकी पृष्ठ स्मृति बनायीं गयी
|
|
||||||
viewInFullSize=पूर्ण आकर में देखें
|
viewInFullSize=पूर्ण आकर में देखें
|
||||||
logOut=खाते से बाहर प्रवेश करें
|
logOut=खाते से बाहर प्रवेश करें
|
||||||
signIn=खाते में प्रवेश करें
|
signIn=खाते में प्रवेश करें
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Pogledaj %s šah-mata
|
||||||
nbBookmarks=Označeno %s partija
|
nbBookmarks=Označeno %s partija
|
||||||
nbPopularGames=%s popularnih partija
|
nbPopularGames=%s popularnih partija
|
||||||
nbAnalysedGames=%s analiziranih partija
|
nbAnalysedGames=%s analiziranih partija
|
||||||
bookmarkedByNbPlayers=Označilo %s igrača
|
|
||||||
viewInFullSize=Pogledaj u punoj veličini
|
viewInFullSize=Pogledaj u punoj veličini
|
||||||
logOut=Odjavi se
|
logOut=Odjavi se
|
||||||
signIn=Prijavi se
|
signIn=Prijavi se
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Matt
|
||||||
nbBookmarks=%s Megjelölés
|
nbBookmarks=%s Megjelölés
|
||||||
nbPopularGames=%s Népszerű Játék
|
nbPopularGames=%s Népszerű Játék
|
||||||
nbAnalysedGames=%s Elemzett játék
|
nbAnalysedGames=%s Elemzett játék
|
||||||
bookmarkedByNbPlayers=%s játékos könyvjelzőzte
|
|
||||||
viewInFullSize=Teljes méret
|
viewInFullSize=Teljes méret
|
||||||
logOut=Kijelentkezés
|
logOut=Kijelentkezés
|
||||||
signIn=Bejelentkezés
|
signIn=Bejelentkezés
|
||||||
|
|
|
@ -58,7 +58,6 @@ viewNbCheckmates=Տեսնել %s մատերը
|
||||||
nbBookmarks=%s Էջանիշեր
|
nbBookmarks=%s Էջանիշեր
|
||||||
nbPopularGames=%s Հանրաճանաչ խաղերը
|
nbPopularGames=%s Հանրաճանաչ խաղերը
|
||||||
nbAnalysedGames=%s Վերլուծված խաղեր
|
nbAnalysedGames=%s Վերլուծված խաղեր
|
||||||
bookmarkedByNbPlayers=էջանշվել է %s խաղացողների կողնից
|
|
||||||
viewInFullSize=Մեծացնել չափը
|
viewInFullSize=Մեծացնել չափը
|
||||||
logOut=Ելք
|
logOut=Ելք
|
||||||
signIn=Մուտք
|
signIn=Մուտք
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
playWithAFriend=Bermain melawan teman
|
playWithAFriend=Bermain melawan teman
|
||||||
playWithTheMachine=Bermain melawan komputer
|
playWithTheMachine=Bermain melawan komputer
|
||||||
toInviteSomeoneToPlayGiveThisUrl=Untuk mengundang seseorang untuk bermain, berikan URL berikut
|
toInviteSomeoneToPlayGiveThisUrl=Undang yang lain dengan memberikan URL berikut
|
||||||
gameOver=Permainan berakhir
|
gameOver=Permainan berakhir
|
||||||
waitingForOpponent=Menunggu lawan
|
waitingForOpponent=Menunggu lawan
|
||||||
waiting=Menunggu
|
waiting=Menunggu
|
||||||
yourTurn=Giliran anda
|
yourTurn=Giliran Anda
|
||||||
aiNameLevelAiLevel=%s level %s
|
aiNameLevelAiLevel=%s level %s
|
||||||
level=Level
|
level=Level
|
||||||
toggleTheChat=Ganti tampilan chat
|
toggleTheChat=Ganti tampilan chat
|
||||||
toggleSound=Aktifkan/nonaktifkan suara
|
toggleSound=Aktifkan/nonaktifkan suara
|
||||||
chat=mengobrol
|
chat=Mengobrol
|
||||||
resign=Menyerah
|
resign=Menyerah
|
||||||
checkmate=Skakmat
|
checkmate=Skakmat
|
||||||
stalemate=Pat
|
stalemate=Pat
|
||||||
|
@ -19,27 +19,27 @@ randomColor=Warna acak
|
||||||
createAGame=Mulai permainan baru
|
createAGame=Mulai permainan baru
|
||||||
whiteIsVictorious=Putih menang
|
whiteIsVictorious=Putih menang
|
||||||
blackIsVictorious=Hitam menang
|
blackIsVictorious=Hitam menang
|
||||||
kingInTheCenter=Raja di tengah
|
kingInTheCenter=Raja telah di centrum
|
||||||
threeChecks=Tiga skak
|
threeChecks=Tiga kali skak
|
||||||
raceFinished=Balapan berakhir
|
raceFinished=Balapan telah berakhir
|
||||||
variantEnding=Variasi Babak Akhir
|
variantEnding=Variasi Babak Akhir
|
||||||
newOpponent=Penantang baru
|
newOpponent=Penantang baru
|
||||||
yourOpponentWantsToPlayANewGameWithYou=Lawan anda ingin bermain lagi dengan anda
|
yourOpponentWantsToPlayANewGameWithYou=Lawan Anda ingin bermain lagi dengan Anda
|
||||||
joinTheGame=Ikuti permainan
|
joinTheGame=Ikuti permainan
|
||||||
whitePlays=Giliran putih
|
whitePlays=Putih melangkah
|
||||||
blackPlays=Giliran hitam
|
blackPlays=Hitam melangkah
|
||||||
theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Pemain lainnya telah meninggalkan permainan. Anda bisa klaim kemenangan, menyatakan remis, atau menunggunya.
|
theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Pemain lainnya telah meninggalkan permainan. Anda bisa klaim kemenangan, menyatakan remis, atau menunggunya.
|
||||||
makeYourOpponentResign=Buat lawan anda menyerah.
|
makeYourOpponentResign=Klaim menang
|
||||||
forceResignation=Klaim menang
|
forceResignation=Klaim menang
|
||||||
forceDraw=Paksa remis
|
forceDraw=Nyatakan remis
|
||||||
talkInChat=Bicara dalam chat
|
talkInChat=Silahkan mengobrol dengan sopan
|
||||||
theFirstPersonToComeOnThisUrlWillPlayWithYou=Orang pertama yang datang ke URL ini akan bermain dengan anda
|
theFirstPersonToComeOnThisUrlWillPlayWithYou=Orang pertama yang datang ke URL ini akan bermain dengan Anda
|
||||||
whiteResigned=Putih menyerah
|
whiteResigned=Putih menyerah
|
||||||
blackResigned=Hitam menyerah
|
blackResigned=Hitam menyerah
|
||||||
whiteLeftTheGame=Putih telah meninggalkan permainan
|
whiteLeftTheGame=Putih telah meninggalkan permainan
|
||||||
blackLeftTheGame=Hitam telah meninggalkan permainan
|
blackLeftTheGame=Hitam telah meninggalkan permainan
|
||||||
shareThisUrlToLetSpectatorsSeeTheGame=Berbagi URL ini untuk mengundang orang menonton permainan
|
shareThisUrlToLetSpectatorsSeeTheGame=Berbagi URL ini untuk mengundang orang menonton permainan
|
||||||
theComputerAnalysisHasFailed=Analisis komputer gagal
|
theComputerAnalysisHasFailed=Analisis komputer gagal dilakukan
|
||||||
viewTheComputerAnalysis=Lihat analisis komputer
|
viewTheComputerAnalysis=Lihat analisis komputer
|
||||||
requestAComputerAnalysis=Minta analisis komputer
|
requestAComputerAnalysis=Minta analisis komputer
|
||||||
computerAnalysis=Analisis komputer
|
computerAnalysis=Analisis komputer
|
||||||
|
@ -49,23 +49,22 @@ mistakes=Kesalahan
|
||||||
inaccuracies=Ketidaktepatan
|
inaccuracies=Ketidaktepatan
|
||||||
moveTimes=Waktu gerak
|
moveTimes=Waktu gerak
|
||||||
flipBoard=Putar papan catur
|
flipBoard=Putar papan catur
|
||||||
threefoldRepetition=Pengulangan 3x posisi sama
|
threefoldRepetition=Pengulangan 3x posisi yang sama
|
||||||
claimADraw=Klaim remis
|
claimADraw=Klaim remis
|
||||||
offerDraw=Tawar remis
|
offerDraw=Tawarkan remis
|
||||||
draw=Remis
|
draw=Remis
|
||||||
nbConnectedPlayers=%s pemain tersambung
|
nbConnectedPlayers=%s pemain tersambung
|
||||||
gamesBeingPlayedRightNow=Permainan saat ini
|
gamesBeingPlayedRightNow=Permainan saat ini
|
||||||
viewAllNbGames=Lihat semua %s Permainan
|
viewAllNbGames=Lihat semua %s Permainan
|
||||||
viewNbCheckmates=Lihat semua %s Skakmat
|
viewNbCheckmates=Lihat semua %s Skakmat
|
||||||
nbBookmarks=%s Simpan halaman
|
nbBookmarks=%s Halaman Ditandai
|
||||||
nbPopularGames=%s Permainan populer
|
nbPopularGames=%s Permainan Terpopuler
|
||||||
nbAnalysedGames=%s Analisa permainan
|
nbAnalysedGames=%s Analisa permainan
|
||||||
bookmarkedByNbPlayers=Halaman telah ditandai oleh %s pemain
|
|
||||||
viewInFullSize=Lihat dalam ukuran penuh
|
viewInFullSize=Lihat dalam ukuran penuh
|
||||||
logOut=Keluar
|
logOut=Keluar
|
||||||
signIn=Masuk
|
signIn=Masuk
|
||||||
newToLichess=Baru di Lichess?
|
newToLichess=Baru di Lichess?
|
||||||
youNeedAnAccountToDoThat=Anda membutuhkan nama pengguna untuk melakukannya
|
youNeedAnAccountToDoThat=Anda perlu mendaftar untuk melakukannya
|
||||||
signUp=Daftar
|
signUp=Daftar
|
||||||
computersAreNotAllowedToPlay=Komputer maupun pemain yang menggunakan bantuan komputer dilarang bermain. Mohon untuk tidak menggunakan bantuan dari program komputer, database, maupun pemain lain ketika bermain. Juga menggunakan beberapa akun bersamaan sangat dilarang dan akan mengakibatkan akun anda di-BANNED!
|
computersAreNotAllowedToPlay=Komputer maupun pemain yang menggunakan bantuan komputer dilarang bermain. Mohon untuk tidak menggunakan bantuan dari program komputer, database, maupun pemain lain ketika bermain. Juga menggunakan beberapa akun bersamaan sangat dilarang dan akan mengakibatkan akun anda di-BANNED!
|
||||||
games=Permainan
|
games=Permainan
|
||||||
|
@ -73,9 +72,9 @@ forum=Forum
|
||||||
xPostedInForumY=%s postingan dalam topik %s
|
xPostedInForumY=%s postingan dalam topik %s
|
||||||
latestForumPosts=Pesan forum terbaru
|
latestForumPosts=Pesan forum terbaru
|
||||||
players=Pemain
|
players=Pemain
|
||||||
minutesPerSide=Menit untuk tiap sisi
|
minutesPerSide=Menit untuk tiap pihak
|
||||||
variant=Variasi
|
variant=Variasi permainan
|
||||||
variants=Varian
|
variants=Varian permainan
|
||||||
timeControl=Kontrol waktu
|
timeControl=Kontrol waktu
|
||||||
realTime=Langsung
|
realTime=Langsung
|
||||||
correspondence=Korespondensi
|
correspondence=Korespondensi
|
||||||
|
@ -87,7 +86,7 @@ time=Waktu
|
||||||
rating=Rating
|
rating=Rating
|
||||||
ratingStats=Statistik rating
|
ratingStats=Statistik rating
|
||||||
username=Nama pengguna
|
username=Nama pengguna
|
||||||
usernameOrEmail=Nama pengguna
|
usernameOrEmail=Nama pengguna atau email
|
||||||
password=Kata kunci
|
password=Kata kunci
|
||||||
haveAnAccount=Punya akun?
|
haveAnAccount=Punya akun?
|
||||||
changePassword=Ganti kata kunci
|
changePassword=Ganti kata kunci
|
||||||
|
|
|
@ -45,7 +45,6 @@ viewNbCheckmates=%s Mortoshaki
|
||||||
nbBookmarks=%s Paginomarki
|
nbBookmarks=%s Paginomarki
|
||||||
nbPopularGames=%s Populara Ludi
|
nbPopularGames=%s Populara Ludi
|
||||||
nbAnalysedGames=%s Analizita Ludi
|
nbAnalysedGames=%s Analizita Ludi
|
||||||
bookmarkedByNbPlayers=Paginomarkizita da %s luderi
|
|
||||||
viewInFullSize=Vidar plengrande
|
viewInFullSize=Vidar plengrande
|
||||||
logOut=Eksalutar
|
logOut=Eksalutar
|
||||||
signIn=Ensalutar
|
signIn=Ensalutar
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Mát
|
||||||
nbBookmarks=%s Geymt
|
nbBookmarks=%s Geymt
|
||||||
nbPopularGames=%s Vinsælir leikir
|
nbPopularGames=%s Vinsælir leikir
|
||||||
nbAnalysedGames=%s Yfirfarnir Leikir
|
nbAnalysedGames=%s Yfirfarnir Leikir
|
||||||
bookmarkedByNbPlayers=Geymt af %s leikmönnun
|
|
||||||
viewInFullSize=Skoða í fullri mynd
|
viewInFullSize=Skoða í fullri mynd
|
||||||
logOut=Skrá út
|
logOut=Skrá út
|
||||||
signIn=Skrá inn
|
signIn=Skrá inn
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Scacchi matti
|
||||||
nbBookmarks=%s Preferiti
|
nbBookmarks=%s Preferiti
|
||||||
nbPopularGames=%s Partite più viste
|
nbPopularGames=%s Partite più viste
|
||||||
nbAnalysedGames=%s Partite analizzate
|
nbAnalysedGames=%s Partite analizzate
|
||||||
bookmarkedByNbPlayers=Preferito da %s giocatori
|
|
||||||
viewInFullSize=Visualizza a schermo intero
|
viewInFullSize=Visualizza a schermo intero
|
||||||
logOut=Esci
|
logOut=Esci
|
||||||
signIn=Entra
|
signIn=Entra
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=チェックメイト(全%s回)を見る
|
||||||
nbBookmarks=%s個の ブックマーク
|
nbBookmarks=%s個の ブックマーク
|
||||||
nbPopularGames=%s 局の人気の対局
|
nbPopularGames=%s 局の人気の対局
|
||||||
nbAnalysedGames=%s 局の解析済み対局
|
nbAnalysedGames=%s 局の解析済み対局
|
||||||
bookmarkedByNbPlayers=%s 人がブックマークしています
|
|
||||||
viewInFullSize=フルサイズで見る
|
viewInFullSize=フルサイズで見る
|
||||||
logOut=ログアウト
|
logOut=ログアウト
|
||||||
signIn=ログイン
|
signIn=ログイン
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s caxmati
|
||||||
nbBookmarks=%s da se tcita
|
nbBookmarks=%s da se tcita
|
||||||
nbPopularGames=%s sopselnei nunjvi
|
nbPopularGames=%s sopselnei nunjvi
|
||||||
nbAnalysedGames=%s da se lanli selkei
|
nbAnalysedGames=%s da se lanli selkei
|
||||||
bookmarkedByNbPlayers=gau %s da tcita
|
|
||||||
viewInFullSize=viska fau lo nu nilbra fa lo cnano
|
viewInFullSize=viska fau lo nu nilbra fa lo cnano
|
||||||
logOut=co'u pilno lo jaspu
|
logOut=co'u pilno lo jaspu
|
||||||
signIn=co'a pilno lo jaspu
|
signIn=co'a pilno lo jaspu
|
||||||
|
|
|
@ -59,7 +59,6 @@ viewNbCheckmates=%s შამათი
|
||||||
nbBookmarks=%s ჩანიშნული თამაში
|
nbBookmarks=%s ჩანიშნული თამაში
|
||||||
nbPopularGames=%s პოპულარული თამაში
|
nbPopularGames=%s პოპულარული თამაში
|
||||||
nbAnalysedGames=%s გაანალიზებული თამაში
|
nbAnalysedGames=%s გაანალიზებული თამაში
|
||||||
bookmarkedByNbPlayers=ჩანიშნულია %s მოთამაშის მიერ
|
|
||||||
viewInFullSize=სრული ზომით ნახვა
|
viewInFullSize=სრული ზომით ნახვა
|
||||||
logOut=გამოსვლა
|
logOut=გამოსვლა
|
||||||
signIn=შესვლა
|
signIn=შესვლა
|
||||||
|
|
|
@ -55,7 +55,6 @@ viewNbCheckmates=Walli %s mat
|
||||||
nbBookmarks=%s Inurifen
|
nbBookmarks=%s Inurifen
|
||||||
nbPopularGames=%s Timlilit yimeẓwiyen
|
nbPopularGames=%s Timlilit yimeẓwiyen
|
||||||
nbAnalysedGames=%s Timlilit iselḍen
|
nbAnalysedGames=%s Timlilit iselḍen
|
||||||
bookmarkedByNbPlayers=Erren s umenyaf ɣer %s imariren
|
|
||||||
viewInFullSize=Ssemɣweṛ
|
viewInFullSize=Ssemɣweṛ
|
||||||
logOut=Asenser
|
logOut=Asenser
|
||||||
signIn=Tuqqna
|
signIn=Tuqqna
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s건의 체크메이트
|
||||||
nbBookmarks=%s개의 즐겨찾기
|
nbBookmarks=%s개의 즐겨찾기
|
||||||
nbPopularGames=%s개의 인기 게임
|
nbPopularGames=%s개의 인기 게임
|
||||||
nbAnalysedGames=%s개의 분석된 게임
|
nbAnalysedGames=%s개의 분석된 게임
|
||||||
bookmarkedByNbPlayers=%s명의 플레이어가 즐겨찾기 함
|
|
||||||
viewInFullSize=크게 보기
|
viewInFullSize=크게 보기
|
||||||
logOut=로그아웃
|
logOut=로그아웃
|
||||||
signIn=로그인
|
signIn=로그인
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s matti
|
||||||
nbBookmarks=%s bookmarks
|
nbBookmarks=%s bookmarks
|
||||||
nbPopularGames=%s populares lusiones
|
nbPopularGames=%s populares lusiones
|
||||||
nbAnalysedGames=%s studiti lusiones
|
nbAnalysedGames=%s studiti lusiones
|
||||||
bookmarkedByNbPlayers=A %s lusoribus signatis
|
|
||||||
viewInFullSize=Integro modo vide
|
viewInFullSize=Integro modo vide
|
||||||
logOut=Conventum claudere
|
logOut=Conventum claudere
|
||||||
signIn=Conventum aperire
|
signIn=Conventum aperire
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s cH3cKm@73$
|
||||||
nbBookmarks=%s 800kM@rk$
|
nbBookmarks=%s 800kM@rk$
|
||||||
nbPopularGames=%s P0pUl@r gam3$
|
nbPopularGames=%s P0pUl@r gam3$
|
||||||
nbAnalysedGames=%s @nalY$ed GaM35
|
nbAnalysedGames=%s @nalY$ed GaM35
|
||||||
bookmarkedByNbPlayers=8o0kM@rk3d 8y %s pl@Y3r5
|
|
||||||
viewInFullSize=Vi3w iN FulL 5iZ3
|
viewInFullSize=Vi3w iN FulL 5iZ3
|
||||||
logOut=sIgn 0u7
|
logOut=sIgn 0u7
|
||||||
signIn=5IgN IN
|
signIn=5IgN IN
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Matų: %s
|
||||||
nbBookmarks=Pasižymėtų partijų: %s
|
nbBookmarks=Pasižymėtų partijų: %s
|
||||||
nbPopularGames=Populiarių partijų: %s
|
nbPopularGames=Populiarių partijų: %s
|
||||||
nbAnalysedGames=Išanalizuotų partijų: %s
|
nbAnalysedGames=Išanalizuotų partijų: %s
|
||||||
bookmarkedByNbPlayers=Pasižymėjusių žaidėjų: %s
|
|
||||||
viewInFullSize=Žiūrėti visu dydžiu
|
viewInFullSize=Žiūrėti visu dydžiu
|
||||||
logOut=Atsijungti
|
logOut=Atsijungti
|
||||||
signIn=Prisijungti
|
signIn=Prisijungti
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Apskatīt %s matus
|
||||||
nbBookmarks=%s Grāmatzīmes
|
nbBookmarks=%s Grāmatzīmes
|
||||||
nbPopularGames=%s Populārās spēles
|
nbPopularGames=%s Populārās spēles
|
||||||
nbAnalysedGames=%s Analizētās spēles
|
nbAnalysedGames=%s Analizētās spēles
|
||||||
bookmarkedByNbPlayers=Atzīmējuši %s spēlētāji
|
|
||||||
viewInFullSize=Skatīt pilnā izmērā
|
viewInFullSize=Skatīt pilnā izmērā
|
||||||
logOut=Atslēgties
|
logOut=Atslēgties
|
||||||
signIn=Pieslēgties
|
signIn=Pieslēgties
|
||||||
|
|
|
@ -55,7 +55,6 @@ viewNbCheckmates=%s Echéc et mat
|
||||||
nbBookmarks=%s Bookmarks
|
nbBookmarks=%s Bookmarks
|
||||||
nbPopularGames=%s ny lalao malaza
|
nbPopularGames=%s ny lalao malaza
|
||||||
nbAnalysedGames=%s ny lalao voahadihady
|
nbAnalysedGames=%s ny lalao voahadihady
|
||||||
bookmarkedByNbPlayers=Nankafizin'ny mpilalao %s
|
|
||||||
viewInFullSize=Alehibiazo
|
viewInFullSize=Alehibiazo
|
||||||
logOut=Mivoaha
|
logOut=Mivoaha
|
||||||
signIn=Midira
|
signIn=Midira
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Види %s шах-матови
|
||||||
nbBookmarks=%s обележувачи
|
nbBookmarks=%s обележувачи
|
||||||
nbPopularGames=%s омилени игри
|
nbPopularGames=%s омилени игри
|
||||||
nbAnalysedGames=%s анализирани игри
|
nbAnalysedGames=%s анализирани игри
|
||||||
bookmarkedByNbPlayers=Обележано од %s играчи
|
|
||||||
viewInFullSize=Гледај во полна големина
|
viewInFullSize=Гледај во полна големина
|
||||||
logOut=Одјави се
|
logOut=Одјави се
|
||||||
signIn=Најави се
|
signIn=Најави се
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Бүх %s мадаар төгссөн өргүүд
|
||||||
nbBookmarks=%s хадгалсан өргүүд
|
nbBookmarks=%s хадгалсан өргүүд
|
||||||
nbPopularGames=%s хамгийн их хадгалагдсан өргүүд
|
nbPopularGames=%s хамгийн их хадгалагдсан өргүүд
|
||||||
nbAnalysedGames=%s шинжилгээ хийгдсэн өргүүд
|
nbAnalysedGames=%s шинжилгээ хийгдсэн өргүүд
|
||||||
bookmarkedByNbPlayers=%s гишүүд энэхүү өргийг хадгалсан байна
|
|
||||||
viewInFullSize=Бүрэн хэмжээсээр харах
|
viewInFullSize=Бүрэн хэмжээсээр харах
|
||||||
logOut=Гарах
|
logOut=Гарах
|
||||||
signIn=Нэвтрэх
|
signIn=Нэвтрэх
|
||||||
|
|
|
@ -56,7 +56,6 @@ viewNbCheckmates=सर्व %s शह देउन मात पाहा
|
||||||
nbBookmarks=%s आवडते
|
nbBookmarks=%s आवडते
|
||||||
nbPopularGames=%s प्रसिद्ध डाव
|
nbPopularGames=%s प्रसिद्ध डाव
|
||||||
nbAnalysedGames=%s विश्लेषीत खेळ
|
nbAnalysedGames=%s विश्लेषीत खेळ
|
||||||
bookmarkedByNbPlayers=%s यांचे आवडते डाव
|
|
||||||
viewInFullSize=अधिकतम आकारात पाहा
|
viewInFullSize=अधिकतम आकारात पाहा
|
||||||
logOut=बाहेर पडा
|
logOut=बाहेर पडा
|
||||||
signIn=प्रवेश करा
|
signIn=प्रवेश करा
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Se %s sjakkmatter
|
||||||
nbBookmarks=%s bokmerker
|
nbBookmarks=%s bokmerker
|
||||||
nbPopularGames=%s populære partier
|
nbPopularGames=%s populære partier
|
||||||
nbAnalysedGames=%s analyserte partier
|
nbAnalysedGames=%s analyserte partier
|
||||||
bookmarkedByNbPlayers=Bokmerket av %s spillere
|
|
||||||
viewInFullSize=Se i full størrelse
|
viewInFullSize=Se i full størrelse
|
||||||
logOut=Logg ut
|
logOut=Logg ut
|
||||||
signIn=Logg inn
|
signIn=Logg inn
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Alle %s partijen met schaakmat
|
||||||
nbBookmarks=%s Favorieten
|
nbBookmarks=%s Favorieten
|
||||||
nbPopularGames=%s Populaire partijen
|
nbPopularGames=%s Populaire partijen
|
||||||
nbAnalysedGames=%s Geanalyseerde partijen
|
nbAnalysedGames=%s Geanalyseerde partijen
|
||||||
bookmarkedByNbPlayers=Aan favorieten toegevoegd door %s spelers
|
|
||||||
viewInFullSize=Bekijk op volledige grootte
|
viewInFullSize=Bekijk op volledige grootte
|
||||||
logOut=Afmelden
|
logOut=Afmelden
|
||||||
signIn=Aanmelden
|
signIn=Aanmelden
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Sjå %s sjakkmatt
|
||||||
nbBookmarks=%s Bokmerke
|
nbBookmarks=%s Bokmerke
|
||||||
nbPopularGames=%s Populære Parti
|
nbPopularGames=%s Populære Parti
|
||||||
nbAnalysedGames=%s Analyserte Parti
|
nbAnalysedGames=%s Analyserte Parti
|
||||||
bookmarkedByNbPlayers=Bokmerka av %s spelarar
|
|
||||||
viewInFullSize=Sjå i full storleik
|
viewInFullSize=Sjå i full storleik
|
||||||
logOut=Logg ut
|
logOut=Logg ut
|
||||||
signIn=Logg inn
|
signIn=Logg inn
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s matów
|
||||||
nbBookmarks=%s zakładek
|
nbBookmarks=%s zakładek
|
||||||
nbPopularGames=%s popularnych gier
|
nbPopularGames=%s popularnych gier
|
||||||
nbAnalysedGames=%s przeanalizowanych gier
|
nbAnalysedGames=%s przeanalizowanych gier
|
||||||
bookmarkedByNbPlayers=Dodane do zakładek przez %s graczy
|
|
||||||
viewInFullSize=Zobacz w pełnym rozmiarze
|
viewInFullSize=Zobacz w pełnym rozmiarze
|
||||||
logOut=Wyloguj się
|
logOut=Wyloguj się
|
||||||
signIn=Zaloguj się
|
signIn=Zaloguj się
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Xeques-mates
|
||||||
nbBookmarks=%s Favoritos
|
nbBookmarks=%s Favoritos
|
||||||
nbPopularGames=%s Partidas populares
|
nbPopularGames=%s Partidas populares
|
||||||
nbAnalysedGames=%s Partidas analisadas
|
nbAnalysedGames=%s Partidas analisadas
|
||||||
bookmarkedByNbPlayers=Favorita de %s jogadores
|
|
||||||
viewInFullSize=Ver em tela cheia
|
viewInFullSize=Ver em tela cheia
|
||||||
logOut=Sair
|
logOut=Sair
|
||||||
signIn=Entrar
|
signIn=Entrar
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s maturi
|
||||||
nbBookmarks=%s marcate
|
nbBookmarks=%s marcate
|
||||||
nbPopularGames=%s partide populare
|
nbPopularGames=%s partide populare
|
||||||
nbAnalysedGames=%s partide analizate
|
nbAnalysedGames=%s partide analizate
|
||||||
bookmarkedByNbPlayers=Marcat de %s jucatori
|
|
||||||
viewInFullSize=Vezi la dimensiune completă
|
viewInFullSize=Vezi la dimensiune completă
|
||||||
logOut=Deconectare
|
logOut=Deconectare
|
||||||
signIn=Autentificare
|
signIn=Autentificare
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Посмотреть все партии %s, закончивш
|
||||||
nbBookmarks=%s закладки
|
nbBookmarks=%s закладки
|
||||||
nbPopularGames=%s популярные игры
|
nbPopularGames=%s популярные игры
|
||||||
nbAnalysedGames=%s проанализированных игр
|
nbAnalysedGames=%s проанализированных игр
|
||||||
bookmarkedByNbPlayers=Добавило в закладки %s игроков
|
|
||||||
viewInFullSize=Посмотреть в полном размере
|
viewInFullSize=Посмотреть в полном размере
|
||||||
logOut=Выйти
|
logOut=Выйти
|
||||||
signIn=Войти
|
signIn=Войти
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s Šach-maty
|
||||||
nbBookmarks=%s Záložky
|
nbBookmarks=%s Záložky
|
||||||
nbPopularGames=%s Populárne hry
|
nbPopularGames=%s Populárne hry
|
||||||
nbAnalysedGames=%s Analyzovaných hier
|
nbAnalysedGames=%s Analyzovaných hier
|
||||||
bookmarkedByNbPlayers=Záložku uložilo %s hráčov
|
|
||||||
viewInFullSize=Zobraziť v plnej veľkosti
|
viewInFullSize=Zobraziť v plnej veľkosti
|
||||||
logOut=Odhlásiť sa
|
logOut=Odhlásiť sa
|
||||||
signIn=Prihlásiť sa
|
signIn=Prihlásiť sa
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=%s mat pozicij
|
||||||
nbBookmarks=%s zaznamkov
|
nbBookmarks=%s zaznamkov
|
||||||
nbPopularGames=%s priljubljenih partij
|
nbPopularGames=%s priljubljenih partij
|
||||||
nbAnalysedGames=%s analiziranih Iger
|
nbAnalysedGames=%s analiziranih Iger
|
||||||
bookmarkedByNbPlayers=%s krat označeno
|
|
||||||
viewInFullSize=Pogled v polni velikosti
|
viewInFullSize=Pogled v polni velikosti
|
||||||
logOut=Odjava
|
logOut=Odjava
|
||||||
signIn=Prijava
|
signIn=Prijava
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Shihni shah-matet %s
|
||||||
nbBookmarks=%s Faqeruajtës
|
nbBookmarks=%s Faqeruajtës
|
||||||
nbPopularGames=%s Lojra Popullore
|
nbPopularGames=%s Lojra Popullore
|
||||||
nbAnalysedGames=%s Lojra të shqyrtuara
|
nbAnalysedGames=%s Lojra të shqyrtuara
|
||||||
bookmarkedByNbPlayers=Faqeruajtur prej %s lojtarësh
|
|
||||||
viewInFullSize=Shihe në madhësi të plotë
|
viewInFullSize=Shihe në madhësi të plotë
|
||||||
logOut=Dilni
|
logOut=Dilni
|
||||||
signIn=Hyni
|
signIn=Hyni
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Види %s шахматове
|
||||||
nbBookmarks=%s Обележивачи
|
nbBookmarks=%s Обележивачи
|
||||||
nbPopularGames=%s Популарне партије
|
nbPopularGames=%s Популарне партије
|
||||||
nbAnalysedGames=%s Анализирана партија
|
nbAnalysedGames=%s Анализирана партија
|
||||||
bookmarkedByNbPlayers=Обележено од %s играча
|
|
||||||
viewInFullSize=Погледај у пуној величини
|
viewInFullSize=Погледај у пуној величини
|
||||||
logOut=Одјави се
|
logOut=Одјави се
|
||||||
signIn=Пријави се
|
signIn=Пријави се
|
||||||
|
|
|
@ -60,7 +60,6 @@ viewNbCheckmates=Visa %s schackmatt
|
||||||
nbBookmarks=%s Bokmärken
|
nbBookmarks=%s Bokmärken
|
||||||
nbPopularGames=%s Populära partier
|
nbPopularGames=%s Populära partier
|
||||||
nbAnalysedGames=%s Analyserade partier
|
nbAnalysedGames=%s Analyserade partier
|
||||||
bookmarkedByNbPlayers=Bokmärkt av %s spelare
|
|
||||||
viewInFullSize=Visa i full storlek
|
viewInFullSize=Visa i full storlek
|
||||||
logOut=Logga ut
|
logOut=Logga ut
|
||||||
signIn=Logga in
|
signIn=Logga in
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue