From 98995e464322a77212b66c01d95bcf82a6e4a51f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Jun 2025 05:26:14 +0000 Subject: [PATCH 1/9] Bump pbkdf2 from 3.0.17 to 3.1.3 Bumps [pbkdf2](https://github.com/crypto-browserify/pbkdf2) from 3.0.17 to 3.1.3. - [Changelog](https://github.com/browserify/pbkdf2/blob/master/CHANGELOG.md) - [Commits](https://github.com/crypto-browserify/pbkdf2/compare/v3.0.17...v3.1.3) --- updated-dependencies: - dependency-name: pbkdf2 dependency-version: 3.1.3 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 211 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index 677a4b52..6cd83818 100644 --- a/yarn.lock +++ b/yarn.lock @@ -662,6 +662,12 @@ available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + dependencies: + possible-typed-array-names "^1.0.0" + babelify@^10.0.0: version "10.0.0" resolved "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz" @@ -940,6 +946,13 @@ cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: version "1.1.0" resolved "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz" +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" @@ -947,6 +960,22 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" + +call-bound@^1.0.3, call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + camel-case@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" @@ -1168,7 +1197,7 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: +create-hash@^1.1.0, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" dependencies: @@ -1178,7 +1207,16 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hash@~1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" dependencies: @@ -1260,6 +1298,14 @@ default-resolution@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" @@ -1357,6 +1403,14 @@ domutils@1.5: dom-serializer "0" domelementtype "1" +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: version "0.1.4" resolved "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz" @@ -1440,6 +1494,20 @@ es-abstract@^1.18.5: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + dependencies: + es-errors "^1.3.0" + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" @@ -1720,6 +1788,12 @@ flux@^4.0.3: fbemitter "^3.0.0" fbjs "^3.0.1" +for-each@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" + dependencies: + is-callable "^1.2.7" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" @@ -1766,6 +1840,10 @@ function-bind@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" @@ -1786,6 +1864,28 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" +get-intrinsic@^1.2.4, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" @@ -1880,6 +1980,10 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.2.3" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz" @@ -2017,16 +2121,32 @@ has-gulplog@^0.1.0: dependencies: sparkles "^1.0.0" +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + dependencies: + es-define-property "^1.0.0" + has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + has-tostringtag@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" dependencies: has-symbols "^1.0.2" +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + dependencies: + has-symbols "^1.0.3" + has-value@^0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" @@ -2060,6 +2180,12 @@ has@^1.0.0, has@^1.0.3: dependencies: function-bind "^1.1.1" +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + hash-base@^3.0.0: version "3.0.4" resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz" @@ -2074,6 +2200,12 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + dependencies: + function-bind "^1.1.2" + he@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" @@ -2249,6 +2381,10 @@ is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" +is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz" @@ -2394,6 +2530,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-typed-array@^1.1.14: + version "1.1.15" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" + dependencies: + which-typed-array "^1.1.16" + is-typed-array@^1.1.3, is-typed-array@^1.1.7: version "1.1.8" resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz" @@ -2436,6 +2578,10 @@ isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -2857,6 +3003,10 @@ matchdep@^2.0.0: resolve "^1.4.0" stack-trace "0.0.10" +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" @@ -3226,14 +3376,15 @@ path-type@^1.0.0: pinkie-promise "^2.0.0" pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz" + version "3.1.3" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.3.tgz#8be674d591d65658113424592a95d1517318dd4b" dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" + create-hash "~1.1.3" + create-hmac "^1.1.7" + ripemd160 "=2.0.1" + safe-buffer "^5.2.1" + sha.js "^2.4.11" + to-buffer "^1.2.0" picocolors@^1.0.0: version "1.0.0" @@ -3280,6 +3431,10 @@ posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" +possible-typed-array-names@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" + postcss@^8.4.27: version "8.4.35" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" @@ -3610,6 +3765,13 @@ rimraf@^2.6.2: dependencies: glob "^7.1.3" +ripemd160@=2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" @@ -3666,6 +3828,17 @@ set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" @@ -3679,7 +3852,7 @@ setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" -sha.js@^2.4.0, sha.js@^2.4.8: +sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" dependencies: @@ -3988,6 +4161,14 @@ to-absolute-glob@^2.0.0: is-absolute "^1.0.0" is-negated-glob "^1.0.0" +to-buffer@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.2.1.tgz#2ce650cdb262e9112a18e65dc29dcb513c8155e0" + dependencies: + isarray "^2.0.5" + safe-buffer "^5.2.1" + typed-array-buffer "^1.0.3" + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" @@ -4040,6 +4221,14 @@ type@^2.7.2: version "2.7.2" resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-typed-array "^1.1.14" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" @@ -4302,6 +4491,18 @@ which-module@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz" +which-typed-array@^1.1.16: + version "1.1.19" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + which-typed-array@^1.1.2: version "1.1.7" resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz" From 5ab32cc7e73b1c74b2be6e367c8b32fb0b52ced2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Jun 2025 21:29:28 +0000 Subject: [PATCH 2/9] Bump vite from 4.5.6 to 4.5.14 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.6 to 4.5.14. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.5.14/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.5.14/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 4.5.14 dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 65bbf80f..b62bc676 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "prompt": "^1.2.2", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0", - "vite": "^4.5.6" + "vite": "^4.5.14" }, "dependencies": { "backbone": "^1.4.0", diff --git a/yarn.lock b/yarn.lock index 6cd83818..a2bf8118 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4452,9 +4452,9 @@ vinyl@^2.0.0, vinyl@^2.1.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vite@^4.5.6: - version "4.5.6" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.6.tgz#48bbd97fe06e8241df2e625b31c581707e10b57d" +vite@^4.5.14: + version "4.5.14" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.14.tgz#2e652bc1d898265d987d6543ce866ecd65fa4086" dependencies: esbuild "^0.18.10" postcss "^8.4.27" From cb9dcfc0062708317b91be0feb5951a2697d9811 Mon Sep 17 00:00:00 2001 From: Peter Cottle Date: Fri, 27 Jun 2025 14:59:39 -0400 Subject: [PATCH 3/9] feat: add translation script --- scripts/translate.js | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 scripts/translate.js diff --git a/scripts/translate.js b/scripts/translate.js new file mode 100644 index 00000000..c5ce4c84 --- /dev/null +++ b/scripts/translate.js @@ -0,0 +1,89 @@ + +const fs = require('fs'); +const path = require('path'); + +// This is a placeholder for a real translation API call +async function translate(text, locale) { + console.log(`Translating "${text}" to ${locale}`); + // In a real implementation, you would call an API like OpenAI, Google Translate, etc. + // For now, we'll just return a placeholder. + return new Promise(resolve => setTimeout(() => resolve(`[AI translated for ${locale}] ${text}`), 200)); +} + +async function processLevels(locale) { + const levelsDir = path.join(__dirname, '../src/levels'); + const levelFiles = getAllLevelFiles(levelsDir); + + for (const file of levelFiles) { + const levelPath = file; + const levelData = require(levelPath); + + if (levelData && levelData.level) { + const level = levelData.level; + let updated = false; + + // Translate name + if (level.name && level.name.en_US && !level.name[locale]) { + level.name[locale] = await translate(level.name.en_US, locale); + updated = true; + } + + // Translate hint + if (level.hint && level.hint.en_US && !level.hint[locale]) { + level.hint[locale] = await translate(level.hint.en_US, locale); + updated = true; + } + + // Translate startDialog + if (level.startDialog && level.startDialog.en_US && !level.startDialog[locale]) { + const translatedDialog = await translateDialog(level.startDialog.en_US, locale); + level.startDialog[locale] = translatedDialog; + updated = true; + } + + if (updated) { + const newContent = `exports.level = ${JSON.stringify(level, null, 2)};`; + fs.writeFileSync(levelPath, newContent, 'utf8'); + console.log(`Updated ${file} with ${locale} translations.`); + } + } + } +} + +function getAllLevelFiles(dir) { + let files = []; + const items = fs.readdirSync(dir); + items.forEach(item => { + const fullPath = path.join(dir, item); + const stat = fs.statSync(fullPath); + if (stat.isDirectory()) { + files = files.concat(getAllLevelFiles(fullPath)); + } else if (item.endsWith('.js')) { + files.push(fullPath); + } + }); + return files; +} + + +async function translateDialog(dialog, locale) { + const newDialog = JSON.parse(JSON.stringify(dialog)); // Deep copy + for (const view of newDialog.childViews) { + if (view.options && view.options.markdowns) { + const translatedMarkdowns = []; + for (const markdown of view.options.markdowns) { + translatedMarkdowns.push(await translate(markdown, locale)); + } + view.options.markdowns = translatedMarkdowns; + } + } + return newDialog; +} + +const locale = process.argv[2]; +if (!locale) { + console.error('Please provide a locale. Example: node scripts/translate.js fr_FR'); + process.exit(1); +} + +processLevels(locale); From 065f6c4edcc7bbeac2427795c75f0fa6d82bd9e6 Mon Sep 17 00:00:00 2001 From: Peter Cottle Date: Fri, 27 Jun 2025 18:38:02 -0400 Subject: [PATCH 4/9] translate and list locales --- scripts/translate.js | 102 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 97 insertions(+), 5 deletions(-) diff --git a/scripts/translate.js b/scripts/translate.js index c5ce4c84..1eaf32a4 100644 --- a/scripts/translate.js +++ b/scripts/translate.js @@ -80,10 +80,102 @@ async function translateDialog(dialog, locale) { return newDialog; } -const locale = process.argv[2]; -if (!locale) { - console.error('Please provide a locale. Example: node scripts/translate.js fr_FR'); - process.exit(1); +// New function to list all locales +function listLocales() { + const levelsDir = path.join(__dirname, '../src/levels'); + const levelFiles = getAllLevelFiles(levelsDir); + const allLocales = new Set(); + + for (const file of levelFiles) { + const levelPath = file; + // Clear cache to get fresh data from file + delete require.cache[require.resolve(levelPath)]; + const levelData = require(levelPath); + + if (levelData && levelData.level) { + const level = levelData.level; + if (level.name) { + Object.keys(level.name).forEach(locale => allLocales.add(locale)); + } + if (level.hint) { + Object.keys(level.hint).forEach(locale => allLocales.add(locale)); + } + if (level.startDialog) { + Object.keys(level.startDialog).forEach(locale => allLocales.add(locale)); + } + } + } + + console.log('Known locales found in level definitions:'); + allLocales.forEach(locale => console.log(`- ${locale}`)); } -processLevels(locale); +// New function to check translation status +function checkStatus(locale) { + const levelsDir = path.join(__dirname, '../src/levels'); + const levelFiles = getAllLevelFiles(levelsDir); + let present = 0; + let missing = 0; + let total = 0; + + console.log(`Checking translation status for locale: ${locale}`); + + for (const file of levelFiles) { + const levelPath = file; + delete require.cache[require.resolve(levelPath)]; + const levelData = require(levelPath); + + if (levelData && levelData.level) { + const level = levelData.level; + const fields = ['name', 'hint', 'startDialog']; + fields.forEach(field => { + if (level[field] && level[field].en_US) { + total++; + if (level[field][locale]) { + present++; + } else { + console.log(` - Missing '${field}' in ${path.basename(file)}`); + missing++; + } + } + }); + } + } + + console.log(` +--- Status for ${locale} ---`); + console.log(`Present translations: ${present}`); + console.log(`Missing translations: ${missing}`); + console.log(`Total translatable fields: ${total}`); + if (total > 0) { + const percentage = ((present / total) * 100).toFixed(2); + console.log(`Completion: ${percentage}%`); + } + console.log('--------------------'); +} + + +const arg = process.argv[2]; +const nextArg = process.argv[3]; + +if (!arg) { + console.error('Please provide a command.'); + console.error('Usage:'); + console.error(' node scripts/translate.js - Translate missing strings for a locale.'); + console.error(' node scripts/translate.js --list-locales - List all known locales.'); + console.error(' node scripts/translate.js --status - Show translation status for a locale.'); + process.exit(1); +} + +if (arg === '--list-locales') { + listLocales(); +} else if (arg === '--status') { + if (!nextArg) { + console.error('Please provide a locale for status check. Example: node scripts/translate.js --status fr_FR'); + process.exit(1); + } + checkStatus(nextArg); +} else { + // Default to original behavior + processLevels(arg); +} From 7e16f1144237417f58c522cca8c4c9828d9eb266 Mon Sep 17 00:00:00 2001 From: Peter Cottle Date: Fri, 27 Jun 2025 18:40:56 -0400 Subject: [PATCH 5/9] lists the translation status --- scripts/translate.js | 79 +++++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 37 deletions(-) diff --git a/scripts/translate.js b/scripts/translate.js index 1eaf32a4..eed39587 100644 --- a/scripts/translate.js +++ b/scripts/translate.js @@ -80,46 +80,12 @@ async function translateDialog(dialog, locale) { return newDialog; } -// New function to list all locales -function listLocales() { - const levelsDir = path.join(__dirname, '../src/levels'); - const levelFiles = getAllLevelFiles(levelsDir); - const allLocales = new Set(); - - for (const file of levelFiles) { - const levelPath = file; - // Clear cache to get fresh data from file - delete require.cache[require.resolve(levelPath)]; - const levelData = require(levelPath); - - if (levelData && levelData.level) { - const level = levelData.level; - if (level.name) { - Object.keys(level.name).forEach(locale => allLocales.add(locale)); - } - if (level.hint) { - Object.keys(level.hint).forEach(locale => allLocales.add(locale)); - } - if (level.startDialog) { - Object.keys(level.startDialog).forEach(locale => allLocales.add(locale)); - } - } - } - - console.log('Known locales found in level definitions:'); - allLocales.forEach(locale => console.log(`- ${locale}`)); -} - -// New function to check translation status -function checkStatus(locale) { - const levelsDir = path.join(__dirname, '../src/levels'); - const levelFiles = getAllLevelFiles(levelsDir); +// New function to get translation status for a locale +function getTranslationStatus(locale, levelFiles, verbose = false) { let present = 0; let missing = 0; let total = 0; - console.log(`Checking translation status for locale: ${locale}`); - for (const file of levelFiles) { const levelPath = file; delete require.cache[require.resolve(levelPath)]; @@ -134,13 +100,52 @@ function checkStatus(locale) { if (level[field][locale]) { present++; } else { - console.log(` - Missing '${field}' in ${path.basename(file)}`); + if (verbose) { + console.log(` - Missing '${field}' in ${path.basename(file)}`); + } missing++; } } }); } } + return { present, missing, total }; +} + +// Updated function to list all locales with their status +function listLocales() { + const levelsDir = path.join(__dirname, '../src/levels'); + const levelFiles = getAllLevelFiles(levelsDir); + const allLocales = new Set(); + + for (const file of levelFiles) { + const levelPath = file; + delete require.cache[require.resolve(levelPath)]; + const levelData = require(levelPath); + + if (levelData && levelData.level) { + const level = levelData.level; + if (level.name) Object.keys(level.name).forEach(locale => allLocales.add(locale)); + if (level.hint) Object.keys(level.hint).forEach(locale => allLocales.add(locale)); + if (level.startDialog) Object.keys(level.startDialog).forEach(locale => allLocales.add(locale)); + } + } + + console.log('Known locales and their translation status:'); + allLocales.forEach(locale => { + const { present, total } = getTranslationStatus(locale, levelFiles); + const percentage = total > 0 ? ((present / total) * 100).toFixed(2) : "0.00"; + console.log(`- ${locale}: ${present}/${total} (${percentage}%)`); + }); +} + +// Updated function to check translation status +function checkStatus(locale) { + const levelsDir = path.join(__dirname, '../src/levels'); + const levelFiles = getAllLevelFiles(levelsDir); + + console.log(`Checking translation status for locale: ${locale}`); + const { present, missing, total } = getTranslationStatus(locale, levelFiles, true); console.log(` --- Status for ${locale} ---`); From 8579f20d647c8ff760b6618ae3ec5c7ecf165fa1 Mon Sep 17 00:00:00 2001 From: Peter Cottle Date: Fri, 27 Jun 2025 19:17:53 -0400 Subject: [PATCH 6/9] does strings and levels separately --- scripts/translate.js | 180 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 142 insertions(+), 38 deletions(-) diff --git a/scripts/translate.js b/scripts/translate.js index eed39587..8f1b5fd3 100644 --- a/scripts/translate.js +++ b/scripts/translate.js @@ -10,7 +10,7 @@ async function translate(text, locale) { return new Promise(resolve => setTimeout(() => resolve(`[AI translated for ${locale}] ${text}`), 200)); } -async function processLevels(locale) { +async function translateLevels(locale) { const levelsDir = path.join(__dirname, '../src/levels'); const levelFiles = getAllLevelFiles(levelsDir); @@ -50,6 +50,31 @@ async function processLevels(locale) { } } +async function translateStrings(locale) { + const stringsPath = path.join(__dirname, '../src/js/intl/strings.js'); + const stringsData = require(stringsPath); + const allStrings = stringsData.strings; + let updated = false; + + for (const key in allStrings) { + if (allStrings[key].en_US && !allStrings[key][locale]) { + console.log(`Translating string for key '${key}'`); + const translatedText = await translate(allStrings[key].en_US, locale); + allStrings[key][locale] = translatedText; + updated = true; + } + } + + if (updated) { + const newContent = `exports.strings = ${JSON.stringify(allStrings, null, 2)};`; + fs.writeFileSync(stringsPath, newContent, 'utf8'); + console.log(`Updated ${stringsPath} with ${locale} translations.`); + console.log('NOTE: Comments and original formatting in strings.js have been removed by this process.'); + } else { + console.log('All strings for locale ' + locale + ' are already translated.'); + } +} + function getAllLevelFiles(dir) { let files = []; const items = fs.readdirSync(dir); @@ -80,11 +105,11 @@ async function translateDialog(dialog, locale) { return newDialog; } -// New function to get translation status for a locale -function getTranslationStatus(locale, levelFiles, verbose = false) { +function getLevelTranslationStatus(locale, levelFiles) { let present = 0; let missing = 0; let total = 0; + const missingDetails = []; for (const file of levelFiles) { const levelPath = file; @@ -100,24 +125,46 @@ function getTranslationStatus(locale, levelFiles, verbose = false) { if (level[field][locale]) { present++; } else { - if (verbose) { - console.log(` - Missing '${field}' in ${path.basename(file)}`); - } missing++; + missingDetails.push(` - Missing '${field}' in ${path.basename(file)}`); } } }); } } - return { present, missing, total }; + return { present, missing, total, missingDetails }; +} + +function getStringsTranslationStatus(locale) { + const stringsPath = path.join(__dirname, '../src/js/intl/strings.js'); + delete require.cache[require.resolve(stringsPath)]; + const allStrings = require(stringsPath).strings; + + let present = 0; + let missing = 0; + let total = 0; + const missingDetails = []; + + for (const key in allStrings) { + if (allStrings[key].en_US) { + total++; + if (allStrings[key][locale]) { + present++; + } else { + missing++; + missingDetails.push(` - Missing string for key '${key}'`); + } + } + } + return { present, missing, total, missingDetails }; } -// Updated function to list all locales with their status function listLocales() { const levelsDir = path.join(__dirname, '../src/levels'); const levelFiles = getAllLevelFiles(levelsDir); const allLocales = new Set(); + // From levels for (const file of levelFiles) { const levelPath = file; delete require.cache[require.resolve(levelPath)]; @@ -131,56 +178,113 @@ function listLocales() { } } + // From strings + const stringsPath = path.join(__dirname, '../src/js/intl/strings.js'); + delete require.cache[require.resolve(stringsPath)]; + const allStrings = require(stringsPath).strings; + for (const key in allStrings) { + Object.keys(allStrings[key]).forEach(locale => allLocales.add(locale)); + } + allLocales.delete('__desc__'); + + console.log('Known locales and their translation status:'); allLocales.forEach(locale => { - const { present, total } = getTranslationStatus(locale, levelFiles); - const percentage = total > 0 ? ((present / total) * 100).toFixed(2) : "0.00"; - console.log(`- ${locale}: ${present}/${total} (${percentage}%)`); + const levelStatus = getLevelTranslationStatus(locale, levelFiles); + const stringsStatus = getStringsTranslationStatus(locale); + + const totalPresent = levelStatus.present + stringsStatus.present; + const totalTotal = levelStatus.total + stringsStatus.total; + const percentage = totalTotal > 0 ? ((totalPresent / totalTotal) * 100).toFixed(2) : "0.00"; + + console.log(`- ${locale}: ${totalPresent}/${totalTotal} (${percentage}%)`); + console.log(` - Levels: ${levelStatus.present}/${levelStatus.total}`); + console.log(` - Strings: ${stringsStatus.present}/${stringsStatus.total}`); }); } -// Updated function to check translation status function checkStatus(locale) { const levelsDir = path.join(__dirname, '../src/levels'); const levelFiles = getAllLevelFiles(levelsDir); console.log(`Checking translation status for locale: ${locale}`); - const { present, missing, total } = getTranslationStatus(locale, levelFiles, true); + + const levelStatus = getLevelTranslationStatus(locale, levelFiles); + const stringsStatus = getStringsTranslationStatus(locale); + + const totalPresent = levelStatus.present + stringsStatus.present; + const totalMissing = levelStatus.missing + stringsStatus.missing; + const totalTotal = levelStatus.total + stringsStatus.total; + + const overallPercentage = totalTotal > 0 ? ((totalPresent / totalTotal) * 100).toFixed(2) : "0.00"; console.log(` --- Status for ${locale} ---`); - console.log(`Present translations: ${present}`); - console.log(`Missing translations: ${missing}`); - console.log(`Total translatable fields: ${total}`); - if (total > 0) { - const percentage = ((present / total) * 100).toFixed(2); - console.log(`Completion: ${percentage}%`); - } + console.log(`Overall Completion: ${overallPercentage}% (${totalPresent}/${totalTotal})`); + + const levelPercentage = levelStatus.total > 0 ? ((levelStatus.present / levelStatus.total) * 100).toFixed(2) : "0.00"; + console.log(`- Levels: ${levelPercentage}% (${levelStatus.present}/${levelStatus.total})`); + + const stringsPercentage = stringsStatus.total > 0 ? ((stringsStatus.present / stringsStatus.total) * 100).toFixed(2) : "0.00"; + console.log(`- Strings: ${stringsPercentage}% (${stringsStatus.present}/${stringsStatus.total})`); + console.log('--------------------'); + + if (levelStatus.missing > 0) { + console.log('\nMissing Level Translations:'); + levelStatus.missingDetails.forEach(line => console.log(line)); + } + if (stringsStatus.missing > 0) { + console.log('\nMissing String Translations:'); + stringsStatus.missingDetails.forEach(line => console.log(line)); + } } const arg = process.argv[2]; const nextArg = process.argv[3]; -if (!arg) { - console.error('Please provide a command.'); - console.error('Usage:'); - console.error(' node scripts/translate.js - Translate missing strings for a locale.'); - console.error(' node scripts/translate.js --list-locales - List all known locales.'); - console.error(' node scripts/translate.js --status - Show translation status for a locale.'); - process.exit(1); -} - -if (arg === '--list-locales') { - listLocales(); -} else if (arg === '--status') { - if (!nextArg) { - console.error('Please provide a locale for status check. Example: node scripts/translate.js --status fr_FR'); +async function main() { + if (!arg) { + console.error('Please provide a command.'); + console.error('Usage:'); + console.error(' node scripts/translate.js --list-locales'); + console.error(' node scripts/translate.js --status '); + console.error(' node scripts/translate.js --translate-levels '); + console.error(' node scripts/translate.js --translate-strings '); + console.error(' node scripts/translate.js (Translates all missing strings for a locale)'); process.exit(1); } - checkStatus(nextArg); -} else { - // Default to original behavior - processLevels(arg); + + if (arg === '--list-locales') { + listLocales(); + } else if (arg === '--status') { + if (!nextArg) { + console.error('Please provide a locale for status check. Example: node scripts/translate.js --status fr_FR'); + process.exit(1); + } + checkStatus(nextArg); + } else if (arg === '--translate-levels') { + if (!nextArg) { + console.error('Please provide a locale to translate. Example: node scripts/translate.js --translate-levels fr_FR'); + process.exit(1); + } + await translateLevels(nextArg); + } else if (arg === '--translate-strings') { + if (!nextArg) { + console.error('Please provide a locale to translate. Example: node scripts/translate.js --translate-strings fr_FR'); + process.exit(1); + } + await translateStrings(nextArg); + } else { + console.log(`Translating all missing strings for ${arg}...`); + await translateLevels(arg); + await translateStrings(arg); + console.log(` +Finished translating all missing strings for ${arg}.`); + checkStatus(arg); + } } + +main(); + From 7b0b0e931c11472d7878d809495f7d70b17752af Mon Sep 17 00:00:00 2001 From: Peter Cottle Date: Fri, 27 Jun 2025 19:27:13 -0400 Subject: [PATCH 7/9] vibe code some more script functionality --- scripts/translate.js | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/scripts/translate.js b/scripts/translate.js index 8f1b5fd3..c8691287 100644 --- a/scripts/translate.js +++ b/scripts/translate.js @@ -218,8 +218,7 @@ function checkStatus(locale) { const overallPercentage = totalTotal > 0 ? ((totalPresent / totalTotal) * 100).toFixed(2) : "0.00"; - console.log(` ---- Status for ${locale} ---`); + console.log(`\n--- Status for ${locale} ---\n`); console.log(`Overall Completion: ${overallPercentage}% (${totalPresent}/${totalTotal})`); const levelPercentage = levelStatus.total > 0 ? ((levelStatus.present / levelStatus.total) * 100).toFixed(2) : "0.00"; @@ -240,6 +239,37 @@ function checkStatus(locale) { } } +function normalize() { + console.log('Normalizing all level and string files...'); + + // Normalize levels + const levelsDir = path.join(__dirname, '../src/levels'); + const levelFiles = getAllLevelFiles(levelsDir); + for (const file of levelFiles) { + const levelPath = file; + delete require.cache[require.resolve(levelPath)]; + const levelData = require(levelPath); + if (levelData && levelData.level) { + const newContent = `exports.level = ${JSON.stringify(levelData.level, null, 2)};`; + fs.writeFileSync(levelPath, newContent, 'utf8'); + console.log(`Normalized ${file}`); + } + } + + // Normalize strings + const stringsPath = path.join(__dirname, '../src/js/intl/strings.js'); + delete require.cache[require.resolve(stringsPath)]; + const stringsData = require(stringsPath); + if (stringsData && stringsData.strings) { + const newContent = `exports.strings = ${JSON.stringify(stringsData.strings, null, 2)};`; + fs.writeFileSync(stringsPath, newContent, 'utf8'); + console.log(`Normalized ${stringsPath}`); + console.log('NOTE: Comments and original formatting in strings.js have been removed by this process.'); + } + + console.log('\nNormalization complete.'); +} + const arg = process.argv[2]; const nextArg = process.argv[3]; @@ -252,6 +282,7 @@ async function main() { console.error(' node scripts/translate.js --status '); console.error(' node scripts/translate.js --translate-levels '); console.error(' node scripts/translate.js --translate-strings '); + console.error(' node scripts/translate.js --normalize'); console.error(' node scripts/translate.js (Translates all missing strings for a locale)'); process.exit(1); } @@ -276,12 +307,13 @@ async function main() { process.exit(1); } await translateStrings(nextArg); + } else if (arg === '--normalize') { + normalize(); } else { console.log(`Translating all missing strings for ${arg}...`); await translateLevels(arg); await translateStrings(arg); - console.log(` -Finished translating all missing strings for ${arg}.`); + console.log(`\nFinished translating all missing strings for ${arg}.`); checkStatus(arg); } } From a76327aa6753ef92fa0d50784d31d30f98471e32 Mon Sep 17 00:00:00 2001 From: Peter Cottle Date: Fri, 27 Jun 2025 19:28:09 -0400 Subject: [PATCH 8/9] run normalize --- src/js/intl/strings.js | 4694 ++++++++++++------------ src/levels/advanced/multipleParents.js | 140 +- src/levels/intro/branching.js | 108 +- src/levels/intro/commits.js | 112 +- src/levels/intro/merging.js | 136 +- src/levels/intro/rebasing.js | 126 +- src/levels/mixed/describe.js | 141 +- src/levels/mixed/grabbingOneCommit.js | 53 +- src/levels/mixed/jugglingCommits.js | 64 +- src/levels/mixed/jugglingCommits2.js | 55 +- src/levels/mixed/tags.js | 50 +- src/levels/rampup/cherryPick.js | 157 +- src/levels/rampup/detachedHead.js | 89 +- src/levels/rampup/interactiveRebase.js | 57 +- src/levels/rampup/relativeRefs.js | 47 +- src/levels/rampup/relativeRefs2.js | 56 +- src/levels/rampup/reversingChanges.js | 43 +- src/levels/rebase/manyRebases.js | 27 +- src/levels/rebase/selectiveRebase.js | 6 +- src/levels/remote/clone.js | 7 +- src/levels/remote/fakeTeamwork.js | 2 +- src/levels/remote/fetch.js | 44 +- src/levels/remote/fetchArgs.js | 12 +- src/levels/remote/fetchRebase.js | 8 +- src/levels/remote/lockedMain.js | 27 +- src/levels/remote/mergeManyFeatures.js | 10 +- src/levels/remote/pull.js | 8 +- src/levels/remote/pullArgs.js | 10 +- src/levels/remote/push.js | 8 +- src/levels/remote/pushArgs.js | 8 +- src/levels/remote/pushArgs2.js | 8 +- src/levels/remote/pushManyFeatures.js | 10 +- src/levels/remote/remoteBranches.js | 10 +- src/levels/remote/sourceNothing.js | 8 +- src/levels/remote/tracking.js | 10 +- 35 files changed, 3059 insertions(+), 3292 deletions(-) diff --git a/src/js/intl/strings.js b/src/js/intl/strings.js index edacaa57..a6d8f362 100755 --- a/src/js/intl/strings.js +++ b/src/js/intl/strings.js @@ -1,2433 +1,2291 @@ exports.strings = { - /////////////////////////////////////////////////////////////////////////// - 'finish-dialog-finished': { - '__desc__': 'One of the lines in the next level dialog', - 'ja': '最後のレベルをクリアしました!すごい!!', - 'en_US': 'Wow! You finished the last level, great!', - 'de_DE': 'Wow! Du hast das letzte Level gelöst, super!', - 'zh_CN': 'Wow!你通关了!', - 'zh_TW': '我的天啊!您解開了最後一關,太強了!', - 'es_AR': '¡Ea! Terminaste el último nivel, ¡genial!', - 'es_MX': '¡Enhorabuena! Terminaste el último nivel, ¡genial!', - 'es_ES': '¡Felicitaciones! Terminaste el último nivel!', - 'pt_BR': 'Uia! Você terminou o último nível, massa!', - 'gl' : '¡Yeeeha! Remataches o derradeiro nivel, ¡a tope!', - 'fr_FR': 'Félicitations, vous avez réussi le dernier niveau !', - 'ro': "Wow! Ai terminat ultimul nivel, grozav!", - 'ru_RU': 'Вау! Вы прошли последний уровень, отлично!', - 'uk': 'Вау! Ти пройшов останній рівень, круто!', - 'ko': '와! 마지막 레벨까지 마쳤습니다. 멋지네요!', - 'vi': 'Wao! Bạn đã phá đảo, quá tuyệt!', - 'sl_SI': 'Wow! Končal si zadnjo stopnjo, fantastično!', - 'pl': 'Wow! Ukończono ostatni poziom, świetnie!', - 'it_IT': "Wow! Hai concluso l'ultimo livello, grandioso!", - 'ta_IN': 'ஆஹா! நீங்கள் கடைசி நிலையை முடித்துள்ளீர்கள், நன்று!', - 'tr_TR': 'Wow! son seviyeyi tamamladın, tebrikler!', + "finish-dialog-finished": { + "__desc__": "One of the lines in the next level dialog", + "ja": "最後のレベルをクリアしました!すごい!!", + "en_US": "Wow! You finished the last level, great!", + "de_DE": "Wow! Du hast das letzte Level gelöst, super!", + "zh_CN": "Wow!你通关了!", + "zh_TW": "我的天啊!您解開了最後一關,太強了!", + "es_AR": "¡Ea! Terminaste el último nivel, ¡genial!", + "es_MX": "¡Enhorabuena! Terminaste el último nivel, ¡genial!", + "es_ES": "¡Felicitaciones! Terminaste el último nivel!", + "pt_BR": "Uia! Você terminou o último nível, massa!", + "gl": "¡Yeeeha! Remataches o derradeiro nivel, ¡a tope!", + "fr_FR": "Félicitations, vous avez réussi le dernier niveau !", + "ro": "Wow! Ai terminat ultimul nivel, grozav!", + "ru_RU": "Вау! Вы прошли последний уровень, отлично!", + "uk": "Вау! Ти пройшов останній рівень, круто!", + "ko": "와! 마지막 레벨까지 마쳤습니다. 멋지네요!", + "vi": "Wao! Bạn đã phá đảo, quá tuyệt!", + "sl_SI": "Wow! Končal si zadnjo stopnjo, fantastično!", + "pl": "Wow! Ukończono ostatni poziom, świetnie!", + "it_IT": "Wow! Hai concluso l'ultimo livello, grandioso!", + "ta_IN": "ஆஹா! நீங்கள் கடைசி நிலையை முடித்துள்ளீர்கள், நன்று!", + "tr_TR": "Wow! son seviyeyi tamamladın, tebrikler!" }, - /////////////////////////////////////////////////////////////////////////// - 'finish-dialog-next': { - '__desc__': 'One of the lines in the next level dialog', - 'en_US': 'Would you like to move on to *"{nextLevel}"*, the next level?', - 'de_DE': 'Möchtest du mit *"{nextLevel}"* weitermachen, dem nächsten Level?', - 'ja': '次の章 *"{nextLevel}"* へ進みますか?', - 'zh_CN': '要不要试试下一关 *“{nextLevel}”*?', - 'zh_TW': '下一關是*「{nextLevel}」*,您要繼續闖關嗎?', - 'es_AR': '¿Querés seguir con *"{nextLevel}"*, el próximo nivel?', - 'es_MX': '¿Quieres seguir con *"{nextLevel}"*, el próximo nivel?', - 'es_ES': '¿Quieres pasar al nivel *"{nextLevel}"*, el próximo nivel?', - 'pt_BR': 'Você gostaria de ir para o próximo nível: *"{nextLevel}"*?', - 'gl' : '¿Gustaríache ir o seguinte nivel: *"{nextLevel}"*?', - 'fr_FR': 'Voulez-vous passer à *"{nextLevel}"*, le prochain niveau ?', - 'ro': 'Dorești să treci la următorul nivel: *"{nextLevel}"*?', - 'ru_RU': 'Хотите перейти на следующий уровень: *"{nextLevel}"*?', - 'uk': 'Хочеш перейти на наступний рівень -- *"{nextLevel}"*?', - 'ko': '다음 레벨로 넘어갈까요? *"{nextLevel}"*', - 'vi': 'Bạn có muốn chuyển sang cấp độ tiếp: *"{nextLevel}"* không?', - 'sl_SI': 'Bi rad nadaljeval na *"{nextLevel}"*, naslednjo stopnjo?', - 'pl': 'Czy chcesz przejść do następnego poziomu - *"{nextLevel}"*?', - 'it_IT': 'Ti andrebbe di passare al prossimo livello, *"{nextLevel}"*?', - 'ta_IN': 'அடுத்த நிலை * "{nextLevel}" * க்கு செல்ல விரும்புகிறீர்களா?', - 'tr_TR': 'Bir sonraki seviye olan *"{nextLevel}"* seviyesine geçmek ister misin?' + "finish-dialog-next": { + "__desc__": "One of the lines in the next level dialog", + "en_US": "Would you like to move on to *\"{nextLevel}\"*, the next level?", + "de_DE": "Möchtest du mit *\"{nextLevel}\"* weitermachen, dem nächsten Level?", + "ja": "次の章 *\"{nextLevel}\"* へ進みますか?", + "zh_CN": "要不要试试下一关 *“{nextLevel}”*?", + "zh_TW": "下一關是*「{nextLevel}」*,您要繼續闖關嗎?", + "es_AR": "¿Querés seguir con *\"{nextLevel}\"*, el próximo nivel?", + "es_MX": "¿Quieres seguir con *\"{nextLevel}\"*, el próximo nivel?", + "es_ES": "¿Quieres pasar al nivel *\"{nextLevel}\"*, el próximo nivel?", + "pt_BR": "Você gostaria de ir para o próximo nível: *\"{nextLevel}\"*?", + "gl": "¿Gustaríache ir o seguinte nivel: *\"{nextLevel}\"*?", + "fr_FR": "Voulez-vous passer à *\"{nextLevel}\"*, le prochain niveau ?", + "ro": "Dorești să treci la următorul nivel: *\"{nextLevel}\"*?", + "ru_RU": "Хотите перейти на следующий уровень: *\"{nextLevel}\"*?", + "uk": "Хочеш перейти на наступний рівень -- *\"{nextLevel}\"*?", + "ko": "다음 레벨로 넘어갈까요? *\"{nextLevel}\"*", + "vi": "Bạn có muốn chuyển sang cấp độ tiếp: *\"{nextLevel}\"* không?", + "sl_SI": "Bi rad nadaljeval na *\"{nextLevel}\"*, naslednjo stopnjo?", + "pl": "Czy chcesz przejść do następnego poziomu - *\"{nextLevel}\"*?", + "it_IT": "Ti andrebbe di passare al prossimo livello, *\"{nextLevel}\"*?", + "ta_IN": "அடுத்த நிலை * \"{nextLevel}\" * க்கு செல்ல விரும்புகிறீர்களா?", + "tr_TR": "Bir sonraki seviye olan *\"{nextLevel}\"* seviyesine geçmek ister misin?" }, - /////////////////////////////////////////////////////////////////////////// - 'finish-dialog-win': { - '__desc__': 'One of the lines in the next level dialog', - 'en_US': 'Awesome! You matched or exceeded our solution.', - 'pt_BR': 'Maravilha! Você fez uma solução tão boa quanto, ou melhor que a nossa.', - 'de_DE': 'Wahnsinn! Du warst so gut wie unsere Lösung, oder sogar besser.', - 'ja': '素晴らしい!このレベルをクリアしましたね', - 'zh_CN': '太强了!你的答案符合标准答案甚至更好。', - 'zh_TW': '太強了,您的答案符合我們的預期甚至更好!', - 'es_AR': '¡Fabuloso! Igualaste o superaste nuestra solución.', - 'es_MX': '¡Fabuloso! Igualaste o superaste nuestra solución.', - 'es_ES': '¡Fabuloso! Igualaste o superaste nuestra solución.', - 'gl' : '¡Fabuloso! Fixécholo igual ou mellor ca nosa solución.', - 'fr_FR': 'Fabuleux ! Votre solution a égalé ou surpassé notre solution.', - 'ro': "Minunat! Soluția ta este la fel de bună sau mai bună decât a noastră.", - 'ru_RU': 'Отлично! Ваше решение соответствует или превосходит наше.', - 'uk': 'Чудово! Твій розв’язок на рівні або кращий від нашого.', - 'ko': '굉장해요! 해답과 일치하거나 더 나은 해답입니다.', - 'vi': 'Tuyệt vời! Đáp án của bạn đạt chuẩn thậm chí có thể tốt hơn.', - 'sl_SI': 'Bravo! Izenačil ali celo presegel si našo rešitev.', - 'pl': 'Niesamowite! Rozwiązałeś zadanie w ten sam sposób lub lepiej.', - 'it_IT': "Grandioso! Hai eguagliato o migliorato la nostra soluzione.", - 'ta_IN': 'அருமை! எங்கள் கொடுக்க பட்ட தீர்வை நிறைவு செய்து விட்டீர்கள்.', - 'tr_TR': 'Mükemmel! ideal çözümle aynı veya daha iyi bir çözüm yaptınız.', - + "finish-dialog-win": { + "__desc__": "One of the lines in the next level dialog", + "en_US": "Awesome! You matched or exceeded our solution.", + "pt_BR": "Maravilha! Você fez uma solução tão boa quanto, ou melhor que a nossa.", + "de_DE": "Wahnsinn! Du warst so gut wie unsere Lösung, oder sogar besser.", + "ja": "素晴らしい!このレベルをクリアしましたね", + "zh_CN": "太强了!你的答案符合标准答案甚至更好。", + "zh_TW": "太強了,您的答案符合我們的預期甚至更好!", + "es_AR": "¡Fabuloso! Igualaste o superaste nuestra solución.", + "es_MX": "¡Fabuloso! Igualaste o superaste nuestra solución.", + "es_ES": "¡Fabuloso! Igualaste o superaste nuestra solución.", + "gl": "¡Fabuloso! Fixécholo igual ou mellor ca nosa solución.", + "fr_FR": "Fabuleux ! Votre solution a égalé ou surpassé notre solution.", + "ro": "Minunat! Soluția ta este la fel de bună sau mai bună decât a noastră.", + "ru_RU": "Отлично! Ваше решение соответствует или превосходит наше.", + "uk": "Чудово! Твій розв’язок на рівні або кращий від нашого.", + "ko": "굉장해요! 해답과 일치하거나 더 나은 해답입니다.", + "vi": "Tuyệt vời! Đáp án của bạn đạt chuẩn thậm chí có thể tốt hơn.", + "sl_SI": "Bravo! Izenačil ali celo presegel si našo rešitev.", + "pl": "Niesamowite! Rozwiązałeś zadanie w ten sam sposób lub lepiej.", + "it_IT": "Grandioso! Hai eguagliato o migliorato la nostra soluzione.", + "ta_IN": "அருமை! எங்கள் கொடுக்க பட்ட தீர்வை நிறைவு செய்து விட்டீர்கள்.", + "tr_TR": "Mükemmel! ideal çözümle aynı veya daha iyi bir çözüm yaptınız." }, - /////////////////////////////////////////////////////////////////////////// - 'finish-dialog-lose': { - '__desc__': 'When the user entered more commands than our best, encourage them to do better', - 'en_US': 'See if you can whittle it down to {best} :D', - 'de_DE': 'Schau mal ob du es auch in {best} Schritten hinbekommst :D', - 'ja': '模範解答の回数={best}回でクリアする方法も考えてみましょう :D', - 'zh_CN': '试试看你能否在 {best} 步之内搞定 :D', - 'zh_TW': '試試看您是否能在 {best} 步内搞定 :D', - 'es_AR': 'Fijate si podés bajarlo a usar sólo {best} comandos :D', - 'es_MX': 'Fíjate si puedes bajarlo a usar sólo {best} comandos :D', - 'es_ES': 'Trata de usar sólo {best} comandos :D', - 'pt_BR': 'Veja se consegue reduzir para somente {best} :D', - 'gl' : 'Mira se consigues reducir a solo {best} :D', - 'fr_FR': 'Voyons si vous pouvez descendre à {best} :D', - 'ro': "Vezi dacă poți reduce la {best} :D", - 'ru_RU': 'Попробуйте, может вы сможете уложиться в {best} : D', - 'uk': 'Спробуй, можливо ти зможеш вкластися в {best} кроків :D', - 'ko': '{best}회로 줄일 수 있을까요? :D', - 'vi': 'Thử xem bạn có thể giảm xuống {best} không? :D', - 'sl_SI': 'Misliš da lahko spraviš rešitev na {best}? :D', - 'pl': 'Sprawdź, czy dasz radę to zrobić w {best} krokach :D', - 'it_IT': "Prova a migliorarti facendolo solo con {best} comandi :D", - 'ta_IN': 'நீங்கள் அதை குறைக்க முடியுமா என்று பாருங்கள் {best} :D', - 'tr_TR': 'Bakalım bunu {en iyi} adıma indirgeyebilir misin? :D' + "finish-dialog-lose": { + "__desc__": "When the user entered more commands than our best, encourage them to do better", + "en_US": "See if you can whittle it down to {best} :D", + "de_DE": "Schau mal ob du es auch in {best} Schritten hinbekommst :D", + "ja": "模範解答の回数={best}回でクリアする方法も考えてみましょう :D", + "zh_CN": "试试看你能否在 {best} 步之内搞定 :D", + "zh_TW": "試試看您是否能在 {best} 步内搞定 :D", + "es_AR": "Fijate si podés bajarlo a usar sólo {best} comandos :D", + "es_MX": "Fíjate si puedes bajarlo a usar sólo {best} comandos :D", + "es_ES": "Trata de usar sólo {best} comandos :D", + "pt_BR": "Veja se consegue reduzir para somente {best} :D", + "gl": "Mira se consigues reducir a solo {best} :D", + "fr_FR": "Voyons si vous pouvez descendre à {best} :D", + "ro": "Vezi dacă poți reduce la {best} :D", + "ru_RU": "Попробуйте, может вы сможете уложиться в {best} : D", + "uk": "Спробуй, можливо ти зможеш вкластися в {best} кроків :D", + "ko": "{best}회로 줄일 수 있을까요? :D", + "vi": "Thử xem bạn có thể giảm xuống {best} không? :D", + "sl_SI": "Misliš da lahko spraviš rešitev na {best}? :D", + "pl": "Sprawdź, czy dasz radę to zrobić w {best} krokach :D", + "it_IT": "Prova a migliorarti facendolo solo con {best} comandi :D", + "ta_IN": "நீங்கள் அதை குறைக்க முடியுமா என்று பாருங்கள் {best} :D", + "tr_TR": "Bakalım bunu {en iyi} adıma indirgeyebilir misin? :D" }, - /////////////////////////////////////////////////////////////////////////// - 'hg-prune-tree': { - '__desc__': 'warning when pruning tree', - 'en_US': 'Warning! Mercurial does aggressive garbage collection and thus needs to prune your tree', - 'zh_CN': '注意! Mercurial 会进行主动垃圾回收,需要将你的提交树縮小。', - 'zh_TW': '注意! Mercurial 會積極地做垃圾收集,而且會因此把你的 tree 給縮小。', - 'es_AR': '¡Cuidado! Mercurial hace garbage collection agresivamente y necesita eliminar tu árbol', - 'es_MX': '¡Cuidado! Mercurial hace garbage collection agresivamente y necesita eliminar tu árbol', - 'es_ES': '¡Cuidado! Mercurial hace la recolección de basura agresivamente (para administrar memoria) y necesita podar tu árbol.', - 'pt_BR': 'Cuidado! O Mercurial faz coleção de lixo agressiva e precisa prunar sua árvore', - 'gl' : '¡Coidado! Mercurial fai que recolección de lixo agresivamente (para limpar memoria) e precisa podar a túa árbore.', - 'fr_FR': 'Attention, Mercurial supprime de façon agressive et nécessite un prune du repository', - 'de_DE': 'Achtung! Mercurial macht aggressive Garbage Collection und muss daher deinen Baum reduzieren', - 'ro': "Atenție! Mercurial face colectare de gunoi agresivă și trebuie să-ți taie arborele", - 'ru_RU': 'Внимание! Mercurial использует агрессивный сборщик мусора и обрезает ваше дерево', - 'uk': 'Увага! Mercurial агресивно збирає сміття й може обрізати твоє дерево ', - 'ko': '주의! Mercurial은 공격적으로 가비지 컬렉션을 수행하므로 가지치기를 할 필요가 있습니다.', - 'vi': 'Cảnh báo! Mercurial cần thực hiện thu gom rác và thu nhỏ cây lịch sử của bạn', - 'sl_SI': 'Opozorilo! Mercurial ima agresivno politiko garbage collectiona in bo obrezal vaše drevo', - 'pl': 'Ostrzeżenie! Mercurial prowadzi agresywną kolekcję śmieci i dlatego musi przycinać Twoje drzewo', - 'it_IT': - "Attenzione! Mercurial ha un garbage collector molto aggressivo e perciò deve potare il tuo albero", - 'ta_IN': 'எச்சரிக்கை! மெர்குரியல் வலிய களிவு சேகரிப்பு செய்கிறது, இதனால் உங்கள் மரத்தை கத்தரிக்க வேண்டிவரும்', - 'tr_TR': 'Uyarı! Mercurial, agresif garbage collection yapar bu nedenle ağacınızı prune etmeniz gerekebilir.' + "hg-prune-tree": { + "__desc__": "warning when pruning tree", + "en_US": "Warning! Mercurial does aggressive garbage collection and thus needs to prune your tree", + "zh_CN": "注意! Mercurial 会进行主动垃圾回收,需要将你的提交树縮小。", + "zh_TW": "注意! Mercurial 會積極地做垃圾收集,而且會因此把你的 tree 給縮小。", + "es_AR": "¡Cuidado! Mercurial hace garbage collection agresivamente y necesita eliminar tu árbol", + "es_MX": "¡Cuidado! Mercurial hace garbage collection agresivamente y necesita eliminar tu árbol", + "es_ES": "¡Cuidado! Mercurial hace la recolección de basura agresivamente (para administrar memoria) y necesita podar tu árbol.", + "pt_BR": "Cuidado! O Mercurial faz coleção de lixo agressiva e precisa prunar sua árvore", + "gl": "¡Coidado! Mercurial fai que recolección de lixo agresivamente (para limpar memoria) e precisa podar a túa árbore.", + "fr_FR": "Attention, Mercurial supprime de façon agressive et nécessite un prune du repository", + "de_DE": "Achtung! Mercurial macht aggressive Garbage Collection und muss daher deinen Baum reduzieren", + "ro": "Atenție! Mercurial face colectare de gunoi agresivă și trebuie să-ți taie arborele", + "ru_RU": "Внимание! Mercurial использует агрессивный сборщик мусора и обрезает ваше дерево", + "uk": "Увага! Mercurial агресивно збирає сміття й може обрізати твоє дерево ", + "ko": "주의! Mercurial은 공격적으로 가비지 컬렉션을 수행하므로 가지치기를 할 필요가 있습니다.", + "vi": "Cảnh báo! Mercurial cần thực hiện thu gom rác và thu nhỏ cây lịch sử của bạn", + "sl_SI": "Opozorilo! Mercurial ima agresivno politiko garbage collectiona in bo obrezal vaše drevo", + "pl": "Ostrzeżenie! Mercurial prowadzi agresywną kolekcję śmieci i dlatego musi przycinać Twoje drzewo", + "it_IT": "Attenzione! Mercurial ha un garbage collector molto aggressivo e perciò deve potare il tuo albero", + "ta_IN": "எச்சரிக்கை! மெர்குரியல் வலிய களிவு சேகரிப்பு செய்கிறது, இதனால் உங்கள் மரத்தை கத்தரிக்க வேண்டிவரும்", + "tr_TR": "Uyarı! Mercurial, agresif garbage collection yapar bu nedenle ağacınızı prune etmeniz gerekebilir." }, - /////////////////////////////////////////////////////////////////////////// - 'hg-a-option': { - '__desc__': 'warning for when using -A option', - 'en_US': 'The -A option is not needed for this app, just commit away!', - 'zh_TW': '對於這個 app 來說,-A 選項並不是必須的,只需要 commit 就好!', - 'zh_CN': '对本 App 而言,-A 选项并非必须项,直接 commit 就好!', - 'es_AR': 'La opción -A no es necesaria para esta aplicación, simplemente hacé commit', - 'es_MX': 'La opción -A no es necesaria para ésta aplicación, simplemente se hace commit', - 'es_ES': 'La opción -A no se necesita para este aplicación, sólo hace un commit!', - 'pt_BR': 'A opção -A não é necessária para este aplicativo, simplesmente faça commit', - 'gl' : 'A opción -A non se necesita para este aplicativo, ¡fai só un commit!', - 'de_DE': 'Die Option -A wird in dieser Anwendung nicht benötigt, committe einfach!', - 'fr_FR': 'L\'option -A n\'est pas nécessaire pour cette application, simplement commiter', - 'ro': "Opțiunea -A nu este necesară pentru această aplicație, doar comite!", - 'ru_RU': 'Опция -A не требуется для этого приложения, просто сделайте коммит.', - 'uk': 'Опція -A не потрібна для цього застосунку, можна просто комітити!', - 'ko': '이 앱에선 -A 옵션이 필요 없습니다. 그냥 커밋하세요!', - 'vi': 'Không cần thiết phải dùng tùy chọn -A trên ứng dụng này, cứ commit là được!', - 'sl_SI': 'Opcija -A ni potrebna za to aplikacijo, samo commitaj!', - 'pl': 'Opcja -A nie jest wymagana w tej aplikacji, po prostu zrób `commit`!', - 'it_IT': "L'opzione -A non è necessiaria, fai semplicemente commit!", - 'ta_IN': 'இந்த பயன்பாட்டிற்கு -A மாற்று தேவையில்லை, `கமிட்` செய்யுங்கள்', - 'tr_TR': 'Bu uygulama için -A seçeneği gereksizdir, sadece commit atın!' + "hg-a-option": { + "__desc__": "warning for when using -A option", + "en_US": "The -A option is not needed for this app, just commit away!", + "zh_TW": "對於這個 app 來說,-A 選項並不是必須的,只需要 commit 就好!", + "zh_CN": "对本 App 而言,-A 选项并非必须项,直接 commit 就好!", + "es_AR": "La opción -A no es necesaria para esta aplicación, simplemente hacé commit", + "es_MX": "La opción -A no es necesaria para ésta aplicación, simplemente se hace commit", + "es_ES": "La opción -A no se necesita para este aplicación, sólo hace un commit!", + "pt_BR": "A opção -A não é necessária para este aplicativo, simplesmente faça commit", + "gl": "A opción -A non se necesita para este aplicativo, ¡fai só un commit!", + "de_DE": "Die Option -A wird in dieser Anwendung nicht benötigt, committe einfach!", + "fr_FR": "L'option -A n'est pas nécessaire pour cette application, simplement commiter", + "ro": "Opțiunea -A nu este necesară pentru această aplicație, doar comite!", + "ru_RU": "Опция -A не требуется для этого приложения, просто сделайте коммит.", + "uk": "Опція -A не потрібна для цього застосунку, можна просто комітити!", + "ko": "이 앱에선 -A 옵션이 필요 없습니다. 그냥 커밋하세요!", + "vi": "Không cần thiết phải dùng tùy chọn -A trên ứng dụng này, cứ commit là được!", + "sl_SI": "Opcija -A ni potrebna za to aplikacijo, samo commitaj!", + "pl": "Opcja -A nie jest wymagana w tej aplikacji, po prostu zrób `commit`!", + "it_IT": "L'opzione -A non è necessiaria, fai semplicemente commit!", + "ta_IN": "இந்த பயன்பாட்டிற்கு -A மாற்று தேவையில்லை, `கமிட்` செய்யுங்கள்", + "tr_TR": "Bu uygulama için -A seçeneği gereksizdir, sadece commit atın!" }, - /////////////////////////////////////////////////////////////////////////// - 'hg-error-no-status': { - '__desc__': 'One of the errors for hg', - 'en_US': 'There is no status command for this app, since there is no staging of files. Try hg summary instead', - 'zh_CN': '本 App 没有 status 命令哦,因为根本没有 stage 缓存文件。可以用 hg summary 代替哦', - 'zh_TW': '本 App 没有 status 命令哦,因为根本没有 stage 缓存文件。可以用 hg summary 代替哦', - 'es_AR': 'No hay un comando status para esta aplicación, dado que no hay archivos que indexar. Probá hg summary, en cambio', - 'es_MX': 'No hay un comando status para esta aplicación, dado que no hay archivos que indexar. Prueba `hg summary`, en cambio', - 'es_ES': 'No hay un comando status para esta aplicación, porque no hay archivos que indexar. Prueba el comando hg summary', - 'pt_BR': 'Não existe um comando status para este aplicativo, já que não há staging de arquivos. Tente hg summary', - 'gl' : 'Non hai un comando status para esta aplicación, xa que non hai ficheiros que indexar. Proba hg summary', - 'fr_FR': 'Il n\'y a pas de commande status pour cette application, car il n\'y a pas de fichier stagé. Essayez hg summary à la place.', - 'de_DE': 'Es gibt keinen Befehl status in dieser Anwendung, da es kein Staging von Dateien gibt. Probier stattdessen hg summary', - 'ro': "Nu există comanda status pentru această aplicație, deoarece nu există staging de fișiere. Încearcă hg summary în schimb", - 'ru_RU': 'Команда status не поддерживается в этом приложении, так как здесь нет файлов. Попробуйте выполнить hg summary', - 'uk': 'Команда status не підтримується в цьому застосунку, так як немає стейджингу(staging) файлів. Натомість спробуй hg summary ', - 'ko': '파일들의 스테이징이 없으므로 이 앱을 위한 상태 명령어는 없습니다. 대신 hg summary를 시도해보세요.', - 'vi': 'Ứng dụng này không hỗ trợ lệnh `status` vì không có tệp nhớ đệm, thay vì đó hãy dùng lệnh `hg summary`', - 'sl_SI': 'Za to aplikacijo ni na voljo `status` ukaza, ker tu ni `stage-anja` datotek. Poizkusiš lahko `hg summary`', - 'pl' : 'W tej aplikacji nie ma polecenia `status`, ponieważ nie ma przemieszczania plików. Zamiast tego wypróbuj `hg summary`', - 'it_IT': - "Non esiste il comando status in quest'app, visto che non esiste lo staging dei file. Prova invece `hg summary`", - 'ta_IN': 'கோப்புகள் எதுவும் அடுத்த படிநிலையில் இல்லை என்பதால், இந்த பயன்பாட்டிற்கான மதிப்பீடும் கட்டளை எதுவும் இல்லை. அதற்கு பதிலாக `hg summary` முயற்சிக்கவும்', - 'tr_TR': 'Bu uygulama için bir status komutu yok çünkü dosyalar stage edilemiyor. Bunun yerine hg summit komutunu deneyin.' + "hg-error-no-status": { + "__desc__": "One of the errors for hg", + "en_US": "There is no status command for this app, since there is no staging of files. Try hg summary instead", + "zh_CN": "本 App 没有 status 命令哦,因为根本没有 stage 缓存文件。可以用 hg summary 代替哦", + "zh_TW": "本 App 没有 status 命令哦,因为根本没有 stage 缓存文件。可以用 hg summary 代替哦", + "es_AR": "No hay un comando status para esta aplicación, dado que no hay archivos que indexar. Probá hg summary, en cambio", + "es_MX": "No hay un comando status para esta aplicación, dado que no hay archivos que indexar. Prueba `hg summary`, en cambio", + "es_ES": "No hay un comando status para esta aplicación, porque no hay archivos que indexar. Prueba el comando hg summary", + "pt_BR": "Não existe um comando status para este aplicativo, já que não há staging de arquivos. Tente hg summary", + "gl": "Non hai un comando status para esta aplicación, xa que non hai ficheiros que indexar. Proba hg summary", + "fr_FR": "Il n'y a pas de commande status pour cette application, car il n'y a pas de fichier stagé. Essayez hg summary à la place.", + "de_DE": "Es gibt keinen Befehl status in dieser Anwendung, da es kein Staging von Dateien gibt. Probier stattdessen hg summary", + "ro": "Nu există comanda status pentru această aplicație, deoarece nu există staging de fișiere. Încearcă hg summary în schimb", + "ru_RU": "Команда status не поддерживается в этом приложении, так как здесь нет файлов. Попробуйте выполнить hg summary", + "uk": "Команда status не підтримується в цьому застосунку, так як немає стейджингу(staging) файлів. Натомість спробуй hg summary ", + "ko": "파일들의 스테이징이 없으므로 이 앱을 위한 상태 명령어는 없습니다. 대신 hg summary를 시도해보세요.", + "vi": "Ứng dụng này không hỗ trợ lệnh `status` vì không có tệp nhớ đệm, thay vì đó hãy dùng lệnh `hg summary`", + "sl_SI": "Za to aplikacijo ni na voljo `status` ukaza, ker tu ni `stage-anja` datotek. Poizkusiš lahko `hg summary`", + "pl": "W tej aplikacji nie ma polecenia `status`, ponieważ nie ma przemieszczania plików. Zamiast tego wypróbuj `hg summary`", + "it_IT": "Non esiste il comando status in quest'app, visto che non esiste lo staging dei file. Prova invece `hg summary`", + "ta_IN": "கோப்புகள் எதுவும் அடுத்த படிநிலையில் இல்லை என்பதால், இந்த பயன்பாட்டிற்கான மதிப்பீடும் கட்டளை எதுவும் இல்லை. அதற்கு பதிலாக `hg summary` முயற்சிக்கவும்", + "tr_TR": "Bu uygulama için bir status komutu yok çünkü dosyalar stage edilemiyor. Bunun yerine hg summit komutunu deneyin." }, - /////////////////////////////////////////////////////////////////////////// - 'hg-error-need-option': { - '__desc__': 'One of the errors for hg', - 'en_US': 'I need the option {option} for that command!', - 'zh_CN': '我需要该命令使用 {option} 选项呢。', - 'zh_TW': '我需要該命令使用 {option} 選項呢。', - 'es_AR': '¡Necesito la opción {opcion} para ese comando!', - 'es_MX': '¡Necesito la opción {opcion} para ese comando!', - 'es_ES': '¡Necesito la opción {opcion} para ese comando!', - 'pt_BR': 'Eu preciso da opção {option} para esse comando!', - 'gl' : 'Preciso da opción {option} para ese comando!', - 'fr_FR': 'J\'ai besoin de l\'option {option} pour cette commande', - 'de_DE': 'Ich benötige die Option {option} für diesen Befehl!', - 'ro': "Am nevoie de opțiunea {option} pentru această comandă!", - 'ru_RU': 'Для этой команды требуется опция {option}', - 'uk': 'Для цієї команди потрібна опція {option}', - 'ko': '해당 명령에 {option} 옵션이 필요합니다.', - 'vi': 'Câu lệnh đó cần tùy chọn {option}!', - 'sl_SI': 'Potrebujem opcijo {option} za ta ukaz!', - 'pl': 'Potrzebuję opcji {option} dla tego polecenia!', - 'it_IT': "Ho bisogno di {option} per quel comando!", - 'ta_IN': 'எனக்கு அந்த கட்டளைக்கு மாற்று {option} தேவை', - 'tr_TR': 'Bu komut için {seçenek} seçeneğine ihtiyacım var!' + "hg-error-need-option": { + "__desc__": "One of the errors for hg", + "en_US": "I need the option {option} for that command!", + "zh_CN": "我需要该命令使用 {option} 选项呢。", + "zh_TW": "我需要該命令使用 {option} 選項呢。", + "es_AR": "¡Necesito la opción {opcion} para ese comando!", + "es_MX": "¡Necesito la opción {opcion} para ese comando!", + "es_ES": "¡Necesito la opción {opcion} para ese comando!", + "pt_BR": "Eu preciso da opção {option} para esse comando!", + "gl": "Preciso da opción {option} para ese comando!", + "fr_FR": "J'ai besoin de l'option {option} pour cette commande", + "de_DE": "Ich benötige die Option {option} für diesen Befehl!", + "ro": "Am nevoie de opțiunea {option} pentru această comandă!", + "ru_RU": "Для этой команды требуется опция {option}", + "uk": "Для цієї команди потрібна опція {option}", + "ko": "해당 명령에 {option} 옵션이 필요합니다.", + "vi": "Câu lệnh đó cần tùy chọn {option}!", + "sl_SI": "Potrebujem opcijo {option} za ta ukaz!", + "pl": "Potrzebuję opcji {option} dla tego polecenia!", + "it_IT": "Ho bisogno di {option} per quel comando!", + "ta_IN": "எனக்கு அந்த கட்டளைக்கு மாற்று {option} தேவை", + "tr_TR": "Bu komut için {seçenek} seçeneğine ihtiyacım var!" }, - /////////////////////////////////////////////////////////////////////////// - 'hg-error-log-no-follow': { - '__desc__': 'hg log without -f (--follow)', - 'en_US': 'hg log without -f is currently not supported, use -f', - 'zh_CN': '暂不支持没有-f 选项的 hg log 命令,请补充 -f 选项吧', - 'zh_TW': '暫不支持沒有-f 選項的 hg log 命令,請補充 -f 選項吧', - 'es_AR': 'hg log sin el parámetro -f no está soportado, usá -f', - 'es_MX': 'hg log sin el parámetro -f no está soportado, usa -f', - 'es_ES': 'Actualmente hg log sin -f no es compatible con esta aplicación. Usa -f.', - 'pt_BR': 'hg log sem -f atualmente não é suportado, use -f', - 'gl' : 'hg log sen -f actulamente non é soportado, usa -f', - 'fr_FR': 'hg log sans -f n\'est pas supporté', - 'de_DE': 'hg log ohne -f wird aktuell nicht unterstützt, benutze bitte -f', - 'ro': "Comanda hg log fără -f nu este suportată, folosește -f", - 'ru_RU': 'hg log без опции -f в настоящий момент не поддерживается, используйте -f', - 'uk': 'hg log без опції -f в данний момент не підтримується, використовуй -f', - 'ko': '-f가 없는 hg log는 현재 지원되지 않습니다. -f를 사용하세요.', - 'vi': 'Hiện tại thì `hg log` mà không có tùy chọn -f chưa được hỗ trợ, hãy viết thêm -f', - 'sl_SI': 'hg log brez -f trenutno ni podprt, uporabi -f', - 'pl': '`hg log` bez -f nie jest obecnie obsługiwany, użyj -f', - 'it_IT': "hg log senza -f non è attualmente supportato, usa -f", - 'ta_IN': '-f இல்லாமல் `hg log` தற்போது ஆதரிக்கப்படவில்லை, -f ஐப் பயன்படுத்தவும்', - 'tr_TR': '-f olmadan hg logu şu anda desteklenmiyor, -f kullanın.' + "hg-error-log-no-follow": { + "__desc__": "hg log without -f (--follow)", + "en_US": "hg log without -f is currently not supported, use -f", + "zh_CN": "暂不支持没有-f 选项的 hg log 命令,请补充 -f 选项吧", + "zh_TW": "暫不支持沒有-f 選項的 hg log 命令,請補充 -f 選項吧", + "es_AR": "hg log sin el parámetro -f no está soportado, usá -f", + "es_MX": "hg log sin el parámetro -f no está soportado, usa -f", + "es_ES": "Actualmente hg log sin -f no es compatible con esta aplicación. Usa -f.", + "pt_BR": "hg log sem -f atualmente não é suportado, use -f", + "gl": "hg log sen -f actulamente non é soportado, usa -f", + "fr_FR": "hg log sans -f n'est pas supporté", + "de_DE": "hg log ohne -f wird aktuell nicht unterstützt, benutze bitte -f", + "ro": "Comanda hg log fără -f nu este suportată, folosește -f", + "ru_RU": "hg log без опции -f в настоящий момент не поддерживается, используйте -f", + "uk": "hg log без опції -f в данний момент не підтримується, використовуй -f", + "ko": "-f가 없는 hg log는 현재 지원되지 않습니다. -f를 사용하세요.", + "vi": "Hiện tại thì `hg log` mà không có tùy chọn -f chưa được hỗ trợ, hãy viết thêm -f", + "sl_SI": "hg log brez -f trenutno ni podprt, uporabi -f", + "pl": "`hg log` bez -f nie jest obecnie obsługiwany, użyj -f", + "it_IT": "hg log senza -f non è attualmente supportato, usa -f", + "ta_IN": "-f இல்லாமல் `hg log` தற்போது ஆதரிக்கப்படவில்லை, -f ஐப் பயன்படுத்தவும்", + "tr_TR": "-f olmadan hg logu şu anda desteklenmiyor, -f kullanın." }, - /////////////////////////////////////////////////////////////////////////// - 'git-status-detached': { - '__desc__': 'One of the lines for git status output', - 'en_US': 'Detached head!', - 'de_DE': 'Detached head!', - 'zh_CN': '游离的 Head(Detached head)!', - 'zh_TW': '分離 Head!', - 'es_AR': '¡Detached HEAD!', - 'es_MX': '¡HEAD separado! (Detached HEAD).', - 'es_ES': '¡HEAD separado! (Detached HEAD).', - 'pt_BR': 'Detached HEAD!', - 'gl' : '¡Detached HEAD!', - 'fr_FR': 'head détaché !', - 'ro': "HEAD detașat!", - 'ru_RU': 'Отделенный HEAD', - 'uk': 'Відокремлений HEAD', - 'ko': '분리된 HEAD!', - 'vi': 'HEAD bị tách biệt!', - 'sl_SI': 'Detached head!', - 'pl': 'Odłączono HEAD!', - 'it_IT': "Testa distaccata (Detached head)!", - 'ta_IN': 'பிரிக்கப்பட்ட தலை!', - 'tr_TR': 'Detached head!(Bağımsız başlık!)' + "git-status-detached": { + "__desc__": "One of the lines for git status output", + "en_US": "Detached head!", + "de_DE": "Detached head!", + "zh_CN": "游离的 Head(Detached head)!", + "zh_TW": "分離 Head!", + "es_AR": "¡Detached HEAD!", + "es_MX": "¡HEAD separado! (Detached HEAD).", + "es_ES": "¡HEAD separado! (Detached HEAD).", + "pt_BR": "Detached HEAD!", + "gl": "¡Detached HEAD!", + "fr_FR": "head détaché !", + "ro": "HEAD detașat!", + "ru_RU": "Отделенный HEAD", + "uk": "Відокремлений HEAD", + "ko": "분리된 HEAD!", + "vi": "HEAD bị tách biệt!", + "sl_SI": "Detached head!", + "pl": "Odłączono HEAD!", + "it_IT": "Testa distaccata (Detached head)!", + "ta_IN": "பிரிக்கப்பட்ட தலை!", + "tr_TR": "Detached head!(Bağımsız başlık!)" }, - /////////////////////////////////////////////////////////////////////////// - 'git-status-onbranch': { - '__desc__': 'One of the lines for git status output', - 'en_US': 'On branch {branch}', - 'de_DE': 'Auf Branch {branch}', - 'zh_CN': '当前分支 {branch}', - 'zh_TW': '切換到 branch {branch}', - 'es_AR': 'En la rama {branch}', - 'es_MX': 'En la rama {branch}', - 'es_ES': 'En la rama {branch}', - 'pt_BR': 'No ramo {branch}', - 'gl' : 'Non na rama {branch}', - 'fr_FR': 'Sur la branche {branch}', - 'ro': "Pe ramura {branch}", - 'ru_RU': 'В ветке {branch}', - 'uk': 'В гілці {branch}', - 'ko': '분기 지점 {branch}에서', - 'vi': 'Đang trên nhánh {branch}', - 'sl_SI': 'Na branchu {branch}', - 'pl': 'Na branch-u {branch}', - 'it_IT': "Sul ramo {branch}", - 'ta_IN': '{branch} கிளையில்', - 'tr_TR': '{branch} branch\'indesiniz' + "git-status-onbranch": { + "__desc__": "One of the lines for git status output", + "en_US": "On branch {branch}", + "de_DE": "Auf Branch {branch}", + "zh_CN": "当前分支 {branch}", + "zh_TW": "切換到 branch {branch}", + "es_AR": "En la rama {branch}", + "es_MX": "En la rama {branch}", + "es_ES": "En la rama {branch}", + "pt_BR": "No ramo {branch}", + "gl": "Non na rama {branch}", + "fr_FR": "Sur la branche {branch}", + "ro": "Pe ramura {branch}", + "ru_RU": "В ветке {branch}", + "uk": "В гілці {branch}", + "ko": "분기 지점 {branch}에서", + "vi": "Đang trên nhánh {branch}", + "sl_SI": "Na branchu {branch}", + "pl": "Na branch-u {branch}", + "it_IT": "Sul ramo {branch}", + "ta_IN": "{branch} கிளையில்", + "tr_TR": "{branch} branch'indesiniz" }, - /////////////////////////////////////////////////////////////////////////// - 'git-status-readytocommit': { - '__desc__': 'One of the lines for git status output', - 'en_US': 'Ready to commit! (as always in this demo)', - 'de_DE': 'Fertig zum committen! (Wie immer in dieser Demo)', - 'zh_CN': '可以提交啦!(在这个程序中无须修改文件,一直可以提交)', - 'zh_TW': '準備 commit!(在這個 demo 裡面可以一直 commit)', - 'es_AR': '¡Listo para commitear! (como siempre en esta demo ;-) )', - 'es_MX': '¡Listo para hacer commit! (como siempre en ésta demo)', - 'es_ES': '¡Listo para hacer un commit (como siempre en esta demo)!', - 'pt_BR': 'Pronto para commitar! (como sempre neste demo ;-) )', - 'gl' : '¡Praparado para facer un commit (como sempre nesta demo ;-) )!', - 'fr_FR': 'Prêt à commit ! (comme toujours dans cette démo)', - 'ro': "Gata de comit! (ca întotdeauna în această demonstrație)", - 'ru_RU': 'Готово к коммиту! (как и всегда в этом демо)', - 'uk': 'Готово до коміту! (як завжди в цьому демо)', - 'ko': '(이 데모에서는 항상) 커밋 준비 완료!', - 'vi': 'Sẵn sàng để commit! (khi demo thì luôn có thể commit)', - 'sl_SI': 'Pripravljen za commit! (kot vedno v tem demotu)', - 'pl': 'Gotowy commit! (jak zawsze w tym demo)', - 'it_IT': "Pronto al commit! (come sempre in questa demo)", - 'ta_IN': '`commit` செய்ய தயார்! (இந்த செயல் விளக்கத்தில் எப்போதும் செய்வதை போல)', - 'tr_TR': 'Commit etmeye hazır! (bu demoda her zaman olduğu gibi)' + "git-status-readytocommit": { + "__desc__": "One of the lines for git status output", + "en_US": "Ready to commit! (as always in this demo)", + "de_DE": "Fertig zum committen! (Wie immer in dieser Demo)", + "zh_CN": "可以提交啦!(在这个程序中无须修改文件,一直可以提交)", + "zh_TW": "準備 commit!(在這個 demo 裡面可以一直 commit)", + "es_AR": "¡Listo para commitear! (como siempre en esta demo ;-) )", + "es_MX": "¡Listo para hacer commit! (como siempre en ésta demo)", + "es_ES": "¡Listo para hacer un commit (como siempre en esta demo)!", + "pt_BR": "Pronto para commitar! (como sempre neste demo ;-) )", + "gl": "¡Praparado para facer un commit (como sempre nesta demo ;-) )!", + "fr_FR": "Prêt à commit ! (comme toujours dans cette démo)", + "ro": "Gata de comit! (ca întotdeauna în această demonstrație)", + "ru_RU": "Готово к коммиту! (как и всегда в этом демо)", + "uk": "Готово до коміту! (як завжди в цьому демо)", + "ko": "(이 데모에서는 항상) 커밋 준비 완료!", + "vi": "Sẵn sàng để commit! (khi demo thì luôn có thể commit)", + "sl_SI": "Pripravljen za commit! (kot vedno v tem demotu)", + "pl": "Gotowy commit! (jak zawsze w tym demo)", + "it_IT": "Pronto al commit! (come sempre in questa demo)", + "ta_IN": "`commit` செய்ய தயார்! (இந்த செயல் விளக்கத்தில் எப்போதும் செய்வதை போல)", + "tr_TR": "Commit etmeye hazır! (bu demoda her zaman olduğu gibi)" }, - /////////////////////////////////////////////////////////////////////////// - 'git-dummy-msg': { - '__desc__': 'The dummy commit message for all commits. Feel free to put in a ' + - 'shoutout to your school / city / whatever!', - 'en_US': 'Quick commit. Go Bears!', - 'de_DE': 'Schneller Commit. Eff-Zeh!', - 'zh_CN': '快速提交。Coding 4ever!', - 'zh_TW': '快速 commit。上啊熊!', - 'es_AR': 'Otro commit más, y van...', - 'es_MX': 'Otro commit más, y van...', - 'es_ES': 'Hagamos un commit. Atlanta, Georgia! Escucha WHATUPRG también.', - 'pt_BR': 'Commitando.. Vai Timão!', - 'gl' : 'Mesturando.. ¡Alá imos!', - 'fr_FR': 'Commit rapide. NoMaN Sux!', - 'ro': "Commite rapid. Hai mai repede!", - 'ru_RU': 'Быстрый коммит. А надо!', - 'uk': 'Швидкий коміт. Динамо!', - 'ko': '빨리 커밋하세요!', - 'vi': 'Commit luôn đi cho nóng!', - 'sl_SI': 'Hiter commit.', - 'pl': 'Szybki commit.', - 'it_IT': "Laura I love you, but our dogs too (Barone & Duchessa)!", - 'ta_IN': 'Quick commit. Go Bears!', + "git-dummy-msg": { + "__desc__": "The dummy commit message for all commits. Feel free to put in a shoutout to your school / city / whatever!", + "en_US": "Quick commit. Go Bears!", + "de_DE": "Schneller Commit. Eff-Zeh!", + "zh_CN": "快速提交。Coding 4ever!", + "zh_TW": "快速 commit。上啊熊!", + "es_AR": "Otro commit más, y van...", + "es_MX": "Otro commit más, y van...", + "es_ES": "Hagamos un commit. Atlanta, Georgia! Escucha WHATUPRG también.", + "pt_BR": "Commitando.. Vai Timão!", + "gl": "Mesturando.. ¡Alá imos!", + "fr_FR": "Commit rapide. NoMaN Sux!", + "ro": "Commite rapid. Hai mai repede!", + "ru_RU": "Быстрый коммит. А надо!", + "uk": "Швидкий коміт. Динамо!", + "ko": "빨리 커밋하세요!", + "vi": "Commit luôn đi cho nóng!", + "sl_SI": "Hiter commit.", + "pl": "Szybki commit.", + "it_IT": "Laura I love you, but our dogs too (Barone & Duchessa)!", + "ta_IN": "Quick commit. Go Bears!", "tr_TR": "Hızlı commit. Go Bears!" }, - 'git-error-origin-fetch-uptodate': { - '__desc__': 'One of the error messages for git', - 'en_US': 'Already up to date!', - 'de_DE': 'Bereits auf dem aktuellsten Stand!', - 'fr_FR': 'Déjà à jour', - 'es_AR': 'Estás en la versión más reciente', - 'es_MX': 'Actualizado en la versión más reciente.', - 'es_ES': 'Ya actualizado con la versión más reciente.', - 'pt_BR': 'Já estamos na versão mais recente!', - 'gl' : 'Xa estamos actualizados ca versión máis recente', - 'zh_TW': '已經是最新的了', - 'zh_CN': '已经是最新的了', - 'ro': "Deja actualizat la ultima versiune!", - 'ru_RU': 'Уже обновлено!', - 'uk': 'Вже оновлено!', - 'ko': '이미 최신 상태입니다!', - 'vi': 'Cập nhật mới nhất rồi!', - 'sl_SI': 'Že posodobljeno!', - 'pl': 'Już aktualne!', - 'it_IT': "E' gia la versione più recente!", - 'ta_IN': 'ஏற்கனவே புதுப்பித்த நிலையில் உள்ளது!', - 'tr_TR': 'Zaten güncel!' - }, - 'git-error-origin-fetch-no-ff': { - '__desc__': 'One of the error messages for git', - 'en_US': 'Your origin branch is out of sync with the remote branch and fetch cannot be performed', - 'zh_CN': '你的 origin 仓库中的分支与远程分支的不同步了,无法执行 fetch 命令', - 'zh_TW': '你的 origin 分支已經失去了與 remote 遠端分支的同步,所以無法執行 fetch 命令', - 'de_DE': 'Dein origin Branch ist nicht auf dem Stand des Remote Branches und fetch kann nicht ausgeführt werden', - 'es_AR': 'Tu rama origin está desincronizada con la rama remota, por lo que no se puede hacer el fetch', - 'es_MX': 'Tu rama origin está desincronizada con la rama remota, por lo que no se puede hacer el fetch', - 'es_ES': 'Tu rama origin no está sicronizada con la rama remota, así que el fetch no se puede realizar.', - 'pt_BR': 'O fetch não pode ser realizado, pois o ramo de origem está fora de sincronia com o ramo remoto', - 'gl' : 'O fetch non pode ser realizado xa que a rama de orixe non está sincronizada ca rama remota', - 'fr_FR': 'Votre branche origin n\'est plus synchronisée avec la branche distante et fetch ne peut pas être appliqué. Essayez avec l\'option --force', - 'ro': "Ramura origin nu este sincronizată cu ramura de la distanță, deci fetch nu poate fi efectuat", - 'ru_RU': 'Ваша origin ветка не синхронизирована с удаленной веткой, невозможно выполнить fetch', - 'uk': 'Твоя гілка origin не синхронізована з віддаленою гілкою, неможливо виконати fetch', - 'ko': 'origin 브랜치가 원격 브랜치와 동기화되지 않아서 fetch를 실행할 수 없습니다.', - 'vi': 'Nhánh của bạn không đồng bộ với nhánh từ xa nên lệnh fetch không thực thi được', - 'sl_SI': 'Tvoj origin branch ni sinhroniziran z oddaljenim branchem, zato se fetch se ne more izvesti', - 'pl': 'Twój branch nie jest zsynchronizowany ze zdalny branch-em i nie można przeprowadzić pobierania', - 'it_IT': - "Il tuo ramo origin non è sincronizzato con il ramo remoto, e fetch non può essere eseguito", - 'ta_IN': 'உங்கள் மூலக் கிளை தொலைநிலைக் கிளையுடன் ஓருங்கினைக்கப்படவில்லை. `fetch` செய்ய முடியாது', - 'tr_TR': 'Origin Branch\'iniz, Remote branch ile uyumsuzdur ve `fetch` işlemi gerçekleştirilemez.' - }, - 'git-error-origin-push-no-ff': { - '__desc__': 'One of the error messages for git', - 'en_US': 'The remote repository has diverged from your local repository, so uploading your changes is not a simple fast forward (and thus your push was rejected). Please pull down the new changes in the remote repository, incorporate them into this branch, and try again. You can do so with git pull or git pull --rebase', - 'zh_CN': '远程仓库与你的本地仓库产生了分歧,故此上传操作无法通过 Fast-forward 实现(因此你的 push 被拒绝了)。请 pull 下来远程仓库里最新的更改,与这个分支合并之后再试一次。你可以通过 git pull 或 git pull --rebase 实现。', - 'zh_TW': '遠端倉庫與你的本地倉庫產生了分歧,故此上傳操作無法通過簡單地快進實現(因此你的 push 被拒絕了)。請 pull 下來遠端裡最新的更改,與本地合併之後再試一次。你可以通過 git pull 或 git pull --rebase 實現。', - 'de_DE': 'Das entfernte Repository weicht von deinem lokalen Repository ab, daher können deine Änderungen nicht mit einem einfachen fast forward hochgeladen werden (und daher ist dein push abgelehnt worden). Bitte pull erst die neuen Änderungen in das lokale Repository, integriere sie in den Branch und versuch es nochmal. Das kannst du mit git pull oder git pull --rebase machen', - 'es_AR': 'El repositorio remoto divergió de tu repositorio local, por lo que subir tus cambios no es un simple fast forward (y por eso se rechazó tu push). Por favor, hacé pull de los nuevos cambios en el repositorio remoto, incorporalos a esta rama y probá de nuevo. Podés hacerlo con git pull o git pull --rebase', - 'es_MX': 'El repositorio remoto divergió de tu repositorio local, por lo que subir tus cambios no es un simple fast forward (y por eso se rechazó tu push). Por favor, hacé pull de los nuevos cambios en el repositorio remoto, incorporalos a esta rama y prueba de nuevo. Puedes hacerlo con `git pull` o `git pull --rebase`', - 'es_ES': 'El repositorio remoto se ha desviado del repositorio local. Subir cambios no es un avance en cámara rápida (por eso fue rechazado tu push). Por favor haz pull para descargar los cambios en el repositorio remoto para que los incorpores en la rama actual. Los cambios se pueden hacer pull con el comando "git pull" o "git pull --rebase"', - 'pt_BR': 'O repositório remoto divergiu do repositório local, então enviar suas mudanças não é um simples fast forward (e por isso seu push foi rejeitado). Por favor, faça pull das novas mudanças do repositório remoto, incorpore-os a este ramo, e tente novamente. Você pode fazê-lo com git pull ou git pull --rebase', - 'gl' : 'O repositorio remoto diverxe do teu repositorio local. Subir os cambios non é un fast-forward (avance rápido) e por iso foi rechazado o teu push. Por favor, fai un pull dos novos cambios do repositorio remoto e inclúeos na túa rama actual. Os cambios pódense facer co comando "git pull" ou "git pull --rebase"', - 'fr_FR': 'Le dépôt distant a divergé de votre référentiel local, donc l\'envoi de vos modifications n\'est pas en simple avance rapide (et donc votre envoi a été rejeté). Veuillez récupérer les nouveaux changements depuis le dépôt distant, les intégrer dans cette branche, et essayez à nouveau. Vous pouvez le faire avec git pull ou git pull --rebase', - 'ro': "Repozitoriul de la distanță a deviat de repozitoriul tău local, deci încărcarea modificărilor nu este un simplu fast forward (și astfel push-ul tău a fost respins). Te rog să tragi noile modificări din repozitoriul de la distanță, să le integrezi în această ramură și să încerci din nou. Poți face asta cu git pull sau git pull --rebase", - 'ru_RU': 'Удаленный репозиторий разошелся с вашим локальным репозиторием, поэтому выгрузка ваших изменений не может быть в режиме fast forward (и следовательно ваш push будет отклонён). Пожалуйста, удалите изменения в удаленном репозитории которые, объедините их в эту ветку и попробуйте еще раз. Вы можете сделать это с помощью git pull или git pull --rebase', - 'uk': 'Віддалений репозиторій розбігся з твоїм локальним репозиторієм, тому відвантаження твоїх змін не є простим fast forward (і тому твій push був відхилений). Будь-ласка, витягни зміни з віддаленого репозиторію, включи їх в цю гілку, й спробуй ще. Ти можеш зробити це за допомогою git pull чи git pull --rebase', - 'ko': '원격 리포지토리가 로컬 리포지토리에서 분기되었으므로 변경 사항이 fast foward 방식으로 업로드되지 않고 푸시가 거부됩니다. 원격 리포지토리의 새 변경 내용을 끌어서 이 브랜치에 통합한 후 다시 시도하세요. git pull 또는 git pull --rebase를 사용해도 됩니다.', - 'vi': 'Kho chứa từ xa có sự khác biệt với kho chứa cục bộ của bạn, nên không thể tự động (fast forward) cập nhật thay đổi của bạn (và vì thế hoạt động push của bạn bị từ chối). Vui lòng kéo về thay đổi từ kho chứa từ xa, kết nạp vào nhánh hiện tại, và thử lại lần nữa. Bạn có thể dùng lệnh `git pull` hoặc `git pull --rebase`', - 'sl_SI': 'Oddaljen repozitorij se je ločil od tvojega lokalnega repozitorija, zato nalaganje sprememb ni možno z `fast forward` opcijo (zato je bil `push` zavrnjen). Prosim pull-aj dol nove spremembe iz oddaljenega repozitorija, jih vključi v svoj branch, nato pa poizkusi ponovno. To lahko narediš z `git pull` ali `git pull --rebase`', - 'pl' : 'Zdalne repozytorium różni się od lokalnego repozytorium, dlatego twoich zmian nie można przesłać za pomocą prostego szybkiego `fast forward` (i dlatego polecenie `push` zostało odrzucone). Najpierw zrób `pull` aby pobrać nowe zmiany do lokalnego repozytorium, zintegruj je z branch-em i spróbuj ponownie. Możesz to zrobić za pomocą `git pull` lub `git pull --rebase`', - 'it_it': 'Il repository remoto è diverso dal tuo repository locale, quindi il caricamento non è un semplice fast forward (e per questo il tuo push è fallito). Per favore esegui pull per scaricare i nuovi cambiamenti dal repository remoto, incorporarli in questo ramo, e provare ancora. Puoi effettuarlo tramite i comandi git pull o git pull --rebase', - 'ta_IN': 'தொலைநிலை களஞ்சியம் உங்கள் களஞ்சியத்திலிருந்து வேறுபட்டுள்ளது, எனவே உங்கள் மாற்றங்களை எளிமையான `fast forward` முறையில் பதிவேற்ற இயலாது (இதனால் உங்கள் `push` நிராகரிக்கப்பட்டது). தொலை களஞ்சியத்தில் புதிய மாற்றங்களை `pull` செய்து, அவற்றை இந்த கிளையில் இணைத்து, மீண்டும் முயற்சிக்கவும். நீங்கள் அவ்வாறு `git pull` அல்லது `git pull --rebase` கட்டளை கொண்டு செய்யலாம்', - 'tr_TR': 'Uzak depo, yerel deponuzdan sapmış durumda, bu yüzden değişikliklerinizi basit bir fast forward ile yüklemek mümkün değil (bu nedenle push işleminiz reddedildi). Lütfen uzak depodaki yeni değişiklikleri çekin, bunları bu dalda birleştirin ve tekrar deneyin. Bunu git pull veya git pull --rebase komutlarıyla yapabilirsiniz.' - }, - 'git-error-remote-branch': { - '__desc__': 'One of the error messages for git', - 'en_US': 'You cannot execute that command on a remote branch', - 'zh_CN': '你不能在远程分支上执行这个命令。', - 'zh_TW': '你不能在遠端分支上執行這個命令呀。', - 'de_DE': 'Du kannst diesen Befehl nicht auf einem Remote Branch ausführen', - 'es_AR': 'No podés ejecutar ese comando en una rama remota', - 'es_MX': 'No puedes ejecutar ese comando en una rama remota', - 'es_ES': 'No puedes ejecutar ese comando en una rama remota', - 'pt_BR': 'Você não pode executar esse comando em um ramo remoto', - 'gl' : 'Non podes executar ese comando nunha rama remota', - 'fr_FR': 'Vous ne pouvez exécuter cette commande sur une branche distante', - 'ro': "Nu poți executa acest comandă pe o ramură la distanță", - 'ru_RU': 'Вы не можете выполнить эту команду на удаленной ветке', - 'uk': 'Ти не можеш виконати цю команду на віддаленій гілці', - 'ko': '원격 브랜치에서 해당 명령어를 실행시킬 수 없습니다.', - 'vi': 'Bạn không thể thực thi lệnh đó lên nhánh từ xa', - 'sl_SI': 'Tega ukaza ne moreš narediti na oddaljenem branchu', - 'pl' : 'Nie możesz wykonać tego polecenia w zdalnej gałęzi', - 'it_it': "Non puoi eseguire questo comando su un ramo remoto", - 'ta_IN': 'அந்த கட்டளையை நீங்கள் தொலைநிலை கிளையில் இயக்க முடியாது', - 'tr_TR': 'Bu komutu uzak bir dalda çalıştırmak mümkün değil', - }, - 'git-error-origin-required': { - '__desc__': 'One of the error messages for git', - 'en_US': 'An origin is required for that command', - 'zh_CN': '该命令需要一个 origin', - 'zh_TW': '該命令需要一個 origin', - 'de_DE': 'Für diesen Befehl wird origin benötigt', - 'es_AR': 'Necesitás un origen para ese comando', - 'es_MX': 'Se necesita un origen para ese comando', - 'es_ES': 'Se requiere un origen para ese comando.', - 'pt_BR': 'É necessário informar uma origem para esse comando', - 'gl' : 'É necesario informar unha orixe para ese comando', - 'fr_FR': 'Une origine est requise pour cette commande', - 'ro': "Un origin este necesar pentru acestă comandă", - 'ru_RU': 'Origin требуется для этой команды', - 'uk': 'Для цієї команди потрібний origin', - 'ko': '해당 명령어를 위한 origin이 필요합니다.', - 'vi': 'Lệnh đó yêu cầu có origin', - 'sl_SI': 'Origin je potreben za izvedbo tega ukaza', - 'pl' : 'Dla tego polecenia wymagane jest źródło (origin)', - 'it_IT': "E' necessario definire origin per questo comando", - 'ta_IN': 'அந்த கட்டளைக்கு ஒரு துவக்க மூலம் தேவை', - 'tr_TR': 'Bu komut için bir origin gereklidir', - }, - 'git-error-origin-exists': { - '__desc__': 'One of the error messages for git', - 'en_US': 'An origin already exists! You cannot make a new one', - 'zh_CN': 'origin 已存在。你不能重复创建', - 'zh_TW': 'origin 遠端已存在。你不能重複創建', - 'de_DE': 'origin existiert bereits! Du kannst es nicht nochmal anlegen', - 'es_AR': '¡Ya existe el origen! No podés crear uno nuevo', - 'es_MX': '¡Ya existe un origen! No puedes crear uno nuevo', - 'es_ES': '¡Ya existe un origen! No puedes crearlo de nuevo.', - 'pt_BR': 'A origem já existe! Você não pode criar uma nova', - 'gl' : 'A orixe xa existe! Non podes crear unha nova', - 'fr_FR': 'Une origine existe déjà ! Vous ne pouvez pas en créer une nouvelle', - 'ro': "Un origin deja există! Nu poți crea unul nou", - 'ru_RU': 'Origin уже существует! Невозможно создать еще один', - 'uk': 'Origin вже існує! Неможливо створити ще один', - 'ko': 'origin이 이미 존재합니다! 새로 만들 수 없습니다.', - 'vi': 'Nguyên bản (origin) đã tồn tại. Bạn không thể tạo thêm 1 cái mới', - 'sl_SI': 'Origin že obstaja. Ne moreš narediti novega.', - 'pl' : 'Origin już istnieje! Nie możesz go ponownie założyć', - 'it_IT': "Origin già esistente! Non puoi crearne uno nuovo", - 'ta_IN': 'துவக்க மூலம் ஒன்று ஏற்கனவே உள்ளது! நீங்கள் மீன்டும் ஒன்றை உருவாக்க முடியாது', - 'tr_TR': 'Bir origin zaten mevcut! Yeni bir tane oluşturamazsınız', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-branch': { - '__desc__': 'One of the error messages for git', - 'en_US': 'You can\'t delete the main branch, the branch you are on, or things that ' + - 'aren\'t branches', - 'de_DE': 'Du kannst nicht den Branch main, den Branch auf dem du gerade arbeitest oder Refs, die keine Branches sind, löschen', - 'zh_CN': '你不能删除主分支(main),或者你当前所在的分支,或者其它连分支也不是的东西。', - 'zh_TW': '你不能刪除 main branch,或者你當前所在的 branch,或者其它連 branch 都不是的東西。', - 'es_AR': 'No podés borrar la rama main, la rama en la que estás, o cosas que no son ramas', - 'es_MX': 'No puedes borrar la rama main, la rama en la que estás, o cosas que no son ramas', - 'es_ES': 'No puedes eliminar la rama main, la rama en que estás, o cosas que no son ramas.', - 'pt_BR': 'Você não pode apagar o ramo main, nem o ramo em que você está, nem coisas que não sejam ramos', - 'gl' : 'Non podes borrala rama main, nin a rama na que ti estás, nin cousas que non sexan ramas', - 'fr_FR': 'Vous ne pouvez pas supprimer la branche main, la branche sur laquelle vous êtes, ou ce qui n\'est pas une branche', - 'ro': "Nu poți șterge ramura main, ramura pe care te afli, sau lucruri care nu sunt ramuri", - 'ru_RU' : 'Невозможно удалить ветку main, ветку на которой вы сейчас и то что не является веткой', - 'uk': 'Неможливо видалити гілку main, гілку на якій ти зараз знаходишся чи штуки які не є гілкою', - 'ko': 'main 브랜치, 현재 위치한 브랜치, 브랜치가 아닌 항목은 삭제할 수 없습니다.', - 'vi': 'Bạn không thể xóa nhánh main, nhánh mà bạn đang tham chiếu tới, hoặc những gì không phải nhánh', - 'sl_SI': 'Ne moreš izbrisati main brancha, brancha na katerem si trenutno ali stvari, ki niso branchi', - 'pl' : 'Nie możesz usunąć gałezi main, gałęzi na której aktualnie pracujesz, ani która nie jest gałezią', - 'it_IT': - "Non puoi eliminare il ramo main, il ramo in cui sei, o cose che " + - "non sono rami", - 'ta_IN': 'பிரதான கிளை, தற்ப்போது நடப்பில் உள்ள கிளை மற்றும் கிளை அல்லாத வற்றை அழிக்க இயலாது', - 'tr_TR': 'Şu anda üzerinde çalıştığın branch olan main i veya branch olmayan Refs leri silemezsin', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-merge-msg': { - '__desc__': 'The commit message for a merge commit', - 'en_US': 'Merge {target} into {current}', - 'de_DE': 'Mergen von {target} in {current}', - 'zh_CN': '合并 {target} 到 {current}', - 'zh_TW': '將 {target} 併入 {current}', - 'es_AR': 'Mergear {target} a {current}', - 'es_MX': 'Mergear {target} a {current}', - 'es_ES': 'Incorporar {target} en {current}', - 'pt_BR': 'Merge de {target} em {current}', - 'gl' : 'Merge de {target} en {current}', - 'fr_FR': 'Merge de {target} dans {current}', - 'ro': "Îmbinare {target} în {current}", - 'ru_RU': 'Слияние {target} в {current}', - 'uk': 'Злиття {target} в {current}', - 'ko': '{target}을 {current}에 병합하세요.', - 'vi': 'Gộp {target} vào {current}', - 'sl_SI': 'Mergaj {target} v {current}', - 'pl' : 'Łączenie {target} z {current}', - 'it_IT': "Fuso {target} in {current}", - 'ta_IN': '{target}ஐ {current} கிளையுடன் இணை', - 'tr_TR': '{target}i {current}e birleştir', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-rebase-none': { - '__desc__': 'One of the error messages for git', - 'en_US': 'No commits to rebase! Everything is a merge commit or changes already applied', - 'de_DE': 'Keine Commits für Rebase gefunden! Alle Commits sind Merge Commits oder beinhalten nur schon vorhandene Änderungen', - 'zh_CN': '没有可以 rebase 的提交记录!可能是合并提交,或者已经 rebase 过了。', - 'zh_TW': '沒有需要 rebase 的 commit!每個都是一個 merge commit 或者修改已經被寫入了', - 'es_AR': '¡No hay commits para rebasear! Son todos commits de merge o cambios ya aplicados', - 'es_MX': '¡No hay commits para hacer rebase! Todo es un merge commit o cambios ya aplicados', - 'es_ES': '¡No hay commits para hacer rebase! Todo es un merge commit o cambios ya hecho.', - 'pt_BR': 'Não há commits para o rebase! São todos commits de merge ou mudanças já aplicadas', - 'gl' : '¡Non hai commits para o rebase! Son todos commits de merge ou cambios xa aplicados', - 'fr_FR': 'Aucun commit à rebaser ! C\'est soit un commit de merge, soit des modifications déjà appliquées', - 'ro': "Nu există commit-uri pentru rebase! Totul este un commit de îmbinare sau modificările sunt deja aplicate", - 'ru_RU': 'Нет коммитов для rebase! Все в коммите слияния или изменения уже применены', - 'uk': 'Нема комітів для rebase! Все в коміті злиття (merge commit) чи зміни вже застосовані', - 'ko': 'rebase를 하기 위한 커밋이 없습니다! 모든 커밋이 병합 커밋이거나 이미 변경사항이 적용되었습니다.', - 'vi': 'Không có commit nào để rebase. Mọi thứ là merge commit hoặc thay đổi đã được áp dụng', - 'sl_SI': 'Ni commitov za rebase! Vse je merge commit ali pa so spremembe že dodane', - 'pl' : 'Nie znaleziono commit-u do zmiany! Wszystkie commit-y oraz scalenia lub zmiany już są zastosowane', - 'it_IT': - "Non ci sono commit da ribasare! Sono tutti commit di merge o i cambiamenti sono già stati applicati", - 'ta_IN': '`rebase` செய்ய எந்த கமிட்டும் இல்லை, அனைத்தும் இணைப்பு கமிட்கள் அல்லது முன்பே இணைக்கப்பட்டவை', - 'tr_TR': 'Rebase edilecek commit yok! Her şey birleştirme commit i ya da zaten uygulanmış değişiklikler', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-result-nothing': { - '__desc__': 'The message that explains the result of a git command', - 'en_US': 'Nothing to do...', - 'de_DE': 'Nichts zu tun ...', - 'zh_CN': '什么也没发生...', - 'zh_TW': '沒什麼事情要做...', - 'es_AR': 'Nada para hacer...', - 'es_MX': 'Nada para hacer...', - 'es_ES': 'Nada para hacer...', - 'pt_BR': 'Nada a ser feito...', - 'gl' : 'Nada para facer...', - 'fr_FR': 'Rien à effectuer…', - 'ro': "Nimic de făcut...", - 'ru_RU': 'Нечего выполнять...', - 'uk': 'Нічого виконувати...', - 'ko': '할수있는게 없습니다 ...', - 'vi': 'Không có gì để làm...', - 'sl_SI': 'Ničesar za narediti ...', - 'pl' : 'Nie ma nic do zrobienia...', - 'it_IT': "Niente da fare...", - 'ta_IN': 'செய்வதற்க்கு ஒன்றும் இல்லை...', - 'tr_TR': 'Yapılacak bir şey yok...', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-result-fastforward': { - '__desc__': 'The message that explains the result of a git command', - 'en_US': 'Fast forwarding...', - 'de_DE': 'Fast forward...', - 'zh_CN': '快速前进...', - 'zh_TW': '快速前進...', - 'es_AR': 'Fast forwardeando...', - 'es_MX': 'Avanzando rápidamente (Fast forwarding)...', - 'es_ES': 'Avanzando rápidamente...', - 'pt_BR': 'Fast forward...', - 'gl' : 'Fast forward...', - 'fr_FR': 'En avance rapide…', - 'ro': "Fast forward...", - 'ru_RU': 'Выполняю Fast forward...', - 'uk': 'Виконую Fast forward', - 'ko': 'Fast forward 중입니다...', - 'vi': 'Đang fast forward...', - 'sl_SI': 'Fast forwardiranje', - 'pl' : 'Fast forward...', - 'it_it': "Fast forwarding...", - 'ta_IN': 'Fast forward...', - 'tr_TR': 'Hızlı ileri alınıyor...', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-result-uptodate': { - '__desc__': 'The message that explains the result of a git command', - 'en_US': 'Branch already up-to-date', - 'de_DE': 'Branch ist bereits aktuell', - 'zh_CN': '分支已经是最新啦', - 'zh_TW': 'branch 已經是最新啦', - 'es_AR': 'Rama actualmente actualizada', - 'es_MX': 'La rama ya se ha actualizado.', - 'es_ES': 'La rama ya se ha actualizado.', - 'pt_BR': 'Ramo já atualizado', - 'gl' : 'Rama xa actualizada', - 'fr_FR': 'Branche déjà à jour', - 'ro': "Ramura deja actualizată", - 'ru_RU': 'Ветка уже обновлена', - 'uk': 'Гілку вже оновлено', - 'ko': '브랜치가 이미 최신 상태입니다.', - 'vi': 'Nhánh đã được cập nhật mới nhất', - 'sl_SI': 'Branch je že posodobljen', - 'pl' : 'Branch jest już aktualny', - 'it_IT': "Il ramo è già aggiornato", - 'ta_IN': 'இந்த கிளை ஏற்கனவே புதுப்பித்த நிலையில் உள்ளது...', - 'tr_TR': 'Dal zaten güncel', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-exist': { - '__desc__': 'One of the error messages for git', - 'en_US': 'The ref {ref} does not exist or is unknown', - 'de_DE': 'Die Ref {ref} existiert nicht oder ist unbekannt', - 'zh_CN': '引用 {ref} 不存在。', - 'zh_TW': '索引 {ref} 不存在,或者找不到。', - 'es_AR': 'La referencia {ref} no existe o es desconocida', - 'es_MX': 'La referencia {ref} no existe o es desconocida', - 'es_ES': 'La referencia {ref} no existe o es desconocida', - 'pt_BR': 'A referência {ref} não existe ou é desconhecida', - 'gl' : 'A referencia {ref} non existe ou é descoñecida', - 'fr_FR': 'La référence {ref} n\'existe pas ou est inconnue', - 'ro': "Referința {ref} nu există sau este necunoscută", - 'ru_RU': 'Ссылка {ref} не существует или неизвестна', - 'uk': 'Посилання {ref} не існує чи невідоме', - 'ko': '{ref} 참조가 존재하지 않거나 찾을 수 없습니다.', - 'vi': 'Tham chiếu {ref} không tồn tại hoặc không thể tìm thấy', - 'sl_SI': 'Ref {ref} new obstaja ali je neznan', - 'pl' : 'Odnośnik {ref} nie istnieje lub jest nieznany', - 'it_IT': "Il riferimento (ref) {ref} non esiste o è sconosciuto", - 'ta_IN': '{ref} இல்லை அல்லது தெரியவில்லை', - 'tr_TR': '{ref} referansı mevcut değil veya bilinmiyo', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-relative-ref': { - '__desc__': 'One of the error messages for git', - 'en_US': 'Commit {commit} does not have a {match}', - 'de_DE': 'Commit {commit} hat kein {match}', - 'zh_CN': '{commit} 提交并没有 {match}', - 'zh_TW': 'commit {commit} 並沒有 {match}', - 'es_AR': 'El commit {commit} no tiene un {match}', - 'es_MX': 'El commit {commit} no tiene un {match}', - 'es_ES': 'El commit {commit} no tiene un {match}', - 'pt_BR': 'O commit {commit} não tem um {match}', - 'gl' : 'O commit {commit} non ten un {match}', - 'fr_FR': 'Le commit {commit} n\'a pas de correspondance {match}', - 'ro': "Commit-ul {commit} nu are un {match}", - 'ru_RU': 'Коммит {commit} не содержит {match}', - 'uk': 'Коміт {commit} не містить {match}', - 'ko': '커밋 {commit}은 {match}를 가지고 있지 않습니다.', - 'vi': 'Commit {commit} mà không có {match}', - 'sl_SI': 'Commit {commit} nima {match}', - 'pl' : 'Commit {commit} nie ma {match}', - 'it_IT': "Il commit {commit} non ha un {match}", - 'ta_IN': '{commit}க்கு {match} எதுவும் இல்லை', - 'tr_TR': '{commit} commit inin {match} bulunmamaktadı', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-warning-detached': { - '__desc__': 'One of the warning messages for git', - 'en_US': 'Warning!! Detached HEAD state', - 'de_DE': 'Achtung! Detached HEAD Zustand', - 'zh_CN': '警告!现在是分离 HEAD 状态', - 'zh_TW': '注意喔!現在的狀態是分離 Head', - 'es_AR': '¡Cuidado! Modo de detached HEAD', - 'es_MX': '¡Cuidado! Modo de HEAD separado (detached HEAD)', - 'es_ES': '¡Cuidado! Modo de HEAD separado (detached HEAD)', - 'pt_BR': 'Cuidado! Modo Detached HEAD', - 'gl' : '¡Coidado! Modo Detached HEAD', - 'fr_FR': 'Attention ! HEAD est détaché', - 'ro': "Atenție! Starea HEAD detașat", - 'ru_RU': 'Внимание! Репозиторий в состоянии detached HEAD, то есть не находится ни на какой ветке!', - 'uk': 'Увага! Репозиторій в стані detached HEAD, тобто не знаходиться в жодній гілці!', - 'ko': '주의! 분리된 HEAD 상태', - 'vi': 'Cảnh báo! HEAD bị tách rời', - 'sl_SI': 'Opozorilo! Detached HEAD stanje', - 'pl' : 'Ostrzeżenie!! Odłączony tryb HEAD', - 'it_IT': "Attenzione!! Situazione di testa distaccata (Detached HEAD)", - 'ta_IN': 'எச்சரிக்கை !! `HEAD` துன்டிக்கப்பட்ட நிலையில் உள்ளது', - 'tr_TR': 'Uyarı!! Bağımsız HEAD durumu', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-warning-add': { - '__desc__': 'One of the warning messages for git', - 'en_US': 'No need to add files in this demo', - 'de_DE': 'In dieser Demo müssen keine Dateien hinzugefügt werden', - 'zh_CN': '此程序中不需要添加文件', - 'zh_TW': '此 demo 中不需要再加入檔案', - 'es_AR': 'No es necesario hacer add a los archivos en esta demo', - 'es_MX': 'No es necesario agregar los archivos en ésta demo', - 'es_ES': 'No es necesario agregar los archivos en esta demo', - 'pt_BR': 'Não é necessário adicionar arquivos neste demo', - 'gl' : 'Non é necesario incluír arquivos nesta demo', - 'fr_FR': 'Aucun besoin d\'ajouter des fichiers dans cette démo', - 'ro': "Nu este nevoie să adaugi fișiere în această demonstrație", - 'ru_RU': 'Это демо не оперирует файлами', - 'uk': 'Не потрібно додавати файли для цього демо', - 'ko': '이 데모에서는 파일을 추가할 필요가 없습니다.', - 'vi': 'Không cần thêm tập tin trong bản demo này', - 'sl_SI': 'Ni potrebe po dodajanju datotetk v tem demotu', - 'pl' : 'Nie ma potrzeby dodawania plików w tym demo', - 'it_IT': "Non c'è bisogno di aggiungere file in questa demo", - 'ta_IN': 'இந்த நடைமுறையில் கோப்புகளை சேர்க்க தேவையில்லை', - 'tr_TR': 'Bu demoda dosya eklemeye gerek yok', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-options': { - '__desc__': 'One of the error messages for git', - 'en_US': 'Those options you specified are incompatible or incorrect', - 'de_DE': 'Die angegebenen Optionen sind inkompatibel oder falsch', - 'zh_CN': '你所指定的参数不兼容或者不准确', - 'zh_TW': '您指定了不相容或錯誤的選項', - 'es_ES': 'Las opciones que especificaste son incompatibles o incorrectas.', - 'es_AR': 'No es necesario hacer add a los archivos en esta demo', - 'es_MX': 'No es necesario hacer add a los archivos en ésta demo', - 'pt_BR': 'As opções que você especificou são incompatíveis ou incorretas', - 'gl' : 'As opcións que especificaches son incompatibles ou incorrectas', - 'fr_FR': 'Les options que vous avez spécifiées sont incompatibles ou incorrectes', - 'ro': "Opțiunile specificate sunt incompatibile sau incorecte", - 'ru_RU': 'Неправильные опции', - 'uk': 'Опції, які ти ввів, або некорректні або не підтримуються', - 'ko': '지정한 옵션이 호환되지 않거나 올바르지 않습니다.', - 'vi': 'Các tham số bạn chỉ định không tương thích hoặc không chính xác', - 'sl_SI': 'Opcije, ki si jih podal, so nezdružljive ali napačne', - 'pl' : 'Podane przez Ciebie opcje są niezgodne lub nieprawidłowe', - 'it_IT': "Le opzioni che hai specificato sono incompatibili o sbagliate", - 'ta_IN': 'நீங்கள் குறிப்பிட்ட அந்த மற்றிகள் பொருந்தாது அல்லது தவறானவை', - 'tr_TR': 'Belirttiğiniz seçenekler uyumsuz veya yanlış', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-already-exists': { - '__desc__': 'One of the error messages for git', - 'en_US': 'The commit {commit} already exists in your changes set, aborting!', - 'de_DE': 'Der Commit {commit} existiert bereits, Abbruch!', - 'zh_CN': '{commit} 提交已经存在于你的改动集里,已忽略!', - 'zh_TW': 'commit {commit} 已經在你的修改的集合裡,正在停止!', - 'es_AR': 'El commit {commit} ya existe en tus cambios, ¡abortando!', - 'es_MX': 'El commit {commit} ya existe en tus cambios, ¡abortando!', - 'es_ES': 'El commit {commit} ya existe en tus cambios, ¡abortando!', - 'pt_BR': 'O commit {commit} já existe nas suas mudanças, abortando!', - 'gl' : 'O commit {commit} xa existe nos seus cambios, ¡abortando!', - 'fr_FR': 'Le commit {commit} existe déjà dans votre ensemble de modifications, opération avortée !', - 'ro': "Commit-ul {commit} există deja în setul tău de modificări, se anulează!", - 'ru_RU': 'Коммит {commit} существует, отменяю!', - 'uk': 'Коміт {commit} вже існує в твоєму change set, відміна!', - 'ko': '커밋 {commit}이 이미 변경 내역에 존재합니다. 중단!', - 'vi': 'Commit {commit} đã tồn tại trong những thay đổi của bạn, đang hủy!', - 'sl_SI': 'Commit {commit} že obstaja v tvoji množici sprememb, prekinjam!', - 'pl' : 'Commit {commit} już istnieje w Twoim zbiorze zmian, przerywam!', - 'it_IT': "Il commit {commit} è già presente, annullo!", - 'ta_IN': '{commit} உங்கள் மாற்றங்களின் தொகுப்பில் ஏற்கனவே உள்ளது, கட்டளை கைவிடப்பட்டது!', - 'tr_TR': 'Commit {commit} zaten değişiklik setinizde mevcut, işlem iptal ediliyor!', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-reset-detached': { - '__desc__': 'One of the error messages for git', - 'en_US': 'Can\'t reset in detached head! Use checkout if you want to move', - 'de_DE': 'Kann im Detached Head Zustand kein reset ausführen! Bitte checkout zum Bewegen benutzen', - 'zh_CN': '不能在分离的 HEAD 里重置!用 checkout 吧', - 'zh_TW': '不能在分離 HEAD 的狀態中重來!用 checkout 來移動吧', - 'es_AR': 'No podés hacer reset en el modo detached. Usá checkout si querés moverte', - 'es_MX': 'No puedes hacer reset en el modo separado. Usa checkout si quieres moverte', - 'es_ES': 'No puedes hacer reset en el modo separado. Usa checkout si quieres moverte.', - 'pt_BR': 'Não se pode fazer reset no modo detached. Use checkout se quiser se mover', - 'gl' : 'Non se pode facer reset no modo detached. Use checkout se te queres mover', - 'fr_FR': 'On ne peut pas effectuer un reset quand HEAD est détaché. Utilisez checkout pour déplacer', - 'ro': "Nu se poate face reset în starea HEAD detașat! Folosește checkout dacă vrei să te muți", - 'ru_RU': 'Это невозможно в режиме detached HEAD! Используйте checkout!', - 'uk': 'Неможливо зробити reset в стані detached head! Використовуй checkout якщо хочеш змінити розташування', - 'ko': '분리된 HEAD에서 reset할 수 없습니다. 만약 이동시키기를 원한다면 checkout을 사용하세요.', - 'vi': 'Trong trạng thái tách rời `HEAD` thì không thể `reset`. Dùng `checkout` nếu bạn muốn di chuyển', - 'sl_SI': 'Ni možno resetat, zaradi detached HEADa', - 'pl' : 'Nie można zresetować w odłączonej HEAD! Użyj opcji `checkout`, jeśli chcesz się przenieść', - 'it_IT': - "Non posso fare reset in modalità testa distaccata (detached head)! Utilizza checkout se vuoi spostarti", - 'ta_IN': 'பிரிக்கப்பட்ட தலையில் மீட்டமைக்க முடியாது! நீங்கள் நகர்த்த விரும்பினால் `checkout` பயன்படுத்தவும்', - 'tr_TR': 'Detached head durumunda sıfırlama yapılamaz! Taşımak istiyorsanız checkout kullanın', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-warning-hard': { - '__desc__': 'One of the warning messages for git', - 'en_US': 'The default behavior for resets on LearnGitBranching is a --hard, so feel free to omit ' + - 'that option if you get tired of typing it out in our lessons. Just remember that the default ' + - 'behavior on actual Git is --mixed.', - 'de_DE': 'Das Standardverhalten in dieser Demo ist --hard, du kannst die Option auch weglassen!', - 'zh_CN': '在本程序中默认的行为是 --hard 硬重置,可以尽情省略掉那个选项以避免麻烦!但是要记录 Git 中默认的是 --mixed。', - 'zh_TW': '預設的行為是 --hard reset,儘量省略掉那個選項吧!', - 'es_AR': 'El comportamiento default es un --hard reset, sentite libre de omitir esa opción!', - 'es_MX': 'El comportamiento default es un --hard reset, siéntete libre de omitir esa opción!', - 'es_ES': 'El comportamiento default para reajustes es --hard, pero siéntete libre de omitir esa ' + - 'opción si te cansas de escribirla en nuestras lecciones. Recuerda quepor defecto el comportamiento en GitHub es --mixed.', - 'pt_BR': 'O comportamento padrão é um reset --hard, fique livre para omitir essa opção!', - 'gl' : 'O comportamente por defecto é un reset --hard, Lembra que por defecto en GitHub é --mixed.', - 'fr_FR': 'Le comportement par défaut est un --hard reset, soyez libre d\'omettre cette option !', - 'ro': "Comportamentul implicit aici este un reset --hard, așa că te poți simți liber să omiți această opțiune! De menționat că în GitHub, comportamentul implicit este --mixed.", - 'ru_RU': 'По умолчанию будет выполнен --hard reset, эту опцию можно опускать!', - 'uk': 'На LearnGitBranching reset по замовчуванню використовує --hard, тому цю опцію ' + - 'можна пропустити, якщо ти втомився її набирати щоразу. Тільки запам’ятай, що по замовчуванню ' + - 'звичайний git reset використовує --mixed', - 'ko': 'LearnGitBranching에서 reset의 기본 설정은 --hard이므로, 이 옵션을 입력하는 것이 번거롭게 느껴진다면 생략해도 됩니다. 다만 실제 Git의 기본 설정 옵션은 --mixed라는것만 기억하세요.', - 'vi': 'Trạng thái mặc định cho lệnh `reset` của \"Học nhánh Git\" là `--hard`.' + - ' Nên khi làm bài nếu bạn thấy gõ tham số này hơi tốn công thì cứ bỏ qua.' + - ' Nhưng mà hãy nhớ rằng thực tế thì `--mixed` mới là trạng thái mặc định của `reset`.', - 'sl_SI': 'Privzeto delovanje za reset na LearnGitBranching je --hard, zato lahko to izpustiš. Na pravem gitu je --mixed.', - 'pl' : 'Domyślnym zachowaniem dla polecenia `reset` w LearnGitBranching jest parametr --hard, więc możesz pominąć tę opcję, ' + - 'Pamiętaj tylko, że domyślne zachowanie rzeczywistego GIT-a jest parametr --mixed.', - 'it_IT': - "Il comportamento base per i resets su LearnGitBranching è --hard, per cui puoi tranquillamente omettere " + - "quella opzione se ti sei stancato di scriverla. Ricorda però che in Git, " + - "l'opzione di default è --mixed.", - 'ta_IN': 'The default behavior for resets on LearnGitBranching is a --hard, so feel free to omit ' + - 'that option if you get tired of typing it out in our lessons. Just remember that the default ' + - 'behavior on actual Git is --mixed.', - 'tr_TR': 'LearnGitBranching deki sıfırlama işlemlerinin varsayılan davranışı --hard tır, bu yüzden derslerimizde yazarken bundan sıkılırsanız bu seçeneği atlayabilirsiniz. Ancak gerçek Git teki varsayılan davranışın --mixed olduğunu unutmayın.', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-staging': { - '__desc__': 'One of the error messages for git', - 'en_US': 'There is no concept of adding / staging files, so that option or ' + - 'command is invalid!', - 'de_DE': 'In dieser Demo gibt es kein Hinzufügen / Vormerken von Dateien, dieser Befehl ist daher ungültig!', - 'zh_CN': '没有添加、缓存文件的必要,所以该选项或者命令是不合法的。', - 'zh_TW': '沒有加入、或者暫存 (staging) 文件的必要,所以改選項或者命令是不合法的。', - 'es_AR': 'No existe el concepto de agregar/indexar cambios, así que esa opción o comando es inválido', - 'es_MX': 'No existe el concepto de agregar/indexar cambios, así que esa opción o comando es inválido', - 'es_ES': 'No existe el concepto de agregar/indexar cambios, así que esa opción o comando es inválido.', - 'pt_BR': 'Não existe o conceito de adicionar/indexar mudanças, de forma que essa opção ou comando é inválida', - 'gl' : 'Non existe o concepto de agregar/indexar cambios, así que esa opción ou comando é inválido.', - 'fr_FR': 'Il n\'y a pas le concept d\'ajouter / mettre en staging, donc cette option ou commande est invalide', - 'ro': "Nu există conceptul de adăugare / indexare a fișierelor, deci acea opțiune sau comandă este invalidă!", - 'ru_RU': 'Это демо не работает с файлами, так что git add не нужен!', - 'uk': 'В цьому демо немає можливості додати файл до робочої копії чи до стейджингу, тому ця опція чи команда некоректна чи не підтримується', - 'ko': '여기엔 파일을 추가하거나 스테이징한다는 개념이 없으므로 해당 옵션이나 명령어는 유효하지 않습니다.', - 'vi': 'Không có khái niệm thêm tập tin đệm (staging file), nên tùy chọn đó là bất hợp lệ!', - 'sl_SI': 'Tu ni možnosti addanja/stageanja datotek, zato je ta ukaz nepravilen', - 'pl' : 'Nie ma koncepcji na dodawanie/indeksowanie zmian, więc opcja lub polecenie jest niepoprawne.', - 'it_IT': - "Non esiste il concetto di aggiungere / indicizzare i file, quindi quell'opzione o " + - "comando non è valido!", - 'ta_IN': 'கோப்புகளைச் சேர்ப்பது / நிலைநிறுத்துவது என்ற கருத்து ஒன்றும் இல்லை, எனவே அந்த மற்றி அல்லது கட்டளை தவறானது', - 'tr_TR': 'Dosya ekleme / sahneleme kavramı yok, bu nedenle bu seçenek veya komut geçersiz!', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-revert-msg': { - '__desc__': 'Message for reverting git command', - 'en_US': 'Reverting {oldCommit}: {oldMsg}', - 'de_DE': 'Reverte {oldCommit}: {oldMsg}', - 'zh_CN': '撤销 {oldCommit}:{oldMsg}', - 'zh_TW': '還原 {oldCommit}:{oldMsg}', - 'es_AR': 'Revirtiendo {oldCommit}: {oldMsg}', - 'es_MX': 'Revirtiendo {oldCommit}: {oldMsg}', - 'es_ES': 'Volviendo a {oldCommit}: {oldMsg}', - 'pt_BR': 'Revertendo {oldCommit}: {oldMsg}', - 'gl' : 'Revertindo {oldCommit}: {oldMsg}', - 'fr_FR': 'Revert {oldCommit}: {oldMsg}', - 'ro': "Revenire {oldCommit}: {oldMsg}", - 'ru_RU': 'Откатываю {oldCommit}: {oldMsg}', - 'uk': 'Повертаю {oldCommit}: {oldMsg}', - 'ko': '{oldCommit}:{oldMsg}를 복구중입니다.', - 'vi': 'Đang hoàn tác {oldCommit}: {oldMsg}', - 'sl_SI': 'Revertanje {oldCommit}: {oldMsg}', - 'pl' : 'Cofam {oldCommit} : {oldMsg}', - 'it_IT': "Ripristino {oldCommit}: {oldMsg}", - 'ta_IN': '{oldCommit}: {oldMsg} மீன்டும் மாற்றியமைக்கிறது', - 'tr_TR': '{oldCommit} geri alınıyor: {oldMsg}', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-args-many': { - '__desc__': 'One of the error messages for git', - 'en_US': 'I expect at most {upper} argument(s) for {what}', - 'de_DE': 'Ich benötige maximal {upper} Argument(e) für {what}', - 'zh_CN': '{what} 期望最多 {upper} 个参数', - 'zh_TW': '{what} 期望最多 {upper} 個參數', - 'es_AR': 'Espero como máximo {upper} parámetros para {what}', - 'es_MX': 'Espero como máximo {upper} parámetros para {what}', - 'es_ES': 'Espero al máximo {upper} parámetros para {what}.', - 'pt_BR': 'Espero no máximo {upper} parâmetros para {what}', - 'gl' : 'Espero ó máximo {upper} parámetros para {what}', - 'fr_FR': 'J\'attends au plus {upper} argument(s) pour {what}', - 'ro': "Mă aștept la cel mult {upper} argument(e) pentru {what}", - 'ru_RU': 'Ожидается максимум {upper} аргумент(ов) для {what}', - 'uk': 'Я очікую максимум {upper} аргумент(ів) для {what}', - 'ko': '{what}을 위해 최대 {upper}개의 인자를 받습니다.', - 'vi': 'Có thể có nhiều nhất {upper} tham số cho {what}', - 'sl_SI': 'Pričakovanih je največ {upper} argumentov za {what}', - 'pl' : 'Oczekuję maksymalne {upper} parametrów dla {what}', - 'it_IT': "Mi aspetto al massimo {upper} parametro/i per {what}", - 'ta_IN': 'நான் {what}க்கான உள்ளீடு(கள்) அதிகபட்சமாக {upper} எதிர்பார்க்கிறேன்', - 'tr_TR': '{what} için en fazla {upper} argüman bekliyorum', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-args-few': { - '__desc__': 'One of the error messages for git', - 'en_US': 'I expect at least {lower} argument(s) for {what}', - 'de_DE': 'Ich benötige mindestens {lower} Argument(e) für {what}', - 'zh_CN': '{what} 期望最少 {lower} 个参数', - 'zh_TW': '{what} 期望最少 {lower} 個參數', - 'es_AR': 'Espero al menos {lower} parámetros para {what}', - 'es_MX': 'Espero al menos {lower} parámetros para {what}', - 'es_ES': 'Espero al menos {lower} parámetros para {what}.', - 'pt_BR': 'Espero pelo menos {lower} parâmetros para {what}', - 'gl' : 'Agardo polo menos {lower} parámetros para {what}', - 'fr_FR': 'J\'attends au moins {lower} argument(s) pour {what}', - 'ro': "Mă aștept la cel puțin {lower} argument(e) pentru {what}", - 'ru_RU': 'Ожидается как минимум {lower} аргументов для {what}', - 'uk': 'Я очікую як мінімум {lower} аргумент(ів) для {what}', - 'ko': '{what}을 위해 최소 {lower}개의 인자를 받습니다.', - 'vi': 'Cần ít nhất {lower} tham số cho {what}', - 'sl_SI': 'Pričakovanih je najmanj {lower} argumentov za {what}', - 'pl' : 'Oczekuję co najmniej {lower} parametrów dla {what}', - 'it_IT': "Mi aspetto come minimo {lower} parametro/i per {what}", - 'ta_IN': 'நான் {what}க்கான உள்ளீடு(கள்) குறைந்தபட்சம் {lower} எதிர்பார்க்கிறேன்', - 'tr_TR': '{what} için en az {lower} argüman bekliyorum', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-no-general-args': { - '__desc__': 'One of the error messages for git', - 'en_US': 'That command accepts no general arguments', - 'de_DE': 'Dieser Befehl akzeptiert keine allgemeinen Argumente', - 'zh_CN': '该命令不接收参数', - 'zh_TW': '該指令不接受一般參數', - 'es_AR': 'Ese comando no acepta parámetros comunes', - 'es_MX': 'Ese comando no acepta parámetros comunes', - 'es_ES': 'Ese comando no acepta parámetros generales.', - 'pt_BR': 'Este comando não aceita parâmetros gerais', - 'gl' : 'Este comando non acepta parámetros xeráis', - 'fr_FR': 'Cette commande n\'accepte aucun argument général', - 'ro': "Această comandă nu acceptă argumente generale", - 'ru_RU': 'Это команда без аргументов', - 'uk': 'Ця команда не приймає загальних аргументів', - 'ko': '그 명령어는 일반적으로 인자를 받지 않습니다.', - 'vi': 'Lệnh đó không chấp nhận các tham số chung', - 'sl_SI': 'Ta ukaz ne sprejme splošnih ukazov', - 'pl' : 'To polecenie nie przyjmuje żadnych ogólnych parametrów', - 'it_IT': "Quel comando non accetta parametri generici", - 'ta_IN': 'அந்த கட்டளை பொதுவான உள்ளீடு எதுவும் ஏற்கவில்லை', - 'tr_TR': 'Bu komut genel argüman kabul etmez', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-error-command-not-supported': { - '__desc__': 'Message that appears in git console when command was not recognized.', - 'en_US': 'The command "{command}" isn\'t supported, sorry!', - 'de_DE': 'Entschuldigung, der Befehl "{command}" wird nicht unterstützt!', - 'zh_TW': '很抱歉,目前無法支援指令 "{command}"!', - 'it_IT': 'Mi spiace, il comando "{command}" non è supportato.', - 'pl' : 'Polecenie "{command}" niestety nie jest obsługiwane.', - 'pt_BR': 'O comando "{command}" não é suportado!', - 'es_AR': 'El comando "{command}" no es compatible, ¡disculpa!', - 'es_MX': 'La orden "{command}" no es compatible, ¡disculpa!', - 'es_ES': 'El comando "{command}" no está soportado, ¡disculpa!', - 'fr_FR': 'La commande "{command}" n\'est pas supportée, désolé !', - 'ro': 'Comanda "{command}" nu este suportată, ne pare rău!', - 'ru_RU': 'Команда "{command}" не поддерживается, извините!', - 'vi': 'Xin lỗi, lệnh "{command}" không được hỗ trợ!', - 'sl_SI': 'Ukaz \"{command}\" ni podprt, oprostite!', - 'pl': 'Komenda \"{command}\" nie jest obsługiwana, przepraszamy!', - 'it_IT': 'Il comando \"{command}\" non è supportato, ci dispiace!', - 'ta_IN': '\"{command}\" என்ற கட்டளை ஆதரிக்கப்படவில்லை, வருந்துகிறோம்!', - 'tr_TR': '\"{command}\" komutu desteklenmiyor, üzgünüm!', - }, - /////////////////////////////////////////////////////////////////////////// - 'copy-tree-string': { - '__desc__': 'The prompt to copy the tree when sharing', - 'en_US': 'Copy the tree string below', - 'de_DE': 'Kopiere die folgende Baum-Zeichenkette', - 'zh_CN': '拷贝下面的树字符串', - 'zh_TW': '複製下方的樹狀字串', - 'es_AR': 'Copiá el código de acá abajo', - 'es_MX': 'Copia el código que se encuentra debajo', - 'es_ES': 'Copia el código que sigue.', - 'pt_BR': 'Copie o código abaixo', - 'gl' : 'Copie o código abaixo', - 'fr_FR': 'Copiez la chaîne d\'arbre ci-dessous', - 'ro': "Copiază șirul arborelui mai jos", - 'ru_RU': 'Скопируй текст ниже', - 'uk': 'Скопіюй рядок дерева нижче', - 'ko': '다음 트리 문자열을 복사하세요.', - 'vi': 'Sao chép chuỗi cây bên dưới', - 'sl_SI': 'Skopiraj besedilo drevesa spodaj', - 'pl' : 'Skopiuj poniższy kod', - 'it_IT': "Copia il codice dell'albero qua sotto", - 'ta_IN': '`tree string`ஐ கீழே நகலெடுக்கவும்', - 'tr_TR': 'Aşağıdaki ağaç dizesini kopyalayın', - }, - /////////////////////////////////////////////////////////////////////////// - 'learn-git-branching': { - '__desc__': 'The title of the app, with spaces', - 'en_US': 'Learn Git Branching', - 'de_DE': 'Lerne Git Branching', - 'ja': '日本語版リポジトリ', - 'zh_CN': '学习 Git 分支', - 'zh_TW': '學習 git 分支', - 'es_AR': 'Aprendé a Branchear en Git', - 'es_MX': 'Aprende Git Branching', - 'es_ES': 'Aprende Git Branching', - 'pt_BR': 'Aprenda Git Branching', - 'gl' : 'Aprende Git Branching', - 'fr_FR': 'Apprenez Git Branching', - 'ro': "Învață ramificarea Git", - 'ru_RU': 'Изучаем ветвление в git', - 'uk': 'Вивчай Git Branching', - 'ko': '깃 브랜칭을 배우기', - 'vi': 'Học nhánh Git', - 'sl_SI': 'Nauči se Git Branching', - 'pl': 'Naucz się Git Branching-u', - 'it_IT': "Impara Git Branching", - 'ta_IN': 'கிட் கிளை அமைத்தல்', - 'tr_TR': 'Learn Git Branching(Git Dal Oluşumunu Öğren)', - }, - /////////////////////////////////////////////////////////////////////////// - 'select-a-level': { - '__desc__': 'The prompt to select a level on the drop down view', - 'en_US': 'Select a level', - 'de_DE': 'Level auswählen', - 'zh_CN': '选择一关', - 'zh_TW': '選擇其中一關', - 'es_AR': 'Seleccioná un nivel', - 'es_MX': 'Selecciona un nivel', - 'es_ES': 'Selecciona un nivel', - 'pt_BR': 'Selecione um nível', - 'gl' : 'Selecciona un nivel', - 'fr_FR': 'Choisissez un niveau', - 'ro': "Selectează un nivel", - 'ru_RU': 'Выбери уровень', - 'uk': 'Обери рівень', - 'ko': '레벨을 선택하세요.', - 'vi': 'Chọn một cấp độ', - 'sl_SI': 'Izberi stopnjo', - 'pl': 'Wybierz poziom', - 'it_IT': "Scegli un livello", - 'ta_IN': 'ஒரு நிலையை தேர்வு செய்யுங்கள்', - 'tr_TR': 'Bir level (Seviye) seç', - }, - /////////////////////////////////////////////////////////////////////////// - 'main-levels-tab': { - '__desc__': 'The name of main levels tab on the drop down view', - 'en_US': 'Main', - 'de_DE': 'Haupt', - 'zh_CN': '主要', - 'zh_TW': '主要', - 'es_ES': 'Principal', - 'fr_FR': 'Principal', - 'gl' : 'Principal', - 'ro': "Principal", - 'ru_RU': 'Основы', - 'uk' : 'Основи', - 'ko': '메인', - 'vi': 'Bài học chính', - 'sl_SI': 'Glavno', - 'pl': 'Główny', - 'it_IT': "Menu", - 'ta_IN': 'பிரதானம்', - 'tr_TR': 'Main(Ana)', - }, - /////////////////////////////////////////////////////////////////////////// - 'remote-levels-tab': { - '__desc__': 'The name of remote levels tab on the drop down view', - 'en_US': 'Remote', - 'de_DE': 'Remote', - 'zh_CN': '远程', - 'zh_TW': '遠端', - 'es_ES': 'Remota', - 'fr_FR': 'Remote', - 'gl' : 'Remota', - 'ro': "Ramuri Remote", - 'ru_RU': 'Удаленные репозитории', - 'uk' : 'Віддалені репозиторії', - 'ko' : '원격', - 'vi' : 'Bài học về thao tác từ xa', - 'sl_SI': 'Oddaljeno', - 'pl' : 'Zdalny', - 'it_IT': "Remoto", - 'ta_IN': 'தொலைநிலை', - 'tr_TR': 'Uzak(Remote)', - }, - /////////////////////////////////////////////////////////////////////////// - 'branch-name-short': { - '__desc__': 'When branch names get too long, we need to truncate them. This is the warning for that', - 'en_US': 'Sorry, we need to keep branch names short for the visuals. Your branch name was truncated to 9 characters, resulting in "{branch}"', - 'de_DE': 'Tut mir leid, aber aus Gründen der Darstellung müssen wir die Branch-Namen kurz halten. Dein Branch-Name wurde auf 9 Zeichen gekürzt und heißt daher jetzt "{branch}"', - 'zh_CN': '抱歉,为了显示的需要,我们需要一个短些的分支名称。您使用的名称将被截断到9个字符,即 "{branch}"', - 'zh_TW': '抱歉,為了顯示的需要,我們需要一個短一點的 branch 名稱。您使用的將會被截斷到剩下9個字元,即"{branch}"', - 'es_AR': 'Perdón, necesitamos mantener los nombres de los branches cortos para visualizarlos. El nombre de tu rama se truncó a 9 caracteres, resultando en "{branch}"', - 'es_MX': 'Perdón, necesitamos mantener los nombres de las ramas cortos para visualizarlos. El nombre de tu rama se truncó a 9 caracteres, resultando en "{branch}"', - 'es_ES': 'Perdón, necesitamos mantener los nombres de las ramas cortos para visualizarlos. El nombre de tu rama se truncó a 9 caracteres, resultando en "{branch}"', - 'pt_BR': 'Desculpe, precisamos manter os nomes dos ramos curtos para visualizá-los. O nome do seu ramo foi truncado para 9 caracteres, resultando em "{branch}"', - 'gl' : 'Desculpe, precisamos manter os nomes das ramas curtas para poder velas. O nome da súa rama foi truncada a 9 letras, resultado en "{branch}"', - 'fr_FR': 'Désolé, nous devons garder les noms de branches courts pour la visualisation. Votre nom de branche a été tronqué à 9 caractères, devenant "{branch}"', - 'ro': 'Ne pare rău, trebuie să păstrăm numele ramurilor scurte pentru vizualizare. Numele ramurii tale a fost trunchiat la 9 caractere, rezultând "{branch}"', - 'ru_RU': 'Для наглядности нам нужно сохранять имена веток короткими. Твоё название сокращено до 9 символов и теперь это "{branch}"', - 'uk': 'Вибач, нам потрібно щоб ім’я гілок було як можна коротше для наглядності. Твоє ім’я гілки було скорочене до 9 літер й тепер це "{branch}"', - 'ko': '죄송하지만, 가독성을 위해 짧은 브랜치명이 필요합니다. 브랜치명이 최대 9자리로 잘려 "{branch}"로 변경되었습니다.', - 'vi': 'Xin lỗi, chúng tôi cần giữ tên nhánh ngắn để tiện minh họa. Tên nhánh của bạn đã bị cắt xuống 9 ký tự là "{branch}"', - 'sl_SI': 'Oprosti, imena branchev moramo obdržati kratka zaradi vizualizacije. Tvoje ime brancha je bilo skrajšano na 9 črk, kar predstavlja "{branch}"', - 'pl': 'Przepraszamy, ze względu na wizualizacje musimy zachować krótkie nazwy gałęzi. Nazwa Twojej gałęzi została skrócona do 9 znaków, w wyniku czego otrzymano "{branch}"', - 'it_IT': - 'Scusa ma i nomi dei rami devono essere brevi per essere visualizzati. Il nome del tuo ramo è stato accorciato a 9 caratteri, rinominandolo come "{branch}"', - 'ta_IN': 'மன்னிக்கவும், காட்சிகளுக்கு கிளை பெயர்களை குறுகியதாக வைத்திருக்க வேண்டி உள்ளது. உங்கள் கிளையின் பெயர் 9 எழுத்துகளாக சுருக்கப்பட்டு, "{branch}" ஆக மற்றப்பட்டுள்ளது', - 'tr_TR': 'Üzgünüm, görseller için dal isimlerini kısa tutmamız gerekiyor. Dal isminiz 9 karaktere kısaltıldı, bu da \"{branch}\" oldu.' - }, - /////////////////////////////////////////////////////////////////////////// - 'bad-branch-name': { - '__desc__': 'When the user enters a branch name thats not ok', - 'en_US': 'That branch name "{branch}" is not allowed!', - 'de_DE': 'Der Branch-Name "{branch}" ist nicht erlaubt!', - 'zh_CN': '不能给分支起这个名字 "{branch}"', - 'zh_TW': '不能给 branch 起這個名字 "{branch}"', - 'es_AR': 'El nombre "{branch}" no está permitido para los branches', - 'es_MX': 'El nombre "{branch}" está prohibido para nombrar una rama', - 'es_ES': 'El nombre "{branch}" es prohibido para nombrar una rama.', - 'pt_BR': 'Um ramo não pode ser chamado de "{branch}"!', - 'gl' : 'Unha rama non pode ser chamada "{branch}', - 'fr_FR': 'Ce nom de branche "{branch}" n\'est pas autorisé', - 'ro': 'Numele "{branch}" nu este permis pentru ramuri', - 'ru_RU': 'Название для ветки "{branch}" недопустимо!', - 'uk': 'Назва гілки "{branch}" є недопустимою', - 'ko': '"{branch}"라는 브랜치명은 사용할 수 없습니다.', - 'vi': 'Tên nhánh "{branch}" không được chấp nhận!', - 'sl_SI': 'To ime brancha "{branch}" ni dovoljeno!', - 'pl': 'Ta nazwa gałęzi "{branch}" jest niedozwolona!', - 'it_IT': 'Il nome "{branch}" per i rami non è consentito!', - 'ta_IN': '"{branch}" ஐ கிளையின் பெயராக ஏற்க்க இயலாது!', - 'tr_TR': 'Bu dal ismi \"{branch}\" izin verilmez!' - }, - /////////////////////////////////////////////////////////////////////////// - 'bad-tag-name': { - '__desc__': 'When the user enters a tag name thats not ok', - 'en_US': 'That tag name "{tag}" is not allowed!', - 'zh_CN': '该标签名 “{tag}” 不被接受。', - 'zh_TW': '該標籤名 “{tag}” 不被接受。', - 'es_AR': 'El nombre "{tag}" no está permitido para los tags', - 'es_MX': 'El nombre "{tag}" está prohibido para nombrar un tag', - 'es_ES': 'El nombre "{tag}" es prohibido para nombrar un tag.', - 'pt_BR': 'Uma tag não pode ser chamada de "{tag}"!', - 'gl' : 'Unha etiqueta non pode ser chamada "{tag}"', - 'de_DE': 'Der Tag-Name "{tag}" ist nicht erlaubt!', - 'fr_FR': 'Le nom de tag "{tag}" n\'est pas autorisé', - 'ro': 'Numele "{tag}" nu este permis pentru tag-uri', - 'ru_RU': 'Название для тега "{tag}" недопустимо!', - 'uk': 'Назва тегу "{tag}" є недопустимою', - 'ko': '"{tag}"라는 태그명은 사용할 수 없습니다.', - 'vi': 'Tên thẻ "{tag}" không được chấp nhận!', - 'sl_SI': 'To ime tag-a "{tag}" ni dovoljeno!', - 'pl': 'Ta nazwa tagu "{tag}" jest niedozwolona!', - 'it_IT': 'Il nome "{tag}" per i tag non è consentito!', - 'ta_IN': '"{tag}" ஐ குறிச்சொல் பெயராக ஏற்க்க இயலாது!', - 'tr_TR': 'Bu etiket ismi \"{tag}\" izin verilmez!' - }, - /////////////////////////////////////////////////////////////////////////// - 'option-not-supported': { - '__desc__': 'When the user specifies an option that is not supported by our demo', - 'en_US': 'The option "{option}" is not supported!', - 'de_DE': 'Die Option "{option}" wird nicht unterstützt!', - 'zh_CN': '不支持选项 "{option}"', - 'zh_TW': '不支援的選項 "{option}"', - 'es_AR': 'La opción {option} no está soportada', - 'es_MX': 'La opción {option} no es compatible con ésta demo', - 'es_ES': 'La opción {option} no compatible con esta demo.', - 'pt_BR': 'A opção {option} não é suportada', - 'gl' : 'A opción {option} non está soportada', - 'fr_FR': 'L\'option "{option}" n\'est pas supportée', - 'ro': 'Opțiunea "{option}" nu este suportată!', - 'ru_RU': 'Опция "{option}" недопустима!', - 'uk': 'Опція "{option}" не підтримується!', - 'ko': '"{option}"(이)라는 옵션은 지원하지 않습니다.', - 'vi': 'Tùy chọn "{option}" không được hỗ trợ!', - 'sl_SI': 'Opcija "{option}" ni podprta! ', - 'pl': 'Opcja "{option}" nie jest obsługiwana!', - 'it_IT': 'L\'opzione "{option}" non è supportata!', - 'ta_IN': '"{option}" மாற்று செயல் ஆதரிக்கப்படவில்லை!', - 'tr_TR': '\"{option}\" seçeneği desteklenmiyor!', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-usage-command': { - '__desc__': 'The line that shows how to format a git command', - 'en_US': 'git []', - 'de_DE': 'git []', - 'zh_CN': 'git <命令> [<参数>]', - 'zh_TW': 'git <指令> [<參數>]', - 'es_AR': 'git []', - 'es_MX': 'git []', - 'es_ES': 'git []', - 'pt_BR': 'git []', - 'gl' : 'git []', - 'fr_FR': 'git []', - 'ro': "git []", - 'ru_RU': 'git <команда> [<аргументы>]', - 'uk': 'git <команда> [<аргументи>]', - 'ko': 'git <명령어> [<인자들>]', - 'vi': 'git []', - 'sl_SI': 'git []', - 'pl': 'git []', - 'it_IT': "git []", - 'ta_IN': 'git []', - 'tr_TR': 'git []', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-supported-commands': { - '__desc__': 'In the git help command, the header above the supported commands', - 'en_US': 'Supported commands:', - 'de_DE': 'Unterstützte Befehle:', - 'zh_CN': '支持的命令有:', - 'zh_TW': '支援的指令有:', - 'es_AR': 'Comandos soportados:', - 'es_MX': 'Comandos compatibles:', - 'es_ES': 'Comandos compatibles:', - 'pt_BR': 'Comandos suportados:', - 'gl' : 'Comandos soportados:', - 'fr_FR': 'Commandes supportées', - 'ro': "Comenzi suportate:", - 'ru_RU': 'Поддерживаемые команды', - 'uk': 'Допустимі команди', - 'ko': '지원되는 명령어들:', - 'vi': 'Các lệnh được hỗ trợ:', - 'sl_SI': 'Podprti ukazi:', - 'pl': 'Obsługiwane polecenia:', - 'it_IT': "Comandi supportati:", - 'ta_IN': 'செயலாக்கம் உள்ள கட்டளைகள்;', - 'tr_TR': 'Desteklenen komutlar:', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-usage': { - '__desc__': 'In the dummy git output, the header before showing all the commands', - 'en_US': 'Usage:', - 'de_DE': 'Benutzung:', - 'zh_CN': '使用:', - 'zh_TW': '用法:', - 'es_AR': 'Uso:', - 'es_MX': 'Uso:', - 'es_ES': 'Uso:', - 'pt_BR': 'Uso:', - 'gl' : 'Uso:', - 'fr_FR': 'Utilisation :', - 'ro': "Utilizare:", - 'ru_RU': 'Использование:', - 'uk': 'Використання:', - 'ko': '사용법', - 'vi': 'Cách dùng:', - 'sl_SI': 'Uporaba:', - 'pl': 'Użyj', - 'it_IT': "Utilizzo:", - 'ta_IN': 'பயன்பாடு', - 'tr_TR': 'Kullanım:', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-version': { - '__desc__': 'The git version dummy output, kind of silly. PCOTTLE is my unix name but feel free to put yours instead', - 'en_US': 'Git Version PCOTTLE.1.0', - 'de_DE': 'Git Version PCOTTLE.1.0.jbr', - 'zh_CN': 'Git 版本 PCOTTLE.1.0', - 'zh_TW': 'Git 版本 PCOTTLE.1.0', - 'es_AR': 'Git Versión PCOTTLE.1.0', - 'es_MX': 'Git Versión PCOTTLE.1.0', - 'es_ES': 'Git Versión PCOTTLE.1.0', - 'pt_BR': 'Git versão PCOTTLE.1.0', - 'gl' : 'Git versión PCOTTLE.1.0', - 'fr_FR': 'Git version PCOTTLE.1.0', - 'ro': "Versiunea Git PCOTTLE.1.0", - 'ru_RU': 'Версия git PCOTTLE.1.0', - 'uk': 'Версія git PCOTTLE.1.0', - 'ko': 'Git Version PCOTTLE.1.0', - 'vi': 'Phiên bản Git PCOTTLE.1.0', - 'sl_SI': 'Git Verzija PCOTTLE.1.0', - 'pl' : 'Wersja GIT-a OLSZA-YSC-1.0', - 'it_IT': "Git Version SHARDANA_SOFT.1.0.0", - 'ta_IN': 'Git Version PCOTTLE.1.0', - 'tr_TR': 'Git versiyonu PCOTTLE.1.0', - }, - /////////////////////////////////////////////////////////////////////////// - 'flip-tree-command': { - '__desc__': 'when the tree is being flipped', - 'en_US': 'Flipping tree...', - 'de_DE': 'Kehre den Baum um...', - 'zh_CN': '翻转树中...', - 'zh_TW': '翻轉樹中...', - 'es_AR': 'Invirtiendo el árbol...', - 'es_MX': 'Invirtiendo el árbol...', - 'es_ES': 'Invirtiendo el árbol...', - 'pt_BR': 'Invertendo a árvore...', - 'gl' : 'Invirtindo a árbore...', - 'fr_FR': 'Inversion de l\'arbre...', - 'ro': "Întorc copacul...", - 'ru_RU': 'Переворачиваю дерево...', - 'uk': 'Перевертаю дерево...', - 'ko': '트리를 뒤집는중...', - 'vi': 'Cây lật...', - 'sl_SI': 'Obračanje drevesa ...', - 'pl' : 'Odwracanie drzewa...', - 'it_IT': "Girando l'albero...", - 'ta_IN': 'Flipping tree...', - 'tr_TR': 'Ağaç ters çevriliyor...' - }, - /////////////////////////////////////////////////////////////////////////// - 'refresh-tree-command': { - '__desc__': 'when the tree is visually refreshed', - 'en_US': 'Refreshing tree...', - 'de_DE': 'Aktualisiere Baum ...', - 'zh_CN': '正在刷新树结构...', - 'zh_TW': '正在更新樹狀結構...', - 'es_AR': 'Refrezcando el árbol...', - 'es_MX': 'Actualizando el árbol...', - 'es_ES': 'Actualizando el árbol...', - 'pt_BR': 'Atualizando a árvore...', - 'gl' : 'Actualizando a árbore...', - 'fr_FR': 'Actualisation de l\'arbre…', - 'ro': "Actualizare copac...", - 'ru_RU': 'Обновляю дерево...', - 'uk': 'Оновлюю дерево...', - 'ko': '트리를 다시 불러오는중...', - 'vi': 'Đang làm mới cây...', - 'sl_SI': 'Osveževanje drevesa ...', - 'pl' : 'Odświeżanie drzewa...', - 'it_IT': "Aggiornando l'albero...", - 'ta_IN': 'Refreshing tree...', - 'tr_TR': 'Ağaç yenileniyor...', - }, - /////////////////////////////////////////////////////////////////////////// - 'locale-command': { - '__desc__': 'when the locale is set to something', - 'en_US': 'Locale set to {locale}', - 'de_DE': 'Locale auf {locale} gesetzt', - 'zh_CN': '语言更改为 {locale}', - 'zh_TW': '語系設為 {locale}', - 'es_AR': 'Localización actualizada a {locale}', - 'es_MX': 'Idioma actualizado a {locale}', - 'es_ES': 'Idioma puesto a {locale}', - 'pt_BR': 'Idioma trocado para {locale}', - 'gl' : 'Cambiado o idioma a {locale}', - 'fr_FR': 'Langue changée à {locale}', - 'ro': "Locale setat la {locale}", - 'ru_RU': 'Локаль теперь равна {locale}', - 'uk': 'Локаль тепер дорівнює {locale}', - 'ko': '로케일이 {locale}로 설정되었습니다.', - 'vi': 'Ngôn ngữ được thay đổi thành {locale}', - 'sl_SI': 'Locale nastavljen na {locale}', - 'pl' : 'Ustawiono język na {locale}', - 'it_IT': "Locale impostato a {locale}", - 'ta_IN': 'பிரதேசம் {locale}ஆக மற்ற பட்டுள்ளது', - 'etr_TR': '{locale} olarak dil ayarlandı', - }, - /////////////////////////////////////////////////////////////////////////// - 'locale-reset-command': { - '__desc__': 'when the locale is reset', - 'en_US': 'Locale reset to default, which is {locale}', - 'de_DE': 'Locale auf Standard zurückgesetzt, also {locale}', - 'zh_CN': '语言重置为默认的 {locale}', - 'zh_TW': '還原為預設語系 {locale}', - 'es_AR': 'Localización vuelta al default, que es {locale}', - 'es_MX': 'Idioma reestablecido al default, que es {locale}', - 'es_ES': 'Idioma reajustado a su valor por defecto ({locale})', - 'pt_BR': 'Idioma retornado para o padrão, que é {locale}', - 'gl' : 'Lingua reaxustada ó seu valor por defecto {locale}', - 'fr_FR': 'Langue remise par défaut, qui est {locale}', - 'ro': "Locale resetat la valoarea implicită, care este {locale}", - 'ru_RU': 'Локаль сброшена. Теперь она равна {locale}', - 'uk': 'Локаль скинута. Тепер вона дорівнює {locale}', - 'ko': '로케일이 {locale}로 초기화 되었습니다.', - 'vi': 'Ngôn ngữ được đổi thành mặc định: {locale}', - 'sl_SI': 'Locale ponastavljen na {locale}', - 'pl' : 'Przywrócono język do wartości domyślnych, czyli {locale}', - 'it_IT': "Locale resettato al valore di default, che è {locale}", - 'ta_IN': 'பிரதேசம் இயல்புநிலை {locale}க்கி மீட்டமைக்கப்பட்டுள்ளது', - 'tr_TR': 'Dil varsayılan olarak sıfırlandı, bu {locale}', - }, - /////////////////////////////////////////////////////////////////////////// - 'show-command': { - '__desc__': 'command output title from "show"', - 'en_US': 'Please use one of the following commands for more info:', - 'zh_TW': '請使用下列其中一個指令取得更多資訊:', - 'zh_CN': '请使用以下命令以了解更多:', - 'de_DE': 'Bitte benutze einen der folgenden Befehle um mehr Informationen zu bekommen:', - 'es_AR': 'Usá alguno de estos comandos para tener más información:', - 'es_MX': 'Por favor, utilice alguno de estos comandos para tener más información:', - 'es_ES': 'Por favor usa uno de los siguientes comandos para más información:', - 'pt_BR': 'Use algum destes comandos para ter mais informações:', - 'gl' : 'Usa algún destes comandos para ter máis información:', - 'fr_FR': 'Merci d\'utiliser une des commandes suivantes pour obtenir plus d\'informations', - 'ro': "Pentru mai multe informații, folosește una dintre următoarele comenzi:", - 'ru_RU': 'Для получения большей информации используй следующие команды:', - 'uk': 'Щоб отримати більше інформації використовуй наступні команди:', - 'ko': '더 많은 정보를 위해 다음 명령어들중 하나를 사용하세요:', - 'vi': 'Vui lòng dùng một trong các lệnh sau để có thêm thông tin:', - 'sl_SI': 'Prosim uporabi enega od naslednjih ukazov', - 'pl' : 'Aby uzyskać więcej informacji, użyj jednego z następujących poleceń:', - 'it_IT': "Usa uno dei seguenti comandi per maggiori informazioni:", - 'ta_IN': 'மேலும் தகவலுக்கு பின்வரும் கட்டளைகளில் ஒன்றைப் பயன்படுத்தவும்:', - 'tr_TR': 'Daha fazla bilgi için lütfen aşağıdaki komutlardan birini kullanın:', - }, - /////////////////////////////////////////////////////////////////////////// - 'show-all-commands': { - '__desc__': 'command output title from "show commands"', - 'en_US': 'Here is a list of all the commmands available:', - 'zh_TW': '這份清單列出所有可用指令:', - 'zh_CN': '该列表列出了所有可用的指令:', - 'de_DE': 'Hier ist eine Liste aller verfügbaren Befehle:', - 'es_AR': 'Esta es una lista de los comandos disponibles:', - 'es_MX': 'Esta es una lista de todos los comandos disponibles:', - 'es_ES': 'Esta es una lista de todos los comandos disponibles:', - 'pt_BR': 'Esta é uma lista dos comandos disponíveis:', - 'gl' : 'Esta é unha lista dos comando dispoñibles:', - 'fr_FR': 'Ci-dessous est la liste de toutes les commandes disponibles :', - 'ro': "Iată o listă cu toate comenzile disponibile:", - 'ru_RU': 'Вот все поддерживаемые команды:', - 'uk': 'Ось список всіх можливих команд:', - 'ko': '여기에 사용 가능한 모든 명령어들의 리스트가 있습니다.', - 'vi': 'Dưới đây là danh sách tất cả các lệnh có sẵn:', - 'sl_SI': 'Tu je seznam vseh možnih ukazov:', - 'pl' : 'Oto lista wszystkich dostępnych poleceń:', - 'it_IT': "Ecco la lista con tutti i comandi disponibili:", - 'ta_IN': 'கிடைக்கக்கூடிய அனைத்து கட்டளைகளின் பட்டியல்:', - 'tr_TR': 'İşte tüm mevcut komutların bir listesi:', - }, - /////////////////////////////////////////////////////////////////////////// - 'cd-command': { - '__desc__': 'dummy command output for the command in the key', - 'en_US': 'Directory changed to "/directories/dont/matter/in/this/demo"', - 'de_DE': 'Verzeichnis gewechselt zu "/verzeichnisse/sind/in/dieser/demo/irrelevant"', - 'zh_CN': '目录切换到 "/directories/dont/matter/in/this/demo"', - 'zh_TW': '目錄切換到 "/directories/dont/matter/in/this/demo"', - 'es_AR': 'Directorio cambiado a "/los/directorios/no/importan/en/esta/demo"', - 'es_MX': 'Directorio cambiado a "/los/directorios/no/importan/en/esta/demo"', - 'es_ES': 'Directorio cambiado a "/los/directorios/no/importan/en/esta/demo"', - 'pt_BR': 'Diretório mudado para "/diretorios/nao/importam/neste/demo"', - 'gl' : 'Directorio cambiado a "/os/directorios/non/importan/nesta/demo"', - 'fr_FR': 'Répertoire changé à "/directories/dont/matter/in/this/demo" (les répertoires ne servent à rien dans cette démo)', - 'ro': 'Director schimbat la "/directories/dont/matter/in/this/demo"', - 'ru_RU': 'Директория изменена на "/директории/не/важны/в/этом/демо"', - 'uk': 'Директорія змінена на "/директорії/не/мають/значення/в/цьому/демо"', - 'ko': '디렉토리가 "/directories/dont/matter/in/this/demo"로 변경되었습니다.', - 'vi': 'Thay đổi thư mục thành "/directories/dont/matter/in/this/demo"', - 'sl_SI': 'Mapa spremenjena na "/directories/dont/matter/in/this/demo"', - 'pl' : 'Katalog zmieniony na "/home/users/windows/pl/demo"', - 'it_IT': 'Cartella modificata in "/directories/dont/matter/in/this/demo"', - 'ta_IN': 'அடைவு "/directories/dont/matter/in/this/demo"க்கு மாற்றப்பட்டது', - 'tr_TR': 'Dizin "/directories/dont/matter/in/this/demo" olarak değiştirildi', - }, - /////////////////////////////////////////////////////////////////////////// - 'ls-command': { - '__desc__': 'Dummy command output for the command in the key', - 'en_US': 'DontWorryAboutFilesInThisDemo.txt', - 'de_DE': 'VergissDateienInDieserDemo.txt', - 'zh_CN': '在本程序中无须考虑文件问题.txt', - 'zh_TW': 'DontWorryAboutFilesInThisDemo.txt (譯註:在 demo 裡不用擔心檔案)', - 'es_AR': 'NoTePreocupesPorLosArchivosEnEstaDemo.txt', - 'es_MX': 'NoTePreocupesPorLosArchivosEnEstaDemo.txt', - 'es_ES': 'NoTePreocupesPorLosArchivosEnEstaDemo.txt', - 'pt_BR': 'NaoSePreocupeComNomesDeArquivoNesteDemo.txt', - 'gl' : 'NonTePreocupesPolosCambiosNestaDemo.txt', - 'fr_FR': 'DontWorryAboutFilesInThisDemo.txt (ne vous préoccupez pas des noms de fichier dans cette démo)', - 'ro': "NuTeStresaCuFișiereleÎnAcestDemo.txt", - 'ru_RU': 'НеНадоЗаботитьсяОФайлахВЭтомДемо.txt', - 'uk': 'ЗабийНаФайлиВЦьомуДемо.txt', - 'ko': 'DontWorryAboutFilesInThisDemo.txt (이_데모에서_파일에_대한_걱정은_하지마세요.txt)', - 'vi': 'DontWorryAboutFilesInThisDemo.txt (ĐừngLoLắngVềTậpTinTrongBảnGiớiThiệuNày.txt)', - 'sl_SI': 'DontWorryAboutFilesInThisDemo.txt', - 'pl' : 'SpokojnieToTylkoPlikDemo.txt', - 'it_IT': "NoNdEvIpReOcCuPaRtIdEiFiLeInQuEsTaDeMo.txt", - 'ta_IN': 'DontWorryAboutFilesInThisDemo.txt', - 'tr_TR': 'DontWorryAboutFilesInThisDemo.txt' - }, - 'mobile-alert': { - '__desc__': 'When someone comes to the site on a mobile device, they can not input commands so this is a nasty alert to tell them', - 'en_US': 'LGB can\'t receive input on mobile, visit on desktop! it\'s worth it :D', - 'de_DE': 'LGB ist nicht mit mobilen Endgeräten kompatibel, benutz es vom Desktop! Es lohnt sich :D', - 'zh_CN': '无法在移动设备/平板上调出键盘 :( 请试试桌面版 :D', - 'zh_TW': '無法在行動裝置上叫出鍵盤,請改用桌面版!', - 'es_AR': 'LGB no puede recibir comandos en dispositivos móviles. Visitanos desde una desktop, ¡lo vale! :D', - 'es_MX': 'LGB no puede recibir comandos en dispositivos móviles. Visítanos en una computadora de escritorio u laptop, ¡Vale la pena! :D', - 'es_ES': 'LGB no puede recibir comandos en dispositivos móviles. Visítanos en una computadora de escritorio, ¡lo vale! :D', - 'pt_BR': 'Provavelmente você não vai conseguir digitar comandos no celular, neste caso tente acessar de um computador', - 'gl' : 'LGB non pode recibir os comandos nos dispositivos móbiles. Visítanos dende un ordenador de escritorio, ¡paga a pena! :D', - 'fr_FR': 'Impossible de faire apparaître le clavier sur mobile / tablette :( Essayez de passer sur un ordinateur de bureau :D', - 'ro': "NuTeStresaCuFișiereleÎnAcestDemo.txt", - 'ru_RU': 'Мобильные не поддерживаются, зайди с компьютера!', - 'uk': 'LGB не підтримує ввід тексту з мобільного, зайди з компьютера! Це цього варте!', - 'ko': 'LGB는 모바일에서 입력을 받을 수 없으니 데스크톱으로 접속하세요! 후회하지 앉을겁니다. :D', - 'vi': 'Đáng tiếc là ứng dụng không thể nhận thông tin từ điện thoại hay máy tính bảng, hãy sử dụng máy tính cá nhân, đáng để bỏ công mà :D', - 'sl_SI': 'LGB ne more sprejeti ukazov na mobilni napravi, obiščite nas na računalinku! Je vredno :D ', - 'pl' : 'Przepraszamy, ale LearnGitBranching nie obsługuje wpisywania komend z urządzeń mobilnych. Odwiedź LearnGitBranching na komputerze stacjonarnym, warto! :D', - 'it_IT': - "LGB non funziona su mobile, vieni a trovarci da pc! Ne vale veramente la pena :D", - 'ta_IN': 'LGBஆல் மொபைலில் உள்ளீட்டைப் பெற முடியாது, டெஸ்க்டாப்பில் பார்வையிடவும், அது பயணுள்ளது :D', - 'tr_TR': 'LGB mobilde giriş alamaz, masaüstü üzerinden ziyaret et! Değmesine değer :D' - }, - /////////////////////////////////////////////////////////////////////////// - 'share-tree': { - '__desc__': 'When you export a tree, we want you to share the tree with friends', - 'en_US': 'Share this tree with friends! They can load it with "import tree"', - 'de_DE': 'Teile diesen git-Baum mit Freunden! Sie können ihn mit "import tree" laden', - 'zh_CN': '与你的好友分享提交树!他们可以用 "import tree" 加载它', - 'zh_TW': '與你的好友分享這棵樹!他們可以用 "import tree" 來載入它', - 'es_AR': '¡Compartí este árbol con amigos! Pueden cargarlo con "import tree"', - 'es_MX': '¡Comparte éste árbol con amigos! Pueden cargarlo con "import tree"', - 'es_ES': '¡Comparte este árbol con amigos! Pueden cargarlo con "import tree"', - 'pt_BR': 'Compartilhe esta árvore com seus amigos! Eles podem carregá-la com "import tree"', - 'gl' : '¡Comparte esta árbore cos teus amigos! Eles poden cargalo con "import tree"', - 'fr_FR': 'Partagez cet arbre avec vos amis ! Ils peuvent le charger avec "import tree"', - 'ro': 'Împărtășește acest copac cu prietenii! Ei îl pot încărca cu "import tree"', - 'ru_RU': 'Поделись деревом с друзьями! Они могут загрузить его при помощи "import tree"', - 'uk': 'Поділись цим деревом з друзями! Вони зможуть його завантажити за допомогою "import tree"', - 'ko': '이 트리를 친구들에게 공유하세요! 친구들이 "import tree"를 사용하여 로드할 수 있습니다.', - 'vi': 'Hãy chia sẻ cây này với bạn của mình! Họ có thể dùng "import tree" để tải', - 'sl_SI': 'Deli to drevo s prijatelji! Lahko ga naložijo z "import tree"', - 'pl' : 'Udostępnij to drzewo znajomym! Mogą je załadować za pomocą "import tree"', - 'it_IT': - 'Condividi quest\'albero con i tuoi amici! Può essere importato tramite "import tree"', - 'ta_IN': 'இந்த `tree`ஐ நண்பர்களுடன் பகிர்ந்து கொள்ளுங்கள்! அவர்கள் அதை "import tree" மூலம் பெறலாம்', - 'tr_TR': 'Bu ağacı arkadaşlarınla paylaş! "import tree" komutuyla yükleyebilirler', - }, - /////////////////////////////////////////////////////////////////////////// - 'paste-json': { - '__desc__': 'When you are importing a level or tree', - 'en_US': 'Paste a JSON blob below!', - 'de_DE': 'Füg einen JSON-Blob unten ein!', - 'zh_CN': '在下边粘贴一个 JSON 串', - 'zh_TW': '在下方貼上一串 JSON', - 'es_AR': '¡Pegá un blob JSON abajo!', - 'es_MX': '¡Pega un blob JSON abajo!', - 'es_ES': '¡Pega un blob JSON abajo!', - 'pt_BR': 'Cole o JSON abaixo!', - 'gl' : 'Pega un JSON abaixo!', - 'fr_FR': 'Collez un blob JSON ci-dessous !', - 'ro': "Introdu un blob JSON mai jos!", - 'ru_RU': 'Вставь JSON ниже!', - 'uk': 'Встав JSON нижче!', - 'ko': '아래에 JSON blob을 붙여넣으세요.', - 'vi': 'Dán một chuỗi JSON xuống bên dưới!', - 'sl_SI': 'Prilepi JSON kodo spodaj!', - 'pl' : 'Wklej poniżej obiekt z kodem JSON!', - 'it_IT': "Incolla un blob JSON qui sotto!", - 'ta_IN': 'ஒரு JSON blob-ஐ கீழே ஒட்டவும்', - 'etr_TR': 'Aşağıya bir JSON verisi yapıştırın!', - }, - /////////////////////////////////////////////////////////////////////////// - 'solved-map-reset': { - '__desc__': 'When you reset the solved map to clear your solved history, in case someone else wants to use your browser', - 'en_US': 'Solved map was reset, you are starting from a clean slate!', - 'de_DE': 'Gelöste Karte wurde zurückgesetzt, du fängst mit einem leeren Blatt an!', - 'zh_CN': '解决列表已重置,您现在可以从头开始了', - 'zh_TW': '過關地圖已經重新設置,您現在從零開始了', - 'es_AR': 'El mapa resuelto fue eliminado, estás arrancando desde un estado limpio', - 'es_MX': 'El mapa resuelto fue eliminado, estás empezando desde un estado limpio', - 'es_ES': 'El mapa resuelto fue eliminado, estás empezando de un estado limpio.', - 'pt_BR': 'Mapa de resolvidos descartado, você está começando com ficha limpa!', - 'gl' : 'O mapa resolto foi eliminado, estás arrancando dende un estado limpo.', - 'fr_FR': 'La carte des niveaux résolus a été effacée, vous repartez de zéro !', - 'ro': "Totul a fost resetat, începi de la zero!", - 'ru_RU': 'Всё сброшено! Можно начать с чистого листа!', - 'uk': 'Все скинуте! Можна починати з чистого аркушу!', - 'ko': '해결된 맵이 초기화 되었습니다. 이제 초기 상태에서 시작합니다!', - 'vi': 'Tất cả đáp án đã được xóa, bạn có thể bắt đầu lại từ đầu!', - 'sl_SI': 'Rešena mapa je ponastavljena, začel boš lahko na novo!', - 'pl' : 'Rozwiązania zostały wyczyszczone, zaczynasz z czystą kartą.', - 'it_IT': "I progresse salvati sono stati resettati, stai iniziando da zero!", - 'ta_IN': 'தீர்க்கப்பட்ட கோப்பு மீட்டமைக்கப்பட்டது, நீங்கள் ஆரம்பத்தில் இருந்து தொடங்குகிறீர்கள்!', - 'tr_TR': 'Çözülen harita sıfırlandı, temiz bir sayfadan başlıyorsunuz!', - }, - /////////////////////////////////////////////////////////////////////////// - 'level-cant-exit': { - '__desc__': 'When the user tries to exit a level when they are not in one', - 'en_US': 'You are not in a level! You are in a sandbox, start a level with "levels"', - 'de_DE': 'Du bist nicht in einem Level! Du bist im Sandkasten-Modus, starte ein Level mit "levels"', - 'zh_CN': '您没在关卡中而是在沙盒中,要开始关卡请输入 "levels"', - 'zh_TW': '您沒在關卡中!您在沙盒中,要開始關卡請輸入 "levels"', - 'es_AR': '¡No estás en un nivel! Estás en el sandbox, comenzá un nivel usando "levels"', - 'es_MX': '¡No estás en un nivel! Estás en el sandbox, comienza un nivel con "levels"', - 'es_ES': '¡No estás en un nivel! Estás en el sandbox, comienza un nivel con "levels"', - 'pt_BR': 'Você não está em um nível! Você está no sandbox, comece um nível com "levels"', - 'gl' : '¡Non estás en ningún nivel! Estás nunha caixa de arena, comeza un nivel usando "levels"', - 'fr_FR': 'Vous n\'êtes pas dans un niveau ! Vous êtes dans le mode bac à sable, commencez un niveau avec "levels"', - 'ro': 'Nu ești într-un nivel! Ești în sandbox, începe un nivel cu "levels"', - 'ru_RU': 'Ты не проходишь уровень! Ты в песочнице! Чтобы начать уровень, используй команду "levels"!', - 'uk': 'Ти не в рівні! Ти в пісочниці! Почни рівень з "levels"', - 'ko': '현재 샌드박스에 있습니다! "levels"를 사용하여 레벨을 시작하세요.', - 'vi': 'Bạn hiện không ở cấp độ nào cả! Bạn đang ở trong hộp cát (sandbox), hãy bắt đầu một cấp độ với "levels"', - 'sl_SI': 'Nisi v stopnji! Si v peskovniku, začni stopnjo z "levels"', - 'pl' : 'Nie jesteś na poziomie! Jesteś w trybie piaskownicy, zacznij poziom wpisując "levels"', - 'it_IT': - 'Non ti trovi in un livello! Sei nella sandbox, inizia un livello con "levels"', - 'ta_IN': 'ஒரு நிலையில் இல்லாமல், நீங்கள் sandbox-இல் உள்ளீர்கள்! "நிலைகள்" மூலம் ஒரு நிலையைத் தொடங்கவும்', - 'tr_TR': 'Bir seviyede değilsiniz! Bir kum havuzundasınız, "levels" ile bir seviye başlatın.', - }, - /////////////////////////////////////////////////////////////////////////// - 'level-no-id': { - '__desc__': 'When you say an id but that level doesn\'t exist', - 'en_US': 'A level for that id "{id}" was not found! Opening up a level selection view', - 'de_DE': 'Konnte kein Level mit der ID "{id}" finden! Öffne den Level-Auswahldialog', - 'zh_CN': '没找到 id 为 "{id}" 的关卡!打开关卡选择框', - 'zh_TW': '找不到 id 為 "{id}" 的關卡!開啟關卡選擇視窗', - 'es_AR': 'No se encontró ningún nivel {id}. Abriendo la vista de selección de niveles...', - 'es_MX': 'No se encontró ningún nivel {id}. Abriendo la vista de selección de niveles...', - 'es_ES': 'No se encontró ningún nivel {id}. Abriendo la vista de selección de niveles...', - 'pt_BR': 'O nível "{id}" não existe! Abrindo uma caixa de seleção de nível', - 'gl' : 'O nivel "{id}" non existe! Abrindo unha caixa de seleción de nivel', - 'fr_FR': 'Le niveau dont l\'identifiant est {id} n\'a pas été trouvé ! Ouverture de la vue de sélection des niveaux', - 'ro': 'Nivelul cu id "{id}" nu a fost găsit! Deschid vizualizarea de selecție a nivelurilor', - 'ru_RU': 'Уровень с id "{id}" не найден! Открываю выбор уровней', - 'uk': 'Рівень з id "{id}" не знайдений! Відкриваю вибір рівней', - 'ko': 'id "{id}"에 대한 레벨이 존재하지 않습니다. 레벨 선택 화면을 열어보세요.', - 'vi': 'Không tìm thấy cấp độ cho định danh "{id}"! Mở cửa sổ chọn cấp độ', - 'sl_SI': 'Stopnja za ta id "{id}" ni bila najdena! Odpiram pogled za izbiro stopnje', - 'pl' : 'Nie znaleziono poziomu {id}!. Otwieranie widoku wyboru poziomu...', - 'it_IT': - 'Non è stato trovato un livello con id "{id}"! Apro la finestra con la selezione dei livelli', - 'ta_IN': 'அந்த "{id}"-க்கான நிலை காணப்படவில்லை! நிலை தேர்வு செய்யும் திரை திறக்கிறது', - 'tr_TR': 'Bu id\'ye "{id}" ait bir seviye bulunamadı! Seviye seçimi görünümünü açıyorum.', - }, - /////////////////////////////////////////////////////////////////////////// - 'undo-stack-empty': { - '__desc__': 'The undo command can only undo back until the last time the level was reset or the beginning of the level', - 'en_US': 'The undo stack is empty!', - 'de_DE': 'Die Undo-Liste ist leer!', - 'zh_CN': '还没有什么可以撤销', - 'zh_TW': '還沒有什麼可以取消', - 'es_AR': 'No hay comandos que deshacer', - 'es_MX': 'No hay comandos para deshacer', - 'es_ES': 'No hay comandos que deshacer', - 'pt_BR': 'Você já desfez tudo!', - 'gl' : 'Nonn hai comandos que desfacer', - 'fr_FR': 'La pile d\'annulation est vide !', - 'ro': "Stiva de anulări este goală!", - 'ru_RU': 'Некуда откатывать!', - 'uk': 'Нема куди відкочуватись!', - 'ko': '되돌리기 스택이 비었습니다!', - 'vi': 'Không có gì để hoàn tác!', - 'sl_SI': 'Undo seznam je prazen!', - 'pl' : 'Nie ma już poleceń do cofnięcia!', - 'it_IT': "Non sono presenti comandi da annullare!", - 'ta_IN': 'மீள்பதிவு அடுக்கு காலியாக உள்ளது!', - 'tr_TR': 'Geri alma yığını boş!', - }, - /////////////////////////////////////////////////////////////////////////// - 'already-solved': { - '__desc__': 'When you play in a level that is already solved', - 'en_US': 'You have already solved this level, try other levels with "levels" or go back to sandbox with "sandbox"', - 'de_DE': 'Du hast dieses Level bereits gelöst, probier ein anderes Level mit "levels" aus oder geh in den Sandkasten-Modus mit "sandbox"', - 'zh_CN': '你已经解决了本关,输入 "levels" 尝试其他关卡,或者输入 "sandbox" 回到沙盒中', - 'zh_TW': '你已經解决了本關,輸入 "levels" 嘗試其他關卡,或者輸入 "sandbox" 回到沙盒中', - 'es_AR': 'Ya resolviste este nivel, probá otros usando "levels" o volvé al sandbox usando "sandbox"', - 'es_MX': 'Ya resolviste este nivel, prueba otros usando "levels" o vuelve al sandbox usando "sandbox"', - 'es_ES': 'Ya resolviste este nivel, prueba otros usando "levels" o vuelve al sandbox usando "sandbox"', - 'pt_BR': 'Você já resolveu este nível, tente outros com "levels" ou volte ao sandbox com "sandbox"', - 'gl' : 'Xa resolviches este nivel, proba outros usando "levels" ou volve á caixa de area con "sandbox"', - 'fr_FR': 'Vous avez déjà résolu ce niveau, essayez d\'autres niveaux avec "levels" ou revenez au bac à sable avec "sandbox"', - 'ro': 'Ai rezolvat deja acest nivel, încearcă alte nivele cu "levels" sau întoarce-te la sandbox cu "sandbox"', - 'ru_RU': 'Ты уже прошел этот уровень, попробуй пройти другие при помощи команды "levels" или иди в песочницу "sandbox"', - 'uk': 'Ти вже пройшов цей рівень, спробуй інші рівні з "levels" чи повернись в пісочницю з "sandbox"', - 'ko': '당신은 이미 이 레벨을 해결했습니다. "levels"를 사용하여 다른 레벨에 도전하거나 "sandbox"를 사용하여 샌드박스로 돌아가세요.', - 'vi': 'Bạn đã vượt qua cấp độ này. Thử cấp độ khác với "levels" hoặc dùng "sandbox" để trở lại hộp cát', - 'sl_SI': 'To stopnjo si že rešil, poizkusi druge stopnje z "levels" ali pojdi nazaj v peskovnik s "sandbox"', - 'pl' : 'Już rozwiązałeś ten poziom, wypróbuj inne, używając "levels" lub wróć do trybu piaskownicy za pomocą polecenia "sandbox"', - 'it_IT': - 'Hai già risolto questo livello, prova altri livelli con "levels" o torna alla sandbox con "sandbox"', - 'ta_IN': 'நீங்கள் ஏற்கனவே இந்த நிலையை தீர்த்துள்ளீர்கள், "நிலைகள்" மூலம் பிற நிலைகளை முயற்சிக்கவும் அல்லது "sandbox" உடன் sandbox-க்குச் செல்லவும்', - 'tr_TR': 'Bu seviyeyi zaten çözdünüz, "levels" komutuyla diğer seviyeleri deneyin veya "sandbox" komutuyla tekrar sandbox\'a dönün.', - }, - /////////////////////////////////////////////////////////////////////////// - 'solved-level': { - '__desc__': 'When you solved a level', - 'en_US': 'Solved!!!\n:D', - 'es_MX': '¡Resuelto!!!', - 'de_DE': 'Gelöst!!!\n:D', - 'zh_CN': '恭喜过关!!!', - 'zh_TW': '恭喜,本關解決了!!!', - 'es_ES': '¡Resuelto!!!\n:D', - 'fr_FR': 'Résolu !!!\n:D', - 'gl' : '¡Resolto!!!', - 'ro': "Rezolvat!!!\n:D", - 'ru_RU': 'Решено!!!\n:D', - 'uk' : 'Вирішено!!!\n:D', - 'ko' : '해결 완료!!!\n:D', - 'vi' : 'ĐÃ XONG!!!\n:D', - 'sl_SI': 'Rešeno!!!\n:D', - 'pl' : 'Rozwiązany!!!\n:D', - 'pt_BR': 'Resolvido!!!\n:D', - 'it_IT': "Risolto!!!\n:D", - 'ta_IN': 'தீர்க்கப்பட்டது!!!\n:D', - 'tr_TR': 'Tebrikler!!!\n:D' - }, - /////////////////////////////////////////////////////////////////////////// - 'command-disabled': { - '__desc__': 'When you try a command that is disabled', - 'en_US': 'That git command is disabled for this level!', - 'de_DE': 'Dieser git-Befehl ist für dieses Level deaktiviert!', - 'zh_CN': '本关不允许使用该命令!', - 'zh_TW': '本關禁止使用該 git 指令!', - 'es_AR': '¡Ese comando de git está deshabilitado para este nivel!', - 'es_MX': '¡Ese comando de git está deshabilitado para éste nivel!', - 'es_ES': '¡Ese comando de git está deshabilitado para este nivel!', - 'pt_BR': 'Achou que seria fácil assim? Desabilitamos esse comando durante este nível, só para dificultar ;-)', - 'gl' : '¡Ese comando de git está deshabilitado para este nivel!', - 'fr_FR': 'Cette commande git est désactivée pour ce niveau !', - 'ro': "Această comandă git este dezactivată pentru acest nivel!", - 'ru_RU': 'На этом уровне нельзя использовать эту команду!', - 'uk': 'На цьому рівні не можна використовувати цю команду!', - 'ko': '그 Git 명령어는 이 레벨에서 사용할 수 없습니다.', - 'vi': 'Ở cấp độ này thì lệnh git đó bị vô hiệu hóa!', - 'sl_SI': 'Ta git ukaz je onemogočen za to stopnjo!', - 'pl' : 'To polecenie Gita jest wyłączone na tym poziomie!', - 'it_IT': "Questo comando git è disabilitato per questo livello!", - 'ta_IN': 'இந்த நிலையில் அந்த கிட் கட்டளை முடக்கப்பட்டுள்ளது', - 'tr_TR': 'Bu seviyede o git komutu devre dışı bırakılmıştır!', - }, - /////////////////////////////////////////////////////////////////////////// - 'share-json': { - '__desc__': 'when you have made the level, prompt to share this', - 'en_US': 'Here is the JSON for this level! Share it with someone or send it to me on GitHub', - 'de_DE': 'Hier ist das JSON für dieses Level! Teil es mit jemandem or schick es mir über GitHub', - 'zh_CN': '这是一个关卡定义 JSON !您可以分享它或者发到我的 GitHub 上', - 'zh_TW': '這是本關的 JSON!您可以分享給別人,或是送到 GitHub 上給我', - 'es_AR': 'Este es el JSON de este nivel. Compartilo con quien quieras o mandámelo por GitHub', - 'es_MX': 'Este es el JSON de éste nivel. Compártelo con quien quieras o mándamelo por GitHub.', - 'es_ES': 'Este es el JSON de este nivel. Compártelo con quien quieras o mandámelo por GitHub.', - 'pt_BR': 'Aqui está o JSON para este nível! Compartilhe com alguém ou me envie pelo GitHub', - 'gl' : 'Este é o JSON deste nivel. Comparteo con quen queiras ou mándao por GitHub', - 'fr_FR': 'Voici le JSON pour ce niveau ! Partagez-le avec quelqu\'un ou envoyez-le moi sur GitHub', - 'ro': "Iată JSON-ul pentru acest nivel! Împărtășește-l cu cineva sau trimite-mi-l pe GitHub", - 'ru_RU': 'Вот JSON для этого уровня! Поделись им с кем-нибудь или отправь его нам на GitHub', - 'uk': 'Ось JSON для цього рівня! Поділись з кимось чи відправ мені його на GitHub', - 'ko': '이 레벨을 위한 JSON 데이터가 있습니다! 이를 다른 사람들과 공유하거나 GitHub에서 제게 보내보세요.', - 'vi': 'Đây là chuỗi JSON cho cấp độ này! Hãy chia sẻ với người khác hoặc với tôi qua GitHub', - 'sl_SI': 'Tu je JSON za to stopnjo! Deli ga z nekom ali ga pošlji meni na GitHub', - 'pl' : 'To jest JSON dla tego poziomu. Udostępnij go, komu chcesz, lub wyślij do mnie na GitHub.', - 'it_IT': - "Ecco il JSON per questo livello! Condividilo con qualcuno o inviamelo tramite GitHub", - 'ta_IN': 'இதோ இந்த நிலைக்கான JSON, இதை பகிர்ந்து கொள்ளுங்கள் அல்லது GitHub-இல் எனக்கு அனுப்புங்கள்', - 'tr_TR': 'İşte bu seviye için JSON! Bunu birisiyle paylaşabilir veya GitHub üzerinden bana gönderebilirsiniz.', - }, - /////////////////////////////////////////////////////////////////////////// - 'want-start-dialog': { - '__desc__': 'prompt to add a start dialog', - 'en_US': 'You have not specified a start dialog, would you like to add one?', - 'de_DE': 'Du hast noch keinen Einführungs-Dialog geschrieben, willst du einen hinzufügen?', - 'zh_CN': '您还没有定义一开始的介绍,是否添加一个?', - 'zh_TW': '尚未指定開始對話視窗,是否立即新增?', - 'es_AR': 'No especificaste un mensaje de inicio, ¿querés agregar uno?', - 'es_MX': 'No especificaste un mensaje de inicio, ¿Quieres agregar uno?', - 'es_ES': 'No especificaste un mensaje de inicio, ¿quieres agregar uno?', - 'pt_BR': 'Você não especificou uma mensagem de início, quer colocar uma?', - 'gl' : 'Non especificaches unha mensaxe de incio. ¿queres agregar un?', - 'fr_FR': 'Vous n\'avez pas spécifié de dialogue de départ, voulez-vous en ajouter un ?', - 'ro': "Nu ai specificat un dialog de început, vrei să adaugi unul?", - 'ru_RU': 'Не указано стартово сообщение! Точно продолжаем?', - 'uk': 'Не вказано стартовий діалог, хочеш додати стартовий діалог?', - 'ko': '시작 대화창을 지정하지 않았습니다. 추가 하시겠습니까?', - 'vi': 'Không có cửa sổ hộp thoại được chỉ định, thêm một cái chứ?', - 'sl_SI': 'Nisi določil začetnega dialoga, bi ga rad dodal?', - 'pl' : 'Nie określiłeś okna startowego, czy chcesz je dodać?', - 'it_IT': - "Non hai specificato una finestra di partenza, ne vuoi aggiungere una?", - 'ta_IN': 'தொடக்க உரை எதுவும் நீங்கள் குறிப்பிடவில்லை, ஏதேனும் ஒன்றைச் சேர்க்க விரும்புகிறீர்களா?', - 'tr_TR': 'Başlangıç diyaloğunu belirtmediniz, bir tane eklemek ister misiniz?' - }, - /////////////////////////////////////////////////////////////////////////// - 'want-hint': { - '__desc__': 'prompt to add a hint', - 'en_US': 'You have not specified a hint, would you like to add one?', - 'de_DE': 'Du hast noch keinen Hinweis geschrieben, magst du einen hinzufügen?', - 'zh_CN': '您还没有定义提示,是否添加一个?', - 'zh_TW': '尚未指定提示,是否立即新增?', - 'es_AR': 'No especificaste ninguna pista, ¿querés agregar alguna?', - 'es_MX': 'No especificaste ninguna pista, ¿Quieres agregar alguna?', - 'es_ES': 'No especificaste ninguna pista, ¿quieres agregar alguna?', - 'pt_BR': 'Você não especificou uma dica, quer colocar uma?', - 'gl' : 'Ti non especificaches unha pista, ¿queres agregar algunha?', - 'fr_FR': 'Vous n\'avez pas spécifié d\'indice, voulez-vous en ajouter un ?', - 'ro': "Nu ai specificat niciun indiciu, vrei să adaugi unul?", - 'ru_RU': 'Не указана подсказка для уровня! Пренебречь? Вальсируем?', - 'uk': 'Не вказана підказка, хочеш додати підказку?', - 'ko': '힌트를 지정하지 않았습니다. 추가 하시겠습니까?', - 'vi': 'Bạn chưa chỉ định một gợi ý, thêm một cái chứ?', - 'sl_SI': 'Nisi določil namiga, bi ga rad dodal?', - 'pl' : 'Nie podałeś podpowiedzi, czy chcesz ją dodać?', - 'it_IT': "Non hai specificato un suggerimento, ne vuoi aggiungere uno?", - 'ta_IN': 'நீங்கள் குறிப்பெதுவும் தரவில்லை, ஏதேனும் ஒன்றைச் சேர்க்க விரும்புகிறீர்களா?', - 'tr_TR': 'Bir ipucu belirtmediniz, bir tane eklemek ister misiniz?' - }, - /////////////////////////////////////////////////////////////////////////// - 'prompt-hint': { - '__desc__': 'prompt for hint', - 'en_US': 'Enter the hint for this level, or leave this blank if you do not want to include one', - 'de_DE': 'Gib den Hinweis für dieses Level an, oder lass es leer wenn du keinen hinzufügen willst', - 'zh_CN': '请输入关卡提示,如果没有请留空', - 'zh_TW': '請輸入關卡提示,或者故意留空', - 'es_AR': 'Ingresá una pista para este nivel, o dejalo en blanco si no querés incluir ninguna', - 'es_MX': 'Ingresa una pista para este nivel, o déjalo en blanco si no quieres incluir ninguna.', - 'es_ES': 'Ingresa una pista para este nivel, o déjalo en blanco si no quieres incluir ninguna.', - 'pt_BR': 'Colocque uma dica para este nível, ou deixe em branco se não quiser incluir', - 'gl' : 'Ingresa unha pista para este nivel, ou déixao en branco se non a queres incluír.', - 'fr_FR': 'Entrez l\'indice pour ce niveau, ou laissez-le vide pour ne pas l\'inclure', - 'ro': "Adaugă un indiciu pentru acest nivel dacă dorești", - 'ru_RU': 'Введи подсказку для уровня, если хочешь.', - 'uk': 'Додай підказку для рівня, якщо хочеш', - 'ko': '이 레벨을 위한 힌트를 입력합니다(힌트를 입력하지 않으려면 비워둡니다).', - 'vi': 'Thêm một gợi ý cho cấp độ này, hoặc cứ để trống nếu bạn không muốn thêm', - 'sl_SI': 'Vnesi namig za to stopnjo ali pusti to prazno, če ga nočeš dodati', - 'pl' : 'Wpisz wskazówkę dotyczącą tego poziomu lub pozostaw ją pustą, jeśli nie chcesz jej uwzględniać.', - 'it_IT': - "Inserisci un suggerimento per questo livello, oppure lascialo vuoto se non ne vuoi aggiungere", - 'ta_IN': 'இந்த நிலைக்கான குறிப்பை உள்ளிடவும், குறிப்பு தேவை இல்லை என்றால் இதனை காலியாக விடுவும்', - 'tr_TR': 'Bu seviye için ipucu girin, ya da bir ipucu eklemek istemiyorsanız burayı boş bırakın', - }, - /////////////////////////////////////////////////////////////////////////// - 'prompt-name': { - '__desc__': 'prompt for level name', - 'en_US': 'Enter the name for the level', - 'de_DE': 'Gib den Namen für dieses Level an', - 'zh_CN': '请输入关卡名称', - 'zh_TW': '請輸入關卡名稱', - 'es_AR': 'Ingresá el nombre del nivel', - 'es_MX': 'Ingresa el nombre del nivel', - 'es_ES': 'Ingresa el nombre del nivel.', - 'pt_BR': 'Coloque o nome do nível', - 'gl' : 'Coloque o nome do nivel', - 'fr_FR': 'Entrez le nom pour ce niveau', - 'ro':"Introdu numele pentru acest nivel", - 'ru_RU': 'Введи название уровня', - 'uk': 'Введи назву рівня', - 'ko': '레벨의 이름을 입력하세요.', - 'vi': 'Nhập tên cho cấp độ này', - 'sl_SI': 'Vnesi ime za stopnjo', - 'pl' : 'Wprowadź nazwę poziomu', - 'it_IT': "Inserisci il nome per questo livello", - 'ta_IN': 'நிலைக்கான பெயரை உள்ளிடவும்', - 'tr_TR': 'Seviye için adı girin', - }, - /////////////////////////////////////////////////////////////////////////// - 'solution-empty': { - '__desc__': 'If you define a solution without any commands, aka a level that is solved without doing anything', - 'en_US': 'Your solution is empty!! Something is amiss', - 'de_DE': 'Deine Auflösung ist leer! Hier fehlt etwas', - 'zh_CN': '你的解法是空的!! 可能是程序出错了', - 'zh_TW': '您的解法是空的!這一定是哪裡出錯了', - 'es_AR': '¡Tu solución está vacía! Algo hay que hacer', - 'es_MX': '¡Tu solución está vacía! Algo hay que hacer', - 'es_ES': '¡Tu solución está vacía! Algo hay que hacer.', - 'pt_BR': 'Sua solução está vazia! O aprendiz deveria ter que fazer alguma coisa', - 'gl' : '¡Su solución está vacía! Algo haberá que facer.', - 'fr_FR': 'Votre solution est vide !! Quelque chose ne tourne pas rond', - 'ro': "Soluția ta este goală!! Ceva nu este în regulă", - 'ru_RU': 'Решение не указано! Так не годится!', - 'uk': 'Розв’язок порожній!! Щось не так', - 'ko': '정답이 비어있습니다. 어딘가 잘못되었습니다.', - 'vi': 'Đáp án bị bỏ trống!! Có gì thiếu rồi', - 'sl_SI': 'Tvoja rešitev je prazna!! Nekaj ni vredu.', - 'pl' : 'Twoje rozwiązanie jest puste!! Coś musi zostać zrobione.', - 'it_IT': "C'è qualcosa che non va. La soluzione è vuota!! ", - 'ta_IN': 'உங்கள் தீர்வு காலியாக உள்ளது!! ஏதோ தவறாக இருக்கிறது', - 'tr_TR': 'Çözümünüz boş!! Bir şeyler eksik', - }, - /////////////////////////////////////////////////////////////////////////// - 'define-start-warning': { - '__desc__': 'When you define the start point again, it overwrites the solution and goal so we add a warning', - 'en_US': 'Defining start point... solution and goal will be overwritten if they were defined earlier', - 'de_DE': 'Lege Startpunkt fest ... Auflösung und Ziel werden überschrieben, falls sie schon festgelegt waren', - 'zh_CN': '定义开始点... 解决方法和目标会被新的替代', - 'zh_TW': '正在定義起始點...先前定義的解法和目標會被覆蓋掉', - 'es_AR': 'Estableciendo el punto de inicio... La solución y el objetivo serán sobreescritos si ya habían sido definidos', - 'es_MX': 'Estableciendo el punto de inicio... La solución y el objetivo serán sobreescritos si ya habían sido definidos', - 'es_ES': 'Estableciendo el punto de inicio... La solución y el objetivo serán sobreescritos si ya habían sido definidos.', - 'pt_BR': 'Esbelecendo o ponto de início... a solução e o objetivo serão sobrescritos caso já existirem', - 'gl' : 'Establecendo o punto de inicio... A solución e o obxectivo serán sobreescritos se xa foron definidos.', - 'fr_FR': 'Redéfinition du point de départ… la solution et la cible seront écrasés s\'ils ont déjà été définis', - 'ro': 'Stabilirea punctului de start... soluția și obiectivul vor fi suprascrise dacă au fost definite anterior', - 'ru_RU': 'Устанавливаю стартовую точку... Решение и итоговое состояние будут стёрты, если они указаны ранее', - 'uk': 'Встановлюю стартову точку... розв’язок та ціль будуть переписані якщо вони були задані раніше', - 'ko': '시작 지점 정의... 해답과 목표가 이전에 정의된 경우 덮어쓰기 됩니다.', - 'vi': 'Đang xác định điểm bắt đầu... Các giải pháp và mục tiêu sẽ được thay thế nếu đã được chỉ định từ trước', - 'sl_SI': 'Določanje začetne točke ... rešitev in cilj bosta povožena, če sta bila prej že podana', - 'pl' : 'Ustawianie punktu startowego... Rozwiązanie i cel zostaną nadpisane, jeśli zostały wcześniej zdefiniowane', - 'it_IT': - "Definendo punto di partenza... soluzione e obiettivo saranno sovrascritti se erano già stati definiti.", - 'ta_IN': 'தொடக்கத்தை வரையறுத்தல்... தீர்வு மற்றும் குறிக்கோள் முன்னரே வரையறுக்கப்பட்டிருந்தால் மேலெழுதப்படும்', - 'tr_TR': 'Başlangıç noktası belirleniyor... daha önce tanımlanan çözüm ve hedef üzerine yazılacaktır', - }, - /////////////////////////////////////////////////////////////////////////// - 'help-vague-level': { - '__desc__': 'When you are in a level and you say help, its vague and you need to specify', - 'en_US': 'You are in a level, so multiple forms of help are available. Please select either "help level" to learn more about this lesson, "help general" for using Learn GitBranching, or "objective" to learn about how to solve the level.', - 'de_DE': 'Du befindest dich in einem Level, daher gibt es verschiedene Hilfen. Gib "help level" ein um mehr über dieses Level zu erfahren, "help general" um zu sehen wie Learn Git Branching bedient wird, oder "objective" um das Ziel dieses Levels zu erfahren.', - 'zh_CN': '您正在关卡中,这里有多种形式的帮助,请选择 "help level" (关卡帮助)或 "help general" (一般帮助)', - 'zh_TW': '您正在進行關卡中,這裡有多種不同型式的幫助,請選擇 "help level" 來了解這個關卡,或者是選擇 "help general" 來學習如何使用 Learn GitBranching,或者是選擇 "objective" 來學習如何解決這個關卡', - 'es_AR': 'Estás en un nivel, por lo que hay varios tipos de ayuda. Por favor elegí entre "help level" para aprender algo más sobre esta lección, "help general" para ayuda sobre el uso de Learn GitBranching, o "objective" para aprender a resolver este nivel.', - 'es_MX': 'Estás en un nivel, por lo que hay varios tipos de ayuda. Por favor elige entre "help level" para aprender algo más sobre ésta lección, "help general" para ayuda sobre el uso de Learn GitBranching, o "bjective" para aprender a resolver este nivel.', - 'es_ES': 'Estás en un nivel, por lo que hay varios tipos de ayuda. Por favor elige "help level" para aprender más sobre esta lección, "help general" para ayuda sobre el uso de Learn GitBranching, o "objective" para aprender a resolver este nivel.', - 'pt_BR': 'Você está em um nível, então há vários tipos de ajuda. Selecione "help level" para aprender mais sobre esta lição, "help general" para aprender a usar o Learn GitBranching, ou "objective" ver como resolver o nível.', - 'gl' : 'Estás nun nivel, entón hai varios tipos de axuda. Selecione "help level" para aprender máis sobre esta lección, "gelp general" para aprender a usar o Learn Git Branching, ou "objective" para ver como resolver o nivel.', - 'fr_FR': 'Vous êtes dans un niveau, donc plusieurs formes d\'aide sont disponibles. Merci de sélectionner soit "help level" pour en apprendre plus sur cette leçon, "help general" pour l\'utilisation de Learn GitBranching, ou "objective" pour apprendre comment résoudre le niveau', - 'ro': 'Te afli într-un nivel, deci mai multe forme de ajutor sunt disponibile. Te rog să alegi fie "help level" pentru a învăța mai multe despre această lecție, "help general" pentru a învăța cum să folosești Learn GitBranching, sau "objective" pentru a învăța cum să rezolvi acest nivel.', - 'ru_RU': 'При прохождении уровня доступны несколько видов помощи. Определить что нужно: "help level" чтобы получить информацию об этом уровне, "help general" для того, чтобы узнать о игре в целом или "objective" чтобы узнать что надо сделать в этом уровне.', - 'uk': 'При проходженні рівня доступні декілька різновидів допомоги. Виберіть або "help level" щоб взнати більше про цей рівень, чи "help general" щоб взнати більше про Learn Git Branching, чи "objective" щоб дізнатись більше про проходження цього рівня', - 'ko': '현재 레벨에서, 여러가지 도움말을 참고할 수 있습니다. 레슨에 대해 자세히 알아보려면 "help level", LearnGitBranching을 사용하려면 "help general", 레벨 해결 방법에 대해 알아보려면 "objective"를 선택하세요.', - 'vi': 'Bạn đang ở trong một cấp độ, nên sẽ có nhiều hỗ trợ. Vui lòng dùng "help level" để biết thêm về bài học này, "help general" để sử dụng HọcNhánhGit, hoặc "objective" để biết cách giải quyết bài tập.', - 'sl_SI': 'Si v stopnji, zato so na voljo različne pomoči. Prosim izberi "help level" za več informacij o tej lekciji, "help general" za splošna navodila ali "objective" da izveš kako rešiti to stopnjo', - 'pl' : 'Jesteś na poziomie, więc istnieje kilka rodzajów pomocy. Wpisz "help level", aby dowiedzieć się więcej o tej lekcji, wpisz "help general", aby uzyskać pomoc dotyczącą korzystania z nauki GitBranching, lub wpisz "objective", aby dowiedzieć się, jak rozwiązać ten poziom.', - 'it_IT': - 'Sei dentro a un livello, hai a disposizione vari tipi di aiuto. Digita "help level" per saperne di più su questa lezione, "help general" per come usare Learn GitBranching, o "objective" per capire come risolvere il livello.', - 'ta_IN': 'நீங்கள் ஒரு நிலையில் உள்ளீர்கள், எனவே பல வகையான உதவி பெற இயலும். இந்த பாடத்தைப் பற்றி மேலும் அறிய "நிலைக்கான உதவி" என்பதைத் தேர்ந்தெடுக்கவும், Learn GitBranching பற்றி மேலும் அறிய "பொது உதவி" பயன்படுத்துக, அல்லது இந்த நிலையை எவ்வாறு தீர்ப்பது என்பது பற்றி அறிய "நோக்கம்" தேர்ந்தெடுக்கவும்.', - 'tr_TR': 'Bir seviyedesiniz, bu nedenle birden fazla yardım seçeneği mevcuttur. Bu derse dair daha fazla bilgi almak için "help level", Learn GitBranching kullanımını öğrenmek için "help general" veya seviyeyi nasıl çözeceğiniz hakkında bilgi almak için "objective" seçeneğini belirleyebilirsiniz.' - }, - /////////////////////////////////////////////////////////////////////////// - 'help-vague-builder': { - '__desc__': 'When you are in a level builder, the help command is vague so you need to specify what you mean', - 'en_US': 'You are in a level builder, so multiple forms of help are available. Please select either "help general" or "help builder"', - 'de_DE': 'Du befindest dich im Level-Editor, daher gibt es verschiedene Hilfen. Gib bitte "help general" oder "help builder" ein', - 'zh_CN': '您正在进行关卡构建中,这里有多种形式的帮助,请选择 "help general" (一般帮助)或 "help builder" (关卡构建帮助)', - 'zh_TW': '您正在進行關卡構建中,這裡有多種不同型式的幫助,請選擇 "help general" (一般幫助)或 "help builder" (製造關卡的幫助)', - 'es_AR': 'Estás en el constructor de niveles, por lo que hay varios tipos de ayuda. Elegí entre "help general" para ayuda sobre Learn GitBranching y "help builder" para ayuda sobre el constructor de niveles', - 'es_MX': 'Estás en el constructor de niveles, por lo que hay varios tipos de ayuda. Elige "help general" para ayuda sobre Learn GitBranching y "help builder" para ayuda sobre el constructor de niveles', - 'es_ES': 'Estás en un constructor de niveles, por lo que hay varios tipos de ayuda. Elige "help general" para ayuda sobre Learn GitBranching o "help builder" para ayuda sobre el constructor de niveles', - 'pt_BR': 'Você está no construtor de níveis, então há vários tipos de ajuda. Selecione "help general" ou "help builder"', - 'gl' : 'Estás no constructor de niveis, polo que hai varios tipos de axuda. Elixe "help general" ou "help builder"', - 'fr_FR': 'Vous êtes dans l\'éditeur de niveaux, donc plusieurs formes d\'aide sont disponibles. Merci de sélectionner soit "help general" soit "help builder"', - 'ro': 'Ești într-un constructor de nivel, deci mai multe forme de ajutor sunt disponibile. Te rog să alegi fie "help general" pentru a învăța cum să folosești Learn GitBranching, fie "help builder" pentru a învăța cum să folosești constructorul de nivel.', - 'ru_RU': 'При создании уровней доступны несколько видов помощи. Выбери между "help general" и "help builder"', - 'uk': 'При створенні рівня доступні декілька різновидів допомоги. Виберіть або "help general", чи "help builder"', - 'ko': '레벨 생성기를 사용 중이므로 여러가지 도움을 빌릴수 있습니다. "help general" 또는 "help builder"를 선택해주세요.', - 'vi': 'Bạn đang tạo một cấp độ, nên sẽ có nhiều trợ giúp có sẵn. Vui lòng chọn "help general" hoặc "help builder"', - 'sl_SI': 'Si v graditelju stopenj, zato so na voljo različne pomoči. Prosim izberi "help general" ali "help builder"', - 'pl' : 'Znajdujesz się w kreatorze poziomów. Dostępnych jest tu kilka rodzajów pomocy. Wpisz "help general", aby uzyskać pomoc dotyczącą nauki GitBranching-u, lub wpisz "help builder", aby uzyskać pomoc dotyczącą konstruktora poziomów', - 'it_IT': - 'Sei in un generatore di livelli, hai a disposizione vari tipi di aiuto. Digita "help general" o "help builder"', - 'ta_IN': 'நீங்கள் ஒரு நிலை கட்டமைப்பானில் உள்ளீர்கள், எனவே பல வகையான உதவி பெற இயலும். தயவுசெய்து "பொது உதவி" அல்லது "கட்டமைப்பான் உதவி" என்பதைத் தேர்ந்தெடுக்கவும்', - 'tr_TR': 'Bir seviye oluşturucudasınız, bu nedenle birden fazla yardım seçeneği mevcuttur. Lütfen "help general" veya "help builder" seçeneklerinden birini seçin.' - }, - /////////////////////////////////////////////////////////////////////////// - 'show-goal-button': { - '__desc__': 'button label to show goal', - 'en_US': 'Show Goal', - 'de_DE': 'Ziel anzeigen', - 'zh_TW': '顯示目標', - 'zh_CN': '显示目标', - 'fr_FR': 'Afficher la cible', - 'pt_BR': 'Mostrar objetivo', - 'gl' : 'Amosar obxectivo', - 'es_AR': 'Mostrar objetivo', - 'es_MX': 'Mostrar objetivo', - 'es_ES': 'Mostrar objetivo', - 'ja' : 'ゴールを表示', - 'ro': "Afișează obiectivul", - 'ru_RU': 'Цель уровня', - 'uk': 'Ціль рівня', - 'ko': '목표 보기', - 'vi': 'Hiển thị mục tiêu', - 'sl_SI': 'Prikaži Cilj', - 'pl' : 'Pokaż cel', - 'it_IT': "Mostra obiettivo", - 'ta_IN': 'இலக்கைக் காட்டு', - 'tr_TR': 'Hedefi Göster', - }, - /////////////////////////////////////////////////////////////////////////// - 'hide-goal-button': { - '__desc__': 'button label to hide goal', - 'en_US': 'Hide Goal', - 'de_DE': 'Ziel verstecken', - 'fr_FR': 'Cacher la cible', - 'zh_TW': '隱藏目標', - 'zh_CN': '隐藏目标', - 'pt_BR': 'Ocultar objetivo', - 'gl' : 'Ocultar obxectivo', - 'es_AR': 'Ocultar objetivo', - 'es_MX': 'Ocultar objetivo', - 'es_ES': 'Ocultar objetivo', - 'ja' : 'ゴールを隠す', - 'ro': "Ascunde obiectivul", - 'ru_RU': 'Спрятать цель', - 'uk': 'Сховати ціль', - 'ko': '목표 숨기기', - 'vi': 'Ẩn mục tiêu', - 'sl_SI': 'Skrij Cilj', - 'pl' : 'Ukryj cel', - 'it_IT': "Nascondi obiettivo", - 'ta_IN': 'இலக்கை மறை', - 'tr_TR': 'Hedefi Gizle', - }, - /////////////////////////////////////////////////////////////////////////// - 'objective-button': { - '__desc__': 'button label to show objective', - 'en_US': 'Instructions', - 'de_DE': 'Ziel', - 'zh_TW': '提示', - 'zh_CN': '提示', - 'es_ES': 'Objetivo', - 'es_MX': 'Objetivo', - 'fr_FR': 'Instructions', - 'gl' : 'Obxectivo', - 'ro': "Instrucțiuni", - 'ru_RU': 'Задача', - 'uk': 'Задача', - 'ko': '목적', - 'vi': 'Chỉ dẫn', - 'sl_SI': 'Navodila', - 'pl' : 'Instrukcje', - 'it_IT': "Istruzioni", - 'pt_BR': 'Instruções', - 'ta_IN': 'வழிமுறைகள்', - 'tr_TR': 'Talimatlar', - }, - /////////////////////////////////////////////////////////////////////////// - 'git-demonstration-title': { - '__desc__': 'title of git demonstration window', - 'en_US': 'Git Demonstration', - 'de_DE': 'Git Demonstration', - 'zh_TW': 'Git示範', - 'zh_CN': 'Git示范', - 'es_ES': 'Demostración de Git', - 'es_MX': 'Demostración de Git', - 'fr_FR': 'Démonstration de Git', - 'gl' : 'Demostración de Git', - 'ro': "Demonstrație Git", - 'ru_RU': 'Git демо', - 'uk' : 'Git демо', - 'ko' : 'Git 데모', - 'vi' : 'Trình diễn Git', - 'sl_SI': 'Git Predstavitev', - 'pl' : 'Demo GIT', - 'pt_BR': 'Demonstração Git', - 'it_IT': "Dimostrazione Git", - 'ta_IN': 'கிட் செயல் விளக்கம்', - 'tr_TR': 'Git Gösterimi', - }, - /////////////////////////////////////////////////////////////////////////// - 'goal-to-reach': { - '__desc__': 'title of window that shoes the goal tree to reach', - 'en_US': 'Goal To Reach', - 'de_DE': 'Zu erreichendes Ziel', - 'zh_CN': '目标', - 'zh_TW': '目標', - 'es_AR': 'Objetivo a cumplir', - 'es_MX': 'Objetivo a cumplir', - 'es_ES': 'Objetivo a cumplir', - 'pt_BR': 'Objetivo a cumprir', - 'gl' : 'Obxectivo a cumprir', - 'fr_FR': 'Cible à atteindre', - 'ja' : '到達目標', - 'ro': "Obiectiv de atins", - 'ru_RU': 'Цель уровня', - 'uk': 'Ціль рівня', - 'ko': '목표', - 'vi': 'Mục tiêu cần đạt', - 'sl_SI': 'Končni Cilj', - 'pl': 'Cel do osiągnięcia', - 'it_IT': "Obiettivo da raggiungere", - 'ta_IN': 'அடைய வேண்டிய இலக்கு', - 'tr_TR': 'Ulaşılması Gereken Hedef', - }, - /////////////////////////////////////////////////////////////////////////// - 'goal-only-main': { - '__desc__': 'the helper message for the window that shows the goal tree when the goal will only be compared using the main branch', - 'en_US': 'Note: Only the main branch will be checked in this level. The other branches are simply for reference (shown as dashed labels below). As always, you can hide this dialog with "hide goal"', - 'fr_FR': 'Note: Dans ce niveau on ne doit faire de git checkout que sur la branche main. Les autres branches représentées ici (entourées d\'un cadre en tirets) doivent être utilisées uniquement comme références. Comme toujours, vous pouvez cacher cette fenêtre avec "hide goal"', - 'de_DE': 'Hinweis: In diesem Level wird nur der Branch main geprüft. Die anderen Branches dienen nur als Vergleichsbasis (als gestrichelte Bezeichner dargestellt). Wie immer kannst du diese Meldung mit "hide goal" ausblenden', - 'es_AR': 'Nota: Sólo la rama main va a ser chequeada en este nivel. Las otras ramas sólo son para referencia. Como siempre, podés ocultar este mensaje con "hide goal"', - 'es_MX': 'Nota: Sólo la rama main va a ser inspeccionada en este nivel. Las otras ramas sólo son para referencia (etiquetados abajo con guión). Como siempre, puedes ocultar éste mensaje con "hide goal"', - 'es_ES': 'Nota: Sólo la rama main va a ser inspeccionado en este nivel. Las otras ramas sólo son para referencia (etiquetados abajo con guion). Siempre puedes ocultar este mensaje con "hide goal."', - 'pt_BR': 'Nota: Apenas o ramo main será verificado neste nível. Os outros ramos (dentro das caixas clareadas) são somente para referência. Como sempre, você pode ocultar esta janela com "hide goal"', - 'gl': 'Nota: Só a rama main será verificada neste nivel. As outras ramas (dentro das caixas clareadas) son soamente de referencia. Coma sempre, podes ocultar está ventá con "hide goal"', - 'zh_CN': '注意:本关卡中,只检查 main 分支,其他分支只是用作 reference 存在(以虚线标签表示)。照常,你可以用 “hide goal” 来隐藏此窗口。', - 'zh_TW': '在這個關卡中,只有 main branch 會被檢查,別的 branch 只是用來做為 reference (下面用虛線符號表示)。一如往常,你可以利用 "hide goal" 來隱藏這個對話視窗', - 'ja': 'Note: mainブランチだけをこのlevelではチェックします。その他のブランチ(以下では、破線で示されています)に関しては、参照のためにあります。また、いつでもこのウィンドウは"hide goal"と打つかクリックで閉じれます', - 'ro': 'Notă: Doar ramura main va fi verificată în acest nivel. Celelalte ramuri sunt doar pentru referință (afișate ca etichete întrerupte mai jos). Ca de obicei, poți ascunde acest dialog cu "hide goal"', - 'ru_RU': 'Важно: В этом уровне проверяется только ветка main. Остальные ветки просто для наглядности. Как обычно, можно скрыть это сообщение при помощи "hide goal"', - 'uk': 'Важливо: В цьому рівні буде перевірятися тільки гілка main. Решта гілок тільки для наглядності (показані пунктиром нижче). Як завжди, можна сховати цей діалог за допомогою "hide goal"', - 'ko': 'Note: 이 레벨에서는 메인 브랜치만 검사될 것입니다. 다른 브랜치들은 단순히 참고용입니다(아래 점선 레이블로 표시됨). 언제나처럼 "hide goal"을 사용하여 이 창을 숨길 수 있습니다.', - 'vi': 'Chú ý: Ở cấp độ này chỉ nhánh main bị kiểm tra. Các nhánh khác chỉ dùng để tham chiếu (có dấu - ở nhãn). Như thường lệ, bạn có thể ẩn mục tiêu bằng "hide goal"', - 'sl_SI': 'Opomba: Samo main branch bo preverjen v tej stopnji. Ostali branchi so zgolj za referenco (prikazani kot črtaste oznake spodaj). Kot ponavadi, lahko skriješ dialog z "hide goal"', - 'pl': ' Uwaga: Na tym poziomie będzie sprawdzana tylko poprawność gałęzi main. Pozostałe gałęzie są tylko odniesieniem (pokazane jako przerywane etykiety poniżej). Jak zawsze, możesz ukryć to okno klikając "Ukryj cel".', - 'it_IT': - 'Nota: In questo livello sarà selezionato solo il ramo main. Gli altri rami ci sono solo come riferimento (mostrati come etichette tratteggiate). Come sempre, puoi nascondere questa finestra con "hide goal"', - 'ta_IN': 'குறிப்பு: இந்த மட்டத்தில் பிரதான கிளை மட்டுமே சரிபார்க்கப்படும். மற்ற கிளைகள் வெறுமனே விளக்க குறிப்புக்காக மட்டுமே (கீழே விடுபட்ட மேற்கோள்களாக காட்டப்பட்டுள்ளது). எப்பொழுதும் போல், "இலக்கை மறை" மூலம் இந்த சாளரத்தை மறைக்கலாம்', - 'tr_TR': 'Not: Bu seviyede yalnızca ana dal kontrol edilecektir. Diğer dallar yalnızca referans amaçlıdır (aşağıda kesikli etiketler olarak gösterilmektedir). Her zamanki gibi, bu diyaloğu \"hedefi gizle\" ile gizleyebilirsiniz.', - }, - /////////////////////////////////////////////////////////////////////////// - 'hide-goal': { - '__desc__': 'the helper message for the window that shows the goal tree', - 'en_US': 'You can hide this window with "hide goal"', - 'de_DE': 'Du kannst diese Meldung mit "hide goal" ausblenden', - 'zh_CN': '你可以通过 "hide goal" 命令关闭这个窗口', - 'zh_TW': '你可以透過 "hide goal" 關閉這個視窗', - 'es_AR': 'Podés ocultar esta ventana con "hide goal"', - 'es_MX': 'Puedes ocultar esta ventana con "hide goal"', - 'es_ES': 'Puedes ocultar esta ventana con "hide goal."', - 'pt_BR': 'Você pode ocultar esta janela com "hide goal"', - 'gl' : 'Podes ocultar esta ventá con "hide goal"', - 'fr_FR': 'Vous pouvez masquer cette fenêtre avec "hide goal"', - 'ja' : 'このウィンドウは"hide goal"と打つかクリックで閉じれます', - 'ro': 'Poți ascunde această fereastră cu "hide goal"', - 'ru_RU': 'Можно скрыть это окно при помощи "hide goal"', - 'uk': 'Можна сховати це вікно за допомогою "hide goal"', - 'ko': '"hide goal"을 사용하여 이 창을 숨길 수 있습니다.', - 'vi': 'Bạn có thể ẩn cửa sổ này với "hide goal"', - 'sl_SI': 'To okno lahko skriješ z "hide goal"', - 'pl': 'Możesz ukryć to okno za pomocą opcji "ukryj cel"', - 'it_IT': 'Puoi nascondere questa finestra con "hide goal"', - 'ta_IN': 'இந்த சாளரத்தை "இலக்கை மறை" மூலம் மறைக்கலாம்', - 'tr_TR': 'Bu pencereyi \"hedefi gizle\" ile gizleyebilirsiniz', - }, - /////////////////////////////////////////////////////////////////////////// - 'hide-start': { - '__desc__': 'The helper message for the window that shows the start tree for a level', - 'en_US': 'You can hide this window with "hide start"', - 'de_DE': 'Du kannst diese Meldung mit "hide start" ausblenden', - 'zh_CN': '你可以通过 "hide start" 命令关闭这个窗口', - 'zh_TW': '你可以透過 "hide start" 關閉這個視窗', - 'es_AR': 'Podés ocultar esta ventana con "hide start"', - 'es_MX': 'Puedes ocultar ésta ventana con "hide start"', - 'es_ES': 'Puedes ocultar esta ventana con "hide start."', - 'pt_BR': 'Você pode ocultar esta janela com "hide start"', - 'gl' : 'Podes ocultar esta ventá con "hide start"', - 'fr_FR': 'Vous pouvez masquer cette fenêtre avec "hide start"', - 'ja' : 'このウィンドウは"hide start"かクリックで閉じれます', - 'ro': 'Poți ascunde această fereastră cu "hide start"', - 'ru_RU': 'Можно скрыть это окно при помощи "hide start"', - 'uk': 'Можна сховати це вікно за допомогою "hide start"', - 'ko': '"hide start"를 사용하여 이 창을 숨길 수 있습니다.', - 'vi': 'Bạn có thể ẩn cửa sổ này với "hide start"', - 'sl_SI': 'To okno lahko skriješ z "hide start"', - 'pl': 'Możesz ukryć to okno za pomocą opcji "ukryj start"', - 'it_IT': 'Puoi nascondere questa finestra con "hide start"', - 'ta_IN': 'இந்த சாளரத்தை "தொடக்கத்தை மறை" மூலம் மறைக்கலாம்', - 'tr_TR': 'Bu pencereyi \"başlangıcı gizle\" ile gizleyebilirsiniz.', - }, - /////////////////////////////////////////////////////////////////////////// - 'level-builder': { - '__desc__': 'The name for the environment where you build levels', - 'en_US': 'Level Builder', - 'de_DE': 'Level-Editor', - 'zh_CN': '关卡生成器', - 'zh_TW': '關卡產生器', - 'es_AR': 'Constructor de niveles', - 'es_MX': 'Constructor de niveles', - 'es_ES': 'Constructor de niveles', - 'pt_BR': 'Construtor de níveis', - 'gl' : 'Constructor de nivéis', - 'fr_FR': 'Éditeur de niveaux', - 'ja' : 'Levelエディタ', - 'ro': "Constructor de nivel", - 'ru_RU': 'Редактор уровней', - 'uk': 'Редактор рівнів', - 'ko': '레벨 생성기', - 'vi': 'Trình tạo cấp độ', - 'sl_SI': 'Graditelj Stopenj', - 'pl': 'Twórca poziomu', - 'it_IT': "Generatore di livelli", - 'ta_IN': 'நிலை கட்டமைப்பான்', - 'en_US': 'Seviye Yapıcı', - }, - /////////////////////////////////////////////////////////////////////////// - 'no-start-dialog': { - '__desc__': 'when the user tries to open a start dialog for a level that does not have one', - 'en_US': 'There is no start dialog to show for this level!', - 'de_DE': 'Es gibt keinen Einführungs-Dialog für dieses Level!', - 'zh_CN': '这个关卡没有介绍!', - 'zh_TW': '這關沒有介紹!', - 'es_AR': '¡No hay mensaje de inicio para este nivel!', - 'es_MX': '¡No hay mensaje de inicio para este nivel!', - 'es_ES': '¡No hay mensaje de inicio para este nivel!', - 'pt_BR': 'Não há mensagem de início para este nível!', - 'gl' : '¡Non hai mensaxe de inicio para este nivel!', - 'fr_FR': 'Il n\'y a aucun dialogue de départ à afficher pour ce niveau !', - 'ja' : 'このLevelにはスタートダイアログが存在しません', - 'ro': "Nu există dialog de start pentru acest nivel!", - 'ru_RU': 'Нет стартового сообщение для уровня!', - 'uk': 'Немає початкового діалогу для цього рівня!', - 'ko': '이 레벨에 표시할 시작 대화창이 없습니다.', - 'vi': 'Không có hộp thoại giới thiệu cho cấp độ này!', - 'sl_SI': 'Ni začetnega dialoga za prikaz te stopnje!', - 'pl': 'Dla tego poziomu nie ma okna startowego do wyświetlenia!', - 'it_it': "Non esiste una finestra di partenza per questo livello!", - 'ta_IN': 'இந்த நிலை பற்றி விளக்கிகாட்ட தொடக்க உரையாடல் எதுவும் இல்லை', - 'tr_TR': 'Bu seviye için gösterilecek bir başlangıç penceresi yok!', - }, - /////////////////////////////////////////////////////////////////////////// - 'no-hint': { - '__desc__': 'when no hint is available for a level', - 'en_US': "Hmm, there doesn't seem to be a hint for this level :-/", - 'de_DE': "Hm, es gibt anscheinend keinen Hinweis für dieses Level :-/", - 'zh_CN': "呃……,这关好像没有提示 :-/", - 'zh_TW': "嗯‧‧‧這關沒有提示 :-/", - 'es_AR': 'Mmm... Pareciera no haber pistas para este nivel :-/', - 'es_MX': 'Mmm... Parece que no hay pistas para Este nivel. :-/', - 'es_ES': 'Mmm... Parece que no hay pistas para este nivel. :-/', - 'pt_BR': 'Hmm, não existe nenhuma pista para este nível :-/', - 'gl' : 'Hmm, non existe ningunha pista para este nivel :-/', - 'fr_FR': 'Hum, il ne semble pas y avoir d\'indice pour ce niveau :-/', - 'ja' : 'あらら、このLevelでは、残念ながらヒントが存在しません :-/', - 'ro': "Hmm, nu pare să existe un indiciu pentru acest nivel :-/", - 'ru_RU': "Милый мой, хороший, догадайся сам :-/ Подсказка не создана...", - 'uk': 'Хм, схоже для цього рівня немає підказки :-/', - 'ko': '흠, 이 레벨을 위한 힌트가 없는 것 같습니다. :-/', - 'vi': 'Hmmm, có vẻ cấp độ này không có gợi ý rồi :-/', - 'sl_SI': 'Hmm, izgleda da ni namiga za to stopnjo :-/', - 'pl': 'Hmm, wydaje się, że nie ma podpowiedzi dla tego poziomu :-/', - 'it_IT': "Mmh, sembra non ci sia un suggerimento per questo livello :-/", - 'ta_IN': 'ஹ்ம், இந்த நிலைக்கு ஒரு குறிப்பு எதுவும் இருப்பதாகத் தெரியவில்லை :-/', - 'tr_TR': 'Hmm, bu seviye için bir ipucu görünmüyor :-/', - }, - /////////////////////////////////////////////////////////////////////////// - 'error-untranslated-key': { - '__desc__': 'This error happens when we are trying to translate a specific key and the locale version is mission', - 'en_US': 'The translation for {key} does not exist yet :( Please hop on github and offer up a translation!', - 'de_DE': 'Die Übersetzung für {key} existiert noch nicht :( Falls du eine hast, dann teile sie mir bitte auf GitHub mit!', - 'zh_CN': '还没翻译 {key} :( 请在 GitHub 上贡献您的翻译!', - 'zh_TW': '還沒翻譯 {key} :( 請在 GitHub 上貢獻您的翻譯!', - 'es_AR': 'Aún no hay traducción para {key} :( ¡Metete en GitHub y sugerí una! :)', - 'es_MX': 'Aún no existe una traducción para {key}. :( ¡Métete en GitHub y sugiere una! :)', - 'es_ES': 'Aún no hay traducción para {key}. :( ¡Métete en GitHub y sugiere una! :)', - 'pt_BR': 'Não existe tradução para {key} :( Pule no GitHub e sugira uma! :)', - 'gl' : 'Non existe tradución para {key} :( Axúdanos en GitHub e suxire unha! :)', - 'fr_FR': 'La traduction pour {key} n\'existe pas encore :( Venez sur GitHub pour en offrir une !', - 'ja' : '{key}の翻訳がまだ存在しません :( GitHubでの、翻訳の協力をお願いします m(_)m', - 'ro': "Traducerea pentru {key} nu există încă :( Te rog să vii pe GitHub și să oferi o traducere!", - 'ru_RU': 'Перевода для {key} не создано :( Пожалуйста, предложи перевод на GitHub', - 'uk': 'Немає перекладу для {key} :( Будь-ласка, запропонуй переклад на GitHub', - 'ko': '{key}를 위한 번역은 아직 존재하지 않습니다 :( github로 오셔서 번역을 제공해주세요!', - 'vi': 'Bản dịch cho {key} không có rồi :( Nếu có thể thì hãy lên dự án của chúng tôi ở GitHub để cung cấp bản dịch!', - 'sl_SI': 'Prevod za {key} še ne obstaja :( Skoči na github in dodaj prevod!', - 'pl': 'Tłumaczenie dla klucza "{key}" jeszcze nie istnieje tłumaczenia :( Zapraszam na GitHub, aby pomóc w tłumaczeniu!', - 'it_IT': - "La traduzione per {key} non esiste ancora :( Fai un salto su GitHub e dacci una mano!", - 'ta_IN': '{key}-இன் மொழிபெயர்ப்பு கிடைக்கவில்லை :( github-இன் வழியாக் நீங்களும் மொழி பெயர்க்க உதவலாம்!', - 'tr_TR': '{key} için henüz bir çeviri yok :( Lütfen GitHub\'a gidin ve bir çeviri önerin!', - }, - /////////////////////////////////////////////////////////////////////////// - 'error-untranslated': { - '__desc__': 'The general error when we encounter a dialog that is not translated', - 'en_US': 'This dialog or text is not yet translated in your locale :( Hop on github to aid in translation!', - 'de_DE': 'Dieser Dialog oder Text ist noch nicht in deiner Sprache verfügbar. :( Schau auf GitHub vorbei um bei der Übersetzung zu helfen!', - 'zh_CN': '这段对话还没有被翻译成您的语言 :( 欢迎在 GitHub 上贡献您的翻译!', - 'zh_TW': '這段對話尚未翻成您的語言 :( 歡迎到 GitHub 貢獻翻譯!', - 'es_AR': 'Este mensaje o texto aún no fue traducido a tu idioma :( ¡Metete en GitHub y ayudanos a traducirlo!', - 'es_MX': 'Este mensaje o texto aún no ha sido traducido en tu idioma. :( ¡Métete en GitHub y ayúdanos a traducirlo!', - 'es_ES': 'Este mensaje o texto aún no fue traducido a tu idioma. :( ¡Métete en GitHub y ayúdanos a traducirlo!', - 'pt_BR': 'Esta mensagem ou texto não foi traduzida para Português :( Ajude-nos a traduzir no GitHub!', - 'gl' : 'Esta mensaxe ou texto non foi traducida ó teu idioma :( Axúdanos a traducir a web en GitHub, é moi doado!', - 'fr_FR': 'Ce message n\'a pas encore été traduit dans votre langue :( Venez sur GitHub aider à la traduction !', - 'ja' : 'このダイアログ、またはテキストの翻訳がまだ存在しません :( GitHubでの、翻訳の協力をお願いします m(_)m', - 'ro': "Această fereastră sau text nu este încă tradus în limba ta :( Te rog să vii pe GitHub și să oferi o traducere!", - 'ru_RU': 'Для этого сообщения нет перевода :( Пожалуйста, предложи перевод на GitHub', - 'uk': 'Для цього повідомлення ще немає перекладу :( Будь-ласка, запропонуй переклад на GitHub', - 'ko': '이 대화창이나 텍스트는 아직 번역되지 않았습니다. :( 번역을 지원하려면 github로 와주세요!', - 'vi': 'Hộp thoại hoặc văn bản này chưa được dịch ra ngôn ngữ của bạn rồi :( Hãy lên GitHub để cung cấp bản dịch!', - 'sl_SI': 'Ta dialog ali tekst še ni preveden za tvoj jezik :( Skoči na github in dodaj prevod!', - 'pl' : 'Kolejne okno dialogowe lub tekst nie zostało jeszcze przetłumaczone na język polski :( Zapraszam na GitHub, aby pomóc w tłumaczeniu!', - 'it_IT': - "Questo messaggio o testo non è ancora stato tradotto nella tua lingua :( Fai un salto su GitHub e dacci una mano!", - 'ta_IN': 'இந்த உரையாடல் அல்லது உரை உங்கள் தமிழில் இன்னும் மொழிபெயர்க்கப்படவில்லை :( github-இன் வழியாக் நீங்களும் மொழி பெயர்க்க உதவலாம்!', - 'tr_TR': 'Bu ileti veya metin henüz dilimize çevrilmemiş :( Çeviriye yardımcı olmak için GitHub\'da bize katılın!' - }, - /////////////////////////////////////////////////////////////////////////// - 'cancel-button': { - '__desc__': 'Cancel button label after completing a level', - 'es_AR': 'Cancelar', - 'en_US': 'Cancel', - 'pt_BR': 'Cancelar', - 'es_MX': 'Cancelar', - 'de_DE': 'Abbrechen', - 'fr_FR': 'Annuler', - 'ro': "Anulare", - 'ru_RU': 'Отмена', - 'zh_TW': '取消', - 'pl' : 'Powrót', - 'it_IT': "Annulla", - 'ta_IN': 'இரத்துசெய்', - 'vi': 'Hủy', - 'tr_TR': 'İptal' - }, - /////////////////////////////////////////////////////////////////////////// - 'confirm-button': { - '__desc__': 'Confirm button label after completing a level', - 'es_AR': 'Confirmar', - 'en_US': 'Confirm', - 'pt_BR': 'Confirmar', - 'es_MX': 'Confirmar', - 'fr_FR': 'Confirmer', - 'ro': "Confirmare", - 'ru_RU': 'Подтвердить', - 'de_DE': 'Bestätigen', - 'zh_TW': '確認', - 'pl' : 'Dalej', - 'it_IT': "Conferma", - 'ta_IN': 'உறுதிப்படுத்தவும்', - 'vi': 'Đồng ý', - 'tr_TR': 'Tamam' - }, - /////////////////////////////////////////////////////////////////////////// - 'level-label': { - '__desc__': 'Label in the top of the left-side menu. Remember to leave some space on the sides', - 'es_AR': 'Nivel', - 'en_US': ' Level ', - 'pt_BR': ' Nível ', - 'es_MX': 'Nivel', - 'fr_FR': ' Niveau ', - 'ru_RU': ' Уровень ', - 'ro': " Nivel ", - 'de_DE': ' Level ', - 'zh_TW': '關卡 ', - 'it_IT': " Livello ", - 'pl' : ' Poziom ', - 'tr_TR': ' Seviye ', - }, - /////////////////////////////////////////////////////////////////////////// - 'command-helper-bar-levels': { - '__desc__': 'Levels command label in the bottom command helper bar.', - 'es_AR': 'Niveles', - 'en_US': 'Levels', - 'pt_BR': 'Níveis', - 'es_MX': 'Niveles', - 'fr_FR': 'Niveaux', - 'ru_RU': 'Уровни', - 'ro': "Nivele", - 'de_DE': 'Levels', - 'zh_TW': '關卡', - 'it_IT': "Livelli", - 'pl' : 'Poziomy', - 'tr_TR': 'Seviyeler', - }, - /////////////////////////////////////////////////////////////////////////// - 'command-helper-bar-solution': { - '__desc__': 'Solution command label in the bottom command helper bar.', - 'es_AR': 'Solución', - 'en_US': 'Solution', - 'es_MX': 'Solución', - 'fr_FR': 'Solution', - 'ro': "Soluție", - 'ru_RU': 'Решение', - 'de_DE': 'Lösung', - 'zh_TW': '解答', - 'it_IT': "Soluzione", - 'pt_BR': 'Solução', - 'pl' : 'Rozwiązanie', - 'tr_TR': 'Çözüm' - }, - /////////////////////////////////////////////////////////////////////////// - 'command-helper-bar-reset': { - '__desc__': 'Reset command label in the bottom command helper bar.', - 'es_AR': 'Reiniciar', - 'en_US': 'Reset', - 'pt_BR': 'Reiniciar', - 'es_MX': 'Reiniciar', - 'fr_FR': 'Réinitialiser', - 'ro': "Reset", - 'ru_RU': 'Заново', - 'de_DE': 'Zurücksetzen', - 'zh_TW': '重新開始', - 'it_IT': "Reset", - 'pl' : 'Wyczyść', - 'tr_TR': 'Sıfırla', - - }, - /////////////////////////////////////////////////////////////////////////// - 'command-helper-bar-undo': { - '__desc__': 'Undo command label in the bottom command helper bar.', - 'es_AR': 'Deshacer', - 'en_US': 'Undo', - 'pt_BR': 'Desfazer', - 'es_MX': 'Deshacer', - 'fr_FR': 'Annuler', - 'ro': "Înapoi", - 'ru_RU': 'Вернуть', - 'de_DE': 'Rückgängig', - 'zh_TW': '回到上一步', - 'it_IT': "Annulla", - 'pl' : 'Cofnij', - 'tr_TR': 'Geri al', - }, - /////////////////////////////////////////////////////////////////////////// - 'command-helper-bar-objective': { - '__desc__': 'Objective command label in the bottom command helper bar.', - 'es_AR': 'Objetivo', - 'en_US': 'Objective', - 'es_MX': 'Objetivo', - 'fr_FR': 'Objectif', - 'ru_RU': 'Задание', - 'ro': "Obiectiv", - 'de_DE': 'Zielvorgabe', - 'zh_TW': '目標', - 'it_IT': "Obiettivo", - 'pt_BR': 'Objetivo', - 'pl' : 'Cel', - 'tr_TR': 'Hedef', - }, - /////////////////////////////////////////////////////////////////////////// - 'command-helper-bar-help': { - '__desc__': 'Help command label in the bottom command helper bar.', - 'es_AR': 'Ayuda', - 'en_US': 'Help', - 'pt_BR': 'Ajuda', - 'es_MX': 'Ayuda', - 'fr_FR': 'Aide', - 'ru_RU': 'Помощь', - 'ro': "Ajutor", - 'de_DE': 'Hilfe', - 'zh_TW': '幫助', - 'it_IT': "Aiuto", - 'pl' : 'Pomoc', - 'tr_TR': 'Yardım', - }, - /////////////////////////////////////////////////////////////////////////// - 'error-command-currently-not-supported': { - '__desc__': 'Message that appears in git console when command is not supported in the current environment.', - 'es_AR': '¡El comando es valido, pero no está soportado en este ambiente! intentá ingresar un nivel o un constructor de nivel para usar ese comando', - 'en_US': 'That command is valid, but not supported in this current environment! Try entering a level or level builder to use that command', - 'pt_BR': 'Este comando é válido, mas não suportado no ambiente atual! Tente entrar num nível ou construtor de nível para usar este comando', - 'es_MX': '¡El comando es válido, pero no es suportado en este ambiente! Intenta ingresar un nivel o un constructor de niveles para usar ese comando', - 'fr_FR': 'Cette commande est valide, mais n\'est pas supportée dans le contexte actuel ! Essayez de démarrer un niveau ou l\'éditeur de niveaux pour utiliser cette commande', - 'ro': "Această comandă este validă, dar nu este suportată în acest mediu! Încearcă să intri într-un nivel sau în editorul de niveluri pentru a folosi această comandă", - 'ru_RU': 'Эта команда валидна, но не поддерживается в текущем окружении! Попробуйте войти в уровень или сборщик уровней чтобы использовать эту команду', - 'de_DE': 'Der Befehl ist gültig, aber in der aktuellen Umgebung nicht unterstützt! Rufe ein Level oder den Level-Editor auf, um diesen Befehl zu nutzen', - 'zh_TW': '這項指令輸入正確,然而目前的環境不支援此指令。試著前往關卡或關卡建造器中使用此指令。', - 'it_IT': - "Il comando è valido, ma non supportato in questo ambiente! Prova a entrare in un livello o nel generatore di livelli per usare quel comando", - 'pl' : 'To polecenie jest poprawne, ale nie jest obsługiwane w obecnym środowisku! Spróbuj wybrać poziom lub włączyć konstruktor poziomów, aby użyć tej komendy', - 'vi': 'Lệnh đó hợp lệ, nhưng không được hỗ trợ ở môi trường hiện tại! Hãy thử vào một cấp độ hoặc trình tạo cấp độ để sử dụng lệnh', - 'tr_TR': 'Bu komut geçerli bir komuttur, fakat bu ortamda desteklenmemektedir, bu komutu kullanmak için bir seviye (level) ya da seviye oluşturucu ekleyin (level builder).' - }, - /////////////////////////////////////////////////////////////////////////// - 'interactive-rebase-title': { - '__desc__': 'Title for the popup', - 'es_AR': 'Rebase interactivo', - 'en_US': 'Interactive Rebase', - 'pt_BR': 'Rebase interativo', - 'es_MX': 'Rebase interactivo', - 'fr_FR': 'Rebase interactif', - 'ro': "Rebase interactiv", - 'ru_RU': 'Интерактивное перебазирование', - 'de_DE': 'Interaktives Rebase', - 'zh_TW': '互動式 Rebase', - 'it_IT': "Rebase interattivo", - 'pl' : 'Interaktywny Rebase', - 'vi': 'Rebase tương tác', - 'tr_TR': 'Etkileşimli Yeniden Temellendirme', - }, -}; + "git-error-origin-fetch-uptodate": { + "__desc__": "One of the error messages for git", + "en_US": "Already up to date!", + "de_DE": "Bereits auf dem aktuellsten Stand!", + "fr_FR": "Déjà à jour", + "es_AR": "Estás en la versión más reciente", + "es_MX": "Actualizado en la versión más reciente.", + "es_ES": "Ya actualizado con la versión más reciente.", + "pt_BR": "Já estamos na versão mais recente!", + "gl": "Xa estamos actualizados ca versión máis recente", + "zh_TW": "已經是最新的了", + "zh_CN": "已经是最新的了", + "ro": "Deja actualizat la ultima versiune!", + "ru_RU": "Уже обновлено!", + "uk": "Вже оновлено!", + "ko": "이미 최신 상태입니다!", + "vi": "Cập nhật mới nhất rồi!", + "sl_SI": "Že posodobljeno!", + "pl": "Już aktualne!", + "it_IT": "E' gia la versione più recente!", + "ta_IN": "ஏற்கனவே புதுப்பித்த நிலையில் உள்ளது!", + "tr_TR": "Zaten güncel!" + }, + "git-error-origin-fetch-no-ff": { + "__desc__": "One of the error messages for git", + "en_US": "Your origin branch is out of sync with the remote branch and fetch cannot be performed", + "zh_CN": "你的 origin 仓库中的分支与远程分支的不同步了,无法执行 fetch 命令", + "zh_TW": "你的 origin 分支已經失去了與 remote 遠端分支的同步,所以無法執行 fetch 命令", + "de_DE": "Dein origin Branch ist nicht auf dem Stand des Remote Branches und fetch kann nicht ausgeführt werden", + "es_AR": "Tu rama origin está desincronizada con la rama remota, por lo que no se puede hacer el fetch", + "es_MX": "Tu rama origin está desincronizada con la rama remota, por lo que no se puede hacer el fetch", + "es_ES": "Tu rama origin no está sicronizada con la rama remota, así que el fetch no se puede realizar.", + "pt_BR": "O fetch não pode ser realizado, pois o ramo de origem está fora de sincronia com o ramo remoto", + "gl": "O fetch non pode ser realizado xa que a rama de orixe non está sincronizada ca rama remota", + "fr_FR": "Votre branche origin n'est plus synchronisée avec la branche distante et fetch ne peut pas être appliqué. Essayez avec l'option --force", + "ro": "Ramura origin nu este sincronizată cu ramura de la distanță, deci fetch nu poate fi efectuat", + "ru_RU": "Ваша origin ветка не синхронизирована с удаленной веткой, невозможно выполнить fetch", + "uk": "Твоя гілка origin не синхронізована з віддаленою гілкою, неможливо виконати fetch", + "ko": "origin 브랜치가 원격 브랜치와 동기화되지 않아서 fetch를 실행할 수 없습니다.", + "vi": "Nhánh của bạn không đồng bộ với nhánh từ xa nên lệnh fetch không thực thi được", + "sl_SI": "Tvoj origin branch ni sinhroniziran z oddaljenim branchem, zato se fetch se ne more izvesti", + "pl": "Twój branch nie jest zsynchronizowany ze zdalny branch-em i nie można przeprowadzić pobierania", + "it_IT": "Il tuo ramo origin non è sincronizzato con il ramo remoto, e fetch non può essere eseguito", + "ta_IN": "உங்கள் மூலக் கிளை தொலைநிலைக் கிளையுடன் ஓருங்கினைக்கப்படவில்லை. `fetch` செய்ய முடியாது", + "tr_TR": "Origin Branch'iniz, Remote branch ile uyumsuzdur ve `fetch` işlemi gerçekleştirilemez." + }, + "git-error-origin-push-no-ff": { + "__desc__": "One of the error messages for git", + "en_US": "The remote repository has diverged from your local repository, so uploading your changes is not a simple fast forward (and thus your push was rejected). Please pull down the new changes in the remote repository, incorporate them into this branch, and try again. You can do so with git pull or git pull --rebase", + "zh_CN": "远程仓库与你的本地仓库产生了分歧,故此上传操作无法通过 Fast-forward 实现(因此你的 push 被拒绝了)。请 pull 下来远程仓库里最新的更改,与这个分支合并之后再试一次。你可以通过 git pull 或 git pull --rebase 实现。", + "zh_TW": "遠端倉庫與你的本地倉庫產生了分歧,故此上傳操作無法通過簡單地快進實現(因此你的 push 被拒絕了)。請 pull 下來遠端裡最新的更改,與本地合併之後再試一次。你可以通過 git pull 或 git pull --rebase 實現。", + "de_DE": "Das entfernte Repository weicht von deinem lokalen Repository ab, daher können deine Änderungen nicht mit einem einfachen fast forward hochgeladen werden (und daher ist dein push abgelehnt worden). Bitte pull erst die neuen Änderungen in das lokale Repository, integriere sie in den Branch und versuch es nochmal. Das kannst du mit git pull oder git pull --rebase machen", + "es_AR": "El repositorio remoto divergió de tu repositorio local, por lo que subir tus cambios no es un simple fast forward (y por eso se rechazó tu push). Por favor, hacé pull de los nuevos cambios en el repositorio remoto, incorporalos a esta rama y probá de nuevo. Podés hacerlo con git pull o git pull --rebase", + "es_MX": "El repositorio remoto divergió de tu repositorio local, por lo que subir tus cambios no es un simple fast forward (y por eso se rechazó tu push). Por favor, hacé pull de los nuevos cambios en el repositorio remoto, incorporalos a esta rama y prueba de nuevo. Puedes hacerlo con `git pull` o `git pull --rebase`", + "es_ES": "El repositorio remoto se ha desviado del repositorio local. Subir cambios no es un avance en cámara rápida (por eso fue rechazado tu push). Por favor haz pull para descargar los cambios en el repositorio remoto para que los incorpores en la rama actual. Los cambios se pueden hacer pull con el comando \"git pull\" o \"git pull --rebase\"", + "pt_BR": "O repositório remoto divergiu do repositório local, então enviar suas mudanças não é um simples fast forward (e por isso seu push foi rejeitado). Por favor, faça pull das novas mudanças do repositório remoto, incorpore-os a este ramo, e tente novamente. Você pode fazê-lo com git pull ou git pull --rebase", + "gl": "O repositorio remoto diverxe do teu repositorio local. Subir os cambios non é un fast-forward (avance rápido) e por iso foi rechazado o teu push. Por favor, fai un pull dos novos cambios do repositorio remoto e inclúeos na túa rama actual. Os cambios pódense facer co comando \"git pull\" ou \"git pull --rebase\"", + "fr_FR": "Le dépôt distant a divergé de votre référentiel local, donc l'envoi de vos modifications n'est pas en simple avance rapide (et donc votre envoi a été rejeté). Veuillez récupérer les nouveaux changements depuis le dépôt distant, les intégrer dans cette branche, et essayez à nouveau. Vous pouvez le faire avec git pull ou git pull --rebase", + "ro": "Repozitoriul de la distanță a deviat de repozitoriul tău local, deci încărcarea modificărilor nu este un simplu fast forward (și astfel push-ul tău a fost respins). Te rog să tragi noile modificări din repozitoriul de la distanță, să le integrezi în această ramură și să încerci din nou. Poți face asta cu git pull sau git pull --rebase", + "ru_RU": "Удаленный репозиторий разошелся с вашим локальным репозиторием, поэтому выгрузка ваших изменений не может быть в режиме fast forward (и следовательно ваш push будет отклонён). Пожалуйста, удалите изменения в удаленном репозитории которые, объедините их в эту ветку и попробуйте еще раз. Вы можете сделать это с помощью git pull или git pull --rebase", + "uk": "Віддалений репозиторій розбігся з твоїм локальним репозиторієм, тому відвантаження твоїх змін не є простим fast forward (і тому твій push був відхилений). Будь-ласка, витягни зміни з віддаленого репозиторію, включи їх в цю гілку, й спробуй ще. Ти можеш зробити це за допомогою git pull чи git pull --rebase", + "ko": "원격 리포지토리가 로컬 리포지토리에서 분기되었으므로 변경 사항이 fast foward 방식으로 업로드되지 않고 푸시가 거부됩니다. 원격 리포지토리의 새 변경 내용을 끌어서 이 브랜치에 통합한 후 다시 시도하세요. git pull 또는 git pull --rebase를 사용해도 됩니다.", + "vi": "Kho chứa từ xa có sự khác biệt với kho chứa cục bộ của bạn, nên không thể tự động (fast forward) cập nhật thay đổi của bạn (và vì thế hoạt động push của bạn bị từ chối). Vui lòng kéo về thay đổi từ kho chứa từ xa, kết nạp vào nhánh hiện tại, và thử lại lần nữa. Bạn có thể dùng lệnh `git pull` hoặc `git pull --rebase`", + "sl_SI": "Oddaljen repozitorij se je ločil od tvojega lokalnega repozitorija, zato nalaganje sprememb ni možno z `fast forward` opcijo (zato je bil `push` zavrnjen). Prosim pull-aj dol nove spremembe iz oddaljenega repozitorija, jih vključi v svoj branch, nato pa poizkusi ponovno. To lahko narediš z `git pull` ali `git pull --rebase`", + "pl": "Zdalne repozytorium różni się od lokalnego repozytorium, dlatego twoich zmian nie można przesłać za pomocą prostego szybkiego `fast forward` (i dlatego polecenie `push` zostało odrzucone). Najpierw zrób `pull` aby pobrać nowe zmiany do lokalnego repozytorium, zintegruj je z branch-em i spróbuj ponownie. Możesz to zrobić za pomocą `git pull` lub `git pull --rebase`", + "it_it": "Il repository remoto è diverso dal tuo repository locale, quindi il caricamento non è un semplice fast forward (e per questo il tuo push è fallito). Per favore esegui pull per scaricare i nuovi cambiamenti dal repository remoto, incorporarli in questo ramo, e provare ancora. Puoi effettuarlo tramite i comandi git pull o git pull --rebase", + "ta_IN": "தொலைநிலை களஞ்சியம் உங்கள் களஞ்சியத்திலிருந்து வேறுபட்டுள்ளது, எனவே உங்கள் மாற்றங்களை எளிமையான `fast forward` முறையில் பதிவேற்ற இயலாது (இதனால் உங்கள் `push` நிராகரிக்கப்பட்டது). தொலை களஞ்சியத்தில் புதிய மாற்றங்களை `pull` செய்து, அவற்றை இந்த கிளையில் இணைத்து, மீண்டும் முயற்சிக்கவும். நீங்கள் அவ்வாறு `git pull` அல்லது `git pull --rebase` கட்டளை கொண்டு செய்யலாம்", + "tr_TR": "Uzak depo, yerel deponuzdan sapmış durumda, bu yüzden değişikliklerinizi basit bir fast forward ile yüklemek mümkün değil (bu nedenle push işleminiz reddedildi). Lütfen uzak depodaki yeni değişiklikleri çekin, bunları bu dalda birleştirin ve tekrar deneyin. Bunu git pull veya git pull --rebase komutlarıyla yapabilirsiniz." + }, + "git-error-remote-branch": { + "__desc__": "One of the error messages for git", + "en_US": "You cannot execute that command on a remote branch", + "zh_CN": "你不能在远程分支上执行这个命令。", + "zh_TW": "你不能在遠端分支上執行這個命令呀。", + "de_DE": "Du kannst diesen Befehl nicht auf einem Remote Branch ausführen", + "es_AR": "No podés ejecutar ese comando en una rama remota", + "es_MX": "No puedes ejecutar ese comando en una rama remota", + "es_ES": "No puedes ejecutar ese comando en una rama remota", + "pt_BR": "Você não pode executar esse comando em um ramo remoto", + "gl": "Non podes executar ese comando nunha rama remota", + "fr_FR": "Vous ne pouvez exécuter cette commande sur une branche distante", + "ro": "Nu poți executa acest comandă pe o ramură la distanță", + "ru_RU": "Вы не можете выполнить эту команду на удаленной ветке", + "uk": "Ти не можеш виконати цю команду на віддаленій гілці", + "ko": "원격 브랜치에서 해당 명령어를 실행시킬 수 없습니다.", + "vi": "Bạn không thể thực thi lệnh đó lên nhánh từ xa", + "sl_SI": "Tega ukaza ne moreš narediti na oddaljenem branchu", + "pl": "Nie możesz wykonać tego polecenia w zdalnej gałęzi", + "it_it": "Non puoi eseguire questo comando su un ramo remoto", + "ta_IN": "அந்த கட்டளையை நீங்கள் தொலைநிலை கிளையில் இயக்க முடியாது", + "tr_TR": "Bu komutu uzak bir dalda çalıştırmak mümkün değil" + }, + "git-error-origin-required": { + "__desc__": "One of the error messages for git", + "en_US": "An origin is required for that command", + "zh_CN": "该命令需要一个 origin", + "zh_TW": "該命令需要一個 origin", + "de_DE": "Für diesen Befehl wird origin benötigt", + "es_AR": "Necesitás un origen para ese comando", + "es_MX": "Se necesita un origen para ese comando", + "es_ES": "Se requiere un origen para ese comando.", + "pt_BR": "É necessário informar uma origem para esse comando", + "gl": "É necesario informar unha orixe para ese comando", + "fr_FR": "Une origine est requise pour cette commande", + "ro": "Un origin este necesar pentru acestă comandă", + "ru_RU": "Origin требуется для этой команды", + "uk": "Для цієї команди потрібний origin", + "ko": "해당 명령어를 위한 origin이 필요합니다.", + "vi": "Lệnh đó yêu cầu có origin", + "sl_SI": "Origin je potreben za izvedbo tega ukaza", + "pl": "Dla tego polecenia wymagane jest źródło (origin)", + "it_IT": "E' necessario definire origin per questo comando", + "ta_IN": "அந்த கட்டளைக்கு ஒரு துவக்க மூலம் தேவை", + "tr_TR": "Bu komut için bir origin gereklidir" + }, + "git-error-origin-exists": { + "__desc__": "One of the error messages for git", + "en_US": "An origin already exists! You cannot make a new one", + "zh_CN": "origin 已存在。你不能重复创建", + "zh_TW": "origin 遠端已存在。你不能重複創建", + "de_DE": "origin existiert bereits! Du kannst es nicht nochmal anlegen", + "es_AR": "¡Ya existe el origen! No podés crear uno nuevo", + "es_MX": "¡Ya existe un origen! No puedes crear uno nuevo", + "es_ES": "¡Ya existe un origen! No puedes crearlo de nuevo.", + "pt_BR": "A origem já existe! Você não pode criar uma nova", + "gl": "A orixe xa existe! Non podes crear unha nova", + "fr_FR": "Une origine existe déjà ! Vous ne pouvez pas en créer une nouvelle", + "ro": "Un origin deja există! Nu poți crea unul nou", + "ru_RU": "Origin уже существует! Невозможно создать еще один", + "uk": "Origin вже існує! Неможливо створити ще один", + "ko": "origin이 이미 존재합니다! 새로 만들 수 없습니다.", + "vi": "Nguyên bản (origin) đã tồn tại. Bạn không thể tạo thêm 1 cái mới", + "sl_SI": "Origin že obstaja. Ne moreš narediti novega.", + "pl": "Origin już istnieje! Nie możesz go ponownie założyć", + "it_IT": "Origin già esistente! Non puoi crearne uno nuovo", + "ta_IN": "துவக்க மூலம் ஒன்று ஏற்கனவே உள்ளது! நீங்கள் மீன்டும் ஒன்றை உருவாக்க முடியாது", + "tr_TR": "Bir origin zaten mevcut! Yeni bir tane oluşturamazsınız" + }, + "git-error-branch": { + "__desc__": "One of the error messages for git", + "en_US": "You can't delete the main branch, the branch you are on, or things that aren't branches", + "de_DE": "Du kannst nicht den Branch main, den Branch auf dem du gerade arbeitest oder Refs, die keine Branches sind, löschen", + "zh_CN": "你不能删除主分支(main),或者你当前所在的分支,或者其它连分支也不是的东西。", + "zh_TW": "你不能刪除 main branch,或者你當前所在的 branch,或者其它連 branch 都不是的東西。", + "es_AR": "No podés borrar la rama main, la rama en la que estás, o cosas que no son ramas", + "es_MX": "No puedes borrar la rama main, la rama en la que estás, o cosas que no son ramas", + "es_ES": "No puedes eliminar la rama main, la rama en que estás, o cosas que no son ramas.", + "pt_BR": "Você não pode apagar o ramo main, nem o ramo em que você está, nem coisas que não sejam ramos", + "gl": "Non podes borrala rama main, nin a rama na que ti estás, nin cousas que non sexan ramas", + "fr_FR": "Vous ne pouvez pas supprimer la branche main, la branche sur laquelle vous êtes, ou ce qui n'est pas une branche", + "ro": "Nu poți șterge ramura main, ramura pe care te afli, sau lucruri care nu sunt ramuri", + "ru_RU": "Невозможно удалить ветку main, ветку на которой вы сейчас и то что не является веткой", + "uk": "Неможливо видалити гілку main, гілку на якій ти зараз знаходишся чи штуки які не є гілкою", + "ko": "main 브랜치, 현재 위치한 브랜치, 브랜치가 아닌 항목은 삭제할 수 없습니다.", + "vi": "Bạn không thể xóa nhánh main, nhánh mà bạn đang tham chiếu tới, hoặc những gì không phải nhánh", + "sl_SI": "Ne moreš izbrisati main brancha, brancha na katerem si trenutno ali stvari, ki niso branchi", + "pl": "Nie możesz usunąć gałezi main, gałęzi na której aktualnie pracujesz, ani która nie jest gałezią", + "it_IT": "Non puoi eliminare il ramo main, il ramo in cui sei, o cose che non sono rami", + "ta_IN": "பிரதான கிளை, தற்ப்போது நடப்பில் உள்ள கிளை மற்றும் கிளை அல்லாத வற்றை அழிக்க இயலாது", + "tr_TR": "Şu anda üzerinde çalıştığın branch olan main i veya branch olmayan Refs leri silemezsin" + }, + "git-merge-msg": { + "__desc__": "The commit message for a merge commit", + "en_US": "Merge {target} into {current}", + "de_DE": "Mergen von {target} in {current}", + "zh_CN": "合并 {target} 到 {current}", + "zh_TW": "將 {target} 併入 {current}", + "es_AR": "Mergear {target} a {current}", + "es_MX": "Mergear {target} a {current}", + "es_ES": "Incorporar {target} en {current}", + "pt_BR": "Merge de {target} em {current}", + "gl": "Merge de {target} en {current}", + "fr_FR": "Merge de {target} dans {current}", + "ro": "Îmbinare {target} în {current}", + "ru_RU": "Слияние {target} в {current}", + "uk": "Злиття {target} в {current}", + "ko": "{target}을 {current}에 병합하세요.", + "vi": "Gộp {target} vào {current}", + "sl_SI": "Mergaj {target} v {current}", + "pl": "Łączenie {target} z {current}", + "it_IT": "Fuso {target} in {current}", + "ta_IN": "{target}ஐ {current} கிளையுடன் இணை", + "tr_TR": "{target}i {current}e birleştir" + }, + "git-error-rebase-none": { + "__desc__": "One of the error messages for git", + "en_US": "No commits to rebase! Everything is a merge commit or changes already applied", + "de_DE": "Keine Commits für Rebase gefunden! Alle Commits sind Merge Commits oder beinhalten nur schon vorhandene Änderungen", + "zh_CN": "没有可以 rebase 的提交记录!可能是合并提交,或者已经 rebase 过了。", + "zh_TW": "沒有需要 rebase 的 commit!每個都是一個 merge commit 或者修改已經被寫入了", + "es_AR": "¡No hay commits para rebasear! Son todos commits de merge o cambios ya aplicados", + "es_MX": "¡No hay commits para hacer rebase! Todo es un merge commit o cambios ya aplicados", + "es_ES": "¡No hay commits para hacer rebase! Todo es un merge commit o cambios ya hecho.", + "pt_BR": "Não há commits para o rebase! São todos commits de merge ou mudanças já aplicadas", + "gl": "¡Non hai commits para o rebase! Son todos commits de merge ou cambios xa aplicados", + "fr_FR": "Aucun commit à rebaser ! C'est soit un commit de merge, soit des modifications déjà appliquées", + "ro": "Nu există commit-uri pentru rebase! Totul este un commit de îmbinare sau modificările sunt deja aplicate", + "ru_RU": "Нет коммитов для rebase! Все в коммите слияния или изменения уже применены", + "uk": "Нема комітів для rebase! Все в коміті злиття (merge commit) чи зміни вже застосовані", + "ko": "rebase를 하기 위한 커밋이 없습니다! 모든 커밋이 병합 커밋이거나 이미 변경사항이 적용되었습니다.", + "vi": "Không có commit nào để rebase. Mọi thứ là merge commit hoặc thay đổi đã được áp dụng", + "sl_SI": "Ni commitov za rebase! Vse je merge commit ali pa so spremembe že dodane", + "pl": "Nie znaleziono commit-u do zmiany! Wszystkie commit-y oraz scalenia lub zmiany już są zastosowane", + "it_IT": "Non ci sono commit da ribasare! Sono tutti commit di merge o i cambiamenti sono già stati applicati", + "ta_IN": "`rebase` செய்ய எந்த கமிட்டும் இல்லை, அனைத்தும் இணைப்பு கமிட்கள் அல்லது முன்பே இணைக்கப்பட்டவை", + "tr_TR": "Rebase edilecek commit yok! Her şey birleştirme commit i ya da zaten uygulanmış değişiklikler" + }, + "git-result-nothing": { + "__desc__": "The message that explains the result of a git command", + "en_US": "Nothing to do...", + "de_DE": "Nichts zu tun ...", + "zh_CN": "什么也没发生...", + "zh_TW": "沒什麼事情要做...", + "es_AR": "Nada para hacer...", + "es_MX": "Nada para hacer...", + "es_ES": "Nada para hacer...", + "pt_BR": "Nada a ser feito...", + "gl": "Nada para facer...", + "fr_FR": "Rien à effectuer…", + "ro": "Nimic de făcut...", + "ru_RU": "Нечего выполнять...", + "uk": "Нічого виконувати...", + "ko": "할수있는게 없습니다 ...", + "vi": "Không có gì để làm...", + "sl_SI": "Ničesar za narediti ...", + "pl": "Nie ma nic do zrobienia...", + "it_IT": "Niente da fare...", + "ta_IN": "செய்வதற்க்கு ஒன்றும் இல்லை...", + "tr_TR": "Yapılacak bir şey yok..." + }, + "git-result-fastforward": { + "__desc__": "The message that explains the result of a git command", + "en_US": "Fast forwarding...", + "de_DE": "Fast forward...", + "zh_CN": "快速前进...", + "zh_TW": "快速前進...", + "es_AR": "Fast forwardeando...", + "es_MX": "Avanzando rápidamente (Fast forwarding)...", + "es_ES": "Avanzando rápidamente...", + "pt_BR": "Fast forward...", + "gl": "Fast forward...", + "fr_FR": "En avance rapide…", + "ro": "Fast forward...", + "ru_RU": "Выполняю Fast forward...", + "uk": "Виконую Fast forward", + "ko": "Fast forward 중입니다...", + "vi": "Đang fast forward...", + "sl_SI": "Fast forwardiranje", + "pl": "Fast forward...", + "it_it": "Fast forwarding...", + "ta_IN": "Fast forward...", + "tr_TR": "Hızlı ileri alınıyor..." + }, + "git-result-uptodate": { + "__desc__": "The message that explains the result of a git command", + "en_US": "Branch already up-to-date", + "de_DE": "Branch ist bereits aktuell", + "zh_CN": "分支已经是最新啦", + "zh_TW": "branch 已經是最新啦", + "es_AR": "Rama actualmente actualizada", + "es_MX": "La rama ya se ha actualizado.", + "es_ES": "La rama ya se ha actualizado.", + "pt_BR": "Ramo já atualizado", + "gl": "Rama xa actualizada", + "fr_FR": "Branche déjà à jour", + "ro": "Ramura deja actualizată", + "ru_RU": "Ветка уже обновлена", + "uk": "Гілку вже оновлено", + "ko": "브랜치가 이미 최신 상태입니다.", + "vi": "Nhánh đã được cập nhật mới nhất", + "sl_SI": "Branch je že posodobljen", + "pl": "Branch jest już aktualny", + "it_IT": "Il ramo è già aggiornato", + "ta_IN": "இந்த கிளை ஏற்கனவே புதுப்பித்த நிலையில் உள்ளது...", + "tr_TR": "Dal zaten güncel" + }, + "git-error-exist": { + "__desc__": "One of the error messages for git", + "en_US": "The ref {ref} does not exist or is unknown", + "de_DE": "Die Ref {ref} existiert nicht oder ist unbekannt", + "zh_CN": "引用 {ref} 不存在。", + "zh_TW": "索引 {ref} 不存在,或者找不到。", + "es_AR": "La referencia {ref} no existe o es desconocida", + "es_MX": "La referencia {ref} no existe o es desconocida", + "es_ES": "La referencia {ref} no existe o es desconocida", + "pt_BR": "A referência {ref} não existe ou é desconhecida", + "gl": "A referencia {ref} non existe ou é descoñecida", + "fr_FR": "La référence {ref} n'existe pas ou est inconnue", + "ro": "Referința {ref} nu există sau este necunoscută", + "ru_RU": "Ссылка {ref} не существует или неизвестна", + "uk": "Посилання {ref} не існує чи невідоме", + "ko": "{ref} 참조가 존재하지 않거나 찾을 수 없습니다.", + "vi": "Tham chiếu {ref} không tồn tại hoặc không thể tìm thấy", + "sl_SI": "Ref {ref} new obstaja ali je neznan", + "pl": "Odnośnik {ref} nie istnieje lub jest nieznany", + "it_IT": "Il riferimento (ref) {ref} non esiste o è sconosciuto", + "ta_IN": "{ref} இல்லை அல்லது தெரியவில்லை", + "tr_TR": "{ref} referansı mevcut değil veya bilinmiyo" + }, + "git-error-relative-ref": { + "__desc__": "One of the error messages for git", + "en_US": "Commit {commit} does not have a {match}", + "de_DE": "Commit {commit} hat kein {match}", + "zh_CN": "{commit} 提交并没有 {match}", + "zh_TW": "commit {commit} 並沒有 {match}", + "es_AR": "El commit {commit} no tiene un {match}", + "es_MX": "El commit {commit} no tiene un {match}", + "es_ES": "El commit {commit} no tiene un {match}", + "pt_BR": "O commit {commit} não tem um {match}", + "gl": "O commit {commit} non ten un {match}", + "fr_FR": "Le commit {commit} n'a pas de correspondance {match}", + "ro": "Commit-ul {commit} nu are un {match}", + "ru_RU": "Коммит {commit} не содержит {match}", + "uk": "Коміт {commit} не містить {match}", + "ko": "커밋 {commit}은 {match}를 가지고 있지 않습니다.", + "vi": "Commit {commit} mà không có {match}", + "sl_SI": "Commit {commit} nima {match}", + "pl": "Commit {commit} nie ma {match}", + "it_IT": "Il commit {commit} non ha un {match}", + "ta_IN": "{commit}க்கு {match} எதுவும் இல்லை", + "tr_TR": "{commit} commit inin {match} bulunmamaktadı" + }, + "git-warning-detached": { + "__desc__": "One of the warning messages for git", + "en_US": "Warning!! Detached HEAD state", + "de_DE": "Achtung! Detached HEAD Zustand", + "zh_CN": "警告!现在是分离 HEAD 状态", + "zh_TW": "注意喔!現在的狀態是分離 Head", + "es_AR": "¡Cuidado! Modo de detached HEAD", + "es_MX": "¡Cuidado! Modo de HEAD separado (detached HEAD)", + "es_ES": "¡Cuidado! Modo de HEAD separado (detached HEAD)", + "pt_BR": "Cuidado! Modo Detached HEAD", + "gl": "¡Coidado! Modo Detached HEAD", + "fr_FR": "Attention ! HEAD est détaché", + "ro": "Atenție! Starea HEAD detașat", + "ru_RU": "Внимание! Репозиторий в состоянии detached HEAD, то есть не находится ни на какой ветке!", + "uk": "Увага! Репозиторій в стані detached HEAD, тобто не знаходиться в жодній гілці!", + "ko": "주의! 분리된 HEAD 상태", + "vi": "Cảnh báo! HEAD bị tách rời", + "sl_SI": "Opozorilo! Detached HEAD stanje", + "pl": "Ostrzeżenie!! Odłączony tryb HEAD", + "it_IT": "Attenzione!! Situazione di testa distaccata (Detached HEAD)", + "ta_IN": "எச்சரிக்கை !! `HEAD` துன்டிக்கப்பட்ட நிலையில் உள்ளது", + "tr_TR": "Uyarı!! Bağımsız HEAD durumu" + }, + "git-warning-add": { + "__desc__": "One of the warning messages for git", + "en_US": "No need to add files in this demo", + "de_DE": "In dieser Demo müssen keine Dateien hinzugefügt werden", + "zh_CN": "此程序中不需要添加文件", + "zh_TW": "此 demo 中不需要再加入檔案", + "es_AR": "No es necesario hacer add a los archivos en esta demo", + "es_MX": "No es necesario agregar los archivos en ésta demo", + "es_ES": "No es necesario agregar los archivos en esta demo", + "pt_BR": "Não é necessário adicionar arquivos neste demo", + "gl": "Non é necesario incluír arquivos nesta demo", + "fr_FR": "Aucun besoin d'ajouter des fichiers dans cette démo", + "ro": "Nu este nevoie să adaugi fișiere în această demonstrație", + "ru_RU": "Это демо не оперирует файлами", + "uk": "Не потрібно додавати файли для цього демо", + "ko": "이 데모에서는 파일을 추가할 필요가 없습니다.", + "vi": "Không cần thêm tập tin trong bản demo này", + "sl_SI": "Ni potrebe po dodajanju datotetk v tem demotu", + "pl": "Nie ma potrzeby dodawania plików w tym demo", + "it_IT": "Non c'è bisogno di aggiungere file in questa demo", + "ta_IN": "இந்த நடைமுறையில் கோப்புகளை சேர்க்க தேவையில்லை", + "tr_TR": "Bu demoda dosya eklemeye gerek yok" + }, + "git-error-options": { + "__desc__": "One of the error messages for git", + "en_US": "Those options you specified are incompatible or incorrect", + "de_DE": "Die angegebenen Optionen sind inkompatibel oder falsch", + "zh_CN": "你所指定的参数不兼容或者不准确", + "zh_TW": "您指定了不相容或錯誤的選項", + "es_ES": "Las opciones que especificaste son incompatibles o incorrectas.", + "es_AR": "No es necesario hacer add a los archivos en esta demo", + "es_MX": "No es necesario hacer add a los archivos en ésta demo", + "pt_BR": "As opções que você especificou são incompatíveis ou incorretas", + "gl": "As opcións que especificaches son incompatibles ou incorrectas", + "fr_FR": "Les options que vous avez spécifiées sont incompatibles ou incorrectes", + "ro": "Opțiunile specificate sunt incompatibile sau incorecte", + "ru_RU": "Неправильные опции", + "uk": "Опції, які ти ввів, або некорректні або не підтримуються", + "ko": "지정한 옵션이 호환되지 않거나 올바르지 않습니다.", + "vi": "Các tham số bạn chỉ định không tương thích hoặc không chính xác", + "sl_SI": "Opcije, ki si jih podal, so nezdružljive ali napačne", + "pl": "Podane przez Ciebie opcje są niezgodne lub nieprawidłowe", + "it_IT": "Le opzioni che hai specificato sono incompatibili o sbagliate", + "ta_IN": "நீங்கள் குறிப்பிட்ட அந்த மற்றிகள் பொருந்தாது அல்லது தவறானவை", + "tr_TR": "Belirttiğiniz seçenekler uyumsuz veya yanlış" + }, + "git-error-already-exists": { + "__desc__": "One of the error messages for git", + "en_US": "The commit {commit} already exists in your changes set, aborting!", + "de_DE": "Der Commit {commit} existiert bereits, Abbruch!", + "zh_CN": "{commit} 提交已经存在于你的改动集里,已忽略!", + "zh_TW": "commit {commit} 已經在你的修改的集合裡,正在停止!", + "es_AR": "El commit {commit} ya existe en tus cambios, ¡abortando!", + "es_MX": "El commit {commit} ya existe en tus cambios, ¡abortando!", + "es_ES": "El commit {commit} ya existe en tus cambios, ¡abortando!", + "pt_BR": "O commit {commit} já existe nas suas mudanças, abortando!", + "gl": "O commit {commit} xa existe nos seus cambios, ¡abortando!", + "fr_FR": "Le commit {commit} existe déjà dans votre ensemble de modifications, opération avortée !", + "ro": "Commit-ul {commit} există deja în setul tău de modificări, se anulează!", + "ru_RU": "Коммит {commit} существует, отменяю!", + "uk": "Коміт {commit} вже існує в твоєму change set, відміна!", + "ko": "커밋 {commit}이 이미 변경 내역에 존재합니다. 중단!", + "vi": "Commit {commit} đã tồn tại trong những thay đổi của bạn, đang hủy!", + "sl_SI": "Commit {commit} že obstaja v tvoji množici sprememb, prekinjam!", + "pl": "Commit {commit} już istnieje w Twoim zbiorze zmian, przerywam!", + "it_IT": "Il commit {commit} è già presente, annullo!", + "ta_IN": "{commit} உங்கள் மாற்றங்களின் தொகுப்பில் ஏற்கனவே உள்ளது, கட்டளை கைவிடப்பட்டது!", + "tr_TR": "Commit {commit} zaten değişiklik setinizde mevcut, işlem iptal ediliyor!" + }, + "git-error-reset-detached": { + "__desc__": "One of the error messages for git", + "en_US": "Can't reset in detached head! Use checkout if you want to move", + "de_DE": "Kann im Detached Head Zustand kein reset ausführen! Bitte checkout zum Bewegen benutzen", + "zh_CN": "不能在分离的 HEAD 里重置!用 checkout 吧", + "zh_TW": "不能在分離 HEAD 的狀態中重來!用 checkout 來移動吧", + "es_AR": "No podés hacer reset en el modo detached. Usá checkout si querés moverte", + "es_MX": "No puedes hacer reset en el modo separado. Usa checkout si quieres moverte", + "es_ES": "No puedes hacer reset en el modo separado. Usa checkout si quieres moverte.", + "pt_BR": "Não se pode fazer reset no modo detached. Use checkout se quiser se mover", + "gl": "Non se pode facer reset no modo detached. Use checkout se te queres mover", + "fr_FR": "On ne peut pas effectuer un reset quand HEAD est détaché. Utilisez checkout pour déplacer", + "ro": "Nu se poate face reset în starea HEAD detașat! Folosește checkout dacă vrei să te muți", + "ru_RU": "Это невозможно в режиме detached HEAD! Используйте checkout!", + "uk": "Неможливо зробити reset в стані detached head! Використовуй checkout якщо хочеш змінити розташування", + "ko": "분리된 HEAD에서 reset할 수 없습니다. 만약 이동시키기를 원한다면 checkout을 사용하세요.", + "vi": "Trong trạng thái tách rời `HEAD` thì không thể `reset`. Dùng `checkout` nếu bạn muốn di chuyển", + "sl_SI": "Ni možno resetat, zaradi detached HEADa", + "pl": "Nie można zresetować w odłączonej HEAD! Użyj opcji `checkout`, jeśli chcesz się przenieść", + "it_IT": "Non posso fare reset in modalità testa distaccata (detached head)! Utilizza checkout se vuoi spostarti", + "ta_IN": "பிரிக்கப்பட்ட தலையில் மீட்டமைக்க முடியாது! நீங்கள் நகர்த்த விரும்பினால் `checkout` பயன்படுத்தவும்", + "tr_TR": "Detached head durumunda sıfırlama yapılamaz! Taşımak istiyorsanız checkout kullanın" + }, + "git-warning-hard": { + "__desc__": "One of the warning messages for git", + "en_US": "The default behavior for resets on LearnGitBranching is a --hard, so feel free to omit that option if you get tired of typing it out in our lessons. Just remember that the default behavior on actual Git is --mixed.", + "de_DE": "Das Standardverhalten in dieser Demo ist --hard, du kannst die Option auch weglassen!", + "zh_CN": "在本程序中默认的行为是 --hard 硬重置,可以尽情省略掉那个选项以避免麻烦!但是要记录 Git 中默认的是 --mixed。", + "zh_TW": "預設的行為是 --hard reset,儘量省略掉那個選項吧!", + "es_AR": "El comportamiento default es un --hard reset, sentite libre de omitir esa opción!", + "es_MX": "El comportamiento default es un --hard reset, siéntete libre de omitir esa opción!", + "es_ES": "El comportamiento default para reajustes es --hard, pero siéntete libre de omitir esa opción si te cansas de escribirla en nuestras lecciones. Recuerda quepor defecto el comportamiento en GitHub es --mixed.", + "pt_BR": "O comportamento padrão é um reset --hard, fique livre para omitir essa opção!", + "gl": "O comportamente por defecto é un reset --hard, Lembra que por defecto en GitHub é --mixed.", + "fr_FR": "Le comportement par défaut est un --hard reset, soyez libre d'omettre cette option !", + "ro": "Comportamentul implicit aici este un reset --hard, așa că te poți simți liber să omiți această opțiune! De menționat că în GitHub, comportamentul implicit este --mixed.", + "ru_RU": "По умолчанию будет выполнен --hard reset, эту опцию можно опускать!", + "uk": "На LearnGitBranching reset по замовчуванню використовує --hard, тому цю опцію можна пропустити, якщо ти втомився її набирати щоразу. Тільки запам’ятай, що по замовчуванню звичайний git reset використовує --mixed", + "ko": "LearnGitBranching에서 reset의 기본 설정은 --hard이므로, 이 옵션을 입력하는 것이 번거롭게 느껴진다면 생략해도 됩니다. 다만 실제 Git의 기본 설정 옵션은 --mixed라는것만 기억하세요.", + "vi": "Trạng thái mặc định cho lệnh `reset` của \"Học nhánh Git\" là `--hard`. Nên khi làm bài nếu bạn thấy gõ tham số này hơi tốn công thì cứ bỏ qua. Nhưng mà hãy nhớ rằng thực tế thì `--mixed` mới là trạng thái mặc định của `reset`.", + "sl_SI": "Privzeto delovanje za reset na LearnGitBranching je --hard, zato lahko to izpustiš. Na pravem gitu je --mixed.", + "pl": "Domyślnym zachowaniem dla polecenia `reset` w LearnGitBranching jest parametr --hard, więc możesz pominąć tę opcję, Pamiętaj tylko, że domyślne zachowanie rzeczywistego GIT-a jest parametr --mixed.", + "it_IT": "Il comportamento base per i resets su LearnGitBranching è --hard, per cui puoi tranquillamente omettere quella opzione se ti sei stancato di scriverla. Ricorda però che in Git, l'opzione di default è --mixed.", + "ta_IN": "The default behavior for resets on LearnGitBranching is a --hard, so feel free to omit that option if you get tired of typing it out in our lessons. Just remember that the default behavior on actual Git is --mixed.", + "tr_TR": "LearnGitBranching deki sıfırlama işlemlerinin varsayılan davranışı --hard tır, bu yüzden derslerimizde yazarken bundan sıkılırsanız bu seçeneği atlayabilirsiniz. Ancak gerçek Git teki varsayılan davranışın --mixed olduğunu unutmayın." + }, + "git-error-staging": { + "__desc__": "One of the error messages for git", + "en_US": "There is no concept of adding / staging files, so that option or command is invalid!", + "de_DE": "In dieser Demo gibt es kein Hinzufügen / Vormerken von Dateien, dieser Befehl ist daher ungültig!", + "zh_CN": "没有添加、缓存文件的必要,所以该选项或者命令是不合法的。", + "zh_TW": "沒有加入、或者暫存 (staging) 文件的必要,所以改選項或者命令是不合法的。", + "es_AR": "No existe el concepto de agregar/indexar cambios, así que esa opción o comando es inválido", + "es_MX": "No existe el concepto de agregar/indexar cambios, así que esa opción o comando es inválido", + "es_ES": "No existe el concepto de agregar/indexar cambios, así que esa opción o comando es inválido.", + "pt_BR": "Não existe o conceito de adicionar/indexar mudanças, de forma que essa opção ou comando é inválida", + "gl": "Non existe o concepto de agregar/indexar cambios, así que esa opción ou comando é inválido.", + "fr_FR": "Il n'y a pas le concept d'ajouter / mettre en staging, donc cette option ou commande est invalide", + "ro": "Nu există conceptul de adăugare / indexare a fișierelor, deci acea opțiune sau comandă este invalidă!", + "ru_RU": "Это демо не работает с файлами, так что git add не нужен!", + "uk": "В цьому демо немає можливості додати файл до робочої копії чи до стейджингу, тому ця опція чи команда некоректна чи не підтримується", + "ko": "여기엔 파일을 추가하거나 스테이징한다는 개념이 없으므로 해당 옵션이나 명령어는 유효하지 않습니다.", + "vi": "Không có khái niệm thêm tập tin đệm (staging file), nên tùy chọn đó là bất hợp lệ!", + "sl_SI": "Tu ni možnosti addanja/stageanja datotek, zato je ta ukaz nepravilen", + "pl": "Nie ma koncepcji na dodawanie/indeksowanie zmian, więc opcja lub polecenie jest niepoprawne.", + "it_IT": "Non esiste il concetto di aggiungere / indicizzare i file, quindi quell'opzione o comando non è valido!", + "ta_IN": "கோப்புகளைச் சேர்ப்பது / நிலைநிறுத்துவது என்ற கருத்து ஒன்றும் இல்லை, எனவே அந்த மற்றி அல்லது கட்டளை தவறானது", + "tr_TR": "Dosya ekleme / sahneleme kavramı yok, bu nedenle bu seçenek veya komut geçersiz!" + }, + "git-revert-msg": { + "__desc__": "Message for reverting git command", + "en_US": "Reverting {oldCommit}: {oldMsg}", + "de_DE": "Reverte {oldCommit}: {oldMsg}", + "zh_CN": "撤销 {oldCommit}:{oldMsg}", + "zh_TW": "還原 {oldCommit}:{oldMsg}", + "es_AR": "Revirtiendo {oldCommit}: {oldMsg}", + "es_MX": "Revirtiendo {oldCommit}: {oldMsg}", + "es_ES": "Volviendo a {oldCommit}: {oldMsg}", + "pt_BR": "Revertendo {oldCommit}: {oldMsg}", + "gl": "Revertindo {oldCommit}: {oldMsg}", + "fr_FR": "Revert {oldCommit}: {oldMsg}", + "ro": "Revenire {oldCommit}: {oldMsg}", + "ru_RU": "Откатываю {oldCommit}: {oldMsg}", + "uk": "Повертаю {oldCommit}: {oldMsg}", + "ko": "{oldCommit}:{oldMsg}를 복구중입니다.", + "vi": "Đang hoàn tác {oldCommit}: {oldMsg}", + "sl_SI": "Revertanje {oldCommit}: {oldMsg}", + "pl": "Cofam {oldCommit} : {oldMsg}", + "it_IT": "Ripristino {oldCommit}: {oldMsg}", + "ta_IN": "{oldCommit}: {oldMsg} மீன்டும் மாற்றியமைக்கிறது", + "tr_TR": "{oldCommit} geri alınıyor: {oldMsg}" + }, + "git-error-args-many": { + "__desc__": "One of the error messages for git", + "en_US": "I expect at most {upper} argument(s) for {what}", + "de_DE": "Ich benötige maximal {upper} Argument(e) für {what}", + "zh_CN": "{what} 期望最多 {upper} 个参数", + "zh_TW": "{what} 期望最多 {upper} 個參數", + "es_AR": "Espero como máximo {upper} parámetros para {what}", + "es_MX": "Espero como máximo {upper} parámetros para {what}", + "es_ES": "Espero al máximo {upper} parámetros para {what}.", + "pt_BR": "Espero no máximo {upper} parâmetros para {what}", + "gl": "Espero ó máximo {upper} parámetros para {what}", + "fr_FR": "J'attends au plus {upper} argument(s) pour {what}", + "ro": "Mă aștept la cel mult {upper} argument(e) pentru {what}", + "ru_RU": "Ожидается максимум {upper} аргумент(ов) для {what}", + "uk": "Я очікую максимум {upper} аргумент(ів) для {what}", + "ko": "{what}을 위해 최대 {upper}개의 인자를 받습니다.", + "vi": "Có thể có nhiều nhất {upper} tham số cho {what}", + "sl_SI": "Pričakovanih je največ {upper} argumentov za {what}", + "pl": "Oczekuję maksymalne {upper} parametrów dla {what}", + "it_IT": "Mi aspetto al massimo {upper} parametro/i per {what}", + "ta_IN": "நான் {what}க்கான உள்ளீடு(கள்) அதிகபட்சமாக {upper} எதிர்பார்க்கிறேன்", + "tr_TR": "{what} için en fazla {upper} argüman bekliyorum" + }, + "git-error-args-few": { + "__desc__": "One of the error messages for git", + "en_US": "I expect at least {lower} argument(s) for {what}", + "de_DE": "Ich benötige mindestens {lower} Argument(e) für {what}", + "zh_CN": "{what} 期望最少 {lower} 个参数", + "zh_TW": "{what} 期望最少 {lower} 個參數", + "es_AR": "Espero al menos {lower} parámetros para {what}", + "es_MX": "Espero al menos {lower} parámetros para {what}", + "es_ES": "Espero al menos {lower} parámetros para {what}.", + "pt_BR": "Espero pelo menos {lower} parâmetros para {what}", + "gl": "Agardo polo menos {lower} parámetros para {what}", + "fr_FR": "J'attends au moins {lower} argument(s) pour {what}", + "ro": "Mă aștept la cel puțin {lower} argument(e) pentru {what}", + "ru_RU": "Ожидается как минимум {lower} аргументов для {what}", + "uk": "Я очікую як мінімум {lower} аргумент(ів) для {what}", + "ko": "{what}을 위해 최소 {lower}개의 인자를 받습니다.", + "vi": "Cần ít nhất {lower} tham số cho {what}", + "sl_SI": "Pričakovanih je najmanj {lower} argumentov za {what}", + "pl": "Oczekuję co najmniej {lower} parametrów dla {what}", + "it_IT": "Mi aspetto come minimo {lower} parametro/i per {what}", + "ta_IN": "நான் {what}க்கான உள்ளீடு(கள்) குறைந்தபட்சம் {lower} எதிர்பார்க்கிறேன்", + "tr_TR": "{what} için en az {lower} argüman bekliyorum" + }, + "git-error-no-general-args": { + "__desc__": "One of the error messages for git", + "en_US": "That command accepts no general arguments", + "de_DE": "Dieser Befehl akzeptiert keine allgemeinen Argumente", + "zh_CN": "该命令不接收参数", + "zh_TW": "該指令不接受一般參數", + "es_AR": "Ese comando no acepta parámetros comunes", + "es_MX": "Ese comando no acepta parámetros comunes", + "es_ES": "Ese comando no acepta parámetros generales.", + "pt_BR": "Este comando não aceita parâmetros gerais", + "gl": "Este comando non acepta parámetros xeráis", + "fr_FR": "Cette commande n'accepte aucun argument général", + "ro": "Această comandă nu acceptă argumente generale", + "ru_RU": "Это команда без аргументов", + "uk": "Ця команда не приймає загальних аргументів", + "ko": "그 명령어는 일반적으로 인자를 받지 않습니다.", + "vi": "Lệnh đó không chấp nhận các tham số chung", + "sl_SI": "Ta ukaz ne sprejme splošnih ukazov", + "pl": "To polecenie nie przyjmuje żadnych ogólnych parametrów", + "it_IT": "Quel comando non accetta parametri generici", + "ta_IN": "அந்த கட்டளை பொதுவான உள்ளீடு எதுவும் ஏற்கவில்லை", + "tr_TR": "Bu komut genel argüman kabul etmez" + }, + "git-error-command-not-supported": { + "__desc__": "Message that appears in git console when command was not recognized.", + "en_US": "The command \"{command}\" isn't supported, sorry!", + "de_DE": "Entschuldigung, der Befehl \"{command}\" wird nicht unterstützt!", + "zh_TW": "很抱歉,目前無法支援指令 \"{command}\"!", + "it_IT": "Il comando \"{command}\" non è supportato, ci dispiace!", + "pl": "Komenda \"{command}\" nie jest obsługiwana, przepraszamy!", + "pt_BR": "O comando \"{command}\" não é suportado!", + "es_AR": "El comando \"{command}\" no es compatible, ¡disculpa!", + "es_MX": "La orden \"{command}\" no es compatible, ¡disculpa!", + "es_ES": "El comando \"{command}\" no está soportado, ¡disculpa!", + "fr_FR": "La commande \"{command}\" n'est pas supportée, désolé !", + "ro": "Comanda \"{command}\" nu este suportată, ne pare rău!", + "ru_RU": "Команда \"{command}\" не поддерживается, извините!", + "vi": "Xin lỗi, lệnh \"{command}\" không được hỗ trợ!", + "sl_SI": "Ukaz \"{command}\" ni podprt, oprostite!", + "ta_IN": "\"{command}\" என்ற கட்டளை ஆதரிக்கப்படவில்லை, வருந்துகிறோம்!", + "tr_TR": "\"{command}\" komutu desteklenmiyor, üzgünüm!" + }, + "copy-tree-string": { + "__desc__": "The prompt to copy the tree when sharing", + "en_US": "Copy the tree string below", + "de_DE": "Kopiere die folgende Baum-Zeichenkette", + "zh_CN": "拷贝下面的树字符串", + "zh_TW": "複製下方的樹狀字串", + "es_AR": "Copiá el código de acá abajo", + "es_MX": "Copia el código que se encuentra debajo", + "es_ES": "Copia el código que sigue.", + "pt_BR": "Copie o código abaixo", + "gl": "Copie o código abaixo", + "fr_FR": "Copiez la chaîne d'arbre ci-dessous", + "ro": "Copiază șirul arborelui mai jos", + "ru_RU": "Скопируй текст ниже", + "uk": "Скопіюй рядок дерева нижче", + "ko": "다음 트리 문자열을 복사하세요.", + "vi": "Sao chép chuỗi cây bên dưới", + "sl_SI": "Skopiraj besedilo drevesa spodaj", + "pl": "Skopiuj poniższy kod", + "it_IT": "Copia il codice dell'albero qua sotto", + "ta_IN": "`tree string`ஐ கீழே நகலெடுக்கவும்", + "tr_TR": "Aşağıdaki ağaç dizesini kopyalayın" + }, + "learn-git-branching": { + "__desc__": "The title of the app, with spaces", + "en_US": "Learn Git Branching", + "de_DE": "Lerne Git Branching", + "ja": "日本語版リポジトリ", + "zh_CN": "学习 Git 分支", + "zh_TW": "學習 git 分支", + "es_AR": "Aprendé a Branchear en Git", + "es_MX": "Aprende Git Branching", + "es_ES": "Aprende Git Branching", + "pt_BR": "Aprenda Git Branching", + "gl": "Aprende Git Branching", + "fr_FR": "Apprenez Git Branching", + "ro": "Învață ramificarea Git", + "ru_RU": "Изучаем ветвление в git", + "uk": "Вивчай Git Branching", + "ko": "깃 브랜칭을 배우기", + "vi": "Học nhánh Git", + "sl_SI": "Nauči se Git Branching", + "pl": "Naucz się Git Branching-u", + "it_IT": "Impara Git Branching", + "ta_IN": "கிட் கிளை அமைத்தல்", + "tr_TR": "Learn Git Branching(Git Dal Oluşumunu Öğren)" + }, + "select-a-level": { + "__desc__": "The prompt to select a level on the drop down view", + "en_US": "Select a level", + "de_DE": "Level auswählen", + "zh_CN": "选择一关", + "zh_TW": "選擇其中一關", + "es_AR": "Seleccioná un nivel", + "es_MX": "Selecciona un nivel", + "es_ES": "Selecciona un nivel", + "pt_BR": "Selecione um nível", + "gl": "Selecciona un nivel", + "fr_FR": "Choisissez un niveau", + "ro": "Selectează un nivel", + "ru_RU": "Выбери уровень", + "uk": "Обери рівень", + "ko": "레벨을 선택하세요.", + "vi": "Chọn một cấp độ", + "sl_SI": "Izberi stopnjo", + "pl": "Wybierz poziom", + "it_IT": "Scegli un livello", + "ta_IN": "ஒரு நிலையை தேர்வு செய்யுங்கள்", + "tr_TR": "Bir level (Seviye) seç" + }, + "main-levels-tab": { + "__desc__": "The name of main levels tab on the drop down view", + "en_US": "Main", + "de_DE": "Haupt", + "zh_CN": "主要", + "zh_TW": "主要", + "es_ES": "Principal", + "fr_FR": "Principal", + "gl": "Principal", + "ro": "Principal", + "ru_RU": "Основы", + "uk": "Основи", + "ko": "메인", + "vi": "Bài học chính", + "sl_SI": "Glavno", + "pl": "Główny", + "it_IT": "Menu", + "ta_IN": "பிரதானம்", + "tr_TR": "Main(Ana)" + }, + "remote-levels-tab": { + "__desc__": "The name of remote levels tab on the drop down view", + "en_US": "Remote", + "de_DE": "Remote", + "zh_CN": "远程", + "zh_TW": "遠端", + "es_ES": "Remota", + "fr_FR": "Remote", + "gl": "Remota", + "ro": "Ramuri Remote", + "ru_RU": "Удаленные репозитории", + "uk": "Віддалені репозиторії", + "ko": "원격", + "vi": "Bài học về thao tác từ xa", + "sl_SI": "Oddaljeno", + "pl": "Zdalny", + "it_IT": "Remoto", + "ta_IN": "தொலைநிலை", + "tr_TR": "Uzak(Remote)" + }, + "branch-name-short": { + "__desc__": "When branch names get too long, we need to truncate them. This is the warning for that", + "en_US": "Sorry, we need to keep branch names short for the visuals. Your branch name was truncated to 9 characters, resulting in \"{branch}\"", + "de_DE": "Tut mir leid, aber aus Gründen der Darstellung müssen wir die Branch-Namen kurz halten. Dein Branch-Name wurde auf 9 Zeichen gekürzt und heißt daher jetzt \"{branch}\"", + "zh_CN": "抱歉,为了显示的需要,我们需要一个短些的分支名称。您使用的名称将被截断到9个字符,即 \"{branch}\"", + "zh_TW": "抱歉,為了顯示的需要,我們需要一個短一點的 branch 名稱。您使用的將會被截斷到剩下9個字元,即\"{branch}\"", + "es_AR": "Perdón, necesitamos mantener los nombres de los branches cortos para visualizarlos. El nombre de tu rama se truncó a 9 caracteres, resultando en \"{branch}\"", + "es_MX": "Perdón, necesitamos mantener los nombres de las ramas cortos para visualizarlos. El nombre de tu rama se truncó a 9 caracteres, resultando en \"{branch}\"", + "es_ES": "Perdón, necesitamos mantener los nombres de las ramas cortos para visualizarlos. El nombre de tu rama se truncó a 9 caracteres, resultando en \"{branch}\"", + "pt_BR": "Desculpe, precisamos manter os nomes dos ramos curtos para visualizá-los. O nome do seu ramo foi truncado para 9 caracteres, resultando em \"{branch}\"", + "gl": "Desculpe, precisamos manter os nomes das ramas curtas para poder velas. O nome da súa rama foi truncada a 9 letras, resultado en \"{branch}\"", + "fr_FR": "Désolé, nous devons garder les noms de branches courts pour la visualisation. Votre nom de branche a été tronqué à 9 caractères, devenant \"{branch}\"", + "ro": "Ne pare rău, trebuie să păstrăm numele ramurilor scurte pentru vizualizare. Numele ramurii tale a fost trunchiat la 9 caractere, rezultând \"{branch}\"", + "ru_RU": "Для наглядности нам нужно сохранять имена веток короткими. Твоё название сокращено до 9 символов и теперь это \"{branch}\"", + "uk": "Вибач, нам потрібно щоб ім’я гілок було як можна коротше для наглядності. Твоє ім’я гілки було скорочене до 9 літер й тепер це \"{branch}\"", + "ko": "죄송하지만, 가독성을 위해 짧은 브랜치명이 필요합니다. 브랜치명이 최대 9자리로 잘려 \"{branch}\"로 변경되었습니다.", + "vi": "Xin lỗi, chúng tôi cần giữ tên nhánh ngắn để tiện minh họa. Tên nhánh của bạn đã bị cắt xuống 9 ký tự là \"{branch}\"", + "sl_SI": "Oprosti, imena branchev moramo obdržati kratka zaradi vizualizacije. Tvoje ime brancha je bilo skrajšano na 9 črk, kar predstavlja \"{branch}\"", + "pl": "Przepraszamy, ze względu na wizualizacje musimy zachować krótkie nazwy gałęzi. Nazwa Twojej gałęzi została skrócona do 9 znaków, w wyniku czego otrzymano \"{branch}\"", + "it_IT": "Scusa ma i nomi dei rami devono essere brevi per essere visualizzati. Il nome del tuo ramo è stato accorciato a 9 caratteri, rinominandolo come \"{branch}\"", + "ta_IN": "மன்னிக்கவும், காட்சிகளுக்கு கிளை பெயர்களை குறுகியதாக வைத்திருக்க வேண்டி உள்ளது. உங்கள் கிளையின் பெயர் 9 எழுத்துகளாக சுருக்கப்பட்டு, \"{branch}\" ஆக மற்றப்பட்டுள்ளது", + "tr_TR": "Üzgünüm, görseller için dal isimlerini kısa tutmamız gerekiyor. Dal isminiz 9 karaktere kısaltıldı, bu da \"{branch}\" oldu." + }, + "bad-branch-name": { + "__desc__": "When the user enters a branch name thats not ok", + "en_US": "That branch name \"{branch}\" is not allowed!", + "de_DE": "Der Branch-Name \"{branch}\" ist nicht erlaubt!", + "zh_CN": "不能给分支起这个名字 \"{branch}\"", + "zh_TW": "不能给 branch 起這個名字 \"{branch}\"", + "es_AR": "El nombre \"{branch}\" no está permitido para los branches", + "es_MX": "El nombre \"{branch}\" está prohibido para nombrar una rama", + "es_ES": "El nombre \"{branch}\" es prohibido para nombrar una rama.", + "pt_BR": "Um ramo não pode ser chamado de \"{branch}\"!", + "gl": "Unha rama non pode ser chamada \"{branch}", + "fr_FR": "Ce nom de branche \"{branch}\" n'est pas autorisé", + "ro": "Numele \"{branch}\" nu este permis pentru ramuri", + "ru_RU": "Название для ветки \"{branch}\" недопустимо!", + "uk": "Назва гілки \"{branch}\" є недопустимою", + "ko": "\"{branch}\"라는 브랜치명은 사용할 수 없습니다.", + "vi": "Tên nhánh \"{branch}\" không được chấp nhận!", + "sl_SI": "To ime brancha \"{branch}\" ni dovoljeno!", + "pl": "Ta nazwa gałęzi \"{branch}\" jest niedozwolona!", + "it_IT": "Il nome \"{branch}\" per i rami non è consentito!", + "ta_IN": "\"{branch}\" ஐ கிளையின் பெயராக ஏற்க்க இயலாது!", + "tr_TR": "Bu dal ismi \"{branch}\" izin verilmez!" + }, + "bad-tag-name": { + "__desc__": "When the user enters a tag name thats not ok", + "en_US": "That tag name \"{tag}\" is not allowed!", + "zh_CN": "该标签名 “{tag}” 不被接受。", + "zh_TW": "該標籤名 “{tag}” 不被接受。", + "es_AR": "El nombre \"{tag}\" no está permitido para los tags", + "es_MX": "El nombre \"{tag}\" está prohibido para nombrar un tag", + "es_ES": "El nombre \"{tag}\" es prohibido para nombrar un tag.", + "pt_BR": "Uma tag não pode ser chamada de \"{tag}\"!", + "gl": "Unha etiqueta non pode ser chamada \"{tag}\"", + "de_DE": "Der Tag-Name \"{tag}\" ist nicht erlaubt!", + "fr_FR": "Le nom de tag \"{tag}\" n'est pas autorisé", + "ro": "Numele \"{tag}\" nu este permis pentru tag-uri", + "ru_RU": "Название для тега \"{tag}\" недопустимо!", + "uk": "Назва тегу \"{tag}\" є недопустимою", + "ko": "\"{tag}\"라는 태그명은 사용할 수 없습니다.", + "vi": "Tên thẻ \"{tag}\" không được chấp nhận!", + "sl_SI": "To ime tag-a \"{tag}\" ni dovoljeno!", + "pl": "Ta nazwa tagu \"{tag}\" jest niedozwolona!", + "it_IT": "Il nome \"{tag}\" per i tag non è consentito!", + "ta_IN": "\"{tag}\" ஐ குறிச்சொல் பெயராக ஏற்க்க இயலாது!", + "tr_TR": "Bu etiket ismi \"{tag}\" izin verilmez!" + }, + "option-not-supported": { + "__desc__": "When the user specifies an option that is not supported by our demo", + "en_US": "The option \"{option}\" is not supported!", + "de_DE": "Die Option \"{option}\" wird nicht unterstützt!", + "zh_CN": "不支持选项 \"{option}\"", + "zh_TW": "不支援的選項 \"{option}\"", + "es_AR": "La opción {option} no está soportada", + "es_MX": "La opción {option} no es compatible con ésta demo", + "es_ES": "La opción {option} no compatible con esta demo.", + "pt_BR": "A opção {option} não é suportada", + "gl": "A opción {option} non está soportada", + "fr_FR": "L'option \"{option}\" n'est pas supportée", + "ro": "Opțiunea \"{option}\" nu este suportată!", + "ru_RU": "Опция \"{option}\" недопустима!", + "uk": "Опція \"{option}\" не підтримується!", + "ko": "\"{option}\"(이)라는 옵션은 지원하지 않습니다.", + "vi": "Tùy chọn \"{option}\" không được hỗ trợ!", + "sl_SI": "Opcija \"{option}\" ni podprta! ", + "pl": "Opcja \"{option}\" nie jest obsługiwana!", + "it_IT": "L'opzione \"{option}\" non è supportata!", + "ta_IN": "\"{option}\" மாற்று செயல் ஆதரிக்கப்படவில்லை!", + "tr_TR": "\"{option}\" seçeneği desteklenmiyor!" + }, + "git-usage-command": { + "__desc__": "The line that shows how to format a git command", + "en_US": "git []", + "de_DE": "git []", + "zh_CN": "git <命令> [<参数>]", + "zh_TW": "git <指令> [<參數>]", + "es_AR": "git []", + "es_MX": "git []", + "es_ES": "git []", + "pt_BR": "git []", + "gl": "git []", + "fr_FR": "git []", + "ro": "git []", + "ru_RU": "git <команда> [<аргументы>]", + "uk": "git <команда> [<аргументи>]", + "ko": "git <명령어> [<인자들>]", + "vi": "git []", + "sl_SI": "git []", + "pl": "git []", + "it_IT": "git []", + "ta_IN": "git []", + "tr_TR": "git []" + }, + "git-supported-commands": { + "__desc__": "In the git help command, the header above the supported commands", + "en_US": "Supported commands:", + "de_DE": "Unterstützte Befehle:", + "zh_CN": "支持的命令有:", + "zh_TW": "支援的指令有:", + "es_AR": "Comandos soportados:", + "es_MX": "Comandos compatibles:", + "es_ES": "Comandos compatibles:", + "pt_BR": "Comandos suportados:", + "gl": "Comandos soportados:", + "fr_FR": "Commandes supportées", + "ro": "Comenzi suportate:", + "ru_RU": "Поддерживаемые команды", + "uk": "Допустимі команди", + "ko": "지원되는 명령어들:", + "vi": "Các lệnh được hỗ trợ:", + "sl_SI": "Podprti ukazi:", + "pl": "Obsługiwane polecenia:", + "it_IT": "Comandi supportati:", + "ta_IN": "செயலாக்கம் உள்ள கட்டளைகள்;", + "tr_TR": "Desteklenen komutlar:" + }, + "git-usage": { + "__desc__": "In the dummy git output, the header before showing all the commands", + "en_US": "Usage:", + "de_DE": "Benutzung:", + "zh_CN": "使用:", + "zh_TW": "用法:", + "es_AR": "Uso:", + "es_MX": "Uso:", + "es_ES": "Uso:", + "pt_BR": "Uso:", + "gl": "Uso:", + "fr_FR": "Utilisation :", + "ro": "Utilizare:", + "ru_RU": "Использование:", + "uk": "Використання:", + "ko": "사용법", + "vi": "Cách dùng:", + "sl_SI": "Uporaba:", + "pl": "Użyj", + "it_IT": "Utilizzo:", + "ta_IN": "பயன்பாடு", + "tr_TR": "Kullanım:" + }, + "git-version": { + "__desc__": "The git version dummy output, kind of silly. PCOTTLE is my unix name but feel free to put yours instead", + "en_US": "Git Version PCOTTLE.1.0", + "de_DE": "Git Version PCOTTLE.1.0.jbr", + "zh_CN": "Git 版本 PCOTTLE.1.0", + "zh_TW": "Git 版本 PCOTTLE.1.0", + "es_AR": "Git Versión PCOTTLE.1.0", + "es_MX": "Git Versión PCOTTLE.1.0", + "es_ES": "Git Versión PCOTTLE.1.0", + "pt_BR": "Git versão PCOTTLE.1.0", + "gl": "Git versión PCOTTLE.1.0", + "fr_FR": "Git version PCOTTLE.1.0", + "ro": "Versiunea Git PCOTTLE.1.0", + "ru_RU": "Версия git PCOTTLE.1.0", + "uk": "Версія git PCOTTLE.1.0", + "ko": "Git Version PCOTTLE.1.0", + "vi": "Phiên bản Git PCOTTLE.1.0", + "sl_SI": "Git Verzija PCOTTLE.1.0", + "pl": "Wersja GIT-a OLSZA-YSC-1.0", + "it_IT": "Git Version SHARDANA_SOFT.1.0.0", + "ta_IN": "Git Version PCOTTLE.1.0", + "tr_TR": "Git versiyonu PCOTTLE.1.0" + }, + "flip-tree-command": { + "__desc__": "when the tree is being flipped", + "en_US": "Flipping tree...", + "de_DE": "Kehre den Baum um...", + "zh_CN": "翻转树中...", + "zh_TW": "翻轉樹中...", + "es_AR": "Invirtiendo el árbol...", + "es_MX": "Invirtiendo el árbol...", + "es_ES": "Invirtiendo el árbol...", + "pt_BR": "Invertendo a árvore...", + "gl": "Invirtindo a árbore...", + "fr_FR": "Inversion de l'arbre...", + "ro": "Întorc copacul...", + "ru_RU": "Переворачиваю дерево...", + "uk": "Перевертаю дерево...", + "ko": "트리를 뒤집는중...", + "vi": "Cây lật...", + "sl_SI": "Obračanje drevesa ...", + "pl": "Odwracanie drzewa...", + "it_IT": "Girando l'albero...", + "ta_IN": "Flipping tree...", + "tr_TR": "Ağaç ters çevriliyor..." + }, + "refresh-tree-command": { + "__desc__": "when the tree is visually refreshed", + "en_US": "Refreshing tree...", + "de_DE": "Aktualisiere Baum ...", + "zh_CN": "正在刷新树结构...", + "zh_TW": "正在更新樹狀結構...", + "es_AR": "Refrezcando el árbol...", + "es_MX": "Actualizando el árbol...", + "es_ES": "Actualizando el árbol...", + "pt_BR": "Atualizando a árvore...", + "gl": "Actualizando a árbore...", + "fr_FR": "Actualisation de l'arbre…", + "ro": "Actualizare copac...", + "ru_RU": "Обновляю дерево...", + "uk": "Оновлюю дерево...", + "ko": "트리를 다시 불러오는중...", + "vi": "Đang làm mới cây...", + "sl_SI": "Osveževanje drevesa ...", + "pl": "Odświeżanie drzewa...", + "it_IT": "Aggiornando l'albero...", + "ta_IN": "Refreshing tree...", + "tr_TR": "Ağaç yenileniyor..." + }, + "locale-command": { + "__desc__": "when the locale is set to something", + "en_US": "Locale set to {locale}", + "de_DE": "Locale auf {locale} gesetzt", + "zh_CN": "语言更改为 {locale}", + "zh_TW": "語系設為 {locale}", + "es_AR": "Localización actualizada a {locale}", + "es_MX": "Idioma actualizado a {locale}", + "es_ES": "Idioma puesto a {locale}", + "pt_BR": "Idioma trocado para {locale}", + "gl": "Cambiado o idioma a {locale}", + "fr_FR": "Langue changée à {locale}", + "ro": "Locale setat la {locale}", + "ru_RU": "Локаль теперь равна {locale}", + "uk": "Локаль тепер дорівнює {locale}", + "ko": "로케일이 {locale}로 설정되었습니다.", + "vi": "Ngôn ngữ được thay đổi thành {locale}", + "sl_SI": "Locale nastavljen na {locale}", + "pl": "Ustawiono język na {locale}", + "it_IT": "Locale impostato a {locale}", + "ta_IN": "பிரதேசம் {locale}ஆக மற்ற பட்டுள்ளது", + "etr_TR": "{locale} olarak dil ayarlandı" + }, + "locale-reset-command": { + "__desc__": "when the locale is reset", + "en_US": "Locale reset to default, which is {locale}", + "de_DE": "Locale auf Standard zurückgesetzt, also {locale}", + "zh_CN": "语言重置为默认的 {locale}", + "zh_TW": "還原為預設語系 {locale}", + "es_AR": "Localización vuelta al default, que es {locale}", + "es_MX": "Idioma reestablecido al default, que es {locale}", + "es_ES": "Idioma reajustado a su valor por defecto ({locale})", + "pt_BR": "Idioma retornado para o padrão, que é {locale}", + "gl": "Lingua reaxustada ó seu valor por defecto {locale}", + "fr_FR": "Langue remise par défaut, qui est {locale}", + "ro": "Locale resetat la valoarea implicită, care este {locale}", + "ru_RU": "Локаль сброшена. Теперь она равна {locale}", + "uk": "Локаль скинута. Тепер вона дорівнює {locale}", + "ko": "로케일이 {locale}로 초기화 되었습니다.", + "vi": "Ngôn ngữ được đổi thành mặc định: {locale}", + "sl_SI": "Locale ponastavljen na {locale}", + "pl": "Przywrócono język do wartości domyślnych, czyli {locale}", + "it_IT": "Locale resettato al valore di default, che è {locale}", + "ta_IN": "பிரதேசம் இயல்புநிலை {locale}க்கி மீட்டமைக்கப்பட்டுள்ளது", + "tr_TR": "Dil varsayılan olarak sıfırlandı, bu {locale}" + }, + "show-command": { + "__desc__": "command output title from \"show\"", + "en_US": "Please use one of the following commands for more info:", + "zh_TW": "請使用下列其中一個指令取得更多資訊:", + "zh_CN": "请使用以下命令以了解更多:", + "de_DE": "Bitte benutze einen der folgenden Befehle um mehr Informationen zu bekommen:", + "es_AR": "Usá alguno de estos comandos para tener más información:", + "es_MX": "Por favor, utilice alguno de estos comandos para tener más información:", + "es_ES": "Por favor usa uno de los siguientes comandos para más información:", + "pt_BR": "Use algum destes comandos para ter mais informações:", + "gl": "Usa algún destes comandos para ter máis información:", + "fr_FR": "Merci d'utiliser une des commandes suivantes pour obtenir plus d'informations", + "ro": "Pentru mai multe informații, folosește una dintre următoarele comenzi:", + "ru_RU": "Для получения большей информации используй следующие команды:", + "uk": "Щоб отримати більше інформації використовуй наступні команди:", + "ko": "더 많은 정보를 위해 다음 명령어들중 하나를 사용하세요:", + "vi": "Vui lòng dùng một trong các lệnh sau để có thêm thông tin:", + "sl_SI": "Prosim uporabi enega od naslednjih ukazov", + "pl": "Aby uzyskać więcej informacji, użyj jednego z następujących poleceń:", + "it_IT": "Usa uno dei seguenti comandi per maggiori informazioni:", + "ta_IN": "மேலும் தகவலுக்கு பின்வரும் கட்டளைகளில் ஒன்றைப் பயன்படுத்தவும்:", + "tr_TR": "Daha fazla bilgi için lütfen aşağıdaki komutlardan birini kullanın:" + }, + "show-all-commands": { + "__desc__": "command output title from \"show commands\"", + "en_US": "Here is a list of all the commmands available:", + "zh_TW": "這份清單列出所有可用指令:", + "zh_CN": "该列表列出了所有可用的指令:", + "de_DE": "Hier ist eine Liste aller verfügbaren Befehle:", + "es_AR": "Esta es una lista de los comandos disponibles:", + "es_MX": "Esta es una lista de todos los comandos disponibles:", + "es_ES": "Esta es una lista de todos los comandos disponibles:", + "pt_BR": "Esta é uma lista dos comandos disponíveis:", + "gl": "Esta é unha lista dos comando dispoñibles:", + "fr_FR": "Ci-dessous est la liste de toutes les commandes disponibles :", + "ro": "Iată o listă cu toate comenzile disponibile:", + "ru_RU": "Вот все поддерживаемые команды:", + "uk": "Ось список всіх можливих команд:", + "ko": "여기에 사용 가능한 모든 명령어들의 리스트가 있습니다.", + "vi": "Dưới đây là danh sách tất cả các lệnh có sẵn:", + "sl_SI": "Tu je seznam vseh možnih ukazov:", + "pl": "Oto lista wszystkich dostępnych poleceń:", + "it_IT": "Ecco la lista con tutti i comandi disponibili:", + "ta_IN": "கிடைக்கக்கூடிய அனைத்து கட்டளைகளின் பட்டியல்:", + "tr_TR": "İşte tüm mevcut komutların bir listesi:" + }, + "cd-command": { + "__desc__": "dummy command output for the command in the key", + "en_US": "Directory changed to \"/directories/dont/matter/in/this/demo\"", + "de_DE": "Verzeichnis gewechselt zu \"/verzeichnisse/sind/in/dieser/demo/irrelevant\"", + "zh_CN": "目录切换到 \"/directories/dont/matter/in/this/demo\"", + "zh_TW": "目錄切換到 \"/directories/dont/matter/in/this/demo\"", + "es_AR": "Directorio cambiado a \"/los/directorios/no/importan/en/esta/demo\"", + "es_MX": "Directorio cambiado a \"/los/directorios/no/importan/en/esta/demo\"", + "es_ES": "Directorio cambiado a \"/los/directorios/no/importan/en/esta/demo\"", + "pt_BR": "Diretório mudado para \"/diretorios/nao/importam/neste/demo\"", + "gl": "Directorio cambiado a \"/os/directorios/non/importan/nesta/demo\"", + "fr_FR": "Répertoire changé à \"/directories/dont/matter/in/this/demo\" (les répertoires ne servent à rien dans cette démo)", + "ro": "Director schimbat la \"/directories/dont/matter/in/this/demo\"", + "ru_RU": "Директория изменена на \"/директории/не/важны/в/этом/демо\"", + "uk": "Директорія змінена на \"/директорії/не/мають/значення/в/цьому/демо\"", + "ko": "디렉토리가 \"/directories/dont/matter/in/this/demo\"로 변경되었습니다.", + "vi": "Thay đổi thư mục thành \"/directories/dont/matter/in/this/demo\"", + "sl_SI": "Mapa spremenjena na \"/directories/dont/matter/in/this/demo\"", + "pl": "Katalog zmieniony na \"/home/users/windows/pl/demo\"", + "it_IT": "Cartella modificata in \"/directories/dont/matter/in/this/demo\"", + "ta_IN": "அடைவு \"/directories/dont/matter/in/this/demo\"க்கு மாற்றப்பட்டது", + "tr_TR": "Dizin \"/directories/dont/matter/in/this/demo\" olarak değiştirildi" + }, + "ls-command": { + "__desc__": "Dummy command output for the command in the key", + "en_US": "DontWorryAboutFilesInThisDemo.txt", + "de_DE": "VergissDateienInDieserDemo.txt", + "zh_CN": "在本程序中无须考虑文件问题.txt", + "zh_TW": "DontWorryAboutFilesInThisDemo.txt (譯註:在 demo 裡不用擔心檔案)", + "es_AR": "NoTePreocupesPorLosArchivosEnEstaDemo.txt", + "es_MX": "NoTePreocupesPorLosArchivosEnEstaDemo.txt", + "es_ES": "NoTePreocupesPorLosArchivosEnEstaDemo.txt", + "pt_BR": "NaoSePreocupeComNomesDeArquivoNesteDemo.txt", + "gl": "NonTePreocupesPolosCambiosNestaDemo.txt", + "fr_FR": "DontWorryAboutFilesInThisDemo.txt (ne vous préoccupez pas des noms de fichier dans cette démo)", + "ro": "NuTeStresaCuFișiereleÎnAcestDemo.txt", + "ru_RU": "НеНадоЗаботитьсяОФайлахВЭтомДемо.txt", + "uk": "ЗабийНаФайлиВЦьомуДемо.txt", + "ko": "DontWorryAboutFilesInThisDemo.txt (이_데모에서_파일에_대한_걱정은_하지마세요.txt)", + "vi": "DontWorryAboutFilesInThisDemo.txt (ĐừngLoLắngVềTậpTinTrongBảnGiớiThiệuNày.txt)", + "sl_SI": "DontWorryAboutFilesInThisDemo.txt", + "pl": "SpokojnieToTylkoPlikDemo.txt", + "it_IT": "NoNdEvIpReOcCuPaRtIdEiFiLeInQuEsTaDeMo.txt", + "ta_IN": "DontWorryAboutFilesInThisDemo.txt", + "tr_TR": "DontWorryAboutFilesInThisDemo.txt" + }, + "mobile-alert": { + "__desc__": "When someone comes to the site on a mobile device, they can not input commands so this is a nasty alert to tell them", + "en_US": "LGB can't receive input on mobile, visit on desktop! it's worth it :D", + "de_DE": "LGB ist nicht mit mobilen Endgeräten kompatibel, benutz es vom Desktop! Es lohnt sich :D", + "zh_CN": "无法在移动设备/平板上调出键盘 :( 请试试桌面版 :D", + "zh_TW": "無法在行動裝置上叫出鍵盤,請改用桌面版!", + "es_AR": "LGB no puede recibir comandos en dispositivos móviles. Visitanos desde una desktop, ¡lo vale! :D", + "es_MX": "LGB no puede recibir comandos en dispositivos móviles. Visítanos en una computadora de escritorio u laptop, ¡Vale la pena! :D", + "es_ES": "LGB no puede recibir comandos en dispositivos móviles. Visítanos en una computadora de escritorio, ¡lo vale! :D", + "pt_BR": "Provavelmente você não vai conseguir digitar comandos no celular, neste caso tente acessar de um computador", + "gl": "LGB non pode recibir os comandos nos dispositivos móbiles. Visítanos dende un ordenador de escritorio, ¡paga a pena! :D", + "fr_FR": "Impossible de faire apparaître le clavier sur mobile / tablette :( Essayez de passer sur un ordinateur de bureau :D", + "ro": "NuTeStresaCuFișiereleÎnAcestDemo.txt", + "ru_RU": "Мобильные не поддерживаются, зайди с компьютера!", + "uk": "LGB не підтримує ввід тексту з мобільного, зайди з компьютера! Це цього варте!", + "ko": "LGB는 모바일에서 입력을 받을 수 없으니 데스크톱으로 접속하세요! 후회하지 앉을겁니다. :D", + "vi": "Đáng tiếc là ứng dụng không thể nhận thông tin từ điện thoại hay máy tính bảng, hãy sử dụng máy tính cá nhân, đáng để bỏ công mà :D", + "sl_SI": "LGB ne more sprejeti ukazov na mobilni napravi, obiščite nas na računalinku! Je vredno :D ", + "pl": "Przepraszamy, ale LearnGitBranching nie obsługuje wpisywania komend z urządzeń mobilnych. Odwiedź LearnGitBranching na komputerze stacjonarnym, warto! :D", + "it_IT": "LGB non funziona su mobile, vieni a trovarci da pc! Ne vale veramente la pena :D", + "ta_IN": "LGBஆல் மொபைலில் உள்ளீட்டைப் பெற முடியாது, டெஸ்க்டாப்பில் பார்வையிடவும், அது பயணுள்ளது :D", + "tr_TR": "LGB mobilde giriş alamaz, masaüstü üzerinden ziyaret et! Değmesine değer :D" + }, + "share-tree": { + "__desc__": "When you export a tree, we want you to share the tree with friends", + "en_US": "Share this tree with friends! They can load it with \"import tree\"", + "de_DE": "Teile diesen git-Baum mit Freunden! Sie können ihn mit \"import tree\" laden", + "zh_CN": "与你的好友分享提交树!他们可以用 \"import tree\" 加载它", + "zh_TW": "與你的好友分享這棵樹!他們可以用 \"import tree\" 來載入它", + "es_AR": "¡Compartí este árbol con amigos! Pueden cargarlo con \"import tree\"", + "es_MX": "¡Comparte éste árbol con amigos! Pueden cargarlo con \"import tree\"", + "es_ES": "¡Comparte este árbol con amigos! Pueden cargarlo con \"import tree\"", + "pt_BR": "Compartilhe esta árvore com seus amigos! Eles podem carregá-la com \"import tree\"", + "gl": "¡Comparte esta árbore cos teus amigos! Eles poden cargalo con \"import tree\"", + "fr_FR": "Partagez cet arbre avec vos amis ! Ils peuvent le charger avec \"import tree\"", + "ro": "Împărtășește acest copac cu prietenii! Ei îl pot încărca cu \"import tree\"", + "ru_RU": "Поделись деревом с друзьями! Они могут загрузить его при помощи \"import tree\"", + "uk": "Поділись цим деревом з друзями! Вони зможуть його завантажити за допомогою \"import tree\"", + "ko": "이 트리를 친구들에게 공유하세요! 친구들이 \"import tree\"를 사용하여 로드할 수 있습니다.", + "vi": "Hãy chia sẻ cây này với bạn của mình! Họ có thể dùng \"import tree\" để tải", + "sl_SI": "Deli to drevo s prijatelji! Lahko ga naložijo z \"import tree\"", + "pl": "Udostępnij to drzewo znajomym! Mogą je załadować za pomocą \"import tree\"", + "it_IT": "Condividi quest'albero con i tuoi amici! Può essere importato tramite \"import tree\"", + "ta_IN": "இந்த `tree`ஐ நண்பர்களுடன் பகிர்ந்து கொள்ளுங்கள்! அவர்கள் அதை \"import tree\" மூலம் பெறலாம்", + "tr_TR": "Bu ağacı arkadaşlarınla paylaş! \"import tree\" komutuyla yükleyebilirler" + }, + "paste-json": { + "__desc__": "When you are importing a level or tree", + "en_US": "Paste a JSON blob below!", + "de_DE": "Füg einen JSON-Blob unten ein!", + "zh_CN": "在下边粘贴一个 JSON 串", + "zh_TW": "在下方貼上一串 JSON", + "es_AR": "¡Pegá un blob JSON abajo!", + "es_MX": "¡Pega un blob JSON abajo!", + "es_ES": "¡Pega un blob JSON abajo!", + "pt_BR": "Cole o JSON abaixo!", + "gl": "Pega un JSON abaixo!", + "fr_FR": "Collez un blob JSON ci-dessous !", + "ro": "Introdu un blob JSON mai jos!", + "ru_RU": "Вставь JSON ниже!", + "uk": "Встав JSON нижче!", + "ko": "아래에 JSON blob을 붙여넣으세요.", + "vi": "Dán một chuỗi JSON xuống bên dưới!", + "sl_SI": "Prilepi JSON kodo spodaj!", + "pl": "Wklej poniżej obiekt z kodem JSON!", + "it_IT": "Incolla un blob JSON qui sotto!", + "ta_IN": "ஒரு JSON blob-ஐ கீழே ஒட்டவும்", + "etr_TR": "Aşağıya bir JSON verisi yapıştırın!" + }, + "solved-map-reset": { + "__desc__": "When you reset the solved map to clear your solved history, in case someone else wants to use your browser", + "en_US": "Solved map was reset, you are starting from a clean slate!", + "de_DE": "Gelöste Karte wurde zurückgesetzt, du fängst mit einem leeren Blatt an!", + "zh_CN": "解决列表已重置,您现在可以从头开始了", + "zh_TW": "過關地圖已經重新設置,您現在從零開始了", + "es_AR": "El mapa resuelto fue eliminado, estás arrancando desde un estado limpio", + "es_MX": "El mapa resuelto fue eliminado, estás empezando desde un estado limpio", + "es_ES": "El mapa resuelto fue eliminado, estás empezando de un estado limpio.", + "pt_BR": "Mapa de resolvidos descartado, você está começando com ficha limpa!", + "gl": "O mapa resolto foi eliminado, estás arrancando dende un estado limpo.", + "fr_FR": "La carte des niveaux résolus a été effacée, vous repartez de zéro !", + "ro": "Totul a fost resetat, începi de la zero!", + "ru_RU": "Всё сброшено! Можно начать с чистого листа!", + "uk": "Все скинуте! Можна починати з чистого аркушу!", + "ko": "해결된 맵이 초기화 되었습니다. 이제 초기 상태에서 시작합니다!", + "vi": "Tất cả đáp án đã được xóa, bạn có thể bắt đầu lại từ đầu!", + "sl_SI": "Rešena mapa je ponastavljena, začel boš lahko na novo!", + "pl": "Rozwiązania zostały wyczyszczone, zaczynasz z czystą kartą.", + "it_IT": "I progresse salvati sono stati resettati, stai iniziando da zero!", + "ta_IN": "தீர்க்கப்பட்ட கோப்பு மீட்டமைக்கப்பட்டது, நீங்கள் ஆரம்பத்தில் இருந்து தொடங்குகிறீர்கள்!", + "tr_TR": "Çözülen harita sıfırlandı, temiz bir sayfadan başlıyorsunuz!" + }, + "level-cant-exit": { + "__desc__": "When the user tries to exit a level when they are not in one", + "en_US": "You are not in a level! You are in a sandbox, start a level with \"levels\"", + "de_DE": "Du bist nicht in einem Level! Du bist im Sandkasten-Modus, starte ein Level mit \"levels\"", + "zh_CN": "您没在关卡中而是在沙盒中,要开始关卡请输入 \"levels\"", + "zh_TW": "您沒在關卡中!您在沙盒中,要開始關卡請輸入 \"levels\"", + "es_AR": "¡No estás en un nivel! Estás en el sandbox, comenzá un nivel usando \"levels\"", + "es_MX": "¡No estás en un nivel! Estás en el sandbox, comienza un nivel con \"levels\"", + "es_ES": "¡No estás en un nivel! Estás en el sandbox, comienza un nivel con \"levels\"", + "pt_BR": "Você não está em um nível! Você está no sandbox, comece um nível com \"levels\"", + "gl": "¡Non estás en ningún nivel! Estás nunha caixa de arena, comeza un nivel usando \"levels\"", + "fr_FR": "Vous n'êtes pas dans un niveau ! Vous êtes dans le mode bac à sable, commencez un niveau avec \"levels\"", + "ro": "Nu ești într-un nivel! Ești în sandbox, începe un nivel cu \"levels\"", + "ru_RU": "Ты не проходишь уровень! Ты в песочнице! Чтобы начать уровень, используй команду \"levels\"!", + "uk": "Ти не в рівні! Ти в пісочниці! Почни рівень з \"levels\"", + "ko": "현재 샌드박스에 있습니다! \"levels\"를 사용하여 레벨을 시작하세요.", + "vi": "Bạn hiện không ở cấp độ nào cả! Bạn đang ở trong hộp cát (sandbox), hãy bắt đầu một cấp độ với \"levels\"", + "sl_SI": "Nisi v stopnji! Si v peskovniku, začni stopnjo z \"levels\"", + "pl": "Nie jesteś na poziomie! Jesteś w trybie piaskownicy, zacznij poziom wpisując \"levels\"", + "it_IT": "Non ti trovi in un livello! Sei nella sandbox, inizia un livello con \"levels\"", + "ta_IN": "ஒரு நிலையில் இல்லாமல், நீங்கள் sandbox-இல் உள்ளீர்கள்! \"நிலைகள்\" மூலம் ஒரு நிலையைத் தொடங்கவும்", + "tr_TR": "Bir seviyede değilsiniz! Bir kum havuzundasınız, \"levels\" ile bir seviye başlatın." + }, + "level-no-id": { + "__desc__": "When you say an id but that level doesn't exist", + "en_US": "A level for that id \"{id}\" was not found! Opening up a level selection view", + "de_DE": "Konnte kein Level mit der ID \"{id}\" finden! Öffne den Level-Auswahldialog", + "zh_CN": "没找到 id 为 \"{id}\" 的关卡!打开关卡选择框", + "zh_TW": "找不到 id 為 \"{id}\" 的關卡!開啟關卡選擇視窗", + "es_AR": "No se encontró ningún nivel {id}. Abriendo la vista de selección de niveles...", + "es_MX": "No se encontró ningún nivel {id}. Abriendo la vista de selección de niveles...", + "es_ES": "No se encontró ningún nivel {id}. Abriendo la vista de selección de niveles...", + "pt_BR": "O nível \"{id}\" não existe! Abrindo uma caixa de seleção de nível", + "gl": "O nivel \"{id}\" non existe! Abrindo unha caixa de seleción de nivel", + "fr_FR": "Le niveau dont l'identifiant est {id} n'a pas été trouvé ! Ouverture de la vue de sélection des niveaux", + "ro": "Nivelul cu id \"{id}\" nu a fost găsit! Deschid vizualizarea de selecție a nivelurilor", + "ru_RU": "Уровень с id \"{id}\" не найден! Открываю выбор уровней", + "uk": "Рівень з id \"{id}\" не знайдений! Відкриваю вибір рівней", + "ko": "id \"{id}\"에 대한 레벨이 존재하지 않습니다. 레벨 선택 화면을 열어보세요.", + "vi": "Không tìm thấy cấp độ cho định danh \"{id}\"! Mở cửa sổ chọn cấp độ", + "sl_SI": "Stopnja za ta id \"{id}\" ni bila najdena! Odpiram pogled za izbiro stopnje", + "pl": "Nie znaleziono poziomu {id}!. Otwieranie widoku wyboru poziomu...", + "it_IT": "Non è stato trovato un livello con id \"{id}\"! Apro la finestra con la selezione dei livelli", + "ta_IN": "அந்த \"{id}\"-க்கான நிலை காணப்படவில்லை! நிலை தேர்வு செய்யும் திரை திறக்கிறது", + "tr_TR": "Bu id'ye \"{id}\" ait bir seviye bulunamadı! Seviye seçimi görünümünü açıyorum." + }, + "undo-stack-empty": { + "__desc__": "The undo command can only undo back until the last time the level was reset or the beginning of the level", + "en_US": "The undo stack is empty!", + "de_DE": "Die Undo-Liste ist leer!", + "zh_CN": "还没有什么可以撤销", + "zh_TW": "還沒有什麼可以取消", + "es_AR": "No hay comandos que deshacer", + "es_MX": "No hay comandos para deshacer", + "es_ES": "No hay comandos que deshacer", + "pt_BR": "Você já desfez tudo!", + "gl": "Nonn hai comandos que desfacer", + "fr_FR": "La pile d'annulation est vide !", + "ro": "Stiva de anulări este goală!", + "ru_RU": "Некуда откатывать!", + "uk": "Нема куди відкочуватись!", + "ko": "되돌리기 스택이 비었습니다!", + "vi": "Không có gì để hoàn tác!", + "sl_SI": "Undo seznam je prazen!", + "pl": "Nie ma już poleceń do cofnięcia!", + "it_IT": "Non sono presenti comandi da annullare!", + "ta_IN": "மீள்பதிவு அடுக்கு காலியாக உள்ளது!", + "tr_TR": "Geri alma yığını boş!" + }, + "already-solved": { + "__desc__": "When you play in a level that is already solved", + "en_US": "You have already solved this level, try other levels with \"levels\" or go back to sandbox with \"sandbox\"", + "de_DE": "Du hast dieses Level bereits gelöst, probier ein anderes Level mit \"levels\" aus oder geh in den Sandkasten-Modus mit \"sandbox\"", + "zh_CN": "你已经解决了本关,输入 \"levels\" 尝试其他关卡,或者输入 \"sandbox\" 回到沙盒中", + "zh_TW": "你已經解决了本關,輸入 \"levels\" 嘗試其他關卡,或者輸入 \"sandbox\" 回到沙盒中", + "es_AR": "Ya resolviste este nivel, probá otros usando \"levels\" o volvé al sandbox usando \"sandbox\"", + "es_MX": "Ya resolviste este nivel, prueba otros usando \"levels\" o vuelve al sandbox usando \"sandbox\"", + "es_ES": "Ya resolviste este nivel, prueba otros usando \"levels\" o vuelve al sandbox usando \"sandbox\"", + "pt_BR": "Você já resolveu este nível, tente outros com \"levels\" ou volte ao sandbox com \"sandbox\"", + "gl": "Xa resolviches este nivel, proba outros usando \"levels\" ou volve á caixa de area con \"sandbox\"", + "fr_FR": "Vous avez déjà résolu ce niveau, essayez d'autres niveaux avec \"levels\" ou revenez au bac à sable avec \"sandbox\"", + "ro": "Ai rezolvat deja acest nivel, încearcă alte nivele cu \"levels\" sau întoarce-te la sandbox cu \"sandbox\"", + "ru_RU": "Ты уже прошел этот уровень, попробуй пройти другие при помощи команды \"levels\" или иди в песочницу \"sandbox\"", + "uk": "Ти вже пройшов цей рівень, спробуй інші рівні з \"levels\" чи повернись в пісочницю з \"sandbox\"", + "ko": "당신은 이미 이 레벨을 해결했습니다. \"levels\"를 사용하여 다른 레벨에 도전하거나 \"sandbox\"를 사용하여 샌드박스로 돌아가세요.", + "vi": "Bạn đã vượt qua cấp độ này. Thử cấp độ khác với \"levels\" hoặc dùng \"sandbox\" để trở lại hộp cát", + "sl_SI": "To stopnjo si že rešil, poizkusi druge stopnje z \"levels\" ali pojdi nazaj v peskovnik s \"sandbox\"", + "pl": "Już rozwiązałeś ten poziom, wypróbuj inne, używając \"levels\" lub wróć do trybu piaskownicy za pomocą polecenia \"sandbox\"", + "it_IT": "Hai già risolto questo livello, prova altri livelli con \"levels\" o torna alla sandbox con \"sandbox\"", + "ta_IN": "நீங்கள் ஏற்கனவே இந்த நிலையை தீர்த்துள்ளீர்கள், \"நிலைகள்\" மூலம் பிற நிலைகளை முயற்சிக்கவும் அல்லது \"sandbox\" உடன் sandbox-க்குச் செல்லவும்", + "tr_TR": "Bu seviyeyi zaten çözdünüz, \"levels\" komutuyla diğer seviyeleri deneyin veya \"sandbox\" komutuyla tekrar sandbox'a dönün." + }, + "solved-level": { + "__desc__": "When you solved a level", + "en_US": "Solved!!!\n:D", + "es_MX": "¡Resuelto!!!", + "de_DE": "Gelöst!!!\n:D", + "zh_CN": "恭喜过关!!!", + "zh_TW": "恭喜,本關解決了!!!", + "es_ES": "¡Resuelto!!!\n:D", + "fr_FR": "Résolu !!!\n:D", + "gl": "¡Resolto!!!", + "ro": "Rezolvat!!!\n:D", + "ru_RU": "Решено!!!\n:D", + "uk": "Вирішено!!!\n:D", + "ko": "해결 완료!!!\n:D", + "vi": "ĐÃ XONG!!!\n:D", + "sl_SI": "Rešeno!!!\n:D", + "pl": "Rozwiązany!!!\n:D", + "pt_BR": "Resolvido!!!\n:D", + "it_IT": "Risolto!!!\n:D", + "ta_IN": "தீர்க்கப்பட்டது!!!\n:D", + "tr_TR": "Tebrikler!!!\n:D" + }, + "command-disabled": { + "__desc__": "When you try a command that is disabled", + "en_US": "That git command is disabled for this level!", + "de_DE": "Dieser git-Befehl ist für dieses Level deaktiviert!", + "zh_CN": "本关不允许使用该命令!", + "zh_TW": "本關禁止使用該 git 指令!", + "es_AR": "¡Ese comando de git está deshabilitado para este nivel!", + "es_MX": "¡Ese comando de git está deshabilitado para éste nivel!", + "es_ES": "¡Ese comando de git está deshabilitado para este nivel!", + "pt_BR": "Achou que seria fácil assim? Desabilitamos esse comando durante este nível, só para dificultar ;-)", + "gl": "¡Ese comando de git está deshabilitado para este nivel!", + "fr_FR": "Cette commande git est désactivée pour ce niveau !", + "ro": "Această comandă git este dezactivată pentru acest nivel!", + "ru_RU": "На этом уровне нельзя использовать эту команду!", + "uk": "На цьому рівні не можна використовувати цю команду!", + "ko": "그 Git 명령어는 이 레벨에서 사용할 수 없습니다.", + "vi": "Ở cấp độ này thì lệnh git đó bị vô hiệu hóa!", + "sl_SI": "Ta git ukaz je onemogočen za to stopnjo!", + "pl": "To polecenie Gita jest wyłączone na tym poziomie!", + "it_IT": "Questo comando git è disabilitato per questo livello!", + "ta_IN": "இந்த நிலையில் அந்த கிட் கட்டளை முடக்கப்பட்டுள்ளது", + "tr_TR": "Bu seviyede o git komutu devre dışı bırakılmıştır!" + }, + "share-json": { + "__desc__": "when you have made the level, prompt to share this", + "en_US": "Here is the JSON for this level! Share it with someone or send it to me on GitHub", + "de_DE": "Hier ist das JSON für dieses Level! Teil es mit jemandem or schick es mir über GitHub", + "zh_CN": "这是一个关卡定义 JSON !您可以分享它或者发到我的 GitHub 上", + "zh_TW": "這是本關的 JSON!您可以分享給別人,或是送到 GitHub 上給我", + "es_AR": "Este es el JSON de este nivel. Compartilo con quien quieras o mandámelo por GitHub", + "es_MX": "Este es el JSON de éste nivel. Compártelo con quien quieras o mándamelo por GitHub.", + "es_ES": "Este es el JSON de este nivel. Compártelo con quien quieras o mandámelo por GitHub.", + "pt_BR": "Aqui está o JSON para este nível! Compartilhe com alguém ou me envie pelo GitHub", + "gl": "Este é o JSON deste nivel. Comparteo con quen queiras ou mándao por GitHub", + "fr_FR": "Voici le JSON pour ce niveau ! Partagez-le avec quelqu'un ou envoyez-le moi sur GitHub", + "ro": "Iată JSON-ul pentru acest nivel! Împărtășește-l cu cineva sau trimite-mi-l pe GitHub", + "ru_RU": "Вот JSON для этого уровня! Поделись им с кем-нибудь или отправь его нам на GitHub", + "uk": "Ось JSON для цього рівня! Поділись з кимось чи відправ мені його на GitHub", + "ko": "이 레벨을 위한 JSON 데이터가 있습니다! 이를 다른 사람들과 공유하거나 GitHub에서 제게 보내보세요.", + "vi": "Đây là chuỗi JSON cho cấp độ này! Hãy chia sẻ với người khác hoặc với tôi qua GitHub", + "sl_SI": "Tu je JSON za to stopnjo! Deli ga z nekom ali ga pošlji meni na GitHub", + "pl": "To jest JSON dla tego poziomu. Udostępnij go, komu chcesz, lub wyślij do mnie na GitHub.", + "it_IT": "Ecco il JSON per questo livello! Condividilo con qualcuno o inviamelo tramite GitHub", + "ta_IN": "இதோ இந்த நிலைக்கான JSON, இதை பகிர்ந்து கொள்ளுங்கள் அல்லது GitHub-இல் எனக்கு அனுப்புங்கள்", + "tr_TR": "İşte bu seviye için JSON! Bunu birisiyle paylaşabilir veya GitHub üzerinden bana gönderebilirsiniz." + }, + "want-start-dialog": { + "__desc__": "prompt to add a start dialog", + "en_US": "You have not specified a start dialog, would you like to add one?", + "de_DE": "Du hast noch keinen Einführungs-Dialog geschrieben, willst du einen hinzufügen?", + "zh_CN": "您还没有定义一开始的介绍,是否添加一个?", + "zh_TW": "尚未指定開始對話視窗,是否立即新增?", + "es_AR": "No especificaste un mensaje de inicio, ¿querés agregar uno?", + "es_MX": "No especificaste un mensaje de inicio, ¿Quieres agregar uno?", + "es_ES": "No especificaste un mensaje de inicio, ¿quieres agregar uno?", + "pt_BR": "Você não especificou uma mensagem de início, quer colocar uma?", + "gl": "Non especificaches unha mensaxe de incio. ¿queres agregar un?", + "fr_FR": "Vous n'avez pas spécifié de dialogue de départ, voulez-vous en ajouter un ?", + "ro": "Nu ai specificat un dialog de început, vrei să adaugi unul?", + "ru_RU": "Не указано стартово сообщение! Точно продолжаем?", + "uk": "Не вказано стартовий діалог, хочеш додати стартовий діалог?", + "ko": "시작 대화창을 지정하지 않았습니다. 추가 하시겠습니까?", + "vi": "Không có cửa sổ hộp thoại được chỉ định, thêm một cái chứ?", + "sl_SI": "Nisi določil začetnega dialoga, bi ga rad dodal?", + "pl": "Nie określiłeś okna startowego, czy chcesz je dodać?", + "it_IT": "Non hai specificato una finestra di partenza, ne vuoi aggiungere una?", + "ta_IN": "தொடக்க உரை எதுவும் நீங்கள் குறிப்பிடவில்லை, ஏதேனும் ஒன்றைச் சேர்க்க விரும்புகிறீர்களா?", + "tr_TR": "Başlangıç diyaloğunu belirtmediniz, bir tane eklemek ister misiniz?" + }, + "want-hint": { + "__desc__": "prompt to add a hint", + "en_US": "You have not specified a hint, would you like to add one?", + "de_DE": "Du hast noch keinen Hinweis geschrieben, magst du einen hinzufügen?", + "zh_CN": "您还没有定义提示,是否添加一个?", + "zh_TW": "尚未指定提示,是否立即新增?", + "es_AR": "No especificaste ninguna pista, ¿querés agregar alguna?", + "es_MX": "No especificaste ninguna pista, ¿Quieres agregar alguna?", + "es_ES": "No especificaste ninguna pista, ¿quieres agregar alguna?", + "pt_BR": "Você não especificou uma dica, quer colocar uma?", + "gl": "Ti non especificaches unha pista, ¿queres agregar algunha?", + "fr_FR": "Vous n'avez pas spécifié d'indice, voulez-vous en ajouter un ?", + "ro": "Nu ai specificat niciun indiciu, vrei să adaugi unul?", + "ru_RU": "Не указана подсказка для уровня! Пренебречь? Вальсируем?", + "uk": "Не вказана підказка, хочеш додати підказку?", + "ko": "힌트를 지정하지 않았습니다. 추가 하시겠습니까?", + "vi": "Bạn chưa chỉ định một gợi ý, thêm một cái chứ?", + "sl_SI": "Nisi določil namiga, bi ga rad dodal?", + "pl": "Nie podałeś podpowiedzi, czy chcesz ją dodać?", + "it_IT": "Non hai specificato un suggerimento, ne vuoi aggiungere uno?", + "ta_IN": "நீங்கள் குறிப்பெதுவும் தரவில்லை, ஏதேனும் ஒன்றைச் சேர்க்க விரும்புகிறீர்களா?", + "tr_TR": "Bir ipucu belirtmediniz, bir tane eklemek ister misiniz?" + }, + "prompt-hint": { + "__desc__": "prompt for hint", + "en_US": "Enter the hint for this level, or leave this blank if you do not want to include one", + "de_DE": "Gib den Hinweis für dieses Level an, oder lass es leer wenn du keinen hinzufügen willst", + "zh_CN": "请输入关卡提示,如果没有请留空", + "zh_TW": "請輸入關卡提示,或者故意留空", + "es_AR": "Ingresá una pista para este nivel, o dejalo en blanco si no querés incluir ninguna", + "es_MX": "Ingresa una pista para este nivel, o déjalo en blanco si no quieres incluir ninguna.", + "es_ES": "Ingresa una pista para este nivel, o déjalo en blanco si no quieres incluir ninguna.", + "pt_BR": "Colocque uma dica para este nível, ou deixe em branco se não quiser incluir", + "gl": "Ingresa unha pista para este nivel, ou déixao en branco se non a queres incluír.", + "fr_FR": "Entrez l'indice pour ce niveau, ou laissez-le vide pour ne pas l'inclure", + "ro": "Adaugă un indiciu pentru acest nivel dacă dorești", + "ru_RU": "Введи подсказку для уровня, если хочешь.", + "uk": "Додай підказку для рівня, якщо хочеш", + "ko": "이 레벨을 위한 힌트를 입력합니다(힌트를 입력하지 않으려면 비워둡니다).", + "vi": "Thêm một gợi ý cho cấp độ này, hoặc cứ để trống nếu bạn không muốn thêm", + "sl_SI": "Vnesi namig za to stopnjo ali pusti to prazno, če ga nočeš dodati", + "pl": "Wpisz wskazówkę dotyczącą tego poziomu lub pozostaw ją pustą, jeśli nie chcesz jej uwzględniać.", + "it_IT": "Inserisci un suggerimento per questo livello, oppure lascialo vuoto se non ne vuoi aggiungere", + "ta_IN": "இந்த நிலைக்கான குறிப்பை உள்ளிடவும், குறிப்பு தேவை இல்லை என்றால் இதனை காலியாக விடுவும்", + "tr_TR": "Bu seviye için ipucu girin, ya da bir ipucu eklemek istemiyorsanız burayı boş bırakın" + }, + "prompt-name": { + "__desc__": "prompt for level name", + "en_US": "Enter the name for the level", + "de_DE": "Gib den Namen für dieses Level an", + "zh_CN": "请输入关卡名称", + "zh_TW": "請輸入關卡名稱", + "es_AR": "Ingresá el nombre del nivel", + "es_MX": "Ingresa el nombre del nivel", + "es_ES": "Ingresa el nombre del nivel.", + "pt_BR": "Coloque o nome do nível", + "gl": "Coloque o nome do nivel", + "fr_FR": "Entrez le nom pour ce niveau", + "ro": "Introdu numele pentru acest nivel", + "ru_RU": "Введи название уровня", + "uk": "Введи назву рівня", + "ko": "레벨의 이름을 입력하세요.", + "vi": "Nhập tên cho cấp độ này", + "sl_SI": "Vnesi ime za stopnjo", + "pl": "Wprowadź nazwę poziomu", + "it_IT": "Inserisci il nome per questo livello", + "ta_IN": "நிலைக்கான பெயரை உள்ளிடவும்", + "tr_TR": "Seviye için adı girin" + }, + "solution-empty": { + "__desc__": "If you define a solution without any commands, aka a level that is solved without doing anything", + "en_US": "Your solution is empty!! Something is amiss", + "de_DE": "Deine Auflösung ist leer! Hier fehlt etwas", + "zh_CN": "你的解法是空的!! 可能是程序出错了", + "zh_TW": "您的解法是空的!這一定是哪裡出錯了", + "es_AR": "¡Tu solución está vacía! Algo hay que hacer", + "es_MX": "¡Tu solución está vacía! Algo hay que hacer", + "es_ES": "¡Tu solución está vacía! Algo hay que hacer.", + "pt_BR": "Sua solução está vazia! O aprendiz deveria ter que fazer alguma coisa", + "gl": "¡Su solución está vacía! Algo haberá que facer.", + "fr_FR": "Votre solution est vide !! Quelque chose ne tourne pas rond", + "ro": "Soluția ta este goală!! Ceva nu este în regulă", + "ru_RU": "Решение не указано! Так не годится!", + "uk": "Розв’язок порожній!! Щось не так", + "ko": "정답이 비어있습니다. 어딘가 잘못되었습니다.", + "vi": "Đáp án bị bỏ trống!! Có gì thiếu rồi", + "sl_SI": "Tvoja rešitev je prazna!! Nekaj ni vredu.", + "pl": "Twoje rozwiązanie jest puste!! Coś musi zostać zrobione.", + "it_IT": "C'è qualcosa che non va. La soluzione è vuota!! ", + "ta_IN": "உங்கள் தீர்வு காலியாக உள்ளது!! ஏதோ தவறாக இருக்கிறது", + "tr_TR": "Çözümünüz boş!! Bir şeyler eksik" + }, + "define-start-warning": { + "__desc__": "When you define the start point again, it overwrites the solution and goal so we add a warning", + "en_US": "Defining start point... solution and goal will be overwritten if they were defined earlier", + "de_DE": "Lege Startpunkt fest ... Auflösung und Ziel werden überschrieben, falls sie schon festgelegt waren", + "zh_CN": "定义开始点... 解决方法和目标会被新的替代", + "zh_TW": "正在定義起始點...先前定義的解法和目標會被覆蓋掉", + "es_AR": "Estableciendo el punto de inicio... La solución y el objetivo serán sobreescritos si ya habían sido definidos", + "es_MX": "Estableciendo el punto de inicio... La solución y el objetivo serán sobreescritos si ya habían sido definidos", + "es_ES": "Estableciendo el punto de inicio... La solución y el objetivo serán sobreescritos si ya habían sido definidos.", + "pt_BR": "Esbelecendo o ponto de início... a solução e o objetivo serão sobrescritos caso já existirem", + "gl": "Establecendo o punto de inicio... A solución e o obxectivo serán sobreescritos se xa foron definidos.", + "fr_FR": "Redéfinition du point de départ… la solution et la cible seront écrasés s'ils ont déjà été définis", + "ro": "Stabilirea punctului de start... soluția și obiectivul vor fi suprascrise dacă au fost definite anterior", + "ru_RU": "Устанавливаю стартовую точку... Решение и итоговое состояние будут стёрты, если они указаны ранее", + "uk": "Встановлюю стартову точку... розв’язок та ціль будуть переписані якщо вони були задані раніше", + "ko": "시작 지점 정의... 해답과 목표가 이전에 정의된 경우 덮어쓰기 됩니다.", + "vi": "Đang xác định điểm bắt đầu... Các giải pháp và mục tiêu sẽ được thay thế nếu đã được chỉ định từ trước", + "sl_SI": "Določanje začetne točke ... rešitev in cilj bosta povožena, če sta bila prej že podana", + "pl": "Ustawianie punktu startowego... Rozwiązanie i cel zostaną nadpisane, jeśli zostały wcześniej zdefiniowane", + "it_IT": "Definendo punto di partenza... soluzione e obiettivo saranno sovrascritti se erano già stati definiti.", + "ta_IN": "தொடக்கத்தை வரையறுத்தல்... தீர்வு மற்றும் குறிக்கோள் முன்னரே வரையறுக்கப்பட்டிருந்தால் மேலெழுதப்படும்", + "tr_TR": "Başlangıç noktası belirleniyor... daha önce tanımlanan çözüm ve hedef üzerine yazılacaktır" + }, + "help-vague-level": { + "__desc__": "When you are in a level and you say help, its vague and you need to specify", + "en_US": "You are in a level, so multiple forms of help are available. Please select either \"help level\" to learn more about this lesson, \"help general\" for using Learn GitBranching, or \"objective\" to learn about how to solve the level.", + "de_DE": "Du befindest dich in einem Level, daher gibt es verschiedene Hilfen. Gib \"help level\" ein um mehr über dieses Level zu erfahren, \"help general\" um zu sehen wie Learn Git Branching bedient wird, oder \"objective\" um das Ziel dieses Levels zu erfahren.", + "zh_CN": "您正在关卡中,这里有多种形式的帮助,请选择 \"help level\" (关卡帮助)或 \"help general\" (一般帮助)", + "zh_TW": "您正在進行關卡中,這裡有多種不同型式的幫助,請選擇 \"help level\" 來了解這個關卡,或者是選擇 \"help general\" 來學習如何使用 Learn GitBranching,或者是選擇 \"objective\" 來學習如何解決這個關卡", + "es_AR": "Estás en un nivel, por lo que hay varios tipos de ayuda. Por favor elegí entre \"help level\" para aprender algo más sobre esta lección, \"help general\" para ayuda sobre el uso de Learn GitBranching, o \"objective\" para aprender a resolver este nivel.", + "es_MX": "Estás en un nivel, por lo que hay varios tipos de ayuda. Por favor elige entre \"help level\" para aprender algo más sobre ésta lección, \"help general\" para ayuda sobre el uso de Learn GitBranching, o \"bjective\" para aprender a resolver este nivel.", + "es_ES": "Estás en un nivel, por lo que hay varios tipos de ayuda. Por favor elige \"help level\" para aprender más sobre esta lección, \"help general\" para ayuda sobre el uso de Learn GitBranching, o \"objective\" para aprender a resolver este nivel.", + "pt_BR": "Você está em um nível, então há vários tipos de ajuda. Selecione \"help level\" para aprender mais sobre esta lição, \"help general\" para aprender a usar o Learn GitBranching, ou \"objective\" ver como resolver o nível.", + "gl": "Estás nun nivel, entón hai varios tipos de axuda. Selecione \"help level\" para aprender máis sobre esta lección, \"gelp general\" para aprender a usar o Learn Git Branching, ou \"objective\" para ver como resolver o nivel.", + "fr_FR": "Vous êtes dans un niveau, donc plusieurs formes d'aide sont disponibles. Merci de sélectionner soit \"help level\" pour en apprendre plus sur cette leçon, \"help general\" pour l'utilisation de Learn GitBranching, ou \"objective\" pour apprendre comment résoudre le niveau", + "ro": "Te afli într-un nivel, deci mai multe forme de ajutor sunt disponibile. Te rog să alegi fie \"help level\" pentru a învăța mai multe despre această lecție, \"help general\" pentru a învăța cum să folosești Learn GitBranching, sau \"objective\" pentru a învăța cum să rezolvi acest nivel.", + "ru_RU": "При прохождении уровня доступны несколько видов помощи. Определить что нужно: \"help level\" чтобы получить информацию об этом уровне, \"help general\" для того, чтобы узнать о игре в целом или \"objective\" чтобы узнать что надо сделать в этом уровне.", + "uk": "При проходженні рівня доступні декілька різновидів допомоги. Виберіть або \"help level\" щоб взнати більше про цей рівень, чи \"help general\" щоб взнати більше про Learn Git Branching, чи \"objective\" щоб дізнатись більше про проходження цього рівня", + "ko": "현재 레벨에서, 여러가지 도움말을 참고할 수 있습니다. 레슨에 대해 자세히 알아보려면 \"help level\", LearnGitBranching을 사용하려면 \"help general\", 레벨 해결 방법에 대해 알아보려면 \"objective\"를 선택하세요.", + "vi": "Bạn đang ở trong một cấp độ, nên sẽ có nhiều hỗ trợ. Vui lòng dùng \"help level\" để biết thêm về bài học này, \"help general\" để sử dụng HọcNhánhGit, hoặc \"objective\" để biết cách giải quyết bài tập.", + "sl_SI": "Si v stopnji, zato so na voljo različne pomoči. Prosim izberi \"help level\" za več informacij o tej lekciji, \"help general\" za splošna navodila ali \"objective\" da izveš kako rešiti to stopnjo", + "pl": "Jesteś na poziomie, więc istnieje kilka rodzajów pomocy. Wpisz \"help level\", aby dowiedzieć się więcej o tej lekcji, wpisz \"help general\", aby uzyskać pomoc dotyczącą korzystania z nauki GitBranching, lub wpisz \"objective\", aby dowiedzieć się, jak rozwiązać ten poziom.", + "it_IT": "Sei dentro a un livello, hai a disposizione vari tipi di aiuto. Digita \"help level\" per saperne di più su questa lezione, \"help general\" per come usare Learn GitBranching, o \"objective\" per capire come risolvere il livello.", + "ta_IN": "நீங்கள் ஒரு நிலையில் உள்ளீர்கள், எனவே பல வகையான உதவி பெற இயலும். இந்த பாடத்தைப் பற்றி மேலும் அறிய \"நிலைக்கான உதவி\" என்பதைத் தேர்ந்தெடுக்கவும், Learn GitBranching பற்றி மேலும் அறிய \"பொது உதவி\" பயன்படுத்துக, அல்லது இந்த நிலையை எவ்வாறு தீர்ப்பது என்பது பற்றி அறிய \"நோக்கம்\" தேர்ந்தெடுக்கவும்.", + "tr_TR": "Bir seviyedesiniz, bu nedenle birden fazla yardım seçeneği mevcuttur. Bu derse dair daha fazla bilgi almak için \"help level\", Learn GitBranching kullanımını öğrenmek için \"help general\" veya seviyeyi nasıl çözeceğiniz hakkında bilgi almak için \"objective\" seçeneğini belirleyebilirsiniz." + }, + "help-vague-builder": { + "__desc__": "When you are in a level builder, the help command is vague so you need to specify what you mean", + "en_US": "You are in a level builder, so multiple forms of help are available. Please select either \"help general\" or \"help builder\"", + "de_DE": "Du befindest dich im Level-Editor, daher gibt es verschiedene Hilfen. Gib bitte \"help general\" oder \"help builder\" ein", + "zh_CN": "您正在进行关卡构建中,这里有多种形式的帮助,请选择 \"help general\" (一般帮助)或 \"help builder\" (关卡构建帮助)", + "zh_TW": "您正在進行關卡構建中,這裡有多種不同型式的幫助,請選擇 \"help general\" (一般幫助)或 \"help builder\" (製造關卡的幫助)", + "es_AR": "Estás en el constructor de niveles, por lo que hay varios tipos de ayuda. Elegí entre \"help general\" para ayuda sobre Learn GitBranching y \"help builder\" para ayuda sobre el constructor de niveles", + "es_MX": "Estás en el constructor de niveles, por lo que hay varios tipos de ayuda. Elige \"help general\" para ayuda sobre Learn GitBranching y \"help builder\" para ayuda sobre el constructor de niveles", + "es_ES": "Estás en un constructor de niveles, por lo que hay varios tipos de ayuda. Elige \"help general\" para ayuda sobre Learn GitBranching o \"help builder\" para ayuda sobre el constructor de niveles", + "pt_BR": "Você está no construtor de níveis, então há vários tipos de ajuda. Selecione \"help general\" ou \"help builder\"", + "gl": "Estás no constructor de niveis, polo que hai varios tipos de axuda. Elixe \"help general\" ou \"help builder\"", + "fr_FR": "Vous êtes dans l'éditeur de niveaux, donc plusieurs formes d'aide sont disponibles. Merci de sélectionner soit \"help general\" soit \"help builder\"", + "ro": "Ești într-un constructor de nivel, deci mai multe forme de ajutor sunt disponibile. Te rog să alegi fie \"help general\" pentru a învăța cum să folosești Learn GitBranching, fie \"help builder\" pentru a învăța cum să folosești constructorul de nivel.", + "ru_RU": "При создании уровней доступны несколько видов помощи. Выбери между \"help general\" и \"help builder\"", + "uk": "При створенні рівня доступні декілька різновидів допомоги. Виберіть або \"help general\", чи \"help builder\"", + "ko": "레벨 생성기를 사용 중이므로 여러가지 도움을 빌릴수 있습니다. \"help general\" 또는 \"help builder\"를 선택해주세요.", + "vi": "Bạn đang tạo một cấp độ, nên sẽ có nhiều trợ giúp có sẵn. Vui lòng chọn \"help general\" hoặc \"help builder\"", + "sl_SI": "Si v graditelju stopenj, zato so na voljo različne pomoči. Prosim izberi \"help general\" ali \"help builder\"", + "pl": "Znajdujesz się w kreatorze poziomów. Dostępnych jest tu kilka rodzajów pomocy. Wpisz \"help general\", aby uzyskać pomoc dotyczącą nauki GitBranching-u, lub wpisz \"help builder\", aby uzyskać pomoc dotyczącą konstruktora poziomów", + "it_IT": "Sei in un generatore di livelli, hai a disposizione vari tipi di aiuto. Digita \"help general\" o \"help builder\"", + "ta_IN": "நீங்கள் ஒரு நிலை கட்டமைப்பானில் உள்ளீர்கள், எனவே பல வகையான உதவி பெற இயலும். தயவுசெய்து \"பொது உதவி\" அல்லது \"கட்டமைப்பான் உதவி\" என்பதைத் தேர்ந்தெடுக்கவும்", + "tr_TR": "Bir seviye oluşturucudasınız, bu nedenle birden fazla yardım seçeneği mevcuttur. Lütfen \"help general\" veya \"help builder\" seçeneklerinden birini seçin." + }, + "show-goal-button": { + "__desc__": "button label to show goal", + "en_US": "Show Goal", + "de_DE": "Ziel anzeigen", + "zh_TW": "顯示目標", + "zh_CN": "显示目标", + "fr_FR": "Afficher la cible", + "pt_BR": "Mostrar objetivo", + "gl": "Amosar obxectivo", + "es_AR": "Mostrar objetivo", + "es_MX": "Mostrar objetivo", + "es_ES": "Mostrar objetivo", + "ja": "ゴールを表示", + "ro": "Afișează obiectivul", + "ru_RU": "Цель уровня", + "uk": "Ціль рівня", + "ko": "목표 보기", + "vi": "Hiển thị mục tiêu", + "sl_SI": "Prikaži Cilj", + "pl": "Pokaż cel", + "it_IT": "Mostra obiettivo", + "ta_IN": "இலக்கைக் காட்டு", + "tr_TR": "Hedefi Göster" + }, + "hide-goal-button": { + "__desc__": "button label to hide goal", + "en_US": "Hide Goal", + "de_DE": "Ziel verstecken", + "fr_FR": "Cacher la cible", + "zh_TW": "隱藏目標", + "zh_CN": "隐藏目标", + "pt_BR": "Ocultar objetivo", + "gl": "Ocultar obxectivo", + "es_AR": "Ocultar objetivo", + "es_MX": "Ocultar objetivo", + "es_ES": "Ocultar objetivo", + "ja": "ゴールを隠す", + "ro": "Ascunde obiectivul", + "ru_RU": "Спрятать цель", + "uk": "Сховати ціль", + "ko": "목표 숨기기", + "vi": "Ẩn mục tiêu", + "sl_SI": "Skrij Cilj", + "pl": "Ukryj cel", + "it_IT": "Nascondi obiettivo", + "ta_IN": "இலக்கை மறை", + "tr_TR": "Hedefi Gizle" + }, + "objective-button": { + "__desc__": "button label to show objective", + "en_US": "Instructions", + "de_DE": "Ziel", + "zh_TW": "提示", + "zh_CN": "提示", + "es_ES": "Objetivo", + "es_MX": "Objetivo", + "fr_FR": "Instructions", + "gl": "Obxectivo", + "ro": "Instrucțiuni", + "ru_RU": "Задача", + "uk": "Задача", + "ko": "목적", + "vi": "Chỉ dẫn", + "sl_SI": "Navodila", + "pl": "Instrukcje", + "it_IT": "Istruzioni", + "pt_BR": "Instruções", + "ta_IN": "வழிமுறைகள்", + "tr_TR": "Talimatlar" + }, + "git-demonstration-title": { + "__desc__": "title of git demonstration window", + "en_US": "Git Demonstration", + "de_DE": "Git Demonstration", + "zh_TW": "Git示範", + "zh_CN": "Git示范", + "es_ES": "Demostración de Git", + "es_MX": "Demostración de Git", + "fr_FR": "Démonstration de Git", + "gl": "Demostración de Git", + "ro": "Demonstrație Git", + "ru_RU": "Git демо", + "uk": "Git демо", + "ko": "Git 데모", + "vi": "Trình diễn Git", + "sl_SI": "Git Predstavitev", + "pl": "Demo GIT", + "pt_BR": "Demonstração Git", + "it_IT": "Dimostrazione Git", + "ta_IN": "கிட் செயல் விளக்கம்", + "tr_TR": "Git Gösterimi" + }, + "goal-to-reach": { + "__desc__": "title of window that shoes the goal tree to reach", + "en_US": "Goal To Reach", + "de_DE": "Zu erreichendes Ziel", + "zh_CN": "目标", + "zh_TW": "目標", + "es_AR": "Objetivo a cumplir", + "es_MX": "Objetivo a cumplir", + "es_ES": "Objetivo a cumplir", + "pt_BR": "Objetivo a cumprir", + "gl": "Obxectivo a cumprir", + "fr_FR": "Cible à atteindre", + "ja": "到達目標", + "ro": "Obiectiv de atins", + "ru_RU": "Цель уровня", + "uk": "Ціль рівня", + "ko": "목표", + "vi": "Mục tiêu cần đạt", + "sl_SI": "Končni Cilj", + "pl": "Cel do osiągnięcia", + "it_IT": "Obiettivo da raggiungere", + "ta_IN": "அடைய வேண்டிய இலக்கு", + "tr_TR": "Ulaşılması Gereken Hedef" + }, + "goal-only-main": { + "__desc__": "the helper message for the window that shows the goal tree when the goal will only be compared using the main branch", + "en_US": "Note: Only the main branch will be checked in this level. The other branches are simply for reference (shown as dashed labels below). As always, you can hide this dialog with \"hide goal\"", + "fr_FR": "Note: Dans ce niveau on ne doit faire de git checkout que sur la branche main. Les autres branches représentées ici (entourées d'un cadre en tirets) doivent être utilisées uniquement comme références. Comme toujours, vous pouvez cacher cette fenêtre avec \"hide goal\"", + "de_DE": "Hinweis: In diesem Level wird nur der Branch main geprüft. Die anderen Branches dienen nur als Vergleichsbasis (als gestrichelte Bezeichner dargestellt). Wie immer kannst du diese Meldung mit \"hide goal\" ausblenden", + "es_AR": "Nota: Sólo la rama main va a ser chequeada en este nivel. Las otras ramas sólo son para referencia. Como siempre, podés ocultar este mensaje con \"hide goal\"", + "es_MX": "Nota: Sólo la rama main va a ser inspeccionada en este nivel. Las otras ramas sólo son para referencia (etiquetados abajo con guión). Como siempre, puedes ocultar éste mensaje con \"hide goal\"", + "es_ES": "Nota: Sólo la rama main va a ser inspeccionado en este nivel. Las otras ramas sólo son para referencia (etiquetados abajo con guion). Siempre puedes ocultar este mensaje con \"hide goal.\"", + "pt_BR": "Nota: Apenas o ramo main será verificado neste nível. Os outros ramos (dentro das caixas clareadas) são somente para referência. Como sempre, você pode ocultar esta janela com \"hide goal\"", + "gl": "Nota: Só a rama main será verificada neste nivel. As outras ramas (dentro das caixas clareadas) son soamente de referencia. Coma sempre, podes ocultar está ventá con \"hide goal\"", + "zh_CN": "注意:本关卡中,只检查 main 分支,其他分支只是用作 reference 存在(以虚线标签表示)。照常,你可以用 “hide goal” 来隐藏此窗口。", + "zh_TW": "在這個關卡中,只有 main branch 會被檢查,別的 branch 只是用來做為 reference (下面用虛線符號表示)。一如往常,你可以利用 \"hide goal\" 來隱藏這個對話視窗", + "ja": "Note: mainブランチだけをこのlevelではチェックします。その他のブランチ(以下では、破線で示されています)に関しては、参照のためにあります。また、いつでもこのウィンドウは\"hide goal\"と打つかクリックで閉じれます", + "ro": "Notă: Doar ramura main va fi verificată în acest nivel. Celelalte ramuri sunt doar pentru referință (afișate ca etichete întrerupte mai jos). Ca de obicei, poți ascunde acest dialog cu \"hide goal\"", + "ru_RU": "Важно: В этом уровне проверяется только ветка main. Остальные ветки просто для наглядности. Как обычно, можно скрыть это сообщение при помощи \"hide goal\"", + "uk": "Важливо: В цьому рівні буде перевірятися тільки гілка main. Решта гілок тільки для наглядності (показані пунктиром нижче). Як завжди, можна сховати цей діалог за допомогою \"hide goal\"", + "ko": "Note: 이 레벨에서는 메인 브랜치만 검사될 것입니다. 다른 브랜치들은 단순히 참고용입니다(아래 점선 레이블로 표시됨). 언제나처럼 \"hide goal\"을 사용하여 이 창을 숨길 수 있습니다.", + "vi": "Chú ý: Ở cấp độ này chỉ nhánh main bị kiểm tra. Các nhánh khác chỉ dùng để tham chiếu (có dấu - ở nhãn). Như thường lệ, bạn có thể ẩn mục tiêu bằng \"hide goal\"", + "sl_SI": "Opomba: Samo main branch bo preverjen v tej stopnji. Ostali branchi so zgolj za referenco (prikazani kot črtaste oznake spodaj). Kot ponavadi, lahko skriješ dialog z \"hide goal\"", + "pl": " Uwaga: Na tym poziomie będzie sprawdzana tylko poprawność gałęzi main. Pozostałe gałęzie są tylko odniesieniem (pokazane jako przerywane etykiety poniżej). Jak zawsze, możesz ukryć to okno klikając \"Ukryj cel\".", + "it_IT": "Nota: In questo livello sarà selezionato solo il ramo main. Gli altri rami ci sono solo come riferimento (mostrati come etichette tratteggiate). Come sempre, puoi nascondere questa finestra con \"hide goal\"", + "ta_IN": "குறிப்பு: இந்த மட்டத்தில் பிரதான கிளை மட்டுமே சரிபார்க்கப்படும். மற்ற கிளைகள் வெறுமனே விளக்க குறிப்புக்காக மட்டுமே (கீழே விடுபட்ட மேற்கோள்களாக காட்டப்பட்டுள்ளது). எப்பொழுதும் போல், \"இலக்கை மறை\" மூலம் இந்த சாளரத்தை மறைக்கலாம்", + "tr_TR": "Not: Bu seviyede yalnızca ana dal kontrol edilecektir. Diğer dallar yalnızca referans amaçlıdır (aşağıda kesikli etiketler olarak gösterilmektedir). Her zamanki gibi, bu diyaloğu \"hedefi gizle\" ile gizleyebilirsiniz." + }, + "hide-goal": { + "__desc__": "the helper message for the window that shows the goal tree", + "en_US": "You can hide this window with \"hide goal\"", + "de_DE": "Du kannst diese Meldung mit \"hide goal\" ausblenden", + "zh_CN": "你可以通过 \"hide goal\" 命令关闭这个窗口", + "zh_TW": "你可以透過 \"hide goal\" 關閉這個視窗", + "es_AR": "Podés ocultar esta ventana con \"hide goal\"", + "es_MX": "Puedes ocultar esta ventana con \"hide goal\"", + "es_ES": "Puedes ocultar esta ventana con \"hide goal.\"", + "pt_BR": "Você pode ocultar esta janela com \"hide goal\"", + "gl": "Podes ocultar esta ventá con \"hide goal\"", + "fr_FR": "Vous pouvez masquer cette fenêtre avec \"hide goal\"", + "ja": "このウィンドウは\"hide goal\"と打つかクリックで閉じれます", + "ro": "Poți ascunde această fereastră cu \"hide goal\"", + "ru_RU": "Можно скрыть это окно при помощи \"hide goal\"", + "uk": "Можна сховати це вікно за допомогою \"hide goal\"", + "ko": "\"hide goal\"을 사용하여 이 창을 숨길 수 있습니다.", + "vi": "Bạn có thể ẩn cửa sổ này với \"hide goal\"", + "sl_SI": "To okno lahko skriješ z \"hide goal\"", + "pl": "Możesz ukryć to okno za pomocą opcji \"ukryj cel\"", + "it_IT": "Puoi nascondere questa finestra con \"hide goal\"", + "ta_IN": "இந்த சாளரத்தை \"இலக்கை மறை\" மூலம் மறைக்கலாம்", + "tr_TR": "Bu pencereyi \"hedefi gizle\" ile gizleyebilirsiniz" + }, + "hide-start": { + "__desc__": "The helper message for the window that shows the start tree for a level", + "en_US": "You can hide this window with \"hide start\"", + "de_DE": "Du kannst diese Meldung mit \"hide start\" ausblenden", + "zh_CN": "你可以通过 \"hide start\" 命令关闭这个窗口", + "zh_TW": "你可以透過 \"hide start\" 關閉這個視窗", + "es_AR": "Podés ocultar esta ventana con \"hide start\"", + "es_MX": "Puedes ocultar ésta ventana con \"hide start\"", + "es_ES": "Puedes ocultar esta ventana con \"hide start.\"", + "pt_BR": "Você pode ocultar esta janela com \"hide start\"", + "gl": "Podes ocultar esta ventá con \"hide start\"", + "fr_FR": "Vous pouvez masquer cette fenêtre avec \"hide start\"", + "ja": "このウィンドウは\"hide start\"かクリックで閉じれます", + "ro": "Poți ascunde această fereastră cu \"hide start\"", + "ru_RU": "Можно скрыть это окно при помощи \"hide start\"", + "uk": "Можна сховати це вікно за допомогою \"hide start\"", + "ko": "\"hide start\"를 사용하여 이 창을 숨길 수 있습니다.", + "vi": "Bạn có thể ẩn cửa sổ này với \"hide start\"", + "sl_SI": "To okno lahko skriješ z \"hide start\"", + "pl": "Możesz ukryć to okno za pomocą opcji \"ukryj start\"", + "it_IT": "Puoi nascondere questa finestra con \"hide start\"", + "ta_IN": "இந்த சாளரத்தை \"தொடக்கத்தை மறை\" மூலம் மறைக்கலாம்", + "tr_TR": "Bu pencereyi \"başlangıcı gizle\" ile gizleyebilirsiniz." + }, + "level-builder": { + "__desc__": "The name for the environment where you build levels", + "en_US": "Seviye Yapıcı", + "de_DE": "Level-Editor", + "zh_CN": "关卡生成器", + "zh_TW": "關卡產生器", + "es_AR": "Constructor de niveles", + "es_MX": "Constructor de niveles", + "es_ES": "Constructor de niveles", + "pt_BR": "Construtor de níveis", + "gl": "Constructor de nivéis", + "fr_FR": "Éditeur de niveaux", + "ja": "Levelエディタ", + "ro": "Constructor de nivel", + "ru_RU": "Редактор уровней", + "uk": "Редактор рівнів", + "ko": "레벨 생성기", + "vi": "Trình tạo cấp độ", + "sl_SI": "Graditelj Stopenj", + "pl": "Twórca poziomu", + "it_IT": "Generatore di livelli", + "ta_IN": "நிலை கட்டமைப்பான்" + }, + "no-start-dialog": { + "__desc__": "when the user tries to open a start dialog for a level that does not have one", + "en_US": "There is no start dialog to show for this level!", + "de_DE": "Es gibt keinen Einführungs-Dialog für dieses Level!", + "zh_CN": "这个关卡没有介绍!", + "zh_TW": "這關沒有介紹!", + "es_AR": "¡No hay mensaje de inicio para este nivel!", + "es_MX": "¡No hay mensaje de inicio para este nivel!", + "es_ES": "¡No hay mensaje de inicio para este nivel!", + "pt_BR": "Não há mensagem de início para este nível!", + "gl": "¡Non hai mensaxe de inicio para este nivel!", + "fr_FR": "Il n'y a aucun dialogue de départ à afficher pour ce niveau !", + "ja": "このLevelにはスタートダイアログが存在しません", + "ro": "Nu există dialog de start pentru acest nivel!", + "ru_RU": "Нет стартового сообщение для уровня!", + "uk": "Немає початкового діалогу для цього рівня!", + "ko": "이 레벨에 표시할 시작 대화창이 없습니다.", + "vi": "Không có hộp thoại giới thiệu cho cấp độ này!", + "sl_SI": "Ni začetnega dialoga za prikaz te stopnje!", + "pl": "Dla tego poziomu nie ma okna startowego do wyświetlenia!", + "it_it": "Non esiste una finestra di partenza per questo livello!", + "ta_IN": "இந்த நிலை பற்றி விளக்கிகாட்ட தொடக்க உரையாடல் எதுவும் இல்லை", + "tr_TR": "Bu seviye için gösterilecek bir başlangıç penceresi yok!" + }, + "no-hint": { + "__desc__": "when no hint is available for a level", + "en_US": "Hmm, there doesn't seem to be a hint for this level :-/", + "de_DE": "Hm, es gibt anscheinend keinen Hinweis für dieses Level :-/", + "zh_CN": "呃……,这关好像没有提示 :-/", + "zh_TW": "嗯‧‧‧這關沒有提示 :-/", + "es_AR": "Mmm... Pareciera no haber pistas para este nivel :-/", + "es_MX": "Mmm... Parece que no hay pistas para Este nivel. :-/", + "es_ES": "Mmm... Parece que no hay pistas para este nivel. :-/", + "pt_BR": "Hmm, não existe nenhuma pista para este nível :-/", + "gl": "Hmm, non existe ningunha pista para este nivel :-/", + "fr_FR": "Hum, il ne semble pas y avoir d'indice pour ce niveau :-/", + "ja": "あらら、このLevelでは、残念ながらヒントが存在しません :-/", + "ro": "Hmm, nu pare să existe un indiciu pentru acest nivel :-/", + "ru_RU": "Милый мой, хороший, догадайся сам :-/ Подсказка не создана...", + "uk": "Хм, схоже для цього рівня немає підказки :-/", + "ko": "흠, 이 레벨을 위한 힌트가 없는 것 같습니다. :-/", + "vi": "Hmmm, có vẻ cấp độ này không có gợi ý rồi :-/", + "sl_SI": "Hmm, izgleda da ni namiga za to stopnjo :-/", + "pl": "Hmm, wydaje się, że nie ma podpowiedzi dla tego poziomu :-/", + "it_IT": "Mmh, sembra non ci sia un suggerimento per questo livello :-/", + "ta_IN": "ஹ்ம், இந்த நிலைக்கு ஒரு குறிப்பு எதுவும் இருப்பதாகத் தெரியவில்லை :-/", + "tr_TR": "Hmm, bu seviye için bir ipucu görünmüyor :-/" + }, + "error-untranslated-key": { + "__desc__": "This error happens when we are trying to translate a specific key and the locale version is mission", + "en_US": "The translation for {key} does not exist yet :( Please hop on github and offer up a translation!", + "de_DE": "Die Übersetzung für {key} existiert noch nicht :( Falls du eine hast, dann teile sie mir bitte auf GitHub mit!", + "zh_CN": "还没翻译 {key} :( 请在 GitHub 上贡献您的翻译!", + "zh_TW": "還沒翻譯 {key} :( 請在 GitHub 上貢獻您的翻譯!", + "es_AR": "Aún no hay traducción para {key} :( ¡Metete en GitHub y sugerí una! :)", + "es_MX": "Aún no existe una traducción para {key}. :( ¡Métete en GitHub y sugiere una! :)", + "es_ES": "Aún no hay traducción para {key}. :( ¡Métete en GitHub y sugiere una! :)", + "pt_BR": "Não existe tradução para {key} :( Pule no GitHub e sugira uma! :)", + "gl": "Non existe tradución para {key} :( Axúdanos en GitHub e suxire unha! :)", + "fr_FR": "La traduction pour {key} n'existe pas encore :( Venez sur GitHub pour en offrir une !", + "ja": "{key}の翻訳がまだ存在しません :( GitHubでの、翻訳の協力をお願いします m(_)m", + "ro": "Traducerea pentru {key} nu există încă :( Te rog să vii pe GitHub și să oferi o traducere!", + "ru_RU": "Перевода для {key} не создано :( Пожалуйста, предложи перевод на GitHub", + "uk": "Немає перекладу для {key} :( Будь-ласка, запропонуй переклад на GitHub", + "ko": "{key}를 위한 번역은 아직 존재하지 않습니다 :( github로 오셔서 번역을 제공해주세요!", + "vi": "Bản dịch cho {key} không có rồi :( Nếu có thể thì hãy lên dự án của chúng tôi ở GitHub để cung cấp bản dịch!", + "sl_SI": "Prevod za {key} še ne obstaja :( Skoči na github in dodaj prevod!", + "pl": "Tłumaczenie dla klucza \"{key}\" jeszcze nie istnieje tłumaczenia :( Zapraszam na GitHub, aby pomóc w tłumaczeniu!", + "it_IT": "La traduzione per {key} non esiste ancora :( Fai un salto su GitHub e dacci una mano!", + "ta_IN": "{key}-இன் மொழிபெயர்ப்பு கிடைக்கவில்லை :( github-இன் வழியாக் நீங்களும் மொழி பெயர்க்க உதவலாம்!", + "tr_TR": "{key} için henüz bir çeviri yok :( Lütfen GitHub'a gidin ve bir çeviri önerin!" + }, + "error-untranslated": { + "__desc__": "The general error when we encounter a dialog that is not translated", + "en_US": "This dialog or text is not yet translated in your locale :( Hop on github to aid in translation!", + "de_DE": "Dieser Dialog oder Text ist noch nicht in deiner Sprache verfügbar. :( Schau auf GitHub vorbei um bei der Übersetzung zu helfen!", + "zh_CN": "这段对话还没有被翻译成您的语言 :( 欢迎在 GitHub 上贡献您的翻译!", + "zh_TW": "這段對話尚未翻成您的語言 :( 歡迎到 GitHub 貢獻翻譯!", + "es_AR": "Este mensaje o texto aún no fue traducido a tu idioma :( ¡Metete en GitHub y ayudanos a traducirlo!", + "es_MX": "Este mensaje o texto aún no ha sido traducido en tu idioma. :( ¡Métete en GitHub y ayúdanos a traducirlo!", + "es_ES": "Este mensaje o texto aún no fue traducido a tu idioma. :( ¡Métete en GitHub y ayúdanos a traducirlo!", + "pt_BR": "Esta mensagem ou texto não foi traduzida para Português :( Ajude-nos a traduzir no GitHub!", + "gl": "Esta mensaxe ou texto non foi traducida ó teu idioma :( Axúdanos a traducir a web en GitHub, é moi doado!", + "fr_FR": "Ce message n'a pas encore été traduit dans votre langue :( Venez sur GitHub aider à la traduction !", + "ja": "このダイアログ、またはテキストの翻訳がまだ存在しません :( GitHubでの、翻訳の協力をお願いします m(_)m", + "ro": "Această fereastră sau text nu este încă tradus în limba ta :( Te rog să vii pe GitHub și să oferi o traducere!", + "ru_RU": "Для этого сообщения нет перевода :( Пожалуйста, предложи перевод на GitHub", + "uk": "Для цього повідомлення ще немає перекладу :( Будь-ласка, запропонуй переклад на GitHub", + "ko": "이 대화창이나 텍스트는 아직 번역되지 않았습니다. :( 번역을 지원하려면 github로 와주세요!", + "vi": "Hộp thoại hoặc văn bản này chưa được dịch ra ngôn ngữ của bạn rồi :( Hãy lên GitHub để cung cấp bản dịch!", + "sl_SI": "Ta dialog ali tekst še ni preveden za tvoj jezik :( Skoči na github in dodaj prevod!", + "pl": "Kolejne okno dialogowe lub tekst nie zostało jeszcze przetłumaczone na język polski :( Zapraszam na GitHub, aby pomóc w tłumaczeniu!", + "it_IT": "Questo messaggio o testo non è ancora stato tradotto nella tua lingua :( Fai un salto su GitHub e dacci una mano!", + "ta_IN": "இந்த உரையாடல் அல்லது உரை உங்கள் தமிழில் இன்னும் மொழிபெயர்க்கப்படவில்லை :( github-இன் வழியாக் நீங்களும் மொழி பெயர்க்க உதவலாம்!", + "tr_TR": "Bu ileti veya metin henüz dilimize çevrilmemiş :( Çeviriye yardımcı olmak için GitHub'da bize katılın!" + }, + "cancel-button": { + "__desc__": "Cancel button label after completing a level", + "es_AR": "Cancelar", + "en_US": "Cancel", + "pt_BR": "Cancelar", + "es_MX": "Cancelar", + "de_DE": "Abbrechen", + "fr_FR": "Annuler", + "ro": "Anulare", + "ru_RU": "Отмена", + "zh_TW": "取消", + "pl": "Powrót", + "it_IT": "Annulla", + "ta_IN": "இரத்துசெய்", + "vi": "Hủy", + "tr_TR": "İptal" + }, + "confirm-button": { + "__desc__": "Confirm button label after completing a level", + "es_AR": "Confirmar", + "en_US": "Confirm", + "pt_BR": "Confirmar", + "es_MX": "Confirmar", + "fr_FR": "Confirmer", + "ro": "Confirmare", + "ru_RU": "Подтвердить", + "de_DE": "Bestätigen", + "zh_TW": "確認", + "pl": "Dalej", + "it_IT": "Conferma", + "ta_IN": "உறுதிப்படுத்தவும்", + "vi": "Đồng ý", + "tr_TR": "Tamam" + }, + "level-label": { + "__desc__": "Label in the top of the left-side menu. Remember to leave some space on the sides", + "es_AR": "Nivel", + "en_US": " Level ", + "pt_BR": " Nível ", + "es_MX": "Nivel", + "fr_FR": " Niveau ", + "ru_RU": " Уровень ", + "ro": " Nivel ", + "de_DE": " Level ", + "zh_TW": "關卡 ", + "it_IT": " Livello ", + "pl": " Poziom ", + "tr_TR": " Seviye " + }, + "command-helper-bar-levels": { + "__desc__": "Levels command label in the bottom command helper bar.", + "es_AR": "Niveles", + "en_US": "Levels", + "pt_BR": "Níveis", + "es_MX": "Niveles", + "fr_FR": "Niveaux", + "ru_RU": "Уровни", + "ro": "Nivele", + "de_DE": "Levels", + "zh_TW": "關卡", + "it_IT": "Livelli", + "pl": "Poziomy", + "tr_TR": "Seviyeler" + }, + "command-helper-bar-solution": { + "__desc__": "Solution command label in the bottom command helper bar.", + "es_AR": "Solución", + "en_US": "Solution", + "es_MX": "Solución", + "fr_FR": "Solution", + "ro": "Soluție", + "ru_RU": "Решение", + "de_DE": "Lösung", + "zh_TW": "解答", + "it_IT": "Soluzione", + "pt_BR": "Solução", + "pl": "Rozwiązanie", + "tr_TR": "Çözüm" + }, + "command-helper-bar-reset": { + "__desc__": "Reset command label in the bottom command helper bar.", + "es_AR": "Reiniciar", + "en_US": "Reset", + "pt_BR": "Reiniciar", + "es_MX": "Reiniciar", + "fr_FR": "Réinitialiser", + "ro": "Reset", + "ru_RU": "Заново", + "de_DE": "Zurücksetzen", + "zh_TW": "重新開始", + "it_IT": "Reset", + "pl": "Wyczyść", + "tr_TR": "Sıfırla" + }, + "command-helper-bar-undo": { + "__desc__": "Undo command label in the bottom command helper bar.", + "es_AR": "Deshacer", + "en_US": "Undo", + "pt_BR": "Desfazer", + "es_MX": "Deshacer", + "fr_FR": "Annuler", + "ro": "Înapoi", + "ru_RU": "Вернуть", + "de_DE": "Rückgängig", + "zh_TW": "回到上一步", + "it_IT": "Annulla", + "pl": "Cofnij", + "tr_TR": "Geri al" + }, + "command-helper-bar-objective": { + "__desc__": "Objective command label in the bottom command helper bar.", + "es_AR": "Objetivo", + "en_US": "Objective", + "es_MX": "Objetivo", + "fr_FR": "Objectif", + "ru_RU": "Задание", + "ro": "Obiectiv", + "de_DE": "Zielvorgabe", + "zh_TW": "目標", + "it_IT": "Obiettivo", + "pt_BR": "Objetivo", + "pl": "Cel", + "tr_TR": "Hedef" + }, + "command-helper-bar-help": { + "__desc__": "Help command label in the bottom command helper bar.", + "es_AR": "Ayuda", + "en_US": "Help", + "pt_BR": "Ajuda", + "es_MX": "Ayuda", + "fr_FR": "Aide", + "ru_RU": "Помощь", + "ro": "Ajutor", + "de_DE": "Hilfe", + "zh_TW": "幫助", + "it_IT": "Aiuto", + "pl": "Pomoc", + "tr_TR": "Yardım" + }, + "error-command-currently-not-supported": { + "__desc__": "Message that appears in git console when command is not supported in the current environment.", + "es_AR": "¡El comando es valido, pero no está soportado en este ambiente! intentá ingresar un nivel o un constructor de nivel para usar ese comando", + "en_US": "That command is valid, but not supported in this current environment! Try entering a level or level builder to use that command", + "pt_BR": "Este comando é válido, mas não suportado no ambiente atual! Tente entrar num nível ou construtor de nível para usar este comando", + "es_MX": "¡El comando es válido, pero no es suportado en este ambiente! Intenta ingresar un nivel o un constructor de niveles para usar ese comando", + "fr_FR": "Cette commande est valide, mais n'est pas supportée dans le contexte actuel ! Essayez de démarrer un niveau ou l'éditeur de niveaux pour utiliser cette commande", + "ro": "Această comandă este validă, dar nu este suportată în acest mediu! Încearcă să intri într-un nivel sau în editorul de niveluri pentru a folosi această comandă", + "ru_RU": "Эта команда валидна, но не поддерживается в текущем окружении! Попробуйте войти в уровень или сборщик уровней чтобы использовать эту команду", + "de_DE": "Der Befehl ist gültig, aber in der aktuellen Umgebung nicht unterstützt! Rufe ein Level oder den Level-Editor auf, um diesen Befehl zu nutzen", + "zh_TW": "這項指令輸入正確,然而目前的環境不支援此指令。試著前往關卡或關卡建造器中使用此指令。", + "it_IT": "Il comando è valido, ma non supportato in questo ambiente! Prova a entrare in un livello o nel generatore di livelli per usare quel comando", + "pl": "To polecenie jest poprawne, ale nie jest obsługiwane w obecnym środowisku! Spróbuj wybrać poziom lub włączyć konstruktor poziomów, aby użyć tej komendy", + "vi": "Lệnh đó hợp lệ, nhưng không được hỗ trợ ở môi trường hiện tại! Hãy thử vào một cấp độ hoặc trình tạo cấp độ để sử dụng lệnh", + "tr_TR": "Bu komut geçerli bir komuttur, fakat bu ortamda desteklenmemektedir, bu komutu kullanmak için bir seviye (level) ya da seviye oluşturucu ekleyin (level builder)." + }, + "interactive-rebase-title": { + "__desc__": "Title for the popup", + "es_AR": "Rebase interactivo", + "en_US": "Interactive Rebase", + "pt_BR": "Rebase interativo", + "es_MX": "Rebase interactivo", + "fr_FR": "Rebase interactif", + "ro": "Rebase interactiv", + "ru_RU": "Интерактивное перебазирование", + "de_DE": "Interaktives Rebase", + "zh_TW": "互動式 Rebase", + "it_IT": "Rebase interattivo", + "pl": "Interaktywny Rebase", + "vi": "Rebase tương tác", + "tr_TR": "Etkileşimli Yeniden Temellendirme" + } +}; \ No newline at end of file diff --git a/src/levels/advanced/multipleParents.js b/src/levels/advanced/multipleParents.js index 747b3053..875caacf 100644 --- a/src/levels/advanced/multipleParents.js +++ b/src/levels/advanced/multipleParents.js @@ -5,7 +5,7 @@ exports.level = { "name": { "en_US": "Multiple parents", "zh_CN": "两个 parent 节点", - 'fr_FR': 'Parents multiples', + "fr_FR": "Parents multiples", "de_DE": "Mehrere Vorgänger", "ja": "複数の親", "es_AR": "Múltiples padres", @@ -17,11 +17,11 @@ exports.level = { "ro": "Mai mulți părinți", "ru_RU": "Здоровая семья, или несколько родителей", "ko": "다수의 부모", - 'uk': 'Декілька батьків', - 'vi': 'Nhiều cha lắm mẹ', - 'sl_SI': 'Več Staršev', - 'ta_IN': 'ஒன்றுக்கு மேற்ப்பட்ட துவக்க கிலைகள்', - 'it_IT': "Genitori multipli", + "uk": "Декілька батьків", + "vi": "Nhiều cha lắm mẹ", + "sl_SI": "Več Staršev", + "ta_IN": "ஒன்றுக்கு மேற்ப்பட்ட துவக்க கிலைகள்", + "it_IT": "Genitori multipli", "pl": "Wielu rodziców", "tr_TR": "Birden fazla ebeveyn" }, @@ -29,7 +29,7 @@ exports.level = { "en_US": "Use `git branch bugWork` with a target commit to create the missing reference.", "de_DE": "Nutze `git branch bugWork` mit einem Ziel-Commit um die fehlende Referenz zu erstellen.", "ja": "`git branch bugWork`を対象のコミットと組み合わせて使い、欠如しているリファレンスを作成しましょう", - 'fr_FR': 'Utilisez "git branch bugWork" avec un commit pour créer une référence manquante', + "fr_FR": "Utilisez \"git branch bugWork\" avec un commit pour créer une référence manquante", "zh_CN": "使用 `git branch bugWork` 加上一个目标提交记录来创建消失的引用。", "es_AR": "Usá `git branch bugWork` sobre algún commit para crear la referencia faltante", "es_MX": "Use `git branch bugWork` sobre algún commit para crear la referencia faltante", @@ -40,11 +40,11 @@ exports.level = { "ro": "Folosește `git branch bugWork` cu un commit țintă pentru a crea referința lipsă.", "ru_RU": "`git branch bugWork` на нужном коммите поможет создать нужную ссылку.", "ko": "`git branch bugWork`를 대상 커밋과 함께 사용해서 부족한 참조를 만드세요", - 'uk': 'Використай "git branch bugWork" на потрібному коміті щоб створити потрібне посилання', - 'vi': 'Dùng lệnh `git branch bugWork` để tạo nhánh tại vị trí chỉ định', - 'sl_SI': 'Uporabi `git branch bugWork` s ciljnim commitom za ustvarjanje manjkajoče reference.', + "uk": "Використай \"git branch bugWork\" на потрібному коміті щоб створити потрібне посилання", + "vi": "Dùng lệnh `git branch bugWork` để tạo nhánh tại vị trí chỉ định", + "sl_SI": "Uporabi `git branch bugWork` s ciljnim commitom za ustvarjanje manjkajoče reference.", "ta_IN": "`git branch bugWork` பயன்படுத்தி தேவைப்படும் கமிட்டுடன் இழந்த இணைப்பை உருவாக்குக.", - 'it_IT': "Scrivi `git branch bugWork` con un commit per creare il riferimento mancante.", + "it_IT": "Scrivi `git branch bugWork` con un commit per creare il riferimento mancante.", "pl": "Użyj `git branch bugWork` na docelowym commicie, aby utworzyć brakującą referencję.", "tr_TR": "Eksik referansı oluşturmak için hedef commit ile `git branch bugWork` komutunu kullanın." }, @@ -237,7 +237,7 @@ exports.level = { "", "Normalement Git suit le \"premier\" parent pour un commit/merge, mais avec un numéro après `^` le comportement par défaut est modifié.", "", - "Assez de bla bla, passons à l\'action", + "Assez de bla bla, passons à l'action", "" ] } @@ -251,7 +251,7 @@ exports.level = { "(*Dans notre vue, le premier parent se situe juste au dessus du merge.*)" ], "afterMarkdowns": [ - "Facile -- c\'est ce que nous faisons tout le temps." + "Facile -- c'est ce que nous faisons tout le temps." ], "command": "git checkout main^", "beforeCommand": "git checkout HEAD^; git commit; git checkout main; git merge C2" @@ -1702,91 +1702,92 @@ exports.level = { } ] }, - 'it_IT': { - childViews: [ + "it_IT": { + "childViews": [ { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "### Specificare i genitori", "", "Come il modificatore `~` , anche il modificatore `^` accetta un numero (opzionale) dopo di esso.", "", "Invece che specificare il numero di generazioni di cui tornare indietro (come accade con `~`), il modificatore `^` specifica quale genitore seguire partendo da un merge commit (di fusione). Ricorda che i merge commit hanno genitori multipli, quindi il percorso da seguire può essere ambiguo.", "", - 'Git normalmente segue il primo genitore partendo da un merge commit, ma specificando un numero con `^` cambia questo comportamento predefinito.', + "Git normalmente segue il primo genitore partendo da un merge commit, ma specificando un numero con `^` cambia questo comportamento predefinito.", "", "Basta parlare, vediamolo in azione.", - "", - ], - }, + "" + ] + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ "Qui abbiamo un merge commit. Se facciamo checkout `main^` senza modificatore, seguiremo il primo genitore dopo il merge commit. ", "", - "(*Nell'immagine, il primo genitore è situato direttamente al di sopra del merge commit.*)", + "(*Nell'immagine, il primo genitore è situato direttamente al di sopra del merge commit.*)" ], - afterMarkdowns: ["Facile -- questo è quello a cui siamo abituati."], - command: "git checkout main^", - beforeCommand: - "git checkout HEAD^; git commit; git checkout main; git merge C2", - }, + "afterMarkdowns": [ + "Facile -- questo è quello a cui siamo abituati." + ], + "command": "git checkout main^", + "beforeCommand": "git checkout HEAD^; git commit; git checkout main; git merge C2" + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ - "Ora invece proviamo a specificare il secondo genitore...", + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "Ora invece proviamo a specificare il secondo genitore..." ], - afterMarkdowns: ["Vedi? Abbiamo seguito il secondo genitore verso l'alto."], - command: "git checkout main^2", - beforeCommand: - "git checkout HEAD^; git commit; git checkout main; git merge C2", - }, + "afterMarkdowns": [ + "Vedi? Abbiamo seguito il secondo genitore verso l'alto." + ], + "command": "git checkout main^2", + "beforeCommand": "git checkout HEAD^; git commit; git checkout main; git merge C2" + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ - "I modificatori `^` e `~` riescono a farci muovere lungo l'albero dei commit in modo agevole:", + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "I modificatori `^` e `~` riescono a farci muovere lungo l'albero dei commit in modo agevole:" ], - afterMarkdowns: ["Super veloce!"], - command: - "git checkout HEAD~; git checkout HEAD^2; git checkout HEAD~2", - beforeCommand: - "git commit; git checkout C0; git commit; git commit; git commit; git checkout main; git merge C5; git commit", - }, + "afterMarkdowns": [ + "Super veloce!" + ], + "command": "git checkout HEAD~; git checkout HEAD^2; git checkout HEAD~2", + "beforeCommand": "git commit; git checkout C0; git commit; git commit; git commit; git checkout main; git merge C5; git commit" + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ - "Ancora più sorprendente, questi modificatori possono essere concatenati tra loro! Dai un'occhiata:", + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "Ancora più sorprendente, questi modificatori possono essere concatenati tra loro! Dai un'occhiata:" ], - afterMarkdowns: [ - "Stessi passaggi di prima, ma tutto con un comando.", + "afterMarkdowns": [ + "Stessi passaggi di prima, ma tutto con un comando." ], - command: "git checkout HEAD~^2~2", - beforeCommand: - "git commit; git checkout C0; git commit; git commit; git commit; git checkout main; git merge C5; git commit", - }, + "command": "git checkout HEAD~^2~2", + "beforeCommand": "git commit; git checkout C0; git commit; git commit; git commit; git checkout main; git merge C5; git commit" + } }, { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "### Mettilo in pratica", "", "Per completare questo livello, crea un nuovo ramo alla destinazione specificata.", "", - "Sarebbe facile specificare il commit direttamente (con qualcosa del tipo `C6`), ovvio, ma ti sfido invece a utilizare i modificatori di cui abbiamo parlato!", - ], - }, - }, - ], + "Sarebbe facile specificare il commit direttamente (con qualcosa del tipo `C6`), ovvio, ma ti sfido invece a utilizare i modificatori di cui abbiamo parlato!" + ] + } + } + ] }, "tr_TR": { "childViews": [ @@ -1875,6 +1876,5 @@ exports.level = { } ] } - } -}; +}; \ No newline at end of file diff --git a/src/levels/intro/branching.js b/src/levels/intro/branching.js index f8ff86c8..f2419cd4 100644 --- a/src/levels/intro/branching.js +++ b/src/levels/intro/branching.js @@ -37,15 +37,15 @@ exports.level = { "zh_CN": "用 'git branch <分支名>' 来创建分支,用 'git checkout <分支名>' 来切换到分支", "zh_TW": "用 'git branch [ branch 名稱]' 來建立 branch,用 'git checkout [ branch 名稱]' 切換到該 branch", "ko": "\"git branch [브랜치명]\"으로 새 브랜치를 만들고, \"git checkout [브랜치명]\"로 그 브랜치로 이동하세요", - "ro": 'Creează o ramură nouă cu "git branch [nume-ramură]" și treci la ea cu "git checkout [nume-ramură]"', + "ro": "Creează o ramură nouă cu \"git branch [nume-ramură]\" și treci la ea cu \"git checkout [nume-ramură]\"", "ru_RU": "Создай новую ветку при помощи \"git branch [name]\" и перейди на неё при помощи \"git checkout [name]\"", "uk": "Створи нову гілку за допомогою \"git branch [ім’я]\" й перейди на неї за допомогою \"git checkout [ім’я]\"", "vi": "Tạo một nhánh mới với lệnh \"git branch [ten-nhanh]\" và chuyển sang đó với lệnh \"git checkout [ten-nhanh]\"", "sl_SI": "Naredi nov branch z \"git branch [ime-brancha]\" in ga checkoutaj z \"git checkout [ime-brancha]\"", "pl": "Utwórz nową gałąź za pomocą \"git branch \" i przełącz się na nią za pomocą \"git checkout \"", - "it_IT": 'Crea un nuovo ramo con "git branch " e selezionalo con "git checkout "', + "it_IT": "Crea un nuovo ramo con \"git branch \" e selezionalo con \"git checkout \"", "ta_IN": "இப்போது \"git branch \" கட்டளையை கொண்டு புதிய கிளை ஒன்றை உருவாக்குக பின் \"git checkout \" கொண்டு அந்த கிளைக்கு தாவுக", - "tr_TR": "Yeni bir branch oluşturmak için \"git branch \" komutunu kullanın ve \"git checkout \" komutu ile bu branch'e geçin.", + "tr_TR": "Yeni bir branch oluşturmak için \"git branch \" komutunu kullanın ve \"git checkout \" komutu ile bu branch'e geçin." }, "disabledMap": { "git revert": true @@ -841,7 +841,7 @@ exports.level = { "markdowns": [ "*注意:在 Git 2.23 版本中,引入了一个名为 `git switch` 的新命令,最终会取代 `git checkout`,因为 `checkout` 作为单个命令有点超载(它承载了很多独立的功能)。", "由于现在很多人还无法使用 `switch`,本次课程仍然使用 `checkout` 而不是 `switch`,", - "但是如果你想尝试一下新命令,我们的应用也是支持的!并且你可以从这里学到更多关于新命令的内容。*", + "但是如果你想尝试一下新命令,我们的应用也是支持的!并且你可以从这里学到更多关于新命令的内容。*" ] } }, @@ -1030,9 +1030,9 @@ exports.level = { "", "Pentru că nu există costuri suplimentare de stocare / memorie asociată cu crearea de multe ramuri, este mai ușor să îți împarți munca într-un mod logic decât să ai ramuri mari și greoaie.", "", - 'Când vom începe să combinăm ramuri și commit-uri, vom vedea cum aceste două caracteristici se îmbină bine. Pentru moment, doar reține că o ramură spune în esență "Vreau să includ munca acestui commit și a tuturor commit-urilor sale părinte."', - ], - }, + "Când vom începe să combinăm ramuri și commit-uri, vom vedea cum aceste două caracteristici se îmbină bine. Pentru moment, doar reține că o ramură spune în esență \"Vreau să includ munca acestui commit și a tuturor commit-urilor sale părinte.\"" + ] + } }, { "type": "GitDemonstrationView", @@ -1040,27 +1040,27 @@ exports.level = { "beforeMarkdowns": [ "Să vedem cum arată ramurile în practică.", "", - "Aici vom crea o ramură nouă numită `newImage`.", + "Aici vom crea o ramură nouă numită `newImage`." ], "afterMarkdowns": [ - "Iată, asta e tot ce trebuie să faci pentru a crea o ramură! Ramura `newImage` acum se referă la commit-ul `C1`.", + "Iată, asta e tot ce trebuie să faci pentru a crea o ramură! Ramura `newImage` acum se referă la commit-ul `C1`." ], "command": "git branch newImage", - "beforeCommand": "", - }, + "beforeCommand": "" + } }, { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Să încercăm să facem câteva modificări în această nouă ramură. Apasă butonul de mai jos.", + "Să încercăm să facem câteva modificări în această nouă ramură. Apasă butonul de mai jos." ], "afterMarkdowns": [ - 'Oh nu! Ramura `main` s-a mutat, dar ramura `newImage` nu! Aceasta s-a întâmplat pentru că nu eram "pe" noua ramură, motiv pentru care asteriscul (*) era pe `main`.', + "Oh nu! Ramura `main` s-a mutat, dar ramura `newImage` nu! Aceasta s-a întâmplat pentru că nu eram \"pe\" noua ramură, motiv pentru care asteriscul (*) era pe `main`." ], "command": "git commit", - "beforeCommand": "git branch newImage", - }, + "beforeCommand": "git branch newImage" + } }, { "type": "GitDemonstrationView", @@ -1072,14 +1072,14 @@ exports.level = { "git checkout ", "```", "", - "Aceasta ne va poziționa pe noua ramură înainte de a face commit cu modificările noastre.", + "Aceasta ne va poziționa pe noua ramură înainte de a face commit cu modificările noastre." ], "afterMarkdowns": [ - "Incredibil! Modificările noastre au fost înregistrate pe noua ramură.", + "Incredibil! Modificările noastre au fost înregistrate pe noua ramură." ], "command": "git checkout newImage; git commit", - "beforeCommand": "git branch newImage", - }, + "beforeCommand": "git branch newImage" + } }, { "type": "ModalAlert", @@ -1089,9 +1089,9 @@ exports.level = { " deoarece acesta din urmă este oarecum suprasolicitată (face multe lucruri diferite în funcție de argumente). Lecțiile de aici vor folosi în continuare ", "`checkout` în loc de `switch`, deoarece comanda `switch` este încă considerată experimentală și sintaxa sa se poate schimba în viitor.", "Cu toate acestea, puteți încerca noua comandă `switch` în această aplicație, și de asemenea ", - 'poți afla mai multe aici.* ', - ], - }, + "poți afla mai multe aici.* " + ] + } }, { "type": "ModalAlert", @@ -1102,11 +1102,11 @@ exports.level = { "", "Apropo, iată o scurtătură: dacă vrei să creezi o nouă ramură", " ȘI să treci pe ea în același timp, poți pur și simplu ", - "să scrii `git checkout -b [numele-ramurii]`.", - ], - }, - }, - ], + "să scrii `git checkout -b [numele-ramurii]`." + ] + } + } + ] }, "ru_RU": { "childViews": [ @@ -1183,7 +1183,7 @@ exports.level = { "создай ветку с именем bugFix и переключись на неё.", "", "Кстати вот тебе совет, ты можешь создать новую ветку и переключиться на неё", - "с помощью одной команды: ```git checkout -b [yourbranchname]```.", + "с помощью одной команды: ```git checkout -b [yourbranchname]```." ] } } @@ -1231,7 +1231,7 @@ exports.level = { "Давайте спробуємо додати якусь інформацію до цієї нової гілки. Натисни кнопку внизу." ], "afterMarkdowns": [ - "От халепа! Гілка `main` просунулася вперед, але гілка `newImage` \u2014 ні! Це тому, що ми були не \"на новій гілці\". Через це зірочка (*) була поруч з `main`." + "От халепа! Гілка `main` просунулася вперед, але гілка `newImage` — ні! Це тому, що ми були не \"на новій гілці\". Через це зірочка (*) була поруч з `main`." ], "command": "git commit", "beforeCommand": "git branch newImage" @@ -1647,9 +1647,9 @@ exports.level = { "", "Poiché non c'è un sovraccarico della memoria nel fare molti rami, è più semplice suddividere il lavoro piuttosto che avere rami enormi.", "", - 'Quando inizieremo a mischiare rami e commit, vedremo come queste caratteristiche si combinano. Per ora, però, ricorda che un ramo essenzialmente dice "Voglio includere il lavoro di questo commit e tutti i commit del genitore".', - ], - }, + "Quando inizieremo a mischiare rami e commit, vedremo come queste caratteristiche si combinano. Per ora, però, ricorda che un ramo essenzialmente dice \"Voglio includere il lavoro di questo commit e tutti i commit del genitore\"." + ] + } }, { "type": "GitDemonstrationView", @@ -1657,27 +1657,27 @@ exports.level = { "beforeMarkdowns": [ "Vediamo nella pratica cosa sono i rami.", "", - "Qui creeremo un nuovo ramo di nome `newImage`.", + "Qui creeremo un nuovo ramo di nome `newImage`." ], "afterMarkdowns": [ - "Ecco, questa è la divisione in rami! Il ramo `newImage` ora punta al commit `C1`.", + "Ecco, questa è la divisione in rami! Il ramo `newImage` ora punta al commit `C1`." ], "command": "git branch newImage", - "beforeCommand": "", - }, + "beforeCommand": "" + } }, { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Proviamo ad aggiungere un po' di lavoro su questo nuovo ramo. Premi il pulsante qua sotto.", + "Proviamo ad aggiungere un po' di lavoro su questo nuovo ramo. Premi il pulsante qua sotto." ], "afterMarkdowns": [ - "Oh no! Il ramo `main` si è spostato ma il ramo `newImage` no! Questo perché non eravamo sul nuovo ramo, infatti l'asterisco (*) era su `main`.", + "Oh no! Il ramo `main` si è spostato ma il ramo `newImage` no! Questo perché non eravamo sul nuovo ramo, infatti l'asterisco (*) era su `main`." ], "command": "git commit", - "beforeCommand": "git branch newImage", - }, + "beforeCommand": "git branch newImage" + } }, { "type": "GitDemonstrationView", @@ -1689,14 +1689,14 @@ exports.level = { "git checkout ", "```", "", - "Questo ci metterà sul nuovo ramo prima di fare un nuovo commit.", + "Questo ci metterà sul nuovo ramo prima di fare un nuovo commit." ], "afterMarkdowns": [ - "Ecco qua! I cambiamenti sono stati memorizzati sul nuovo ramo.", + "Ecco qua! I cambiamenti sono stati memorizzati sul nuovo ramo." ], "command": "git checkout newImage; git commit", - "beforeCommand": "git branch newImage", - }, + "beforeCommand": "git branch newImage" + } }, { "type": "ModalAlert", @@ -1705,9 +1705,9 @@ exports.level = { "*Nota: In Git versione 2.23, è stato introdotto un nuovo comando, `git switch`, per sostituire `git checkout`, ", "che è sovraccaricato di funzionalità (fa un sacco di cose diverse). Queste lezioni usano comunque ", "`checkout` invece che `switch` perché molti non hanno ancora accesso a `switch`, ma quest'app supporta comunque il comando ", - 'se sei curioso di provarlo! Potete scoprire di più qui.* ', - ], - }, + "se sei curioso di provarlo! Potete scoprire di più qui.* " + ] + } }, { "type": "ModalAlert", @@ -1718,11 +1718,11 @@ exports.level = { "", "Comunque, c'è una scorciatoia: se vuoi creare un nuovo ", "ramo E selezionarlo in un solo passaggio, puoi semplicemente ", - "digitare `git checkout -b [yourbranchname]`.", - ], - }, - }, - ], + "digitare `git checkout -b [yourbranchname]`." + ] + } + } + ] }, "tr_TR": { "childViews": [ @@ -1817,6 +1817,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/intro/commits.js b/src/levels/intro/commits.js index 3c46dd8c..446fdc6b 100644 --- a/src/levels/intro/commits.js +++ b/src/levels/intro/commits.js @@ -9,16 +9,16 @@ exports.level = { "gl": "Introducción ós commits de Git", "fr_FR": "Introduction aux commits avec Git", "ja": "Gitのコミット", - 'ko': 'Git 커밋 소개', - 'zh_CN': 'Git Commit', - 'zh_TW': '介紹 git commit ', - 'ro': "Introducere în Git Commit", - 'ru_RU': 'Знакомство с Git Commit ', - 'uk': 'Знайомство з комітами в Git', - 'vi': 'Giới thiệu về Git Commit', - 'sl_SI': "Uvod v Git Commit", - 'pl': "Wprowadzenie do commitów Gita", - 'it_IT': "Introduzione ai commit in Git", + "ko": "Git 커밋 소개", + "zh_CN": "Git Commit", + "zh_TW": "介紹 git commit ", + "ro": "Introducere în Git Commit", + "ru_RU": "Знакомство с Git Commit ", + "uk": "Знайомство з комітами в Git", + "vi": "Giới thiệu về Git Commit", + "sl_SI": "Uvod v Git Commit", + "pl": "Wprowadzenie do commitów Gita", + "it_IT": "Introduzione ai commit in Git", "ta_IN": "கிட் கமிட்கள் ஒரு அறிமுகம்", "tr_TR": "Git Commit'e Giriş" }, @@ -41,10 +41,10 @@ exports.level = { "ro": "Scrie 'git commit' de două ori pentru a termina!", "ru_RU": "Попробуй дважды выполнить команду 'git commit' ;)", "uk": "Спробуй двічі виконати команду 'git commit' ;)", - 'vi': "Đơn giản là cứ gõ 'git commit' 2 lần", - 'sl_SI': "Preprosto dvakrat vpiši 'git commit' in zaključi!", + "vi": "Đơn giản là cứ gõ 'git commit' 2 lần", + "sl_SI": "Preprosto dvakrat vpiši 'git commit' in zaključi!", "pl": "Aby zakończyć, wystarczy dwukrotnie wpisać 'git commit'!", - 'it_IT': "Digita 'git commit' due volte per finire!", + "it_IT": "Digita 'git commit' due volte per finire!", "ta_IN": "இந்த நிலையை நிரைவு செய்ய 'git commit' என்று இரண்டு முறை தட்டச்சு செய்க!", "tr_TR": "Bölümü bitirmek için sadece iki kere 'git commit' yazmanız yeterlidir." }, @@ -575,13 +575,13 @@ exports.level = { "## Git Commits", "Un commit într-un repozitoriu Git înregistrează o captură (snapshot) a tuturor fișierelor (urmărite) din directorul tău. E ca un copy&paste uriaș, dar mult mai bun!", "", - 'Git vrea să păstreze commit-urile cât mai simplu posibil, astfel că nu copiază pur și simplu întregul director de fiecare dată când faci un commit. Poate (dacă este posibil) să comprime un commit ca un set de modificări, sau un "delta", de la o versiune a repozitoriului la următoarea.', + "Git vrea să păstreze commit-urile cât mai simplu posibil, astfel că nu copiază pur și simplu întregul director de fiecare dată când faci un commit. Poate (dacă este posibil) să comprime un commit ca un set de modificări, sau un \"delta\", de la o versiune a repozitoriului la următoarea.", "", "Git, de asemenea, păstrează un istoric al commit-urilor, care și când au fost făcute. De aceea majoritatea commit-urilor au commit-uri anterioare deasupra lor -- afișăm acest lucru cu săgeți în vizualizarea noastră. Păstrarea istoricului este utilă pentru toți cei care lucrează la proiect!", "", - "Este mult de învățat, dar pentru moment poți să te gândești la commit-uri ca la capturi/versiuni ale proiectului. Commit-urile sunt foarte ușoare și schimbarea între ele este extrem de rapidă!", - ], - }, + "Este mult de învățat, dar pentru moment poți să te gândești la commit-uri ca la capturi/versiuni ale proiectului. Commit-urile sunt foarte ușoare și schimbarea între ele este extrem de rapidă!" + ] + } }, { "type": "GitDemonstrationView", @@ -589,24 +589,24 @@ exports.level = { "beforeMarkdowns": [ "Dați să vedem cum arată asta în practică. În dreapta avem o vizualizare a unui (mic) repozitoriu Git. La moment avem două commit-uri -- primul commit inițial, `C0`, și un commit după acesta, `C1`, care ar putea avea unele modificări semnificative.", "", - "Dați click pe butonul de mai jos pentru a face un nou commit.", + "Dați click pe butonul de mai jos pentru a face un nou commit." ], "afterMarkdowns": [ - "Super! Tocmai am făcut modificări în repozitoriu și le-am salvat ca un commit. Commit-ul pe care tocmai l-am făcut are un părinte, `C1`, care face referire la rândul său la commit-ul în baza căruia a fost făcut.", + "Super! Tocmai am făcut modificări în repozitoriu și le-am salvat ca un commit. Commit-ul pe care tocmai l-am făcut are un părinte, `C1`, care face referire la rândul său la commit-ul în baza căruia a fost făcut." ], "command": "git commit", - "beforeCommand": "", - }, + "beforeCommand": "" + } }, { "type": "ModalAlert", "options": { "markdowns": [ - "Acum, încearcă și tu! După ce această fereastră se va închide, fă două commit-uri pentru a termina nivelul.", - ], - }, - }, - ], + "Acum, încearcă și tu! După ce această fereastră se va închide, fă două commit-uri pentru a termina nivelul." + ] + } + } + ] }, "ru_RU": { "childViews": [ @@ -661,7 +661,7 @@ exports.level = { "", "Git намагається зберігати коміти якнайпростіше й ефективніше, тому він не просто копіює всю директорію при кожному коміті. Він може стиснути коміт в набір правок чи \"дельту\" між двома версіями репозиторію.", "", - "Git також зберігає історію коли і ким був створений той чи інший коміт. Тому більшість комітів мають комітів-предків, що знаходяться вище в ієрархії \u2014 ми це зображуємо стрілочками в нашій візуалізації. Історія \u2014 це необхідна річ для кожного, хто працює з конкретним проектом.", + "Git також зберігає історію коли і ким був створений той чи інший коміт. Тому більшість комітів мають комітів-предків, що знаходяться вище в ієрархії — ми це зображуємо стрілочками в нашій візуалізації. Історія — це необхідна річ для кожного, хто працює з конкретним проектом.", "", "Тут є багато над чим подумати, але наразі ти можеш уявляти коміти як моментальні знімки проекту. Коміти майже невагомі й перемикання між ними дуже швидке." ] @@ -861,46 +861,46 @@ exports.level = { ] }, "it_IT": { - childViews: [ + "childViews": [ { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "## Git Commits", "Un commit in git memorizza un'instantanea di tutti i file (tracciati) della cartella di lavoro. È come un enorme copia-incolla, ma migliore!", "", - 'Git conserva i commit nel modo più leggero possibile, perciò non copia ciecamente l\'intera cartella per ogni commit. Può (ove possibile) comprimere un commit come un insieme di cambiamenti, o "delta", da una versione alla successiva del repository.', + "Git conserva i commit nel modo più leggero possibile, perciò non copia ciecamente l'intera cartella per ogni commit. Può (ove possibile) comprimere un commit come un insieme di cambiamenti, o \"delta\", da una versione alla successiva del repository.", "", "Git memorizza anche la storia di tutti i commit effettuati. Questo è il motivo per cui molti commit hanno genitori sopra di essi -- questo viene rappresentato con delle frecce nelle nostre spiegazioni. Conoscere la storia è utilissimo per tutti quelli che collaborano ad un progetto!", "", - "C'è tanto da imparare, ma per ora pensa ai commit come a delle instantanee del progetto. I commit sono leggerissimi e si può passare da uno all'altro in un battibaleno!", - ], - }, + "C'è tanto da imparare, ma per ora pensa ai commit come a delle instantanee del progetto. I commit sono leggerissimi e si può passare da uno all'altro in un battibaleno!" + ] + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ "Vediamolo in pratica. Sulla destra abbiamo l'immagine di un (piccolo) repository git. Ci sono due commit -- il primo commit, `C0`, e un altro dopo, `C1`, che potrebbe avere modifiche importanti.", "", - "Premi il pulsante qua sotto per eseguire un nuovo commit.", + "Premi il pulsante qua sotto per eseguire un nuovo commit." ], - afterMarkdowns: [ - "Ecco qua! Fantastico. Abbiamo modificato il repository e salvato con un commit. Il commit che abbiamo creato ha un genitore, `C1`, che ci indica su chi è basato il nostro commit.", + "afterMarkdowns": [ + "Ecco qua! Fantastico. Abbiamo modificato il repository e salvato con un commit. Il commit che abbiamo creato ha un genitore, `C1`, che ci indica su chi è basato il nostro commit." ], - command: "git commit", - beforeCommand: "", - }, + "command": "git commit", + "beforeCommand": "" + } }, { - type: "ModalAlert", - options: { - markdowns: [ - "Vai avanti e prova da solo! Dopo che questa finestra si chiude, crea due commit per completare il livello.", - ], - }, - }, - ], + "type": "ModalAlert", + "options": { + "markdowns": [ + "Vai avanti e prova da solo! Dopo che questa finestra si chiude, crea due commit per completare il livello." + ] + } + } + ] }, "tr_TR": { "childViews": [ @@ -928,7 +928,7 @@ exports.level = { "Yeni bir commit için aşağıdaki düğmeye tıklayın." ], "afterMarkdowns": [ - "İşte bu! Harika. Depoya değişiklikler yaptık ve onları bir commit olarak kaydettik. Yeni yaptığımız commit'in bir atası var, `C1`, bu da commit\'imizin ne üzerine inşa edildiğini gösteren bir referans içerir." + "İşte bu! Harika. Depoya değişiklikler yaptık ve onları bir commit olarak kaydettik. Yeni yaptığımız commit'in bir atası var, `C1`, bu da commit'imizin ne üzerine inşa edildiğini gösteren bir referans içerir." ], "command": "git commit", "beforeCommand": "" @@ -943,6 +943,6 @@ exports.level = { } } ] - }, - }, -}; + } + } +}; \ No newline at end of file diff --git a/src/levels/intro/merging.js b/src/levels/intro/merging.js index c93f49ad..642706b5 100644 --- a/src/levels/intro/merging.js +++ b/src/levels/intro/merging.js @@ -20,29 +20,29 @@ exports.level = { "vi": "Gộp nhánh trong Git", "sl_SI": "Merganje v Gitu", "pl": "Merge w Gicie", - 'it_IT': "Fusione in Git", + "it_IT": "Fusione in Git", "ta_IN": "கிட்டில் இணைத்தல்", "tr_TR": "Git'te Merge işlemleri" }, "hint": { "en_US": "Remember to commit in the order specified (bugFix before main)", "de_DE": "Denk dran in der angegebenen Reihenfolge zu committen (erst bugFix, dann main)", - "ja": "指示された順番でコミットすること(mainの前にbugFixで)", + "ja": "指示された順番でコミットすること(mainの前にbugFixで)", "es_AR": "Acordate de commitear en el orden especificado (bugFix antes de main)", "es_MX": "Acuérdate de hacer commit en el orden especificado (bugFix antes de main)", "es_ES": "Acuérdate de hacer commit en el orden especificado (bugFix antes de main)", "pt_BR": "Lembre-se de commitar na ordem especificada (bugFix antes de main)", - "gl": "Lembrate de facer commit na orde específica (bugFix antes de main)", + "gl": "Lembrate de facer commit na orde específica (bugFix antes de main)", "fr_FR": "Pensez à faire des commits dans l'ordre indiqué (bugFix avant main)", "zh_CN": "要按目标窗口中指定的顺序进行提交(bugFix 先于 main)", "zh_TW": "記住按指定的順序 commit(bugFix 比 main 優先)", - "ko": "말씀드린 순서대로 커밋해주세요 (bugFix에 먼저 커밋하고 main에 커밋)", + "ko": "말씀드린 순서대로 커밋해주세요 (bugFix에 먼저 커밋하고 main에 커밋)", "ro": "Nu uita să faci commit în ordinea specificată (bugFix înainte de main)", "ru_RU": "Не забудь делать коммиты в правильном порядке (сначала bugFix, потом main)", - "uk": "Не забудь робити коміти в правильному порядку (спочатку bugFix, а вже потім main)", - "vi": "Nhớ là commit theo đúng thứ tự (bugFix trước main)", - "sl_SI": 'Zapomni si, da je potrebno commitati v pravilnem vrstnem redu (bugfix pred main)', - "pl": "Pamiętaj, aby commitować w określonej kolejności (bugFix przed main)", + "uk": "Не забудь робити коміти в правильному порядку (спочатку bugFix, а вже потім main)", + "vi": "Nhớ là commit theo đúng thứ tự (bugFix trước main)", + "sl_SI": "Zapomni si, da je potrebno commitati v pravilnem vrstnem redu (bugfix pred main)", + "pl": "Pamiętaj, aby commitować w określonej kolejności (bugFix przed main)", "it_IT": "Ricorda di effettuare i commit nell'ordine specificato (bugFix prima di main)", "ta_IN": "bugFix முன் main என்ற கொடுக்கப்பட்ட வரிசையில் கட்டலை இடுவதை கருத்தில் கொள்க", "tr_TR": "Belirlenen sırada commit etmeyi unutmayın (main'den önce bugFix)" @@ -879,8 +879,8 @@ exports.level = { } ] }, - ro: { - childViews: [ + "ro": { + "childViews": [ { "type": "ModalAlert", "options": { @@ -889,45 +889,45 @@ exports.level = { "", "Perfect! Deja știm cum să facem commit și să creăm ramuri. Acum trebuie să învățăm o modalitate de a combina munca din două ramuri diferite. Acest lucru ne va permite să ne ramificăm, să dezvoltăm o nouă funcționalitate și apoi să o combinăm înapoi.", "", - 'Primul mod de a combina munca pe care îl vom examina este `git merge`. Combinarea în Git creează un commit special care are doi părinți unici. Un commit cu doi părinți înseamnă, în esență, "Vreau să includ toată munca de la acest părinte și de la celălalt părinte, *și* setul tuturor părinților lor."', + "Primul mod de a combina munca pe care îl vom examina este `git merge`. Combinarea în Git creează un commit special care are doi părinți unici. Un commit cu doi părinți înseamnă, în esență, \"Vreau să includ toată munca de la acest părinte și de la celălalt părinte, *și* setul tuturor părinților lor.\"", "", - "Este mai ușor cu o vizualizare, să vedem în următoarea pagină.", - ], - }, + "Este mai ușor cu o vizualizare, să vedem în următoarea pagină." + ] + } }, { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - 'Aici avem două ramuri; fiecare are un commit care este unic. Acest lucru înseamnă că nici o ramură nu include setul complet de "muncă" pe care l-am făcut în repozitoriu. Să rezolvăm asta cu un merge.', + "Aici avem două ramuri; fiecare are un commit care este unic. Acest lucru înseamnă că nici o ramură nu include setul complet de \"muncă\" pe care l-am făcut în repozitoriu. Să rezolvăm asta cu un merge.", "", - "Vom `merge(combina)` ramura `bugFix` în `main`.", + "Vom `merge(combina)` ramura `bugFix` în `main`." ], "afterMarkdowns": [ "Wow! Ai văzut asta? În primul rând, `main` acum indică către un commit care are doi părinți. Dacă urmezi săgețile în sus de la `main`, vei trece prin fiecare commit până la rădăcină. Asta înseamnă că `main` conține acum toată munca din repozitoriu.", "", "De asemenea, ai văzut cum s-au schimbat culorile commit-urilor? Pentru a ajuta la învățare, am inclus o legendă de culori. Fiecare ramură are o culoare unică. Fiecare commit devine culoarea rezultată din amestecarea culorilor tuturor ramurilor care îl conțin.", "", - "Așa că aici vedem că culoarea ramurii `main` este amestecată în toate commit-urile, dar culoarea `bugFix` nu este. Să reparăm asta...", + "Așa că aici vedem că culoarea ramurii `main` este amestecată în toate commit-urile, dar culoarea `bugFix` nu este. Să reparăm asta..." ], "command": "git merge bugFix", - "beforeCommand": - "git checkout -b bugFix; git commit; git checkout main; git commit", - }, + "beforeCommand": "git checkout -b bugFix; git commit; git checkout main; git commit" + } }, { "type": "GitDemonstrationView", "options": { - "beforeMarkdowns": ["Hai să combinăm ramura `main` în `bugFix`:"], + "beforeMarkdowns": [ + "Hai să combinăm ramura `main` în `bugFix`:" + ], "afterMarkdowns": [ "Deoarece `bugFix` era un strămoș al lui `main`, git nu a trebuit să facă nimic; pur și simplu a mutat `bugFix` la același commit la care era atașat `main`.", "", - "Acum toate commit-urile au aceeași culoare, ceea ce înseamnă că fiecare ramură conține toată munca din repozitoriu! Yay!", + "Acum toate commit-urile au aceeași culoare, ceea ce înseamnă că fiecare ramură conține toată munca din repozitoriu! Yay!" ], "command": "git checkout bugFix; git merge main", - "beforeCommand": - "git checkout -b bugFix; git commit; git checkout main; git commit; git merge bugFix", - }, + "beforeCommand": "git checkout -b bugFix; git commit; git checkout main; git commit; git merge bugFix" + } }, { "type": "ModalAlert", @@ -942,11 +942,11 @@ exports.level = { "* Fă un alt commit", "* Combină ramura `bugFix` în `main` folosind `git merge`", "", - "*Ține minte, poți oricând să reafișezi acest dialog tastând `objective`!*", - ], - }, - }, - ], + "*Ține minte, poți oricând să reafișezi acest dialog tastând `objective`!*" + ] + } + } + ] }, "ru_RU": { "childViews": [ @@ -1363,59 +1363,59 @@ exports.level = { ] }, "it_IT": { - childViews: [ + "childViews": [ { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "## Rami e fusione", "", "Ottimo! Ora sappiamo come funzionano i commit e i rami. Adesso dobbiamo trovare il modo per unire il lavoro di due rami diversi. Questo ci permetterà di creare un nuovo ramo, aggiungere una nuova funzionalità, e poi riunire il tutto.", "", - 'Il primo metodo che vediamo per unire il lavoro è `git merge` (fusione). La fusione in Git crea un commit speciale che possiede due genitori distinti. Un commit con due genitori significa "Voglio unire tutto il lavoro da questo e da quest\' altro genitore, *e anche* di tutti i loro genitori."', + "Il primo metodo che vediamo per unire il lavoro è `git merge` (fusione). La fusione in Git crea un commit speciale che possiede due genitori distinti. Un commit con due genitori significa \"Voglio unire tutto il lavoro da questo e da quest' altro genitore, *e anche* di tutti i loro genitori.\"", "", - "È più semplice con le immagini, vediamolo nella prossima schermata.", - ], - }, + "È più semplice con le immagini, vediamolo nella prossima schermata." + ] + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ - 'Qui abbiamo due rami; ognuno di essi ha un commit univoco. Ciò significa che nessuno dei rami contiene per intero il "lavoro" del repository. Sistemiamo le cose con una fusione.', + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "Qui abbiamo due rami; ognuno di essi ha un commit univoco. Ciò significa che nessuno dei rami contiene per intero il \"lavoro\" del repository. Sistemiamo le cose con una fusione.", "", - "Ora facciamo `merge` del ramo `bugFix` nel `main`.", + "Ora facciamo `merge` del ramo `bugFix` nel `main`." ], - afterMarkdowns: [ + "afterMarkdowns": [ "WOW! Visto? Prima di tutto, `main` ora punta a un commit con due genitori. Se ripercorri l'albero dei commit dal `main`, potrai attraversare tutti i commit fino alla radice (root). Questo significa che `main` ora contiene tutto il lavoro del repository.", "", "Hai visto come è cambiato il colore del commit? Per imparare più facilmente, ho aggiunto i colori. Ogni ramo ha un colore univoco. Ogni (merge) commit ha un colore che è la combinazione dei colori dei rami che lo compongono.", "", - "Qui vediamo che il colore del ramo `main` è la combinazione di tutti i commit , ma il colore di `bugFix` è diverso. Sistemiamolo...", + "Qui vediamo che il colore del ramo `main` è la combinazione di tutti i commit , ma il colore di `bugFix` è diverso. Sistemiamolo..." ], - command: "git merge bugFix", - beforeCommand: - "git checkout -b bugFix; git commit; git checkout main; git commit", - }, + "command": "git merge bugFix", + "beforeCommand": "git checkout -b bugFix; git commit; git checkout main; git commit" + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: ["Fondiamo `main` in `bugFix`:"], - afterMarkdowns: [ + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "Fondiamo `main` in `bugFix`:" + ], + "afterMarkdowns": [ "Visto che `bugFix` era un antenato di `main`, git non ha dovuto fare nulla di che; ha semplicemente spostato `bugFix` sullo stesso commit in cui era collegato `main`.", "", - "Ora tutti i commit hanno lo stesso colore, il che significa che ogni ramo contiene tutto il lavoro del repository! WoWoWoW!", + "Ora tutti i commit hanno lo stesso colore, il che significa che ogni ramo contiene tutto il lavoro del repository! WoWoWoW!" ], - command: "git checkout bugFix; git merge main", - beforeCommand: - "git checkout -b bugFix; git commit; git checkout main; git commit; git merge bugFix", - }, + "command": "git checkout bugFix; git merge main", + "beforeCommand": "git checkout -b bugFix; git commit; git checkout main; git commit; git merge bugFix" + } }, { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "Per completare questo livello, esegui i seguenti passaggi:", "", "* Crea un nuovo ramo di nome `bugFix`", @@ -1425,11 +1425,11 @@ exports.level = { "* Esegui un nuovo commit", "* Fondi il ramo `bugFix` nel `main` con `git merge`", "", - '*Ricorda, puoi sempre rivedere questa schermata digitando "objective"!*', - ], - }, - }, - ], + "*Ricorda, puoi sempre rivedere questa schermata digitando \"objective\"!*" + ] + } + } + ] }, "tr_TR": { "childViews": [ @@ -1499,6 +1499,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/intro/rebasing.js b/src/levels/intro/rebasing.js index 12d335d2..425d34df 100644 --- a/src/levels/intro/rebasing.js +++ b/src/levels/intro/rebasing.js @@ -18,8 +18,8 @@ exports.level = { "ru_RU": "Введение в rebase", "uk": "Знайомство з rebase", "vi": "Giới thiệu về rebase", - 'sl_SI': 'Uvod v Rebase', - 'it_IT': "Introduzione al rebase (ribasare)", + "sl_SI": "Uvod v Rebase", + "it_IT": "Introduzione al rebase (ribasare)", "pl": "Wprowadzenie do Rebase", "ta_IN": "Rebase அறிமுகம்", "tr_TR": "Rebase İşlemine Giriş" @@ -41,8 +41,8 @@ exports.level = { "ru_RU": "Убедись, что сделал коммит в ветке bugFix", "uk": "Впевнись, що зробив коміт в гілці bugFix", "vi": "Hãy chắc chắn rằng bạn commit từ bugFix trước", - 'sl_SI': 'Prepričaj se, da si najprej commital bugFix.', - 'it_IT': "Assicurati di fare prima il commit da bugFix", + "sl_SI": "Prepričaj se, da si najprej commital bugFix.", + "it_IT": "Assicurati di fare prima il commit da bugFix", "pl": "Upewnij się, że masz już commit z bugFix", "ta_IN": "முதலில் bugFix இல் இருந்து commit செய்ய நீங்கள் உறுதி செய்யவும்", "tr_TR": "Önce bugFix'ten commit attığınıza emin olun" @@ -628,12 +628,12 @@ exports.level = { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Nous sommes désormais positionnés sur la branche `main`. Continuons en faisant le rebase sur `bugFix`…", + "Nous sommes désormais positionnés sur la branche `main`. Continuons en faisant le rebase sur `bugFix`…" ], "afterMarkdowns": [ "Et voilà ! Puisque `main` était un ascendant de `bugFix`, Git a simplement déplacé la référence de la branche `main` en avant dans le temps.", "", - "Maintenant que vous avez vu comment cela fonctionne, essayons ce niveau !", + "Maintenant que vous avez vu comment cela fonctionne, essayons ce niveau !" ], "command": "git rebase bugFix", "beforeCommand": "git commit; git checkout -b bugFix C1; git commit; git rebase main; git checkout main" @@ -865,13 +865,13 @@ exports.level = { "markdowns": [ "## Git Rebase", "", - 'A doua modalitate de a combina munca între ramuri este *rebase*. Rebase practic ia un set de commit-uri, le "copiază" și le plasează în altă parte.', + "A doua modalitate de a combina munca între ramuri este *rebase*. Rebase practic ia un set de commit-uri, le \"copiază\" și le plasează în altă parte.", "", "Deși poate părea confuz, avantajul rebase este că poate fi folosit pentru a crea o secvență de commit-uri liniară și mai frumoasă. Istoria commit-urilor din repozitoriu va fi mult mai curată dacă se utilizează doar rebase.", "", - "Hai să vedem cum funcționează...", - ], - }, + "Hai să vedem cum funcționează..." + ] + } }, { "type": "GitDemonstrationView", @@ -881,32 +881,31 @@ exports.level = { "", "Am dori să mutăm munca noastră de pe bugFix direct peste munca de pe main. Astfel, ar părea că aceste două funcționalități au fost dezvoltate secvențial, când de fapt au fost dezvoltate în paralel.", "", - "Vom face asta cu comanda `git rebase`.", + "Vom face asta cu comanda `git rebase`." ], "afterMarkdowns": [ - 'Minunat! Acum munca de pe ramura "bugFix" este chiar deasupra celei de pe "main" și avem o secvență liniară de commit-uri.', + "Minunat! Acum munca de pe ramura \"bugFix\" este chiar deasupra celei de pe \"main\" și avem o secvență liniară de commit-uri.", "", - 'Observați că commit-ul C3 încă există undeva (apare decolorat în arbore), iar C3\' este "copia" pe care am făcut-o prin rebase pe main.', + "Observați că commit-ul C3 încă există undeva (apare decolorat în arbore), iar C3' este \"copia\" pe care am făcut-o prin rebase pe main.", "", - "Singura problemă este că main nu a fost actualizat, să rezolvăm asta acum...", + "Singura problemă este că main nu a fost actualizat, să rezolvăm asta acum..." ], "command": "git rebase main", - "beforeCommand": "git commit; git checkout -b bugFix C1; git commit", - }, + "beforeCommand": "git commit; git checkout -b bugFix C1; git commit" + } }, { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Acum suntem pe ramura `main`. Să continuăm și să facem rebase pe `bugFix`...", + "Acum suntem pe ramura `main`. Să continuăm și să facem rebase pe `bugFix`..." ], "afterMarkdowns": [ - "Iată! Deoarece `main` era un strămoș al `bugFix`, git a mutat pur și simplu referința ramurii `main` înainte în istorie.", + "Iată! Deoarece `main` era un strămoș al `bugFix`, git a mutat pur și simplu referința ramurii `main` înainte în istorie." ], "command": "git rebase bugFix", - "beforeCommand": - "git commit; git checkout -b bugFix C1; git commit; git rebase main; git checkout main", - }, + "beforeCommand": "git commit; git checkout -b bugFix C1; git commit; git rebase main; git checkout main" + } }, { "type": "ModalAlert", @@ -919,11 +918,11 @@ exports.level = { "* Întoarceți-vă la `main` și faceți un alt commit", "* Faceți checkout pe `bugFix` din nou și faceți rebase pe `main`", "", - "Mult succes!", - ], - }, - }, - ], + "Mult succes!" + ] + } + } + ] }, "ru_RU": { "childViews": [ @@ -1261,60 +1260,59 @@ exports.level = { ] }, "it_IT": { - childViews: [ + "childViews": [ { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "## Git Rebase", "", - 'Il secondo modo per unire il lavoro tra rami è il *rebasing* (ribasare). Quando si ribasa vengono presi una serie di commit, vengono "copiati", e incollati da qualche parte.', + "Il secondo modo per unire il lavoro tra rami è il *rebasing* (ribasare). Quando si ribasa vengono presi una serie di commit, vengono \"copiati\", e incollati da qualche parte.", "", "Anche se sembra un sistema complesso, il vantaggio del rebasing è che può essere usato per creare una sequenza lineare di commit. Il log / storia dei commit del repository sarebbe molto più ordinata e comprensibile se fosse consentito solo il rebasing.", "", - "Vediamolo in azione...", - ], - }, + "Vediamolo in azione..." + ] + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ "Anche qui abbiamo ancora due rami; prestate attenzione al fatto che il ramo selezionato è bugFix (notare l'asterisco*)", "", "Ora vogliamo spostare il nostro lavoro dal ramo bugFix direttamente sul ramo main. In questo modo sembrerà che i due lavori sono stati sviluppati in sequenza, quando in realtà sono stati sviluppati in parallelo.", "", - "Vediamo il comando `git rebase` all'opera.", + "Vediamo il comando `git rebase` all'opera." ], - afterMarkdowns: [ + "afterMarkdowns": [ "Fantastico! Ora il lavoro del ramo bugFix è sopra al main e abbiamo una sequenza lineare di commit.", "", - 'Nota che il commit C3 continua ad esistere (messo in trasparenza), e C3\' è la "copia" che abbiamo ribasato sul main.', + "Nota che il commit C3 continua ad esistere (messo in trasparenza), e C3' è la \"copia\" che abbiamo ribasato sul main.", "", - "L'unico problema è che il main non è ancora stato aggiornato, facciamolo ora...", + "L'unico problema è che il main non è ancora stato aggiornato, facciamolo ora..." ], - command: "git rebase main", - beforeCommand: "git commit; git checkout -b bugFix C1; git commit", - }, + "command": "git rebase main", + "beforeCommand": "git commit; git checkout -b bugFix C1; git commit" + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ - "Ora il ramo selezionato è il main. Procediamo e facciamo rebase su `bugFix`...", + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "Ora il ramo selezionato è il main. Procediamo e facciamo rebase su `bugFix`..." ], - afterMarkdowns: [ - "Ecco qua! Visto che main era un antenato di `bugFix`, git sposta semplicemente il riferimento al ramo `main` in avanti.", + "afterMarkdowns": [ + "Ecco qua! Visto che main era un antenato di `bugFix`, git sposta semplicemente il riferimento al ramo `main` in avanti." ], - command: "git rebase bugFix", - beforeCommand: - "git commit; git checkout -b bugFix C1; git commit; git rebase main; git checkout main", - }, + "command": "git rebase bugFix", + "beforeCommand": "git commit; git checkout -b bugFix C1; git commit; git rebase main; git checkout main" + } }, { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "Per completare questo livello, esegui i seguenti passaggi", "", "* Crea un nuovo ramo di nome `bugFix`", @@ -1322,11 +1320,11 @@ exports.level = { "* Torna al main e crea un nuovo commit", "* Seleziona nuovamente bugFix e fai rebase sul main", "", - "In bocca al lupo!", - ], - }, - }, - ], + "In bocca al lupo!" + ] + } + } + ] }, "ta_IN": { "childViews": [ @@ -1461,6 +1459,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/mixed/describe.js b/src/levels/mixed/describe.js index 549900c8..85d5e901 100644 --- a/src/levels/mixed/describe.js +++ b/src/levels/mixed/describe.js @@ -5,9 +5,7 @@ exports.level = { "onlyEvaluateAsserts": true, "goalAsserts": { "bugfix": [ - function (data) { - return data.__num_commits_upstream > 5; - }, + null ] }, "name": { @@ -22,16 +20,15 @@ exports.level = { "gl": "Git Describe", "zh_TW": "git describe", "zh_CN": "Git Describe", - "ro":"Git Describe", + "ro": "Git Describe", "ru_RU": "Git describe", - "ko": "Git describe(묘사)", + "ko": "Git 설명", "uk": "Git Describe", "vi": "Git Describe (mô tả)", "sl_SI": "Git Describe", "it_IT": "Git Describe", "pl": "Git describe", "tr_TR": "git describe", - "ko": "Git 설명", "ta_IN": "Git விவரம்" }, "hint": { @@ -375,69 +372,6 @@ exports.level = { } ] }, - "es_ES": { - "childViews": [ - { - "type": "ModalAlert", - "options": { - "markdowns": [ - "### Git Describe", - "", - "Como los tags sirven genial como \"marcas\" en el código, git tiene un comando para _describir_ dónde estás relativo a la \"marca\" (es decir, al \"tag\") más cercana. Y ese comamndo se llama ¡`git describe`!", - "", - "`git describe` puede ayudarte a saber dónde estás después de haberte movido varios commits hacia adelante o atrás en la historia. Esto puede pasarte después de que termines un _git bisect_ (una búsqueda de debug) o cuando te sientas delante de la computadora de un compañero de trabajo que acaba de volver de vacaciones." - ] - } - }, - { - "type": "ModalAlert", - "options": { - "markdowns": [ - "Git describe tiene la siguiente forma:", - "", - "`git describe `", - "", - "Donde `` es cualquier cosa que git puede resolver a un commit. Si no especificas ninguna referencia, git simplemente usa el commit en el que estás en ese momento (`HEAD`).", - "", - "La salida de ese comando se ve así:", - "", - "`__g`", - "", - "Donde `tag` es el tag más cercano en la historia, `numCommits` es a cuántos commits de ese tag estás, y `` es el hash del commit que está siendo descrito." - ] - } - }, - { - "type": "GitDemonstrationView", - "options": { - "beforeMarkdowns": [ - "Veamos un ejemplo rápido. Para este árbol de commits:" - ], - "afterMarkdowns": [ - "El comando `git describe main` mostraría:", - "", - "`v1_2_gC2`", - "", - "Mientras que `git describe side` mostraría:", - "", - "`v2_1_gC4`" - ], - "command": "git tag v2 C3", - "beforeCommand": "git commit; go -b side HEAD~1; gc; gc; git tag v1 C0" - } - }, - { - "type": "ModalAlert", - "options": { - "markdowns": [ - "¡Eso es prácticamente todo lo que hay sobre git describe! Prueba describiendo algunas _ubicaciones_ en este nivel para familiarizarte con el comando.", - "", - "Cuando estés listo, crea un commit para terminar el nivel. Te estamos dejando este nivel de regalo. :P" - ] - } - } - ] - }, "es_ES": { "childViews": [ { @@ -783,7 +717,7 @@ exports.level = { "", "`__g`", "", - "Unde `tag` este cel mai apropiat tag din istorie, `numCommits` este numărul de commit-uri până la acel tag, iar `` este hash-ul commit-ului pe care îl descrii.", + "Unde `tag` este cel mai apropiat tag din istorie, `numCommits` este numărul de commit-uri până la acel tag, iar `` este hash-ul commit-ului pe care îl descrii." ] } }, @@ -1197,23 +1131,23 @@ exports.level = { ] }, "it_IT": { - childViews: [ + "childViews": [ { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "### Git Describe", "", - 'Visto che i tag fungono da "ancore", si può usare il comando `git describe` per capire dove ci si trova in riferimento all\'"ancora" (tag) più vicina!', + "Visto che i tag fungono da \"ancore\", si può usare il comando `git describe` per capire dove ci si trova in riferimento all'\"ancora\" (tag) più vicina!", "", - "Git describe aiuta ad orientarti dopo che hai creato molti commit su per giù nell'albero; oppure dopo che hai concluso un git bisect (per ricercare bug) o quando utilizzi il computer di un collega che è appena tornato dalle vacanze.", - ], - }, + "Git describe aiuta ad orientarti dopo che hai creato molti commit su per giù nell'albero; oppure dopo che hai concluso un git bisect (per ricercare bug) o quando utilizzi il computer di un collega che è appena tornato dalle vacanze." + ] + } }, { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "Git describe ha questa forma:", "", "`git describe `", @@ -1224,41 +1158,40 @@ exports.level = { "", "`__g`", "", - "Dove `tag` è il tag antenato più vicino, `numCommits` corrisponde al numero di commit tra ref e il tag, e `` è l'hash del commit che è descritto.", - ], - }, + "Dove `tag` è il tag antenato più vicino, `numCommits` corrisponde al numero di commit tra ref e il tag, e `` è l'hash del commit che è descritto." + ] + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ - "Vediamo un esempio semplice. In quest'albero:", + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "Vediamo un esempio semplice. In quest'albero:" ], - afterMarkdowns: [ + "afterMarkdowns": [ "Il comando `git describe main` genera come output:", "", "`v1_2_gC2`", "", "Mentre `git describe side` genererà:", "", - "`v2_1_gC4`", + "`v2_1_gC4`" ], - command: "git tag v2 C3", - beforeCommand: - "git commit; go -b side HEAD~1; gc; gc; git tag v1 C0", - }, + "command": "git tag v2 C3", + "beforeCommand": "git commit; go -b side HEAD~1; gc; gc; git tag v1 C0" + } }, { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "Questo è più o meno quanto fa git describe! Prova questo comando in vari punti in questo livello per prendere confidenza.", "", - "Quando hai finito, procedi e crea un commit per concludere il livello. Consideralo un omaggio della casa :P", - ], - }, - }, - ], + "Quando hai finito, procedi e crea un commit per concludere il livello. Consideralo un omaggio della casa :P" + ] + } + } + ] }, "ta_IN": { "childViews": [ @@ -1385,6 +1318,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/mixed/grabbingOneCommit.js b/src/levels/mixed/grabbingOneCommit.js index bf6fac52..cf69b98b 100644 --- a/src/levels/mixed/grabbingOneCommit.js +++ b/src/levels/mixed/grabbingOneCommit.js @@ -2,9 +2,7 @@ exports.level = { "compareOnlyMainHashAgnosticWithAsserts": true, "goalAsserts": { "main": [ - function (data) { - return data.C4 > data.C1; - } + null ] }, "disabledMap": { @@ -26,7 +24,7 @@ exports.level = { "ja": "一つのコミットのみを取得", "zh_CN": "只取一个提交记录", "zh_TW": "只取一個 commit", - "ro":"Alegem doar un singur commit", + "ro": "Alegem doar un singur commit", "ru_RU": "Выберем один коммит.", "uk": "Вибираємо всього один коміт", "vi": "Chỉ lấy 1 commit", @@ -369,7 +367,6 @@ exports.level = { } ] }, - // INTL out of sync :( "ja": { "childViews": [ { @@ -763,43 +760,43 @@ exports.level = { ] }, "it_IT": { - childViews: [ + "childViews": [ { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "## Commit impilati localmente", "", "Ecco una situazione che accade spesso in fase di sviluppo: Sto cercando di scovare un bug. Per aiutarmi nel mio lavoro di detective, inserisco alcuni comandi per il debug e alcune print per fare stampe.", "", "Questi comandi aggiunti per il debug vengono salvati con un commit loro dedicato. Finalmente riesco a beccare il bug, sistemo il tutto, e brindo!", "", - "Ora l'unico problema è che devo salvare il lavoro di `bugFix` nel ramo `main`. Se eseguo un semplice fast-forwarded `main`, allora il `main` andrebbe a prendere anche tutto ciò che è stato aggiunto per il debug. Se solo ci fosse un altro modo...", - ], - }, + "Ora l'unico problema è che devo salvare il lavoro di `bugFix` nel ramo `main`. Se eseguo un semplice fast-forwarded `main`, allora il `main` andrebbe a prendere anche tutto ciò che è stato aggiunto per il debug. Se solo ci fosse un altro modo..." + ] + } }, { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "Dobbiamo dire a Git di fare la copia di un solo commit. Questo assomiglia a quanto visto in precedenza -- possiamo riusare gli stessi comandi:", "", "* `git rebase -i`", "* `git cherry-pick`", "", - "Per raggiungere l'obiettivo.", - ], - }, + "Per raggiungere l'obiettivo." + ] + } }, { - type: "ModalAlert", - options: { - markdowns: [ - "Questo è un livello più avanzato, lascerò a te la libertà di decidere quale comando usare, ma per concludere il livello, assicurati che `main` riceva il commit puntato da `bugFix`.", - ], - }, - }, - ], + "type": "ModalAlert", + "options": { + "markdowns": [ + "Questo è un livello più avanzato, lascerò a te la libertà di decidere quale comando usare, ma per concludere il livello, assicurati che `main` riceva il commit puntato da `bugFix`." + ] + } + } + ] }, "ta_IN": { "childViews": [ @@ -878,6 +875,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/mixed/jugglingCommits.js b/src/levels/mixed/jugglingCommits.js index fd272a8a..b1eec380 100644 --- a/src/levels/mixed/jugglingCommits.js +++ b/src/levels/mixed/jugglingCommits.js @@ -6,12 +6,8 @@ exports.level = { "compareOnlyMainHashAgnosticWithAsserts": true, "goalAsserts": { "main": [ - function (data) { - return data.C2 > data.C3; - }, - function (data) { - return data.C2 > data.C1; - } + null, + null ] }, "goalTreeString": "%7B%22branches%22%3A%7B%22main%22%3A%7B%22target%22%3A%22C3%27%27%22%2C%22id%22%3A%22main%22%7D%2C%22newImage%22%3A%7B%22target%22%3A%22C2%22%2C%22id%22%3A%22newImage%22%7D%2C%22caption%22%3A%7B%22target%22%3A%22C3%27%27%22%2C%22id%22%3A%22caption%22%7D%7D%2C%22commits%22%3A%7B%22C0%22%3A%7B%22parents%22%3A%5B%5D%2C%22id%22%3A%22C0%22%2C%22rootCommit%22%3Atrue%7D%2C%22C1%22%3A%7B%22parents%22%3A%5B%22C0%22%5D%2C%22id%22%3A%22C1%22%7D%2C%22C2%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C2%22%7D%2C%22C3%22%3A%7B%22parents%22%3A%5B%22C2%22%5D%2C%22id%22%3A%22C3%22%7D%2C%22C3%27%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C3%27%22%7D%2C%22C2%27%22%3A%7B%22parents%22%3A%5B%22C3%27%22%5D%2C%22id%22%3A%22C2%27%22%7D%2C%22C2%27%27%22%3A%7B%22parents%22%3A%5B%22C3%27%22%5D%2C%22id%22%3A%22C2%27%27%22%7D%2C%22C2%27%27%27%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C2%27%27%27%22%7D%2C%22C3%27%27%22%3A%7B%22parents%22%3A%5B%22C2%27%27%27%22%5D%2C%22id%22%3A%22C3%27%27%22%7D%7D%2C%22HEAD%22%3A%7B%22target%22%3A%22main%22%2C%22id%22%3A%22HEAD%22%7D%7D", @@ -130,7 +126,7 @@ exports.level = { "Ceci étant dit, je peux comparer le résultat avec la structure et les différentes apostrophes. Tant que votre arbre `main` a la même structure et les différentes apostrophes le niveau sera considéré comme réussi." ] } - }, + } ] }, "es_AR": { @@ -165,7 +161,7 @@ exports.level = { "Habiendo dicho eso, puedo comparar los niveles basándome ahora en la estructura y las diferencias relativas de apóstrofes. Mientras que tu rama `main` tenga la misma estructura y diferencias relativas de apóstrofes, te voy a dar el puntaje completo." ] } - }, + } ] }, "es_ES": { @@ -200,7 +196,7 @@ exports.level = { "Habiendo dicho eso, puedo comparar los niveles basándome ahora en la estructura y las diferencias relativas de apóstrofes. Mientras que tu rama `main` tenga la misma estructura y diferencias relativas de apóstrofes, te voy a dar el puntaje completo." ] } - }, + } ] }, "es_MX": { @@ -235,7 +231,7 @@ exports.level = { "Habiendo dicho eso, puedo comparar los niveles basándome ahora en la estructura y las diferencias relativas de apóstrofes. Mientras que tu rama `main` tenga la misma estructura y diferencias relativas de apóstrofes te voy a dar el puntaje completo." ] } - }, + } ] }, "pt_BR": { @@ -270,7 +266,7 @@ exports.level = { "Tendo dito isto, posso avaliar a resposta baseado na estrutura e nas diferenças relativas de número de apóstrofos. Desde que o ramo `main` da sua árvore tenha a mesma estrutura, e o número de apóstrofos seja igual a menos de uma constante, darei a você todos os pontos para esta tarefa." ] } - }, + } ] }, "gl": { @@ -305,7 +301,7 @@ exports.level = { "Contado todo esto, a resposta valídase baseándose na estructura e nos diferentes apóstrofes. Cando a rama `main` teña a mesma estructura, e o número de apóstrofos sexa igual, obterás todos os puntos da tarefa." ] } - }, + } ] }, "de_DE": { @@ -340,7 +336,7 @@ exports.level = { "Zu guter Letzt noch eine Bemerkung: Ich kann Level nur auf Struktur und Apostroph-Differenz prüfen. So lange wie dein `main` am Ende dieselbe Struktur und Apostroph-Differenz aufweist wie der Ziel-`main`, ist der Level bestanden." ] } - }, + } ] }, "ja": { @@ -373,7 +369,7 @@ exports.level = { "最後に、ゴール時点での状態に気を付けてください。今回2回ほどコミットを動かしますから、コミットへのポインタにはアポストロフィ(')が追加されます。commit --amendコマンドの実行でできたコミットには更にもう1つのアポストロフィが追加されます。 " ] } - }, + } ] }, "zh_CN": { @@ -440,7 +436,7 @@ exports.level = { "啊!最後還要提醒你一下最後所產生的 commit tree,因為我們把 commit 移動了兩次,所以會分別產生一個 apostrophe(單引號) commit。還有一個 apostrophe commit 是因為我們修改 commit 而加進來的。" ] } - }, + } ] }, "ko": { @@ -473,7 +469,7 @@ exports.level = { "최종적으로, 목표 결과를 눈여겨 보세요 -- 우리가 커밋을 두 번 옮겼기 때문에, 두 커밋 모두 따옴표 표시가 붙어있습니다. 정정한(amend) 커밋은 따옴표가 추가로 하나 더 붙어있습니다." ] } - }, + } ] }, "ro": { @@ -542,7 +538,7 @@ exports.level = { "Важно, чтобы совпадало не только дерево коммитов, но и количество апострофов." ] } - }, + } ] }, "uk": { @@ -682,23 +678,23 @@ exports.level = { ] }, "it_IT": { - childViews: [ + "childViews": [ { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "## Giocoliere di commit", "", "Ecco una situazione che capita spesso. Hai dei cambiamenti (`newImage`) e un altro insieme di modifiche (`caption`) che sono collegate tra loro, quindi sono posizionate una dopo l'altra nel repository.", "", - "La cosa complicata è che a volte hai bisogno di fare una piccola modifica a un commit precedente. In questo caso, dobbiamo apporre una modifica a `newImage`, anche se questo commit non risulta essere l'ultimo!!", - ], - }, + "La cosa complicata è che a volte hai bisogno di fare una piccola modifica a un commit precedente. In questo caso, dobbiamo apporre una modifica a `newImage`, anche se questo commit non risulta essere l'ultimo!!" + ] + } }, { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "Supereremo queste difficoltà facendo i seguenti passaggi:", "", "* Riordineremo i commit in modo che quello che vogliamo modificare risulti l'ultimo con `git rebase -i`", @@ -709,11 +705,11 @@ exports.level = { "Ci sono vari modi per raggiungere l'obiettivo finale (vedo che strizzi l'occhio verso cherry-pick), e ne vedremo altri più tardi, ma per ora concentriamoci su questa tecnica.", "In fine, presta attenzione all'obiettivo -- visto che spostiamo i commit due volte, a entrambi viene messo un apostrofo. Un ulteriore apostrofo è aggiunto per il commit --amend, che completa in fine l'albero.", "", - "Detto questo, posso confrontare i livelli in base alla struttura e i relativi apostrofi. Finchè il tuo ramo `main` avrà la stessa struttura con i giusti apostrofi, ti darò pieni voti.", - ], - }, - }, - ], + "Detto questo, posso confrontare i livelli in base alla struttura e i relativi apostrofi. Finchè il tuo ramo `main` avrà la stessa struttura con i giusti apostrofi, ti darò pieni voti." + ] + } + } + ] }, "ta_IN": { "childViews": [ @@ -782,6 +778,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/mixed/jugglingCommits2.js b/src/levels/mixed/jugglingCommits2.js index 7b40a806..02746c5c 100644 --- a/src/levels/mixed/jugglingCommits2.js +++ b/src/levels/mixed/jugglingCommits2.js @@ -8,12 +8,8 @@ exports.level = { "compareOnlyMainHashAgnosticWithAsserts": true, "goalAsserts": { "main": [ - function (data) { - return data.C2 > data.C3; - }, - function (data) { - return data.C2 > data.C1; - } + null, + null ] }, "name": { @@ -46,21 +42,21 @@ exports.level = { "es_ES": "¡No te olvides de avanzar main a los cambios actualizados!", "es_MX": "¡No te olvides de avanzar main a los cambios actualizados!", "pt_BR": "Não se esqueça de avançar a referência do main para as mudanças efetuadas!", - "gl": "¡Non te esquezas de avanzar main ós cambios actualizados!", + "gl": "¡Non te esquezas de avanzar main ós cambios actualizados!", "de_DE": "Vergiss nicht den main auf die aktuelle Version vorzuspulen", - "ja": "mainのポインタを先に進めることを忘れずに!", - "ko": "main을 변경 완료한 커밋으로 이동(forward)시키는 것을 잊지 마세요!", + "ja": "mainのポインタを先に進めることを忘れずに!", + "ko": "main을 변경 완료한 커밋으로 이동(forward)시키는 것을 잊지 마세요!", "zh_CN": "别忘记了将 main 快进到最新的更新上!", "zh_TW": "別忘記了將 main 推到最新的 commit 上面!", - "ro": "Nu uita să avansezi main la ultimele modificări!", + "ro": "Nu uita să avansezi main la ultimele modificări!", "ru_RU": "Не забудь переместить main на последние изменения.", - "uk": "Не забудь перемістити main на останні зміни!", - "vi": "Đừng quên đẩy nhánh main lên cập nhật mới nhất!", + "uk": "Не забудь перемістити main на останні зміни!", + "vi": "Đừng quên đẩy nhánh main lên cập nhật mới nhất!", "sl_SI": "Ne pozabi prestaviti main naprej na posodobljene spremembe.", "it_IT": "Non dimenticare di avanzare il main verso le ultime modifiche aggiornate!", - "pl": "Nie zapomnij sforwardować maina do najnowszych zmian!", + "pl": "Nie zapomnij sforwardować maina do najnowszych zmian!", "ta_IN": "Main ஐ புதுப்பிக்கப்பட்ட மாற்றங்களுக்கு முன்னேற்றமிடுவதை மறக்க வேண்டாம்!", - "tr_TR": "Main'i yaptığınız değişikliklere ilerletmeyi unutmayın!", + "tr_TR": "Main'i yaptığınız değişikliklere ilerletmeyi unutmayın!" }, "startDialog": { "en_US": { @@ -843,9 +839,9 @@ exports.level = { "", "Come hai visto nell'ultimo livello, abbiamo usato `rebase -i` per riordinare i commit. Una volta che il commit che volevamo modificare era in cima, abbiamo potuto facilmente fare --amend per poi ritornare nell'ordine di partenza.", "", - "L'unico problema qui è che ci sono tanti riordini da fare, che può portare a conflitti nel rebase. Vediamo di farlo attraverso il metodo `git cherry-pick`.", - ], - }, + "L'unico problema qui è che ci sono tanti riordini da fare, che può portare a conflitti nel rebase. Vediamo di farlo attraverso il metodo `git cherry-pick`." + ] + } }, { "type": "GitDemonstrationView", @@ -853,13 +849,14 @@ exports.level = { "beforeMarkdowns": [ "Ricorda che git cherry-pick creerà un qualsiasi commit del repository su HEAD (a condizione che il commit non sia un antenato di HEAD).", "", - "Qui un breve demo per rinfrescare la memoria:", + "Qui un breve demo per rinfrescare la memoria:" + ], + "afterMarkdowns": [ + "Grande! Andiamo avanti." ], - "afterMarkdowns": ["Grande! Andiamo avanti."], "command": "git cherry-pick C2", - "beforeCommand": - "git checkout -b bugFix; git commit; git checkout main; git commit", - }, + "beforeCommand": "git checkout -b bugFix; git commit; git checkout main; git commit" + } }, { "type": "ModalAlert", @@ -867,11 +864,11 @@ exports.level = { "markdowns": [ "In questo livello, dobbiamo fare amend di `C2` una volta, evitando di usare `rebase -i`. Lascerò a te il compito di scoprire come farlo! :D", "", - "Ricorda, il numero esatto di apostrofi sul commit non sono importanti, solo le differenze tra essi. Per esempio, considererò l'albero che corrisponde a quello della soluzione ma che ha un apostrofo extra dappertutto.", - ], - }, - }, - ], + "Ricorda, il numero esatto di apostrofi sul commit non sono importanti, solo le differenze tra essi. Per esempio, considererò l'albero che corrisponde a quello della soluzione ma che ha un apostrofo extra dappertutto." + ] + } + } + ] }, "ta_IN": { "childViews": [ @@ -958,6 +955,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/mixed/tags.js b/src/levels/mixed/tags.js index e4b8172d..fd5790ec 100644 --- a/src/levels/mixed/tags.js +++ b/src/levels/mixed/tags.js @@ -5,23 +5,23 @@ exports.level = { "name": { "en_US": "Git Tags", "de_DE": "Git Tags", - "ja": "Gitのタグ", + "ja": "Gitのタグ", "es_AR": "Tags en git", "es_ES": "Tags en git", "es_MX": "Tags de Git", "pt_BR": "Tags no Git", - "gl": "Etiquetas en git", + "gl": "Etiquetas en git", "fr_FR": "Git Tags", "zh_CN": "Git Tag", "zh_TW": "git tag", "ro": "Tag-uri Git", "ru_RU": "git tag", - "ko": "Git 태그", - "uk": "Git Tags", - "vi": "Tag trong Git", + "ko": "Git 태그", + "uk": "Git Tags", + "vi": "Tag trong Git", "sl_SI": "Git Tagi", "it_IT": "Git Tag", - "pl": "Tagi Gita", + "pl": "Tagi Gita", "ta_IN": "Git டேக்கள்", "tr_TR": "Git Tagleri" }, @@ -46,7 +46,7 @@ exports.level = { "it_IT": "Puoi fare direttamente checkout del commit o semplicemente del tag!", "pl": "Możesz checkoutować commit bezpośrednio lub po prostu tag!", "ta_IN": "நீங்கள் நேரடியாக commit ஐ அல்லது tag ஐ checkout செய்யலாம்!", - "tr_TR": "İsterseniz direkt commit'e veya direkt tag'e checkout yapabilirsiniz!", + "tr_TR": "İsterseniz direkt commit'e veya direkt tag'e checkout yapabilirsiniz!" }, "startDialog": { "en_US": { @@ -996,34 +996,34 @@ exports.level = { "Come hai già imparato nelle lezioni precedenti, i rami sono facili da spostare e puntano a commit differenti man mano che il lavoro avanza. I rami subiscono modifiche, spesso temporaneamente, ma sono sempre in continua evoluzione.", "", "Ti starai chedendo se esiste un modo *definitivo* per segnare un particolare commit del repository. Nel caso di release importanti e grandi merge (fusioni), esiste un modo per segnare questi commit con qualcosa di più permanente dei rami?", - "", - ], - }, + "" + ] + } }, { "type": "ModalAlert", "options": { "markdowns": [ - 'Ci puoi scommettere! Git tag serve proprio a questo -- i tag contrassegnano in modo permanente dei commit "importanti" a cui puoi far riferimento come avviene con i rami.', + "Ci puoi scommettere! Git tag serve proprio a questo -- i tag contrassegnano in modo permanente dei commit \"importanti\" a cui puoi far riferimento come avviene con i rami.", "", - 'Ancora più importante il fatto che non si spostano anche se vengono eseguiti nuovi commit. Non puoi selezionare un tag e aggiungere del lavoro su quel tag -- i tag esistono come ancore nell\'albero dei commit, e si riferiscono a determinati punti.', + "Ancora più importante il fatto che non si spostano anche se vengono eseguiti nuovi commit. Non puoi selezionare un tag e aggiungere del lavoro su quel tag -- i tag esistono come ancore nell'albero dei commit, e si riferiscono a determinati punti.", "", - "Vediamo in pratica a cosa servono i tag.", - ], - }, + "Vediamo in pratica a cosa servono i tag." + ] + } }, { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Creiamo un tag in `C1` che è la nostra versione 1 del prototipo.", + "Creiamo un tag in `C1` che è la nostra versione 1 del prototipo." ], "afterMarkdowns": [ - "Ecco! Abbastanza facile. Abbiamo creato il tag `v1` che si riferisce al solo commit `C1`. Se non specifichi il commit, git creera il tag sul commit puntato da `HEAD`.", + "Ecco! Abbastanza facile. Abbiamo creato il tag `v1` che si riferisce al solo commit `C1`. Se non specifichi il commit, git creera il tag sul commit puntato da `HEAD`." ], "command": "git tag v1 C1", - "beforeCommand": "git commit", - }, + "beforeCommand": "git commit" + } }, { "type": "ModalAlert", @@ -1031,11 +1031,11 @@ exports.level = { "markdowns": [ "In questo livello riproduci gli stessi tag mostrati nell'obiettivo, e alla fine seleziona il tag `v1`. Presta attenzione a come vai nello stato di detached `HEAD` -- questo perché non puoi creare commit direttamente dal tag `v1.", "", - "Nel livello successivo vedremo un utilizzo più interessante dell'uso dei tag.", - ], - }, - }, - ], + "Nel livello successivo vedremo un utilizzo più interessante dell'uso dei tag." + ] + } + } + ] }, "ta_IN": { "childViews": [ @@ -1138,6 +1138,6 @@ exports.level = { } } ] - }, + } } }; \ No newline at end of file diff --git a/src/levels/rampup/cherryPick.js b/src/levels/rampup/cherryPick.js index aa2edaba..2b0ce440 100644 --- a/src/levels/rampup/cherryPick.js +++ b/src/levels/rampup/cherryPick.js @@ -18,7 +18,7 @@ exports.level = { "gl": "Introuducción a cherry-pick", "zh_CN": "Git Cherry-pick", "zh_TW": "介紹 cherry-pick", - "ro":"Introducere în cherry-pick", + "ro": "Introducere în cherry-pick", "ru_RU": "Введение в Cherry-pick", "ko": "Cherry-pick 소개", "uk": "Знайомство з cherry-pick", @@ -1079,20 +1079,20 @@ exports.level = { ] }, "it_IT": { - childViews: [ + "childViews": [ { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "## Spostare il lavoro in giro", "", "Finora abbiamo intravisto le basi di git -- creazione di commit, rami, e come spostarsi sull'albero dei commit. Questi concetti sono sufficienti per sfruttare il 90% della potenza di git, e soddisfano gli utilizzi standard degli sviluppatori.", "", - 'Il restante 10%, può rivelarsi utile in situazioni più complesse (o se ti sei messo nei guai). Il prossimo concetto che affronteremo è lo "spostare il lavoro in giro" -- in altre parole, è un modo per gli sviluppatori di dire "Voglio questo lavoro qua e quel lavoro là" in maniera chiara e precisa.', + "Il restante 10%, può rivelarsi utile in situazioni più complesse (o se ti sei messo nei guai). Il prossimo concetto che affronteremo è lo \"spostare il lavoro in giro\" -- in altre parole, è un modo per gli sviluppatori di dire \"Voglio questo lavoro qua e quel lavoro là\" in maniera chiara e precisa.", "", - "Sembra un grosso lavoro, ma è un concetto semplice.", - ], - }, + "Sembra un grosso lavoro, ma è un concetto semplice." + ] + } }, { "type": "ModalAlert", @@ -1107,35 +1107,34 @@ exports.level = { "È un modo chiaro e diretto di dire che vuoi la copia di una serie di commit da applicare sulla posizione in cui ti trovi attualmente (`HEAD`). Io personalmente adoro `cherry-pick` perché semplice e facile da capire.", "", "Vediamo una demo!", - "", - ], - }, + "" + ] + } }, { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "In questo repository abbiamo del lavoro nel ramo `side` che vogliamo copiare nel `main`. Questo può essere eseguito tramite rebase (che abbiamo già imparato), ma vediamo il cherry-pick all'opera.", + "In questo repository abbiamo del lavoro nel ramo `side` che vogliamo copiare nel `main`. Questo può essere eseguito tramite rebase (che abbiamo già imparato), ma vediamo il cherry-pick all'opera." ], "afterMarkdowns": [ - "Ecco qua! Volevamo i commit `C2` e `C4` e git li ha copiati sotto di noi. Semplicissimo!", + "Ecco qua! Volevamo i commit `C2` e `C4` e git li ha copiati sotto di noi. Semplicissimo!" ], "command": "git cherry-pick C2 C4", - "beforeCommand": - "git checkout -b side; git commit; git commit; git commit; git checkout main; git commit;", - }, + "beforeCommand": "git checkout -b side; git commit; git commit; git commit; git checkout main; git commit;" + } }, { "type": "ModalAlert", "options": { "markdowns": [ "Per completare questo livello, copia il lavoro dai tre rami sul main. Puoi vedere quali sono i commit richiesti guardando l'obiettivo.", - "", - ], - }, - }, - ], - }, + "" + ] + } + } + ] + } }, "ta_IN": { "childViews": [ @@ -1193,60 +1192,60 @@ exports.level = { ] }, "tr_TR": { - "childViews": [ - { - "type": "ModalAlert", - "options": { - "markdowns": [ - "## Çalışmayı Taşımak", - "", - "Şimdiye kadar git'in temellerini inceledik — commit yapma, branch oluşturma ve kaynak ağacında (source tree) gezinme. Bu temel kavramlar, git repolarının gücünün %90'ını kullanmak ve geliştiricilerin ana ihtiyaçlarını karşılamak için yeterlidir.", - "", - "Ancak geriye kalan %10, karmaşık iş akışlarında (veya zor bir duruma düştüğünüzde) oldukça faydalı olabilir. Şimdi ele alacağımız kavram \"çalışmayı taşımak\" — bir başka deyişle, geliştiricilerin değişikliklerini \"Bu çalışmayı burada, şunu ise orada istiyorum\" şeklinde kesin, etkili ve esnek bir şekilde ifade etmelerinin bir yoludur.", - "", - "Bu, başlangıçta karmaşık görünebilir, ancak aslında basit bir kavramdır." - ] - } - }, - { - "type": "ModalAlert", - "options": { - "markdowns": [ - "## Git Cherry-pick", - "", - "Bu serideki ilk komut `git cherry-pick` olarak adlandırılır. Aşağıdaki şekilde kullanılır:", - "", - "* `git cherry-pick <...>`", - "", - "Bu, şu anki konumunuzun (`HEAD`) altına bir dizi commit kopyalamak istediğinizi belirten çok basit bir komuttur. Kişisel olarak `cherry-pick` komutunu çok severim çünkü içinde çok fazla gizem yoktur ve anlaşılması kolaydır.", - "", - "Hadi bir demo yapalım!", - "" - ] - } - }, - { - "type": "GitDemonstrationView", - "options": { - "beforeMarkdowns": [ - "İşte `side` branch'inde bazı çalışmaların bulunduğu ve bunları `main` branch'ine kopyalamak istediğimiz bir repo. Bu işlem bir rebase ile yapılabilir (bunu zaten öğrendik), ancak `cherry-pick` komutunun nasıl çalıştığını görelim." - ], - "afterMarkdowns": [ - "Ve işte bu kadar! `C2` ve `C4` commit'lerini istedik, ve git, bunları tam istediğimiz yere yerleştirdi. Bu kadar basit!" - ], - "command": "git cherry-pick C2 C4", - "beforeCommand": "git checkout -b side; git commit; git commit; git commit; git checkout main; git commit;" - } - }, - { - "type": "ModalAlert", - "options": { - "markdowns": [ - "Bu seviyeyi tamamlamak için, gösterilen üç branch'ten bazı çalışmaları main branch'ine kopyalayın. Hangi commit'leri istediğimizi, hedef görsellemesini inceleyerek görebilirsiniz.", - "" - ] - } + "childViews": [ + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "## Çalışmayı Taşımak", + "", + "Şimdiye kadar git'in temellerini inceledik — commit yapma, branch oluşturma ve kaynak ağacında (source tree) gezinme. Bu temel kavramlar, git repolarının gücünün %90'ını kullanmak ve geliştiricilerin ana ihtiyaçlarını karşılamak için yeterlidir.", + "", + "Ancak geriye kalan %10, karmaşık iş akışlarında (veya zor bir duruma düştüğünüzde) oldukça faydalı olabilir. Şimdi ele alacağımız kavram \"çalışmayı taşımak\" — bir başka deyişle, geliştiricilerin değişikliklerini \"Bu çalışmayı burada, şunu ise orada istiyorum\" şeklinde kesin, etkili ve esnek bir şekilde ifade etmelerinin bir yoludur.", + "", + "Bu, başlangıçta karmaşık görünebilir, ancak aslında basit bir kavramdır." + ] } - ] - } -}; + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "## Git Cherry-pick", + "", + "Bu serideki ilk komut `git cherry-pick` olarak adlandırılır. Aşağıdaki şekilde kullanılır:", + "", + "* `git cherry-pick <...>`", + "", + "Bu, şu anki konumunuzun (`HEAD`) altına bir dizi commit kopyalamak istediğinizi belirten çok basit bir komuttur. Kişisel olarak `cherry-pick` komutunu çok severim çünkü içinde çok fazla gizem yoktur ve anlaşılması kolaydır.", + "", + "Hadi bir demo yapalım!", + "" + ] + } + }, + { + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "İşte `side` branch'inde bazı çalışmaların bulunduğu ve bunları `main` branch'ine kopyalamak istediğimiz bir repo. Bu işlem bir rebase ile yapılabilir (bunu zaten öğrendik), ancak `cherry-pick` komutunun nasıl çalıştığını görelim." + ], + "afterMarkdowns": [ + "Ve işte bu kadar! `C2` ve `C4` commit'lerini istedik, ve git, bunları tam istediğimiz yere yerleştirdi. Bu kadar basit!" + ], + "command": "git cherry-pick C2 C4", + "beforeCommand": "git checkout -b side; git commit; git commit; git commit; git checkout main; git commit;" + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "Bu seviyeyi tamamlamak için, gösterilen üç branch'ten bazı çalışmaları main branch'ine kopyalayın. Hangi commit'leri istediğimizi, hedef görsellemesini inceleyerek görebilirsiniz.", + "" + ] + } + } + ] + } +}; \ No newline at end of file diff --git a/src/levels/rampup/detachedHead.js b/src/levels/rampup/detachedHead.js index 4cb4ea10..343cdf15 100644 --- a/src/levels/rampup/detachedHead.js +++ b/src/levels/rampup/detachedHead.js @@ -14,11 +14,11 @@ exports.level = { "zh_TW": "分離 HEAD", "de_DE": "Den Kopf abtrennen", "ja": "HEADの分離", - "ro":"Detașează-ți capul", + "ro": "Detașează-ți capul", "ru_RU": "Теряем голову, или detached HEAD", "ko": "HEAD 분리하기", "uk": "Втрачаємо голову чи detached HEAD", - 'vi': "Tháo đầu cái nào", + "vi": "Tháo đầu cái nào", "sl_SI": "Ločevanje tvoje glave - HEAD-a", "it_IT": "Perdere la testa (HEAD)", "pl": "Odczep sobie HEAD", @@ -1067,7 +1067,7 @@ exports.level = { "markdowns": [ "## Git에서 여기저기로 옮겨다니기", "", - "Git의 고급기능들에 대해 더 알아보기 전에, 여러분의 프로젝트를 표현하는 커밋 트리\(commit tree\)에서 이동 할 수 있는 여러가지 방법들을 아는것이 중요합니다.", + "Git의 고급기능들에 대해 더 알아보기 전에, 여러분의 프로젝트를 표현하는 커밋 트리(commit tree)에서 이동 할 수 있는 여러가지 방법들을 아는것이 중요합니다.", "", "여기저기 이동하는 것에 익숙해지면, 여러분이 다른 git 명령어들을 사용하는 능력도 아주 좋아질 것입니다!", "", @@ -1450,11 +1450,11 @@ exports.level = { ] }, "it_IT": { - childViews: [ + "childViews": [ { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "## Spostarsi in Git", "", "Prima di imparare comandi avanzati in Git, è fondamentale conoscere i diversi modi per spostarsi nell'albero dei commit che costituiscono il tuo progetto.", @@ -1464,65 +1464,68 @@ exports.level = { "", "", "", - "", - ], - }, + "" + ] + } }, { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "## HEAD", "", "Prima di tutto dobbiamo parlare di \"HEAD\". HEAD (testa) è il nome simbolico dato al commit selezionato -- in pratica è il commit su cui stai lavorando.", "", "HEAD punta sempre al commit più recente. La maggior parte dei comandi git che apportano modifiche all'albero dei commit, vanno a cambiare per primo HEAD.", "", - "Di norma HEAD punta al nome di un ramo (per esempio bugFix). Quando esegui un commit, lo stato di bugFix viene modificato, e questo cambiamento è visibile attraverso HEAD.", - ], - }, + "Di norma HEAD punta al nome di un ramo (per esempio bugFix). Quando esegui un commit, lo stato di bugFix viene modificato, e questo cambiamento è visibile attraverso HEAD." + ] + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ - "Vediamolo in azione. Qui mostreremo HEAD prima e dopo un commit.", + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "Vediamolo in azione. Qui mostreremo HEAD prima e dopo un commit." ], - afterMarkdowns: [ - "Visto! HEAD era nascosto sotto il ramo `main`.", + "afterMarkdowns": [ + "Visto! HEAD era nascosto sotto il ramo `main`." ], - command: - "git checkout C1; git checkout main; git commit; git checkout C2", - beforeCommand: "", - }, + "command": "git checkout C1; git checkout main; git commit; git checkout C2", + "beforeCommand": "" + } }, { - type: "GitDemonstrationView", - options: { - beforeMarkdowns: [ + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ "### Detaching HEAD (testa distaccata)", "", "Detaching HEAD significa attaccare la testa a un commit invece che a un ramo. All'inizio la situazione è questa:", "", "HEAD -> main -> C1", - "", + "" ], - afterMarkdowns: ["E ora è", "", "HEAD -> C1"], - command: "git checkout C1", - beforeCommand: "", - }, + "afterMarkdowns": [ + "E ora è", + "", + "HEAD -> C1" + ], + "command": "git checkout C1", + "beforeCommand": "" + } }, { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "Per completare questo livello, stacchiamo HEAD da `bugFix` e attacchiamolo a un commit.", "", - "Per specificare un commit si usa l'hash. L'hash per ogni commit è presente sul cerchio che rappresenta il commit.", - ], - }, - }, - ], + "Per specificare un commit si usa l'hash. L'hash per ogni commit è presente sul cerchio che rappresenta il commit." + ] + } + } + ] }, "tr_TR": { "childViews": [ @@ -1669,4 +1672,4 @@ exports.level = { ] } } -}; +}; \ No newline at end of file diff --git a/src/levels/rampup/interactiveRebase.js b/src/levels/rampup/interactiveRebase.js index 9e8613d2..ba16fa0c 100644 --- a/src/levels/rampup/interactiveRebase.js +++ b/src/levels/rampup/interactiveRebase.js @@ -17,7 +17,7 @@ exports.level = { "fr_FR": "Vous pouvez utiliser soit les branches, soit les références relatives (HEAD~) pour spécifier la cible à rebaser", "zh_CN": "branch 或者是相对位置(HEAD~)都可以用來指定 rebase 的目标", "zh_TW": "你可以指定 branch 或者是相對位置(HEAD~)來表示 rebase 的目標", - "ro":"Poți folosi fie ramuri, fie referințe relative (HEAD~) pentru a specifica ținta rebase-ului", + "ro": "Poți folosi fie ramuri, fie referințe relative (HEAD~) pentru a specifica ținta rebase-ului", "ru_RU": "Можно использовать либо ветки, либо относительные ссылки (HEAD~), чтобы указать цель для Rebase", "ja": "リベースする対象の指定には、ブランチ名や相対リファレンス(HEAD~)が使えます", "ko": "리베이스할 타겟으로 브랜치나 상대 참조(HEAD~)를 사용할 수 있습니다", @@ -88,11 +88,9 @@ exports.level = { "When the interactive rebase dialog opens, you have the ability to do two things in our educational application:", "", "* You can reorder commits simply by changing their order in the UI (via dragging and dropping with the mouse).", - "* You can choose to keep all commits or drop specific ones. When the dialog opens, each commit is set to be included by the `pick` " + - "button next to it being active. To drop a commit, toggle off its `pick` button.", + "* You can choose to keep all commits or drop specific ones. When the dialog opens, each commit is set to be included by the `pick` button next to it being active. To drop a commit, toggle off its `pick` button.", "", - "*It is worth mentioning that in the real git interactive rebase you can do many more things like squashing (combining) commits, " + - "amending commit messages, and even editing the commits themselves. For our purposes though we will focus on these two operations above.*", + "*It is worth mentioning that in the real git interactive rebase you can do many more things like squashing (combining) commits, amending commit messages, and even editing the commits themselves. For our purposes though we will focus on these two operations above.*", "", "Great! Let's see an example." ] @@ -780,7 +778,7 @@ exports.level = { "markdowns": [ "## Git Rebase Interactiv", "", - "Git cherry-pick este grozav atunci când știi ce commit-uri vrei (_și_ știi hash-urile lor) -- e greu să depășești simplitatea pe care o oferă.", + "Git cherry-pick este grozav atunci când știi ce commit-uri vrei (_și_ știi hash-urile lor) -- e greu să depășești simplitatea pe care o oferă.", "", "Dar ce se întâmplă când nu știi ce commit-uri vrei? Din fericire, git te ajută și în această situație! Putem folosi rebase-ul interactiv pentru asta -- este cea mai bună modalitate de a revizui o serie de commit-uri cărora urmează să le faci rebase.", "", @@ -1070,8 +1068,7 @@ exports.level = { "* Bạn có thể sắp xếp lại commit một cách đơn giản thông qua UI (bằng cách kéo thả trên công cụ của chúng tôi).", "* Bạn có thể chọn hoặc loại bỏ một vài commit cụ thể. Điều này được thể hiện qua nút `pick` -- tắt nút `pick` nghĩa là bạn loại bỏ commit đó.", "", - "*Chú ý rằng, đối với rebase tương tác trong thực tế, bạn có thể làm nhiều thứ hơn như squash (kết hợp) commit, " + - "sửa đổi commit message, thậm chí là chỉnh sửa commit. Tuy nhiên, chúng ta chỉ cần tập trung vào hai thao tác trên.*", + "*Chú ý rằng, đối với rebase tương tác trong thực tế, bạn có thể làm nhiều thứ hơn như squash (kết hợp) commit, sửa đổi commit message, thậm chí là chỉnh sửa commit. Tuy nhiên, chúng ta chỉ cần tập trung vào hai thao tác trên.*", "", "Tuyệt! Cùng xem qua một ví dụ nào." ] @@ -1243,9 +1240,9 @@ exports.level = { "", "Ma cosa accade se non sai quale commit ti serve? Per fortuna git ci viene in contro anche in questo caso! Possiamo usare il rebase interattivo -- è il miglior modo per rivedere la sequenza di commit di cui stai per fare il rebase.", "", - "Vediamolo nel dettaglio...", - ], - }, + "Vediamolo nel dettaglio..." + ] + } }, { "type": "ModalAlert", @@ -1255,9 +1252,9 @@ exports.level = { "", "Se aggiungi quest'opzione, git aprirà un'interfaccia per mostrarti quali commit stanno per essere copiati sotto il commit su cui vuoi fare il rebase. Verrà anche mostrato l'hash e il messaggio del commit, il che è grandioso per darci l'idea di cosa è cosa", "", - 'Nel git "vero", l\'interfaccia che si apre in realtà è un editor di testo come `vim`. Nel nostro caso, ho creato una piccola finestra che si comporta allo stesso modo.', - ], - }, + "Nel git \"vero\", l'interfaccia che si apre in realtà è un editor di testo come `vim`. Nel nostro caso, ho creato una piccola finestra che si comporta allo stesso modo." + ] + } }, { "type": "ModalAlert", @@ -1266,38 +1263,36 @@ exports.level = { "Quando la finestra si apre, hai la possibilità di fare due cose:", "", "* Puoi riordinare i commit modificandone l'ordine (drag & drop con il mouse).", - "* Puoi decidere se conservare tutti i commit o rimuoverne qualcuno. Quando la finestra si apre, ogni commit è considerato preso dal pulsante `pick` " + - "attivo affianco a esso. Per scartare un commit, disattiva il suo pulsante `pick`.", + "* Puoi decidere se conservare tutti i commit o rimuoverne qualcuno. Quando la finestra si apre, ogni commit è considerato preso dal pulsante `pick` attivo affianco a esso. Per scartare un commit, disattiva il suo pulsante `pick`.", "", - "*Vale la pena ricordare che nel vero rebase interattivo puoi fare molte più cose come lo squashing (combinazione) di commit, " + - "la modifica del messaggio di commit (amending), e perfino la modifica dello stesso commit. Noi ci concentreremo sulle due funzioni descritte sopra.*", + "*Vale la pena ricordare che nel vero rebase interattivo puoi fare molte più cose come lo squashing (combinazione) di commit, la modifica del messaggio di commit (amending), e perfino la modifica dello stesso commit. Noi ci concentreremo sulle due funzioni descritte sopra.*", "", - "Bene! Vediamo un esempio.", - ], - }, + "Bene! Vediamo un esempio." + ] + } }, { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Quando premi il pulsante, apparirà la finestra del rebase interattivo. Riordina qualche commit (o sentiti libero di scartarne qualcuno) e vediamo il risultato!", + "Quando premi il pulsante, apparirà la finestra del rebase interattivo. Riordina qualche commit (o sentiti libero di scartarne qualcuno) e vediamo il risultato!" ], "afterMarkdowns": [ - "Boom! Git ha fatto la copia nell'ordine esatto che hai specificato nell'interfaccia grafica.", + "Boom! Git ha fatto la copia nell'ordine esatto che hai specificato nell'interfaccia grafica." ], "command": "git rebase -i HEAD~4 --aboveAll", - "beforeCommand": "git commit; git commit; git commit; git commit", - }, + "beforeCommand": "git commit; git commit; git commit; git commit" + } }, { "type": "ModalAlert", "options": { "markdowns": [ - "Per concludere questo livello, esegui un rebase interattivo e raggiungi l'obiettivo mostrato. Ricordati che puoi sempre fare `undo` o `reset` per correggere gli errori :D", - ], - }, - }, - ], + "Per concludere questo livello, esegui un rebase interattivo e raggiungi l'obiettivo mostrato. Ricordati che puoi sempre fare `undo` o `reset` per correggere gli errori :D" + ] + } + } + ] }, "tr_TR": { "childViews": [ @@ -1432,4 +1427,4 @@ exports.level = { ] } } -}; +}; \ No newline at end of file diff --git a/src/levels/rampup/relativeRefs.js b/src/levels/rampup/relativeRefs.js index 20135832..5b38bcee 100644 --- a/src/levels/rampup/relativeRefs.js +++ b/src/levels/rampup/relativeRefs.js @@ -14,7 +14,7 @@ exports.level = { "pt_BR": "Referências relativas (^)", "gl": "Referencias relativas (^)", "de_DE": "Relative Referenzen (^)", - "ro":"Referințe relative (^)", + "ro": "Referințe relative (^)", "ru_RU": "Относительные ссылки (^)", "ko": "상대 참조 (^) (Relative Refs)", "uk": "Відносні посилання", @@ -1411,9 +1411,9 @@ exports.level = { "", "Inoltre, gli hash sono solitamente molto più lunghi. Per esempio, l'hash del commit nel livello precedente è `fed2da64c0efc5293610bdd892f82a58e8cbc5d8`. Non così semplice da ricordare...", "", - "La nota positiva è che Git è furbo con gli hash. Richiede un numero di caratteri dell'hash tali da poter identificare in modo univoco il commit. Posso scrivere `fed2` invece dell'hash completo.", - ], - }, + "La nota positiva è che Git è furbo con gli hash. Richiede un numero di caratteri dell'hash tali da poter identificare in modo univoco il commit. Posso scrivere `fed2` invece dell'hash completo." + ] + } }, { "type": "ModalAlert", @@ -1426,9 +1426,9 @@ exports.level = { "Questi riferimenti sono strumenti potenti, introduciamo i più semplici:", "", "* Risalire di un commit alla volta con `^`", - "* Risalire di tot commit alla volta con `~`", - ], - }, + "* Risalire di tot commit alla volta con `~`" + ] + } }, { "type": "GitDemonstrationView", @@ -1436,32 +1436,31 @@ exports.level = { "beforeMarkdowns": [ "Diamo un occhiata all'operatore (^) chiamato Caret o accento circonflesso. Ogni volta che lo aggiungi a un riferimento, stai dicendo a Git di cercare il genitore del commit specificato.", "", - 'Quindi, dire `main^` è equivalente a dire "il primo genitore di `main`".', + "Quindi, dire `main^` è equivalente a dire \"il primo genitore di `main`\".", "", "`main^^` è il nonno (antenato di seconda generazione) di `main`", "", - "Selezioniamo il commit sopra main.", + "Selezioniamo il commit sopra main." ], "afterMarkdowns": [ - "Colpito! Fatto. Mille volte meglio che scrivere l'hash.", + "Colpito! Fatto. Mille volte meglio che scrivere l'hash." ], "command": "git checkout main^", - "beforeCommand": "git commit", - }, + "beforeCommand": "git commit" + } }, { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Puoi considerare `HEAD` come un riferimento relativo. Usiamolo un paio di volte per risalire l'albero dei commit.", + "Puoi considerare `HEAD` come un riferimento relativo. Usiamolo un paio di volte per risalire l'albero dei commit." ], "afterMarkdowns": [ - "Facile! Possiamo viaggiare in dietro nel tempo con `HEAD^`", + "Facile! Possiamo viaggiare in dietro nel tempo con `HEAD^`" ], - "command": - "git checkout C3; git checkout HEAD^; git checkout HEAD^; git checkout HEAD^", - "beforeCommand": "git commit; git commit", - }, + "command": "git checkout C3; git checkout HEAD^; git checkout HEAD^; git checkout HEAD^", + "beforeCommand": "git commit; git commit" + } }, { "type": "ModalAlert", @@ -1469,11 +1468,11 @@ exports.level = { "markdowns": [ "Per completare questo livello, seleziona il commit padre di `bugFix`. Questo provocherà una detached `HEAD`.", "", - "Puoi usare l'hash se vuoi, ma prova a usare i riferimenti relativi!", - ], - }, - }, - ], + "Puoi usare l'hash se vuoi, ma prova a usare i riferimenti relativi!" + ] + } + } + ] }, "tr_TR": { "childViews": [ @@ -1551,4 +1550,4 @@ exports.level = { ] } } -}; +}; \ No newline at end of file diff --git a/src/levels/rampup/relativeRefs2.js b/src/levels/rampup/relativeRefs2.js index 9b0f7dca..95f52468 100644 --- a/src/levels/rampup/relativeRefs2.js +++ b/src/levels/rampup/relativeRefs2.js @@ -14,13 +14,13 @@ exports.level = { "gl": "Precisarás usar polo menos unha referencia directa (hash) para completar este nivel", "de_DE": "Du musst mindestens einen Hash benutzen, um dieses Level zu schaffen", "ja": "このレベルをクリアするには少なくとも一つの直接リファレンス(hash)を使用する必要があります", - "ro":"Vei avea nevoie să folosești cel puțin o referință directă (hash) pentru a termina acest nivel", + "ro": "Vei avea nevoie să folosești cel puțin o referință directă (hash) pentru a termina acest nivel", "ru_RU": "Понадобится использовать как минимум одну прямую ссылку (хеш), чтобы пройти этот уровень", "ko": "이번 레벨을 완료하려면 최소 한번은 직접 참조(해시)를 사용해야 합니다.", "uk": "Тобі потрібно використати як мінімум одне пряме посилання (хеш) щоб пройти цей рівень", "vi": "Bạn sẽ cần dùng ít nhất một tham chiếu trực tiếp (mã băm) để hoàn thành cấp độ này", "sl_SI": "Moral boš uporabiti vsaj eno direktno referenco (hash) za dokončanje te stopnje.", - "it_IT": "Dovrai usare almeno un riferimento diretto (hash) per completare questo livello", + "it_IT": "Dovrai usare almeno un riferimento diretto (hash) per completare questo livello", "pl": "Aby ukończyć ten poziom, musisz użyć co najmniej jednej bezpośredniej referencji (hasza).", "ta_IN": "இந்த நிலவை முடிக்க குறைந்தது ஒரு நேரடி குறிப்பு (ஹாஷ்) பயன்படுத்த வேண்டும்", "tr_TR": "Bu seviyeyi tamamlamak için en az bir doğrudan referans (hash) kullanmanız gerekecek" @@ -38,7 +38,7 @@ exports.level = { "zh_CN": "相对引用2(~)", "zh_TW": "相對引用二(~)", "ro": "Referințe relative #2 (~)", - "ru_RU": 'Относительные ссылки №2', + "ru_RU": "Относительные ссылки №2", "ko": "상대 참조 #2 (~)", "uk": "Відносні посилання №2", "vi": "Tham chiếu tương đối #2 (~)", @@ -985,7 +985,8 @@ exports.level = { "방금의 커맨드를 직접 확인해 봅시다." ], "afterMarkdowns": [ - "됐네요! 우리는 상대 참조를 통해 `C1`을 간결한 방법으로 참조할 수 있었고 브랜치 강제(`-f`)를 통해 브랜치를 저 위치로 빠르게 옮길 수 있었습니다."], + "됐네요! 우리는 상대 참조를 통해 `C1`을 간결한 방법으로 참조할 수 있었고 브랜치 강제(`-f`)를 통해 브랜치를 저 위치로 빠르게 옮길 수 있었습니다." + ], "command": "git branch -f main HEAD~3", "beforeCommand": "git commit; git commit; git commit; git checkout -b bugFix" } @@ -1284,25 +1285,27 @@ exports.level = { "type": "ModalAlert", "options": { "markdowns": [ - '### L\'operatore "~"', + "### L'operatore \"~\"", "", "Nel caso in cui voglia risalire di più livelli l'albero dei commit, è una seccatura aggiungere `^` per ogni salto, per questo Git ha l'operatore tilde(~).", "", "", - "A questo operatore si può (facoltativamente) aggiungere un numero che specifica di quanti livelli si vuole risalire l'albero dei commit. Vediamolo in azione.", - ], - }, + "A questo operatore si può (facoltativamente) aggiungere un numero che specifica di quanti livelli si vuole risalire l'albero dei commit. Vediamolo in azione." + ] + } }, { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Specifichiamo il numero di commit con `~`.", + "Specifichiamo il numero di commit con `~`." + ], + "afterMarkdowns": [ + "Fatto! Breve ed efficace -- i riferimenti relativi sono stupendi." ], - "afterMarkdowns": ["Fatto! Breve ed efficace -- i riferimenti relativi sono stupendi."], "command": "git checkout HEAD~4", - "beforeCommand": "git commit; git commit; git commit", - }, + "beforeCommand": "git commit; git commit; git commit" + } }, { "type": "ModalAlert", @@ -1316,21 +1319,22 @@ exports.level = { "", "`git branch -f main HEAD~3`", "", - "sposta (con la forza) il ramo main al terzo antenato di HEAD.", - ], - }, + "sposta (con la forza) il ramo main al terzo antenato di HEAD." + ] + } }, { "type": "GitDemonstrationView", "options": { - "beforeMarkdowns": ["Vediamolo in azione."], + "beforeMarkdowns": [ + "Vediamolo in azione." + ], "afterMarkdowns": [ - "Ecco qua! I riferimenti relativi ci permettono facilmente di specificare `C1` e il branch forcing (`-f`) ci da modo di spostare rapidamente il ramo su quella posizione.", + "Ecco qua! I riferimenti relativi ci permettono facilmente di specificare `C1` e il branch forcing (`-f`) ci da modo di spostare rapidamente il ramo su quella posizione." ], "command": "git branch -f main HEAD~3", - "beforeCommand": - "git commit; git commit; git commit; git checkout -b bugFix", - }, + "beforeCommand": "git commit; git commit; git commit; git checkout -b bugFix" + } }, { "type": "ModalAlert", @@ -1338,11 +1342,11 @@ exports.level = { "markdowns": [ "Ora che hai visto i riferimenti relativi e il branch forcing, usiamoli per completare il prossimo livello.", "", - "Per completare questo livello, sposta `HEAD`, `main`, e `bugFix` alla loro destinazione finale mostrata nell'obiettivo.", - ], - }, - }, - ], + "Per completare questo livello, sposta `HEAD`, `main`, e `bugFix` alla loro destinazione finale mostrata nell'obiettivo." + ] + } + } + ] }, "tr_TR": { "childViews": [ @@ -1415,4 +1419,4 @@ exports.level = { ] } } -}; +}; \ No newline at end of file diff --git a/src/levels/rampup/reversingChanges.js b/src/levels/rampup/reversingChanges.js index 69c618d5..a5bee6e2 100644 --- a/src/levels/rampup/reversingChanges.js +++ b/src/levels/rampup/reversingChanges.js @@ -16,7 +16,7 @@ exports.level = { "ko": "Git에서 작업 되돌리기", "zh_CN": "撤销变更", "zh_TW": "在 git 中取消修改 ", - "ro":"Anularea modificărilor în Git", + "ro": "Anularea modificărilor în Git", "ru_RU": "Отмена изменений в Git", "uk": "Відміна змін в Git", "vi": "Hoàn tác thay đổi trong Git", @@ -46,7 +46,6 @@ exports.level = { "it_IT": "Revert e reset hanno parametri diversi.", "pl": "Zauważ, że revert i reset przyjmują różne argumenty", "tr_TR": "revert ve reset'in farklı parametreler aldığını unutma." - }, "startDialog": { "en_US": { @@ -1173,7 +1172,7 @@ exports.level = { "command": "git revert HEAD", "beforeCommand": "git commit" } - }, + } ] }, "it_IT": { @@ -1187,9 +1186,9 @@ exports.level = { "Esistono molti modi per annullare i cambiamenti in Git. Come la creazione di commit, anche l'annullamento in Git ha sia una componente di basso livello (tracciatura dei singoli file o blocchi) e uno di alto livello (come l'annullamento viene realmente eseguito). La nostra applicazione si concentrerà su quest'ultima.", "", "Ci sono due modi principali per annullare con Git -- uno è usare `git reset` e l'altro è `git revert`. Entreremo nel dettaglio per entrambi.", - "", - ], - }, + "" + ] + } }, { "type": "GitDemonstrationView", @@ -1197,16 +1196,16 @@ exports.level = { "beforeMarkdowns": [ "## Git Reset", "", - '`git reset` annulla le modifiche spostando il puntatore al ramo indietro nel tempo a un commit precedente. Puoi vederla come se stessi "riscrivendo la storia;" `git reset` torna al commit precedente come se il nuovo commit non fosse mai esistito.', + "`git reset` annulla le modifiche spostando il puntatore al ramo indietro nel tempo a un commit precedente. Puoi vederla come se stessi \"riscrivendo la storia;\" `git reset` torna al commit precedente come se il nuovo commit non fosse mai esistito.", "", - "Vediamone una rappresentazione:", + "Vediamone una rappresentazione:" ], "afterMarkdowns": [ - "Grande! Git ha spostato il puntatore del ramo main the main sul commit `C1`; ora il nostro repository locale è come se non avesse mai avuto un commit `C2`.", + "Grande! Git ha spostato il puntatore del ramo main the main sul commit `C1`; ora il nostro repository locale è come se non avesse mai avuto un commit `C2`." ], "command": "git reset HEAD~1", - "beforeCommand": "git commit", - }, + "beforeCommand": "git commit" + } }, { "type": "GitDemonstrationView", @@ -1214,18 +1213,18 @@ exports.level = { "beforeMarkdowns": [ "## Git Revert", "", - 'Git reset funziona perfettamente in locale sul proprio computer, ma la funzione di "riscrivere la storia" non va d\'accordo con i rami salvati in remoto utilizzati da altri colleghi.', + "Git reset funziona perfettamente in locale sul proprio computer, ma la funzione di \"riscrivere la storia\" non va d'accordo con i rami salvati in remoto utilizzati da altri colleghi.", "", - "Per fare in modo di annullare e *condividere* con gli altri le modifiche annullate, dobbiamo usare `git revert`. Vediamolo in azione.", + "Per fare in modo di annullare e *condividere* con gli altri le modifiche annullate, dobbiamo usare `git revert`. Vediamolo in azione." ], "afterMarkdowns": [ "Strano, un nuovo commit è stato creato sotto il commit che volevamo annullare. Questo perché il nuovo commit `C2'` porta *cambiamenti* -- per l'esattezza i cambiamenti sono quelli che annullano il commit `C2`.", "", - "Con git revert, aggiungi i cambiamenti che possono essere poi condivisi con altri.", + "Con git revert, aggiungi i cambiamenti che possono essere poi condivisi con altri." ], "command": "git revert HEAD", - "beforeCommand": "git commit", - }, + "beforeCommand": "git commit" + } }, { "type": "ModalAlert", @@ -1233,11 +1232,11 @@ exports.level = { "markdowns": [ "Per completare questo livello, annulla i commit più recenti sia in `local` che in `pushed`. Alla fine annullerai due commit in totale (uno per ramo).", "", - "Tieni presente che `pushed` è un ramo remoto e `local` è un ramo locale -- questo dovrebbe aiutarti a scegliere quale metodo usare.", - ], - }, - }, - ], + "Tieni presente che `pushed` è un ramo remoto e `local` è un ramo locale -- questo dovrebbe aiutarti a scegliere quale metodo usare." + ] + } + } + ] }, "tr_TR": { "childViews": [ @@ -1303,4 +1302,4 @@ exports.level = { ] } } -}; +}; \ No newline at end of file diff --git a/src/levels/rebase/manyRebases.js b/src/levels/rebase/manyRebases.js index 26b6bf9e..cf3d4020 100644 --- a/src/levels/rebase/manyRebases.js +++ b/src/levels/rebase/manyRebases.js @@ -20,7 +20,7 @@ exports.level = { "ja": "9000回以上のrebase", "zh_CN": "多次 Rebase", "zh_TW": "N次Rebase", - "ro":"Rebase de peste 9000 ori", + "ro": "Rebase de peste 9000 ori", "ru_RU": "Rebase over 9000 раз", "uk": "Rebase over 9000 разів", "vi": "Rebase hơn 9000 lần", @@ -47,8 +47,7 @@ exports.level = { "uk": "Не забувай, що краще всього буде перемістити main в самому кінці... ", "vi": "Hãy nhớ rằng, cách tốt nhất có thể là cập nhật nhánh `main` sau cùng...", "sl_SI": "Pomni, morda je najbolj učinkovit način posodabljanje masterja samo na koncu ...", - "it_IT": - "Ricorda, il modo migliore potrebbe essere di aggiornare il main alla fine...", + "it_IT": "Ricorda, il modo migliore potrebbe essere di aggiornare il main alla fine...", "pl": "Pamiętaj, że najskuteczniejszym sposobem może być aktualizacja `main` dopiero na samym końcu...", "tr_TR": "Şunu hatırlamanı isterim ki: belki de en verimli yol işin sonunda maini güncellemektir." }, @@ -378,22 +377,22 @@ exports.level = { ] }, "it_IT": { - childViews: [ + "childViews": [ { - type: "ModalAlert", - options: { - markdowns: [ + "type": "ModalAlert", + "options": { + "markdowns": [ "### Fare rebase con più rami", "", "Hey, qui abbiamo un bel po' di rami! Facciamo un po' di rebase di questi rami nel main.", "", "I piani alti ci stanno rendendo la vita complicata -- vogliono i commit tutti in ordine progressivo. Questo significa che alla fine il nostro albero avrà `C7'` come ultimo commit, `C6'` sopra di esso, e così via, tutto in ordine.", "", - "Se ti smarrisci lungo la via, usa `reset` senza problemi per ripartire da capo. Assicurati di raggiungere l'obiettivo e cerca di farlo con il minor numero di comandi!", - ], - }, - }, - ], + "Se ti smarrisci lungo la via, usa `reset` senza problemi per ripartire da capo. Assicurati di raggiungere l'obiettivo e cerca di farlo con il minor numero di comandi!" + ] + } + } + ] }, "tr_TR": { "childViews": [ @@ -412,6 +411,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/rebase/selectiveRebase.js b/src/levels/rebase/selectiveRebase.js index 7631f642..18937f86 100644 --- a/src/levels/rebase/selectiveRebase.js +++ b/src/levels/rebase/selectiveRebase.js @@ -443,13 +443,13 @@ exports.level = { "", "Burada `main`, `one` `two` ve `three` dallarından birkaç commit önde. Herhangi bir nedenden ötürü, bu diğer üç dalı main'deki son birkaç commit'in değiştirilmiş versiyonlarıyla güncellememiz gerekiyor.", "", - "`one` branchi bu commitlerin yeniden düzenlenmesine ve an `C5`\'in hariç tutulması/bırakılmasına ihtiyaç duyuyor. `two` branchi sadece commitlerin yeniden sıralanmasına ihtiyaç duyuyuor, ve `three` için sadece bir commit transferi gerekiyor!", + "`one` branchi bu commitlerin yeniden düzenlenmesine ve an `C5`'in hariç tutulması/bırakılmasına ihtiyaç duyuyor. `two` branchi sadece commitlerin yeniden sıralanmasına ihtiyaç duyuyuor, ve `three` için sadece bir commit transferi gerekiyor!", "", "Bunu nasıl çözeceğinizi size anlatacağız -- daha sonrasında bizim çözümümüzü `show solution` ile kontrol etmeyi unutmayın." ] } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/clone.js b/src/levels/remote/clone.js index 4c22a056..ef57423f 100644 --- a/src/levels/remote/clone.js +++ b/src/levels/remote/clone.js @@ -1,5 +1,5 @@ exports.level = { - "goalTreeString": '{"branches":{"main":{"target":"C1","id":"main","remoteTrackingBranchID":"o/main"},"o/main":{"target":"C1","id":"o/main","remoteTrackingBranchID":null}},"commits":{"C0":{"parents":[],"id":"C0","rootCommit":true},"C1":{"parents":["C0"],"id":"C1"}},"HEAD":{"target":"main","id":"HEAD"},"originTree":{"branches":{"main":{"target":"C1","id":"main","remoteTrackingBranchID":null}},"commits":{"C0":{"parents":[],"id":"C0","rootCommit":true},"C1":{"parents":["C0"],"id":"C1"}},"HEAD":{"target":"main","id":"HEAD"}}}', + "goalTreeString": "{\"branches\":{\"main\":{\"target\":\"C1\",\"id\":\"main\",\"remoteTrackingBranchID\":\"o/main\"},\"o/main\":{\"target\":\"C1\",\"id\":\"o/main\",\"remoteTrackingBranchID\":null}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"}},\"HEAD\":{\"target\":\"main\",\"id\":\"HEAD\"},\"originTree\":{\"branches\":{\"main\":{\"target\":\"C1\",\"id\":\"main\",\"remoteTrackingBranchID\":null}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"}},\"HEAD\":{\"target\":\"main\",\"id\":\"HEAD\"}}}", "solutionCommand": "git clone", "name": { "en_US": "Clone Intro", @@ -13,7 +13,7 @@ exports.level = { "gl": "Introducción a clone", "zh_CN": "Git Clone", "zh_TW": "介紹 clone", - "ro":"Introducere în clonare", + "ro": "Introducere în clonare", "ru_RU": "Введение в клонирование", "ko": "Clone 소개", "uk": "Знайомство з clone", @@ -44,7 +44,6 @@ exports.level = { "pl": "Po prostu git clone!", "it_IT": "Semplicemente git clone!", "tr_TR": "Sadece git clone yapın!" - }, "startDialog": { "en_US": { @@ -1187,4 +1186,4 @@ exports.level = { ] } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/fakeTeamwork.js b/src/levels/remote/fakeTeamwork.js index 39c5ede4..5a98fde3 100644 --- a/src/levels/remote/fakeTeamwork.js +++ b/src/levels/remote/fakeTeamwork.js @@ -1130,4 +1130,4 @@ exports.level = { ] } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/fetch.js b/src/levels/remote/fetch.js index b2bafc98..1990cb24 100644 --- a/src/levels/remote/fetch.js +++ b/src/levels/remote/fetch.js @@ -26,27 +26,27 @@ exports.level = { "ta_IN": "Git Fetch" }, "hint": { - "en_US": "just run git fetch!", - "fr_FR": "Exécuter juste git fetch", - "de_DE": "Einfach git fetch ausführen!", - "ja": "単にgit fetchを実行!", - "es_AR": "Simplemente ¡hacé git fetch!", - "es_MX": "Simplemente ¡escribe git fetch!", - "es_ES": "Simplemente ¡escribe git fetch!", - "pt_BR": "Simplesmente chame git fetch!", - "gl": "¡Sinxelamente fai git fetch!", - "zh_CN": "只需要运行 git fetch 命令!", - "zh_TW": "只要下 git fetch 指令", - "ro": "Doar rulează git fetch!", - "ru_RU": "Просто выполните git fetch!", - "uk": "Просто виконай git fetch!", - "ko": "그냥 git fetch를 하세요!", - "vi": "Gõ git fetch là được!", - "sl_SI": "Le izvedi git fetch!", - "pl": "Po prostu uruchom git fetch!", - "it_IT": "Semplicemente git fetch!", - "tr_TR": "Sadece git fetch komutunu çalıştırın!", - "ta_IN": "பொதுவாக git fetch நடத்துங்கள்!" + "en_US": "just run git fetch!", + "fr_FR": "Exécuter juste git fetch", + "de_DE": "Einfach git fetch ausführen!", + "ja": "単にgit fetchを実行!", + "es_AR": "Simplemente ¡hacé git fetch!", + "es_MX": "Simplemente ¡escribe git fetch!", + "es_ES": "Simplemente ¡escribe git fetch!", + "pt_BR": "Simplesmente chame git fetch!", + "gl": "¡Sinxelamente fai git fetch!", + "zh_CN": "只需要运行 git fetch 命令!", + "zh_TW": "只要下 git fetch 指令", + "ro": "Doar rulează git fetch!", + "ru_RU": "Просто выполните git fetch!", + "uk": "Просто виконай git fetch!", + "ko": "그냥 git fetch를 하세요!", + "vi": "Gõ git fetch là được!", + "sl_SI": "Le izvedi git fetch!", + "pl": "Po prostu uruchom git fetch!", + "it_IT": "Semplicemente git fetch!", + "tr_TR": "Sadece git fetch komutunu çalıştırın!", + "ta_IN": "பொதுவாக git fetch நடத்துங்கள்!" }, "startDialog": { "en_US": { @@ -1581,4 +1581,4 @@ exports.level = { ] } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/fetchArgs.js b/src/levels/remote/fetchArgs.js index 1755bf64..4ba5a399 100644 --- a/src/levels/remote/fetchArgs.js +++ b/src/levels/remote/fetchArgs.js @@ -13,7 +13,7 @@ exports.level = { "gl": "Parámetros de fetch", "de_DE": "Optionen für Fetch", "ja": "Fetchの引数", - "ro":"Argumente pentru fetch", + "ro": "Argumente pentru fetch", "ru_RU": "Аргументы для fetch", "ko": "Fetch의 인자들", "uk": "Аргументи для fetch", @@ -1354,7 +1354,7 @@ exports.level = { "", "Aici este singura problemă -- `` este acum un loc pe *remote* și `` este un *loc local* unde să pui acele commit-uri. Este exact opusul la git push, și asta are sens deoarece transferăm date în direcția opusă!", "", - "Acestea fiind spuse, dezvoltatorii rareori fac asta în practică. Îl introduc aici mai mult ca o modalitate de a conceptualiza cum `fetch` și `push` sunt foarte asemănătoare, doar că în direcții opuse.", + "Acestea fiind spuse, dezvoltatorii rareori fac asta în practică. Îl introduc aici mai mult ca o modalitate de a conceptualiza cum `fetch` și `push` sunt foarte asemănătoare, doar că în direcții opuse." ] } }, @@ -1375,10 +1375,10 @@ exports.level = { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Ce se întâmplă dacă destinația nu există înainte să rulez comanda? Să vedem ultimul exemplu, dar de data aceasta fără ca `bar` să existe.", + "Ce se întâmplă dacă destinația nu există înainte să rulez comanda? Să vedem ultimul exemplu, dar de data aceasta fără ca `bar` să existe." ], "afterMarkdowns": [ - "Vezi? E EXACT ca la git push. Git a creat destinația local înainte de a face fetch, la fel cum git va crea destinația pe remote înainte de a face push (dacă nu există).", + "Vezi? E EXACT ca la git push. Git a creat destinația local înainte de a face fetch, la fel cum git va crea destinația pe remote înainte de a face push (dacă nu există)." ], "command": "git fetch origin C2:bar", "beforeCommand": "git branch foo; git clone; git fakeTeamwork foo 2" @@ -2394,6 +2394,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/fetchRebase.js b/src/levels/remote/fetchRebase.js index 8ae6de20..8d0f37a0 100644 --- a/src/levels/remote/fetchRebase.js +++ b/src/levels/remote/fetchRebase.js @@ -21,7 +21,7 @@ exports.level = { "sl_SI": "Razdeljena Zgodovina", "pl": "Rozbieżna historia", "it_IT": "Storico divergente", - "tr_TR": "Sapmış Tarihçe", + "tr_TR": "Sapmış Tarihçe" }, "hint": { "en_US": "Check out the ordering from the goal visualization", @@ -42,7 +42,7 @@ exports.level = { "sl_SI": "Preveri vrstni red iz ciljne vizualizacije.", "pl": "Przyjrzyj się kolejności na wizualizacji celu", "it_IT": "Controlla l'ordinamento dalla schermata dell'obiettivo", - "tr_TR": "Hedef görselleştirmesindeki sıralamaya dikkat edin", + "tr_TR": "Hedef görselleştirmesindeki sıralamaya dikkat edin" }, "startDialog": { "en_US": { @@ -2760,6 +2760,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/lockedMain.js b/src/levels/remote/lockedMain.js index 2087da38..815a93ba 100644 --- a/src/levels/remote/lockedMain.js +++ b/src/levels/remote/lockedMain.js @@ -5,7 +5,7 @@ exports.level = { "hint": { "en_US": "Make the feature branch from the local main before resetting it back to be the same as origin's main", "de_DE": "Erstelle einen Feature-Branch ausgehend vom lokalen Main-Branch, bevor du den Main-Branch auf den origin/main zurücksetzt.", - "ro":"Creează o ramură feature din main-ul local înainte de a reseta main-ul pentru a fi la fel cu origin/main.", + "ro": "Creează o ramură feature din main-ul local înainte de a reseta main-ul pentru a fi la fel cu origin/main.", "ru_RU": "Создайте новую feature ветвь от main перед тем, как откатить изменения в main до состояния o/main.", "uk": "Створіть нову feature гілку від локального main перед тим, як відкотити зміни в main до стану o/main.", "zh_CN": "从本地的main创建一个feature分支, 然后重置main和origin main保持一致。", @@ -20,7 +20,7 @@ exports.level = { "pl": "Stwórz boczną gałąź tematyczną (feature) z lokalnego main, a późnej zsynchronizuj ją z main na origin", "vi": "Tạo những nhánh tính năng từ nhánh cục bộ trước khi trả chúng về lại giống như o/main", "it_IT": "Crea il ramo per la feature a partire dal main locale prima di resettarlo al pari del main remoto", - "tr_TR": "Özellik dalını, origin/main ile aynı olacak şekilde sıfırlamadan önce yerel main'den oluşturun.", + "tr_TR": "Özellik dalını, origin/main ile aynı olacak şekilde sıfırlamadan önce yerel main'den oluşturun." }, "name": { "en_US": "Locked Main", @@ -40,7 +40,7 @@ exports.level = { "pl": "Zablokowany main", "vi": "Nhánh chính bị khóa (Locked Main)", "it_IT": "Main bloccato", - "tr_TR": "Kilitli Main", + "tr_TR": "Kilitli Main" }, "startDialog": { "en_US": { @@ -197,7 +197,7 @@ exports.level = { "markdowns": [ "## Soluția", "", - "Creează o altă ramură numită `feature` și împinge-o către remote. De asemenea, resetează ramura ta `main` pentru a fi sincronizată cu remote, altfel s-ar putea să ai probleme data viitoare când faci pull și commit-ul altcuiva intră în conflict cu al tău.", + "Creează o altă ramură numită `feature` și împinge-o către remote. De asemenea, resetează ramura ta `main` pentru a fi sincronizată cu remote, altfel s-ar putea să ai probleme data viitoare când faci pull și commit-ul altcuiva intră în conflict cu al tău." ] } } @@ -286,7 +286,6 @@ exports.level = { "## Рішення:", "", "Створіть ще одну гілку з назвою `feature` і відправте зміни у віддалений репозиторій. Також не забудьте повернути вашу локальну гілку `main` в вихідне положення (щоб вона була синхронізована з віддаленою). Інакше у вас можуть виникнути складнощі при наступному виконанні запиту `git pull`, коли коміти інших розробників конфліктуватимуть з вашими." - ] } } @@ -317,7 +316,6 @@ exports.level = { "Se rechazó el `push` del `commit` a la rama `main` debido a la política en la rama `main` que requiere el uso de `Pull Requests`.", "", "Trataste de crear una rama y luego hacer `pushs` creando un `Pull Request`, pero te olvidaste e hiciste `commit` directamente a `main`. Ahora estás atascado y no puedes hacer `push` de tus cambios." - ] } }, @@ -478,7 +476,6 @@ exports.level = { "Se rechazó el `push` del `commit` a la rama `main` debido a la política en la rama `main` que requiere el uso de `Pull Requests`.", "", "Trataste de crear una rama y luego hacer `pushs` creando un `Pull Request`, pero te olvidaste e hiciste `commit` directamente a `main`. Ahora estás atascado y no puedes hacer `push` de tus cambios." - ] } }, @@ -615,7 +612,6 @@ exports.level = { ] }, "pl": { - "childViews": [ { "type": "ModalAlert", @@ -663,9 +659,7 @@ exports.level = { "markdowns": [ "## Kết nối remote bị từ chối!", "", - "Nếu bạn làm việc trong một nhóm cộng tác lớn, có khả năng nhánh main bị khóa và yêu cầu một số quy" + - " trình Pull Request để hợp nhất các thay đổi. Nếu bạn commit trực tiếp với nhánh cục bộ và thử" + - " push, bạn sẽ được chào đón bằng một thông báo tương tự như sau:", + "Nếu bạn làm việc trong một nhóm cộng tác lớn, có khả năng nhánh main bị khóa và yêu cầu một số quy trình Pull Request để hợp nhất các thay đổi. Nếu bạn commit trực tiếp với nhánh cục bộ và thử push, bạn sẽ được chào đón bằng một thông báo tương tự như sau:", "", "```", " ! [remote rejected] main -> main (TF402455: Pushes to this branch are not permitted; you must use a pull request to update this branch.)", @@ -679,8 +673,7 @@ exports.level = { "markdowns": [ "## Tại sao bị từ chối?", "", - "Remote từ chối push các commit trực tiếp đến main vì chính sách của main yêu cầu các pull" + - " request được sử dụng thay thế.", + "Remote từ chối push các commit trực tiếp đến main vì chính sách của main yêu cầu các pull request được sử dụng thay thế.", "", "Bạn định tạo một nhánh sau đó đẩy nhánh lên rồi thực hiện pull request theo đúng quy trình, tuy nhiên bạn lại lỡ tay commit trực tiếp vào nhánh main. Bây giờ bạn bị mắc kẹt và không thể đẩy các thay đổi của mình lên." ] @@ -692,9 +685,7 @@ exports.level = { "markdowns": [ "## Giải pháp", "", - "Tạo một nhánh khác được gọi là feature và push nhánh đó đến remote. Đồng thời đặt lại nhánh main" + - " của bạn để đồng bộ với remote, nếu không bạn có thể gặp sự cố vào lần tiếp theo khi bạn thực hiện" + - " pull và commit của người khác xung đột với của bạn." + "Tạo một nhánh khác được gọi là feature và push nhánh đó đến remote. Đồng thời đặt lại nhánh main của bạn để đồng bộ với remote, nếu không bạn có thể gặp sự cố vào lần tiếp theo khi bạn thực hiện pull và commit của người khác xung đột với của bạn." ] } } @@ -779,6 +770,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/mergeManyFeatures.js b/src/levels/remote/mergeManyFeatures.js index 370e7a5e..e63422d5 100644 --- a/src/levels/remote/mergeManyFeatures.js +++ b/src/levels/remote/mergeManyFeatures.js @@ -13,7 +13,7 @@ exports.level = { "de_DE": "Änderungen vom Remote zusammenführen", "ja": "リモートとのmerge", "fr_FR": "Fusionner avec les branches distantes", - "ro":"Fuzionare cu remote", + "ro": "Fuzionare cu remote", "ru_RU": "Слияние с удалённым репозиторием", "ko": "원격 작업과 merge하기", "uk": "Мердж з віддаленим репозиторієм", @@ -21,7 +21,7 @@ exports.level = { "sl_SI": "Merganje z oddaljenim repozitorijem", "pl": "Scalanie z remote", "it_IT": "Fondere in remoto", - "tr_TR": "Uzak Sunucularla Birleştirme", + "tr_TR": "Uzak Sunucularla Birleştirme" }, "hint": { "en_US": "Pay attention to the goal tree!", @@ -42,7 +42,7 @@ exports.level = { "sl_SI": "Poglej si ciljno drevo!", "pl": "Zwróć uwagę, jak wygląda docelowe drzewo!", "it_IT": "Fai attenzione all'albero nell'obiettivo", - "tr_TR": "Hedef ağacına dikkat et!", + "tr_TR": "Hedef ağacına dikkat et!" }, "compareOnlyMain": true, "startDialog": { @@ -900,6 +900,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/pull.js b/src/levels/remote/pull.js index baa6141a..3ab58bf7 100644 --- a/src/levels/remote/pull.js +++ b/src/levels/remote/pull.js @@ -21,7 +21,7 @@ exports.level = { "sl_SI": "Git Pull", "pl": "Git pull", "it_IT": "Git Pull", - "tr_TR": "Git Pull", + "tr_TR": "Git Pull" }, "hint": { "en_US": "Just run git pull!", @@ -42,7 +42,7 @@ exports.level = { "sl_SI": "Samo izvedi git pull!", "pl": "Po prostu uruchom git pull!", "it_IT": "Semplicemente git pull!", - "tr_TR": "Sadece git pull komutunu çalıştırın!", + "tr_TR": "Sadece git pull komutunu çalıştırın!" }, "startDialog": { "en_US": { @@ -1165,6 +1165,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/pullArgs.js b/src/levels/remote/pullArgs.js index e53ee121..3ad50d34 100644 --- a/src/levels/remote/pullArgs.js +++ b/src/levels/remote/pullArgs.js @@ -22,7 +22,7 @@ exports.level = { "sl_SI": "Pull argumenti", "pl": "Argumenty pull", "it_IT": "Parametri di git pull", - "tr_TR": "Git pull komutunun parametreleri", + "tr_TR": "Git pull komutunun parametreleri" }, "hint": { "en_US": "Remember that you can create new local branches with fetch/pull arguments", @@ -36,7 +36,7 @@ exports.level = { "de_DE": "Du kannst neue lokale Branches mittels fetch / pull erstellen", "ja": "Fetchとpullの引数を利用してローカルで新規ブランチを作成できるのをお忘れなく", "fr_FR": "Vous pouvez aussi créer une nouvelle branche locale avec les arguments de fetch/pull", - "ro":"Amintește-ți că poți crea ramuri locale noi folosind argumentele la fetch/pull", + "ro": "Amintește-ți că poți crea ramuri locale noi folosind argumentele la fetch/pull", "ru_RU": "Напоминаю, что новые ветки можно создавать и с помощью команд fetch/pull", "ko": "fetch/pull 과 인자들로 새 로컬 브랜치를 생성할수 있다는것을 기억하세요.", "uk": "Пам'ятай, що ти можеш створювати нові гілки, використовуючи fetch/pull з аргументами", @@ -44,7 +44,7 @@ exports.level = { "sl_SI": "Zapomni si, da lahko ustvariš nove lokalne branche s fetch/pull argumenti.", "pl": "Pamiętaj, że za pomocą argumentów fetch/pull możesz tworzyć nowe lokalne gałęzie", "it_IT": "Ricorda che puoi creare nuovi rami locali sfruttando fetch/pull + parametri", - "tr_TR": "Unutma, fetch/pull parametreleri ile yeni yerel dallar oluşturabilirsin", + "tr_TR": "Unutma, fetch/pull parametreleri ile yeni yerel dallar oluşturabilirsin" }, "startDialog": { "en_US": { @@ -1535,6 +1535,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/push.js b/src/levels/remote/push.js index b0079f92..19f26256 100644 --- a/src/levels/remote/push.js +++ b/src/levels/remote/push.js @@ -1,6 +1,6 @@ exports.level = { "disabledMap": { - "git fakeTeamwork": true, + "git fakeTeamwork": true }, "goalTreeString": "{\"branches\":{\"main\":{\"target\":\"C3\",\"id\":\"main\",\"remoteTrackingBranchID\":\"o/main\",\"localBranchesThatTrackThis\":null},\"o/main\":{\"target\":\"C3\",\"id\":\"o/main\",\"remoteTrackingBranchID\":null,\"localBranchesThatTrackThis\":[\"main\"]}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C2\"],\"id\":\"C3\"}},\"HEAD\":{\"target\":\"main\",\"id\":\"HEAD\"},\"originTree\":{\"branches\":{\"main\":{\"target\":\"C3\",\"id\":\"main\",\"remoteTrackingBranchID\":null,\"localBranchesThatTrackThis\":null}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C2\"],\"id\":\"C3\"}},\"HEAD\":{\"target\":\"main\",\"id\":\"HEAD\"}}}", "solutionCommand": "git commit;git commit;git push", @@ -36,7 +36,7 @@ exports.level = { "de_DE": "Denk dran, dass du einen Clone brauchst bevor du Pushen kannst!", "ja": "Pushができるようになるには、まずリポジトリをcloneする必要があるのをお忘れなく", "fr_FR": "Rappelez-vous que vous devez cloner avant de pouvoir faire un push !", - "ro":"Amintiți-vă că trebuie să clonați înainte de a putea face push!", + "ro": "Amintiți-vă că trebuie să clonați înainte de a putea face push!", "ru_RU": "Помните, что прежде чем push-ить вам нужно склонировать репозиторий!", "uk": "Пам’ятай, що перед тим як щось push-нути потрібно склонувати репозиторій!", "ko": "push를 하기전에 clone을 먼저해야 된다는것을 기억하세요!", @@ -858,6 +858,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/pushArgs.js b/src/levels/remote/pushArgs.js index 2de83202..a4368a99 100644 --- a/src/levels/remote/pushArgs.js +++ b/src/levels/remote/pushArgs.js @@ -25,7 +25,7 @@ exports.level = { "sl_SI": "Git push argumenti", "pl": "Argumenty git push", "it_IT": "Parametri di git push", - "tr_TR": "Git push argümanları", + "tr_TR": "Git push argümanları" }, "hint": { "en_US": "You can always look at the last slide of the dialog with \"objective\"", @@ -46,7 +46,7 @@ exports.level = { "sl_SI": "Vedno lahko pogledaš zadnji dialog z \"objective\".", "pl": "Możesz wpisać \"objective\", żeby zobaczyć ostatni slajd z każdego poziomu", "it_IT": "Puoi sempre guardare l'ultima slide del dialogo con \"objective\"", - "tr_TR": "Her zaman \"objective\" komutunu kullanarak diyalog penceresinin son sayfasına bakabilirsiniz", + "tr_TR": "Her zaman \"objective\" komutunu kullanarak diyalog penceresinin son sayfasına bakabilirsiniz" }, "startDialog": { "en_US": { @@ -1449,6 +1449,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/pushArgs2.js b/src/levels/remote/pushArgs2.js index 666156d7..1173db39 100644 --- a/src/levels/remote/pushArgs2.js +++ b/src/levels/remote/pushArgs2.js @@ -21,7 +21,7 @@ exports.level = { "sl_SI": "Git push argumenti -- Razširjeni!", "pl": "Argumenty git push -- Głębiej!", "it_IT": "Parametri di git push - Espansione!", - "tr_TR": "Git push argümanları -- Genişletilmiş!", + "tr_TR": "Git push argümanları -- Genişletilmiş!" }, "hint": { "en_US": "Remember you can admit defeat and type in \"show solution\" :P", @@ -42,7 +42,7 @@ exports.level = { "sl_SI": "Vedno se lahko predaš in napišeš \"show solution\". :P", "pl": "Pamiętaj, że możesz się poddać i zobaczyć gotowe rozwiązanie, wpisując \"show solution\" :P", "it_IT": "Puoi sempre ammettere la tua sconfitta e digitare \"show solution\" :P", - "tr_TR": "Unutma, teslim olabileceğini ve \"show solution\" yazabileceğini :P", + "tr_TR": "Unutma, teslim olabileceğini ve \"show solution\" yazabileceğini :P" }, "startDialog": { "en_US": { @@ -1384,6 +1384,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/pushManyFeatures.js b/src/levels/remote/pushManyFeatures.js index 81a0901f..908c677a 100644 --- a/src/levels/remote/pushManyFeatures.js +++ b/src/levels/remote/pushManyFeatures.js @@ -13,7 +13,7 @@ exports.level = { "de_DE": "Denk dran, du kannst immer undo oder reset benutzen, um deine Befehle zurück zu nehmen.", "ja": "undoやresetコマンドをいつでも使用することができるのをお忘れなく", "fr_FR": "Rappelez-vous que vous pouvez toujours utiliser les commandes undo et reset.", - "ro":"Amintește-ți că poți folosi oricând comenzile undo sau reset", + "ro": "Amintește-ți că poți folosi oricând comenzile undo sau reset", "ru_RU": "Помни - ты всегда можешь отменить команды с помощью undo или reset", "ko": "명령어를 undo와 reset으로 되돌릴 수 있다는 것을 잊지마세요", "uk": "Пам'ятай, ти в будь-який момент можеш використовувати команди undo або reset", @@ -21,7 +21,7 @@ exports.level = { "sl_SI": "Vedno lahko razveljaviš ukaz ali ponastaviš stopnjo.", "pl": "Pamiętaj, że zawsze możesz skorzystać z poleceń undo i reset", "it_IT": "Ricorda che puoi sempre usare i comandi undo e reset", - "tr_TR": "Unutmayın, her zaman undo veya reset komutlarını kullanabilirsiniz.", + "tr_TR": "Unutmayın, her zaman undo veya reset komutlarını kullanabilirsiniz." }, "name": { "en_US": "Push Main!", @@ -42,7 +42,7 @@ exports.level = { "sl_SI": "Push Main!", "pl": "Wypychanie dla wytrwałych!", "it_IT": "Push main!", - "tr_TR": "Main'i Push Et!", + "tr_TR": "Main'i Push Et!" }, "compareOnlyMainHashAgnostic": true, "startDialog": { @@ -1052,6 +1052,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/remoteBranches.js b/src/levels/remote/remoteBranches.js index 753820b4..ffb8e20f 100644 --- a/src/levels/remote/remoteBranches.js +++ b/src/levels/remote/remoteBranches.js @@ -22,7 +22,7 @@ exports.level = { "sl_SI": "Oddaljeni Branchi", "pl": "Zdalne gałęzie", "it_IT": "Rami Remoti", - "tr_TR": "Uzak Dallar", + "tr_TR": "Uzak Dallar" }, "hint": { "en_US": "Pay attention to the ordering -- commit on main first!", @@ -44,7 +44,7 @@ exports.level = { "sl_SI": "Bodi pozoren na vrsti red -- commitaj najprej na main!", "pl": "Zwróć uwagę na kolejność -- najpierw zatwierdzaj na main", "it_IT": "Presta attenzione all'ordine -- fai prima un commit sul main!", - "tr_TR": "Sıraya dikkat et -- önce main üzerinde commit yap!", + "tr_TR": "Sıraya dikkat et -- önce main üzerinde commit yap!" }, "startDialog": { "en_US": { @@ -1195,7 +1195,7 @@ exports.level = { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Controlliamo un ramo remoto e vediamo cosa succede." + "Controlliamo un ramo remoto e vediamo cosa succede." ], "afterMarkdowns": [ "Come puoi vedere, git ci ha messo in modalità `HEAD` distaccata e poi non ha aggiornato `o/main` quando abbiamo aggiunto un nuovo commit. Questo perché `o/main` si aggiornerà solo quando lo farà anche il remoto." @@ -1276,6 +1276,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/sourceNothing.js b/src/levels/remote/sourceNothing.js index f982ef56..184a574b 100644 --- a/src/levels/remote/sourceNothing.js +++ b/src/levels/remote/sourceNothing.js @@ -19,7 +19,7 @@ exports.level = { "de_DE": "Die Quelle des Nichts", "ja": "無のsource", "fr_FR": "Source de rien du tout", - "ro":"Sursă goală", + "ro": "Sursă goală", "ru_RU": "Пустой источник", "ko": "Source가 없다", "uk": "Нема джерела", @@ -48,7 +48,7 @@ exports.level = { "sl_SI": "Ukaz za branchanje je v tej stopnji onemogočen, zato boš moral uporabiti fetch!", "pl": "Polecenie branch jest zablokowane na tym poziomie, musisz skorzystać z fetch!", "it_IT": "Il comando branch è disabilitato per questo livello quindi dovrai usare fetch!", - "tr_TR": "Bu seviyede branch komutu devre dışı bırakıldı, bu yüzden fetch kullanman gerekecek!", + "tr_TR": "Bu seviyede branch komutu devre dışı bırakıldı, bu yüzden fetch kullanman gerekecek!" }, "startDialog": { "en_US": { @@ -1061,6 +1061,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file diff --git a/src/levels/remote/tracking.js b/src/levels/remote/tracking.js index 389935f0..fd70e865 100644 --- a/src/levels/remote/tracking.js +++ b/src/levels/remote/tracking.js @@ -13,7 +13,7 @@ exports.level = { "de_DE": "Remote Tracking", "ja": "リモートのトラッキング", "fr_FR": "Suivi de branche distante", - "ro":"Urmărirea unui remote", + "ro": "Urmărirea unui remote", "ru_RU": "Слежка за удалённым репозиторием", "ko": "원격 저장소 추적하기", "uk": "Слідкуємо за віддаленим репозиторієм", @@ -21,7 +21,7 @@ exports.level = { "sl_SI": "Sledenje Oddaljenega Repota", "pl": "Śledzenie zdalnych repo", "it_IT": "Tracciamento remoto", - "tr_TR": "Uzaktan İzleme", + "tr_TR": "Uzaktan İzleme" }, "hint": { "en_US": "Remember there are two ways to set remote tracking!", @@ -42,7 +42,7 @@ exports.level = { "sl_SI": "Spomni se, da obstajata dva načina za sledenje oddaljenega repota.", "pl": "Pamiętaj, zdalne repo można śledzić na dwa sposoby!", "it_IT": "Ricorda che ci sono due modi per impostare il tracciamento remoto!", - "tr_TR": "Unutma, uzak izlemeyi ayarlamanın iki yolu vardır!", + "tr_TR": "Unutma, uzak izlemeyi ayarlamanın iki yolu vardır!" }, "startDialog": { "en_US": { @@ -2405,6 +2405,6 @@ exports.level = { } } ] - }, + } } -}; +}; \ No newline at end of file From 7e86c907c59639b24a98a7a1e974f491b172601b Mon Sep 17 00:00:00 2001 From: Peter Cottle Date: Fri, 27 Jun 2025 19:34:12 -0400 Subject: [PATCH 9/9] fix goal asserts --- src/levels/mixed/describe.js | 6 ++++-- src/levels/mixed/grabbingOneCommit.js | 6 ++++-- src/levels/mixed/jugglingCommits.js | 10 +++++++--- src/levels/mixed/jugglingCommits2.js | 10 +++++++--- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/levels/mixed/describe.js b/src/levels/mixed/describe.js index 85d5e901..646996b7 100644 --- a/src/levels/mixed/describe.js +++ b/src/levels/mixed/describe.js @@ -5,7 +5,9 @@ exports.level = { "onlyEvaluateAsserts": true, "goalAsserts": { "bugfix": [ - null + function (data) { + return data.__num_commits_upstream > 5; + }, ] }, "name": { @@ -1320,4 +1322,4 @@ exports.level = { ] } } -}; \ No newline at end of file +}; diff --git a/src/levels/mixed/grabbingOneCommit.js b/src/levels/mixed/grabbingOneCommit.js index cf69b98b..a9651bad 100644 --- a/src/levels/mixed/grabbingOneCommit.js +++ b/src/levels/mixed/grabbingOneCommit.js @@ -2,7 +2,9 @@ exports.level = { "compareOnlyMainHashAgnosticWithAsserts": true, "goalAsserts": { "main": [ - null + function (data) { + return data.C4 > data.C1; + } ] }, "disabledMap": { @@ -877,4 +879,4 @@ exports.level = { ] } } -}; \ No newline at end of file +}; diff --git a/src/levels/mixed/jugglingCommits.js b/src/levels/mixed/jugglingCommits.js index b1eec380..fc8ef157 100644 --- a/src/levels/mixed/jugglingCommits.js +++ b/src/levels/mixed/jugglingCommits.js @@ -6,8 +6,12 @@ exports.level = { "compareOnlyMainHashAgnosticWithAsserts": true, "goalAsserts": { "main": [ - null, - null + function (data) { + return data.C2 > data.C3; + }, + function (data) { + return data.C2 > data.C1; + } ] }, "goalTreeString": "%7B%22branches%22%3A%7B%22main%22%3A%7B%22target%22%3A%22C3%27%27%22%2C%22id%22%3A%22main%22%7D%2C%22newImage%22%3A%7B%22target%22%3A%22C2%22%2C%22id%22%3A%22newImage%22%7D%2C%22caption%22%3A%7B%22target%22%3A%22C3%27%27%22%2C%22id%22%3A%22caption%22%7D%7D%2C%22commits%22%3A%7B%22C0%22%3A%7B%22parents%22%3A%5B%5D%2C%22id%22%3A%22C0%22%2C%22rootCommit%22%3Atrue%7D%2C%22C1%22%3A%7B%22parents%22%3A%5B%22C0%22%5D%2C%22id%22%3A%22C1%22%7D%2C%22C2%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C2%22%7D%2C%22C3%22%3A%7B%22parents%22%3A%5B%22C2%22%5D%2C%22id%22%3A%22C3%22%7D%2C%22C3%27%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C3%27%22%7D%2C%22C2%27%22%3A%7B%22parents%22%3A%5B%22C3%27%22%5D%2C%22id%22%3A%22C2%27%22%7D%2C%22C2%27%27%22%3A%7B%22parents%22%3A%5B%22C3%27%22%5D%2C%22id%22%3A%22C2%27%27%22%7D%2C%22C2%27%27%27%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C2%27%27%27%22%7D%2C%22C3%27%27%22%3A%7B%22parents%22%3A%5B%22C2%27%27%27%22%5D%2C%22id%22%3A%22C3%27%27%22%7D%7D%2C%22HEAD%22%3A%7B%22target%22%3A%22main%22%2C%22id%22%3A%22HEAD%22%7D%7D", @@ -780,4 +784,4 @@ exports.level = { ] } } -}; \ No newline at end of file +}; diff --git a/src/levels/mixed/jugglingCommits2.js b/src/levels/mixed/jugglingCommits2.js index 02746c5c..3ba8b3be 100644 --- a/src/levels/mixed/jugglingCommits2.js +++ b/src/levels/mixed/jugglingCommits2.js @@ -8,8 +8,12 @@ exports.level = { "compareOnlyMainHashAgnosticWithAsserts": true, "goalAsserts": { "main": [ - null, - null + function (data) { + return data.C2 > data.C3; + }, + function (data) { + return data.C2 > data.C1; + } ] }, "name": { @@ -957,4 +961,4 @@ exports.level = { ] } } -}; \ No newline at end of file +};