From 183193a618935db057e04946d7029dacdaa71433 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=BA?= Date: Thu, 12 Mar 2020 20:53:41 +0800 Subject: [PATCH] Merge en-us (v6.5.4) --- .babelrc | 15 - .circleci/config.yml | 45 - .eslintrc.js | 119 +-- .travis.yml | 18 +- appveyor.yml | 30 +- src/download.js => download.js | 6 + getAppRoot.js | 12 +- handledRejection.js | 7 + install.js | 137 ++- package.json | 12 +- patches/win64-6.5.3.patch | 1595 -------------------------------- src/platform.js => platform.js | 2 +- src/spawn.js => spawn.js | 1 - src/crack.js | 160 ---- src/createPatch.js | 82 -- src/install.js | 99 -- src/local.js | 65 -- strings/en-us.json | 52 +- strings/ja.json | 322 +------ strings/zh-cn.json | 412 ++++----- strings/zh-tw.json | 384 ++++---- src/sudo.js => sudo.js | 0 translate.js | 29 +- 23 files changed, 651 insertions(+), 2953 deletions(-) delete mode 100644 .babelrc delete mode 100644 .circleci/config.yml rename src/download.js => download.js (93%) create mode 100644 handledRejection.js delete mode 100644 patches/win64-6.5.3.patch rename src/platform.js => platform.js (50%) rename src/spawn.js => spawn.js (98%) delete mode 100644 src/crack.js delete mode 100644 src/createPatch.js delete mode 100644 src/install.js delete mode 100644 src/local.js rename src/sudo.js => sudo.js (100%) diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 82c5382..0000000 --- a/.babelrc +++ /dev/null @@ -1,15 +0,0 @@ -{ - "presets": [ - [ - "@babel/preset-env", - { - "targets" : { - "node": 4 - } - } - ] - ], - "plugins": [ - "@babel/plugin-transform-runtime" - ] -} diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 1bd3d4b..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,45 +0,0 @@ -# Javascript Node CircleCI 2.0 configuration file -# -# Check https://circleci.com/docs/2.0/language-javascript/ for more details -# -version: 2 -jobs: - build: - docker: - # specify the version you desire here - - image: circleci/node:8 - - # Specify service dependencies here if necessary - # CircleCI maintains a library of pre-built images - # documented at https://circleci.com/docs/2.0/circleci-images/ - # - image: circleci/mongo:3.4.4 - - steps: - - checkout - - # Download and cache dependencies - - restore_cache: - keys: - - v1-dependencies-{{ checksum "package.json" }} - - - run: npm install || echo fallback - - - save_cache: - paths: - - node_modules - key: v1-dependencies-{{ checksum "package.json" }} - - # run tests! - - run: npm run create-patch - - run: npm run test - - run: npm run build - - run: npm run install - - - store_artifacts: - path: patches - - - store_artifacts: - path: src/strings - - - store_artifacts: - path: app/src/strings diff --git a/.eslintrc.js b/.eslintrc.js index 2ea9465..a65d1e8 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,60 +1,61 @@ +"use strict"; module.exports = { - env: { - commonjs: true, - es6: true, - node: true - }, - extends: [ - 'standard' - ], - parserOptions: { - ecmaVersion: 2018, - "sourceType": "script" - }, - "rules": { - "comma-dangle": [ - "error", - { - "arrays": "always-multiline", - "exports": "always-multiline", - "functions": "never", - "imports": "always-multiline", - "objects": "always-multiline" - } - ], - "indent": [ - "error", - "tab", - { - "SwitchCase": 1 - } - ], - "no-tabs": [ - "off" - ], - "no-var": [ - "error" - ], - "prefer-arrow-callback": [ - "error" - ], - "prefer-const": [ - "error" - ], - "quotes": [ - "error", - "double" - ], - "semi": [ - "error", - "always", - { - "omitLastInOneLineBlock": false - } - ], - "strict": [ - "error", - "safe" - ] - } -} + env: { + commonjs: true, + es6: true, + node: true, + }, + extends: [ + "standard", + ], + parserOptions: { + ecmaVersion: 2018, + sourceType: "script", + }, + rules: { + "comma-dangle": [ + "error", + { + arrays: "always-multiline", + exports: "always-multiline", + functions: "never", + imports: "always-multiline", + objects: "always-multiline", + }, + ], + indent: [ + "error", + "tab", + { + SwitchCase: 1, + }, + ], + "no-tabs": [ + "off", + ], + "no-var": [ + "error", + ], + "prefer-arrow-callback": [ + "error", + ], + "prefer-const": [ + "error", + ], + quotes: [ + "error", + "double", + ], + semi: [ + "error", + "always", + { + omitLastInOneLineBlock: false, + }, + ], + strict: [ + "error", + "safe", + ], + }, +}; diff --git a/.travis.yml b/.travis.yml index a46f8f1..7dead47 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,22 +13,8 @@ cache: - "$HOME/.cache" install: - - npm install --ignore-scripts + - npm install script: - - npm run create-patch - npm run test - - npm run build - - npm run install - - ls patches && cat patches/* - -deploy: - provider: releases - skip_cleanup: true - api_key: - secure: Q52hIujo9j+sh7IjsICa29YNoasrnBwmBSmLOl+BWrl8Y2D333GQ71R7Gj8x5/KsClx/AzEPQM9f6yfUKdjaav1GGcidMIfHi746K6BQUPw2cGTj9zNwKJp8SEYLtwGSkxjQvrTTrdoIhKKQSSUbRk75QR5RwmfymLv6RxciUZsjcLSejJRd8EsJHWonbp4eGVpVbQhaCxmaVjmug89YpK0wcSjRZOkM4GehhpXNMQ815Ppi74r69HSw83RI2g3N40c75m+V4yKx7nNdiEVGrkNA/2n0ay/Oge4MQ0bRQukYDhHoNXiNilltE5r5S00Yoxn4Kw55/czhWgA7P4kqQ6Jf7/BpOB3FhcFDrWBVJELA/AdVdNUpw0EjA0if+k2FBBbHOPeoadCue30baQ0AIFFQncKs7q5l4CHFNsv3rYA4quuheKG6HZm2lJkH0fNdl052/pY+P0fMBLFbEc7CixDwQyEWsixqIM8OIz+NtYQHUTq1Hb5uEyuEdPRuSJqRiim/4A1cUx5QpyHE7Y1uICmDmtSlHwVsSzRV82w7Qs3FWuwWqLr1AoTHayqq80Rt4L68G2xotCn30RQZebzs9mU/ieyxTLruy+6VTQcxj1QQWAlbvghafbBfuvW1hPZokCKHuiPi8atTyfnViXFNe5RhFhFNHDWmXahu58ioob4= - file_glob: true - file: ./patches/*.patch - on: - all_branches: true - tags: true + - npm run translate diff --git a/appveyor.yml b/appveyor.yml index 6a2abfe..f004f7d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,15 +2,6 @@ version: "{build}" skip_branch_with_pr: true build: off -# Test against the latest version of this Node.js version -environment: - nodejs_version: "stable" - matrix: - - gitkraken_platform: win64 - platform: x64 - - gitkraken_platform: win32 - platform: x86 - cache: - node_modules - '%APPDATA%\npm-cache' @@ -19,21 +10,18 @@ cache: # Install scripts. (runs after repo cloning) install: # Get the latest stable version of Node.js or io.js - - ps: Install-Product node $env:nodejs_version $env:platform + - ps: Install-Product node $env:nodejs_version x64 # install modules - - npm install --ignore-scripts + - npm install build_script: - - npm run create-patch + - npm run test + - npm run translate artifacts: - - path: 'patches\*.patch' - name: patch + - path: 'strings\*.json' + name: locales + + - path: 'package-lock.json' + name: package-lock -deploy: - provider: GitHub - auth_token: - secure: 8hqStAGHShwpTpTvpJqw01bteLm0Z1Ob9MdFMevTlCJWb5iVXcr7dpOMGIaOdfSz - artifact: /.*\.patch/ # upload all git patch to release assets - on: - appveyor_repo_tag: true # deploy on tag push only diff --git a/src/download.js b/download.js similarity index 93% rename from src/download.js rename to download.js index 68b849e..0641e2b 100644 --- a/src/download.js +++ b/download.js @@ -1,3 +1,4 @@ +#!/usr/bin/env node "use strict"; const fs = require("fs-extra"); const path = require("path"); @@ -5,6 +6,7 @@ const os = require("os"); const platform = require("./platform"); const spawn = require("./spawn"); +require("./handledRejection"); const URLS = { win32: `https://release.gitkraken.com/${platform}/GitKrakenSetup.exe`, @@ -85,6 +87,7 @@ async function download () { console.log(`Downloading GitKraken from ${url}`); await spawn([ "curl", + "--ssl-no-revoke", "--fail", "--insecure", "--location", @@ -99,6 +102,9 @@ async function download () { }); console.log(`Installing Gitkraken ${fileName}`); + if (platform !== "win32") { + await fs.chmod(fileName, 0o777); + } await INSTS[process.platform](fileName); await fs.unlink(fileName); } diff --git a/getAppRoot.js b/getAppRoot.js index 30e2208..bc0130b 100644 --- a/getAppRoot.js +++ b/getAppRoot.js @@ -4,6 +4,7 @@ const fs = require("fs-extra"); const path = require("path"); const asar = require("asar"); const os = require("os"); +require("./handledRejection"); async function findRootPosix (dirs) { if (process.platform !== "win32") { @@ -102,8 +103,6 @@ async function findRoot () { return findRootFn(); } -let rootPromise; - async function getRootInfo (resources) { const appRoot = path.join(resources, "app"); const pkg = await fs.readJson(path.join(appRoot, "package.json")); @@ -123,10 +122,7 @@ function getAsarInfo (resources) { } module.exports = async () => { - if (!rootPromise) { - rootPromise = findRoot(); - } - const originalAsar = await rootPromise; - assert.ok(originalAsar, "Can not find GitKraken"); - return originalAsar; + const root = await findRoot(); + assert.ok(root, "Can not find GitKraken"); + return root; }; diff --git a/handledRejection.js b/handledRejection.js new file mode 100644 index 0000000..1a49d10 --- /dev/null +++ b/handledRejection.js @@ -0,0 +1,7 @@ +"use strict"; +process.on("unhandledRejection", (reason) => { + console.error(reason); + if (!process.exitCode) { + process.exitCode = 1; + } +}); diff --git a/install.js b/install.js index 1a6c795..1c9834d 100644 --- a/install.js +++ b/install.js @@ -3,70 +3,111 @@ const fs = require("fs-extra"); const path = require("path"); const asar = require("asar"); - +const os = require("os"); +const osLocale = require("os-locale"); const getAppRoot = require("./getAppRoot"); +const download = require("./download"); +const sudo = require("./sudo"); + +let appRoot; + +function copyFile (source) { + return fs.copyFile(source, path.join(appRoot.path, source)); +} + +async function readLocale (lang) { + let locale; + try { + locale = await fs.readJson(`strings/${lang}.json`); + } catch (ex) { + if (/-\w+$/.test(lang)) { + locale = await readLocale(lang.slice(0, -RegExp.lastMatch.length)); + } + } + return locale; +} -;(async () => { - const appRoot = await getAppRoot(); +async function updateFile (filePath, callback) { + filePath = path.join(appRoot.path, filePath); + let content; + try { + content = await fs.readFile(filePath); + } catch (ex) { + return; + } + content = await callback(content.toString()); + if (content) { + return fs.writeFile(filePath, content); + } +} +async function patch () { if (appRoot.asar) { - const appDir = appRoot.asar.replace(/(?:\.\w+)+$/, ""); - const asarFile = appRoot.asar; - console.log(`Extracting\t${asarFile} ->, ${appDir}`); - await asar.extractAll(asarFile, appDir); + appRoot.path = appRoot.asar.replace(/(?:\.\w+)+$/, ""); + console.log(`Extracting\t${appRoot.asar} -> ${appRoot.path}`); + asar.extractAll(appRoot.asar, appRoot.path); } - // C:\Users\gucon\AppData\Roaming\.gitkraken\config - // profileGuid - // C:\Users\gucon\AppData\Roaming\.gitkraken\profiles\d6e5a8ca26e14325a4275fc33b17e16f\profile - // ui - // language + const dataDir = path.join( + process.platform === "win32" + ? process.env.APPDATA + : os.homedir(), + ".gitkraken" + ); + + let lang; + try { + lang = ( + await fs.readJson( + path.join( + dataDir, + `profiles/${ + (await fs.readJson( + path.join(dataDir, "config") + )).profileGuid + }/profile` + ) + ) + ).ui.language; + } catch (ex) { + lang = (await osLocale()).toLowerCase(); + } + + await updateFile("src/strings.json", async en => { + en = JSON.parse(en); + const locale = await readLocale(lang); + if (locale && !/^en(?:-US)$/i.test(locale)) { + Object.keys(en).slice().forEach(item => { + Object.assign(en[item], locale[item]); + }); + return JSON.stringify(en, 0, "\t"); + } + }); - await copyFile("strings/zh-CN.json", "src/strings.json"); - await copyFile("static/crack.js", "static/crack.js"); - // return - // await updateFile( - // "static/startMainProcess.js", - // js => - // /^\s*require("\.\/crack.js");?$/m.test(js) - // ? js - // : js.replace( - // /^([\t ]*)snapshotResult\.setGlobals\(.*$/m, - // (s, spaces) => `${s}\n${spaces}require("./crack.js");` - // ) - // ); await updateFile( "static/index.js", js => /\brequire\(\s*(["'])\.\/crack(?:\.\w+)?\1\)/m.test(js) - ? js + ? null : js.replace( /^([\t ]*)const Perf/m, (s, spaces) => `${spaces}require('./crack');\n${s}` ) ); + await copyFile("static/crack.js"); +} - // await outputFile("static/clientType.js", "module.exports = 'ENTERPRISE';"); - // await outputFile("static/mode.js", "module.exports = 'production';"); - // await outputFile("static/mode.js", "module.exports = 'development';"); - - async function updateFile (filePath, callback) { - filePath = path.join(appRoot.path, filePath); - let content; - try { - content = await fs.readFile(filePath); - } catch (ex) { - return; - } - content = callback(content.toString()) || content; - // console.log(content); - // return - return fs.writeFile(filePath, content); +async function init () { + try { + appRoot = await getAppRoot(); + } catch (ex) { + console.error(ex); + await download(); + return init(); } +} - // function outputFile(filePath, content) { - // return fs.writeFile(path.join(appRoot.path, filePath), content); - // } - function copyFile (source, destination) { - return fs.copyFile(source, path.join(appRoot.path, destination)); - } +(async () => { + await sudo(); + await init(); + await patch(); })(); diff --git a/package.json b/package.json index df9c346..6a30a10 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,14 @@ { "name": "gitkraken-i18n", - "version": "4.2.1", + "version": "5.0.0", "description": "Unofficial GitKraken i18n project", "main": "index.js", "scripts": { - "build": "rm -rf lib *.tgz && babel src --out-dir lib && cp -r src/strings lib", - "start": "eclint fix src/**/* && node src/createPatch.js --no-pack --no-patch && electron app", - "create-patch": "rm -rf ./app ./app.asar* ./patches/*.patch && node src/createPatch.js", + "translate": "node translate.js", + "install": "node install.js", "lint:eclint": "eclint check $(git ls-files | grep -v \"\\.patch$\" | tee /tmp/git-files)", "lint:eslint": "eslint $(grep \"\\.js$\" /tmp/git-files)", - "test": "npm run lint:eclint && npm run lint:eslint", - "install": "node lib/install.js" + "test": "npm run lint:eclint && npm run lint:eslint" }, "repository": { "type": "git", @@ -24,10 +22,12 @@ "homepage": "https://github.com/gucong3000/gitkraken-i18n#readme", "dependencies": { "fs-extra": "^8.1.0", + "os-locale": "^4.0.0", "semver": "^7.1.3" }, "devDependencies": { "asar": "^2.1.0", + "eclint": "^2.8.1", "eslint": "^6.8.0", "eslint-config-standard": "^14.1.0", "eslint-plugin-import": "^2.20.1", diff --git a/patches/win64-6.5.3.patch b/patches/win64-6.5.3.patch deleted file mode 100644 index 13a35eb..0000000 --- a/patches/win64-6.5.3.patch +++ /dev/null @@ -1,1595 +0,0 @@ -diff --git a/app.asar b/app.asar -index 7b4e2f585d63e854f2d23e8e0812ae035154c327..08a5d29f1038036b4cfb45019033e4a5ca2ec1b7 100644 -GIT binary patch -delta 64324 -zcmY(M2Yggz_V?c;lgYg|q(Kq_q|-}adZ9NFL?E$%NDaLv^cCqU7Nj~$jtUa67Zk8p -zihWfCT+6CdcWo$bttjRFo@c`D{yzpFfB*0Q -zz4&J8|9h7IZ{z>6CFnF;7FZrgSRP1R9!Odqa4iocFAunv2U4C3SZ74ik0;u;*Bc0h -zL*a-ww#S<*{a>~+<+{7AE-8_qr*u)fQrU5LVzz9*+p3@F_sM|`R)H*;n35r<@3ve? -z5sy!PyW8rM7!At)XiBbJdykcq6!8V6djof_+n4D>qoVvi+BYJb8J8m6ICshV@R9 -zt0vEptVPM$a&m)}o#^w(iu$g`Qn=B|wtc~Xo-(&e*3@_9NIA!nd_GU?*x+1Qv{9ep -zmnSz`;UupwD&KCjJV{}%Pa5B6g)*alz4G$Ob9&64T3$JOwsij^xru{l!@h{m6D^gc -z_gNl&^QZ5#d`aPmPu7i3ZX&5~xic+J@&`RgBP-KgD6jT#XV-Le_mR6c@%U&kC?)>H -zhO&E;RiEd2<&#ZT>m;w=BMG%ue`M#ELA6$g#IRSEb#mv)k?F~4I;CNMG!Tu}baF@a -z{`}V$k{+GhZKd&Mt3gsE;E^q>lN(Cat5zl=4MYRnaeF6sb3Hrg@dW)bPtPJb*U6oc -zqDQV@c8n$DiSRNzySO{*?L*$6 -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 -zZ6ahVCFSsAFF+As=Di?Nxlr7Je_9P-`F`xV -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 -z2c2rC_>FFsA$lN029~KiwrT|H}#RCYp@ -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 -zPSb&K{~M<99zkNgt<#tb2$Os$ -zP3Ml3<367b@sIkA7r&-*jI5i7VKuG7Fts~JI#zMMRvit*Oqff;6rT?k%Z4h3qNURJ -ztJDuOZ@*XRlt-jZbv)ZVsv5;r8gNgwQg$D!R*ntMRV3-)^3y`4AkswI&p`B16s^ZF -zAfep@DeAQ7qf{@mc$nQ(x{X&*B`~EDl0~WX$wP+z`Uq{A;^Q+AFzq*zKhut?Weu5W -zdn~g4|BE6I&jdxnz|P-h+GRA4(YfAOvStBAu=k8icahZFZ%0$muRw_Dto+4p#cP7B -zIO->=vMb*2_wuc&uwPAML?oES4IKlXj5T@*v -zKW8(u^c#t1j@CFlGHMP+MKn%@N%io_IS8J_M^qL)0pC3|$IecnqhCFvZ26XKRQg=i -z$fz`%ix4R_1m*A(c8T0DS3Lo}&??}E=b|;5=J|Xs#vLZ-mNgGZR!EP_c%B;;K-lZW -zqunttj)t$zL-Caa{5nrzkwoKPYQa)?ao -zf13x?C(x&kHI?L2A#8L5L*_Qy{fWggh%Y7?HQ@$?Mfq4>zX6+JD(iqfW4;~Xl}%Er -zc1QX|azkV1+a;DRwNWwD9qYBot}oBbx9i)wt|ET+%(4mOO}^5z>BOy@e~#tGI<1P7QG7PTfWc5u5 -zM?;CXZ&Fvpte(5cj%W%pbThw%c%!PD(LqM(mFkh~<7_ -zdR@LBo{-__i&E?%(5bl#pVj5&1Pw+xrn$Usx7o8TqMW$xoM}EhCA)TM&gc|NKE2H@ -zG@0oGndIrxZ?BuVp10cpi-_AegxcDlMv`Z1yufy3)9qMp7^ZUic1HdF?U;(Lh&pvU -zAkReUhek4CiJc+WePw0H=sWCW^)D0e&=|-s_uZjIw5WV^2Re)PN$Lut84>BZLIucJ -zZ&;z>usV685g)9u>udI9PcKa2_Z0vmz!{9I!D9!{sMqO}taqx7 -zy2+lbv0aH+{j$cX`7(bS4W9PS|v!3hac9e#X^1y*V!G_=hVI7taUh5`YdGqI@k{> -zr+3%k%eb~w4*bCi#Pj1)(sV%4FiggC7kL`ZwA_7{-Gj70OQ3XB#;V^*LKU;^63-{i0MwH5(w -zJaMz`{q>mC8jjJ_W7>^tm!%iDa%$ECgP5y&xnuD4qlli0n3&gb+dSu_$PXUYTX -z?OdXENZ*+SJazR`@uyPEM>@yX!)+)c;mR8VT{lcId0VswBIl6;u{~t}R4Z7mmm9y| -z6%Dn6jZ-vj{A!I7M5JggcZu(;_eC=*Bm{MF -zSi#*Iv4$x?=N`gU-}tjK4o*}6Fq*LBZsszI(QUt5-9kXVzuWF>@-BgU$dRc6F1rU{ -zBeASacG{2!s^3E-0dH?cgZ!7hO;HPFC-)}<@8u$OHyiG?yQ+iw@?Lwe+pn#2rE=_E -zyK!ypidX?v?*9|qN;N8JSka32jaW$CM#A1$cbsLwZ}#}xjwv4truzh`#!saMQYmA -zOvN*v^*>ARtXE%84@XJV>aFI^np`$V_BSM$nX^d?82IlMn@|giB>{P5lkyww3N;Ig -zE?n-$DyVVOcOoUVOulw~UtMeWN`b56rWZ-MraGUmwcF4Rsl1KbD*N$f;8we&OwVD{Eo2h3k}+tD -zqH3H$hb71&v;0q3$OHkNM#35&3lNUo0Q8#AT6ZBFHb$h -zTwHv}Zf0Y7rm%JmeUMJJbbr{cpGxnrPTMu}XRwIuSaJiI@i6uSk2I?;OddErg;lA# -zSW8&CV`A-CFbbJ6A$!6ToJ?ko -z{Q~BY^$PJ7Esn^5CzvBmpc1@L&>`yG`h@l(MC8yDc8KQRpvm!FGpn*n_GG)W#lKbk -zpwDA6OoT0kvSce&6ex96zL-lcYNgN4pw|E&?2!+)62yc-8xzEoJxRn9VF)Yc*@f%3 -zvi6LW6TL)e#?EAr;MnC%{o3A%^*{#>Q7H(=)xiXd9EobrqX`xX**x(ggb5bS1ypBzzSztG&0u5v -zu1z4O%ws}E4rsyaz&86zlY1`SZg~?G)gY&hOf;^nkQP;W<~C -z6zxzi0aRZ>&70Q#F{(5DI7+reYB3v<;DyOnGiibC$+q54bnfkt(O -zvTu#Sbxu?6+~jFy3rD}lPArfo2F0bMVq#$zX1N -zmJBA@xA6MHI(Cc@}&K-_)u9UACYICgY)^cMew==9_D)9ZYDEAu%=Pf$!Rk1c};C&5_<+G -zvZBR;K5`>JaWpG%f!OECyl6AY{^xmNbgAYAO_0%1EC&)9X!#3>I)qb^grwvmdE(=` -z2kRoRjW3Wh(FnORDY>Pb)-%J(A!?J73uQs9ZcB)(|w8NyU`@Sw})eFDPw(rc>r@E8`+LM(T&W=FhBvnbE_%4;>)5 -z$;w`oHe0>IZI!9+`kDUR(XU|Jk^e3+Xep`9RDz@uwb9H}yuN)!dla;R4<3^*d9NyV -z;_}6^Ul3>nnfJGm_#w~Qi -zisKx0u`5F`)~-WSIn>Z7bC?n`D<^i^K{)U3djPtvI~gS;-y}{x--*)>b6d?-^IL+; -z=oM^S+fqlJMMVbs;&a0>5Ta@qGfuYMFJ0aOSgJlUFGy&P%?(U|-~PG_I3xTH#rAue -zN{8J{5ScHQC{-qx$j04xsl~hP>%n}mY0E=wq4Ldgqwg$+qLwJf9&)#nXl>o0i0=Dg -z7LzU5qu>Yq(}}Lx?zm&SFH4h`_o(<#=KXt!Yc;`Y$lvO9mLscPwcAL=>jt+`s(r6Q -zF&ZAj5s!Xd3kKSpi;O$SyRVaMgSSv9Jo36GjR5auui3@1?d>(BCJo2V6e?;~+WCo6 -ze&9EG@C}4WQA%EU!w#`bSNlpw?1YKtyvYNJe_6<+`_cT^Nfis`!)7Fx1l~key@`w{ -zphe?Sf9*|#WZHm?z(=IJ)8*oubbVm2$h$~RycnMXUD;12<}K1x)CcPXzUD1tK<*HE -zd(C*sf0846%btWT`lR36sw-Yu`Zn(tflEP)8p`9}+4bb`+v+2D$WsUGGU@q_DXqYp -zK4y}R{}r!5Ra}#UMIRAlKkyDOMnVT<{DiLy+uK?E&P({@pfc+ -zl_*S~`j|||jQ8lGHnK1Nh_fHmvuTX -zvx>p@QF;ca@D -z?3=v37lsSFIk(sDqYJM-qo--uhy17kyIJcp>cUf6i^r=$R2< -z#M-CP5GlU!K2{kJ(?ugO&((Rdn7$qpAaEQ=gY#^j1;~DEi68|0j+Ow0J9)N2bocD -zU;8Wma@qmA3jsO)`N;!zd=0jl<*p~p5(>_S5UIkNw0s5svd#iDJ@pPc`+ak|j<$WI -ztxfpG7d}$9uQtdB-5&?lMoHW1M~F+s-^tPFn)%!QZnt;G8;Jj-lC79#BK40c#26mz -z{aC313%EPbcQ)^1BXcr=A1k>>0e15<=tOfLR~RESx)=FG?VcogZ1c1{nfQrbhAUnC -z376^e)g7NOLei@8^(U%+erfb6zbLD^@>2{!`KQse^QPT6gyc}6$3CUjM8=0aew}I& -zD}~h;aDujA6n&<`VO8U2j2Wz3{26)xy${QEdvP?Me#S7^r9hR-!*Qmv>1`9n3z&oO-BowCmfWgxU; -zK1UGR+OY0(L_@V*cIgLgbTRix{zCa)Sekrc&m=40l{H^zprG@y_6y+YpI_L`bp=g0 -z{4I#c#zyE -z-oRuW_a3A~LQGt;o*cl1gDML~nRCeY(G!3SN~N-Sa%<^d`?UzG% -zY&KECZ)#rTn+~S*4fjzMn0gojsL8R7hgJMu`S37VMAngubwou0(G4H5*=Y$jrS!%u -z2V8oD*I9k_TP@!-C#RNgH14+vo;s#kqXOI5M#-@N}R+v*u+}vLb?5@Minel -z`p=TM2J+5P^_EimOM#+etrBs$Cf45x|(;=2# -zD-M|srT*txLd_AFq1^bD9j?a;OHASBqASUMcCw+vJ;Nwnk%s-WN -zc!`z_>sU<%EQN3uX@=y@f7GIONfC&O;4k~bE$J!4ZDb@cXl}FNS-M^rcw0Flk -zT-{Lai>Yqwo03%c;a~RUGUIBfsBQ#jahSw;*cWS3UM6e5wu{K8MuV|q<*51B#%l&l -z;|%-JnS0Ql%C0rvqhFqH_*tR6&o}g%p~$}2dlkj<>^HXVDphg{!o21r9+1WoOf6P< -zRi4bf(#}d@4L#&K5?gy!cI?Pisq*EIx~~%BU@@*I7)!XC-Q4tBl!WY>Z*}6ybR8Q^ -z>giiDtuUET?A+D(;_u+F;9#+z2QBG>;fM|NEz5@jf$?$w{_XMS)GWUD+ -zi1e9iQ`pPjBYxc!g?Hf*o+yv#C;g6-b`M8Qz$9mm+buC;R;mFfZ*nF8NWH^Z*H!tR|#P -zip}Z=t)sv8qg`%v-N4nbktP+Ojnu$UmlJ9jc!8=D%0|N8*udev^`d^Lk^W -zN4Ai~blRgWES1A1*PgN?77jI@L|FGwQ&&#x)W~%C=@eZVw9=T+y>`pA7OuQlhf!(r -z`2>ufYyDxup;680^arG(?At)^)kZ#R#xxjvX;eEodRpVCXef4KRFN#~WSVBRN>g|KiQY-?oY-vW50~eBLLF(VnO@QOpPv^o%ypJPKlCd)In}JXE%r)8W+{a>Ml|L -zB9LV@tlu@>p956RSpV&@|?vhQm%{2%BR`ElFh8he(=g>i_NFbss*ZOR*^Fc=es(= -zc2qrhyGf0tc8|JH9H@5iXd|fXTCciAPac89vOfp`acw)aeEerpV!9mt!*)}xGy{~9 -z?e4r-VU7A&EnsRrqVO5y(D_dTX%V^VPvDhgH9I~;Xyd)_Pdkg<^$YJA*cX6gq4ry -zkgRT1rxeN^e^n~YC9H0b9cb4$cH~`cnBV}d0J1Q_ -z8AB46SN$r%p&6RJ7b)>2I)xHRbedAw@yN(TrxyV&hMDNJl=l;z5?CosmWdAOG00`t -zB#=9192f=bH&p$(Iwv{IS@t8;9Oi*-JwirnB-*2U>Boja|?g` -zf?Hfpb8Rdld@wh7)8(*14t(*n%b}u<`#VaIe0vw8TzZ@VlG+kVduoEV+s=-(rp*NcRQrG;rYcW4h_&uNkxhSU4!zfNk5gs -zs}oksu@t9F*=(lev{Nqak?xjbc3uk0x>N+d&35Xik)|`{jB(?qQ9to`5_C;GfxW3w -zSPuR1A<42G!WwSS%|92c7k03(%!*R5g*Dozo9omzq!w*Y!SZ&74Gi;9* -z(>?MQpUg%rzo&A?FnqsdJ*1&a(ikn<5!G{)5g{whUKPogsgy+ -zj)-(0k|XJio>G<6%V3(c-@8|a>Jw;Ioq-8y-hBH?mWI8S;jl)E*h)%1X35R>8Qht{ -zG|A*_-Jj(0Os5REK-f2A@@CpE@K~l3K?Qy42a3d%<*-l^!)To4u-hWjV>V)JLV`Ki%$%ywu+3rSVBDmN~qHk(=C5$t2r$n1uvBY}dz -zSL1)abwvKNJ$-+OZp!|{JF=@V2Jdhx~E4I`K=+((p-^w#E7r8 -zE=;qX?ncx(&$-^H+dX+I6}88b+v^Uk(&KY`C{kU5B -z|882Wu{n*dk6O+2LP}*gHul=)T|ByBar~$cvc#sveq$t;_AA!;XS*24EPEE4Z96V) -zR~-LEgKf4fZiTY4+3;glQ`wg9uysYeA!Qyb^39&btb7D~*tIv`X-Nj3bIpFmwJmjT -z1b)MhOZNhY$l39rEu-21?PA&8eEOspEU+4_i -z8cA4|6g%xmI_V~V+lxU2T+t;fDJo)&+Q(2>0@lJ^piy67By7P*B^J9Osj{>$dGgx# -zOct3VED!V>GybE9+0oEAv)GxY2(Y-AIrhQtw(&ryTHUTdJfj7vP##%Of-X{JRNZT6 -zp21ssgSv*zD4#wA!oVR;&M0>BYCU~&T`BTG38uv!pX+sunsqi?_U_!8 -z95+?A2Mx)+rOsg9ANFRJnOxNUu$weRQ`H#uq`6tu_qEHd+m1DZ56*m?z<6a-@DrOR -z3D#I%Yw8f9VaLln*u}}FP6JLmW3wpg;x^=7*38LC@WpxzXe7g%sjXpovzviukXBaP -zI^9$v7n*^o#M$x0ab2Sa-IrQjIqGA5GF!E=gC}Yv&GAd9Xju3C%9Vr79q4*M{@q+9 -zNsXzbg+oA(x-Cd~O6O*Bx6s<5~Esb!+`kyVChm -zv4oC>-K}vr>QaAe?NsoA>C~!oYI`S(+Y`PoXydSJn@65)xvGE1xt)q2;&Col*>kYHD##9xjw&RFJdP%a&HmHfy(ob0 -zPI;}@>1+J&W-n@_BzB({ebW!Wdz~KU1N=H)-uqP(*>p##H=6Eq1}BoWG5hrW@CF-W -zpZ3B2!0g|APIt2tm+s(q=@%EU9+IhkXQbgrX6jyEXDV&nkhVX6TuZ+=sg*W8gimW7 -zaE7F_Bs|^}P&%s`B|Eb$fjF0v1VIL`r3)oZoqkIT(E)h~w7 -zB;Mgs_Htj-3DIgsO*+AO@HVoqljFsY`$}a`A5t>;ot*{_PSddA$rGeMo8u!7nd$Ru0K8%ic(AAQ$d1xgajngi&S}Vi9uJ(yxot -zhTRJxKh;yf&#JYWgw&I?A(hqV4Q2mewyzu1Rdo$b<#a63E9dk&=075PM-URtIIlZI -z>V>8)R+qcRM%`rMG!Ee#mUV?yX*=-`v)He9_ds|NsfJLb<{|uAMmHR#b`8swvr&>K -z${qIjC*Wp<>uk<0>}|d)!}xF%M!aylnOhnS!1QkDjP@&^>c)U*XP|>@4)-9k<_T0% -ziH3DbM_wKGlp&}JE|4juFSVNz8Ek4tcc(pnTY_-4eI@g9;R<~oj+>1zDtX@4a=jPL -zhithpgQVZ~t_)YV0F%ltFz-_X^>n)ZJaTYu-SAS7g!cQ>9q$y$6pI^hfCn6L;Cmm= -zyEGV@3cRvv3@>?+hq}m4vE{)S#(Qy)X*#1eugj7)_cSpV+O@x@LsBUq^?Es-O_sZV -zFNYl%(4W0yxy#yK_#gr)Qm-GgK58BSmT|e0>|%eth?I>Zl7W)qUjWMC;}|PqQhLiY -zuGJr_br8gYq;qtasH!XUTxj^(-WryW7adBwBYz&oz!Hfp6he26LSTdrluz<6V-lD- -zk8bu9e-?k70q(JJ{(r=vTjI!>VjAmoDC`P?4JVXPFI>!@olz))?s&!S1Hfwqe%+rq -zkR3i;GnI#>h -z`$u$Vw%D~55^J`0V3JM4&n;It?bE5qMND>Y*7!NI=F6UWt|qx^*5s|?Ybed}A(O__ -zWHrDkc3}jt=51&N#-z&=!|2XSQ<2=r{!X?-_p^H1*<&kZ#>A8Yon62KPSD@+X@ZJo -z!D*m}>Zw5wRw{uli>9doU#avBiEP(1;&%s4*{y0CICV)^06vz$UFm3zj_uX2RI1B- -zp1xAqxh?|2umS9l?3>O#s|To_BHQHyfJSghJXIXtr-yYNQuHRid3un>Aa4}!Cu8fM -z@iKE_O1=t_7#L@NbU8*}^;sR9ve#-v-qQ=Y4ZQ}`@#5P%>>B9ke#QHqXK%UFKtx<+ -zSKjwc7d)PBB-S<~%MQm-aC -zq3g4{U+t8$6O36TQX1czD`6Nj+SMBm3+S{0kKgBXC5acWc0wuSH1sjG2iCm6`jL9W -zoO&|)8k``aC1GWLTD$fIa3^(`lO_*cL)c5Do9_KNfXtz57y((ZIK-!3>##7#AMe(! -zO{mySmt&V}9Tsd+^BH|D&P<))s%xE~cH2{Q>FBhOK_d*nkp4tm^6UL40)`w?o51vcHp)9~()siAQ5&>;Y6qHauaI -zY~>gXX82Gi;t*Jx>I}?dDSxm96DGDJIk;!22H!k%L}%V3^LjNQY_Y}l%ERG9m3)By -zTp}jVT(8rDpLy?kQVGghuP1AUvF|?tz7LPa2^YYpdn+2CTr>b+7Q&pox>fvL!$6=;q;tIEPUqfN|CvMdZ95R(h*oftG`_V`)z*xXSu#YUJxA}99m -zSl-oXBPT~Xth6H@G9;;F6gUm!`QS)w_A-jeqwk)b0F@&x?5zv%*+2&;hvq9ydVUn4 -zB#OUxl%p%TsT<4AZX7QhZN|uQnr^)LfYIu7sWZoU(o()s*7V8}HJ;}ddK37cAk$9k$~oE}lFCuWRJam>Ols7!0sOH#ecV4j}BQxPAKOwvWGbFf#cN2)#9~Ma{S*X+FX|8K7k`)va=_IYKz}ADG7UASbzTNe -zQ;vY0ES#na!Y2097_vI6!_zc(;$88DL(nxY!mzST> -zWAE;Bl!tLh|5n+IWgIGOZida3l*y($WxDl^hb($R70=Op7374)%s^nAm@KKnj^8 -zj_E0a$ssezS&omK2&X1 -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 -zVZIbj=jzBv3mxrV+ -zk(nte9+aX!IpnD71w%mVRA7z2#4}ANYiN{Y1|Q{>66KyaN-Nzov8Z;-YUb^uG+Xj% -zV7@u3num9NyJRvEBXAADY!hC!XnrZlq|_ -zUG6;axJw(jmUwCoNbp2L!*eUR0csne$?G=S6BH&smvHPwnKQcbl_x2wG@)=@o| -zs_rz}2zz_M_;eD@}uV2@ckb -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 -ziQKzfkCz@5&&H=R8=z#`P57MHEKds@k -zOioUCx3HPY9ukyHv$I`EO;jwUFI3r-eO+tM6YyH7jebNMNuMHH$)$mgTzKj;uATI5XCIXykwS|%&Ujam -zyGALfV-uF1a@tb;ZE=lUAyueuR)JMOI$e^?>iZ=}mU865wxs?q -zEA2=zBs*8r;un`30?jCiq!dq@-7D>&ACa2w7gu9bE)>tudXFSQwQ{rnP(RfCFNVT8 -zrShYFGkZO;Fyw_Poxms=-N`nLP*v!&Np -zEmYxbZiag~GVQ0Kx}#ss0xw5duSeE=(YuAM9LfQ?w4@Qc?d52`Si_#VFM7B3{KgIh -zGta0oX?>p^B}r~%r=kl!P9rmQzf9B=LySE=RYu$U*alc8ht_GRsr4d7$j4zRgnEG} -zA4eNZv%dHNA4mT5uzXtQ<7lm|Ji_@nt?gWcYJe6iXvEpv*XiVF$*o8AJ)y8DtxZj{ -z)z@Jg7I`#fJ@T)i&Q__ -zly$bJQ`be4i`lG?iqdts?zNuS65??|4?(jPQ4Q -zTCKotmI>DmRMD3AJ|@zuo8SB$+p7izIO={AJpOfbiT0g{wO16)d6Fhl4LoKAM+2NL -znvU0~1}7@IPWG`Z;@5)5>Lw-7k@s;@{y#smY1i67N6QlQyo-TKSSjr!3e!#(b$bnM -zkcz3))h0T~=_LKK1QF}yXmOBYujTvZgvLZVkh~b=$N)gD(u4IlX&gM$AX9=JO-3Xn -zNFH~RZ4+-bueYvfZRvNxs#okNR;#=c30IZ9%j;os0&Siw@384hoH-$HyAr;W%x~qD -zr*t9O!7jwKtDwhf{AM1g;B>Weztt5qD?_iK%_FchvI@uB6{r$%(M97cx6&_KIIMbX -zM~$N^>Jb<}&ZtPlq+x>PhDgg7p=t5<+L+WK2a+#SG)zM~GQY`SzroTdpqN>y;DoR!PGOOf7 -zYi!n(<@vQt&M|7FV#zS4VP!|l6{QJ$!KZ;v%F;mUA^Vy8Dl2O0Sk6{ymFum$*Eg%E1hei{Bc;k_S9R5GS;g4lVh!`<6B>lJ -zsp@#Sq;gih#jMV~=<>JPJaSA`M}BVA5HW-b$GMU|-mY8!$wpd6lai(XsOt2SMHZSx -zO($#jb&caay7|@B)XK@JxHhw^p?>UaHCrR2mQ{Bo3aY%@5pTEZPFGamiZpLAxBN@j -zHgZ-eg@9HpX(7C^URWC)p^~*X)b*I-cEgRBC-g -zon+bFN)WX5F)h?-MvrLLggROkqqQ)hN?%#{8?QR5O7vdM>gWurl-xS%S;?%;bsTL$ -zq242{uC~RI-%Jt(UoVs`;jO)@~ZCRjJsbL5#tgyVc^`~5;4#-rvPo08V(T?{y)~CVb`*a0r%+2~i2D}Mc -z$L(mIJjs-8;52k;&|!yR6Y@>;7A=%aX`limKZ_=#ftqg(4-?GN22LZtlJyxAOmSW1 -z_lFIfijItV84gY;%*-;kUUb#g3RD>(OKBWN3#gCp8Rp0a9+Rtk9t1S;%h)DN2`1Ub -z?3(5mqPaUCvwTrm|DvfU{Y~v~M`|9G#;|bpc64%s!qo(_Mcce^#Xm_Oax&b}Mj^3r -z%Nmjz5?C5HBz@F_3~8t=R*yShzffcj^8@#OsS{e1$UZmIXh`7+Iwq_ES|Cpuv+IFlcwYQNhP)OjP@?IXY_G?QBFU_ -zP5WX-sR7XFBHAp7QcfvjuD`5_3~d&onIug~M5$d@(;pYDj74xri!SN@FTZ;hj3s|VuateL3B(nwyPrP9K>os@t@s -zL_W&YoJz`)W~{^udW#F*F4H^SY03zo#CMF&RW^s>DKF|SrE!xno$gd*wVYKG?$$+q -z*Jo`GO5dT9)F?qMfa-e`tLcL-+To^pUyTc`K2Ez?CD0Ecw7!|3&Q?hzkB>wALX9ia -z>Wy`Aygs01q9c6(1&x`v_ugbMVY_0TQdic%TV1fk9P5(f$3zu4Bp0Wt1`#sYH0uJ? -zf~qqO^3mg1gkcpL?xu)uF=l^Lr=zqolC=V)*5oqQ^4D4_(V=^~Ev8b7DJzC1seVZR -zWH+x(G*^;T_GwDKO+t>~JpMUrI5>el!PMrC_2O`GpDKeU9x5`IW$QuY -z7gCznZlTtSEttYusM0bI*sq1tPWt9=tI8mFliSu^t%yv$fMr4aeeLn&;@=oQXQ>69W}qt0ZOG!cOkp -zSYr!itR@w-jIfQ<9^;g6+o&nfE{`Q8o|#uQm73p@HaV4*M<-l0&=zm`ZP0X5 -zIqs2oV^?LGUB8v8Xm06FyDnySXQ`b+JE_QNUuSjQ3?aIAaw-PKX#s~v%AH)8k)Lg@ -zzg?!Lnb*k)$H3d}YxR03btx(%zjSh}VT$%(scN>jERC8=9g#B9I_sF&Sq-6FG-$OF -z-j$#2>?HVV;TzgXmj)z-SV?ts991eUg+XPX|hnw -zZL59~U_-l-u}aK@uJjQ~lFY7-wjOJ0*2{j_YMHNeb!4a_rESG-&LE9R5LUY}Cetu# -zGY4#Je6^b-DF$yr-5t4Gks76IcSI_QFUcuRm8It>yUH2XR&MU@G}Z1f9tV)_+M< CclRhRZe@~*sh~{X3jVh+Eb(PmwKqg$S1k^ -zu!j?aHHpM1cauL#YqqCRPYHo6Bu(k5A(vX;1Y%LuJlj)W8z%|%P){eRtfmI(j0!SL -zn?5qo3P_Qtgjsi+6goOZG&jZRF14jr5T;1d!aV%@6cSfw8urp>sur2_UVOM-u%wq0 -zBl``lRrg3Z@4Z7qp>dW*{r2@$Or_qGaY-?ad!vKU8;13E2J1i`D0*A1g%a?a-pH3y -z{M6~g2tVHR@59CF8J_IpG`4e!nxXFIR5O?QX!NDN?nWP{ku(JAbx3Lxld89{Ic%3y -zWwqSf#F^=-PHdo}&F8ku%FW4$ROdT43(1QD4#rZa01cN|3|DEO3N)^$y9`trrG=X{kdKl) -zbZDRxsjN!UdUGp`&h=5Zs^uUO4^7QMPMjJqd`sDQL!XkvUwgmO6rE!#(4=v%~eVjN!|q=}JW?G0jQR -zzC2NO8gOJ<{y6Oe?1Y5G{cEwC?ANT&|6H0B>qL9ethdQRdVg -zss3A8nmW>vmQ-2`>Xv&(U}w#{?;q(@mkv-puRR$Z)LG+P3EHcK7!Ty%M{!CZm*CjAX}*(%4GxTrGB~$7-*+^?e=+|Xxn1h+Bt}LoLpQ(nBuE1|Bk&7~|#;Q6{kr$2C -zuvHnS4OGYKMby|kV^!c}CuKs%sfndINg1cds|}cC|JPjQIO>k%r%yRxzP)mmZkA|l -zI%Fw5VkPNJ;Q*7v9a%Kg8n9l;a^hubfYI>544+Q&KP<~ZO*4$lR%R(qtFo0k^!ION -zOOM8ar}8;cXP^Q|$)OZT+;}vHYc#q#n&ZR=qPQXRa&kvzjLt07uEb77Qz4hOAV%8< -z>r%X>rRA!ap`>4x%Zn1trCdj@+@x*JbH@~gvlmwMcG>AxiwCU7>G#0n6!M^anA56T}vXIe$e~% -zf#YfVrOq=&0q^=`}3U?FD(IyHGTz7 -zTW!}T^{XZm3!M6Ce(&n>bp(kP|SX{1|X*(dO#j&+OX -zHEeBB6)$RsX -zuP!Iagio~R6PP*~Jkh>cEB#{4yovTX>RM&}Gtp_Nd({=km>VU>+9B9fo8-ABN#(BV -zBqvJONX;rO+axDi$Lgoz%)v=cxQ{$ykhq_f9OL-B!epK)b0t-%wv(M6{yLW10TL#8 -zWSU8S+NmF)Q<78csnI&Oc&4;MuRSF5(eRng -zQ=BBu$EvgVVv1xTj+M%_rxJHHB`OIiQ=JGM$6-P=dn(@{Eso9~oNAvVk3HHKW~vjX -z^V;n!(S%R4*J%1J&J3MK25Xi>-}m%1&o%h}I5*9S<-Gj!81ILi_Bz(bMwyh7V@1@g -zc*s6q`tmq);UTAkuF+I>lBqu3>Bh0vO_{9eHqP4ZAx`@Q+hLK2rrcQF7mGCrU4oO}MSx -zea9fxe*1(|+3cT9hngszQldFG+ukkHf+SPsVW)eL44z^N@bLWL0YDBk4ms-6`5zx`Sv}yI>gLc;{*k2jOo#fw$GoCmzKrTD{48v -z6YQ@Fs1Yb<*y~scG{3pcd()#~pdP -zQrqOQvG16clWtCJ)csLUID!12Sz?~uF*7I46U*k0SVg@aj1MR?^$90danMR-f>lI~_{FKu~DXUSuO~Q8l&Fmt*;mAT}>3IQK{!LF&=5?&W$AKz8XH3k<%FWYi5w+@zAHr~2w@F2&sgebJr;asz&0Am}p{6{_Y*|18YhkYn-iHh5 -zs#s?zD~^SHzZy$VV)sZZ%t{+!k}1mFmw6Ig!#K(QlNOR&8fHtL-MP?d$}!vD-PHN= -zI@Y8b-_j#DTh?Nk>7MT%`(9qF~CSmZx&`%qVP|q5Uu^KtD@(6bUBVaD`8U#P4Y^oa*cobq_Fo%HX{bT(hAef^*K(Zkl6oy -zi8}D*i=DVY9_QIJwAX~beFu3OlN*t)a>4dds_#6iPsT`@0IsF^`Q}OLo+dIq;|2Ya -z>G{N6lc`YH_{&fH(-cGkIIPGC(8DxApJWPjjXjpAyQ9b^jTV+_ny$#^wyJQVskFrAwhFSe -z6HBNYa{dMWnU6N?jdmS8bDQoG9IozK;95 -zjLa{|jZXQaph8-6{<^`vt=)6y`x+1m^8J} -z_Lgps`TDDF>qmx+b5`(GI+mPtVuceGtYcMPZt9+vpQg&~>8}E2@-dRE6rcN_abhZJ -zx?K*^?R6R1xj8CSIU_wU7pnr6`LDXY}J=r~b>tXU=J6V*2DTP4lE_I|?m!EK%Qm(++Aw>~>1&nA?1?p*Bz -zmDhRo(w_4fIqf94d(vatDo@Q}5T-AiyV{8hVpU6meMYY|yY$1h-HkS~b*<7vD}@pg -z%&)6eXLO7ubHo}OQwgbZP`HMSP<|`TmacIUIF=Y^kN}w@jw1nVRCC8W% -zPjXYx(FwfI!gYeZ!Zts{A)8kA1>hMr}QB|q1G)`_gZ -zdAsp--PH7a_4heiUUO=l+=16P=1F3yj@1v$eb&Y&Mv{d&{;U&KUiV3aB|fR+G78hj -z^plUHzuPs*Fl;~(zMeFcF@t*U;p_QOd>d%+wO$PpvWx~N=RD`*qa=2g+CU+dbguzS -z;s)|XqONo~c^jMrlB&6U3&Y)~7@I6?!Mkd2;WmOZ9ylvJbh -z)+#chZolji`Dy97X5D&a(a|%WrcEM>n#sc(iD3ep?U-8|op=|9wVq*@yOw`TsfRDj -zm4!`@=bZ8Z3CdP&Or)>xuYaD5MWFE4W=$mu=K*P>Y`;_V%@j{Usufp*@al7yDIi(zeNG^=7A!qhnPnUXo^7ZI!vhW1DH@G+I$ouimVxq1e$s -zyti3pP~#nJBP(rj5(8DUHDSe_BML?~mL$2wskyY+BkwStQMp~TMV}-cKKsVLvPIdJ -zNH43;+sd)@qk3*L9eb0RC5wdDJkIhxJ=!jLU$<2yR4Zc9cwgG8%#-#xQF3#@Hpya| -z#nJGS7-UPKa&45v^x5006{9J7P-xDt#pD|V>ClvzFF{|`AYxeJA7z)t4@c^a{DL(WcpoumOp*KD@O -zn6)IDk9RsP0=4v7ldXJ1$E>u1F{adBC#15pDE|_4G^&%PEzt~m-ih{A`pF_)(}12o -zq?MEg`_<>2DE*@0a%{}9T~4fy8Nf%GX1kom`a@69SLW<;;`E2&r5dwkmlNizrct{X -z#+r9_IgRv(G-VRk%kEZ#p;iCbwzS;sB>1ysi^u;=&x~9Xyj#PoCA*c(TJ%9jwtcs< -zOxi-Z$L2$N<$JDKwueg;J?V(5>`_INW`YIxJ@%;Vp*d2T&Do=J#8xOO1*i6?iO>=! -zTxxWm6GQ7z4}hM&B5PBlYPo09V19(dXA}&X8k^yu_z&A4WiWw`;?gc -zL6ZCJcjSs)Q~9y<^V-1dvQNmehinPbSq=PS%*6dp%X0i74Lm8MdB|fb%9r*#!Fr4g -zUL<1N+^>|^AJS22Gui{5KPZ5vm;TV*$k{esHL+Q&y1x2=6XdVc`UuZy%^4q2j+{T> -z1ar9zqixNR9{#Wsvh1Ket2FgAI5M#~t|%OfDjO6aHx0C~wvAvWvRFT49Mn=j79=;- -zaPpypHactw8Ez?4j3 -zBf9XAM&=r}sSeoAL~1(D*Vep6)W6HU##7Qx*_KFS4I96C0~x+6{}S0?tK4BCi0Os8 -zo>nD)U`Sx{4m*vVXgO%~$l&rxe^6g{{IDa_P2KL!*jwwUPmprfe30|&p%o^;7y78Wb&-R?vFxf^)MoRnj7PsfDT6X(xNeD-rkXp*f -zf4M7+)#@ZQRyNk^ZS{#E#;aH&1GW)Sai)5)dL33@t6T1Ak7Zgak#M$-9Sxr~IPk>8 -zX2|(s&GxH@QU&I$r$U`{%DdELsHw5%xUi<~{2$R!d#zQ^Tv3vXBkX+=+M;Z&Eh&!% -zUvSd8Dp8dq+fJ(0ll?2xs@HVvC#hVTDYb!>Pf1KtpQz@|^w6;@UW=tXsb+c~RPA4R -z%Bkohg(3bQ_McLRu2rWh{^q+=YS(0DM7fMOE#m+r#_&)d)~kR~3!ddHy}I>5QXLPQhOxKp{{eNFi9Eyg~(qiV7hLl@ux~R8gp^ -zP)(t_LJftQ3bhn!D}*Z4QK+j>PociTeF_Z}!W6<48Y3P}ph6q+lvP-v;pN};tv8--+rwhHYO+ADNW=%~<1p|e64g{}(S -z6uK+)Q0S?UqR>mBw?ZFgS9n6w -z>{NJOVVA;gg*^&;74|9YS2&<>P~nimVTB_KM-`4K99KA@P^@rL;grH@g%=dgD7>if -zlETXhuPD5#@S4I|g>wq8E1Xw&L*atLMTIvN-cq=va9QDPg?AL*Rd`R~eT5Gct|)w{ -z@R7n*g=-4e6+Tw@MB!6~&lEma_(I`Jg|8I8R=A;XQ{fwhTMD-o?kIe#@SVc<3O^|P -zsPL1*&kDaN{HpMq!tV-yDBM-}Q{k_YxUw32K4bAQaRAbwNE)AKV8TfG`ja8iM;lBM<=^ -zgGkT>M1g1!17blOhzAKE5i|u!pc!ZmT7Z_I6=)6GfMn1Xv;*xy2hb680-Zq@&=qt8 -z-9Zn~6QqD%pf~6PQbAwP5A+8Ez(6nvJOBoRA>ctU6bu8yK^hnV(!ofO0Y-t*U<}9v -zW5GC(1+qa7$OU;|Jje$Hpb$&|6Tu`f8B76F!8Gs?m=0!unP3)}4IT!MfJeb&;BoK- -zcoNJ3Pl35$9+(dnfQ4WYSPY&9MPLb73YGx_mV*`G8L$$p0;|Cq;09~KI`Ax54>o{} -z;5o1fYzAAvR@C~>HZi74ETkswD9{d1)1V4eF!7t!f@EiCY -z`~mKQKfzz6)clp!K`BrglmTAA8~6ZU;0MYA7jQs1;12>oAP54%pggDmDuNJD2~-AE -zKvhr;R0lOcO;8Ke2BDx1s0-?W`rtm$0EB^X&=A}Y8i5GV7({|5APPi-7!V8MKs-nQ -ziJ&P+0?j~k&;qmstw3wg1|);FpdDxrI)IL#6X*=OfUck$=ni^-o*)JE0=+>WkP7;O -zexN@X00x3V-~lig3;_>{DOcnZt~^T2$t04xNH -zz+&(;C<05sQm_mdupF!a&w!O+6<7_{05@0*)`4fidawa(1kZs@U^CbPwt{V7JJoB50L9=WI0a6F7r+_tB6tbB3|;}Rg4e)V -za1Oi<&Vx6=1#l6(3El#iz-90@cn7=--UIK055N`hA@~Sf1=qlJ@Gg5SXJ;16&Y{0aUlt>&+c4oZR2 -zpbYQ=-oOX=0zXg|xPSx70e=tx0znW62IWBoP!WWHN}w{R0;+;)pgO1lYJyszHV6fE -zKwVG|)Cc#01|STCgNERK& -zHXs?a1?@n4&;fJ=oj_;M1#|`7KzGms^aLrO7w8T8fK<>I^aK6D05A{?0uO+}UpBj8c+7RP4E`D -z1TKTO!8_nx@E&*{d;qS155Y&^D!2x&gO9-{;8XA!_#Auzz64)^ufYv)6MO@1f!p8? -z_!fKzz6U>mAHh%HXYdR775oN%2Y-OO;7{;Z88v@iIw%E7gEGJicmp5c3;aM?-~tXP -z2mC<*2n0bO7?cMUKt&J&DuK$N3aARIf$E?Js0nI;+8`9v0d+w=P#@d}8h|hm4jO{{ -zK_d_W8iPpC1Vn*o5CdXC9Eb-AAQ3bLNuU{M4qAYgpcQBh+JI!x7PJHHK?l$gbON10 -z7tj@S1KmLn&=aJ9UZ6MV15!a>&=2$n1HeEq2s{7=gCXESFcb^}!$BGt0n))pkO4-4 -z(O?Y71Y^NCkOi_q4#)+0U_8hN1)va2029F^Fd0k%Q^7Rw5SR{TfSF(xm<=8VkAO$P -zW8iV{1b7n60Z)OsU>=wc7J!9d5m*eK21Q^ASPGT_1D1mo;2E$ItOBdS8sG+N!8-6P -zSPwRUjo>-332X*iz*evgYzI5QPVhX~1$KiyU@zDQ_Jaf9AUFgLgCpQ5I0lY`6QCHJ -z1gF4h@B%mkUIZ_Jm%%IGRqz@(3(kSp!FlioxBxDKH^E!r61WWB2Je7(!F%9+@Bz32 -zJ_H|utKb^A4n78-fKS0^;B)W=_!4{tz6LkIP4Er41#W{o;9Kw=_#XTKegr>(pTRHS -zSMVG79sB|Af7x;m)zy%yo4)}ur5D0=mFencyfQldl -zR05Sj6;Ksa1JywdP!rSwwLvJT1L}f$pgy<{Gyq{B95e*?gGL|%GzO8N35WvGAO^&O -zI1mpKKq6=gl0Y-i9JBx}K`YQ2v;oPWEocYYgASl0=ma{0E}$#u2D*bDpeINHy+Ci! -z2c&|&pdaWD27rNJ5O@F#21CGuU?>;{hJ!RP0;GeHAOnm7qrn)E3C4nPAPZ!J9FPn0 -zz<7`k3P2&4049P-U^18jrh;kUAut`x05icXFdIA!9s!Sn$H3#@3GgJC1D*nN!8|Y@ -zEC36^BCr@d4T``LuoNr<1}q0Fz%yVaSOr#tHNXwlf_30oupVpx8^Lp66W9#4fURH~ -z*ba7po#1(}3+x7az+SKq><0(HL2w8h21meAa10y=CqOYc2~L62;0167ya-+bFN0UW -ztKcxk4XakZ#ThI=)2OU61&u;unMdOYk(W91?#}GU_ICXHiGBCCa@W70b9W~upR6GJHhi{7uXHV2j{^X-~zY^ -z-UM%fOW-ni8@vPF1@D3P!3W?9_z-*quKEM)Ln^-AvBxo&9P`tI2UANz#(+P~_zao3sjt5*|u)V$hW;l+(sT=yCH -zihEYAGTvV9ChkvsE7fsLOv?`)mY1KKo>5RxKO<*iXv@%&zasTlgv&i$kE;@r+Bdmx -z2mSWXOC#;8D*D>rO0KLC^j|Nka$j?o%f2f=WBi1SfHQgP&=r!*OiGyPv3~kx6WoTGGZEl^DmYosS&_1o? -z*^&2d(@Vl8+`FW?%YA*n<6XfW5PI3im8GA0r4OEHo@DS38As -z9Ok|_x{-H9AA4J&JFwnMK9zlyO!g_ad^Y%0E?e^ch7H}x(bM!f*Iv5r(|zIjw2ys+ -zPr#?(Gw?b10(=R+0$+n0;3oJ6+yb}39q=vq4tx)O06&7Cz|Y_p@GJNY{0{yAcfp_F -zFQ2*R(|mPM3X}$AfEVxvKEN0FfwI5_98eDUg8&c+fFM>$)GK02ik)Upd;u6I)g5tE9eHggC3wKNCCY-Z_o#%g1(?1=nn>f -zfnX4L01O60z=L2Y7zTy|o5>?MN(UoB1{eiKgE1fzj0NLB7RUxUAQ$9;@gN@*fI=_< -zOazm_WH1Fx1=GMoU^0d0;+R02YEpU@>?a -z6oDmRDOd&!SPoWzXTVCZ3akcefE%m@>%g;MJ=g#?g6F^{uo-LtTfsK49qa%*!Si4j -z*bVl8yNNK`BrglmTAA -z8~6ZU;0MYA7jQs1;12>oAP54%pggDmDuNJD2~-AEKvhr;R0lOcO;8Ke2BDx1s0-?W -z`rtm$0EB^X&=A}Y8u=Bg`SVL0?7q{nowu*M>89#_6^lcUNBA}NE;$wU`B3kQ#bZuK -z__g!;=P5U*TD#Z29N`!29xgfy>xe>Q5DA)qC=d-|KrDy@@gM;tf~J1ObzV;LYtUs( -ziGYN7)S-Kac76M#^c>cwU(aF59s#LkbZEht(8lQ!kt8>D>yzBAL(gGtyYx)%GswzL -zq5n9YoZ78da%$?Z)OLNk^y*vkbFW@q+K1L}Q`eo<`HFANnXdHQ9LX_AG5>kq-#2zh -zP3@xhcWF;A|DWGeQ`&Xw(05pBhd%wgw3E!1(x>5w*T^+yh;ChkS?ET1z7tn -z|LaNr_|E_KtpE9_lCQt_tp6eHj{5Inu6w6Sp=+j!s!9aK(~~T&l421#f$z=F(okY# -z!GO%dG2vm&ByG30=L#l_C@9PikFxhhW@Y4zE>!&tjcyp)jNkuLpfd7R)UrEkX{=n^ -zjLXm?J>qdHTZ3sN(aK%FMJ2B=$L?$5IcXw4xWCHGe_j@ut3sHbm0OSz7NL?oHY2@I -zWvWE9F7(`GuTfP0dBy*}Bt0WMY@`-{>#A`6Z>Sj9X5fE3EZ_aan7zJ%?!4)9eEi(g -zx_qpSol0Wlo~2(ZxkG2@mx}+0%->Haxgc=ObG|+;|Gq$R3AF`<*G3lRrfS!soYCP8 -zL+daY%Fjp}Ii+MQ!-byP+_RG=`&3@jY^9f<`;BR6qUO3N$^)u`@Yc^d9X7H#&$j7IQ9_(H>wX;{XvV4_&kvsac -zN`7_Rwd&Q=9mQdnyvw;4>^$pJ&Rtx&s#iJpoxl{Y0QWp4mA^Z8(}#M})z4q_E$a@Q -zAK~Q}SMq_A@-quF!iU$NW@D*Jr&5zSYD#!XEp0e`NYrqffYV(Ko4d2CHS??Cc7mJv -z4PJOWsF|P8+^_g}Pz%4OUs!lJu(_Ym0<;9JKx@#(ulR6avR|34{u;mcY@ggcrDq2< -zGVZePU-TQjFyctEpU@Vx1MNWv&=GV3ok17S6?6mLK@ZRqq<~(aw_kC@kv@J4PXvtg -zxX-{*1uu-=o$43A@b2VPKcO$^2l|5nU?3O-9sq;E5bz)v3WkBm~0hwSd7zeUIHpl_FAP3O}$gumYVJVTQPuAUMbxHAuV)E{NR=1Q$ARwpjvj!yl!?Hh?+Dxvx-)fo?35BIk -zuBVwSyWeV-?Dffp`z>EeC=`^B?zcK8`@M4Reycp$=ap^`SY1;>LBHg5wwlW92dt*a -z;h2ofPiiI&T+n}5UNFyuBl6V)R#}QK8kDW2$<3wgL91D+FI2K{;lffW-fQQ_JNM3# -z`UkC4x8GYrTh-H^rm~u+WN8mibJ_VIoil`Y?z0M{d(6sC3r2hqU%=5x3;@y -zfIPI`%1e$$r6v2 -zMk{yr@^saYhP^(&PhRci=`PzIwp=c6BobZQ+f%Av5Bt0^Ir^|wn&J=oq|X3P^Z5D> -z8B+0x<$+3GS=HOqS!O+A<+&muxV5pjr?+`62utpL#HvW~@gw_DtG~-1Vjd?4K%Mfr -z?!+h~{zy!YRKP6TAGPvQ{IQT^_wjVs4kEFbPpbNOI*Ru(%bntfPOAqrmywTIxh|F| -zEHw`#wURRfJ(;rVG0TVG^tCjraF?tF_Lh{aIR^OCRz%QAPTjjFbPA-sdmOI(n -zc`WLSN&VwipAXZ`VJ1;+J1rP%{`6OHz4aTJ4&sLXYZ$y^9>nfDvpDJ5L{a$2t;h(Ke -zjxXXj;&fd=jtov}rAr_6hrA)#)!J#R-}8rjVLAP0tD`Fv4F=*HGYjRSO%NyqsmE@z -z2D_j|K=!wHn#stasadJPXu#_Y1*G9WRu?&^Px{dshyP=>=eq$|NGdm5L02#u3COl> -zRu>nP4oc1_cfP#3*~&#@#bo1FtDSV)Ze_a=o|vR>K?Vc*8OYVuie%NgrCR_(HSi(6rbr-xy5Et3M{^%IFhDVT8PaNF*ZHK8H5)q4smyy7J|Q -z5?7Y&dJfgf-B7&pt>)4?WM|03>VHbk9FjF=at8cBTZ#(YRZ -zL&zJHhUc-YUfAq4ebjBn&#f>jVb(-cLbn%`#SznsUa)$j%EJNKcaf{9JoJLq#1)FM -z-o>gp>i*`*YQjfQ^}&F#mnC&`CSNZneV!7@ei4R`h6CaFZeN+)`J0uYeI$jq!&?iTXY -zE2{F*B=O@1I-WOh5r5PNuO__;s$so+uUa9OKLCvqCXL&SDXb=~tIW7XEg(&SKrnz= -zE0EK#(qkYT2+6k(Tb(@I3aVJ|M4g30NUz$o___XBW^6I9mziSMP=h;Je$0XFd&DZ0 -z1}iO7yt^e7{5RmfMtWq^DV_!pRL(Jo`*HD69%nVE_XDyh1=xk5c+SiRe -z^-AjNR=<=0GCS;bs~mm{$fDQzNFW*!?*~>VcYr=ZQhYb#>~fa}xr!kCsO3&?Saq&& -z47K>c8`fY2XkWd7KE!}X!JCRdVYZ9kw4(e7%k6IhXd+R+y!oaTMyy!~MK-JYrRk~# -zqJAHIZtO+hw@^`j-o5rM14rndA1;3kem>mFX)1@_g8kKc9ZB-ElFZ&VunsnjDX})T -zayOHnZ(B{&n9k~#+*+o;ZTJdyUGgw0>HfDB?7|c8ysg+d?3XidGwTQxEq{kWBkeNw -z9czFK>k*KRab78(ova#;S;s&Ih7QNxK?SNbq`Yela09});rqbqh=EcdWDv@lcVQ#= -zQ#QYAUE~S`vGUulNo_6J@9FUU{`jn6`LgeOE6WYIWc_CS)74t)xao?9pk?Lzh{?hA -z8QFX}1an3K-}+x^!;<&XQ%mIA_pBbtuvX3JQ(>)lUj*r1YLc4m;o%s(-sgR*yUQEHGB0|c -z1)#H#JpDd2f|2Em_pMQ`Ah0p9XoL5HU;F`?x7P~bc!Xv1US&&2c-Z^^4L9AVw_*{w -zc%QNvtiNC%tPla3Z(-M@Xg@!qDDP4Gc_zxOmHV+{P+FEAMyHM4X2$75 -z=n_^xtx@O8hl?9=q~He`-iRd*1~I-hb5onjv6YImBj5xyj_U9DoiCeZ4f%Bz-!viw -zVU#W`-z5cIkuVzGGILH@UCj(R -zS&>#Ef6fNI&ioKN1>3P)E#&SG8EjCE^G@f2@ueUB7jJCcO1{(EVdj$Z5rgu>y6{#f -zFc?&11zXGMbDk_#DG)_yAODDHBA_w(_eZRamv5ZB1OwjfV>PdSx#(l7pZbc%&a1JL -ztskRV0s%AT)^h(p6lMikh5vqRU775QNZ-E$PBD`Ph28ykxK+(Y&ZWTTSO0G1Ci&K? -z$~wkRj3G*9P@GpX2- -zlpudNh$v@&VolI*&-w)ML_5pIPjnfWRb>ZHYx(9AC=z9L3|MIPDV9Y|kX-z!b$JrL -z*Q>DglB*J51|-qXL_{APtvuls_h;6nF7Qb}cJH@Z%Fa)%oRk1ORrMOg>~cv$yg|;O -z-IqVJhVYKhklbj4oK#nV+&MN`okyG>g(j0fw<=Sj0M0)cLH2zPQKR57gPz76whgmI -zW1tA@3)~`*N92D=d?*I}k35dcoN=idP(>Ap50q&tn}6`+u(}9dOg{TU^$QGIBHQml -zS}P8)TByRHTz0@J$3+VH02rn5){`@2=K;&(p#_J!Vb-&m@ciKeRv}2kD@g~f-YLO| -zH$KDPLS|%vwdxM4%N)ZZJ$w+QjU|=O4qBU1!)P$|@^dy=xw8I{YKkCk$$IqedxxyN -zR2(p6aml#^3!8EncM1HH04PrfoF-CxSYKi75z|uj&69fL1?@SEl2PP)-_;h$Di -zk$XsbJz*Ehi}!jm-1=Zxiq^ObiC^+U{7&#!2to@f2 -zR94^fFDs(j(EXKO2c*YWRv#Be6A1Hx)xjMDgc7Ro!hFuR2J+IPO6ZHPkoPDa4j?OE -z?!MBkkSqqQ_xi)iJn{6WfRU!fCnwsuTg%im^dL|8kn}D8wuYyKQTfKN?RhtVmwuxd -z!t(z>bsy;Ke_TL)DZt9D{|}rIz+@l#kGi6GoQuE3@A1VH?cn-#;z7TU2WS1)Xcr{& -z8}9r0FCr(7;R4S54pi*N!;+k@k;^FHN4#fkJhQK{Wqx(M64Uuwc|Z}EqFLh=zRMFS -z=x{mmwbj`L{x%+=-%SL`Yy3g|x^dkuc!XIrguK3h`h+1|0d(jegK(oiS$Vv}0_n!b -z+yGf7hDX#wPCR9qSAke^vYoqC{1id04M$aG`RJ2Ju|GHfe|U(9IxtvON5;2SKNl{4 -zM18}K07s+&3I$yubr8-ID2xZI1OgaGqhK;fR3f48RQo{v3j@rB@d;S`&-fykBH|X? -ztd4TzJ7^VF|HXU;R2Juz36k(Zv#Q;BjLSa=1mHqUu1lJCnu-d2LDhAu~bn#D?MUK_s1%EWSzuRoqdZ#jMQK6w^(F(5O!`e!)zIQL|V5LU=2P -zDO&f7RiVQ__=^TdkiqO<2{It0zI0b}DP4qd#4Gbh!4M`)a>uVKwrZamer1V$nE1oL -zVsmj`65mU^Hkp7I?*LuFalR{vtd9GQ6;<^L%4#NC`X@R?>|)aJ8$JMfqVXNT!3|Lu -zQ(ujsO$$!3SgQQjHFa7_-6=TT7XdQuYwCpLrBhZ@Lbt#;6Ug}Hl+_WDj7d!i3qSoL -zC))#W#}L2D-|^d`igRZEZh4c@4;z0+BZaY}s~@*p$kDz~((m>APzgoNfYL2a6PSiS -z4I8g&#NTZ-+l3L=XF^KUHbhEpQ15oe2MzvNgC~!`*n}ZO*F9 -z!IvG+T2oB`&|tQw&JyE_#KK;$Y`@9MlTXiDB^Z{doIOk6Fo6B&d=BhPlufQWhvf`G -z#XHVnIZ=quo#VSv==c>4=}`n&En7)V-8JzQHxn{sd@-15O>Y}`47%$*I2Ez|(1rV@ -zxBP*?ng?t?67{Wl!!A!Dio51#yDNCWMCjwb+uaNy`y_KK2-RmMa|=}}59yCE^m~UN -zC@;+FwqdFHl9^&RaeHGCID1iw)hvE?s~G}80PJg3icQEQ#vL0G_RIDZyPFGK9a=LK -z5jve>H&yGK>$1r?M5VvWF3*hMu&YV#{bB-jH*|~D}BdJ*yqxRvv5mTLu@!##T -zang{9Ph56ajC@2kjwk9ofhWc5wq2}2NFr|A>w-`L>3!DKQWm|W7?FPb5#-Qs1^lu!j}(??cVfN5nCzJB@5|8sGs1{q -zAnb#eoHU5!M@#icvx7;vJ}r}4%CK66`3#W&hhH|NK_t{xOd8AFE!Xr+%T%@vN07WT -zX?6r~ACXA9T}Gq}zhAPOVDi3L4pQf-h$4mi(qT2frj7bEA;on#-Oh0WSOlHNl)17r -zpNZ(#A{tC@lfm?TnABZOP@C8Hhl%PlY2X(5+o -z+o&s_EXjrul(V*GE4k4UUuVOMs`}gH*a6T2iv98&n_!IwT@I!em>d`M5BfF!up@_F -z6+V5NW0z|DC#n-}*y!%Tn4?YXA`)348PkNX5JZ&a`UAm~9ZhVLA^o}uU58MuEpqv6 -z809n~7p_rEu|!*<7@FsE?J_$`q*J?|AhY^Ad292KGL79f%~Pckk^y-(nVg8+lxO=> -zf{b|^4K7^Tm>lbo(hRTEm655`LT)sKqaEecu()MS?Oe+nP4peF`a2%+Uy?Jj%%dTK -zVdl|VS$zt(`#^OH6mDv}9b#&R#U|9s(xu>$*XYH@u?U|ZVpC#jD{e}t>0kinm5gRg -zRC6u8n%Vv|LI{R4Ce+S}R|3&iHM5)8(OB3}Z-VT5kX-Zd=5`Z!*&8zkWP()IrZ&50 -zXU5um+eLH0dx0D@%i^RYa|4BgHH+ojxcESJnVD~w@e9nlA@K`a*_gNssZ*P)`iV%i -zIdVZ@Qm$zZ6$xhD-<&m2L3y{i-6@@%w3$|YZT%!E3TxsELM9yL7Dg?HWrX>Gj4f=z -zJk{5IiXSXMEWGwN$oxYKWQhExI4!j~Mx3KZOWTLn>X(@gZ#pf`Ea%U?n4XWwYRyNUBul&rv=n)Ksw>9PvC7z(p4U_xU%#qdm -ztb$C2jBgiAtk4az)WPEPZf#{XF*necW{x*ZuC2R9swSPEWLT5sC+N}vRV3Kv2FXgp -zajGb=bDaPQ{KRY0CkevbM7V-!g -zZMl&jRv53Ez81=2!J_mj(kQx)3~rS}yutd!B)1K(;1f!pHV}k`n%Tzos`}o@H5e=; -zjcx2sYEe!WA>=PTX0$N@ZD`n~$nFfNL9NNjYgv&QMRsl)aL91iw0SqkET7$mv?E?_ -zIPUvLQ|bMRr5c|Wd>E-Kz!g52p@>`Ch9vzl-0M?Y=kOtA|HLb_ -z4wp77JO!$IV(P$dF99g2f4rm(>O8BBm7&9p85o@OeR5N2-4?ry7WcQc%d_zvjmXZZ -zsjr+kao!A|9Rv8TXR4YUoLi`Re_Pw@(Vzk);XLJs8Ix-2r0!9-krbi~cxzkRK@SqFa-bcHi8Yp-_AF)? -z)wi)8vvRr(`Cvae{s`u|uDwxxUU`%sxG4z9=i21uUQP!)q9hyA0T~StCcmiz;uGYN -z>=GdVyCaP=fa*eX9_oN1AW}p?zJwun?x=>0!Bn1P#7|Arm@1!y$0IVmquqsYLm(85 -zpXksmzH?Hh?CfZJNJ#s|`#3mabhbNFj(5bos1NZ=N2a60seYVQf93j=Ox3Og%n3Lu -z1?m8SM6P;=Q!{i{ezdME?qqk?k#Fi`cVbj1rK&l+{9Pw>XM}5gZ>H?|+-*#@hI)Nc -z))}rP%L8~>`kKbeIzwhJx6H#cYUj#`uw6*V0p^iyomD(AGY2}`9n&>bY@V7sb&?d< -zI=Rxe3rmIp2+HCok$@3hj7}ns*ac&VzFFB3h_^)_3bW+QAFut0UgA7QWz{ACPHtDg -zqUL=%cU1!#lu=#n(oEv?Mi122%$+)7wiGQ*Nvu3J(kFlEsw;;f%DRD%uD6U#hJuP& -za!c(}@=d7CW1FDF_`fE^3;x6G*Ow}P0M6Hys^&mZyvO6}as5`R3X>5otOX;JUo)Je -zOD9743CfYR1|imIBnAFg=$Uw?butoPJ391nthygT>ug#{_TT -zS;btW*lt7So(bA{q)uV8tlLuy~gG1>=)d-#fsyHRW&=lc@BIwct{*~ds!aChn8PAJ{$ka&A -ze^?iyJ9u8$rZ*yXdAdKAKw)#|12cAaatbr(5iiY1*1S4tT!#GjirP&wh*25Io>x~h -zd%kQRVi$UNRD**{qRbVnFWaLmBLRCk97TZ;^I}C0zm(c4UYD8}t*Pp%h(UcHSWJ4q -z%-r*TIX_vypDH$4_cBZHYz&$QP>}D%=uv}tr}&`;ty6bIgY0Bf4z1+ny6!A9AR#f_ -z^Dgar8VLr%t;P8`QG2*FS&e^ox69If{)9!ku6EM(vcJ?)%SJs5i&N2qr6ZI)oqxel -zxUol8@rf@s+4ukyGpGj6T20Fq+Xw_x$M*lGPe)a3YI>6=*mu;hb(oZLR4(nQ`WnJ7 -z?Fmxg%d)+vU6Dp?-%xVm^jbOD+9`mJK|e;ylo&;G@%gz%7ajIvPHTGE9o3vJ?}b8B -zOuMU>QX4PqWG}m0l2__A+taJJG8po`0Ha*n+inYT3CrERZPLxy3zKx3nS%#QdWlzm -z>}?OBfXozER4Q3-t+2_1z}zoa*g?1)UeS6drw`6iSo!+!PiTqWdP#(VbaJ=kmNJXW -z)DV#%WUrymPZcQIhx^!tsbKkb5@PNb5|H@pZ+IAyJ#|Cl=YdFOsUTD3MR^z1pQ> -zL(meS9J`Qk%Ct-iDIo`>~=0Tm`()6bqnM3IUw -zN*vX1A+JD<1>!SvfZax#_eXgLVf~Bx0}x=MMg3VFVgnj^Z>jnDOb_9F64;5j;;;Sb -zSG&u)$eyfN^7@OQx31>yA@o0eo|b81zfjiXzb-Or3iO&fKy?p{6dQoAK#-ws01K#* -z&zA<+l+naAZKB138y<18Jmf=EPnZPc<3AEgMI%51f~*7W$w&f;)PZ(SW%Y9dZ4K@P -zq;e3Ps-;mg^@oPy*9}4et9{x(h!JX{AayX#<^`iG^;c1@+HSm)<3V%c0Liq$%AgE( -z!(awWcwaskY*R)T!!LG*;2@HNl!_sc2ec^l`hyA<**HXDHf!kW05-9u@Bg?bKEqs_c(huU4!&U+ODX3m}=*&o40pA(Qx -z_xrt|*7Nb~nt?;`-@Y1Z6MLs3)~x>4ONPL}MZ@d@>@&5-!|ZN3c*KS^22P(}Kecw^ -z%sMIVpVS&2BfLu;B69FGUddmFv8bBeXyhGMB`7Jwm5Q|Z^hbm_Oc<{A4Dr2ZxEt3whG3eM5vs_s*r5@2*K{on)S(TnoikS|2je;|9-*oXQ@UmZ#3r6C -z@9`iE1w7GL6~=ZQ35{q949M6ib}LCI -zR;Fr|NM=axo&t#;xdfFA775BI_4OIj2ne1ECk)kDZ7h`Mf=OL5ox -zqs&}e@0K1#4+a=g~gmy}Vw -z6Vj^N!fB8wW4al+4>f}Djhx1`r;gH*$25&N3dTgfo*$)Qposiy6ah2l=#!S$^7-L^ -z)fgV39N=V7MqbMdG`Pw%wQ@8nOD-q23gqz13)ez|0h`Q(Ssp4}TIb@;D -zbgrU$6<{_at^gjfMvJe|4oF_gGgrVL_y=<23N*a>TP?0st%A=agJ&@4nk$(W{rY9W -z47$qLk){j6oc#2+O`C>%U;r|0k#JBB>Fa>}pk&uE?#`pl!lKmsjK;&pE1ol&FKSF{ -ze7jDW(jv33;SJtkwvA`8UD$)ZG7rs*J?8q;w~ZzQ{N -z9J2!p$V~mAIAq;8I*3Bp{o_!Sc#@Jj9z{v8TZ<7&R8bQ78_$4ry5o^R)^)>p#-UXr -zAB<;Nv{cBMfKt=UP{jmf(uW4B*B_e9+BiXBJr938K|@CHbyBs;Et2W4=B*$sGo@N( -z9dDWjTsLLH{nZIu;jU2y&PaRKD8NBW*4SOrsrN8??|;2xk00`fwtjAo?yT*Vx{49A2XZYp$L&T^hTl6=V};r?%4jzm(&6RgTxFlR%ei -zu7SIN;{kc^8naqK`Ry7VE9R!_B()tZQuQQSys-T}lhnGP94Dbtwc`C04Q5_tlc6%3 -z8D#uqbx#=nU6XY}sPmnZSrX0I{6LF4K*~5K9jDNyTS><7Lo+ffr$BE&*-KNDp<=86 -zI?qe68N1zPDvRO+NnJjb0jbM~Zlh?7N$;Af%gtDSoT{7vhE_Euy=tKIl{@u>vh;G4L&LRvQ_1%HwG2)p&PT6>I9k0`IGq-Crbb@D;I5sH79pyR -zMZ5y7uwgn&5ky-&Kb;`~p5o2ZZiSY9 -zg68m^DxOYK{)k4gw26_esHa;p5|mA9*8ZTr&hmQY#2AK>J&TANVqY}Y?hqfpU7aC6 -zk`0innFT#Hg^c>?BrnfmG{k89vTrPd`<6=+YcrKw1+(oOgVBAn?W?fx(5ZN<-N~(0 -z%RVXoH>z&iPilCnGvq(;Z#&7JL+A*@lR%$YKdYG}!wS0(o@0-OYkcz99NSBt$h?1S -zjt*PhHuqd)2n!B!nT+wfWUhuFLQ+dJ0uYwDO2J1 -zSI;B40rWJK-8N6tg=*v*wxIFPJY|5cACtn9t*%2EYuTcq>!Rym9!2LPo?_h!PE$a* -z>pI)5n(M9WaA*JmYp+L*0{p_)6M-gy9*~pUd3NRX3}36RrTS^O@V(JwoA+IhWq?9t -z{uLl=g~Hk!AW9fXGNr2Fs}&(@eK-8SJ&@c+M&F=hM{U*L0F87r)1DiM2onD|ZxUL} -zx1(f%5-RIti^<@|8T0L8A|a&7=i9xhA<->PIXCJW>J7HUNcN3(4BFxe(cV&~+-R4e -z_`R~?M!UOiQ2~qS^Z&e2pGT0)RpCu`I~JOip#l -zqm%5GY2bhh*_MXH&7Is#l`n6y3-Fu~%E|?Nr}Y9Ium(dG*xikjNOMb(1$JAtoG&l1 -zdl*;Y6&`LoZB9w|n@Z-?-Z-hGyH-09GMqel&ZM~|-AfiI%tEFeMyHl6(uitU#w(4o{5TL_tJi|IK(ITW*HncpG{} -zl1vR}vop+(POS`nLL%9)tmk -z$k1hK7ZLtjmf10lTfe%D5wI`MCp(wHKiPNKMd)Q7(94GUv*S}eGV%_)joH(3hx#{B -zdEySuOH#yp2ZTI+2hkASC)#wm@&KGRbh*-paooIIooDEiSo@Ec8}Ev!p!)iQeqb8e -zcPg$71H#P8-?UnxWGqPKhYY?`nGu!1x);c*eWw0F?>`!t(p6Xp-BD1pN_8}%w+f@IwH&Xnq9_E*AC`wsQC0kkhoB(+qZ{BOLxjGoNnNYy -zV9NQjK(B~WOT%i--4Rb%jZMcxAvhRiawTJfi+M_(Ysxd6z8fGB(+E*APdGcPg -zsn$$)TVq!!@~U5BUrJyNFX`k>n&Mldc!{val?d!W -zs%xQC?O-O4t%d6`f^V*6ZK$tHypk>8928s!vHhupXU%Aerw~cJ<39BJO0k;}G_1OW -zO8i$PQ6u!R*dY)=QVPZ99q$8y5Kr<+(E%{y`1=@`imX|8dH@h3N`Jjim3K^jxDT;a -z=dAbr#G{nW?!4dbrD1Bc7+YN8XXYww0#FjUG*!H^{Oc6B@&TI?!H877P3-TB{_Hd! -z`2d2(R?es#(3szq_ajqxKfvsb=~!{U-9`3uX;A?I0U$x;gUrVLAoiacq^MLpXjf`U -zCVKQimVCp5c3aKC5y#QXFCWyJ2!x8q3Z(5r+ywH)WXMDI5Nt9+Y6*6Bu -zgi&A{j#tJvU@J@4sas0+X6!mes_4#D>yRc*mA$qOJEs8m^g32SBh}^WH3*J97`NUI -zx(WTkuO}Or)7JImW5`*=^?BY2)&;ug}G3k)KDjC^mJ<-nc&;Z$FT!Y;& -zl`RT7Z#meP;p}Vx_;OdiYe1sRVzt>|_p|tA>fR)0BxRzDH>frPyKm1zn~nd>_Q+p0 -zB(hNlH<-Ba`Le^ZjUaMOY>eKRkl4F7G8IZnWj75_JY)(aWa*i!yp6ZyvGR=U{$JXl_pZ?Ap31<ae -zf+u|*rBekUa~@@~aF%R&)Q&k=sYJqiPJH+9TzRvFN%^x$Rz3I@kEuos%kalkqEJ~& -z9#d=Ve2gf8?ojnUjt>P$82>om(aY{P%t9%Fp=o=>1A -z***&F+DirGr!OUG0TJP6>{MfG)_PAZPS+I$o -z$=yqQlkpsOuT5l0nnIvh!d*z)tbUA=Y1&)_u8&@_hYawqo@_mrSRhJH<{}mwHY4RG -zf_-)_BHgGrHE~-rk8KI|7W1fAinhR1giTFk2xp>Dw%pHlJT^W9Lqf8Ci*hsyw)J&* -z7r$-M;gXwwiZC}eY4}svBu(GE&E5FA4yuzV5D2JsO}ZYi_Qg~9XE?nlpVEpJO%fY_ -zV$}m0l;cS@hRB4c)e2D_JCMyEtNJIWCpy7_iRi}D0vR#ejH){X_|DuAsun{JI`MuX~)&$rq`5l63#{M}V5uWT`r!aZ{QGJP8& -z27=$e81-FuH#kghsF(KL?^OMc-(-plv<;Y3c-mDatvYGun-;B|GdYGf4;Uz>P1yYD -z+clAjMiYLhhli0&wXeu>eqn=Sci^{s~83sW*P@d(7 -z8k&DT1Cj-+s&%iIU3us?-?M5nL1qJ=1-9r?E`AoV)ezeDXLY?P;;nMGT>G3F5xk`} -zODVr7dk%gAhOK$ZP1)LWb`C*lj6|`P{*@m|tTvn01Mn)+r2Yjvn2sl+bF8iFKVn$C>Wo%2@QOOCH7V|nnz}#VLMSEsMTJ^`r;A=x -zeFfGsl0T-9Ekyd3#($rF(VhV%{ZhCCTY(i0%Ib4y;3+%Q>)?Eh9dI?y!z>qB#Lsp> -z(kS0Lu|p$QoXqf70E|{KvtyvWtS{7s<2VN7<1c^3pU2e<$dn%`L8z}Zw4+j4!D2tS -z)Blp4n@TiPXVdV<{((Y`6tHQaLUwW=8;FW9e)+qFc9xsI!KL7k0x5Y}truz_`m((a -zo(Rb&FKb#TB=##d`-I@j5wC!YDYy&8SCtpZ=2tYrO1|)uMc(kb -zX4gw!)j)$ky7qOj&F!zMmWb+JftK+Vw;BnhB8EVniC8Rnoxsi6SG9&htp{go9b6q -zeD>d2ZC1|R^I4H#Lk3#QqwpY$*K;_01e{pB|+cITd^?;txF_izk~lSqF9CrCZx|Gr^Q -z1r$W&(l<487?$O4+EL)}(ia>`oZqzjXl}LeExVrvn;xYB8?*0G;nW$O|44<(q@WL!vt3~ -z?SAHMh6@;yvUiLl%n2AD@y6ErJ@F1>K?@nr^xJnJ8U-k9z(z^wX7KR4R7H>> -z@X9ssqJ|6&yL{Qa3w358{(18>?BxVu+bf)IY$jq=` -z4mI#G6Py1YVN~79vid!Pr~>l(dkj`hqS@N^@-%9s@iW-E2c=D!z#hs)$o3k1MrG%u -z8>FUtTCUX7PA~z}W~!kZ_JBJzTKnD}wXB%R90D*mexj>LRi$RjO5aDrX$@x0`v|UX -z{dnkoD69MY_P?(#HXK{?iS3hD<|U|!vPB1M|B2F8?nzENMn>|?>^h*Jd -zmW}aWeE;-j^2S~b5<~a{dtoM2W>jW;ieMa?Oy*t@Oo;dQY0ZhopJ(pV+?keqnm+%s -zPq`O+jKkaseqg(R+Mz$t02@dMd|~D^PD^iy6x&?Y)|fyopp0N_)C6iz>|z=b}wov@SLU1TXvcBy4230f6hGd%jrh^ZBBkr -zzHKcB)9vgu?jSD-6wj(Rm(NcaprGw&@Rc7ZgazyE{y;0x)K{;58)Y{9Ikovbq_r$? -za97>?31k`bA;>^;R;xeMYAnpohxS0cKfk1XL{!*--5wulE`sry=`JA+Z|Y6tBjq6^ -z_FcWN+mL_d6;rHY__goHXg#V4!to8$o6D?^;a5C~L?X?M{4sq%Ax}c;9_*Titz%;% -zflWF7vBvhI()RCsM6uQ7e^({I3}Mvfvi|Q{z7D@V^LI?4ZaDvg51Yz25k)g>LL?j% -zkv)45jV<-2l$a>y%eS|E9! -z*tzVX&`PmJy&n7tRPcdD*&kaiOq!G^`>SXUs|_9U0~FFDf$#f -z)q=Q#d+maFX&0?j=9}P6nf|FlHdgJyPfZp-7>#=`Z6=35rC(H3qTj5~sG{-tvB&yf -z!=cnxR0;(KCKpQeX9hcm<^Iozz-r#}32E?3qa0 -zGtKeFzqOVR57`ySJeYx9%k5dO#LWCHA&=V -z$hh%I>T&4Kf3|<2Gnz@!KN$ywVz``I*fisxP((}UZv7`=O*UaL+%2ep&$S)5M85y0 -zCJv+0 -z-%`?L*T2Zfa9&OMr5qLaFRYY?Dt`JGdH{fsFbwA4HhKzj-iJ*8${vP)i34|JWLr7> -zmBOSzEWW$YoExW%$sqyMbsNsT_8NnWb*~XtX5_z#Eom+Ax_<-ob=!>5@8ABL*#m|` -z@tRATORN8=i;1F&ueu~Je&~`k`TSd#+Oi0>>_F~#(xn}d7_JBp#Je%-?YzNYBM^bm -z=YI&lY7VvVzxFUD+SnZof9D#-Tx`b%o=4+bFY6)WzP8il%m2bFijIJ`4M}&ExLU+V -z&&ZIrUsF*{QE4JH(ope}|{h@fTaovP9V-ua1Xp3w;22RI>MdC-t6-ml*vK_3Bv_B4ZR1_Ys9^XM0 -zHLcC)C@;?tC|)jV$PqoGC>oZI|ZiIqT=7=I=@6 -z7y{LuM5|K)jlnUyzt45`c;e@(+bVZKM4bP9Cv6U2;oOk;i5kv9(qA1-43) -zS8VRdYpCB*>`Ik^SGzJ~`}gQ({4SHdx=gy&veWjr_NJ^j0{A6^bn1J1ILBLPw5MTv -z=T5G?c<+h09zW=8ymI>wz$D%C_tFpW1M^8pcIzMEIe_etA6YJ~zPRZ}JCYj3|5W9d -zG|0}4AGju_G7@A-{ts}Wg_=SXhyoYJOuoUuv&0sKpMcX^Ea)4IS=}XgZafl>8u^O?7VwQvP>T2b!u_Q5>-y7LTn0j4JBW1R&eL{Bltf6rJ`G?aABExNM2c1tJcBwg=Si4Ycl8-o -z7AaL$X#5RyviXc%WvF=WjMi=Wq}y58hN`KA&RRE0(=~dmB*(yLxV)w8B5o}=Wm)Ij -zHTJRXT@Iru%S&Zb5Ra0a@yp?NosJk3t^gF~45m{*r{cKM0vPuhHkp5p1p-{ks&n>5 -z=vK4qtD$D{W+K4H&ynw!LsCZWpRqJ2+Zngt#9}gZR3=()5ns7m-&iM|XC^BS$T|SNF6}8tSLQd;Td5 -zW=OX7KyW75jvmi}18`R+TXhb;VS*RLCbWn&-lun-EJ`vMRs$Fy$i24H$=2FWBWF@| -zDSN2qI!>-dF7Le4bRs2J`Z!J=I}#IH=-F?)uLIxG=Ro{K5*+BP!N*3&0fw?oht-f8 -ziyctIP8mHAMR`FTUz$UDgrMW3G$&y4uFO_LRxH*&{Y71IKwh=j#6RK+^@Rc2oYccn -z77ppt7)Y3T=gW=hj>1k}T9xj^Odfwvy7nCQuFY@=Iz%Os;h2c^v<%0~CPZ~$Ikm8< -zJe%R@8EAfKv!5LcM=~7FQ>Km~!-$Lq4LfBzY;X+9RhbTj!^rT8Oo!t%{PI$!qqUt; -z`8v~~?j71S%VN=$D0Ov -zP;Q+%cLp_mCsR2%foHTZuqxXr%TTjx^lF_Jaqk|f$1!C)P2gj^w`?b><4r1X6-h>p -zqaZFS?Q)!f>@qul&Xg&GCvc=$Ts;jd-qojZBU%Uq%KJIUAk{oII>6(EM8%CQoZ_@1f9L|xH -zCx0)XR*P(o4^4bSo(dG2_|JJxsd^>Gm&%tD^r2PToO<*)8IcZ69X4}NhOVcO+}4zj -zX`RADO?44*WcD_7F6Nji4R$pb&KhawCa#Giy?ql{cLt}8P)Vi^l{p(^V>7zO`bH9G -zgM7#(ThELynJ-EC2pBF8=JmqqBhn||ajRZ5HC0#VJ9$aCcu|bvAE%E1G*Hh(LD|=O -z8oKZ0AxiJy6g_@qZF6NxF7CL)U&p9 -z02o9G|JRYn?2Vw{4~91j&ymNNGHqf69D7`5E_6p8XCJf6GV;f<$4$`Fs(m^1xSc-4 -zc8;(fd|YlWC`Q)Pk8vxxqh};=0&;scQ9EwgRSs}C@u@{>i+dVM;1J|?nR=nIUzM5b -zE*ylcdo9_9pa&s$Qt9LjKHx)R86+0T; -z+@^$(^fv{L*=EQQJY8Mj6!rjVT5DLLa}8&Cpl|Oea!MTz;E5`J)U;!i*|TeX&tnz^bJjmm&@CawgxlV#nnM=5l(Y -zo&f49Vx9CTijW3kgs3mRqIJb@r3fKx_!7@CnQdBl{K)V;VS2aVQpKyrBu=Wg0Ymdy%GIM0za_%EggreG`+O-aEA3rn` -zaJoIZhDjsRrA}KJL2s&Dl5TRhmGN6O+|NCYLN|0k-(dkEcT1VsP4kV^h^RYq@&u>6 -zaeQH-MNgwF>xiUkjkF%f9M5{ai7fA^tBuXy(9s#jq8+{lWckhtJ(EN|6*7_qoxlrv -zy2P+f4i!Zaxuuh_mqhu^At@Zvk(Y*~7^iQ>%!$;?Te)jHD_szu{LW5ij4KoC-`SaD -zDxkJ>b}lhCJE@CP1%QH6^z^U#F4zIh9o*K%F?+dQ?c$6xDx$EfLmt^HW4k&-v9v_1 -zx;mZZ*i}jCa=5F5OB|H{c18PZ(PB}lL){v6jin9=m58h;buP^gUkK$PzV&QZHpgjj -zl3#+6h`6G$T9i2>$t__5&4Gh0?&av+Rb`Hg)s2aiIbA^O8c~4LQ6enO0Cn$xH{zRa1q;>ZZnm14+9%?e$-ihrX+u -z!^r>e_o!VSu^cftKOf56W1gIRC#9uYXu1NCC;J^LKKWt% -zg?E0|Gh_UaLUSG0`<=^4*=*cG0&YS;8Ct&*aQa9aJ@zosgdEHZIOCDF{aR!3*VRDy -za{Ex|~P*H#E2(r%l!wNZ<@q=-P%&maj8G?y`8S+C2 -z=FlHzn;pE9&3Wm1)W9uaXD~*GFhCf4qTwn#f(3>JrANe>P6c8_HbsDJ8hZbC1ZPHD -znnqz4CNd!ER1iJ|(coM+6Am+1;n6cRD9gJ9jd}KQD^m_d)$pNm_3sLtjl$}>p|@$w -z5sg@cWgCSq_UfT1%gj|;@kl>f -zl2PA7@jBtbjXjVNJxJrz9*&PA8T}=)djPtSm-CWw40`r-I^wmfO}>ggm-KXU3H~I2 -z;EYMLr^xQht%5A=mZ=%Wshf12)GSLaG~Ws!Z6~w~jb+KKfj1d5 -zhqq%{mh?g?fSWkEqzg!7|K;k#(r-{V%kI6H5Z%@)Cnp{Ak|;8oTRX#iC)+$kpi=Gd -zyg9XXQgen=$m_eSbBGD7?(KBKj}6M5y&b9sIOeT4a|a%;t-z*IgzA%76C6&yt6(6A -zz0_3Tlrdv6SaWDE8-Y~_g#Fm%jA}gTg%wZ+x2B>R$oA4|JrYw#K>EWgb=4@>MHQ@q -zRkJk^0(x^pxf22+W -zoxS@*d;HQ!!dxueOAf~ngi>97aT^x?;#GDwN6l&!eAQ^sz~TNZkRO@brw43hU!!K88Ybd|tmb-NAA^P%kIzTqTJ%cGa_a+}e^5j&LU&c1Q -zX3kuhH6^vR@^X-6Fd@w8ljh2Pk3&@!+lxVtzb7}9g9BLJAgi=zG7QkIFRMm21}Xb} -zGTid=U{;MiH5lb$lK=W}29UxKT;+uWIQlwmw7{9V-GNTIs^zMI7*n=V%hG|$c@a3G -zaB5Bo4&*V+qOr^Lq6VhvYbU%pqtfoM)aI;&diisVO$^;`6gh(XB=`i=pEm -zuWLRNwphIwkr-CR=QW?a=wft(9<(JV7ZZgTf2m28lHJy@$f1kzdv$Al`p|@&R18(v -zgoU0l6bqs1?*5@rSk>J-LzO=0)@NCy6)7a-QC&Hb*#L2_KO6-ytK67sEpG_Y?Jz(R?Vb~!Do^ZH$`%omfnmqR7&nLKql3Q~>W -z7d(=VsxkWFqS>=&%7#(!!KUt-Qjb!~fMOYX1!@D8zTgUnJqUl;_YvcaOzII=D7;xc -zV1ct&IC_{GaeP&h4V6E&Jaer*mW|^~ -zGzvYcxN;0+)H1Zj?~?Om*cgNYxy4ISbTM>c!YJa!LGg#ipc*t-_RbjM)Ch6XScf!h -zj1UTXtf^FuWtlNq=P}2Uu}%|CD~uZMx}>HKZM|_680Gn~>SqPz{jpBi!l^N<({T7J -zop8}OrwE;;b+rbh99)o)?kH{&2!0#`&}xVE -zT&5&G#|aK3330THpv5Pg(Np+%ls}39Z)+GV@!YNB;YxsoJT%@Zqx6JeDaVUAUF278 -zC~(c1pyn1uSUExY3(ZhJ0gqb$%GmNb$j7b;#%&EIfX+`7prknu;N%=uyHmBU2dWaF -zlQ@TBMl~8R1UGD`CZq#L^C!yY!kx#>lXMD>X)Pr+=mjcND4Utbku`WGdy@91CrFt?LwlJ^Jwb~DL&2+)(8PKI?`@M< -zD~(eb1hZ!neZbzq1cb@BRny;yH2G@|g__ToTQuX#eJ11bqS6LUcDkg6(Gtp1ie4sM -z1bT^?V~;m*PfI<)EgH2)22M@J_K=Z5rWCAf>ZQpBP6g0x28Xic1BeVch_Y0)CvNjF -zmlS$MWXF_*XY|b!wYXj>mg{}3V0xsIl_w~IbxlZJew1^XzLzE5?rln&$SB>_(Fp8+$XHGDE|7@z4f#8_~WHM$*P)i5}x -zU7hNA9xzDf@9E}z5&rIwZdR7#!$8chTusFtE#%Z>Lmg}bx*(3Lu;=J3%G`Yv!t!6FB6rL|NPw;{&q4QU+#2<2 -z8rsc;W3_xQ;Wx@}{EaYPLKPAY(GbCtbLkdg=Z`AQWuE2?*SS#G{6U&|=zKI7GsHhE -zl=^wf0kE7=s_VFdTX5iwM%_CP%JMLTLY?w=GOkO6m0Mn?St%6pb)a?rU3?wAb8wby -zzYYyg6|C_GTgdyP(9x7Ma~?GZh2RZJ@9X&hK*jijon>J+)7;WaN>aEmGce#a2X$)@A&obGw`M_pG^PH -zdWX%lc%mE0%(lIeOOP$lc^jBw_>D@Qm`u9S>1we9#29VacQq@$?MCIvNN8;_hb(`= -zg^u<}G47OelY#_}S-%P1^g@_R_(7+5hDWC`(}tT^1B?N&aO2%I>hr+<4JGtc*h|yz -zfKm=o38=ur%+-)(+ -zRL%WjUe`j5RWx8Z>2dMJ;IdB_Gu9Az`@~|$$L3yA85n$3p1qeaN%FF>gz_BkQpUt3 -zQpISr=Y}P`%3pI-=Z}0AkK-Kpt8eh@B&g^U8d -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 -zhuTzg4I}B`*>ST -zSnc;Eu2rdz7b=x>Xw7Zh-#&b`kA{N#M)PJtXdUzLk4A<~wt)=pTQs`%mNQaWF9g%Q5RL4q28cH2*I9Xpid1 -zQ1uYys2}K*B6Q3Xn!3)0ySW%4>CEF=5B$O70K@6&u_I;cr)=OZAY9lc%5YoXQmI~$ -zfe|=fAs7xmm0-D$kuzhj$sjn&b>L}kj^AE$Z+=$N -zV{zjj>ObCw6_{=mXKwCi#B~GVi%WMoG#mZllwt&l=Cb>`Va^@gJX~d10Om(esHO -zM3fojQ`}2uQ)M1-1` -zBt|lXSmXr6FE1*B -z(2naKagNv9*7#X{bg+lL}++fdk3SY8pj=QG!H$F(-SZTpLLuU -z#z8AQa-7iwbKNR(N&W5=%NSyBiIfvaOebnGP9&NzN!g6r#r7t6e4OyJTEy!+1%JNAT)zj+U&n~z -z!OYju(L7l5dZJH!@WbmG#Egp_OXs$4@H)C+40;1UOif^G-q6z%7o1X2<=hX};y%Xv -zxe%ji_~=(W)RX_p3Fo~@)}nB#OI8bav|!qZpD@EU54XOVXhj#^G(7XBeJ|M`NA*d( -zMX4~Gm~3Bd-(tF3-@g1TnlL$cMEmMQdq|v1L!VNW8kYC0O^^!AKqs7dE72rs>Nv(Z -zXiOAmexnnkX;o;N`F}?r^?FV1s40~US(s*ra?ruV;``mW4Wd-?ps?CvAJd -zdx-`qgpObg*u7GsL-_SQM~jH+_ifUs04#TCLidh3QnYfSaVmb5ZhM>^+VC%4f;DG6 -z<-_-B%1&QyX^4!(&81`!e?pndScK)5^$(>|;uB%gNY?!mU)hG>vTH&zevs%CM~T_y -z@{8X-pdH{u7}iuxshAsm9?LS_2lD%hZ<@!QCf%)p;KzTM=&8pPD>yIZ!3W+*E#ZT+ -z`LHQXkgbJIQtLE~S2>wrzg`3r{e0aNu0T2Dt=I>sTf+J1ttG%Wp;PZAj=uwp8< -zMqDv^;&kk7pP}#(87?cl`bmPlijv;v#GO6!HG`#7pOSz2;J5r#d5igc!l#xEd9d2aX%Y8W@l!&9uQcyJfuSms?!~IS+>5n+zWAAcO(d1i -zxUVa98-MQXVRjhyITFPvLW@49?y$%*9Q>S$PJ8~AUo?g=iT4H9=s43WKESjx=L=O# -z`i1RZ@K+jIMR@5;6;%Yl@1CJSga%)6 -zjaL3kzv2uvA>8>D*SHXP7e6J~;KaOi1Dv!^^l(F&4%NQ4gF`0u{TfkAGrs9-S0Fgs -z@;GPEfLYY)Pkd$dZ@AX*BK^MMNzNV4|HctRPT2B|X7;2D*yO2`X3h%pPbJR5D+G~S -z;adxo-0SwO);;Y)GdaZ(KR)V@Iy!&ofx&OfoFZ=xJ=Nh9k9UN4^(h|f3X=_-@o68N -zvXjmZCBI8FEy;9SQYjxjRY#&UD#5aE5kfSa^l;60{3%Pf!p83$7&&zo@5Jvxc+ur?Qw)p%+_Vg*v0opg@n?yB#TqUf>j6CF?zDav2JkKejQXmFa@WqXp# -zPxIEa`mp3QdMZKhP6f74O-KAd2U$9CR|KS4)svns-8Gc6Lh_6mK^HfT?rFn55 -zO(-YIdiZ}5?USw)yhG*OVb>K`|7y+(Ar|-k2eCyr5k@?o;>v$c<2f4I|H%3QCbPqd -zr&B8BE=*UQ=O<=v2}^PyrE&N3NRjd -zDJQ?sm;}X6+K=yP@+%pNijx_h+?7H+yHf?3Qt&Q_gp9bPS0BSHw)Iy%HwbhentZ`r -z_11z|g@^uv^lE{`U|&o2&ie>oKmSk{sc`S^lonz5Z>;|%|HIM4DUHIi-*^%(k9bH> -zbRqpo3@9)EhLS>Dukhw?8VebW)%u;1HUImGLz02Y0;jP -z^f((b?Rx-tTs#}9n*o7I>{?AoaINJzy67ox?#nm6x^DBC^!bUgg&;C -zHkpu!+f_3rrasNVhP%yieFvEG}E3kkJzz -z`Z>`seC?*~{E=%nl5g60IrH_N!5++_?TKV{++?pT5XH8sc?BY-QxV`B3q(W%{9kd(5_IF;xtTL -z)mp{5K`@qoi)u|FF6One!&|>4nuf0m@kFLvmKBcJ7=o(SxNt;JV11C{0vh^vvbEBX -zk!*#dj#NWDa}`U!6^`&?#5*Y^qPkMQ%%0qK=Oo(<5$5@-f1al5A57teXk@HlD}ZsY -z{eWU6BJzgyyRm8;YCKJgxbK<#CW{E7A6v4E59?DTN^?j;@0gYnv4|$6P%PYWJ30;atEc(Mdu&8L%4+CG0 -zhLxJ3P->(hIVV(3jm9vHNe?%qMvP}r7#~lK49}gB`#sC2me)#3L2Ug^L$zWN1Hqj1 -z+*&A2!;3{_cw5ZJ;hJJmD_TJF+-^nA4sRFZ&UWM97mL_Xm4VG!iO9XATZ91#?@U?T -zn&2niCG1T^%*kLlN<{Sup&zSH-NHZfnQ6(4qH=88m=RCC=T3<#hUY&hLcDxEvY1Zm -z#=6OR*T)r+6AacLiK3zUAr~tiu>cy!yZAe2-y54J5HAGj2@{J)nNdb^cC|m@xxouVOlLCY$z46%wHpE9Ad7)Y}Zrj+=Vbz_UHCEsu=VX1N&B`qpnyg -z7{135rB;;Yle95ES31f!_y+hki2)iDE7v*NdFuf -zMZDB>OPUpd&NDXLe)k?xYW_@%*mwwgc)cQs>4aa)I|Mp)Tg$wf~ZJDwdXM@g?N7uC_wevs9mu9?UV -zFI0%Cg$m_q+Keb0m5+KLhK!gJFXmo?{|3?u{bCzx%V*^y;yN=o9j{q!UxCtbs22Xc -zbBSLsba*q4-dY>OmDHXgbo==Gt2&pye-n@^@@@G$JX*&(9RC85&fH(s5LxwHXs9ev2kmsW+}5jOPFzs$$dP -z9{a0M-?0Vb0mz++!O3JVl`uAh4yqb;XVgImKj<2k2()uYCSM&8ndIjq&y -zqq<>U?*fE5sg59Hl`@vYdG8f27hZTa?xcAQ*DBSl5uLA+gmamje^i^~P|M%wj+WJk -z@IkfNoy;iMD6~z-&-I@gN`E_)csqzz2iclFy{07-<{o9Ihpx>OsNBFUGq0){5&eX3 -zJ%%(pS`*pe1lW{Ld^u4uoL|DgP>UXlSvBGe8xiiRT2V_nrHt@!tq7GpBfMP;p~_}$ -zp=9j{ha&23=h~dn+A^zllwFE4W5}V2Wc0L&#M#_-l5dO!%*on3&;>fNiIP~VSnCl@ -zbDgegQ^$-)WY^(dZl7{%9ohnYSlCksx#6zBKh%k^I$}aRD{5lw5Jo|lo)r<&mXY!c -z^|118J1eSP94}EMi(x#bPY#D#;hV#FP}@W(a5mk74!jv>BTZbOKKyKCQw}pdcby%% -zfoY4d-)q$3zw;VhL93q=;p5FD&p8ne(3#P@{2NOUc^2C^|13ltX5Nz#MDuWQT?7u*Gil~0 -zUV_4lAyZv)230C-osC~jJONm$UR0B51B@K?=u2J7HnN_%M(?_;9&d*t7mn78*o%cv -zOPuG&q7&tu=jS7z$DGH@pbP|lal+~_Ka}K;WAQj+`nd6pr-z}#aAl+fYSxdK -zub|_)ynYn#CB3A6lx2H=wtnOc7*D}9rD8~H5S2@5iaj46uiqKql_(M0W^`mkP7i4i -z4fKy<1J&~l6b<&y`1|UFOTzlqt`XIYvKrI~LB%JZxR8Zm -zNh=@MBGg0e_b?BA)5xZQn``5!2e!bpuejra4mgN=M|R0#omSj*7dNI3t6s({uJJK1 -z&2$128qLF-jiY`z-Q*-)E$-^-NRH(@ZosnExCf0cD^?;tLzw-f?HykU#3c?Wq10;Z -zxf7pf*l%>)Xvov_^V{axIe{4T=rvSEeHraG1#s_oh<|h|H~r20?P&;)SdE -zFFpK`9(6!25>9?M-d7?`6~A%z)B4 -zyqR;PU2~$gdcwq;5#;5N<=74llNonhC`|UqwAr}#_$S9_a@+FF8L{Zy$_yGIR$JHr -zTyqjD0gp6SO6Cy7hE4+0H^Ce8uW}xZPd=CZQg+hR>)-`A9bde%WEH% -zErDB_bM@x()DfZm5tbxe@P1s33|1UBzd#4SCI!8^RtNM0W(LVNL+AWE39O3~eLcQR -zp>M~iFxeB&id1z9n580ifllaJSC~|BFUffBmum^B6icjX@q{iFhanSPajY>t(ouOx -zmLKRCwT-*_STI)Y#A)65GCC#4Im0?pvMzPUTKXn(WM3!L^wY&rlfLVOO6y1s=Zm_b -zQRj$tu!I`(Tm9OZV?&2(h3gQkgeI&pCyw`>*I7N7B8_i$taGf_#Iw#dmUZDDYWL;4 -zL_>5E#|1|Bu|Fm!b4wq;@Nk#ta;h=L0D@*CK8W;pdpU^exr@nupG*dEfc8$)nP87T# -ziXC0pZ>MtTb3s&=s3x@x7c!q?N`Mv@k9{7!Aj&S9g&zf4O<4O;q4MGH3#e5H?*`qJ -zg@kzMrq-Pq9_?nsL5F;&n=+g-E76?;n^JoZ@Nx*#x<}1@l}+8zoHSp5-aTSfE;6`A -zkLVI6JdnS$dpJ^~GvDq3?y=#k9_UAU;#cVz<-~Dn2KGe9$oQKeRvkhGyZHezB@Z -ziS?(%_=e&AwS6!azPo?aNWWIP*{^#ZL1 -z$W%&;uwa0Nk5}*jD;Z7hs{!P=9%*L=G4gCXFseh7YZgWhB&YQ?9?^|4%(j7Ct>@4O -z1IZZ!8k8Nxfkxkw-5Hs#IIbef(k1s5&Ur3G6(eU7fj6M18I_#E+XfAOPIqN{I?L|>Gi!+m&?NpZQ(yu?vC -zyAE7pi$KMC_L8VeTscY&R`+LyZE)0w_K@zH_VVH3!3^(^g>Ug|QEb5R^hMfWYE|7! -zl}EIjc9+_TriZI9jas=WJwub^=7SsBI4RgHLq!GmAKK8eAwIoXs5pcYrr*jAJ%(6v -z4{&F?ENpJ4LTh@_A@{%= -zC{?7HvBekyX+9c!t~u@*I@@R{rDkJlH8i@&y_#Z=k#eEN;MCNxeJBGewBp!IcFm-z -zqr#z+iL$v3+Bz|Sk(juIN&m;1!zci4JF!2sLa+$GtJ<#pnB^REhDA*=fA9jaMEmZI -zLZ!o-!x%!4r$vS<2JyiijzH4wb=q*H8^O1RTftj|*N2l0IwF=B!Ij*j!-%K_6^$@- -zBN%m{wqcVPL4$WF`pF37k8$T~Tuuemk*M$Gj8dI^yybF)8Fn02bw*7I=a{q;T`_gU -zWMW^9qREsR8C6g;)*VTU(AYm@q@zNl$6X_N5RRq9wHp~_q|$T7L!`XH5Ad|7@&s;(k -zrd-Y&XO=V#gU4YL#MwJ5{PlIAYT?j0OsxdYid%ACsV}=Rp#5Q7R6Xu=%3R5ql7?`> -zl{7Zx$$eLp8M##*Jr#+JG%Of9=Jwj=Xkqw2FIU|r`q}W8WW;kn()KK3CvgU -zVh>Ir<5YRxpMVOAMLJZQXy1iqaLGi4DQd~WiC%*>^y!J*#$Z-|aiHp+HHlwXXArKM -zL{)W}$%B)e2O%8#Bsw^*s606uo12-LR|<lAVcxykw5TJNaW?SE38SV( -zXNPj73#NrSl^EhZJ}v4{1jB}5asQYW)#W(T9H}=wYV5Itj3Lvb^E@V?O1NWsRF7j6 -z)TUwg^r(TynmfMEKh~SE>Wt(y&Wv`O5jEi&q)U3ZenwQ^V<-AH=O42+C44X=YQ%Zs -zm!S1t9bd!x0}QxV$LCo&-7HMMI(`;`7+Qq&$!nNj&J3?#9lsk2M)Oekn&h!EAoH5| -zJ}hd^3?r|J(z!pT^6aqunka*P5s~)jI@kD~Oj1+z|IRWl4C~9@qK!YxGJ2vl?8e)v~%K|N1%JhlX3dhX+r8tYY142RyqOp7 -z@w$_lcqFrEB0KE9KI+CFF%-@WsdKGWsF2jcHgl~dSeY0QPUg6H76xJ+=^EC#a7OaW -z_s_*omeWouygt_oPgOuKs5UQtKf;}6hJo{?C=HxX*2+0heC69?ifDU~_ -z)RSvi)|?q8-Vik*8>pl4;HhDq{s@ln{e0%N-tKPHHuC}BQi9vuV9jIh24PqHM)M&% -zcI4`Cqfcb)Lkqm-Ml(Ab8$)*3dSjGPf~t`(Z97ex63)ygch5VYnDyM1U#J3=Z}K~` -z5z<+q?@dv|h-2LOs99wQ>Q0$LliaGU^XT!D$KsW9 -zJ#OCDCeEy^h6adL5R -zN9xXuFn=-kntWSS+F!7O`Z66yTsvY!GT*Ls859q}-klwuyeBhK2Tuy3 -z@snnZ!h6Wdzh`Y+ZU{P*gxiyUf)OYzx;@TxECe_#+#WS0D;XrkOUOEp8#5+!xF3=6 -zO;(ZO@n^-8!u9X4jj}-y{PRxmetnmXj@a`kchwe}KURlWgX>9_PMwjgEtRjx7Y_W226NlOD6?8;Bs0HC -zm!$k=AV8L1x+wkvWFvbXEVA)3eMVJyc2U%ve05c-&+Ij6)ada8#)aCq@YJii>f+(w -zGhz&_7sr3aK5ZFc+Tu75@Po&Vjq|)U)jIA#dXJlU66Ybu%)>8<%PX5=3g6_Pr5P2#E!catqe8k+P}LyE_Z_3W`{bt@%`zAP*Za4@@aPHdUtZ3d+LK?E)2x2 -zGH%Xy5Oz4u0V+-N@LO(NvoM$8ymU{T12{5dgt7O;dF$f1u%66_`c8; -zr!MvD@ryyfYPU3M?y)A9IZLC=(j4b6?zxEF>n2^3eE96gb%Q~N%y8c5+ogU6-63X` -zTFV&YFpNhACe4IhL%#d>TU8jy1H{PdI -z2wzVrT%xqX5=Th4|Ki7s$Wdxt?u+}A?TSewMgoI_U(e`^TQ3e#Bi@?k6Sw(pUHkO! -zJ2lzUulzV)zVa*I_ZwIGS1N7|?~Ol!C>&U|@{gIt4)@#}HRBp|CN?Cv*V;ruBL)qd-rXa)D_fZQxMzyTDf?D7)U)^s73KqlZrpesxHR9^{IYdBc -znQZ+IwfXx!EByPWG_UM%dPUT>ltb+N7=a@u5@kB>hVOW~FaguZhNd{4|C4)O;*!q@B?FFbI2c}=PaLql9fE0-w4Ww&(9^M -z7w^er8q)juHBn9p#;;7W#D9!LjXT8JEve*p?6DTgAebpA1Vh -zel3+A)y#ktd26i-Se>cpCpb@p2}aRL(KT}H=m|-c^Y@F3CU4D{EzaHnohD68ih(_o -z<3{bDp`MMupYD?5e0e=!)X0&^m-}lKi?R8E8F*iMz~~VZy5?833+oh#l@fl%|1=bT -zz+%8|#yGgc17@qo*33QS%4!-L4roCRX3dheGRYQdn%zEvu}vATUNT -zs_DDVf}_V{gZ|7{5|jeq{@aXi*XmLJmmXQGiips9`d~$H{cxkP<%fI -zyUoL64_SGsbu{(wA2K(sE$j*MaMa&p{yJRuaFm7FCSF6vGepj9?RnF-9!`L_-8A7(yj`Uc!lj4p+XHyeY8s;!dZ8SAr46QA6`*W#Pa -z1H-8eQC5WI4PotTjrRuC!UY?7BP>!#jWB#;)HpIULb72@2sJlw#S`%rxHvN7er#jZ -zw0I6}Bq=TN!fL#cFFxnds4TmB@s}8iAEn?C3HI?bAB`r5VRPNuJd-IAY7#c2N0CJw -zJG5@RiQzO|Bf>Mx-{g5!`mC^hQ`DCIf~jl-5Ai&%6|Ui`yEz(MgbhDjmbzdw&!L12 -z+jJ;C#>o>s=8w$`x$%Z~VAy6$)VM5$5I!!cRF9k9s258iLfV$7Y-OBfGn)Rl{*8ga -z(dmXQQAQayz;dF(yy`k>#?%P}B=pagZH>yXqm;qlh~BX^%H$sm4w0Y(wnmNkM>aOs -z?66>Kl*K>%AXbHKjq36b_tau#*4C&&DGV3HV2{NFdf-*@okN>#WMeu*U$W-HZBcd! -zoCR{+VY6YK-lHcauX!}ShQ1tSI|2bytAE-fhwq>FYPhzK&3Ed)cKE5AF&v_ -z5dZqeqQ=EgpV79^OhT>Q1Xg_MF{&Us5RE=wr}ZcQE=_r{+lo(&_v>vOYQIpVY(*OG -zf8{sD+RT}m3m&H|IcB^YZb%+u+QH%T@u)t*4l~tk_Q^V`tQW*FfJ(nvQ8*@x89!8I|TWup1{OJtB5DkJz#^N{gt;SQ%n1 -zD1NzclCxag469ZAEluN3tieQ5i~rv{Gg3~jH$pYwITgbByKn@hd&cz`WqDWp&e^;s -zE0Xj7!Q>ZyKD(lZyry=dxHu7g@oSdc9lxgD#`#a~w};nkw>!>U3MOfhMiJ-oay6Km -z`0t^v)=AeJPyk3=uL%$Aj;lXw>6(VUyAj6}5Pe4YZZ{GDW0b)XYCh?CJUHo|`aKyn -zim+p_S(vwB!Ne}UEAL6N1luA1#b@IpDi@AF8R2S*J;a*p#cM3Mf_tJeF7Cu6BR|V!+AHk@0CW4!2FtvW5*sKCWfdhPZ%k@M2Zu -zq*{n0f|c*_15_YFSfB`nV+W9j=#ymbvV+tgx)0QykijvbZ?H$iPsy)&vk%f^qa3nv -zhR;rZN*C+K?ky7*2R -zyQtWYABxHq!JXHB;iW_L`c461%7~s)?0K6Oq03WPpE=gHIqj)vpvQXh9D535J=Qvd -z_LV=3p%gDP*DhXq7*(H@9%w0H*%dNL5MI -zNYzO-NHs~dNVQ3INN17GCY?h%msFQjk8~cXKB)nzA*m6mF{ueDos>apO3EZq*kQXq&B3sq;{nCqzA?;iM6y%Sj_iqe!DkV@Ow!#*)U7 -zt|VPW8c&))nn;>NnoOEPno62RnogQQx|(ziX(nkF=~~ik(siUcr0Yp@N%KhaNjH#g -zB;7>1nRE+j0qIuKZKT^tcaZKR-9=hRT0~k*T0**;luNpYw3M`r6iD}ymXq!ytst!= -zts<=^<&oBq){^cgJwRGVT2FeA^bqM`(j%k|q>ZFUNt;NUNn1!;N!v)lk^tpZPGiWcS-M&-Y0!P`jB*z^bzS}(kG-(NuQBECw)Qs -zlJphnYtlEQZ%L;}-;us2ohF?j{XqH;=||E}q@PK@kbWioM*5xf2kB4JU!=cD|J-rl -zNP$HpQBV{Tg++=eB8rMsQA{L6B#Mg?qNFG#N{cj6MwAuhM0rs`R1}p&Wl=>`71cy_ -zQA5-ewM1=EN1P?j7Uzg_MO{%(oG0pw2BM*8BpQn*B3)#NrXo{hiDn{O4Vve|8%oX#*d~t)gQQRbM7Pp86;#P5+xLw>K?i6>4g<_FdES8A7 -zMXtCp -zTg5i9T|6cp7f*;CVyD<8c8e#)9;z#k5_*wiSeigro-^Cx|Pw|)dTl`Z1@mG+80-~TO -zBnpcZQA89KsiK%jh)5I{B}7S4N|Y99qKqgj%8Bx#f~Y7eiOQmis4A+7>Y|3IDQbz@ -zqK-IAoGs1~=ZdoL5KTp<$P&#&w#X69MGMhVv=XgF8_`y@ -z6YWI@(NS~~okbUMzUV405Zy#~(L?kUy+m)(NAwl_M1L_r3>1UJh2kP{vA9GG7MF@4 -z;xaK*3=_k}2ywX>DMpFWVvM*#j1}X=mEtNfUQ7@Z#UwFVOc7JXG%;Pw5Lb(9#7r?u -zTq|aa>%<&!y_hTJiTUCNaih3N+$?Sp3&gGBHgUVSL)} -zi6HJ3%f)?Sg;*(8iPa)ctPyL){o(4x*#z -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 -ayeN)|m&D8BxHutRNj { - return contents.replace(/^(module\.exports\s*=\s*)(['"])\w+\2/m, (s, prefix, quot) => { - console.log(`-${s.trim()}`); - s = `${prefix}${quot}development${quot}`; - console.log(`+${s.trim()}`); - return s; - }); - }, - "static/clientType.js": (contents) => { - return contents.replace(/^(module\.exports\s*=\s*)(['"])\w+\2/m, (s, prefix, quot) => { - console.log(`-${s.trim()}`); - s = `${prefix}${quot}STANDALONE${quot}`; - console.log(`+${s.trim()}`); - return s; - }); - }, - // "static/startMainProcess.js": (contents) => { - // return contents.replace(/^(\s*)snapshotResult\.setGlobals\(.+\r?\n(?:.+\r?\n)*?\s*snapshotResult\.customRequire\(.*/gm, (s, space) => { - // let lines = s.split(/\r?\n/g); - // lines = [ - // lines[0], - // `${space}snapshotResult.customRequire.cache['edm-d/src/d.js']={exports:async()=>({expiresAt:8640000000000000,quantity:Number.MAX_SAFE_INTEGER,subscriber:{name:'KillWolfVlad'}})};`, - // lines[lines.length - 1], - // ]; - // s = lines.join("\n"); - // console.log(` ${lines[0].trim()}`); - // console.log(`+${lines[1].trim()}`); - // console.log(` ${lines[2].trim()}`); - // return s; - // }); - // }, - // "static/index.js": (contents) => { - // return contents.replace(/^(\(\s*function\s*\(\s*\)\s*\{)[^\r\n]*/m, (s, prefix) => { - // console.log(`-${s.trim()}`); - // s = `${prefix} (()=>{const xhrPromiseRedux=snapshotResult.customRequire('xhr-promise-redux/dist/index.js');xhrPromiseRedux._post=xhrPromiseRedux.post;xhrPromiseRedux.post=async(url,options)=>{const res=await xhrPromiseRedux._post(url,options);if(url.match(/https:\/\/.*api.gitkraken.com\/phone-home/)){res.body.availableTrialDays=null;res.body.code=0;res.body.features=[];res.body.individualAccessState=null;res.body.licenseExpiresAt=8640000000000000;res.body.licensedFeatures=['pro'];res.body.proAccessState=null;}return res;};})();` - // console.log(`+${s.trim()}`); - // return s; - // }); - // }, - "src/js/components/views/SettingsView.js": (contents) => { - let settingFunctions = contents.match(/\s+settingFunctions:.+?("|')ui.theme\1.*/); - if (settingFunctions) { - settingFunctions = settingFunctions[0].trim().replace(/("|')ui.theme\1/, "$1ui.language$1"); - } else { - settingFunctions = "settingFunctions: bindSettingFunctions('ui.theme', _stores2.default.ProfileSettings, _actions2.default.ProfileSettings),"; - } - return contents.replace(/(\n\s+)label:\s*("|')UIPreferences-Language\2,(\s*settingFunctions:.*)?/g, (s, space, quot) => { - const patch = `${space}label: ${quot}UIPreferences-Language${quot},${space}${settingFunctions}`; - if (s !== patch) { - console.log("\t" + `label: ${quot}UIPreferences-Language${quot},`); - s = patch; - console.log("+\t" + settingFunctions); - } - return s; - }); - }, - "src/js/actions/RegistrationActions.js": (contents) => { - return contents.replace(/^(["|']use strict["|'];*)[^\r\n]*/, (s, prefix) => { - console.log("-\t" + s.trim()); - s = prefix + `function _GitCracken (body) { return Object.assign(body, { licenseExpiresAt: ${JSON.stringify(new Date(8640000000000000).toISOString())}, licensedFeatures: ["pro"].concat(body.licensedFeatures).filter(Boolean) }); }`; - console.log("+\t" + s.trim()); - return s; - }).replace(/(^.+?}\s*=\s*)((?:\w+\.)*body);/gm, (s, prefix, body) => { - console.log("-\t" + s.trim()); - s = prefix + `_GitCracken(${body});`; - console.log("+\t" + s.trim()); - return s; - }); - }, - "src/js/constants/LanguageConstants.js": (contents) => { - return contents.replace(/(\b\w+\s+DEFAULT_LANGUAGE\s*=\s*)[^\r\n;]*;*/g, (s, prefix) => { - const patch = `${prefix}(global.navigator && navigator.language || process.env.LANG || 'en-us').toLowerCase().replace(/\\.[\\w-]+$/, '').replace(/_/g, '-');`; - if (s !== patch) { - console.log("-\t" + s.trim()); - s = patch; - console.log("+\t" + s.trim()); - } - return s; - }); - }, - "src/js/defaultSettings/ProfileSettings.js": (contents) => { - return contents.replace(/(\blanguage\s*:\s*)[^\r\n,]*,*/g, (s, prefix) => { - const patch = `${prefix}require('../constants/LanguageConstants').DEFAULT_LANGUAGE,`; - if (s !== patch) { - console.log("-\t" + s.trim()); - s = patch; - console.log("+\t" + s.trim()); - } - return s; - }); - }, - "src/appBootstrap/appmenu.js": (contents) => { - return contents.replace(/(\bstate\.development\s*=\s*)[^\r\n;]*;*/g, (s, prefix) => { - const patch = `${prefix}true;`; - if (s !== patch) { - console.log("-\t" + s.trim()); - s = patch; - console.log("+\t" + s.trim()); - } - return s; - }); - }, - "src/js/actions/LanguageActions.js": (contents) => { - return contents.replace(/(\n\s*)(loadLocalizationResources\s*\(.*?\)\s*\{(?:\r?\n.*)*?)(\r?\n\s*.*?\bLanguageActions\.sync\.loadLocalizationResources\b.*?)?(\1})/g, (s, prefix, body, oldPatch, suffix) => { - const patch = `${prefix}${body}${prefix} arguments[0] || LanguageActions.sync.loadLocalizationResources(true);${suffix}`; - if (s !== patch) { - s = patch; - console.log("+\targuments[0] || LanguageActions.sync.loadLocalizationResources(true);"); - } - return s; - }); - }, - "src/css/toolbar.css": (contents) => { - return contents.replace(/((?:\{|;})\s*font-size:\s*)([\d.]+)px\s*(?=;|\})/ig, (s, prefix, size) => { - if (size < 12) { - console.log(`-\tfont-size: ${size}px`); - s = `${prefix}12px`; - console.log("+\tfont-size: 12px"); - } - return s; - }); - }, - "src/css/shared.css": (contents) => { - return contents.replace(/(\s+\.tier-label\s*\{\s*)width:\s*\d+\w+\s*(?=;|\})/ig, (s, prefix) => { - console.log(`${prefix.trim()}\n-\t${s.slice(prefix.length)}`); - s = `${prefix}padding: 0 5px`; - console.log("+\tpadding: 0 5px"); - return s; - }); - }, -}; - -// const i18n = [ -// 'https://www.transifex.com/jumei/gitkraken-i18n/en-usjson/zh_CN/download/for_use/' -// 'https://www.transifex.com/jumei/gitkraken-i18n/en-usjson/zh_TW/download/for_use/' -// 'https://www.transifex.com/jumei/gitkraken-i18n/en-usjson/ja/download/for_use/' -// ] - -module.exports = async (appDir) => { - console.log("Add patches to " + appDir); - await Promise.all( - Object.keys(patches).map(async file => { - const fullFilePath = path.resolve(appDir, file); - const rawContents = await fs.readFile(fullFilePath, "utf8"); - const contents = await patches[file](rawContents); - console.log(file); - if (contents && (contents !== rawContents)) { - console.log(); - await fs.writeFile(fullFilePath, contents); - } else { - console.log("Already patched.\n"); - } - }) - ); -}; diff --git a/src/createPatch.js b/src/createPatch.js deleted file mode 100644 index aad28d3..0000000 --- a/src/createPatch.js +++ /dev/null @@ -1,82 +0,0 @@ -"use strict"; -const spawn = require("./spawn"); -const sudo = require("./sudo"); -const fs = require("fs-extra"); -const asar = require("asar"); -const path = require("path"); - -const getOriginalAsar = require("./originalAsar"); -const zhConvert = require("./zhConvert"); -const platform = require("./platform"); -const crack = require("./crack"); -const local = require("./local"); - -;(async () => { - const opts = { - pack: true, - patch: true, - }; - - process.argv.some(arg => { - if (/^--(no-)?(\w+)$/.test(arg)) { - opts[RegExp.$2] = !RegExp.$1; - } - }); - - let originalAsar; - - if (opts.pack || opts.patch) { - await sudo(); - originalAsar = await getOriginalAsar(); - } - - const appDir = path.resolve("app"); - const patchedAsar = appDir + ".asar"; - - if (opts.pack) { - console.log("Extracting " + originalAsar.path); - await asar.extractAll(originalAsar.path, appDir); - } - - await zhConvert(); - await crack(appDir); - await local(appDir); - - if (opts.pack) { - console.log("Packaging " + appDir); - await asar.createPackageWithOptions(appDir, patchedAsar, { - unpack: "{*.node,*.pdb,*.exe,*.dll,THIRD-PARTY-LICENSES.txt,.DS_Store}", - dot: true, - }); - } - - if (opts.patch) { - const version = require(path.join(appDir, "package.json")).version; - const asarPatchFile = path.resolve(`patches/${platform}-${version}.patch`); - console.log("Creating git patch " + asarPatchFile); - // await bsdiff.diff(originalAsar, patchedAsar, asarPatchFile) - let patchData = await spawn([ - "git", - "diff", - "--binary", - "--no-index", - "--no-prefix", - originalAsar.path, - patchedAsar, - ], { - echo: true, - encoding: "utf8", - }).catch(ex => { - if (ex.stdout.length) { - return ex.stdout; - } else { - throw ex; - } - }); - - patchData = patchData.replace(/^(diff\s+--git\s+)[^\r\n]+/, "$1a/app.asar b/app.asar"); - await fs.writeFile(asarPatchFile, patchData); - } - - console.log("Done!"); -})(); diff --git a/src/install.js b/src/install.js deleted file mode 100644 index 348085a..0000000 --- a/src/install.js +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env node -"use strict"; -const spawn = require("./spawn"); -const sudo = require("./sudo"); -const fs = require("fs-extra"); -const asar = require("asar"); -const path = require("path"); -const os = require("os"); - -const getOriginalAsar = require("./originalAsar"); -const platform = require("./platform"); -const crack = require("./crack"); -const local = require("./local"); - -async function applyPatch (originalAsar, platform) { - const fileName = `${platform}-${originalAsar.version}.patch`; - let tmpFile = path.join(os.tmpdir(), fileName); - let repository = require(path.resolve(__dirname, "../package.json")).repository; - repository = (repository.url || repository).replace(/^\w+\+(.*)\.git/, "$1"); - const url = `${repository}/releases/download/v${originalAsar.version}/${fileName}`; - const localFile = path.resolve(__dirname, `../patches/${fileName}`); - let asarPatch; - try { - await spawn([ - "curl", - "--fail", - "--remote-time", - "--insecure", - "--location", - "--output", - tmpFile, - url, - ], { - stdio: "inherit", - echo: true, - }); - asarPatch = tmpFile; - } catch (ex) { - await fs.remove(tmpFile); - tmpFile = null; - asarPatch = localFile; - } - - await spawn([ - "git", - "apply", - asarPatch, - ], { - cwd: path.dirname(originalAsar.path), - encoding: "utf8", - stdio: "inherit", - echo: true, - }); - if (tmpFile && !process.env.CI) { - await fs.move(tmpFile, localFile, { - overwrite: true, - }); - } -} - -;(async () => { - await sudo(); - const execOpts = { - stdio: "ignore", - }; - try { - if (process.platform === "win32") { - await spawn(["taskkill", "/f", "/im", "gitkraken.exe"], execOpts); - } else { - await spawn(["killall", "gitkraken"], execOpts); - } - } catch (ex) { - // - } - - const originalAsar = await getOriginalAsar(); - - try { - try { - await applyPatch(originalAsar, platform); - } catch (ex) { - if (platform.startsWith("win")) { - await applyPatch(originalAsar, `win${/64$/.test(platform) ? 32 : 64}`); - } else { - throw ex; - } - } - } catch (ex) { - const appDir = originalAsar.path.replace(/\.\w+$/, ""); - - console.log("Extracting " + originalAsar.path); - await asar.extractAll(originalAsar.path, appDir); - - await crack(appDir); - await local(appDir); - } - - console.log("Done!"); -})(); diff --git a/src/local.js b/src/local.js deleted file mode 100644 index 9da36ef..0000000 --- a/src/local.js +++ /dev/null @@ -1,65 +0,0 @@ -"use strict"; -const assert = require("assert"); -const fs = require("fs-extra"); -const path = require("path"); - -function assign (target, source) { - Object.keys(source).forEach(key => { - if (/^(number|boolean|string)$/.test(typeof source[key])) { - target[key] = source[key]; - } else if (source[key]) { - target[key] = assign(target[key] || {}, source[key]); - } - }); - return target; -} - -function deepStrictEqual (...args) { - try { - assert.deepStrictEqual(...args); - } catch (ex) { - return false; - } - return true; -} - -async function readJson (file) { - try { - return JSON.parse(await fs.readFile(file, "utf8")); - } catch (ex) { - return {}; - } -} - -module.exports = async (appDir) => { - console.log("Add locales to " + appDir); - const rootPaths = [ - path.join(__dirname, "strings"), - path.join(appDir, "src/strings"), - ]; - - const ens = await Promise.all( - rootPaths.map(root => readJson(path.join(root, "en-us.json"))) - ); - - const sameEn = deepStrictEqual(...ens); - - let langs = await fs.readdir(rootPaths[0]); - langs = langs.filter(lang => !/^en-us.json$/i.test(lang)); - - await Promise.all( - langs.map(async lang => { - console.log("src/strings/" + lang); - const filePaths = rootPaths.map(root => path.join(root, lang)); - if (sameEn) { - await fs.copyFile(...filePaths); - } else { - const contents = await Promise.all(filePaths.map(readJson)); - if (deepStrictEqual(...contents)) { - return; - } - await fs.writeFile(filePaths[1], JSON.stringify(assign(...contents.reverse()), 0, 2)); - } - }) - ); -}; diff --git a/strings/en-us.json b/strings/en-us.json index a71e361..fe64abf 100644 --- a/strings/en-us.json +++ b/strings/en-us.json @@ -2,40 +2,40 @@ "languageOption": { "label": "English (US)", "value": "en-us", - "version": "6.5.3" + "version": "6.5.4" }, "menuStrings": { "AboutProduct": "About <%= productName %>", "CheckForUpdateWithLastCheckedTime": "Check for Update <%= updateLastCheckedTime %>", "CheckingForUpdates": "Checking for updates...", - "Clo&neRepo": "Clo&ne Repo", "CloneRepo": "Clone Repo", + "Clo&neRepo": "Clo&ne Repo", "CloseTab": "Close Tab", - "C&opy": "C&opy", "Copy": "Copy", - "&Cut": "&Cut", + "C&opy": "C&opy", "Cut": "Cut", + "&Cut": "&Cut", "Developer": "Developer", "DownloadingUpdate": "Downloading Update...", "DownloadUpdate": "Download Update", - "&Edit": "&Edit", "Edit": "Edit", + "&Edit": "&Edit", "E&xit": "E&xit", "Favorites": "Favorites", - "&File": "&File", "File": "File", + "&File": "&File", "FollowUsOnTwitter": "Follow Us on Twitter", "GetSupport": "Get Support", - "&Help": "&Help", "Help": "Help", + "&Help": "&Help", "Hide": "Hide GitKraken", "HideOthers": "Hide Others", - "&InitRepo": "&Init Repo", "InitRepo": "Init Repo", + "&InitRepo": "&Init Repo", "KeyboardShortcuts": "Keyboard Shortcuts", "Minimize": "Minimize", - "&NewTab": "&New Tab", "NewTab": "New Tab", + "&NewTab": "&New Tab", "OpenFavorite1": "Open Favorite Repo 1", "OpenFavorite2": "Open Favorite Repo 2", "OpenFavorite3": "Open Favorite Repo 3", @@ -47,27 +47,27 @@ "OpenFavorite9": "Open Favorite Repo 9", "OpenFuzzyFinder": "Open Fuzzy Finder", "OpenInFileManager": "Open in File Manager", - "&OpenRepo": "&Open Repo", "OpenRepo": "Open Repo", - "Open&Terminal": "Open &Terminal", + "&OpenRepo": "&Open Repo", "OpenTerminal": "Open Terminal", - "&Paste": "&Paste", + "Open&Terminal": "Open &Terminal", "Paste": "Paste", - "&Preferences": "&Preferences...", + "&Paste": "&Paste", "Preferences": "Preferences...", + "&Preferences": "&Preferences...", "PrintPerformanceTimingsToTerminal": "Print Performance Timings to Terminal", "ProductName": "<%= productName %>", "Quit": "Quit GitKraken", - "&Redo": "&Redo", "Redo": "Redo", - "&Reload": "&Reload", + "&Redo": "&Redo", "Reload": "Reload", + "&Reload": "&Reload", "RestartAndInstallUpdate": "Restart and Install Update", "RunSystemTests": "Run System Tests...", "RunTests": "Run Tests...", "RunTestsWithCoverage": "Run Tests with Coverage...", - "Select&All": "Select &All", "SelectAll": "Select All", + "Select&All": "Select &All", "SelectNextTab": "Select Next Tab", "SelectPreviousTab": "Select Previous Tab", "SelectTab1": "Select Tab 1", @@ -85,14 +85,14 @@ "SignIntoDifferentAccount": "Sign into a Different Account", "SupportLogs": "Support Logs", "Tabs": "Tabs", - "ToggleDeveloper&Tools": "Toggle Developer &Tools", "ToggleDeveloperTools": "Toggle Developer Tools", - "Toggle&FullScreen": "Toggle &Full Screen", + "ToggleDeveloper&Tools": "Toggle Developer &Tools", "ToggleFullScreen": "Toggle Full Screen", + "Toggle&FullScreen": "Toggle &Full Screen", "ToggleProStatus": "Toggle Pro Status", "ToggleReactPerfRecording": "Start/Stop React Perf Recording", - "&Undo": "&Undo", "Undo": "Undo", + "&Undo": "&Undo", "UpdateAvailableDownloadDeb": "Download .deb file", "UpdateAvailableDownloadRpm": "Download .rpm file", "UpdateAvailableDownloadTargz": "Download .tar.gz file", @@ -100,8 +100,8 @@ "UpdateDownloadedShowFile": "Update downloaded (show file)", "UpdateErroredAtTime": "Update Errored <%= updateErrorTime %>", "VersionNumber": "Version <%= version %> (<%= bitness %>-bit)", - "&View": "&View", "View": "View", + "&View": "&View", "ViewActivityLogs": "View Activity Logs", "ViewErrorLogs": "View Error Logs", "ViewPerformanceLogs": "View Performance Logs", @@ -247,8 +247,10 @@ "ContextMenu-CheckoutBranch": "Checkout {0}", "ContextMenu-CheckoutCommit": "Checkout this commit", "ContextMenu-CherrypickCommit": "Cherry pick commit", + "ContextMenu-CommitNotInGraph": "Can't jump to commit in graph, because it's not visible.", "ContextMenu-CopyBranchName": "Copy branch name to clipboard", "ContextMenu-CopyCommitId": "Copy commit id to clipboard", + "ContextMenu-CopyCommitSha": "Copy sha to clipboard", "ContextMenu-CopyFilePath": "Copy file path to clipboard", "ContextMenu-CopyTagName": "Copy tag name to clipboard", "ContextMenu-CreateAnnotatedTag": "Create annotated tag here", @@ -273,6 +275,7 @@ "ContextMenu-FetchRemote": "Fetch {0}", "ContextMenu-GitHubActionDelete": "Delete Workflow", "ContextMenu-GitHubActionEdit": "Edit Workflow", + "ContextMenu-GoToParentCommit": "Jump to commit in graph", "ContextMenu-HideAllStashes": "Hide all stashes", "ContextMenu-HideAllTags": "Hide all tags", "ContextMenu-MergeBranchIntoBranch": "Merge {0} into {1}", @@ -950,6 +953,7 @@ "LinuxUpdate-DownloadRpmUpdateButtonLabel": ".rpm", "LinuxUpdate-DownloadTarGzUpdateButtonLabel": ".tar.gz", "LinuxUpdate-ShowDownloadedUpdateButtonLabel": "Update Downloaded (Show File)", + "LinuxUpdate-SnapClassicIsAvailable": "Snap Update Announcement", "LinuxUpdate-SomethingWentWrong": "Something went wrong when downloading the update", "LoadingDiffWithEllipsis": "Loading diff...", "LoadingWithEllipsis": "Loading...", @@ -1578,6 +1582,13 @@ "ShowPricingButtonLabel": "Show me pricing for GitKraken Pro", "ShPath-ConfirmPath": "This repo needs sh to run GitHooks. Is {0} the path to your sh?", "SkipCommitButtonLabel": "Skip Commit", + "SnapClassicUpdate-ClassicConfinement": "classic confinement", + "SnapClassicUpdate-Details": "We are changing the GitKraken snap package to use {0}. Here's what we improved by switching to classic confinement", + "SnapClassicUpdate-GitHookSupport": "Full Git Hook support", + "SnapClassicUpdate-GPGSupport": "Full GPG support", + "SnapClassicUpdate-LFSSupport": "Full LFS support", + "SnapClassicUpdate-SSHSupport": "Full SSH support", + "SnapClassicUpdate-ToGetNextUpdate": "To get the next update, you will need to reinstall the package with", "SoloBranch": "Solo this branch", "SSHConfig": "SSH Config", "SSHConfig-GenerateNewKey": "Generate new Private/Public key", @@ -1830,6 +1841,7 @@ "View-AutoUpdate": "Choose Installer", "View-AutoUpdate-Downloaded": "Download completed", "View-AutoUpdate-Downloading": "Downloading update", + "View-AutoUpdate-SnapClassicIsAvailable": "A Reinstall Is Required", "View-AutoUpdate-SomethingWentWrong": "Something went wrong", "ViewDiffToolSettings": "View diff tool settings", "View-GitHookFailureLog": "Hook Log", diff --git a/strings/ja.json b/strings/ja.json index 7ada3d4..1db93a9 100644 --- a/strings/ja.json +++ b/strings/ja.json @@ -7,34 +7,33 @@ "AboutProduct": "<%= productName %>について", "CheckForUpdateWithLastCheckedTime": "アップデートをチェック <%= updateLastCheckedTime %>", "CheckingForUpdates": "アップデートをチェックしています...", - "Clo&neRepo": "リポジトリをClone(&N)", "CloneRepo": "リポジトリをClone", + "Clo&neRepo": "リポジトリをClone(&N)", "CloseTab": "タブを閉じる", - "C&opy": "コピー(&O)", "Copy": "コピー", - "&Cut": "カット(&C)", + "C&opy": "コピー(&O)", "Cut": "カット", - "Developer": "Developer", + "&Cut": "カット(&C)", "DownloadingUpdate": "アップデートをダウンロードしています...", "DownloadUpdate": "アップデートをダウンロードしました", - "&Edit": "編集(&E)", "Edit": "編集", + "&Edit": "編集(&E)", "E&xit": "終了(&X)", "Favorites": "お気に入り", - "&File": "ファイル(&F)", "File": "ファイル", + "&File": "ファイル(&F)", "FollowUsOnTwitter": "Twitterをフォローする", "GetSupport": "サポートを受ける", - "&Help": "ヘルプ(&H)", "Help": "ヘルプ", + "&Help": "ヘルプ(&H)", "Hide": "GitKrakenを隠す", "HideOthers": "他を隠す", - "&InitRepo": "リポジトリを作成(&I)", "InitRepo": "リポジトリを作成", + "&InitRepo": "リポジトリを作成(&I)", "KeyboardShortcuts": "キーボードショートカット", "Minimize": "最小化", - "&NewTab": "新しいタブ(&N)", "NewTab": "新しいタブ", + "&NewTab": "新しいタブ(&N)", "OpenFavorite1": "お気に入りリポジトリ1を開く", "OpenFavorite2": "お気に入りリポジトリ2を開く", "OpenFavorite3": "お気に入りリポジトリ3を開く", @@ -46,27 +45,22 @@ "OpenFavorite9": "お気に入りリポジトリ9を開く", "OpenFuzzyFinder": "Fuzzy Finderを開く", "OpenInFileManager": "ファイラで開く", - "&OpenRepo": "リポジトリを開く(&O)", "OpenRepo": "リポジトリを開く", - "Open&Terminal": "ターミナルで開く(&T)", + "&OpenRepo": "リポジトリを開く(&O)", "OpenTerminal": "ターミナルで開く", - "&Paste": "ペースト(&P)", + "Open&Terminal": "ターミナルで開く(&T)", "Paste": "ペースト", - "&Preferences": "設定(&P)...", + "&Paste": "ペースト(&P)", "Preferences": "設定...", - "PrintPerformanceTimingsToTerminal": "Print Performance Timings to Terminal", - "ProductName": "<%= productName %>", + "&Preferences": "設定(&P)...", "Quit": "GitKrakenを閉じる", - "&Redo": "やり直す(&R)", "Redo": "やり直す", - "&Reload": "再読み込み(&R)", + "&Redo": "やり直す(&R)", "Reload": "再読み込み", + "&Reload": "再読み込み(&R)", "RestartAndInstallUpdate": "アップデートをインストールして再起動", - "RunSystemTests": "Run System Tests...", - "RunTests": "Run Tests...", - "RunTestsWithCoverage": "Run Tests with Coverage...", - "Select&All": "すべてを選択(&A)", "SelectAll": "すべてを選択", + "Select&All": "すべてを選択(&A)", "SelectNextTab": "次のタブを選択", "SelectPreviousTab": "前のタブを選択", "SelectTab1": "タブ1を選択", @@ -85,13 +79,10 @@ "SupportLogs": "サポートログ", "Tabs": "タブ", "ToggleDeveloper&Tools": "Toggle Developer &Tools(&T)", - "ToggleDeveloperTools": "Toggle Developer Tools", - "Toggle&FullScreen": "フルスクリーンを切り替える(&F)", "ToggleFullScreen": "フルスクリーンを切り替える", - "ToggleProStatus": "Toggle Pro Status", - "ToggleReactPerfRecording": "Start/Stop React Perf Recording", - "&Undo": "取り消す(&U)", + "Toggle&FullScreen": "フルスクリーンを切り替える(&F)", "Undo": "取り消す", + "&Undo": "取り消す(&U)", "UpdateAvailableDownloadDeb": ".debファイルをダウンロード", "UpdateAvailableDownloadRpm": ".rpmファイルをダウンロード", "UpdateAvailableDownloadTargz": ".tar.gzファイルをダウンロード", @@ -99,8 +90,8 @@ "UpdateDownloadedShowFile": "アップデートをダウンロードしました(ファイルを見る)", "UpdateErroredAtTime": "アップデートエラー <%= updateErrorTime %>", "VersionNumber": "バージョン <%= version %>(<%= bitness %>-bit)", - "&View": "表示(&V)", "View": "表示", + "&View": "表示(&V)", "ViewActivityLogs": "アクティビティログを表示", "ViewErrorLogs": "エラーログを表示", "ViewPerformanceLogs": "パフォーマンスログを表示", @@ -113,21 +104,12 @@ "AbortCherrypickButtonLabel": "cherry-pickをやめる", "AbortMergeButtonLabel": "Mergeをやめる", "AbortRebaseButtonLabel": "Rebaseをやめる", - "About-AllRightsReserved": "All rights reserved", - "About-BuiltBy": "GitKraken is built by Axosoft in sunny Scottsdale, AZ", - "About-Libgit2License": "GitKraken uses the libgit2 library via NodeGit under the GNU public license with a linking exception", - "About-OpenSource": "It uses some fine open source projects:", - "About-OpenSourceLicenses": "Dependent Open Source Licenses", - "About-TermsOfService": "Terms of Service", "ActivityLogButtonTooltip": "アクティビティログ", "AllFilesInFolder": "'{0}/' のすべてのファイル", "AllFilesWithSameExtension": "拡張子 '{0}' のすべてのファイル", "AmendOrRewordPreviousCommitMessageButtonLabel": "メッセージを更新", "AmendPreviousCommitButtonLabel": "前のCommitをAmend", - "AmendPreviousCommitMessageButtonLabel": "Update Message", "AmendPreviousCommitMessageTip": "クリックしてcommitメッセージをamendする", - "AnnotatedTag": "Annotated Tag", - "Application": "Application", "Apply": "適用", "ApplyStashButtonTooltip": "Stashをapply", "ApplyStashError-CloseDetailPanel": "Stashを適用する場合は、変更を保存してからやり直してください。", @@ -135,21 +117,13 @@ "Authentication-ForgetAll": "すべて削除", "Authentication-ForgetAllCredentials": "ユーザ名とパスワードをすべて削除", "Authentication-NoCredentialsToRemove": "削除された機密情報はGitKrakenからも完全に削除されます", - "Author": "Author", - "AuthoredLabel": "authored", "AutoUpdate-RestartGitKrakenAndInstallUpdateButtonLabel": "アップデートの準備ができました(GitKrakenを再起動)", - "branch": "branch", - "Branch": "Branch", - "BranchButtonTooltip": "Branch", "BreadCrumbs-FavoritesHeader": "お気に入り", "BreadCrumbs-RecentsHeader": "最近開いたリポジトリ", "BrowseButtonLabel": "表示", - "By": "{0} by ", - "Bytes": "bytes", "CancelAmendPreviousCommitMessageButtonLabel": "Amendをやめる", "CancelButtonLabel": "キャンセル", "CancelRewordPreviousCommitMessageButtonLabel": "rewordをやめる", - "ChangeRepo-CloneRepo": "Clone", "ChangeRepo-InitRepo": "作成", "ChangeRepo-OpenRepo": "開く", "CheckingOutBranch": "Branchをcheckout中", @@ -162,33 +136,22 @@ "CloneRepo-CloneRepoButtonLabel": "リポジトリをclone!", "CloneRepo-CloneSuccess": "リポジトリ'{0}'のcloneに成功しました", "CloneRepo-CloneViaUrl": "URLでclone", - "CloneRepo-RepoToCloneUrl": "URL", "CloneRepo-RepoToCloneViaService": "Cloneするリポジトリ", "Close": "閉じる", "CloseRepo-CloseFailed": "閉じることができませんでした", "CloseRepoError-CloseDetailPanel": "リポジトリを閉じる場合は、変更を保存してからやり直してください。", - "CoauthorsLabel": "Co-authors:", - "Commit": "Commit", "CommitAllChangesShortcutTip": "Shift-Enterですべての変更をCommitします", "CommitAndMergeButtonLabel": "Mergeしてcommit", "CommitButtonLabelAddMessage": "Commitメッセージを入力してください", "CommitButtonLabelPlural": "{0}つのファイルの変更をCommit", "CommitButtonLabelSingular": "1つのファイルの変更をCommit", "CommitButtonLabelStageFiles": "まずはファイルや変更をstageしましょう", - "CommitDetailPanel-AndTheWIP": "and the WIP", "CommitDetailPanel-DiffBetweenACommitAndTheWIP": "commitとthe WIP間のdiffを表示中", "CommitDetailPanel-DiffBetweenCommitsTitle": "{0} commits間のdiffを表示中 ", "CommitDetailPanel-DiffBetweenTwoCommits": "2 commits間のdiffを表示中", - "CommitDetailPanel-MergeConflictTitle": "Merge Conflicts", "CommitDetailPanel-MergeMessage": "merge中({1} <- {0})", - "CommitDetailPanel-MergeTitle": "Merge", "CommitDetailPanel-UnsupportedRebaseMessage": "他のアプリケーションでrebaseを実行している間、GitKrakenの機能は制限されます", "CommitDetailPanel-UnsupportedRebaseTitle": "外部でRebaseされています", - "CommitDiffSection-NFilesAdded": "{0} added", - "CommitDiffSection-NFilesDeleted": "{0} deleted", - "CommitDiffSection-NFilesModified": "{0} modified", - "CommitDiffSection-NFilesRenamed": "{0} renamed", - "CommitLabel": "commit:", "CommitMessage-CommitMessageLabel": "Commitメッセージ", "CommitMessage-DescriptionPlaceholder": "概要", "CommitMessage-RemoteBranchCreated": "Branch: {0} を作成", @@ -196,7 +159,6 @@ "CommitRevertLabel": "RevertをCommit", "CommitSearch-NoResults": "0件", "CommitSearch-Placeholder": "commitを探す", - "CommitSearch-ResultsText": "{0} of {1}", "CommitTemplate": "Commitテンプレート", "CommitTemplates-CommitTemplateDocumentation": "Git commitテンプレートドキュメント", "CommitTemplates-Description": "概要", @@ -209,7 +171,6 @@ "CommitTemplates-TitleLimitExceeded": "Commitのタイトルが上限({0})を超えました!", "CommitTemplates-TitleLimitHelpText": "Commitのタイトルに {0}/{1} 文字使っています", "CommitTemplates-UseTemplateForCommitMessages": "このテンプレートをcommitメッセージに適用", - "CommitterLabel": "committed", "ConfirmationMessage-ClonePullRequestHead": "\"{1}\"のremoteやcheckoutの対象として\"{0}\"を追加しますか?", "ConfirmationMessage-CreateCommitForMerge": "mergeの変更をすぐにcommitしてもよろしいですか?", "ConfirmationMessage-Delete1LocalBranchInFolder": "これは破壊的な操作です。\"{0}\"の中にある1つのlocal branchを本当に削除しますか?", @@ -228,7 +189,6 @@ "ConfirmationMessage-ImmediatelyCommitCherryPick": "cherry-pickの変更をすぐにcommitしますか?", "ConfirmationMessage-ImmediatelyCommitRevert": "revertの変更をすぐにcommitしますか?", "ConfirmationMessage-InitEmptyRepo": "リポジトリ'{0}'を開くにはinitial commitが必要です。GitKrakenがcommitしてもよろしいですか?", - "ConfirmationMessage-InitRepo": "Could not find a compatible repository at '{0}'. Do you want to create a new repository there?", "ConfirmationMessage-MergeConflictStashAndCheckout": "Merge conflictsがあります。Mergeを続けるには変更や {0} branchをstashする必要があります。Stashしてもよろしいですか?", "ConfirmationMessage-PersistConflictToDisk": "本当に保存してよろしいですか?", "ConfirmationMessage-RebaseRequiresCheckout": "rebaseを始めるにはbranch\"{0}\"をcheckoutする必要があります。checkoutを行ってもよろしいですか?", @@ -240,7 +200,6 @@ "ConfirmationMessage-UnstageAndRemoveFiles": "選択中のファイルがunstageされ削除されます。処理を続けますか?", "ConfirmationMessage-WouldYouLikeToDeleteTagFromAllRemotes": "remoteからtag\"{0}\"を削除しますか?", "ConnectingWithEllipsis": "接続しています...", - "ContextMenu-AmendCommitMessage": "Edit commit message", "ContextMenu-AmendOrRewordCommitMessage": "Commitメッセージを編集", "ContextMenu-AnnotateTag": "{0} にannotateを追加", "ContextMenu-CheckoutBranch": "{0} をcheckout", @@ -279,7 +238,6 @@ "ContextMenu-MoveCommitUp": "commitを上に移動", "ContextMenu-MoveXCommitsDown": "{0}つのcommitを下に移動", "ContextMenu-MoveXCommitsUp": "{0}つのcommitを上に移動", - "ContextMenu-PickCommit": "Pick commit", "ContextMenu-PushAndStartPullRequest": "{0} をpushしてpull requestを作成", "ContextMenu-PushAndStartPullRequestToRef": "{0} をpushして {1} にpull requestを作成", "ContextMenu-PushTagToRemote": "Tagをremoteにpush", @@ -287,8 +245,6 @@ "ContextMenu-PushXToEllipses": "{0} をpushするremoteを選択", "ContextMenu-PushXToY": "Push({0} -> {0})", "ContextMenu-RebaseBranchOntoBranch": "Rebase({1} <- {0})", - "ContextMenu-RebaseBranchOntoBranchInteractively": "Interactive Rebase {0} onto {1}", - "ContextMenu-RebaseXChildrenOfShaInteractively": "Interactive Rebase {0} children of {1}", "ContextMenu-RemoveRemote": "{0} を削除", "ContextMenu-RenameBranch": "{0} をリネーム", "ContextMenu-ResetBranchToThisCommit": "{0} のcommitをReset", @@ -296,11 +252,9 @@ "ContextMenu-ResetMixedWithHint": "Mixed - indexをリセットしてworking copyを残す", "ContextMenu-ResetSoftWithHint": "Soft - 変更を残す", "ContextMenu-RevertCommit": "CommitをRevert", - "ContextMenu-RewordCommit": "Reword commit", "ContextMenu-SetUpstream": "Upstreamを設定", "ContextMenu-ShowAllStashes": "Stashをすべて表示", "ContextMenu-ShowAllTags": "Tagをすべて表示", - "ContextMenu-SquashCommit": "Squash commit", "ContextMenu-SquashXCommits": "{0} commitをSquash", "ContextMenu-StartPullRequestFromY": "{0} からpull requestを作成", "ContextMenu-StartPullRequestToX": "{0} にpull requestを作成", @@ -317,7 +271,6 @@ "Create": "作成", "CreateFork-ForkSuccessfullyCreated": "{0}でforkが成功しました", "CreateStashError-CloseDetailPanel": "Stashする場合は、変更を保存してからやり直してください。", - "DateAuthored": "Author Date", "DefaultOptionTooltip": "デフォルト", "DeleteAndCommitLabel": "削除してコミット", "DeleteButtonLabel": "削除", @@ -343,8 +296,6 @@ "EditorPreferences": "エディタ", "EditorPreferences-DefaultFont": "{0}(デフォルト)", "EditorPreferences-EOLCharacter": "改行コード", - "EditorPreferences-EOLCharacterCRLF": "CRLF", - "EditorPreferences-EOLCharacterLF": "LF", "EditorPreferences-Font": "フォント", "EditorPreferences-FontSize": "フォントサイズ", "EditorPreferences-NoFontsFound": "フォントが見つかりません", @@ -352,7 +303,6 @@ "EditorPreferences-SyntaxHighlighting": "シンタックスハイライト", "EditorPreferences-TabSize": "タブサイズ", "EditorPreferences-WordWrap": "文字を折り返す", - "Enterprise": "ENTERPRISE", "EnterpriseConfiguration-CouldNotConnect": "サーバに接続できません。", "EnterpriseConfiguration-CouldNotParseURL": "URLが正しくありません。", "EnterpriseConfiguration-EnterHostname": "GitKrakenのダウンロードページにあるURLを貼りつけてください:", @@ -369,7 +319,6 @@ "Error-AzureDevops404GetProjects": "プロジェクトが見つかりません", "Error-AzureDevops404GetRepository": "リポジトリが見つかりません {0}/{1}", "Error-BitbucketServerForbidden": "Bitbucket Server: あなたのtokenに権限が無いため、操作が拒否されました", - "Error-BitbucketServerGeneric": "Bitbucket Server: {0}", "Error-BitbucketServerUnauthorized": "Bitbucket Server: {0}はPersonal Access Tokenで受け付けられませんでした", "Error-BitbucketServerUnknownErrorForResource": "Bitbucket Server: {0}の{1}エラーです。サーバからのレスポンス:{2}", "Error-BranchNameEmpty": "Branch名は必須です", @@ -415,7 +364,6 @@ "Error-GpgAnnotateFailedNotEnabled": "GPGキーの設定が存在しないため、sign annotated tagの作成に失敗しました", "Error-GpgBadPassphrase": "パスフレーズがよくありません", "Error-GpgCopyPublicKeyFailed": "公開GPGキーのコピーに失敗しました", - "Error-GpgGitConfigUpdate": "Unable to update git config", "Error-GpgKeyGenFailed": "GPGキーの生成に失敗しました", "Error-GpgKeyGenMissingNameOrEmail": "GPGキーの生成に失敗しました: 名前とメールアドレスは必須です", "Error-GpgNoKeyConfigured": "GPGキーの設定がありません", @@ -493,7 +441,6 @@ "Error-OpenDiffToolFailed": "Diffツールが開けませんでした", "Error-OpenMergeToolFailed": "Mergeツールが開けませんでした", "Error-OpenRepoInTerminalFailed": "ターミナルでリポジトリが開けませんでした", - "Error-PersistMergeToDisk": "Failed to persist merge to disk", "Error-PullFailed": "Pullに失敗しました", "Error-PullRequestFailed": "Pull requestの作成に失敗しました", "Error-PushFailed": "Pushに失敗しました", @@ -536,10 +483,8 @@ "File-Blame": "ファイルのBlame", "File-CanOnlyEditText": "テキストファイルのみが編集できます", "File-ConfirmDeletePath": "本当に'{0}'を削除してもよろしいですか?", - "FileContentsPanel-Binary": "Binary file", "FileContentsPanel-Deleted": "ファイルは削除されました", "FileContentsPanel-EmptyDiff": "ファイルは変更されていません。", - "FileContentsPanel-Tree": "Directory", "File-CouldNotCreate": "ファイルが作成できません", "File-CouldNotCreateOutOfRepo": "リポジトリ外にファイルを作成できません!", "File-CouldNotDelete": "ファイルが削除できません", @@ -552,8 +497,6 @@ "File-DoesNotExist": "ファイルがありません", "File-Edit": "ファイルを編集", "FileHistory": "ファイルの履歴", - "FileHistory-AuthorInfo": "Authored by {0} on {1}", - "FileHistory-BlameButtonLabel": "Blame", "FileHistory-CannotLinkToGraph": "このcommitはグラフ上で見ることができません", "FileHistory-CommitShaCopied": "Commit SHAをコピーしました!", "FileHistory-ContinueLooking": "もっと", @@ -563,7 +506,6 @@ "FileHistory-LinkToGraph": "{0} をグラフで見る", "FileHistory-NothingFound": "{0}({1})まで表示しました", "FileHistory-ShowBlame": "blameの詳細を表示", - "FileHistory-UnknownAuthorName": "Unknown", "FileMayStillHaveConflicts": "このファイルにはすでにconflictが存在するおそれがあります", "FileNode-1HiddenSelection": "1つのファイルが選択されました", "FileNodeListControls-FullPath": "パス", @@ -584,27 +526,14 @@ "File-ShowInFolderMac": "Finderで開く", "File-ShowInFolderMacWithName": "{0}をFinderで開く", "File-ShowInFolderWithName": "{0}をフォルダで開く", - "File-StatusAdded": "ADDED", - "File-StatusDeleted": "DELETED", - "File-StatusRenamed": "RENAMED", - "File-StatusRenamedFrom": "from", - "File-StatusRenamedTo": "to", "File-UnstageAndRemove": "Unstageしてファイルを削除", - "FileViewPanel-Blame": "Blame", "FileViewPanel-DiffFileMode": "{0}から{1}へファイルモードを変更する", - "FileViewPanel-DiffView": "Diff View", "FileViewPanel-Editable": "編集できます", "FileViewPanel-EditInWorkDir": "Working directoryで編集", "FileViewPanel-EditThisFile": "このファイルを編集", - "FileViewPanel-FileView": "File View", - "FileViewPanel-History": "History", - "FileViewPanel-HunkView": "Hunk View", "FileViewPanel-IgnoreWhiteSpace": "空白を除外", - "FileViewPanel-InlineView": "Inline View", "FileViewPanel-NextDiff": "次の変更へ", "FileViewPanel-PreviousDiff": "前の変更へ", - "FileViewPanel-SplitView": "Split View", - "FileViewPanel-ToggleSplitView": "Toggle Split View", "Filter": "フィルタ", "FinishSetupButtonLabel": "完了", "Folder-DiscardAllChanges": "フォルダのすべての変更を取り消す", @@ -614,94 +543,41 @@ "Folder-ResetAll": "フォルダをリセットする", "Folder-StageAll": "フォルダをStage", "Folder-UnstageAll": "フォルダをUnstage", - "ForcePushButtonLabel": "Force Push", - "Free": "FREE", "FreeBadgeTooltip": "オープンソースプロジェクトでの利用としてライセンスされています。クリックしてプランを見る。", - "FreeUserLicense": "FREE", - "FreeUserLicenseCamelCase": "Free", - "FuzzyFinder-BlameFilePrefix": "Blame", "FuzzyFinder-BlamePlaceholder": "誰が何をしたのか確認したいファイルを検索(例:its blame)", "FuzzyFinder-CheckoutPlaceholder": "checkoutするbranchを検索", - "FuzzyFinder-CheckoutRefPrefix": "Checkout", - "FuzzyFinder-CloseTab": "Close Tab", - "FuzzyFinder-ConfigureGitFlow": "Configure Git Flow", - "FuzzyFinder-ConfigureGpgSigning": "Configure GPG Signing", - "FuzzyFinder-ConfigureLfs": "Configure LFS", - "FuzzyFinder-CreateAnnotatedTag": "Create Annotated Tag", "FuzzyFinder-CreateBranch": "Branchを作成", - "FuzzyFinder-CreateFileKeywords": "create new file", "FuzzyFinder-CreateFilePlaceholder": "新しいファイル名を入力", - "FuzzyFinder-CreateFilePrefix": "Create File", "FuzzyFinder-CreateTag": "Tagを作成", "FuzzyFinder-DefaultPlaceHolder": "コマンドやアクションを検索(例:Open Repo)", "FuzzyFinder-DeleteFilePlaceholder": "削除するファイルを検索", - "FuzzyFinder-DeleteFilePrefix": "Delete File", - "FuzzyFinder-DevPlaceholder": "Order Chipotle", - "FuzzyFinder-DevPrefix": "Dev", - "FuzzyFinder-DiscardAllKeywords": "reset hard all", "FuzzyFinder-EditFilePlaceholder": "編集するファイルを検索", - "FuzzyFinder-EditFilePrefix": "Edit File", - "FuzzyFinder-FileHistoryPrefix": "History", - "FuzzyFinder-GitFlowPrefix": "Git Flow: ", "FuzzyFinder-HistoryPlaceholder": "履歴やblameを見たいファイルを検索", - "FuzzyFinder-InitRepoKeywords": "initialize", - "FuzzyFinder-JoinTheLightOrDarkSide": "Join the {0} side", - "FuzzyFinder-JoinTheLightSlashDarkSide": "Join the Dark/Light side", - "FuzzyFinder-OpenFile": "Open File", - "FuzzyFinder-OpenFileInExternalCompareTool": "Open in External Diff/Merge Tool", "FuzzyFinder-OpenFilePlaceholder": "開くファイルを検索", - "FuzzyFinder-OpenGitFlowPanel": "Git Flow", - "FuzzyFinder-OpenInFileManagerKeywords": "folder explorer finder", - "FuzzyFinder-OpenInTerminalKeywords": "command line console", "FuzzyFinder-OpenRepoPlaceholder": "開くリポジトリを検索", - "FuzzyFinder-OpenRepoPrefix": "Open Repo", - "FuzzyFinder-RefPrefix": "Branch: ", "FuzzyFinder-RenameBranch": "Branchをリネーム", - "FuzzyFinder-RepoPrefix": "Repo Management: ", - "FuzzyFinder-SearchCommits": "Search Commits", "FuzzyFinder-SearchCommitsPlaceholder": "メッセージ、sha、authorでcommitを検索", - "FuzzyFinder-Settings": "Settings", - "FuzzyFinder-SettingsKeywords": "preferences options", - "FuzzyFinder-StartPullRequest": "Start Pull Request", - "FuzzyFinder-StartPullRequestKeywords": "New Create Pull Request", - "FuzzyFinder-StashPrefix": "Stash: ", - "FuzzyFinder-SwitchProfile": "Switch to Profile", "FuzzyFinder-SwitchProfilePlaceholder": "プロフィールの切り替え先のユーザを検索", - "FuzzyFinder-ToggleSyntaxHighlighting": "Toggle Syntax Highlighting", - "FuzzyFinder-ToggleTheme": "Toggle Theme", - "FuzzyFinder-ToggleToolbarLabels": "Toggle Toolbar Labels", - "FuzzyFinder-ViewErrorLogs": "View Error Logs", - "FuzzyFinder-ViewFile": "View File", "FuzzyFinder-ViewFilePlaceholder": "表示するファイルを検索", - "FuzzyFinder-ViewPerformanceLogs": "View Performance Logs", - "FuzzyFinder-ViewReleaseNotes": "View Release Notes", - "FuzzyFinder-ViewReleaseNotesKeywords": "patch notes changelog", - "FuzzyFinder-ViewWorkingDirectoryChanges": "View Working Directory Changes", - "FuzzyFinder-ViewWorkingDirectoryChangesKeywords": "changes wip workdir working", "GeneralPreferences": "一般", "GeneralPreferences-AutoFetchInterval": "Auto-Fetchの間隔", "GeneralPreferences-AutoFetchIntervalHelp": "0から60分の間で設定できます(0にするとAuto-FetchがOffになります)。\nFetchは表示中のremoteに対して行われます。", "GeneralPreferences-AutoFetchIntervalWarning": "remoteが多いとパフォーマンスに影響します。", "GeneralPreferences-AutoFetchIntervalWarningWithLfs": "remoteが多いとパフォーマンスに影響します。LFSのオブジェクトは自動でfetchされません。", - "GeneralPreferences-AutoPrune": "Auto-Prune", "GeneralPreferences-CustomTerminalCmd": "カスタムターミナルコマンド", "GeneralPreferences-CustomTerminalCmdHelp": "コマンドは新しいターミナルが開いたときに実行されます。\n%dを使うとリポジトリのパスで置換されます。", "GeneralPreferences-DefaultTerminal": "デフォルトターミナル", "GeneralPreferences-DeleteOrigAfterMerge": "Merge後に \".orig\" ファイルを削除", - "GeneralPreferences-DiffTool": "Diff Tool", "GeneralPreferences-ExternalDiffTool": "外部Diffツール", "GeneralPreferences-ExternalMergeTool": "外部Mergeツール", "GeneralPreferences-GitConfigDefault": "Gitコンフィグのデフォルト", - "GeneralPreferences-Longpaths": "Longpaths", "GeneralPreferences-LongpathsHelp": "Windowsはデフォルトで、260文字未満のファイルパスしか扱えません。これを有効にすると長いファイルパスもサポートされます。", "GeneralPreferences-MaxCommitsToShowInGraph": "グラフでの最大commit数", "GeneralPreferences-MaxCommitsToShowInGraphHelp": "最小2000", "GeneralPreferences-MaxCommitsToShowInGraphWarning": "この数値を大きくするとパフォーマンスに影響する恐れがあります。", - "GeneralPreferences-MergeTool": "Merge Tool", "GeneralPreferences-MergeToolHelp": "(任意)Mergeツールを設定する", "GeneralPreferences-OptIntoAnalytics": "AxosoftにGitKrakenの利用データを送信する", "GeneralPreferences-OptIntoBugReporting": "AxosoftにGitKrakenのバグレポートを送信する", - "GeneralPreferences-RememberLastOpenedRepository": "Remember last opened repository on startup", "GeneralPreferences-RememberTabs": "タブを記憶する", "GeneralPreferences-ShowAllCommitsInGraph": "グラフですべてのcommitを表示する", "GeneralPreferences-ShowAllCommitsInGraphWarning": "有効にするとパフォーマンスに影響する恐れがあります。", @@ -711,24 +587,18 @@ "GeneralPreferences-UseSameDiffToolHelp": "Diffの表示に設定されたMergeツールを使う", "GeneralPreferences-WindowsShPathLocation": "sh.exeのパス", "GeneralPreferences-WindowsShPathLocationHelp": "sh.exeのパスが必要なのはgit hooksを利用している場合のみです。\nsh.exeは「Git for Windows」にバンドルされていて、\nProgram Files\\Git\\binなどにあります。\n存在しない場合は「Git for Windows」のインストールが必要です。", - "GenerateButtonLabel": "Generate", "GeneratingWithEllipsis": "作成しています...", "GetSupport": "サポートを受ける", "GetSupport-CantFindWhatYouNeed": "あなたがお探しのものが見つからない場合は、以下からリクエストを送ってください。", "GetSupport-CheckOutOur": "GitKrakenの ", - "GetSupport-DefaultSubject": "Support Question for GitKraken ({0})", "GetSupport-ForDocumentationAndTutorials": " でドキュメントやチュートリアルをチェックしてください!", "GetSupport-FreeUserUpSell": "GitKrakenは多くの方に利用されているため、GitKraken Proを利用されている方のみサポートを受けることができます。", "GetSupport-Subject": "題名", "GetSupport-SupportQuestion": "サポートへの質問", "GetSupport-SupportSite": "サポートサイト", "GitConfig": "Gitコンフィグ", - "GitConfig-AutoCRLF": "AutoCRLF", "GitConfig-Email": "メール", "GitConfig-Name": "名前", - "GitFlow": "Git Flow", - "GitFlow-Branches": "Branches", - "GitFlowButtonTooltip": "Git Flow", "GitFlow-CannotFinishFeatureMissingDevelop": "{0} branchにはfeatureの完了が必要です", "GitFlow-CannotFinishFeatureMissingRef": "featureは完了していません", "GitFlow-CannotFinishHotfixMissingBoth": "{0} と {1} branchにはhotfixの完了が必要です", @@ -743,9 +613,7 @@ "GitFlow-CannotStartHotfixMissingMaster": "{0} branchにはhotfixの開始が必要です", "GitFlow-CannotStartReleaseMissingDevelop": "{0} branchにはreleaseの開始が必要です", "GitFlow-DeleteBranch": "branchを削除", - "GitFlow-Develop": "Develop", "GitFlow-Exit": "Git Flowを終了", - "GitFlow-Feature": "Feature", "GitFlow-Finish": "完了", "GitFlow-Finish-Branch": "{0} を完了", "GitFlow-FinishFeature": "featureを完了", @@ -754,16 +622,12 @@ "GitFlow-FinishHotfixSuccess": "hotfixが完了しました:'{0}'", "GitFlow-FinishRelease": "releaseを完了", "GitFlow-FinishReleaseSuccess": "releaseが完了しました:'{0}'", - "GitFlow-Hotfix": "Hotfix", "GitFlow-Init": "Git Flowを初期化", "GitFlow-Init-Failure": "Git Flowの初期化に失敗しました", "GitFlow-Init-NoRepo": "Git Flowの初期化にはまずリポジトリを開く必要があります", "GitFlow-Init-Success": "Git Flowの初期化に成功しました", "GitFlow-LatestDevelop": "{0} の最新から", - "GitFlow-Master": "Master", - "GitFlow-Prefixes": "Prefixes", "GitFlow-RebaseOnDevelop": "{0} にrebase", - "GitFlow-Release": "Release", "GitFlow-Start": "開始", "GitFlow-StartAt": "開始しました:", "GitFlow-StartFeature": "featureを開始", @@ -775,16 +639,12 @@ "GitFlow-TagMessage": "tagメッセージ", "GitFlow-Update": "Git Flowの設定を更新", "GitFlow-UpdateWarning": "prefixを変更すると既存のprefixを持ったbranchがGit Flowで無視されます。", - "GitFlow-VersionTag": "Version Tag", "GitFlow-WorkingCopy": "現在のbranchから", "GitHook-ExitCode": "Git Hookが{0}で終了しました", "GitHook-ExitedSuccessfully": "{0}: code 0で終了しました", "GitHook-FailedToRun": "Git Hookの実行に失敗しました。", "GitHook-HookFailed": "{0} に失敗", - "GitHook-NeedsCredentials": "A Git Hook needs your credentials", "GitHook-OpenFailureLogModal": "Hookの出力を表示", - "GitHook-OpenLogExternally": "Open in External Application", - "GitHook-Output": "output", "GitHook-PermissionDenied": "{0} は実行権限がありません!", "GitHook-PrePushDidNotRun": "Pre-push hookは実行できませんでした", "GitHook-PrePushDidNotRunReason": "{0} は {1} のため実行できませんでした", @@ -798,7 +658,6 @@ "GitHubActionForm-WorkflowFileName": "ファイル名", "GitHubActionForm-WorkflowName": "ワークフローの名前", "GitHubActionsTemplates-AdditionalTemplatesCategory": "追加のテンプレート", - "GitHubActionsTemplates-CCPPWithMake": "C/C++ with Make", "GitHubActionsTemplates-DefaultCategory": "基本のテンプレート", "GitHubActions-WorkflowFileExists": "{0}はすでに存在します", "GitHubActionTemplates-BlankTemplate": "空のワークフロー", @@ -825,17 +684,13 @@ "Gpg-VerificationInfoUntrusted": "キーが信頼できないため検証に失敗しました", "Gpg-VerificationInfoValid": "検証に成功しました", "Gpg-VerificationKeyId": "キーID:", - "Gpg-VerificationPrimaryUserId": "Primary User ID:", "Gpg-VerificationTitle": "GPG署名の詳細", - "Gpg-VerificationTrust": "Trust:", "Graph-AdjustCommitCount": "{0} コミットを表示しています。表示件数を変更する:", "Graph-Preferences": "設定", "Ignore": "除外", "IgnoreAllFilesInFolder": "'{0}/' のすべてのファイルを除外", "IgnoreFile": "'{0}' を除外", "IgnoreNFiles": "{0}つのファイルを除外", - "IndividualLicense": "INDIVIDUAL", - "IndividualLicenseCamelCase": "Individual", "InitializeButtonLabel": "初期化", "InitRepo-CreateRepoAndCloneButtonLabel": "リポジトリを作成してClone", "InitRepo-CreateRepoButtonLabel": "リポジトリを作成", @@ -852,32 +707,25 @@ "InitRepo-InitLocally": "Localのみ", "InitRepo-License": "ライセンス(任意)", "InitRepo-NewRepoPath": "新しいリポジトリのパス", - "InitRepo-PrivateAccess": "Private", - "InitRepo-PublicAccess": "Public", "KeyBinding-CloseCurrentTab": "現在のタブを閉じる", - "Keybinding-CloseFileOrRepo": "Close File/Repo", "KeyBinding-CloseFileOrTab": "ファイル/タブを閉じる", "KeyBinding-Commit": "Commit(メッセージが入力されている場合)", "KeyBinding-CommitWithStage": "すべてstageしてcommit(メッセージが入力されている場合)", "KeyBinding-CreateBranch": "Branchを作成", - "KeyBinding-Fetch": "Fetch All", "KeyBinding-FilterBranches": "左のパネルをフィルタ", "KeyBindingFilter-Placeholder": "ショートカットをフィルタ({0} + F)", "KeyBinding-FocusCommitMessage": "commitメッセージにフォーカス", "KeyBinding-FullScreen": "フルスクリーンの切り替え", "KeyBinding-FuzzyFinderHistory": "ファイルを検索してhistoryやblameを表示", "Keybinding-FuzzyFinderOpenRepo": "Fuzzy Finderでリポジトリを開く", - "KeyBindingHeader-FuzzyFinder": "Fuzzy Finder", "KeyBindingHeader-Navigation": "ナビゲーション", "KeyBindingHeader-RepoActions": "リポジトリの操作", - "KeyBindingHeader-UI": "UI", "KeyBinding-JumpToNextTab": "次のタブへ移動", "KeyBinding-JumpToPreviousTab": "前のタブへ移動", "KeyBinding-JumpToSpecificTab": "指定したタブへ移動", "KeyBinding-OpenFileInExternalDiffOrMergeTool": "選択したファイルを外部のDiff/Mergeツールで開く", "KeyBinding-OpenNewTab": "新しいタブを開く", "Keybinding-OpenRepoInTerminal": "ターミナルでリポジトリを開く", - "KeyBinding-or": "or", "KeyBinding-SearchCommits": "Commitを検索", "KeyBinding-SelectFirst": "最初の要素を選択", "KeyBinding-SelectLast": "最後の要素を選択", @@ -903,7 +751,6 @@ "Lfs-AllFilesInFolder": "'{0}/'のファイルをすべてtrack", "Lfs-AllFilesWithSameExtension": "拡張子'{0}'をすべてtrack", "Lfs-Checkout": "LFSファイルをすべてcheckout", - "Lfs-CheckoutHeader": "Checkout", "Lfs-Commands": "LFSコマンド", "Lfs-ContinueWithoutLfs": "LFSなしで続ける", "Lfs-ErrorCheckout": "LFSのCheckout中にエラーが発生しました", @@ -912,47 +759,36 @@ "Lfs-ErrorPull": "LFSのPull中にエラーが発生しました", "Lfs-ErrorPush": "LFSのPush中にエラーが発生しました", "Lfs-Fetch": "LFSファイルをすべてfetch", - "Lfs-FetchHeader": "Fetch", "Lfs-HasNotBeenInitialized": "{0}でLFSは初期化されていません", "Lfs-InitializeLfs": "LFSを初期化", "Lfs-InitializeLfsOnThisRepo": "このリポジトリでLFSを初期化", "Lfs-InitializeWithLfs": "LFSを初期化する", - "Lfs-IsWorking": "Working...", "Lfs-LfsNotInstalledMessage": "このリポジトリにはLFSが必要ですがまだインストールされていません。LFSで管理されたファイルを変更すると、リポジトリに悪影響を及ぼす可能性があります。LFSのインストールはサポートサイトをご覧ください。", "Lfs-LfsNotProperVersionMessage": "GitまたはLFSのバージョンが古いです。LFSで管理されたファイルを変更すると、リポジトリに悪影響を及ぼす可能性があります。LFSのインストールはサポートサイトをご覧ください。", "Lfs-NeedsYourCredentials": "LFSには認証情報が必要です", "Lfs-NewPattern": "新しいパターンを追加", - "Lfs-PreferencesHeader": "LFS", "Lfs-Prune": "ローカルのLFSリポジトリをprune", - "Lfs-PruneHeader": "Prune", "Lfs-Pull": "LFSファイルをすべてpull", - "Lfs-PullHeader": "Pull", "Lfs-PullLfsNow": "LFSファイルをすべてpullしてもよろしいですか?", "Lfs-Push": "LFSファイルをすべてpush", - "Lfs-PushHeader": "Push", "Lfs-SettingsHeader": "LFS設定", "Lfs-SuccessCheckout": "LFSのcheckoutに成功しました", "Lfs-SuccessFetch": "LFSのfetchに成功しました", "Lfs-SuccessPrune": "LFSpruneに成功しました", "Lfs-SuccessPull": "LFSのpullに成功しました", "Lfs-SuccessPush": "LFSのpushに成功しました", - "Lfs-TrackFile": "Track '{0}'", "Lfs-TrackingPatternPlaceholder": "パターンを入力して下さい(例:*.zip)", "Lfs-TrackingPatterns": "Trackingパターン", "Lfs-UpToDate": "LFSファイルは最新です", "Lfs-ViewGitattributes": ".gitattributesをエディタで見る", "Lfs-VisitSupportDocs": "ドキュメントを見る", "LinuxUpdate-AvailableStatus": "アップデートがあります({0})", - "LinuxUpdate-DownloadDebUpdateButtonLabel": ".deb", "LinuxUpdate-Downloaded": "{0}のダウンロードが完了しました", "LinuxUpdate-Downloading": "{0}をダウンロードしています...", - "LinuxUpdate-DownloadRpmUpdateButtonLabel": ".rpm", - "LinuxUpdate-DownloadTarGzUpdateButtonLabel": ".tar.gz", "LinuxUpdate-ShowDownloadedUpdateButtonLabel": "アップデートのダウンロードをしました(ファイルを見る)", "LinuxUpdate-SomethingWentWrong": "アップデートのダウンロードに失敗しました", "LoadingDiffWithEllipsis": "Diffを読み込み中...", "LoadingWithEllipsis": "読み込み中...", - "Local": "Local", "Log": "ログ", "LogInButtonLabel": "ログイン", "MarkAllResolved": "すべて解決済みにする", @@ -960,11 +796,8 @@ "MarkAsResolved": "解決済みにする", "MarkNConflicted": "{0}つを解決済みにする", "MarkNResolved": "{0}つを解決済みにする", - "Merge-A": "A", "Merge-AutoResolved": "Mergeツールが自動でconflictを解決しました", - "Merge-B": "B", "Merge-BinaryFile": "バイナリファイル", - "Merge-Commit": "Commit", "MergeConflictMessagePlural": "{1}にmerge中に{0}つのファイルでconflictが発生しました", "MergeConflictMessageSingular": "{0}にmerge中に1つのファイルでconflictが発生しました", "MergeConflictsPanel-1ConflictMustBeResolved": "続ける前に1つのconflictを解決してください", @@ -977,7 +810,6 @@ "MergedRemoteBranchToRef": "Merge({1} <- remote-tracking branch '{0}')", "MergedTagToMaster": "Merge(<- Tag '{0}')", "MergedTagToRef": "Merge({1} <- tag '{0}')", - "Merge-EditOutput": "Edit file output", "MergeError-CloseDetailPanel": "Mergeする場合は、変更を保存してからやり直してください。", "Merge-NoAncestorFile": "ancestorファイルがありません", "Merge-NoImage": "画像がありません", @@ -985,10 +817,7 @@ "Merge-Output": "出力", "Merge-PremiumFeature": "Premium GitKrakenの機能です", "Merge-PremiumMergeDescription": "GitKrakenをアップグレードすれば他のアプリケーションなしで直接編集して簡単にconflictを解決できます。", - "Merge-ProFeature": "GitKraken Pro Feature", - "Merge-ProMergeDescription": "Upgrade to GitKraken Pro and further simplify merge conflict resolution with the ability to directly edit the output without ever leaving the application.", "Merge-Reset": "選択をクリア", - "Merge-ResetMerge": "Reset", "Merge-SaveOutput": "保存", "Merge-SaveWithConflicts": "conflict chunksを作成", "Merge-TakeAll": "すべて使う", @@ -1001,7 +830,6 @@ "Merge-UntakeAll": "すべて取り消し", "Merge-UpgradeLink": "GitKrakenをアップグレード", "Merge-UpgradeText": "編集したファイルを出力", - "Merge-WithGitKrakenPro": "with GitKraken Pro", "Merge-XConflicts": "({0}つのconflict)", "MergingIntoNamed": "{0}にmerge中", "ModifySubmodule-Submit": "このsubmoduleを編集", @@ -1013,12 +841,9 @@ "NewTabView-GetGloBoardsAppAndroid": "Android版のGlo Boardsを取得する", "NewTabView-GetGloBoardsAppApple": "iOS版のGlo Boardsを取得する", "NewTabView-GetSupport": "サポートを受ける", - "NewTabView-GitKraken": "GitKraken", - "NewTabView-GloBoards": "Glo Boards", "NewTabView-JoinSlackCommunity": "GitKrakenのSlackに参加する", "NewTabView-NewGloBoard": "新しいGlo Board", "NewTabView-NewsletterSignup": "GitKrakenのニュースレターに登録する", - "NewTabView-OnHostingService": "on {0}", "NewTabView-OpenGlo": "Gloを開く", "NewTabView-OpenRepo": "リポジトリを開く", "NewTabView-OpenTimelines": "Timelinesを開く", @@ -1029,13 +854,11 @@ "NewTabView-RecentRepos": "最近開いたリポジトリ", "NewTabView-StartHostedRepo": "ホストされたリポジトリから始める:", "NewTabView-StartLocalRepo": "ローカルリポジトリから始める", - "NewTabView-Timelines": "Timelines", "NewTabView-ViewNOthers": "他の{0}つを見る", "NewTabView-WatchGitKrakenIntroVideo": "GitKrakenのイントロダクションビデオを見る", "NewTabView-WatchGloBoardsIntroVideo": "Glo Boardsのイントロダクションビデオを見る", "NextButtonLabel": "次へ", "NoButtonLabel": "いいえ", - "NonCommercialButtonLabel": "I'm using GitKraken non-commercially", "Notification-AlreadyUpToDate": "既に最新です", "Notification-AnnotatedSuccessfully": "Annotateに成功しました", "Notification-BranchToBranch": "{1} <- {0}", @@ -1057,7 +880,6 @@ "Notification-MergedSuccessfully": "Mergeに成功しました", "NotificationMessage-AlreadyUpToDate": "Mergeするものがありません。Branch {1} は最新です。", "NotificationMessage-CherrypickWasNoop": "現在のbranchはすでにcherry-pickされたcommitの変更を取り込んでいます。", - "NotificationMessage-RefToRef": "{0} to {1}", "NotificationMessage-RepoDeleteSuccessful": "リポジトリ {0} の削除に成功しました!", "NotificationMessage-RevertWasNoop": "現在のbranchはすでにrevertされたcommitの変更を取り込んでいます。", "NotificationMessage-SSHKeyBeingUsed": "GitKrakenはSSHキーを使用して {0} と接続します。公開鍵はクリップボードコピーされています。{0} のアカウントに公開鍵を登録してください。", @@ -1072,8 +894,6 @@ "Notification-SubmoduleCreatedSuccessful": "Submoduleを作成しました", "Notification-SubmoduleDeletedSuccessful": "Submoduleを削除しました", "Notification-SupportSent": "サポートのリクエストを送信しました", - "NotNowButtonLabel": "Not now", - "OKButtonLabel": "OK", "OpenIn": "{0}で開く", "OpenInDiffTool": "Diffツールで開く", "OpenInMergeTool": "Mergeツールで開く", @@ -1100,11 +920,7 @@ "Optional": "(任意)", "Option-None": "<ありません>", "Option-UseMergeTool": "", - "OrderChipotleButtonTooltip": "Chipotle Thursday", - "Parent": "Parent", - "ParentLabel": "parent:", "ParentRepo": "Parentリポジトリ", - "Parents": "Parents", "PendingInteractiveRebasePanel-CancelRebase": "rebaseをやめる", "PendingInteractiveRebasePanel-KeyboardShortcuts": "キーボードショートカット", "PendingInteractiveRebasePanel-MoveCommitDownTooltip": "commitを下に移動", @@ -1112,14 +928,10 @@ "PendingInteractiveRebasePanel-Reset": "リセット", "PendingInteractiveRebasePanel-StartRebase": "rebaseをはじめる", "PendingInteractiveRebasePanel-UpdateMessage": "メッセージを更新", - "Plugin-FullviewLoadFailed": "Plugin failed to open", "Plugin-GenericTabLabel": "プラグイン", "Plugin-TabViewLoadFailed": "プラグインが開けませんでした", - "Pop": "Pop", "PopStashButtonTooltip": "Stashをpop", "PreviousButtonLabel": "戻る", - "Pro": "PRO", - "ProCamelCase": "Pro", "Profile-AddAProfile": "プロフィールを追加", "Profile-CancelDelete": "いいえ、プロフィールをそのままにします", "Profile-ChangeEmail": "異なるアカウントでサインインする", @@ -1147,14 +959,12 @@ "Profile-SyncChangesSub": "チェックをつけると、GitKrakenは現在のプロフィールの名前、メールアドレスとすべてのGPG設定をグローバルのgit configに設定します", "Profile-Unlock": "Proにアップグレードしてプロフィールの切り替えを利用する", "Profile-Unregistered": "未登録", - "Profile-UpgradeToPro": "Upgrade to GitKraken Pro", "PromptDeletedFileConflict-KeepAncestor": "元のバージョンを残す", "PromptDeletedFileConflict-KeepModified": "変更したバージョンを残す", "PromptDeletedFileConflict-KeepNew": "新しいバージョンを残す", "PromptDeletedFileConflict-Message": "{0} は {1} で変更されましたが、{2} では削除されています", "PromptDeletedFileConflict-NoBaseNoPairMessage": "{0} を残しますか?", "PromptDeletedFileConflict-RemoveFile": "ファイルを削除", - "PromptForCreds-EnterCredentialsForProxy": "Please enter your credentials for {0}: ", "PromptForCreds-EnterCredentialsForUrl": "{0}の認証情報を入力してください:", "PromptForCreds-EnterPasswordForUrlWithUsername": "{0}のパスワードを入力してください:", "PromptForCreds-EnterServiceSSHPassphrase": "{0}のSSHキーのパスフレーズを入力してください:", @@ -1164,7 +974,6 @@ "PromptForCreds-GpgPassphrase": "GPGのパスフレーズを入力してください", "PromptForCreds-IncorrectServiceSSHPassphrase": "{0}のSSHキーのパスフレーズが異なります。再度入力してください:", "PromptForCreds-IncorrectSSHPassphrase": "SSHキーのパスフレーズが異なります。再度入力してください:", - "PromptForCreds-InvalidCredentialsForProxy": "Invalid credentials for {0}. Please try again: ", "PromptForCreds-InvalidCredentialsForUrl": "{0}の認証情報が異なります。再度入力してください:", "PromptForCreds-InvalidLogin": "{0}にログインできません。やり直してください:", "PromptForCreds-LocksIcon": "Caps Lockが有効になっています", @@ -1198,10 +1007,8 @@ "PromptNewBranchAtRemote-Message": "Localに '{0}' は存在します。", "PromptNewBranchAtRemote-ResetLocal": "ここでlocalをリセット", "ProvideFeedbackButtonLabel": "フィードバック", - "ProvideFeedback-DefaultText": "Summary:\n\n [A brief sentence describing the issue]\n\nSteps to Reproduce:\n\n 1. [First Step]\n 2. [Second Step]\n 3. [and so on...]\n\nExpected behavior: [What you expect to happen]\n\nActual behavior: [What actually happens]", "ProvideFeedback-GetSupport": "サポートを受ける", "ProvideFeedback-SendUsFeedback": "フィードバックを送る", - "Pull": "Pull", "PullOptions-FastForwardOnly": "Pull(fast-forwardのみ)", "PullOptions-FetchAll": "すべてFetch", "PullOptions-Merge": "Pull(fast-forwardできる場合)", @@ -1220,11 +1027,9 @@ "PullRequestBar-Menu": "Pull request操作", "PullRequestBar-MinuteAgo": "{0}分前", "PullRequestBar-MinutesAgo": "{0}分前", - "PullRequestBar-Opened": "Opened: {0}", "PullRequestBar-Reviewers": "レビュアー", "PullRequestBar-UnknownPullRequestHead": "プライベートまたは削除されたリポジトリ(アクセスできません)", "PullRequestBar-UnknownPullRequestOwnerLogin": "ユーザ名が不明です (アクセスできません)", - "PullRequestBar-Updated": "Updated: {0}", "PullRequestBar-ViewContinuousIntegrationResultInBrowser": "{0}の最新のビルドを見る", "PullRequestBar-ViewPullRequestInBrowser": "{2} でpull request {0}{1} を見る", "PullRequestBar-Yesterday": "昨日", @@ -1237,13 +1042,11 @@ "PullRequestPanel-Assignee": "担当者", "PullRequestPanel-Assignees": "担当者", "PullRequestPanel-AzureDevopsEditPullRequestWarning": "AzureDevopsで編集するを選択した場合、pull requestのタイトル、概要は送信されません", - "PullRequestPanel-Branch": "Branch", "PullRequestPanel-CardsLinkedTo": "カードと接続中", "PullRequestPanel-Description": "概要", "PullRequestPanel-EditOnService": "{0}で編集", "PullRequestPanel-FromRepo": "リポジトリ元", "PullRequestPanel-GitHubEditPullRequestWarning": "GitHubで編集するを選択した場合、pull requestのレビュアーは送信されません", - "PullRequestPanel-GloCard": "Glo Card", "PullRequestPanel-HideFiles": "ファイルを隠す", "PullRequestPanel-Labels": "ラベル", "PullRequestPanel-MergeConflictDetected": "Merge conflictを検知しました", @@ -1268,18 +1071,12 @@ "PullRequest-SuccessfullyCreatePullRequest": "Pull requestの作成に成功しました", "PullRequestTooltip-BuildStatus": "ビルドステータス:", "PullRequestTooltip-ChecksOK": "{0} / {1} のチェックがOK", - "PullRequestTooltip-Into": "into", - "PullRequestTooltip-UnknownRequester": "[UNKNOWN]", - "PullRequestTooltip-WantsToMerge": "wants to merge", - "Push": "Push", - "PushButtonTooltip": "Push", "PushToButtonTooltip": "{0} へpush", "QuitGitKraken": "GitKrakenを終了", "RebaseAbortError-CloseDetailPanel": "Rebaseをやめる場合は、変更を保存してからやり直してください。", "RebaseContinueError-CloseDetailPanel": "Rebaseを続ける場合は、変更を保存してからやり直してください。", "RebaseError-CloseDetailPanel": "Rebaseする場合は、変更を保存してからやり直してください。", "Rebasing-AutoStashLabel": "commitしていない変更をstash", - "Rebasing-CommitLabel": "Rebasing commit {0} out of {1}", "Rebasing-PoppingAutoStashLabel": "Auto stashされた変更をpop", "Redo": "やり直す", "RedoCannotButtonTooltip": "やり直しができません", @@ -1291,25 +1088,12 @@ "RefBar-AddSubmodule": "submoduleを追加", "RefBar-AddTag": "新しいtagを作成", "Refbar-BranchActions": "Branch操作", - "RefBar-GroupGitFlow": "GIT FLOW", - "RefBar-GroupGitHubAction": "GITHUB ACTIONS", - "RefBar-GroupLocal": "LOCAL", - "RefBar-GroupPullRequests": "PULL REQUESTS", - "RefBar-GroupRemote": "REMOTE", - "RefBar-GroupStashes": "STASHES", - "RefBar-GroupSubmodules": "SUBMODULES", - "RefBar-GroupTags": "TAGS", - "RefBar-NAhead": "{0} ahead", "RefBar-NavigateToBranch": "このbranchの位置に移動", "RefBar-NavigateToTag": "このtagの位置に移動", - "RefBar-NBehind": "{0} behind", "RefBar-OpenGitFlow": "Git Flowを開く", "RefBar-StatusSoloing": "ソロ中", "RefBar-StatusViewing": "表示", "RefBar-TagActions": "Tag操作", - "RefCreatedMessage": "{0}: {1} created @ {2}", - "ReflogAction": "Action with reflog message \"{0}\"", - "ReflogActionCheckout": "Checkout from \"{0}\" to \"{1}\"", "ReflogActionCommit": "\"{0}\"のcommit", "ReflogActionCommitAmend": "\"{0}\"のcommitをamend", "ReflogActionDeleteBranch": "Branch \"{0}\"を削除", @@ -1323,14 +1107,10 @@ "RefreshTokenLabel": "トークンをリフレッシュ", "RefZone-EnterBranchName": "branch名を入力", "RefZone-EnterTagName": "tag名を入力", - "RefZone-LocalRefLabel": "local", - "RefZone-SubmoduleTagTip": "submodule parent reference", "Registration-1DayToActivate": "1日アクティベート", "Registration-CantFindEmail": "メールが見つかりませんか?", "Registration-ChangeEmail": "異なるアカウントでサインイン", "Registration-CheckStatus": "ステータスをチェック", - "Registration-CommercialUse": "GitKraken Licensing", - "Registration-CommercialUseText": "GitKraken is free for non-commercial use. For commercial use, GitKraken Pro is required.", "Registration-ConfirmPassword": "パスワードの確認", "Registration-CreateAccount": "GitKrakenのアカウントを作成する", "Registration-CreateAccountRetry": "アカウントの作成をリトライしています", @@ -1343,7 +1123,6 @@ "Registration-EnterName": "名前を入力してください", "Registration-EnterpriseLoginFailedDueToNoLicense": "あなたのアカウントはGitKraken Enterprise licenseとしてアクティベートされていません", "Registration-EULA": "ソフトウェア利用許諾契約", - "Registration-EULAAbbreviated": "EULA", "Registration-EULAFirstTimeMessage": "もうすぐです! あとはEULAの同意が必要です。", "Registration-EULALoadFailed": "ソフトウェア利用許諾契約の読み込みに失敗しました", "Registration-EULAUpdateMessage": "ソフトウェア利用許諾契約が更新されました。GitKrakenを使い続けるには最新版の同意が必要です。", @@ -1417,32 +1196,20 @@ "RemoteForm-AddRemote": "Remoteを追加", "RemoteForm-AddRemoteButtonLabel": "Remoteを追加", "RemoteForm-AddUserRemote": "このremoteを追加", - "RemoteForm-AzureDevops": "Azure DevOps", - "RemoteForm-Bitbucket": "Bitbucket.org", - "RemoteForm-BitbucketServer": "Bitbucket Server", "RemoteForm-ConnectToService": "{0}と連携する", "RemoteForm-EditManually": "Remoteを編集", "RemoteForm-EditRemote": "Remoteを編集", - "RemoteForm-Fork": "Fork", "RemoteForm-ForkAndAddRemote": "Forkしてremoteに追加", "RemoteForm-ForkFound": "{0}でこのリポジトリをforkしています:", "RemoteForm-ForkNotFound": "まだ{1}で{0}をforkしていません。", - "RemoteForm-GitHub": "GitHub.com", - "RemoteForm-GitHubEnterprise": "GitHub Enterprise", - "RemoteForm-GitLab": "GitLab.com", "RemoteForm-GitLabSelfHosted": "GitLab(自管理)", "RemoteForm-NoMatch": "見つかりません", - "RemoteForm-PrivateRepo": "Private Repo", - "RemoteForm-PublicRepo": "Public Repo", - "RemoteForm-PullURL": "Pull URL", - "RemoteForm-PushURL": "Push URL", "RemoteForm-RemoteName": "名前", "RemoteForm-SearchRemotes": "Remoteを探す", "RemoteForm-SearchService": "{0}を探す", "RemoteForm-SelectPlaceholder": "選択...", "RemoteForm-TooManyServiceRemotesWarningManyForks": "このリポジトリに関連している多くのforkを取得しています。これは {0} から取得したほうが早いかもしれません。", "RemoteForm-TooManyServiceRemotesWarningNForks": "このリポジトリに関連している{0}つのforkを取得しています。これは {1} から取得したほうが早いかもしれません。", - "RemoteForm-Url": "URL", "RemoveButtonLabel": "削除", "Repo": "リポジトリ", "Repo-ClearFromRecentRepositories": "最近開いたリポジトリから {0} をクリア", @@ -1492,7 +1259,6 @@ "SendMessageButtonLabel": "送る", "SendUsFeedback": "フィードバックを送る", "SendUsFeedback-CantRespondToAllFeedback": "GitKrakenチームはあなたからのフィードバックをお待ちしていますが、頂いたメールには返信することができません。", - "SendUsFeedback-DefaultSubject": "Feedback about GitKraken ({0})", "SendUsFeedback-EmailAddress": "メールアドレス", "SendUsFeedback-EmailUsYourself": "または自分でメールを作成する ", "SendUsFeedback-Feedback": "フィードバック", @@ -1511,7 +1277,6 @@ "Services-BrowseForPublicSSHKey": "**公開鍵**を表示", "Services-CannotDisconnectLoginService": "{0}はGitKrakenにサインインするために利用しているので連携解除ができません", "Services-ClearSSHKey": "使用をやめる", - "Services-ComingSoon": "Coming Soon", "Services-Connect": "連携する", "Services-Connected": "連携済み", "Services-ConnectedWithService": "{0}と連携済みです", @@ -1530,12 +1295,9 @@ "Services-GitHubEnterpriseUpgradeToPro": "GitKraken ProにアップグレードしてGitHub.comと同じようにGitHub Enterpriseで開発しましょう", "Services-GitKrakenNeedsATokenFrom": "トークンが必要です", "Services-GitLabSelfHostedUpgradeToPro": "GitKraken ProにアップグレードしてGitLab.comと同じようにGitLab(自管理)で開発しましょう", - "Services-HostDomain": "Host Domain", "Services-HostDomainHint": "例:{0}.mycompany.com", "Services-HostDomainHintAzureDevops": "例:dev.azure.com/mycompany", "Services-Info": "SSHキーを設定することでログイン状態を保持できます。GitKrakenはサービスごとにSSHキーを設定できます。", - "Services-KeyPrivate": "Private: {0}", - "Services-KeyPublic": "Public: {0}", "Services-LeaveBlank": "このフィールドは空白にすることをおすすめします。", "Services-NotConnected": "連携していません", "Services-PersonalAccessToken": "アクセストークン", @@ -1574,22 +1336,18 @@ "Shop-OpenInBrowser": "ブラウザで開く", "Shop-ShopTitle": "アカウント管理", "ShowAll": "すべて表示", - "ShowPricingButtonLabel": "Show me pricing for GitKraken Pro", "ShPath-ConfirmPath": "GitHookを動かすにはShが必要です。Shのパスは {0} でよろしいですか?", "SkipCommitButtonLabel": "Commitをスキップ", "SoloBranch": "このbranchをソロモードに", "SSHConfig": "SSHコンフィグ", "SSHConfig-GenerateNewKey": "新しい秘密鍵/公開鍵を作成", - "SSHConfig-GenerateNewKeyButtonLabel": "Generate", "SSHConfig-GenerateNewKeyHelp": "新しく作成したキーはGitKrakenに設定されます", "SSHConfig-SSHKeySaveLocation": "SSHキーを保存する場所", "SSHConfig-SSHPrivateKey": "SSH秘密鍵", "SSHConfig-SSHPublicKey": "SSH公開鍵", "SSHConfig-UseLocalSSHAgent": "ローカルのSSHエージェントを使う", "SSHKey": "SSHキー", - "Stage": "Stage", "StageAllChanges": "すべての変更をStage", - "Staged": "Staged", "StageFilemodeChange": "ファイルモードの変更をStage", "StageNChanges": "{0}つのファイルをStage", "StageSelectedLines": "選択中の行をStage", @@ -1597,12 +1355,10 @@ "StageThisFile": "ファイルをStage", "StageThisHunk": "HunkをStage", "StageThisLine": "この行をStage", - "StagingPanel-Amend": "Amend", "StagingPanel-DetachedHeadStateExplanation": "他のブランチをcheckoutしたり、commitしたりすると、detached HEADの状態でのcommitが消える恐れがあります", "StagingPanel-ShowMoreFiles": "Show next {0}({1} more)", "StagingPanel-UseTemplate": "テンプレートを使う", "StagingPanel-WarningDetachedHeadState": "detached HEADの状態です", - "Standalone": "ENTERPRISE", "Standalone-AddALicense": "ライセンスファイルを追加して続けてください。", "Standalone-AddAValidLicense": "有効なライセンスファイルを追加して続けてください。", "Standalone-AddLicense": "ライセンスを追加", @@ -1629,10 +1385,8 @@ "Standalone-UpdateLicense": "ライセンスを更新", "StartRebaseButtonLabel": "はい、Rebaseします", "StartTrialButtonLabel": "GitKraken Proフリートライアル", - "Stash": "Stash", "Stash-ApplyWithUncommittedChangesPrompt": "Commitしていない変更があります。Stashをapplyして変更を上書きしてよろしいですか?", "StashBar-Menu": "Stash操作", - "StashButtonTooltip": "Stash", "StashMessage-Amend": "\"{0}\"をamendする前にauto stash", "StashMessage-Checkout": "\"{0}\"をcheckoutする前にauto stash", "StashMessage-CherryPick": "\"{0}\"をcherry-pickする前にauto stash", @@ -1640,7 +1394,6 @@ "StashMessage-Rebase": "\"{0}\"をrebaseする前にauto stash", "StashMessage-Revert": "\"{0}\"をrevertする前にauto stash", "SubmitButtonLabel": "送信", - "Submodule": "Submodule", "Submodule-CannotStageUncommittedSubmoduleChanges": "submoduleにcommitしていない変更があります。変更をcommitしてからsubmoduleを開いてください。", "Submodule-CheckingOut": "Submodule {0} をcheckoutしています", "Submodule-CommitMessageDeleted": "Submodule {0} を削除", @@ -1656,23 +1409,17 @@ "Submodule-Edit": "Submoduleを編集", "Submodule-Fetching": "Submodule {0} をfetchしています", "Submodule-FetchingRecursively": "Submodule {0} を再帰的にfetchしています", - "Submodule-FormAdded": "Added", - "Submodule-FormCheckout": "Checkout", "Submodule-FormCommit": "変更をCommit", "Submodule-FormCurrentRevision": "現在のRevision", "Submodule-FormDefault": "デフォルト", - "Submodule-FormMerge": "Merge", "Submodule-FormName": "名前", "Submodule-FormNamePath": "名前/パス", "Submodule-FormNone": "ありません", "Submodule-FormOpen": "このsubmoduleを開く", "Submodule-FormPath": "パス", "Submodule-FormPointerRevision": "リポジトリのCommit", - "Submodule-FormRebase": "Rebase", "Submodule-FormRemove": "このsubmoduleを削除", "Submodule-FormReset": "Submoduleの変更を取り消す", - "Submodule-FormUpdateStrategy": "Update Strategy", - "Submodule-FormUrl": "Remote URL", "Submodule-FormWorkdirRevision": "SubmoduleのCommit", "Submodule-InitAllPrompt": "{0} のSubmoduleを初期化してもよろしいですか?", "Submodule-Initialize": "初期化", @@ -1703,7 +1450,6 @@ "TabsBar-NewTab": "新しいタブ", "TabsBar-NewTabTitle": "新しいタブ", "TabsBar-ReleaseNotesTitle": "リリースノート", - "Tag": "Tag", "TextOperation-Copy": "コピー", "TextOperation-CopyFileContentsToClipboard": "ファイルの内容をクリップボードにコピー", "TextOperation-CopySuccess": "コピーしました!", @@ -1711,13 +1457,10 @@ "TextOperation-Delete": "削除", "TextOperation-Paste": "ペースト", "TextOperation-SelectAll": "すべて選択", - "Theme-Dark": "Dark", - "Theme-Light": "Light", "Timeline-1HourAgo": "1時間前", "Timeline-1MonthAgo": "1か月前", "Timeline-1WeekAgo": "1週間前", "Timeline-1YearAgo": "1年前", - "Timeline-ArbitrarilyLongAgo": "Stop scrolling please", "Timeline-NDaysAgo": "{0}日前", "Timeline-NHoursAgo": "{0}時間前", "Timeline-NMonthsAgo": "{0}か月前", @@ -1727,16 +1470,12 @@ "ToggleHideLabel": "隠す", "ToggleSoloLabel": "ソロモード", "ToolbarButton-DropdownFilterNoResults": "見つかりません", - "ToolbarButton-DropdownFilterPlaceholder": "Filter boards", - "ToolbarButton-DropdownMessage": "Select a default board to open when clicking the Glo button on this repo", "ToolbarButton-GloDropdownFilterPlaceholder": "boardを絞り込む", "ToolbarButton-GloDropdownMessage": "このリポジトリでGloボタンをクリックしたときに開くboardを選択してください", "ToolbarButton-TimelinesDropdownFilterPlaceholder": "timelinesを絞り込む", "ToolbarButton-TimelinesDropdownMessage": "このリポジトリでTimelinesボタンをクリックしたときに開くtimelineを選択してください", "Toolbar-CloseRepository": "リポジトリを閉じる", "Toolbar-CloseSubmodule": "Submoduleを閉じる", - "ToolbarLabels-Chipotle": "Chipotle", - "ToolbarLabels-Fetch": "Fetch", "Toolbar-PullFastForwardOnlyNotAvailableInDetachedHead": "detached HEADの状態でpull (fast-forwardのみ)は利用できません", "Toolbar-PullMergeNotAvailableInDetachedHead": "detached HEADの状態でpull (fast-forwardできる場合)は利用できません", "Toolbar-PullRebaseNotAvailableInDetachedHead": "detached HEADの状態でpull (rebase)は利用できません", @@ -1747,7 +1486,6 @@ "Trial-ProFeatures": "Proの機能です", "Trial-StartTrialModalConfirmButton": "GitKraken Proのフリートライアルを始める", "Trial-StartTrialModalContent": "{0}日間のGitKraken Proフリートライアルでさらなる機能が利用できます:", - "Trial-StartTrialModalHideTrialOfferCheckbox": "Hide the \"GitKraken Pro Free Trial\" button", "Trial-StartTrialModalNoThanksButton": "いいえ、結構です", "Trial-StartTrialModalSubcontent": "GitKrakenのさらなる機能を見る ", "Trial-StartTrialModalTitle": "GitKraken Proのフリートライアルを始める", @@ -1760,17 +1498,7 @@ "Trial-TableFeature5": "GitLab (自管理)の統合機能", "Trial-TableFeature6": "Bitbucket Serverの統合機能", "Trial-TableFeature7": "Azure DevOpsの統合機能", - "Trial-TrialEndedModalContinueUsingFree": "No thanks, I'll continue with the free version.", - "Trial-TrialEndedModalSubcontent1": "Upgrade to GitKraken Pro now to continue using Pro features, and to get access to priority support.", - "Trial-TrialEndedModalSubcontent2": "If you're using GitKraken for commercial projects, GitKraken Pro is required. Purchasing GitKraken for your entire team can reduce the price significantly.", - "Trial-TrialEndedModalTitle": "Your GitKraken Pro Trial has Ended", "Trial-TrialStartedModalContent": "{0}日間ProのトライラルでGitKrakenのさらなる機能を利用することができます。", - "Trial-TrialStartedModalFeature1": "Multiple profiles for work & personal use", - "Trial-TrialStartedModalFeature2": "A powerful merge conflict editor in-app", - "Trial-TrialStartedModalFeature3": "GitHub Enterprise integration", - "Trial-TrialStartedModalFeature4": "GitLab Community and Enterprise Edition integrations", - "Trial-TrialStartedModalFeature5": "Bitbucket Server integration", - "Trial-TrialStartedModalFeature6": "Azure DevOps integration", "Trial-TrialStartedModalSubcontent": "試用期間中いつでもアップグレードして、これらの機能を使い続けることができます。", "Trial-TrialStartedModalTitle": "GitKraken Proのフリートライアルが始まっています", "TryRedoError-CloseDetailPanel": "取り消す場合は、変更を保存してからやり直してください。", @@ -1799,10 +1527,8 @@ "UndoValidButtonTooltip": "{0} を取り消し", "Uninitialized": "未初期化", "UnsoloAll": "ソロモードを終了", - "Unstage": "Unstage", "UnstageAllChanges": "すべての変更をUnstage", "UnstageAndRemoveButtonLabel": "Unstage & 削除", - "Unstaged": "Unstaged", "UnstageFilemodeChange": "ファイルモードの変更をUnstage", "UnstageNChanges": "{0}つのファイルをUnstage", "UnstageSelectedLines": "選択中の行をUnstage", @@ -1813,7 +1539,6 @@ "UnsupportedRebaseMessage": "このリポジトリは他のアプリケーションでrebaseを実行中です", "UpgradeGitKrakenButtonLabel": "GitKrakenをアップグレード", "UpgradeToProButtonLabel": "GitKraken Proにアップグレード", - "UpstreamBranch": "Upstream branch", "UseFreeButtonLabel": "GitKraken Freeを使い続ける", "Version6LegacyTrial-BlogPost": "ブログ", "Version6LegacyTrial-Feature1": "プライベートリポジトリを開く", @@ -1823,7 +1548,6 @@ "Version6LegacyTrial-ModalTitle": "すばらしいGitKrakenユーザになっていただきありがとうございました!", "Version6LegacyTrialStatus": "GitKraken Individualの試用期間はあと {0} です - 今すぐアップグレードしましょう", "View-ActivityLog": "アクティビティログ", - "View-ActivityLog-HookTitle": "Hook: {0}", "ViewAllRepositories": "すべてのリポジトリを表示", "ViewAuthenticationSettings": "設定を表示", "View-AutoUpdate": "インストーラを選択", @@ -1831,7 +1555,6 @@ "View-AutoUpdate-Downloading": "アップデートをダウンロードしています", "View-AutoUpdate-SomethingWentWrong": "失敗しました", "ViewDiffToolSettings": "Diffツールの設定を表示", - "View-GitHookFailureLog": "Hook Log", "View-KeyBindings": "キーボードショートカット", "ViewMergeToolSettings": "Mergeツールの設定を表示", "ViewOnHostingService": "{0}で見る", @@ -1843,17 +1566,8 @@ "View-ZoomDown": "縮小", "View-ZoomReset": "リセット", "View-ZoomUp": "拡大", - "WelcomeView-OpenProject": "Open a project", - "WelcomeView-SlackLink": "Join the GitKraken Slack community: ", - "WelcomeView-StartHostedProject": "Start a hosted project:", - "WelcomeView-StartLocalProject": "Start a local project", - "WelcomeView-SupportLink": "Watch the intro video: ", - "WelcomeView-Welcome": "Welcome to GitKraken!", "WindowsFilemodeChangeWarning": "ファイルモードを変更するとGitKrakenの管理外になります。", "WindowsFilemodeChangeWarningConfigEnabled": "git configでファイルモードの変更を有効にしました! Windowsではworking directoryのファイルはx(実行権)を持つため、ファイルモードの変更が表示されます。", - "WorkDirMessageInput-WIPPlaceholder": "// WIP", - "WorkInProgressAbbr": "WIP", - "WorkInProgressOnBranchAbbr": "WIP on {0}", "YesButtonLabel": "はい", "Zoom": "拡大/縮小" } diff --git a/strings/zh-cn.json b/strings/zh-cn.json index 0210bb9..6658476 100644 --- a/strings/zh-cn.json +++ b/strings/zh-cn.json @@ -7,34 +7,34 @@ "AboutProduct": "关于<%= productName %>", "CheckForUpdateWithLastCheckedTime": "检查更新<%= updateLastCheckedTime %>", "CheckingForUpdates": "正在检查更新...", - "Clo&neRepo": "克隆储存库(&N)", "CloneRepo": "克隆储存库", + "Clo&neRepo": "克隆储存库(&N)", "CloseTab": "关闭标签页", - "C&opy": "复制(&O)", "Copy": "复制", - "&Cut": "剪切(&C)", + "C&opy": "复制(&O)", "Cut": "剪切", + "&Cut": "剪切(&C)", "Developer": "开发者", "DownloadingUpdate": "正在下载更新...", "DownloadUpdate": "下载更新", - "&Edit": "编辑(&E)", "Edit": "编辑", + "&Edit": "编辑(&E)", "E&xit": "退出(&X)", "Favorites": "收藏夹", - "&File": "文件(&F)", "File": "文件", + "&File": "文件(&F)", "FollowUsOnTwitter": "在推特上关注我们", "GetSupport": "获取支持", - "&Help": "帮助(&H)", "Help": "帮助", + "&Help": "帮助(&H)", "Hide": "隐藏GitKraken", "HideOthers": "隐藏其他", - "&InitRepo": "初始化储存库(&I)", "InitRepo": "初始化储存库", + "&InitRepo": "初始化储存库(&I)", "KeyboardShortcuts": "键盘快捷键", "Minimize": "最小化", - "&NewTab": "新标签页(&N)", "NewTab": "新标签页", + "&NewTab": "新标签页(&N)", "OpenFavorite1": "打开收藏夹储存库1", "OpenFavorite2": "打开收藏夹储存库2", "OpenFavorite3": "打开收藏夹储存库3", @@ -46,27 +46,26 @@ "OpenFavorite9": "打开收藏夹储存库9", "OpenFuzzyFinder": "打开模糊查找器", "OpenInFileManager": "在文件管理器中打开", - "&OpenRepo": "打开储存库(&O)", "OpenRepo": "打开储存库", - "Open&Terminal": "打开终端(&T)", + "&OpenRepo": "打开储存库(&O)", "OpenTerminal": "打开终端", - "&Paste": "粘贴(&P)", + "Open&Terminal": "打开终端(&T)", "Paste": "粘贴", - "&Preferences": "首选项(&P)...", + "&Paste": "粘贴(&P)", "Preferences": "首选项...", + "&Preferences": "首选项(&P)...", "PrintPerformanceTimingsToTerminal": "将性能计时打印到终端", - "ProductName": "<%= productName %>", "Quit": "退出GitKraken", - "&Redo": "重做(&R)", "Redo": "重做", - "&Reload": "重新加载(&R)", + "&Redo": "重做(&R)", "Reload": "重新加载", + "&Reload": "重新加载(&R)", "RestartAndInstallUpdate": "重启并安装更新", "RunSystemTests": "运行系统测试...", "RunTests": "运行测试...", "RunTestsWithCoverage": "使用覆盖率运行测试...", - "Select&All": "全选(&A)", "SelectAll": "全选", + "Select&All": "全选(&A)", "SelectNextTab": "选择下一个标签页", "SelectPreviousTab": "选择上一个标签页", "SelectTab1": "选择标签页1", @@ -84,14 +83,14 @@ "SignIntoDifferentAccount": "登录不同的帐户", "SupportLogs": "支持日志", "Tabs": "标签页", - "ToggleDeveloper&Tools": "切换开发者工具(&T)", "ToggleDeveloperTools": "切换开发者工具", - "Toggle&FullScreen": "切换全屏(&F)", + "ToggleDeveloper&Tools": "切换开发者工具(&T)", "ToggleFullScreen": "切换全屏", + "Toggle&FullScreen": "切换全屏(&F)", "ToggleProStatus": "切换专业版状态", "ToggleReactPerfRecording": "启动/停止响应性能记录", - "&Undo": "撤消(&U)", "Undo": "撤消", + "&Undo": "撤消(&U)", "UpdateAvailableDownloadDeb": "下载.deb文件", "UpdateAvailableDownloadRpm": "下载.rpm文件", "UpdateAvailableDownloadTargz": "下载.tar.gz文件", @@ -99,8 +98,8 @@ "UpdateDownloadedShowFile": "更新已下载(显示文件)", "UpdateErroredAtTime": "更新错误<%= updateErrorTime %>", "VersionNumber": "版本<%= version %>(<%= bitness %>位)", - "&View": "查看(&V)", "View": "查看", + "&View": "查看(&V)", "ViewActivityLogs": "查看活动日志", "ViewErrorLogs": "查看错误日志", "ViewPerformanceLogs": "查看性能日志", @@ -122,19 +121,19 @@ "ActivityLogButtonTooltip": "活动日志", "AllFilesInFolder": "“{0}/”下的所有文件", "AllFilesWithSameExtension": "所有扩展名为“{0}”的文件", - "AmendOrRewordPreviousCommitMessageButtonLabel": "更新消息", - "AmendPreviousCommitButtonLabel": "修改最后一次提交", - "AmendPreviousCommitMessageButtonLabel": "修改消息", - "AmendPreviousCommitMessageTip": "单击此处修改提交消息", - "AnnotatedTag": "已注释标记", + "AmendOrRewordPreviousCommitMessageButtonLabel": "更新讯息", + "AmendPreviousCommitButtonLabel": "修订上一个提交", + "AmendPreviousCommitMessageButtonLabel": "更新讯息", + "AmendPreviousCommitMessageTip": "单击此处修订提交讯息", + "AnnotatedTag": "已批注标记", "Application": "应用程序", "Apply": "应用", - "ApplyStashButtonTooltip": "应用贮藏区", - "ApplyStashError-CloseDetailPanel": "要应用贮藏区,请保存您改动并重试。", + "ApplyStashButtonTooltip": "应用贮藏", + "ApplyStashError-CloseDetailPanel": "要应用贮藏,请保存您的改动并重试。", "Authentication": "认证", "Authentication-ForgetAll": "忘记所有", - "Authentication-ForgetAllCredentials": "忘记所有用户名/密码", - "Authentication-NoCredentialsToRemove": "GitKraken没有要删除的储存凭据", + "Authentication-ForgetAllCredentials": "忘记所有用户名和密码", + "Authentication-NoCredentialsToRemove": "GitKraken没有储存了的凭据可移除", "Author": "作者", "AuthoredLabel": "创作于", "AutoUpdate-RestartGitKrakenAndInstallUpdateButtonLabel": "更新就绪(重新启动GitKraken)", @@ -144,9 +143,9 @@ "BreadCrumbs-FavoritesHeader": "收藏夹", "BreadCrumbs-RecentsHeader": "最近打开的", "BrowseButtonLabel": "浏览", - "By": "{0}由", + "By": "由{0}", "Bytes": "字节", - "CancelAmendPreviousCommitMessageButtonLabel": "停止修改", + "CancelAmendPreviousCommitMessageButtonLabel": "取消修订", "CancelButtonLabel": "取消", "CancelRewordPreviousCommitMessageButtonLabel": "取消改写", "ChangeRepo-CloneRepo": "克隆", @@ -154,7 +153,7 @@ "ChangeRepo-OpenRepo": "打开", "CheckingOutBranch": "正在检出分支", "CheckoutError-CloseDetailPanel": "如果要检出,请保存改动并重试。", - "CloneRepo-ArchivedRepoSuffix": "(存档)", + "CloneRepo-ArchivedRepoSuffix": "(已归档)", "CloneRepo-CloneARepo": "克隆储存库", "CloneRepo-CloneDestinationPath": "要克隆到的位置", "CloneRepo-ClonedRepoName": "完整路径", @@ -162,7 +161,6 @@ "CloneRepo-CloneRepoButtonLabel": "克隆储存库!", "CloneRepo-CloneSuccess": "储存库“{0}”克隆成功", "CloneRepo-CloneViaUrl": "使用URL克隆", - "CloneRepo-RepoToCloneUrl": "URL", "CloneRepo-RepoToCloneViaService": "要克隆的储存库", "Close": "关闭", "CloseRepo-CloseFailed": "关闭失败", @@ -171,16 +169,16 @@ "Commit": "提交", "CommitAllChangesShortcutTip": "使用Shift-Enter提交所有改动", "CommitAndMergeButtonLabel": "合并后提交", - "CommitButtonLabelAddMessage": "请输入提交消息", + "CommitButtonLabelAddMessage": "请输入提交讯息", "CommitButtonLabelPlural": "提交{0}个文件的改动", "CommitButtonLabelSingular": "提交1个文件的改动", "CommitButtonLabelStageFiles": "请暂存要提交的文件/改动", - "CommitDetailPanel-AndTheWIP": "和WIP", - "CommitDetailPanel-DiffBetweenACommitAndTheWIP": "查看提交和WIP之间的差异", + "CommitDetailPanel-AndTheWIP": "和工作中", + "CommitDetailPanel-DiffBetweenACommitAndTheWIP": "查看提交和工作中之间的差异", "CommitDetailPanel-DiffBetweenCommitsTitle": "查看{0}个提交的合并差异", "CommitDetailPanel-DiffBetweenTwoCommits": "查看两个提交之间的差异", "CommitDetailPanel-MergeConflictTitle": "合并冲突", - "CommitDetailPanel-MergeMessage": "将{0}合并到{1}中", + "CommitDetailPanel-MergeMessage": "将{0}合并到{1}", "CommitDetailPanel-MergeTitle": "合并", "CommitDetailPanel-UnsupportedRebaseMessage": "当变基在其他应用程序中运行时,GitKraken的功能受到限制", "CommitDetailPanel-UnsupportedRebaseTitle": "检测到外部变基", @@ -189,7 +187,7 @@ "CommitDiffSection-NFilesModified": "{0}修改", "CommitDiffSection-NFilesRenamed": "{0}改名", "CommitLabel": "提交:", - "CommitMessage-CommitMessageLabel": "提交消息", + "CommitMessage-CommitMessageLabel": "提交讯息", "CommitMessage-DescriptionPlaceholder": "描述", "CommitMessage-RemoteBranchCreated": "分支:创建{0}", "CommitMessage-SummaryPlaceholder": "摘要", @@ -201,56 +199,58 @@ "CommitTemplates-CommitTemplateDocumentation": "Git提交模板文档", "CommitTemplates-Description": "描述", "CommitTemplates-ErrorSaveTemplate": "保存提交模板时出错", - "CommitTemplates-Instructions": "应用默认初始消息,可在提交时保持摘要和描述的一致性。有关详细信息,请参阅", - "CommitTemplates-RemoveCommentsFromCommitMessages": "从提交消息中删除注释", + "CommitTemplates-Instructions": "创建并应用默认的初始讯息,以保持提交摘要和描述的一致性。有关更多信息,请参阅", + "CommitTemplates-RemoveCommentsFromCommitMessages": "从提交讯息中移除注释", "CommitTemplates-SaveCommitTemplate": "保存提交模板", "CommitTemplates-SuccessSaveTemplate": "保存提交模板成功", "CommitTemplates-Summary": "摘要", "CommitTemplates-TitleLimitExceeded": "超过了用于提交摘要的字符限制({0})!", - "CommitTemplates-TitleLimitHelpText": "使用为提交摘要分配的{0}/{1}个字符", - "CommitTemplates-UseTemplateForCommitMessages": "将此模板应用于提交消息", - "CommitterLabel": "已提交", + "CommitTemplates-TitleLimitHelpText": "使用分配给提交摘要的{0}/{1}个字符", + "CommitTemplates-UseTemplateForCommitMessages": "将此模板应用于提交讯息", + "CommitterLabel": "提交于", "ConfirmationMessage-ClonePullRequestHead": "是否要添加“{0}”为远程并检出“{1}”?", "ConfirmationMessage-CreateCommitForMerge": "是否立即提交合并的改动?", - "ConfirmationMessage-Delete1LocalBranchInFolder": "这是一个破坏性操作,确实要在“{0}”中删除1个本地分支?", - "ConfirmationMessage-DeleteAllRefs": "这是一种破坏性的操作。确定要从此节点或远程删除“{0}”吗?", - "ConfirmationMessage-DeleteConfigLock": "无法锁定.git/config,因为锁已经存在。可能正在使用另一个程序正在改动储存库。是否要删除此储存库的配置锁以便对其进行修改?", + "ConfirmationMessage-Delete1LocalBranchInFolder": "这是一种破坏性操作,您确定要在“{0}”中删除1个本地分支吗?", + "ConfirmationMessage-DeleteAllRefs": "这是一种破坏性操作,您确定要从此节点和远程删除“{0}”吗?", + "ConfirmationMessage-DeleteConfigLock": "无法锁定.git/config,因为锁已经存在。另一个程序或操作可能正在修改储存库。是否要删除此储存库的配置锁,以便对其进行修改?", "ConfirmationMessage-DeleteFile": "这将删除“{0}”。您确定要继续吗?", - "ConfirmationMessage-DeleteFiles": "删除已选中的文件。继续处理?", - "ConfirmationMessage-DeleteGitFlowRef": "这个分支是Git工作流所必需的。确定要删除“{0}”吗?", - "ConfirmationMessage-DeleteNLocalBranchesInFolder": "这是一个破坏性操作,确实要在“{1}”中删除{0}个本地分支?", - "ConfirmationMessage-DeleteRef": "这是一种破坏性的操作。确定要删除“{0}”吗?", - "ConfirmationMessage-DeleteStash": "这是一种破坏性的操作。确定要删除贮藏区“{0}”吗?", - "ConfirmationMessage-DeleteTagFromAllRemotes": "从远程储存库中删除标记“{0}”?", - "ConfirmationMessage-DeleteTagFromRemote": "这是一种破坏性的操作。确定要从“{1}”中删除“{0}”吗?", + "ConfirmationMessage-DeleteFiles": "删除已选中的文件。您确定要继续吗?", + "ConfirmationMessage-DeleteGitFlowRef": "这个分支是Git工作流所必需的。您确定要删除“{0}”吗?", + "ConfirmationMessage-DeleteNLocalBranchesInFolder": "这是一种破坏性操作,您确定要在“{1}”中删除{0}个本地分支吗?", + "ConfirmationMessage-DeleteRef": "这是一种破坏性操作,您确定要删除“{0}”吗?", + "ConfirmationMessage-DeleteStash": "这是一种破坏性操作,您确定要删除带有讯息“{0}”的贮藏吗?", + "ConfirmationMessage-DeleteTagFromAllRemotes": "这是一种破坏性操作,您确定要从远程储存库中删除“{0}”吗?", + "ConfirmationMessage-DeleteTagFromRemote": "这是一种破坏性操作,您确定要从“{1}”中删除“{0}”吗?", "ConfirmationMessage-DiscardUnstagedChangesToFile": "这将丢弃对“{0}”的未暂存改动。您确定要继续吗?", - "ConfirmationMessage-DiscardUnstagedChangesToFiles": "这将丢弃已选中文件中未暂存的改动。继续处理?", + "ConfirmationMessage-DiscardUnstagedChangesToFiles": "这将丢弃已选中文件中未暂存的改动。您确定要继续吗?", "ConfirmationMessage-ImmediatelyCommitCherryPick": "是否立即提交摘取的改动?", "ConfirmationMessage-ImmediatelyCommitRevert": "是否立即提交还原的改动?", "ConfirmationMessage-InitEmptyRepo": "需要初始提交才能打开储存库“{0}”。您需要GitKraken为您生成一个提交吗?", "ConfirmationMessage-InitRepo": "在“ {0}”处找不到兼容的储存库。 您要在此处创建一个新的储存库吗?", "ConfirmationMessage-MergeConflictStashAndCheckout": "检测到合并冲突。要继续合并,必须贮藏所有改动并检出分支{0}。是否立即执行?", - "ConfirmationMessage-PersistConflictToDisk": "您确定要保存它吗?", + "ConfirmationMessage-PersistConflictToDisk": "您确定要保存到磁盘吗?", "ConfirmationMessage-RebaseRequiresCheckout": "要开始变基,您必须检出分支“{0}”。您想立即这么做吗?", "ConfirmationMessage-RebaseRequiresStashAndCheckout": "要开始变基,您需要贮藏改动并检出分支“{0}”。是否立即执行?", - "ConfirmationMessage-ResetAll": "这将丢弃所有暂存和未缓存的改动,包括新的未跟踪文件。确定要放弃所有更改?", - "ConfirmationMessage-ResetFile": "这将丢弃对“{0}”的所有已暂存和未暂存改动。您确定要继续吗?", - "ConfirmationMessage-ResetFiles": "这将丢弃已选中文件中所有已暂存和未暂存的更改。是否确定要丢弃所有选定的更改?", + "ConfirmationMessage-ResetAll": "这将丢弃所有已暂存和未暂存改动,包括新的未跟踪文件。您确定要丢弃所有改动?", + "ConfirmationMessage-ResetFile": "这将丢弃对“{0}”的所有已暂存和未暂存改动。您确定要丢弃对文件的所有改动?", + "ConfirmationMessage-ResetFiles": "这将丢弃对已选中文件的所有已暂存和未暂存改动。您确定要丢弃对已选中文件的所有改动?", "ConfirmationMessage-UnstageAndRemoveFile": "这将取消暂存并删除“{0}”。您确定要继续吗?", - "ConfirmationMessage-UnstageAndRemoveFiles": "这将取消暂存并删除已选中的文件。继续处理?", + "ConfirmationMessage-UnstageAndRemoveFiles": "这将取消暂存并删除已选中的文件。您确定要继续吗?", "ConfirmationMessage-WouldYouLikeToDeleteTagFromAllRemotes": "是否要从您的远程储存库中删除名为“{0}”的标记?", "ConnectingWithEllipsis": "正在连接...", - "ContextMenu-AmendCommitMessage": "编辑提交消息", - "ContextMenu-AmendOrRewordCommitMessage": "编辑提交消息", + "ContextMenu-AmendCommitMessage": "编辑提交讯息", + "ContextMenu-AmendOrRewordCommitMessage": "编辑提交讯息", "ContextMenu-AnnotateTag": "批注{0}", "ContextMenu-CheckoutBranch": "检出{0}", "ContextMenu-CheckoutCommit": "检出此提交", "ContextMenu-CherrypickCommit": "摘取提交", + "ContextMenu-CommitNotInGraph": "不能在关系图中跳转到提交,因为它是不可见的。", "ContextMenu-CopyBranchName": "复制分支名称到剪贴板", "ContextMenu-CopyCommitId": "复制提交ID到剪贴板", + "ContextMenu-CopyCommitSha": "复制散列值到剪贴板", "ContextMenu-CopyFilePath": "复制文件路径到剪贴板", "ContextMenu-CopyTagName": "复制标记名称到剪贴板", - "ContextMenu-CreateAnnotatedTag": "在此创建带注释的标记", + "ContextMenu-CreateAnnotatedTag": "在此创建带批注的标记", "ContextMenu-CreateBranchHere": "在此处创建分支", "ContextMenu-CreateTagHere": "在此处创建标记", "ContextMenu-Delete1BranchInFolder": "删除文件夹“{0}”中的1个分支", @@ -258,7 +258,7 @@ "ContextMenu-DeleteBranch": "删除{0}", "ContextMenu-DeleteLocalAndRemoteBranches": "删除{0}和{1}", "ContextMenu-DeleteNBranchesInFolder": "在文件夹“{1}”中删除{0}个分支", - "ContextMenu-DeleteProjectGroup": "从列表中删除", + "ContextMenu-DeleteProjectGroup": "从列表中移除", "ContextMenu-DeleteTagFromRemote": "从远程删除标记", "ContextMenu-DeleteTagXFromAllRemotes": "从所有远程中删除{0}", "ContextMenu-DeleteTagXFromRemoteY": "从{1}删除{0}", @@ -272,7 +272,8 @@ "ContextMenu-FetchRemote": "获取{0}", "ContextMenu-GitHubActionDelete": "删除工作流", "ContextMenu-GitHubActionEdit": "编辑工作流", - "ContextMenu-HideAllStashes": "隐藏所有贮藏区", + "ContextMenu-GoToParentCommit": "在关系图中跳转到提交", + "ContextMenu-HideAllStashes": "隐藏所有贮藏", "ContextMenu-HideAllTags": "隐藏所有标记", "ContextMenu-MergeBranchIntoBranch": "将{0}合并到{1}", "ContextMenu-MoveCommitDown": "下移提交", @@ -289,7 +290,7 @@ "ContextMenu-RebaseBranchOntoBranch": "变基{0}于{1}", "ContextMenu-RebaseBranchOntoBranchInteractively": "交互式变基{0}于{1}", "ContextMenu-RebaseXChildrenOfShaInteractively": "交互式变基{1}的{0}个子代", - "ContextMenu-RemoveRemote": "删除{0}", + "ContextMenu-RemoveRemote": "移除{0}", "ContextMenu-RenameBranch": "重命名{0}", "ContextMenu-ResetBranchToThisCommit": "将{0}复原为此提交", "ContextMenu-ResetHardWithHint": "强行 - 丢弃所有改动过的工作副本", @@ -298,16 +299,16 @@ "ContextMenu-RevertCommit": "还原提交", "ContextMenu-RewordCommit": "改写提交", "ContextMenu-SetUpstream": "设置上游", - "ContextMenu-ShowAllStashes": "显示所有贮藏区", + "ContextMenu-ShowAllStashes": "显示所有贮藏", "ContextMenu-ShowAllTags": "显示所有标记", "ContextMenu-SquashCommit": "压扁提交", "ContextMenu-SquashXCommits": "合并{0}个提交", "ContextMenu-StartPullRequestFromY": "从{0}创建拉取请求", "ContextMenu-StartPullRequestToX": "创建拉取请求到{0}", "ContextMenu-StartPullRequestToXFromY": "创建从{1}到{0}的拉取请求", - "ContextMenu-StashApply": "应用贮藏区", - "ContextMenu-StashDelete": "删除贮藏区", - "ContextMenu-StashPop": "弹出贮藏区", + "ContextMenu-StashApply": "应用贮藏", + "ContextMenu-StashDelete": "删除贮藏", + "ContextMenu-StashPop": "弹出贮藏", "ContextMenu-UnfavoriteRepository": "取消收藏储存库", "ContextMenu-ViewServiceRemoteInBrowser": "在{1}上查看{0}", "ContinueRebaseButtonLabel": "继续变基", @@ -335,16 +336,14 @@ "DontSave": "不保存", "DropCommitButtonLabel": "丢弃提交", "DropCommitsButtonLabel": "丢弃提交", - "DropStashError-CloseDetailPanel": "要删除贮藏区,请保存改动并重试。", + "DropStashError-CloseDetailPanel": "要删除贮藏,请保存改动并重试。", "Editor-DiscardChanges": "丢弃这些改动", "Editor-OverwriteContentsOnDisk": "保存并覆盖", - "Editor-OverwriteContentsOnDiskOrDiscardQuestion": "文件已在GitKraken之外修改。要放弃改动,还是覆盖文件?", + "Editor-OverwriteContentsOnDiskOrDiscardQuestion": "文件已在GitKraken之外修改。要丢弃您的改动,还是覆盖文件?", "Editor-OverwriteContentsOnDiskQuestion": "文件已在GitKraken之外修改。是否覆盖该文件?", "EditorPreferences": "编辑器", "EditorPreferences-DefaultFont": "{0} (默认)", "EditorPreferences-EOLCharacter": "行尾字符", - "EditorPreferences-EOLCharacterCRLF": "CRLF", - "EditorPreferences-EOLCharacterLF": "LF", "EditorPreferences-Font": "字体", "EditorPreferences-FontSize": "字体大小", "EditorPreferences-NoFontsFound": "未找到字体", @@ -365,7 +364,7 @@ "Error-AddSSHKeyToServiceFailed": "SSH密钥连接失败", "Error-AmendFailed": "修订失败", "Error-AnnotateTagFailed": "标记批注失败", - "Error-ApplyingStashError": "应用贮藏区错误", + "Error-ApplyingStashError": "应用贮藏错误", "Error-AzureDevops404GetProjects": "无法找到项目", "Error-AzureDevops404GetRepository": "无法找到储存库{0}/{1}", "Error-BitbucketServerForbidden": "Bitbucket服务器:请求被拒绝,因为您或您的令牌权限不足", @@ -379,12 +378,12 @@ "Error-CloseDetailPanel": "请保存您的改动,然后重试。", "Error-CommitFailed": "提交失败", "Error-ConflictDetected": "检测到冲突", - "Error-CouldNotWriteToRepo": "该文件无法写入储存库", + "Error-CouldNotWriteToRepo": "无法将请求的文件写入储存库", "Error-CreateRefFailed": "引用创建失败", - "Error-CreateRemoteRepoAndCloneFailed": "未能创建储存库", + "Error-CreateRemoteRepoAndCloneFailed": "储存库创建失败", "Error-CreateRemoteRepoFailed": "储存库创建失败", "Error-CreateRepoFailed": "储存库创建失败", - "Error-CreatingStashError": "创建贮藏区错误", + "Error-CreatingStashError": "创建贮藏错误", "Error-DeleteFailedWithName": "删除失败:{0}", "Error-DeleteFailedWithNamesTagForRemote": "删除失败:{1}的{0}", "Error-DeleteFileFailed": "在该路径删除文件失败:{0}。", @@ -412,7 +411,7 @@ "Error-GitFlowStartReleaseFailed": "启始发布“{0}”失败", "Error-GitHubNoMorePrivateRepos": "此GitHub帐户下无可用的私有储存库", "Error-GitLabMergeRequestsDisabled": "此储存库已禁用合并请求", - "Error-GpgAnnotateFailedNotEnabled": "无法对带注释的标记进行签名,因为没有配置GPG签名密钥", + "Error-GpgAnnotateFailedNotEnabled": "无法对带批注的标记进行签名,因为没有配置GPG签名密钥", "Error-GpgBadPassphrase": "错误的密码短语", "Error-GpgCopyPublicKeyFailed": "复制GPG公钥失败", "Error-GpgGitConfigUpdate": "无法更新git配置", @@ -439,14 +438,14 @@ "ErrorMessage-CannotOpenFileCompareToolForMultiSelectedFiles": "当前在提交面板中已选中多个文件", "ErrorMessage-CannotOpenFileCompareToolWithoutActiveFile": "没有任何在提交面板已选中或合并解决方案面板中打开的文件", "ErrorMessage-CannotOpenRepo": "未在“{0}”找到兼容的储存库。", - "ErrorMessage-ConflictsPreventStashApplication": "{0}个冲突阻止了应用贮藏区。", + "ErrorMessage-ConflictsPreventStashApplication": "{0}个冲突阻止了应用贮藏。", "ErrorMessage-DiffToolNotFound": "未找到配置的差异工具", "ErrorMessage-DiscardSelectionFailedWithReason": "无法丢弃{0}的选中项,原因如下:{1}", "ErrorMessage-FailedToLaunchDiffTool": "未找到在git config中设置的差异工具“{0}”。", "ErrorMessage-FailedToLaunchMergeTool": "未找到在git config中设置的合并工具“{0}”。", - "ErrorMessage-FileWatcherFailedToStart": "无法为此储存库启动文件监视。", - "ErrorMessage-GitHubEnterpriseTooOld": "您的GitHub企业版实例不再被GitKraken支持。请要求您的网络管理员升级GitHub企业版服务器。", - "ErrorMessage-InotifyLimitReached": "此储存库禁用了文件监视。请增加您的通知限制并重新打开此储存库。", + "ErrorMessage-FileWatcherFailedToStart": "储存库的文件监视启动失败。", + "ErrorMessage-GitHubEnterpriseTooOld": "您的GitHub企业版实例不再被GitKraken支持。请要求您的网络管理员更新GitHub企业版服务器。", + "ErrorMessage-InotifyLimitReached": "此储存库的文件监视功能已禁用。请增加您的通知范围并重新打开此储存库。", "ErrorMessage-InvalidSshKey": "配置的SSH密钥无效。请确认它是否与您的Git服务匹配。", "ErrorMessage-MergeConflicts": "有合并冲突需要解决", "ErrorMessage-MergeToolNotFound": "未找到配置的合并工具", @@ -456,14 +455,14 @@ "ErrorMessage-NoAncestorAvailableToWriteToDisk": "无法将无上级或未解决的冲突保存到磁盘", "ErrorMessage-NoDiffToolSet": "在您的设置中没有配置差异工具", "ErrorMessage-NoMergeToolSet": "在您的设置中没有配置合并工具", - "ErrorMessage-PullRequestRemoteNotFoundWithNameAndHostingService": "无法获取{1}上的“{0}”拉取请求。请仔细检查您的远程URL,并确保您有权限访问该储存库。", + "ErrorMessage-PullRequestRemoteNotFoundWithNameAndHostingService": "无法获取{1}上“{0}”的拉取请求。请仔细检查您的远程URL并确保您有权限访问该储存库。", "ErrorMessage-PushRefToRefFailed": "将{0}推送到{1}失败", "ErrorMessage-RateLimitExceededFor": "超过了{0}的速率限制", "ErrorMessage-RateLimitReset": "您可以再次请求{0} {1}", "ErrorMessage-RebaseConflicts": "有变基冲突需要解决", "ErrorMessage-RemoteAccessDenied": "访问被拒绝。请确保您有权限在远程执行该操作,然后重试。", "ErrorMessage-RemoteAccessDeniedButton": "转到{0}", - "ErrorMessage-RemoteAccessDeniedOrgWarning": "如果{0}是{1}上的组织,您可能可能需要为GitKraken**请求或授予访问权限**。", + "ErrorMessage-RemoteAccessDeniedOrgWarning": "如果{0}是{1}上的组织,您可能需要请求(或授予)GitKraken对该组织的访问权限。", "ErrorMessage-RemoteNotFoundWithName": "无法连接到“{0}”。请仔细检查您的远程URL,并确保您有权限在远程执行该操作,然后重试。", "ErrorMessage-RemoteRefBehindRemote": "您的远程分支已过期。请在推送前拉取{0}。", "ErrorMessage-RemoteRefDoesNotExistOnHostingServiceForPR": "远程上不存在拉取请求的目标或源分支。请获取您的远程来更新,然后推送丢失的分支。", @@ -488,7 +487,7 @@ "ErrorMessage-WindowsShPathNotFound": "这个储存库有Git钩子。在Windows上使用Git钩子需要sh.exe,但GitKraken未找到它。", "Error-MissingAzureDevopsContributePermission": "缺少此远程的“贡献”权限", "Error-MissingAzureDevopsCreateBranchPermission": "缺少此远程的“创建分支”权限", - "Error-MissingAzureDevopsForcePushPermission": "缺少此远程的“强制推送”权限", + "Error-MissingAzureDevopsForcePushPermission": "缺少此分支的“强制推送”权限", "Error-NeedUpgradedPermissions": "需要{0}权限", "Error-OpenDiffToolFailed": "打开差异工具失败", "Error-OpenMergeToolFailed": "打开合并工具失败", @@ -501,11 +500,11 @@ "Error-PushUpdateReferenceFailed": "推送到{0}失败:{1}", "Error-RebaseAbortFailed": "中止变基失败", "Error-RebaseAbortFailedFromFileLock": "变基无法中止。可能是由于文件权限限制或正在被其他进程占用。", - "Error-RebaseAutoUnstashFailed": "弹出自动贮藏区失败", + "Error-RebaseAutoUnstashFailed": "弹出自动贮藏改动失败", "Error-RebaseFailed": "变基失败", "Error-RebaseFailedFromFileLock": "无法修改文件。可能是由于文件权限限制或正在被其他进程占用。解锁文件,中止变基,然后重试。", "Error-RemoteRefusedToDelete": "推送到{0}失败:无法删除远程分支", - "Error-RemoveFailed": "文件删除失败", + "Error-RemoveFailed": "文件移除失败", "Error-RemoveSSHKeyFromServiceFailed": "SSH密钥断开失败", "Error-RenameFailed": "重命名失败", "Error-RenameNeedsLocalBranch": "必须检出一个本地分支!", @@ -627,7 +626,7 @@ "FuzzyFinder-ConfigureGitFlow": "配置Git工作流", "FuzzyFinder-ConfigureGpgSigning": "配置GPG签名", "FuzzyFinder-ConfigureLfs": "配置LFS", - "FuzzyFinder-CreateAnnotatedTag": "创建带注释标记", + "FuzzyFinder-CreateAnnotatedTag": "创建带批注标记", "FuzzyFinder-CreateBranch": "创建分支", "FuzzyFinder-CreateFileKeywords": "创建新文件", "FuzzyFinder-CreateFilePlaceholder": "输入新文件名", @@ -659,12 +658,12 @@ "FuzzyFinder-RenameBranch": "重命名分支", "FuzzyFinder-RepoPrefix": "储存库管理:", "FuzzyFinder-SearchCommits": "搜索提交", - "FuzzyFinder-SearchCommitsPlaceholder": "使用消息,散列值,作者搜索提交", + "FuzzyFinder-SearchCommitsPlaceholder": "使用讯息,散列值,作者搜索提交", "FuzzyFinder-Settings": "设置", "FuzzyFinder-SettingsKeywords": "偏好选项", "FuzzyFinder-StartPullRequest": "开始拉取请求", "FuzzyFinder-StartPullRequestKeywords": "新创建拉取请求", - "FuzzyFinder-StashPrefix": "贮藏区:", + "FuzzyFinder-StashPrefix": "贮藏:", "FuzzyFinder-SwitchProfile": "切换到配置文件", "FuzzyFinder-SwitchProfilePlaceholder": "搜索要切换到的配置文件", "FuzzyFinder-ToggleSyntaxHighlighting": "切换语法高亮", @@ -677,7 +676,7 @@ "FuzzyFinder-ViewReleaseNotes": "查看发行说明", "FuzzyFinder-ViewReleaseNotesKeywords": "补丁说明更改日志", "FuzzyFinder-ViewWorkingDirectoryChanges": "查看工作目录改动", - "FuzzyFinder-ViewWorkingDirectoryChangesKeywords": "工作目录更改", + "FuzzyFinder-ViewWorkingDirectoryChangesKeywords": "更改工作中目录", "GeneralPreferences": "常规", "GeneralPreferences-AutoFetchInterval": "自动获取间隔", "GeneralPreferences-AutoFetchIntervalHelp": "它可以设置为0到60分钟(设置为0时,禁用自动获取)。获取所有可见的远程。", @@ -694,7 +693,7 @@ "GeneralPreferences-GitConfigDefault": "Git Config默认", "GeneralPreferences-Longpaths": "长路径", "GeneralPreferences-LongpathsHelp": "默认情况下,Windows只能处理少于260个字符的文件路径。启用此选项支持更长的文件路径", - "GeneralPreferences-MaxCommitsToShowInGraph": "图表中的最大提交数", + "GeneralPreferences-MaxCommitsToShowInGraph": "关系图中的最大提交数", "GeneralPreferences-MaxCommitsToShowInGraphHelp": "最低2000", "GeneralPreferences-MaxCommitsToShowInGraphWarning": "增大该数值可能会影响性能。", "GeneralPreferences-MergeTool": "合并工具", @@ -703,7 +702,7 @@ "GeneralPreferences-OptIntoBugReporting": "将关于GitKraken的bug报告发送给Axosoft", "GeneralPreferences-RememberLastOpenedRepository": "启动时记住上次打开的储存库", "GeneralPreferences-RememberTabs": "记住标记", - "GeneralPreferences-ShowAllCommitsInGraph": "在图表中显示所有提交", + "GeneralPreferences-ShowAllCommitsInGraph": "在关系图中显示所有提交", "GeneralPreferences-ShowAllCommitsInGraphWarning": "启用此选项可能会影响性能。", "GeneralPreferences-UseCustomTerminalCmd": "使用自定义终端命令", "GeneralPreferences-UseExtendedLogging": "在活动日志中使用扩展记录", @@ -772,7 +771,7 @@ "GitFlow-StartHotfixSuccess": "热修复已启始:“{0}”", "GitFlow-StartRelease": "启始发布", "GitFlow-StartReleaseSuccess": "发布已启始:“{0}”", - "GitFlow-TagMessage": "标记消息", + "GitFlow-TagMessage": "标记讯息", "GitFlow-Update": "更新Git工作流设置", "GitFlow-UpdateWarning": "更改这些前缀将导致使用不同前缀的现有分支被Git工作流忽略。", "GitFlow-VersionTag": "版本标记", @@ -855,15 +854,15 @@ "InitRepo-PrivateAccess": "私有", "InitRepo-PublicAccess": "公开", "KeyBinding-CloseCurrentTab": "关闭当前标签页", - "Keybinding-CloseFileOrRepo": "关闭文件或储存库", + "Keybinding-CloseFileOrRepo": "关闭文件/储存库", "KeyBinding-CloseFileOrTab": "关闭文件/标签页", - "KeyBinding-Commit": "提交(如果输入消息)", - "KeyBinding-CommitWithStage": "暂存所有并提交(如果输入消息)", + "KeyBinding-Commit": "提交(在讯息输入中时)", + "KeyBinding-CommitWithStage": "暂存所有+提交(在讯息输入中时)", "KeyBinding-CreateBranch": "创建分支", "KeyBinding-Fetch": "获取所有", "KeyBinding-FilterBranches": "筛选左侧面板", "KeyBindingFilter-Placeholder": "筛选快捷方式({0} + F)", - "KeyBinding-FocusCommitMessage": "焦点提交消息", + "KeyBinding-FocusCommitMessage": "聚焦于提交讯息", "KeyBinding-FullScreen": "切换全屏", "KeyBinding-FuzzyFinderHistory": "搜索文件以查看其历史记录/追责", "Keybinding-FuzzyFinderOpenRepo": "在模糊查找器中打开储存库", @@ -898,14 +897,14 @@ "LeftPanel-Filtering": "筛选中", "LeftPanel-Hide": "在关系图中隐藏", "LeftPanel-Show": "在关系图中显示", - "LeftPanel-StopSoloing": "停止此分支的独奏模式", + "LeftPanel-StopSoloing": "停止此分支的单独模式", "Lfs-AddTrackingPattern": "添加跟踪模式", "Lfs-AllFilesInFolder": "跟踪 “{0}/” 下的所有文件", "Lfs-AllFilesWithSameExtension": "跟踪具有扩展名 “{0}” 的所有文件", "Lfs-Checkout": "检出所有LFS文件", "Lfs-CheckoutHeader": "检出", "Lfs-Commands": "LFS命令", - "Lfs-ContinueWithoutLfs": "继续无LFS", + "Lfs-ContinueWithoutLfs": "无LFS继续", "Lfs-ErrorCheckout": "LFS检出时发生错误", "Lfs-ErrorFetch": "获取LFS期间发生错误", "Lfs-ErrorPrune": "在LFS剪裁期间发生错误", @@ -922,7 +921,6 @@ "Lfs-LfsNotProperVersionMessage": "Git或LFS的版本已过期。改动LFS管理的文件可能会对储存库产生负面影响。有关安装LFS的信息,请访问支持网站。", "Lfs-NeedsYourCredentials": "LFS需要身份验证信息", "Lfs-NewPattern": "添加新模式", - "Lfs-PreferencesHeader": "LFS", "Lfs-Prune": "剪裁本地LFS储存库", "Lfs-PruneHeader": "剪裁", "Lfs-Pull": "拉取所有LFS文件", @@ -943,12 +941,10 @@ "Lfs-ViewGitattributes": "在编辑器中查看.gitattributes", "Lfs-VisitSupportDocs": "查看文档", "LinuxUpdate-AvailableStatus": "可用的更新({0})", - "LinuxUpdate-DownloadDebUpdateButtonLabel": ".deb", "LinuxUpdate-Downloaded": "已完成下载{0}", "LinuxUpdate-Downloading": "正在下载{0}...", - "LinuxUpdate-DownloadRpmUpdateButtonLabel": ".rpm", - "LinuxUpdate-DownloadTarGzUpdateButtonLabel": ".tar.gz", "LinuxUpdate-ShowDownloadedUpdateButtonLabel": "更新就绪(显示文件)", + "LinuxUpdate-SnapClassicIsAvailable": "快照更新公告", "LinuxUpdate-SomethingWentWrong": "下载更新时出错", "LoadingDiffWithEllipsis": "正在加载差异...", "LoadingWithEllipsis": "载入中...", @@ -960,9 +956,7 @@ "MarkAsResolved": "标记为已解决", "MarkNConflicted": "标记{0}为未解决", "MarkNResolved": "标记{0}为已解决", - "Merge-A": "A", "Merge-AutoResolved": "合并工具自动解决冲突", - "Merge-B": "B", "Merge-BinaryFile": "二进制文件", "Merge-Commit": "提交", "MergeConflictMessagePlural": "尝试合并到{1}时发现{0}个文件冲突", @@ -976,7 +970,7 @@ "MergedRemoteBranchToMaster": "合并远程跟踪分支“{0}”", "MergedRemoteBranchToRef": "将远程跟踪分支“{0}”合并到{1}中", "MergedTagToMaster": "合并标记“{0}”", - "MergedTagToRef": "将标记“{0}”合并到{1}中", + "MergedTagToRef": "将标记“{0}”合并到{1}", "Merge-EditOutput": "编辑文件输出", "MergeError-CloseDetailPanel": "如果要合并,请保存改动并重试。", "Merge-NoAncestorFile": "没有上级文件", @@ -1013,7 +1007,6 @@ "NewTabView-GetGloBoardsAppAndroid": "获取Android版本的Glo版块", "NewTabView-GetGloBoardsAppApple": "获取iOS版本的Glo板块", "NewTabView-GetSupport": "获得支持", - "NewTabView-GitKraken": "GitKraken", "NewTabView-GloBoards": "Glo版块", "NewTabView-JoinSlackCommunity": "加入GitKraken Slack社区", "NewTabView-NewGloBoard": "新建Glo版块", @@ -1027,7 +1020,7 @@ "NewTabView-ReadGloBoardsDocumentation": "阅读Glo板块文档", "NewTabView-RecentBoards": "最近打开的版块", "NewTabView-RecentRepos": "最近打开的储存库", - "NewTabView-StartHostedRepo": "从主机储存库开始:", + "NewTabView-StartHostedRepo": "从托管储存库开始:", "NewTabView-StartLocalRepo": "从本地储存库开始", "NewTabView-Timelines": "时间线", "NewTabView-ViewNOthers": "查看其他{0}", @@ -1070,7 +1063,7 @@ "Notification-RevertSuccessful": "还原成功", "Notification-SSHKeyBeingUsed": "密钥已添加", "Notification-SubmoduleCreatedSuccessful": "子模块已创建", - "Notification-SubmoduleDeletedSuccessful": "子模块已删除", + "Notification-SubmoduleDeletedSuccessful": "子模块已移除", "Notification-SupportSent": "支持已发送", "NotNowButtonLabel": "现在不", "OKButtonLabel": "确定", @@ -1111,12 +1104,12 @@ "PendingInteractiveRebasePanel-MoveCommitUpTooltip": "上移提交", "PendingInteractiveRebasePanel-Reset": "复原", "PendingInteractiveRebasePanel-StartRebase": "开始变基", - "PendingInteractiveRebasePanel-UpdateMessage": "更新消息", + "PendingInteractiveRebasePanel-UpdateMessage": "更新讯息", "Plugin-FullviewLoadFailed": "插件打开失败", "Plugin-GenericTabLabel": "插件", - "Plugin-TabViewLoadFailed": "插件无法打开", + "Plugin-TabViewLoadFailed": "插件打开失败", "Pop": "弹出", - "PopStashButtonTooltip": "弹出贮藏区", + "PopStashButtonTooltip": "弹出贮藏", "PreviousButtonLabel": "上一个", "Pro": "专业版", "ProCamelCase": "专业版", @@ -1166,14 +1159,14 @@ "PromptForCreds-IncorrectSSHPassphrase": "SSH密钥密码错误。请重试:", "PromptForCreds-InvalidCredentialsForProxy": "{0}的凭证无效。请重试:", "PromptForCreds-InvalidCredentialsForUrl": "{0}的凭证无效。请重试:", - "PromptForCreds-InvalidLogin": "登录无效。请重试:", + "PromptForCreds-InvalidLogin": "{0}的登录无效。请重试:", "PromptForCreds-LocksIcon": "大写锁定已开启", "PromptForCreds-PasswordPlaceholder": "密码", - "PromptForCreds-PleaseLogIn": "请登录后继续:", + "PromptForCreds-PleaseLogIn": "请登录{0}后继续:", "PromptForCreds-RememberMe": "保存验证信息", "PromptForCreds-UsernamePlaceholder": "用户名", "PromptForDeleteRepo-Delete": "删除储存库", - "PromptForDeleteRepo-Message": "是否永久删除储存库{0}?", + "PromptForDeleteRepo-Message": "永久删除储存库{0}?", "PromptForMerge-SaveAncestor": "您尚未选择A或B,确定要保存上级文件吗?", "PromptForMerge-SaveMergeWithUnresolvedConflicts": "您有未解决的冲突。您想怎样继续?", "PromptForNewBranchName-InvalidBranchName": "给定的分支名称无效", @@ -1185,9 +1178,9 @@ "PromptForPush-PushingReferenceRequiresForce": "此引用需要强制推送,这是一种破坏性操作且不能撤消。您要完成推送吗?", "PromptForRebase-ConfirmDropCommit": "您确定要删除1个提交吗?", "PromptForRebase-ConfirmDropXCommits": "您确定要删除{0}个提交吗?", - "PromptForRemoteDeletionConfirmation": "这是一种破坏性的操作。确定要删除“{0}”吗?", - "PromptForTagAnnotation-Message": "消息:", - "PromptForTagAnnotation-Placeholder": "批注消息", + "PromptForRemoteDeletionConfirmation": "这是一种破坏性操作,您确定要删除“{0}”吗?", + "PromptForTagAnnotation-Message": "讯息:", + "PromptForTagAnnotation-Placeholder": "批注讯息", "PromptForTagAnnotation-Sign": "签名", "PromptIgnore-Ignore": "忽略", "PromptIgnore-IgnoreAndUntrack": "忽略并停止跟踪", @@ -1220,11 +1213,11 @@ "PullRequestBar-Menu": "拉请求操作", "PullRequestBar-MinuteAgo": "{0}分钟前", "PullRequestBar-MinutesAgo": "{0}分钟前", - "PullRequestBar-Opened": "已打开:{0}", + "PullRequestBar-Opened": "开始于:{0}", "PullRequestBar-Reviewers": "评审", - "PullRequestBar-UnknownPullRequestHead": "私有或已删除的储存库(拒绝访问)", + "PullRequestBar-UnknownPullRequestHead": "私有/已删除的储存库(拒绝访问)", "PullRequestBar-UnknownPullRequestOwnerLogin": "未知的用户名(拒绝访问)", - "PullRequestBar-Updated": "已更新:{0}", + "PullRequestBar-Updated": "更新于:{0}", "PullRequestBar-ViewContinuousIntegrationResultInBrowser": "查看{0}的最新构建", "PullRequestBar-ViewPullRequestInBrowser": "在{2}上查看拉取请求{0}{1}", "PullRequestBar-Yesterday": "昨天", @@ -1255,7 +1248,7 @@ "PullRequestPanel-OpenGloCard": "打开Glo卡片", "PullRequestPanel-PullRequestDescription": "拉请求描述", "PullRequestPanel-PullRequestTitle": "拉请求标题", - "PullRequestPanel-RemoveGloCard": "删除Glo卡片", + "PullRequestPanel-RemoveGloCard": "移除Glo卡片", "PullRequestPanel-Repo": "储存库", "PullRequestPanel-Reviewers": "评审", "PullRequestPanel-SearchCards": "搜索卡片...", @@ -1275,7 +1268,7 @@ "PushButtonTooltip": "推送", "PushToButtonTooltip": "推送到{0}", "QuitGitKraken": "退出GitKraken", - "RebaseAbortError-CloseDetailPanel": "要中止变基,请保存更改并重试。", + "RebaseAbortError-CloseDetailPanel": "要中止变基,请保存改动并重试。", "RebaseContinueError-CloseDetailPanel": "要继续变基,请保存改动并重试。", "RebaseError-CloseDetailPanel": "如果要变基,请保存改动并重试。", "Rebasing-AutoStashLabel": "自动贮藏未提交的改动", @@ -1296,7 +1289,7 @@ "RefBar-GroupLocal": "本地", "RefBar-GroupPullRequests": "拉取请求", "RefBar-GroupRemote": "远程", - "RefBar-GroupStashes": "贮藏区", + "RefBar-GroupStashes": "贮藏", "RefBar-GroupSubmodules": "子模块", "RefBar-GroupTags": "标记", "RefBar-NAhead": "超前{0}", @@ -1304,17 +1297,17 @@ "RefBar-NavigateToTag": "导航到标记", "RefBar-NBehind": "落后{0}", "RefBar-OpenGitFlow": "打开Git工作流", - "RefBar-StatusSoloing": "独奏", + "RefBar-StatusSoloing": "单独", "RefBar-StatusViewing": "查看", "RefBar-TagActions": "标记操作", "RefCreatedMessage": "{0}:{1}已创建在{2}", - "ReflogAction": "使用reflog消息“{0}”的操作", + "ReflogAction": "使用引用讯息“{0}”的操作", "ReflogActionCheckout": "从“{0}”检出到“{1}”", "ReflogActionCommit": "提交“{0}”", "ReflogActionCommitAmend": "提交修订“{0}”", "ReflogActionDeleteBranch": "删除分支“{0}”", "ReflogActionDeleteBranchTracking": "删除分支“{0}”跟踪“{1}”", - "ReflogActionRemoveRemote": "删除远程“{0}”", + "ReflogActionRemoveRemote": "移除远程“{0}”", "ReflogActionReset": "复原为“{0}”", "ReflogActionSaveMany": "丢弃“{0}”和其他{1}个文件", "ReflogActionSaveOne": "丢弃“{0}”", @@ -1376,12 +1369,12 @@ "Registration-PasswordStrength4": "非常强", "Registration-PasswordStrengthPrefix": "密码强度:", "Registration-PasswordTooShort": "密码长度必须至少为{0}个字符。", - "Registration-PrivateRepoDetected": "这似乎是一个私人储存库", + "Registration-PrivateRepoDetected": "这似乎是一个私有储存库", "Registration-PrivateRepoDetectedContent": "GitKraken的免费版本不支持私有或自建主机储存库", "Registration-ProLicenseExpiredBody1": "您的GitKraken许可证已经过期。请更新您的订阅,以便继续将GitKraken用于商业用途。", - "Registration-ProLicenseExpiredBody2-1": "您正在使用非商业用途的GitKraken免费版。合并冲突编辑器、配置文件、GitHub企业版、GitLab自建主机,Bitbucket服务器和Azure开发运维集成等专业功能已被禁用。", + "Registration-ProLicenseExpiredBody2-1": "您正在使用的是GitKraken的免费版本。打开私有和自托管储存库、合并冲突编辑器、配置文件和及GitHub企业版、GitLab自管、Bitbucket服务器和开发运维集成功能已禁用。", "Registration-ProLicenseExpiredBody2-2": "您可以随时从主菜单或访问{0}续订。", - "Registration-ProLicenseExpiredCancel": "切换到非商业用途", + "Registration-ProLicenseExpiredCancel": "取消订阅", "Registration-ProLicenseExpiredGoToShop": "续订", "Registration-ProLicenseExpiredTitle": "许可证已过期", "Registration-Register": "注册", @@ -1418,19 +1411,16 @@ "RemoteForm-AddRemoteButtonLabel": "添加远程", "RemoteForm-AddUserRemote": "添加此远程", "RemoteForm-AzureDevops": "Azure开发运维", - "RemoteForm-Bitbucket": "Bitbucket.org", "RemoteForm-BitbucketServer": "Bitbucket服务器", "RemoteForm-ConnectToService": "连接到{0}", "RemoteForm-EditManually": "编辑远程", "RemoteForm-EditRemote": "编辑远程", "RemoteForm-Fork": "分叉", "RemoteForm-ForkAndAddRemote": "分叉并添加到远程", - "RemoteForm-ForkFound": "{0}上有此储存库的分叉:", + "RemoteForm-ForkFound": "{0}上有您对此储存库的分叉:", "RemoteForm-ForkNotFound": "您尚未在{1}上分叉{0}。", - "RemoteForm-GitHub": "GitHub.com", "RemoteForm-GitHubEnterprise": "GitHub企业版", - "RemoteForm-GitLab": "GitLab.com", - "RemoteForm-GitLabSelfHosted": "GitLab(自建主机)", + "RemoteForm-GitLabSelfHosted": "GitLab自管", "RemoteForm-NoMatch": "没有匹配", "RemoteForm-PrivateRepo": "私有储存库", "RemoteForm-PublicRepo": "公有储存库", @@ -1442,7 +1432,6 @@ "RemoteForm-SelectPlaceholder": "选择...", "RemoteForm-TooManyServiceRemotesWarningManyForks": "我们正在检索与此储存库关联的大量分叉。从{1}获取URL可能会更快", "RemoteForm-TooManyServiceRemotesWarningNForks": "我们正在检索与此储存库关联的{0}个分叉。从{1}获取URL可能会更快", - "RemoteForm-Url": "URL", "RemoveButtonLabel": "移除", "Repo": "储存库", "Repo-ClearFromRecentRepositories": "清除最近的储存库中的{0}", @@ -1460,27 +1449,27 @@ "ResetFilesButtonLabel": "复原文件", "ResizePanel": "调整面板大小", "RetryWithoutOAuthLabel": "无OAuth重试", - "RewordCommitMessageHelperText": "改写此提交消息将导致{0}个提交被变基。", - "RewordCommitMessageTooltip": "单击以改写您的提交消息", - "RewordInputTitle": "改写提交消息", + "RewordCommitMessageHelperText": "改写此提交讯息将导致{0}个提交被变基。", + "RewordCommitMessageTooltip": "单击以改写您的提交讯息", + "RewordInputTitle": "改写提交讯息", "RightPanel-1ChangeOn": "1个文件改动", "RightPanel-FilterFiles": "筛选文件", "RightPanel-MergeConflictsDetected": "检测到合并冲突", - "RightPanel-NChangesOn": "{0}文件改动", + "RightPanel-NChangesOn": "{0}文件改动在", "RightPanel-NCommitsSelected": "{0}个已选中的提交", "RightPanel-PinToBottom": "固定在底边", "RightPanel-PinToRight": "固定在右边", "RightPanel-RebaseConflictsDetected": "检测到变基冲突", "RightPanel-UnsupportedRebase": "外部变基正在进行中", - "RightPanel-View1FileChangeInWorkingDirectory": "工作目录中的1个文件改动", - "RightPanel-View1FileConflictInWorkingDirectory": "工作目录中的1个文件冲突", + "RightPanel-View1FileChangeInWorkingDirectory": "工作目录中有1个文件改动", + "RightPanel-View1FileConflictInWorkingDirectory": "工作目录中有1个文件冲突", "RightPanel-ViewAllFiles": "查看所有文件", "RightPanel-ViewChange": "查看改动", "RightPanel-ViewChanges": "查看改动", "RightPanel-ViewConflict": "查看冲突", "RightPanel-ViewConflicts": "查看冲突", - "RightPanel-ViewNFileChangesInWorkingDirectory": "工作目录中的{0}个文件改动", - "RightPanel-ViewNFileConflictsInWorkingDirectory": "工作目录中{0}个文件冲突", + "RightPanel-ViewNFileChangesInWorkingDirectory": "工作目录中有{0}个文件改动", + "RightPanel-ViewNFileConflictsInWorkingDirectory": "工作目录中有{0}个文件冲突", "Save": "保存", "SaveAncesor": "保存上级", "SaveAndStageEditorChanges-Message": "您是否要在暂存之前保存改动,或者只暂存已保存到磁盘的部分?", @@ -1491,61 +1480,61 @@ "SeePlansButtonLabel": "查看GitKraken收费计划", "SendMessageButtonLabel": "发送", "SendUsFeedback": "向我们发送反馈", - "SendUsFeedback-CantRespondToAllFeedback": "当GitKraken团队阅读所有反馈时,我们无法回复大多数反馈电子邮件。", + "SendUsFeedback-CantRespondToAllFeedback": "GitKraken团队期待您的反馈,但是请注意,我们无法回复所有反馈电子邮件。", "SendUsFeedback-DefaultSubject": "关于GitKraken({0})的反馈", "SendUsFeedback-EmailAddress": "电子邮件地址", - "SendUsFeedback-EmailUsYourself": "或者,您可以自己发电子邮件给我们在", + "SendUsFeedback-EmailUsYourself": "或者,您可以自己给我们发电子邮件到", "SendUsFeedback-Feedback": "反馈", "SendUsFeedback-Subject": "主题", "Service": "服务", "Services": "服务", - "Services-AddAndCopy": "添加SSH密钥并将其复制到剪贴板", + "Services-AddAndCopy": "添加SSH密钥并复制到剪贴板", "Services-AddedDate": "{0}已添加", "Services-AddExistingSSHKey": "添加现有SSH密钥", "Services-AddKey": "将密钥添加到{0}", - "Services-AddToService": "添加{0}", + "Services-AddToService": "添加到{0}", "Services-AuthenticationGeneral": "常规", "Services-AzureDevopsUpgradeToPro": "升级到GitKraken专业版以开始使用Azure开发运维集成", - "Services-BitbucketServerUpgradeToPro": "升级到GitKraken专业版并享与BitBucket服务器相同的集成,就像使用Bitbucket.org一样", + "Services-BitbucketServerUpgradeToPro": "升级到GitKraken专业版并让您的BitBucket服务器享受与Bitbucket.org一样的集成", "Services-BrowseForPrivateSSHKey": "浏览**私**钥", "Services-BrowseForPublicSSHKey": "浏览**公**钥", - "Services-CannotDisconnectLoginService": "当{0}被用于登录GitKraken时,不能断开连接。", + "Services-CannotDisconnectLoginService": "当{0}用于登录GitKraken时无法断开连接。", "Services-ClearSSHKey": "停止使用", "Services-ComingSoon": "即将推出", "Services-Connect": "连接", "Services-Connected": "已连接", "Services-ConnectedWithService": "已连接到{0}", - "Services-CopySSHPublicKeyAndOpenWebsite": "将公钥复制到剪贴板并使用{0}打开它", + "Services-CopySSHPublicKeyAndOpenWebsite": "将公钥复制到剪贴板并打开{0}", "Services-CopySSHPublicKeyToClipboard": "将公钥复制到剪贴板", - "Services-DeleteSSHKey": "删除本地", + "Services-DeleteSSHKey": "本地删除", "Services-Disconnect": "断开", "Services-EditConfig": "编辑", - "Services-Error-HostDomainUnreachable": "无法访问指定的主机", + "Services-Error-HostDomainUnreachable": "无法访问指定的主机域", "Services-Error-PersonalAccessTokenInvalid": "指定的个人访问令牌无效", "Services-Error-SavePersonalAccessTokenFailed": "使用个人访问令牌进行连接失败", "Services-GenerateAndAddSSHKey": "生成SSH密钥并添加到{0}", "Services-GenerateAndCopySSHKey": "生成SSH密钥并复制到剪贴板", "Services-GenerateATokenOn": "在{0}上生成令牌", "Services-GenerateSSHKey": "生成SSH密钥", - "Services-GitHubEnterpriseUpgradeToPro": "升级到GitKraken专业版并享与GitHub企业服务器相同的集成,就像使用GitHub.com一样", + "Services-GitHubEnterpriseUpgradeToPro": "升级到GitKraken专业版并让您的GitHub企业版服务器享受与GitHub.com一样的集成", "Services-GitKrakenNeedsATokenFrom": "GitKraken需要一个令牌从", - "Services-GitLabSelfHostedUpgradeToPro": "升级到GitKraken专业版并享与Gi​​tLab服务器相同的集成,就像使用GitLab.com一样", + "Services-GitLabSelfHostedUpgradeToPro": "升级到GitKraken专业版并让您的GitLab自管享受与GitLab.com一样的集成", "Services-HostDomain": "主机域", "Services-HostDomainHint": "例如:{0}.mycompany.com", "Services-HostDomainHintAzureDevops": "例如,dev.azure.com/mycompany", - "Services-Info": "设置SSH并继续登录以优化您的体验。GitKraken可以为每个服务设置不同的SSH密钥。", + "Services-Info": "设置SSH并保持登录状态以简化您的体验。GitKraken甚至可以为每个服务使用不同的SSH密钥。", "Services-KeyPrivate": "私钥:{0}", "Services-KeyPublic": "公钥:{0}", - "Services-LeaveBlank": "建议此字段留空", + "Services-LeaveBlank": "我们建议将此字段留空。", "Services-NotConnected": "未连接", "Services-PersonalAccessToken": "个人访问令牌", - "Services-PersonalAccessTokenGenerate": "创建{0}的访问令牌", + "Services-PersonalAccessTokenGenerate": "在{0}上生成访问令牌", "Services-PersonalAccessTokenTooltip": "GitKraken可以使用个人访问令牌连接到企业服务器,并简化应用程序中的操作。单击了解如何执行。", "Services-Reconnect": "重连接", "Services-RemoveAndDeleteSSHKey": "移除并删除", - "Services-RemoveConfig": "删除", + "Services-RemoveConfig": "移除", "Services-RemoveConfigTooltip": "移除与此服务器的连接", - "Services-RemoveSSHKey": "删除密钥", + "Services-RemoveSSHKey": "移除密钥", "Services-Repo": "{0}储存库", "Services-ServiceConnectionSuccessful": "已连接到{0}", "Services-ServiceConnectionSuccessfulMessage": "在克隆或添加远程时,GitKraken将帮助您查找{0}上的内容。我们还将使用您的SSH配置来获取和推送;或者,您可以在“服务”菜单中设置一个{0}特定的SSH密钥。", @@ -1556,7 +1545,7 @@ "Services-SSHKeyAdviseAdd": "在{0}账户上未找到此项。GitKraken可以尝试将密钥添加到{0}(推荐)。", "Services-SSHKeyAdviseInvalid": "在{0}账户上未找到此项。您可以从下面配置GitHub的SSH密钥。", "Services-SSHKeyAdviseInvalidOrAdd": "在{0}账户上未找到此项。GitKraken可以尝试将密钥添加到{0},也可以在下面配置其他密钥。", - "Services-SSHKeyRemovalSuccessful": "SSH密钥已从{0}中删除。", + "Services-SSHKeyRemovalSuccessful": "SSH密钥已从{0}中移除。", "Services-SSHKeyTitlePlaceholder": "(可选)请输入新SSH密钥的标题", "Services-SSHKeyTooltip": "使用GitKraken将SSH密钥添加到{0}。在与{0} SSH储存库交互时,GitKraken将使用该密钥。", "Services-SSHKeyUnverifiable": "{0}不允许外部应用程序检查公钥是否已注册。如果您的密钥未被{0}接受,请使用下面的按钮,并确保该键已添加到{1}上。", @@ -1570,20 +1559,27 @@ "SetAsDefaultOptionTooltip": "设置为默认值", "SetUpstreamPrompt-InvalidBranchName": "给定的分支名称无效", "SetUpstreamPrompt-MustSelectRemote": "您必须选择一个远程(例如“origin/”)", - "SetUpstreamPrompt-SelectRemoteBranchMessage": "请设置“{0}”的远程分支", + "SetUpstreamPrompt-SelectRemoteBranchMessage": "“{0}”应该推送和拉取哪个远程/分支?", "Shop-OpenInBrowser": "在浏览器中打开", "Shop-ShopTitle": "账户管理", "ShowAll": "显示全部", "ShowPricingButtonLabel": "显示GitKraken专业版的价格", "ShPath-ConfirmPath": "这个储存库需要需要sh来运行Git钩子。sh的路径是否位于{0}?", "SkipCommitButtonLabel": "跳过提交", - "SoloBranch": "将此分支设置为独奏模式", + "SnapClassicUpdate-ClassicConfinement": "经典约束", + "SnapClassicUpdate-Details": "我们正在将GitKraken快照包更改为使用{0}。以下是我们通过切换到经典约束而改进的内容", + "SnapClassicUpdate-GitHookSupport": "完整的Git钩子支持", + "SnapClassicUpdate-GPGSupport": "完整的GPG支持", + "SnapClassicUpdate-LFSSupport": "完整的LFS支持", + "SnapClassicUpdate-SSHSupport": "完整的SSH支持", + "SnapClassicUpdate-ToGetNextUpdate": "要获取下一个更新,您需要使用以下命令重新安装该软件包:", + "SoloBranch": "将此分支设置为单独模式", "SSHConfig": "SSH配置", - "SSHConfig-GenerateNewKey": "生成新的密钥/公钥", + "SSHConfig-GenerateNewKey": "生成新的私钥/公钥", "SSHConfig-GenerateNewKeyButtonLabel": "生成", - "SSHConfig-GenerateNewKeyHelp": "这将创建新的密钥并配置GitKraken以使用它们", + "SSHConfig-GenerateNewKeyHelp": "这将创建新的密钥并配置GitKraken来使用它们", "SSHConfig-SSHKeySaveLocation": "SSH密钥保存位置", - "SSHConfig-SSHPrivateKey": "SSH密钥", + "SSHConfig-SSHPrivateKey": "SSH私钥", "SSHConfig-SSHPublicKey": "SSH公钥", "SSHConfig-UseLocalSSHAgent": "使用本地SSH代理", "SSHKey": "SSH密钥", @@ -1597,9 +1593,9 @@ "StageThisFile": "暂存文件", "StageThisHunk": "暂存区块", "StageThisLine": "暂存此行", - "StagingPanel-Amend": "修改", - "StagingPanel-DetachedHeadStateExplanation": "如果您检出另一个分支或提交,则可能会丢失在分离头状态下创建的提交", - "StagingPanel-ShowMoreFiles": "显示下一个{0}({1}以上)", + "StagingPanel-Amend": "修订", + "StagingPanel-DetachedHeadStateExplanation": "如果您检出另一个分支或提交,则可能会丢失在分离头状态下创建任何的提交", + "StagingPanel-ShowMoreFiles": "显示下{0}个(还有{1}个)", "StagingPanel-UseTemplate": "使用模板", "StagingPanel-WarningDetachedHeadState": "您处于分离头状态", "Standalone": "企业版", @@ -1611,7 +1607,7 @@ "Standalone-DateExpired": "{0}已过期", "Standalone-Expires": "过期", "Standalone-GitKrakenIsUnlicensed": "这份GitKraken副本是未经授权的。", - "Standalone-LicenseConfigurationTitle": "企业许可证", + "Standalone-LicenseConfigurationTitle": "企业版许可证", "Standalone-LicensedTo": "授权于", "Standalone-LicenseInfoExpired": "{1}用户的{0}许可。已过期", "Standalone-LicenseInfoExpiresToday": "{1}用户的{0}许可。今天过期", @@ -1619,21 +1615,21 @@ "Standalone-LicenseInfoForActive": "{1}用户的{0}许可", "Standalone-LicenseInfoForActiveExpiresSoon": "{1}用户的{0}许可。{2}天后过期", "Standalone-LicenseSuccessfullyUpdated": "许可证已成功更新", - "Standalone-NumberOfUsers": "用户数量", + "Standalone-NumberOfUsers": "#用户数量", "Standalone-SavedLicenseIsInvalid": "磁盘上的许可证无效。", - "Standalone-Unlicensed": "未经授权", + "Standalone-Unlicensed": "未经授权许可", "Standalone-UpdatedLicenseFailedToUpdate": "当我们尝试使用所选的许可证时出错了。", "Standalone-UpdatedLicenseWasExpired": "您选择的许可证文件已过期。", "Standalone-UpdatedLicenseWasInvalid": "您选择的许可证文件无效。", "Standalone-UpdatedLicenseWasNotFound": "未找到您选择的许可证文件。", "Standalone-UpdateLicense": "更新许可证", - "StartRebaseButtonLabel": "开始变基", + "StartRebaseButtonLabel": "是,开始变基", "StartTrialButtonLabel": "GitKraken专业版免费试用", "Stash": "贮藏", - "Stash-ApplyWithUncommittedChangesPrompt": "您有未提交的改动。确定要应用贮藏区并覆盖改动吗?", + "Stash-ApplyWithUncommittedChangesPrompt": "您有未提交的改动。您确定要在改动的基础上应用贮藏吗?", "StashBar-Menu": "贮藏操作", "StashButtonTooltip": "贮藏", - "StashMessage-Amend": "在修改“{0}”之前自动贮藏", + "StashMessage-Amend": "在修订“{0}”之前自动贮藏", "StashMessage-Checkout": "在检出“{0}”之前自动贮藏", "StashMessage-CherryPick": "在摘取“{0}”之前自动贮藏", "StashMessage-Merge": "在合并“{0}”和“{1}”之前自动贮藏", @@ -1641,18 +1637,18 @@ "StashMessage-Revert": "在还原“{0}”之前自动贮藏", "SubmitButtonLabel": "提交", "Submodule": "子模块", - "Submodule-CannotStageUncommittedSubmoduleChanges": "有些改动尚未提交给子模块。请提交改动并打开子模块。", + "Submodule-CannotStageUncommittedSubmoduleChanges": "您的子模块中有未提交的改动。打开子模块来提交改动。", "Submodule-CheckingOut": "正在检出子模块{0}", "Submodule-CommitMessageDeleted": "已移除子模块{0}", - "Submodule-CommitMessageNew": "子模块{0}已添加", + "Submodule-CommitMessageNew": "已添加子模块{0}", "Submodule-CommitMessageUpdated": "已更新子模块{0}", "Submodule-CommitWithAlreadyStagedPrompt": "您有已暂存的改动,是否也要提交这些改动?", "Submodule-CouldNotShowCurrent": "在初始化子模块之前无法解决子模块{0}中的合并冲突", "Submodule-Create": "添加子模块", "Submodule-Creating": "正在添加子模块", - "Submodule-DeletePrompt": "这是一种破坏性的操作,确定要删除 “{0}”吗?", + "Submodule-DeletePrompt": "这是一种破坏性操作,您确定要删除 “{0}”吗?", "Submodule-Deleting": "正在移除子模块", - "Submodule-DirInIndex": "索引中的路径“{0}”已作为目录存在。", + "Submodule-DirInIndex": "路径“{0}”已作为目录存在索引中。", "Submodule-Edit": "编辑子模块", "Submodule-Fetching": "正在获取子模块{0}", "Submodule-FetchingRecursively": "正在获取递归子模块{0}", @@ -1670,17 +1666,17 @@ "Submodule-FormPointerRevision": "预期的提交", "Submodule-FormRebase": "变基", "Submodule-FormRemove": "删除此子模块", - "Submodule-FormReset": "丢弃子模块中的改动", + "Submodule-FormReset": "丢弃子模块改动", "Submodule-FormUpdateStrategy": "更新策略", "Submodule-FormUrl": "远程URL", "Submodule-FormWorkdirRevision": "已检出提交", - "Submodule-InitAllPrompt": "您确定要初始化{0}的子模块吗?", + "Submodule-InitAllPrompt": "您需要初始化{0}的子模块吗?", "Submodule-Initialize": "初始化", "Submodule-InitializeSpecific": "初始化{0}", "Submodule-Initializing": "初始化子模块", "Submodule-InitializingProgress": "初始化子模块{0}({1})", "Submodule-InitializingUpdate": "更新...", - "Submodule-LocalModifications": "有些改动未提交给子模块", + "Submodule-LocalModifications": "当前未提交的子模块改动", "Submodule-Menu": "子模块操作", "Submodule-Open": "打开子模块:{0}", "Submodule-OpenImplied": "打开子模块", @@ -1688,7 +1684,7 @@ "Submodule-PathExistsPrompt": "路径{0}已存在,是否删除它?", "Submodule-Status-AddedInitialized": "您的子模块已添加和初始化,但未提交。", "Submodule-Status-AddedUninitialized": "您的子模块已添加,但需要初始化。", - "Submodule-Status-Deleted": "您已删除此子模块,需要提交改动。", + "Submodule-Status-Deleted": "您已移除此子模块,需要提交改动。", "Submodule-Status-Dirty": "此子模块中存在未提交的改动。", "Submodule-Status-DirtyAndOutOfSync": "此子模块中存在未提交的改动,并且与{0}不同步。", "Submodule-Status-InSync": "此子模块与您的储存库({0})同步。", @@ -1715,8 +1711,8 @@ "Theme-Light": "亮", "Timeline-1HourAgo": "1小时前", "Timeline-1MonthAgo": "1个月前", - "Timeline-1WeekAgo": "一周前", - "Timeline-1YearAgo": "一年前", + "Timeline-1WeekAgo": "1周前", + "Timeline-1YearAgo": "1年前", "Timeline-ArbitrarilyLongAgo": "请停止滚动", "Timeline-NDaysAgo": "{0}天前", "Timeline-NHoursAgo": "{0}小时前", @@ -1725,9 +1721,9 @@ "Timeline-NYearsAgo": "{0}年前", "Timeline-Yesterday": "昨天", "ToggleHideLabel": "隐藏", - "ToggleSoloLabel": "单独的", + "ToggleSoloLabel": "单独", "ToolbarButton-DropdownFilterNoResults": "无结果", - "ToolbarButton-DropdownFilterPlaceholder": "筛选面板", + "ToolbarButton-DropdownFilterPlaceholder": "筛选版块", "ToolbarButton-DropdownMessage": "选择单击此储存库的Glo按钮时要打开的默认面板", "ToolbarButton-GloDropdownFilterPlaceholder": "筛选版块", "ToolbarButton-GloDropdownMessage": "选择在此储存库中点击Glo按钮时默认打开的版块", @@ -1735,16 +1731,15 @@ "ToolbarButton-TimelinesDropdownMessage": "选择在此储存库中点击时间线按钮时默认打开的时间线", "Toolbar-CloseRepository": "关闭储存库", "Toolbar-CloseSubmodule": "关闭子模块", - "ToolbarLabels-Chipotle": "吃葡萄", "ToolbarLabels-Fetch": "获取", "Toolbar-PullFastForwardOnlyNotAvailableInDetachedHead": "当处于分离头状态时,拉取(仅快进)不可用", "Toolbar-PullMergeNotAvailableInDetachedHead": "当处于分离头状态时,拉取(快进优先)不可用", "Toolbar-PullRebaseNotAvailableInDetachedHead": "当处于分离头状态时,拉取(变基)不可用", "Toolbar-PushNotAvailableInDetachedHead": "当处于分离头状态时,推送不可用", - "Trial-AnyKindOfTrialEndedModalTitle": "GitKraken的试用已经结束", + "Trial-AnyKindOfTrialEndedModalTitle": "您的GitKraken的试用已经结束", "Trial-AnyKindOfTrialTrialEndedModalContinueUsingFree": "不,谢谢,我将不带{0}继续。", - "Trial-PremiumFeatures": "高级功能", - "Trial-ProFeatures": "专业功能", + "Trial-PremiumFeatures": "高级版功能", + "Trial-ProFeatures": "专业版功能", "Trial-StartTrialModalConfirmButton": "开始免费试用GitKrake专业版", "Trial-StartTrialModalContent": "开始{0}天GitKraken专业版免费试用,以访问专业版功能,例如合并冲突编辑器、多配置文件、GitHub企业版、GitLab自建主机、Bitbucket服务器和Azure开发运维。无需信用卡。", "Trial-StartTrialModalHideTrialOfferCheckbox": "隐藏“GitKraken专业版免费试用”按钮", @@ -1753,14 +1748,14 @@ "Trial-StartTrialModalTitle": "开始免费试用GitKraken专业版", "Trial-StartXDayTrial": "开始为期{0}天的专业版试用", "TrialStatus": "GitKraken专业版的试用期剩余{0} - 立即升级", - "Trial-TableFeature1": "使用私有托管和自建主机的储存库", + "Trial-TableFeature1": "使用私有托管和自托管的储存库", "Trial-TableFeature2": "内建一个强大的合并冲突编辑器", "Trial-TableFeature3": "切换工作和个人用途的多个配置文件", - "Trial-TableFeature4": "GitHub企业集成", - "Trial-TableFeature5": "自建GitLab集成", + "Trial-TableFeature4": "GitHub企业版集成", + "Trial-TableFeature5": "自管GitLab集成", "Trial-TableFeature6": "Bitbucket服务器集成", "Trial-TableFeature7": "Azure开发运维集成", - "Trial-TrialEndedModalContinueUsingFree": "不用了,我将继续免费版本。", + "Trial-TrialEndedModalContinueUsingFree": "不用了,我将继续使用免费版本。", "Trial-TrialEndedModalSubcontent1": "立即升级到GitKraken专业版,可以继续使用专业版功能,并获得优先支持。", "Trial-TrialEndedModalSubcontent2": "如果您使用GitKraken进行商业项目,则需要GitKraken专业版。GitKraken为您的整个团队大幅降价。", "Trial-TrialEndedModalTitle": "GitKraken专业版免费试用已经结束", @@ -1786,19 +1781,19 @@ "UIPreferences-UseAuthorInitialsForAvatars": "显示作者首字母缩写,而非头像", "UncommittedFileList-ConflictedFilesTitleSummary": "冲突文件({0})", "UncommittedFileList-StagedFilesTitleSummary": "已暂存文件({0})", - "UncommittedFileList-UnconflictedFilesTitleSummary": "已解析文件({0})", + "UncommittedFileList-UnconflictedFilesTitleSummary": "已解决文件({0})", "UncommittedFileList-UnstagedFilesTitleSummary": "未暂存文件({0})", "Undo": "撤消", "UndoCannotButtonTooltip": "无法撤消", - "UndoInvalidButtonTooltip": "无法撤消{0}。目前只支持提交、检出和某些丢弃操作。", - "UndoRedo-InformationMissing": "撤消信息丢失-这可能是由于垃圾回收造成的。", + "UndoInvalidButtonTooltip": "无法撤消{0}。当前仅支持提交(带父级)、检出和某些丢弃操作。", + "UndoRedo-InformationMissing": "撤消信息丢失 - 这可能是由于垃圾回收造成的。", "UndoRedo-RedoFailed": "重做失败", "UndoRedo-RedoSuccessful": "重做成功", "UndoRedo-UndoFailed": "撤消失败", "UndoRedo-UndoSuccessful": "撤消成功", "UndoValidButtonTooltip": "撤消{0}", "Uninitialized": "未初始化", - "UnsoloAll": "退出独奏模式", + "UnsoloAll": "退出单独模式", "Unstage": "取消暂存", "UnstageAllChanges": "取消暂存的所有改动", "UnstageAndRemoveButtonLabel": "取消暂存并删除", @@ -1810,16 +1805,16 @@ "UnstageThisFile": "取消暂存文件", "UnstageThisHunk": "取消暂存区块", "UnstageThisLine": "取消暂存此行", - "UnsupportedRebaseMessage": "此储存库正在另一个应用程序中运行变基", + "UnsupportedRebaseMessage": "外部应用程序正在此储存库上执行变基", "UpgradeGitKrakenButtonLabel": "升级GitKraken", "UpgradeToProButtonLabel": "升级到GitKraken专业版", "UpstreamBranch": "上游分支", "UseFreeButtonLabel": "继续使用GitKraken免费版", "Version6LegacyTrial-BlogPost": "博客帖子", - "Version6LegacyTrial-Feature1": "打开私有储存库的能力", + "Version6LegacyTrial-Feature1": "能够打开私有储存库", "Version6LegacyTrial-Feature2": "访问合并冲突编辑器", - "Version6LegacyTrial-ModalContent1": "我们对GitKraken收费计划有了一些更改,由此,我们将您的帐户升级到了{0}天的GitKraken个人版。此次升级将为您提供:", - "Version6LegacyTrial-ModalContent2": "关于收费计划的变更,请参阅{0}。", + "Version6LegacyTrial-ModalContent1": "我们对GitKraken收费计划有了一些改动,由此,我们将您的帐户升级到了{0}天的GitKraken个人版!此次升级将为您提供:", + "Version6LegacyTrial-ModalContent2": "您可以在{0}中查看我们的定价计划更改。", "Version6LegacyTrial-ModalTitle": "感谢您成为出色的GitKraken用户!", "Version6LegacyTrialStatus": "GitKraken个人版剩余{0} - 立即升级", "View-ActivityLog": "活动日志", @@ -1829,6 +1824,7 @@ "View-AutoUpdate": "选择安装程序", "View-AutoUpdate-Downloaded": "下载已完成", "View-AutoUpdate-Downloading": "正在下载更新", + "View-AutoUpdate-SnapClassicIsAvailable": "需要重新安装", "View-AutoUpdate-SomethingWentWrong": "出了点问题", "ViewDiffToolSettings": "查看差异工具设置", "View-GitHookFailureLog": "钩子日志", @@ -1840,7 +1836,7 @@ "ViewShPathSettings": "查看设置", "ViewTerminalSettings": "查看终端设置", "View-ToggleLeftPanel": "切换左侧面板", - "View-ZoomDown": "缩少", + "View-ZoomDown": "缩小", "View-ZoomReset": "复位", "View-ZoomUp": "放大", "WelcomeView-OpenProject": "打开一个项目", @@ -1851,9 +1847,9 @@ "WelcomeView-Welcome": "欢迎来到GitKraken!", "WindowsFilemodeChangeWarning": "文件模式的索引可能已在GitKraken外部进行了改动。", "WindowsFilemodeChangeWarningConfigEnabled": "您在git配置中启用了文件模式改动!在Windows中,工作目录中的文件似乎有-x,因此文件模式的改动显示在此处。", - "WorkDirMessageInput-WIPPlaceholder": "// WIP", - "WorkInProgressAbbr": "中作中", - "WorkInProgressOnBranchAbbr": "中作中于{0}", + "WorkDirMessageInput-WIPPlaceholder": "// 工作中", + "WorkInProgressAbbr": "工作中", + "WorkInProgressOnBranchAbbr": "工作中于{0}", "YesButtonLabel": "是", "Zoom": "缩放" } diff --git a/strings/zh-tw.json b/strings/zh-tw.json index 5d46762..a99e1b1 100644 --- a/strings/zh-tw.json +++ b/strings/zh-tw.json @@ -7,34 +7,34 @@ "AboutProduct": "關於<%= productName %>", "CheckForUpdateWithLastCheckedTime": "檢查更新<%= updateLastCheckedTime %>", "CheckingForUpdates": "正在檢查更新...", - "Clo&neRepo": "克隆儲存庫(&N)", "CloneRepo": "克隆儲存庫", + "Clo&neRepo": "克隆儲存庫(&N)", "CloseTab": "關閉標籤頁", - "C&opy": "複製(&O)", "Copy": "複製", - "&Cut": "剪下(&C)", + "C&opy": "複製(&O)", "Cut": "剪下", + "&Cut": "剪下(&C)", "Developer": "開發者", "DownloadingUpdate": "正在下載更新...", "DownloadUpdate": "下載更新", - "&Edit": "編輯(&E)", "Edit": "編輯", + "&Edit": "編輯(&E)", "E&xit": "退出(&X)", "Favorites": "收藏夾", - "&File": "檔案(&F)", "File": "檔案", + "&File": "檔案(&F)", "FollowUsOnTwitter": "在推特上關注我們", "GetSupport": "獲取支援", - "&Help": "幫助(&H)", "Help": "幫助", + "&Help": "幫助(&H)", "Hide": "隱藏GitKraken", "HideOthers": "隱藏其他", - "&InitRepo": "初始化儲存庫(&I)", "InitRepo": "初始化儲存庫", + "&InitRepo": "初始化儲存庫(&I)", "KeyboardShortcuts": "鍵盤快捷鍵", "Minimize": "最小化", - "&NewTab": "新標籤頁(&N)", "NewTab": "新標籤頁", + "&NewTab": "新標籤頁(&N)", "OpenFavorite1": "開啟收藏夾儲存庫1", "OpenFavorite2": "開啟收藏夾儲存庫2", "OpenFavorite3": "開啟收藏夾儲存庫3", @@ -46,27 +46,26 @@ "OpenFavorite9": "開啟收藏夾儲存庫9", "OpenFuzzyFinder": "開啟模糊查詢器", "OpenInFileManager": "在檔案管理器中開啟", - "&OpenRepo": "開啟儲存庫(&O)", "OpenRepo": "開啟儲存庫", - "Open&Terminal": "開啟終端(&T)", + "&OpenRepo": "開啟儲存庫(&O)", "OpenTerminal": "開啟終端", - "&Paste": "貼上(&P)", + "Open&Terminal": "開啟終端(&T)", "Paste": "貼上", - "&Preferences": "首選項(&P)...", + "&Paste": "貼上(&P)", "Preferences": "首選項...", + "&Preferences": "首選項(&P)...", "PrintPerformanceTimingsToTerminal": "將效能計時列印到終端", - "ProductName": "<%= productName %>", "Quit": "退出GitKraken", - "&Redo": "重做(&R)", "Redo": "重做", - "&Reload": "重新載入(&R)", + "&Redo": "重做(&R)", "Reload": "重新載入", + "&Reload": "重新載入(&R)", "RestartAndInstallUpdate": "重啟並安裝更新", "RunSystemTests": "運行系統測試...", "RunTests": "運行測試...", "RunTestsWithCoverage": "使用覆蓋率運行測試...", - "Select&All": "全選(&A)", "SelectAll": "全選", + "Select&All": "全選(&A)", "SelectNextTab": "選擇下一個標籤頁", "SelectPreviousTab": "選擇上一個標籤頁", "SelectTab1": "選擇標籤頁1", @@ -84,14 +83,14 @@ "SignIntoDifferentAccount": "登入不同的帳戶", "SupportLogs": "支援日誌", "Tabs": "標籤頁", - "ToggleDeveloper&Tools": "切換開發者工具(&T)", "ToggleDeveloperTools": "切換開發者工具", - "Toggle&FullScreen": "切換全屏(&F)", + "ToggleDeveloper&Tools": "切換開發者工具(&T)", "ToggleFullScreen": "切換全屏", + "Toggle&FullScreen": "切換全屏(&F)", "ToggleProStatus": "切換專業版狀態", "ToggleReactPerfRecording": "啟動/停止響應效能記錄", - "&Undo": "撤消(&U)", "Undo": "撤消", + "&Undo": "撤消(&U)", "UpdateAvailableDownloadDeb": "下載.deb檔案", "UpdateAvailableDownloadRpm": "下載.rpm檔案", "UpdateAvailableDownloadTargz": "下載.tar.gz檔案", @@ -99,8 +98,8 @@ "UpdateDownloadedShowFile": "更新已下載(顯示檔案)", "UpdateErroredAtTime": "更新錯誤<%= updateErrorTime %>", "VersionNumber": "版本<%= version %>(<%= bitness %>位)", - "&View": "檢視(&V)", "View": "檢視", + "&View": "檢視(&V)", "ViewActivityLogs": "檢視活動日誌", "ViewErrorLogs": "檢視錯誤日誌", "ViewPerformanceLogs": "檢視效能日誌", @@ -123,18 +122,18 @@ "AllFilesInFolder": "“{0}/”下的所有檔案", "AllFilesWithSameExtension": "所有副檔名為“{0}”的檔案", "AmendOrRewordPreviousCommitMessageButtonLabel": "更新訊息", - "AmendPreviousCommitButtonLabel": "修改最後一次提交", - "AmendPreviousCommitMessageButtonLabel": "修改訊息", - "AmendPreviousCommitMessageTip": "單擊此處修改提交訊息", - "AnnotatedTag": "已註釋標記", + "AmendPreviousCommitButtonLabel": "修訂上一個提交", + "AmendPreviousCommitMessageButtonLabel": "更新訊息", + "AmendPreviousCommitMessageTip": "單擊此處修訂提交訊息", + "AnnotatedTag": "已批註標記", "Application": "應用程式", "Apply": "應用", - "ApplyStashButtonTooltip": "應用貯藏區", - "ApplyStashError-CloseDetailPanel": "要應用貯藏區,請儲存您改動並重試。", + "ApplyStashButtonTooltip": "應用貯藏", + "ApplyStashError-CloseDetailPanel": "要應用貯藏,請儲存您的改動並重試。", "Authentication": "認證", "Authentication-ForgetAll": "忘記所有", - "Authentication-ForgetAllCredentials": "忘記所有使用者名/密碼", - "Authentication-NoCredentialsToRemove": "GitKraken沒有要刪除的儲存憑據", + "Authentication-ForgetAllCredentials": "忘記所有使用者名和密碼", + "Authentication-NoCredentialsToRemove": "GitKraken沒有儲存了的憑據可移除", "Author": "作者", "AuthoredLabel": "創作於", "AutoUpdate-RestartGitKrakenAndInstallUpdateButtonLabel": "更新就緒(重新啟動GitKraken)", @@ -144,9 +143,9 @@ "BreadCrumbs-FavoritesHeader": "收藏夾", "BreadCrumbs-RecentsHeader": "最近開啟的", "BrowseButtonLabel": "瀏覽", - "By": "{0}由", + "By": "由{0}", "Bytes": "位元組", - "CancelAmendPreviousCommitMessageButtonLabel": "停止修改", + "CancelAmendPreviousCommitMessageButtonLabel": "取消修訂", "CancelButtonLabel": "取消", "CancelRewordPreviousCommitMessageButtonLabel": "取消改寫", "ChangeRepo-CloneRepo": "克隆", @@ -154,7 +153,7 @@ "ChangeRepo-OpenRepo": "開啟", "CheckingOutBranch": "正在檢出分支", "CheckoutError-CloseDetailPanel": "如果要檢出,請儲存改動並重試。", - "CloneRepo-ArchivedRepoSuffix": "(存檔)", + "CloneRepo-ArchivedRepoSuffix": "(已歸檔)", "CloneRepo-CloneARepo": "克隆儲存庫", "CloneRepo-CloneDestinationPath": "要克隆到的位置", "CloneRepo-ClonedRepoName": "完整路徑", @@ -162,7 +161,6 @@ "CloneRepo-CloneRepoButtonLabel": "克隆儲存庫!", "CloneRepo-CloneSuccess": "儲存庫“{0}”克隆成功", "CloneRepo-CloneViaUrl": "使用URL克隆", - "CloneRepo-RepoToCloneUrl": "URL", "CloneRepo-RepoToCloneViaService": "要克隆的儲存庫", "Close": "關閉", "CloseRepo-CloseFailed": "關閉失敗", @@ -175,12 +173,12 @@ "CommitButtonLabelPlural": "提交{0}個檔案的改動", "CommitButtonLabelSingular": "提交1個檔案的改動", "CommitButtonLabelStageFiles": "請暫存要提交的檔案/改動", - "CommitDetailPanel-AndTheWIP": "和WIP", - "CommitDetailPanel-DiffBetweenACommitAndTheWIP": "檢視提交和WIP之間的差異", + "CommitDetailPanel-AndTheWIP": "和工作中", + "CommitDetailPanel-DiffBetweenACommitAndTheWIP": "檢視提交和工作中之間的差異", "CommitDetailPanel-DiffBetweenCommitsTitle": "檢視{0}個提交的合併差異", "CommitDetailPanel-DiffBetweenTwoCommits": "檢視兩個提交之間的差異", "CommitDetailPanel-MergeConflictTitle": "合併衝突", - "CommitDetailPanel-MergeMessage": "將{0}合併到{1}中", + "CommitDetailPanel-MergeMessage": "將{0}合併到{1}", "CommitDetailPanel-MergeTitle": "合併", "CommitDetailPanel-UnsupportedRebaseMessage": "當變基在其他應用程式中運行時,GitKraken的功能受到限制", "CommitDetailPanel-UnsupportedRebaseTitle": "檢測到外部變基", @@ -201,43 +199,43 @@ "CommitTemplates-CommitTemplateDocumentation": "Git提交模板文件", "CommitTemplates-Description": "描述", "CommitTemplates-ErrorSaveTemplate": "儲存提交模板時出錯", - "CommitTemplates-Instructions": "應用預設初始訊息,可在提交時保持摘要和描述的一致性。有關詳細資訊,請參閱", - "CommitTemplates-RemoveCommentsFromCommitMessages": "從提交訊息中刪除註釋", + "CommitTemplates-Instructions": "創建並應用預設的初始訊息,以保持提交摘要和描述的一致性。有關更多資訊,請參閱", + "CommitTemplates-RemoveCommentsFromCommitMessages": "從提交訊息中移除註釋", "CommitTemplates-SaveCommitTemplate": "儲存提交模板", "CommitTemplates-SuccessSaveTemplate": "儲存提交模板成功", "CommitTemplates-Summary": "摘要", "CommitTemplates-TitleLimitExceeded": "超過了用於提交摘要的字元限制({0})!", - "CommitTemplates-TitleLimitHelpText": "使用為提交摘要分配的{0}/{1}個字元", + "CommitTemplates-TitleLimitHelpText": "使用分配給提交摘要的{0}/{1}個字元", "CommitTemplates-UseTemplateForCommitMessages": "將此模板應用於提交訊息", - "CommitterLabel": "已提交", + "CommitterLabel": "提交於", "ConfirmationMessage-ClonePullRequestHead": "是否要新增“{0}”為遠端並檢出“{1}”?", "ConfirmationMessage-CreateCommitForMerge": "是否立即提交合並的改動?", - "ConfirmationMessage-Delete1LocalBranchInFolder": "這是一個破壞性操作,確實要在“{0}”中刪除1個本地分支?", - "ConfirmationMessage-DeleteAllRefs": "這是一種破壞性的操作。確定要從此節點或遠端刪除“{0}”嗎?", - "ConfirmationMessage-DeleteConfigLock": "無法鎖定.git/config,因為鎖已經存在。可能正在使用另一個程式正在改動儲存庫。是否要刪除此儲存庫的配置鎖以便對其進行修改?", + "ConfirmationMessage-Delete1LocalBranchInFolder": "這是一種破壞性操作,您確定要在“{0}”中刪除1個本地分支嗎?", + "ConfirmationMessage-DeleteAllRefs": "這是一種破壞性操作,您確定要從此節點和遠端刪除“{0}”嗎?", + "ConfirmationMessage-DeleteConfigLock": "無法鎖定.git/config,因為鎖已經存在。另一個程式或操作可能正在修改儲存庫。是否要刪除此儲存庫的配置鎖,以便對其進行修改?", "ConfirmationMessage-DeleteFile": "這將刪除“{0}”。您確定要繼續嗎?", - "ConfirmationMessage-DeleteFiles": "刪除已選中的檔案。繼續處理?", - "ConfirmationMessage-DeleteGitFlowRef": "這個分支是Git工作流所必需的。確定要刪除“{0}”嗎?", - "ConfirmationMessage-DeleteNLocalBranchesInFolder": "這是一個破壞性操作,確實要在“{1}”中刪除{0}個本地分支?", - "ConfirmationMessage-DeleteRef": "這是一種破壞性的操作。確定要刪除“{0}”嗎?", - "ConfirmationMessage-DeleteStash": "這是一種破壞性的操作。確定要刪除貯藏區“{0}”嗎?", - "ConfirmationMessage-DeleteTagFromAllRemotes": "從遠端儲存庫中刪除標記“{0}”?", - "ConfirmationMessage-DeleteTagFromRemote": "這是一種破壞性的操作。確定要從“{1}”中刪除“{0}”嗎?", + "ConfirmationMessage-DeleteFiles": "刪除已選中的檔案。您確定要繼續嗎?", + "ConfirmationMessage-DeleteGitFlowRef": "這個分支是Git工作流所必需的。您確定要刪除“{0}”嗎?", + "ConfirmationMessage-DeleteNLocalBranchesInFolder": "這是一種破壞性操作,您確定要在“{1}”中刪除{0}個本地分支嗎?", + "ConfirmationMessage-DeleteRef": "這是一種破壞性操作,您確定要刪除“{0}”嗎?", + "ConfirmationMessage-DeleteStash": "這是一種破壞性操作,您確定要刪除帶有訊息“{0}”的貯藏嗎?", + "ConfirmationMessage-DeleteTagFromAllRemotes": "這是一種破壞性操作,您確定要從遠端儲存庫中刪除“{0}”嗎?", + "ConfirmationMessage-DeleteTagFromRemote": "這是一種破壞性操作,您確定要從“{1}”中刪除“{0}”嗎?", "ConfirmationMessage-DiscardUnstagedChangesToFile": "這將丟棄對“{0}”的未暫存改動。您確定要繼續嗎?", - "ConfirmationMessage-DiscardUnstagedChangesToFiles": "這將丟棄已選中檔案中未暫存的改動。繼續處理?", + "ConfirmationMessage-DiscardUnstagedChangesToFiles": "這將丟棄已選中檔案中未暫存的改動。您確定要繼續嗎?", "ConfirmationMessage-ImmediatelyCommitCherryPick": "是否立即提交摘取的改動?", "ConfirmationMessage-ImmediatelyCommitRevert": "是否立即提交還原的改動?", "ConfirmationMessage-InitEmptyRepo": "需要初始提交才能開啟儲存庫“{0}”。您需要GitKraken為您生成一個提交嗎?", "ConfirmationMessage-InitRepo": "在“ {0}”處找不到相容的儲存庫。 您要在此處創建一個新的儲存庫嗎?", "ConfirmationMessage-MergeConflictStashAndCheckout": "檢測到合併衝突。要繼續合併,必須貯藏所有改動並檢出分支{0}。是否立即執行?", - "ConfirmationMessage-PersistConflictToDisk": "您確定要儲存它嗎?", + "ConfirmationMessage-PersistConflictToDisk": "您確定要儲存到磁碟嗎?", "ConfirmationMessage-RebaseRequiresCheckout": "要開始變基,您必須檢出分支“{0}”。您想立即這麼做嗎?", "ConfirmationMessage-RebaseRequiresStashAndCheckout": "要開始變基,您需要貯藏改動並檢出分支“{0}”。是否立即執行?", - "ConfirmationMessage-ResetAll": "這將丟棄所有暫存和未快取的改動,包括新的未跟蹤檔案。確定要放棄所有更改?", - "ConfirmationMessage-ResetFile": "這將丟棄對“{0}”的所有已暫存和未暫存改動。您確定要繼續嗎?", - "ConfirmationMessage-ResetFiles": "這將丟棄已選中檔案中所有已暫存和未暫存的更改。是否確定要丟棄所有選定的更改?", + "ConfirmationMessage-ResetAll": "這將丟棄所有已暫存和未暫存改動,包括新的未跟蹤檔案。您確定要丟棄所有改動?", + "ConfirmationMessage-ResetFile": "這將丟棄對“{0}”的所有已暫存和未暫存改動。您確定要丟棄對檔案的所有改動?", + "ConfirmationMessage-ResetFiles": "這將丟棄對已選中檔案的所有已暫存和未暫存改動。您確定要丟棄對已選中檔案的所有改動?", "ConfirmationMessage-UnstageAndRemoveFile": "這將取消暫存並刪除“{0}”。您確定要繼續嗎?", - "ConfirmationMessage-UnstageAndRemoveFiles": "這將取消暫存並刪除已選中的檔案。繼續處理?", + "ConfirmationMessage-UnstageAndRemoveFiles": "這將取消暫存並刪除已選中的檔案。您確定要繼續嗎?", "ConfirmationMessage-WouldYouLikeToDeleteTagFromAllRemotes": "是否要從您的遠端儲存庫中刪除名為“{0}”的標記?", "ConnectingWithEllipsis": "正在連線...", "ContextMenu-AmendCommitMessage": "編輯提交訊息", @@ -246,11 +244,13 @@ "ContextMenu-CheckoutBranch": "檢出{0}", "ContextMenu-CheckoutCommit": "檢出此提交", "ContextMenu-CherrypickCommit": "摘取提交", + "ContextMenu-CommitNotInGraph": "不能在關係圖中跳轉到提交,因為它是不可見的。", "ContextMenu-CopyBranchName": "複製分支名稱到剪貼簿", "ContextMenu-CopyCommitId": "複製提交ID到剪貼簿", + "ContextMenu-CopyCommitSha": "複製雜湊值到剪貼簿", "ContextMenu-CopyFilePath": "複製檔案路徑到剪貼簿", "ContextMenu-CopyTagName": "複製標記名稱到剪貼簿", - "ContextMenu-CreateAnnotatedTag": "在此創建帶註釋的標記", + "ContextMenu-CreateAnnotatedTag": "在此創建帶批註的標記", "ContextMenu-CreateBranchHere": "在此處創建分支", "ContextMenu-CreateTagHere": "在此處創建標記", "ContextMenu-Delete1BranchInFolder": "刪除資料夾“{0}”中的1個分支", @@ -258,7 +258,7 @@ "ContextMenu-DeleteBranch": "刪除{0}", "ContextMenu-DeleteLocalAndRemoteBranches": "刪除{0}和{1}", "ContextMenu-DeleteNBranchesInFolder": "在資料夾“{1}”中刪除{0}個分支", - "ContextMenu-DeleteProjectGroup": "從列表中刪除", + "ContextMenu-DeleteProjectGroup": "從列表中移除", "ContextMenu-DeleteTagFromRemote": "從遠端刪除標記", "ContextMenu-DeleteTagXFromAllRemotes": "從所有遠端中刪除{0}", "ContextMenu-DeleteTagXFromRemoteY": "從{1}刪除{0}", @@ -272,7 +272,8 @@ "ContextMenu-FetchRemote": "獲取{0}", "ContextMenu-GitHubActionDelete": "刪除工作流", "ContextMenu-GitHubActionEdit": "編輯工作流", - "ContextMenu-HideAllStashes": "隱藏所有貯藏區", + "ContextMenu-GoToParentCommit": "在關係圖中跳轉到提交", + "ContextMenu-HideAllStashes": "隱藏所有貯藏", "ContextMenu-HideAllTags": "隱藏所有標記", "ContextMenu-MergeBranchIntoBranch": "將{0}合併到{1}", "ContextMenu-MoveCommitDown": "下移提交", @@ -289,7 +290,7 @@ "ContextMenu-RebaseBranchOntoBranch": "變基{0}於{1}", "ContextMenu-RebaseBranchOntoBranchInteractively": "互動式變基{0}於{1}", "ContextMenu-RebaseXChildrenOfShaInteractively": "互動式變基{1}的{0}個子代", - "ContextMenu-RemoveRemote": "刪除{0}", + "ContextMenu-RemoveRemote": "移除{0}", "ContextMenu-RenameBranch": "重新命名{0}", "ContextMenu-ResetBranchToThisCommit": "將{0}復原為此提交", "ContextMenu-ResetHardWithHint": "強行 - 丟棄所有改動過的工作副本", @@ -298,16 +299,16 @@ "ContextMenu-RevertCommit": "還原提交", "ContextMenu-RewordCommit": "改寫提交", "ContextMenu-SetUpstream": "設定上游", - "ContextMenu-ShowAllStashes": "顯示所有貯藏區", + "ContextMenu-ShowAllStashes": "顯示所有貯藏", "ContextMenu-ShowAllTags": "顯示所有標記", "ContextMenu-SquashCommit": "壓扁提交", "ContextMenu-SquashXCommits": "合併{0}個提交", "ContextMenu-StartPullRequestFromY": "從{0}創建拉取請求", "ContextMenu-StartPullRequestToX": "創建拉取請求到{0}", "ContextMenu-StartPullRequestToXFromY": "創建從{1}到{0}的拉取請求", - "ContextMenu-StashApply": "應用貯藏區", - "ContextMenu-StashDelete": "刪除貯藏區", - "ContextMenu-StashPop": "彈出貯藏區", + "ContextMenu-StashApply": "應用貯藏", + "ContextMenu-StashDelete": "刪除貯藏", + "ContextMenu-StashPop": "彈出貯藏", "ContextMenu-UnfavoriteRepository": "取消收藏儲存庫", "ContextMenu-ViewServiceRemoteInBrowser": "在{1}上檢視{0}", "ContinueRebaseButtonLabel": "繼續變基", @@ -335,16 +336,14 @@ "DontSave": "不儲存", "DropCommitButtonLabel": "丟棄提交", "DropCommitsButtonLabel": "丟棄提交", - "DropStashError-CloseDetailPanel": "要刪除貯藏區,請儲存改動並重試。", + "DropStashError-CloseDetailPanel": "要刪除貯藏,請儲存改動並重試。", "Editor-DiscardChanges": "丟棄這些改動", "Editor-OverwriteContentsOnDisk": "儲存並覆蓋", - "Editor-OverwriteContentsOnDiskOrDiscardQuestion": "檔案已在GitKraken之外修改。要放棄改動,還是覆蓋檔案?", + "Editor-OverwriteContentsOnDiskOrDiscardQuestion": "檔案已在GitKraken之外修改。要丟棄您的改動,還是覆蓋檔案?", "Editor-OverwriteContentsOnDiskQuestion": "檔案已在GitKraken之外修改。是否覆蓋該檔案?", "EditorPreferences": "編輯器", "EditorPreferences-DefaultFont": "{0} (預設)", "EditorPreferences-EOLCharacter": "行尾字元", - "EditorPreferences-EOLCharacterCRLF": "CRLF", - "EditorPreferences-EOLCharacterLF": "LF", "EditorPreferences-Font": "字型", "EditorPreferences-FontSize": "字型大小", "EditorPreferences-NoFontsFound": "未找到字型", @@ -365,7 +364,7 @@ "Error-AddSSHKeyToServiceFailed": "SSH金鑰連線失敗", "Error-AmendFailed": "修訂失敗", "Error-AnnotateTagFailed": "標記批註失敗", - "Error-ApplyingStashError": "應用貯藏區錯誤", + "Error-ApplyingStashError": "應用貯藏錯誤", "Error-AzureDevops404GetProjects": "無法找到項目", "Error-AzureDevops404GetRepository": "無法找到儲存庫{0}/{1}", "Error-BitbucketServerForbidden": "Bitbucket伺服器:請求被拒絕,因為您或您的令牌許可權不足", @@ -379,12 +378,12 @@ "Error-CloseDetailPanel": "請儲存您的改動,然後重試。", "Error-CommitFailed": "提交失敗", "Error-ConflictDetected": "檢測到衝突", - "Error-CouldNotWriteToRepo": "該檔案無法寫入儲存庫", + "Error-CouldNotWriteToRepo": "無法將請求的檔案寫入儲存庫", "Error-CreateRefFailed": "引用創建失敗", - "Error-CreateRemoteRepoAndCloneFailed": "未能創建儲存庫", + "Error-CreateRemoteRepoAndCloneFailed": "儲存庫創建失敗", "Error-CreateRemoteRepoFailed": "儲存庫創建失敗", "Error-CreateRepoFailed": "儲存庫創建失敗", - "Error-CreatingStashError": "創建貯藏區錯誤", + "Error-CreatingStashError": "創建貯藏錯誤", "Error-DeleteFailedWithName": "刪除失敗:{0}", "Error-DeleteFailedWithNamesTagForRemote": "刪除失敗:{1}的{0}", "Error-DeleteFileFailed": "在該路徑刪除檔案失敗:{0}。", @@ -412,7 +411,7 @@ "Error-GitFlowStartReleaseFailed": "啟始釋出“{0}”失敗", "Error-GitHubNoMorePrivateRepos": "此GitHub帳戶下無可用的私有儲存庫", "Error-GitLabMergeRequestsDisabled": "此儲存庫已禁用合併請求", - "Error-GpgAnnotateFailedNotEnabled": "無法對帶註釋的標記進行簽名,因為沒有配置GPG簽名金鑰", + "Error-GpgAnnotateFailedNotEnabled": "無法對帶批註的標記進行簽名,因為沒有配置GPG簽名金鑰", "Error-GpgBadPassphrase": "錯誤的密碼短語", "Error-GpgCopyPublicKeyFailed": "複製GPG公鑰失敗", "Error-GpgGitConfigUpdate": "無法更新git配置", @@ -439,14 +438,14 @@ "ErrorMessage-CannotOpenFileCompareToolForMultiSelectedFiles": "當前在提交面板中已選中多個檔案", "ErrorMessage-CannotOpenFileCompareToolWithoutActiveFile": "沒有任何在提交面板已選中或合併解決方案面板中開啟的檔案", "ErrorMessage-CannotOpenRepo": "未在“{0}”找到相容的儲存庫。", - "ErrorMessage-ConflictsPreventStashApplication": "{0}個衝突阻止了應用貯藏區。", + "ErrorMessage-ConflictsPreventStashApplication": "{0}個衝突阻止了應用貯藏。", "ErrorMessage-DiffToolNotFound": "未找到配置的差異工具", "ErrorMessage-DiscardSelectionFailedWithReason": "無法丟棄{0}的選中項,原因如下:{1}", "ErrorMessage-FailedToLaunchDiffTool": "未找到在git config中設定的差異工具“{0}”。", "ErrorMessage-FailedToLaunchMergeTool": "未找到在git config中設定的合併工具“{0}”。", - "ErrorMessage-FileWatcherFailedToStart": "無法為此儲存庫啟動檔案監視。", - "ErrorMessage-GitHubEnterpriseTooOld": "您的GitHub企業版例項不再被GitKraken支援。請要求您的網路管理員升級GitHub企業版伺服器。", - "ErrorMessage-InotifyLimitReached": "此儲存庫禁用了檔案監視。請增加您的通知限制並重新開啟此儲存庫。", + "ErrorMessage-FileWatcherFailedToStart": "儲存庫的檔案監視啟動失敗。", + "ErrorMessage-GitHubEnterpriseTooOld": "您的GitHub企業版例項不再被GitKraken支援。請要求您的網路管理員更新GitHub企業版伺服器。", + "ErrorMessage-InotifyLimitReached": "此儲存庫的檔案監視功能已禁用。請增加您的通知範圍並重新開啟此儲存庫。", "ErrorMessage-InvalidSshKey": "配置的SSH金鑰無效。請確認它是否與您的Git服務匹配。", "ErrorMessage-MergeConflicts": "有合併衝突需要解決", "ErrorMessage-MergeToolNotFound": "未找到配置的合併工具", @@ -456,14 +455,14 @@ "ErrorMessage-NoAncestorAvailableToWriteToDisk": "無法將無上級或未解決的衝突儲存到磁碟", "ErrorMessage-NoDiffToolSet": "在您的設定中沒有配置差異工具", "ErrorMessage-NoMergeToolSet": "在您的設定中沒有配置合併工具", - "ErrorMessage-PullRequestRemoteNotFoundWithNameAndHostingService": "無法獲取{1}上的“{0}”拉取請求。請仔細檢查您的遠端URL,並確保您有許可權訪問該儲存庫。", + "ErrorMessage-PullRequestRemoteNotFoundWithNameAndHostingService": "無法獲取{1}上“{0}”的拉取請求。請仔細檢查您的遠端URL並確保您有許可權訪問該儲存庫。", "ErrorMessage-PushRefToRefFailed": "將{0}推送到{1}失敗", "ErrorMessage-RateLimitExceededFor": "超過了{0}的速率限制", "ErrorMessage-RateLimitReset": "您可以再次請求{0} {1}", "ErrorMessage-RebaseConflicts": "有變基衝突需要解決", "ErrorMessage-RemoteAccessDenied": "訪問被拒絕。請確保您有許可權在遠端執行該操作,然後重試。", "ErrorMessage-RemoteAccessDeniedButton": "轉到{0}", - "ErrorMessage-RemoteAccessDeniedOrgWarning": "如果{0}是{1}上的組織,您可能可能需要為GitKraken**請求或授予訪問許可權**。", + "ErrorMessage-RemoteAccessDeniedOrgWarning": "如果{0}是{1}上的組織,您可能需要請求(或授予)GitKraken對該組織的訪問許可權。", "ErrorMessage-RemoteNotFoundWithName": "無法連線到“{0}”。請仔細檢查您的遠端URL,並確保您有許可權在遠端執行該操作,然後重試。", "ErrorMessage-RemoteRefBehindRemote": "您的遠端分支已過期。請在推送前拉取{0}。", "ErrorMessage-RemoteRefDoesNotExistOnHostingServiceForPR": "遠端上不存在拉取請求的目標或源分支。請獲取您的遠端來更新,然後推送丟失的分支。", @@ -488,7 +487,7 @@ "ErrorMessage-WindowsShPathNotFound": "這個儲存庫有Git鉤子。在Windows上使用Git鉤子需要sh.exe,但GitKraken未找到它。", "Error-MissingAzureDevopsContributePermission": "缺少此遠端的“貢獻”許可權", "Error-MissingAzureDevopsCreateBranchPermission": "缺少此遠端的“創建分支”許可權", - "Error-MissingAzureDevopsForcePushPermission": "缺少此遠端的“強制推送”許可權", + "Error-MissingAzureDevopsForcePushPermission": "缺少此分支的“強制推送”許可權", "Error-NeedUpgradedPermissions": "需要{0}許可權", "Error-OpenDiffToolFailed": "開啟差異工具失敗", "Error-OpenMergeToolFailed": "開啟合併工具失敗", @@ -501,11 +500,11 @@ "Error-PushUpdateReferenceFailed": "推送到{0}失敗:{1}", "Error-RebaseAbortFailed": "中止變基失敗", "Error-RebaseAbortFailedFromFileLock": "變基無法中止。可能是由於檔案許可權限制或正在被其他程序佔用。", - "Error-RebaseAutoUnstashFailed": "彈出自動貯藏區失敗", + "Error-RebaseAutoUnstashFailed": "彈出自動貯藏改動失敗", "Error-RebaseFailed": "變基失敗", "Error-RebaseFailedFromFileLock": "無法修改檔案。可能是由於檔案許可權限制或正在被其他程序佔用。解鎖檔案,中止變基,然後重試。", "Error-RemoteRefusedToDelete": "推送到{0}失敗:無法刪除遠端分支", - "Error-RemoveFailed": "檔案刪除失敗", + "Error-RemoveFailed": "檔案移除失敗", "Error-RemoveSSHKeyFromServiceFailed": "SSH金鑰斷開失敗", "Error-RenameFailed": "重新命名失敗", "Error-RenameNeedsLocalBranch": "必須檢出一個本地分支!", @@ -627,7 +626,7 @@ "FuzzyFinder-ConfigureGitFlow": "配置Git工作流", "FuzzyFinder-ConfigureGpgSigning": "配置GPG簽名", "FuzzyFinder-ConfigureLfs": "配置LFS", - "FuzzyFinder-CreateAnnotatedTag": "創建帶註釋標記", + "FuzzyFinder-CreateAnnotatedTag": "創建帶批註標記", "FuzzyFinder-CreateBranch": "創建分支", "FuzzyFinder-CreateFileKeywords": "創建新檔案", "FuzzyFinder-CreateFilePlaceholder": "輸入新檔名", @@ -664,7 +663,7 @@ "FuzzyFinder-SettingsKeywords": "偏好選項", "FuzzyFinder-StartPullRequest": "開始拉取請求", "FuzzyFinder-StartPullRequestKeywords": "新創建拉取請求", - "FuzzyFinder-StashPrefix": "貯藏區:", + "FuzzyFinder-StashPrefix": "貯藏:", "FuzzyFinder-SwitchProfile": "切換到配置檔案", "FuzzyFinder-SwitchProfilePlaceholder": "搜尋要切換到的配置檔案", "FuzzyFinder-ToggleSyntaxHighlighting": "切換語法高亮", @@ -677,7 +676,7 @@ "FuzzyFinder-ViewReleaseNotes": "檢視發行說明", "FuzzyFinder-ViewReleaseNotesKeywords": "補丁說明更改日誌", "FuzzyFinder-ViewWorkingDirectoryChanges": "檢視工作目錄改動", - "FuzzyFinder-ViewWorkingDirectoryChangesKeywords": "工作目錄更改", + "FuzzyFinder-ViewWorkingDirectoryChangesKeywords": "更改工作中目錄", "GeneralPreferences": "常規", "GeneralPreferences-AutoFetchInterval": "自動獲取間隔", "GeneralPreferences-AutoFetchIntervalHelp": "它可以設定為0到60分鐘(設定為0時,禁用自動獲取)。獲取所有可見的遠端。", @@ -694,7 +693,7 @@ "GeneralPreferences-GitConfigDefault": "Git Config預設", "GeneralPreferences-Longpaths": "長路徑", "GeneralPreferences-LongpathsHelp": "預設情況下,Windows只能處理少於260個字元的檔案路徑。啟用此選項支援更長的檔案路徑", - "GeneralPreferences-MaxCommitsToShowInGraph": "圖表中的最大提交數", + "GeneralPreferences-MaxCommitsToShowInGraph": "關係圖中的最大提交數", "GeneralPreferences-MaxCommitsToShowInGraphHelp": "最低2000", "GeneralPreferences-MaxCommitsToShowInGraphWarning": "增大該數值可能會影響效能。", "GeneralPreferences-MergeTool": "合併工具", @@ -703,7 +702,7 @@ "GeneralPreferences-OptIntoBugReporting": "將關於GitKraken的bug報告發送給Axosoft", "GeneralPreferences-RememberLastOpenedRepository": "啟動時記住上次開啟的儲存庫", "GeneralPreferences-RememberTabs": "記住標記", - "GeneralPreferences-ShowAllCommitsInGraph": "在圖表中顯示所有提交", + "GeneralPreferences-ShowAllCommitsInGraph": "在關係圖中顯示所有提交", "GeneralPreferences-ShowAllCommitsInGraphWarning": "啟用此選項可能會影響效能。", "GeneralPreferences-UseCustomTerminalCmd": "使用自定義終端命令", "GeneralPreferences-UseExtendedLogging": "在活動日誌中使用擴展記錄", @@ -855,15 +854,15 @@ "InitRepo-PrivateAccess": "私有", "InitRepo-PublicAccess": "公開", "KeyBinding-CloseCurrentTab": "關閉當前標籤頁", - "Keybinding-CloseFileOrRepo": "關閉檔案或儲存庫", + "Keybinding-CloseFileOrRepo": "關閉檔案/儲存庫", "KeyBinding-CloseFileOrTab": "關閉檔案/標籤頁", - "KeyBinding-Commit": "提交(如果輸入訊息)", - "KeyBinding-CommitWithStage": "暫存所有並提交(如果輸入訊息)", + "KeyBinding-Commit": "提交(在訊息輸入中時)", + "KeyBinding-CommitWithStage": "暫存所有+提交(在訊息輸入中時)", "KeyBinding-CreateBranch": "創建分支", "KeyBinding-Fetch": "獲取所有", "KeyBinding-FilterBranches": "篩選左側面板", "KeyBindingFilter-Placeholder": "篩選快捷方式({0} + F)", - "KeyBinding-FocusCommitMessage": "焦點提交訊息", + "KeyBinding-FocusCommitMessage": "聚焦於提交訊息", "KeyBinding-FullScreen": "切換全屏", "KeyBinding-FuzzyFinderHistory": "搜尋檔案以檢視其歷史記錄/追責", "Keybinding-FuzzyFinderOpenRepo": "在模糊查詢器中開啟儲存庫", @@ -898,14 +897,14 @@ "LeftPanel-Filtering": "篩選中", "LeftPanel-Hide": "在關係圖中隱藏", "LeftPanel-Show": "在關係圖中顯示", - "LeftPanel-StopSoloing": "停止此分支的獨奏模式", + "LeftPanel-StopSoloing": "停止此分支的單獨模式", "Lfs-AddTrackingPattern": "新增跟蹤模式", "Lfs-AllFilesInFolder": "跟蹤 “{0}/” 下的所有檔案", "Lfs-AllFilesWithSameExtension": "跟蹤具有副檔名 “{0}” 的所有檔案", "Lfs-Checkout": "檢出所有LFS檔案", "Lfs-CheckoutHeader": "檢出", "Lfs-Commands": "LFS命令", - "Lfs-ContinueWithoutLfs": "繼續無LFS", + "Lfs-ContinueWithoutLfs": "無LFS繼續", "Lfs-ErrorCheckout": "LFS檢出時發生錯誤", "Lfs-ErrorFetch": "獲取LFS期間發生錯誤", "Lfs-ErrorPrune": "在LFS剪裁期間發生錯誤", @@ -922,7 +921,6 @@ "Lfs-LfsNotProperVersionMessage": "Git或LFS的版本已過期。改動LFS管理的檔案可能會對儲存庫產生負面影響。有關安裝LFS的資訊,請訪問支援網站。", "Lfs-NeedsYourCredentials": "LFS需要身份驗證資訊", "Lfs-NewPattern": "新增新模式", - "Lfs-PreferencesHeader": "LFS", "Lfs-Prune": "剪裁本地LFS儲存庫", "Lfs-PruneHeader": "剪裁", "Lfs-Pull": "拉取所有LFS檔案", @@ -943,12 +941,10 @@ "Lfs-ViewGitattributes": "在編輯器中檢視.gitattributes", "Lfs-VisitSupportDocs": "檢視文件", "LinuxUpdate-AvailableStatus": "可用的更新({0})", - "LinuxUpdate-DownloadDebUpdateButtonLabel": ".deb", "LinuxUpdate-Downloaded": "已完成下載{0}", "LinuxUpdate-Downloading": "正在下載{0}...", - "LinuxUpdate-DownloadRpmUpdateButtonLabel": ".rpm", - "LinuxUpdate-DownloadTarGzUpdateButtonLabel": ".tar.gz", "LinuxUpdate-ShowDownloadedUpdateButtonLabel": "更新就緒(顯示檔案)", + "LinuxUpdate-SnapClassicIsAvailable": "快照更新公告", "LinuxUpdate-SomethingWentWrong": "下載更新時出錯", "LoadingDiffWithEllipsis": "正在載入差異...", "LoadingWithEllipsis": "載入中...", @@ -960,9 +956,7 @@ "MarkAsResolved": "標記為已解決", "MarkNConflicted": "標記{0}為未解決", "MarkNResolved": "標記{0}為已解決", - "Merge-A": "A", "Merge-AutoResolved": "合併工具自動解決衝突", - "Merge-B": "B", "Merge-BinaryFile": "二進位制檔案", "Merge-Commit": "提交", "MergeConflictMessagePlural": "嘗試合併到{1}時發現{0}個檔案衝突", @@ -976,7 +970,7 @@ "MergedRemoteBranchToMaster": "合併遠端跟蹤分支“{0}”", "MergedRemoteBranchToRef": "將遠端跟蹤分支“{0}”合併到{1}中", "MergedTagToMaster": "合併標記“{0}”", - "MergedTagToRef": "將標記“{0}”合併到{1}中", + "MergedTagToRef": "將標記“{0}”合併到{1}", "Merge-EditOutput": "編輯檔案輸出", "MergeError-CloseDetailPanel": "如果要合併,請儲存改動並重試。", "Merge-NoAncestorFile": "沒有上級檔案", @@ -1013,7 +1007,6 @@ "NewTabView-GetGloBoardsAppAndroid": "獲取Android版本的Glo版塊", "NewTabView-GetGloBoardsAppApple": "獲取iOS版本的Glo板塊", "NewTabView-GetSupport": "獲得支援", - "NewTabView-GitKraken": "GitKraken", "NewTabView-GloBoards": "Glo版塊", "NewTabView-JoinSlackCommunity": "加入GitKraken Slack社群", "NewTabView-NewGloBoard": "新建Glo版塊", @@ -1027,7 +1020,7 @@ "NewTabView-ReadGloBoardsDocumentation": "閱讀Glo板塊文件", "NewTabView-RecentBoards": "最近開啟的版塊", "NewTabView-RecentRepos": "最近開啟的儲存庫", - "NewTabView-StartHostedRepo": "從主機儲存庫開始:", + "NewTabView-StartHostedRepo": "從託管儲存庫開始:", "NewTabView-StartLocalRepo": "從本地儲存庫開始", "NewTabView-Timelines": "時間線", "NewTabView-ViewNOthers": "檢視其他{0}", @@ -1070,7 +1063,7 @@ "Notification-RevertSuccessful": "還原成功", "Notification-SSHKeyBeingUsed": "金鑰已新增", "Notification-SubmoduleCreatedSuccessful": "子模組已創建", - "Notification-SubmoduleDeletedSuccessful": "子模組已刪除", + "Notification-SubmoduleDeletedSuccessful": "子模組已移除", "Notification-SupportSent": "支援已傳送", "NotNowButtonLabel": "現在不", "OKButtonLabel": "確定", @@ -1114,9 +1107,9 @@ "PendingInteractiveRebasePanel-UpdateMessage": "更新訊息", "Plugin-FullviewLoadFailed": "插件開啟失敗", "Plugin-GenericTabLabel": "插件", - "Plugin-TabViewLoadFailed": "插件無法開啟", + "Plugin-TabViewLoadFailed": "插件開啟失敗", "Pop": "彈出", - "PopStashButtonTooltip": "彈出貯藏區", + "PopStashButtonTooltip": "彈出貯藏", "PreviousButtonLabel": "上一個", "Pro": "專業版", "ProCamelCase": "專業版", @@ -1166,14 +1159,14 @@ "PromptForCreds-IncorrectSSHPassphrase": "SSH金鑰密碼錯誤。請重試:", "PromptForCreds-InvalidCredentialsForProxy": "{0}的憑證無效。請重試:", "PromptForCreds-InvalidCredentialsForUrl": "{0}的憑證無效。請重試:", - "PromptForCreds-InvalidLogin": "登入無效。請重試:", + "PromptForCreds-InvalidLogin": "{0}的登入無效。請重試:", "PromptForCreds-LocksIcon": "大寫鎖定已開啟", "PromptForCreds-PasswordPlaceholder": "密碼", - "PromptForCreds-PleaseLogIn": "請登入後繼續:", + "PromptForCreds-PleaseLogIn": "請登入{0}後繼續:", "PromptForCreds-RememberMe": "儲存驗證資訊", "PromptForCreds-UsernamePlaceholder": "使用者名", "PromptForDeleteRepo-Delete": "刪除儲存庫", - "PromptForDeleteRepo-Message": "是否永久刪除儲存庫{0}?", + "PromptForDeleteRepo-Message": "永久刪除儲存庫{0}?", "PromptForMerge-SaveAncestor": "您尚未選擇A或B,確定要儲存上級檔案嗎?", "PromptForMerge-SaveMergeWithUnresolvedConflicts": "您有未解決的衝突。您想怎樣繼續?", "PromptForNewBranchName-InvalidBranchName": "給定的分支名稱無效", @@ -1185,7 +1178,7 @@ "PromptForPush-PushingReferenceRequiresForce": "此引用需要強制推送,這是一種破壞性操作且不能撤消。您要完成推送嗎?", "PromptForRebase-ConfirmDropCommit": "您確定要刪除1個提交嗎?", "PromptForRebase-ConfirmDropXCommits": "您確定要刪除{0}個提交嗎?", - "PromptForRemoteDeletionConfirmation": "這是一種破壞性的操作。確定要刪除“{0}”嗎?", + "PromptForRemoteDeletionConfirmation": "這是一種破壞性操作,您確定要刪除“{0}”嗎?", "PromptForTagAnnotation-Message": "訊息:", "PromptForTagAnnotation-Placeholder": "批註訊息", "PromptForTagAnnotation-Sign": "簽名", @@ -1220,11 +1213,11 @@ "PullRequestBar-Menu": "拉請求操作", "PullRequestBar-MinuteAgo": "{0}分鐘前", "PullRequestBar-MinutesAgo": "{0}分鐘前", - "PullRequestBar-Opened": "已開啟:{0}", + "PullRequestBar-Opened": "開始於:{0}", "PullRequestBar-Reviewers": "評審", - "PullRequestBar-UnknownPullRequestHead": "私有或已刪除的儲存庫(拒絕訪問)", + "PullRequestBar-UnknownPullRequestHead": "私有/已刪除的儲存庫(拒絕訪問)", "PullRequestBar-UnknownPullRequestOwnerLogin": "未知的使用者名(拒絕訪問)", - "PullRequestBar-Updated": "已更新:{0}", + "PullRequestBar-Updated": "更新於:{0}", "PullRequestBar-ViewContinuousIntegrationResultInBrowser": "檢視{0}的最新構建", "PullRequestBar-ViewPullRequestInBrowser": "在{2}上檢視拉取請求{0}{1}", "PullRequestBar-Yesterday": "昨天", @@ -1255,7 +1248,7 @@ "PullRequestPanel-OpenGloCard": "開啟Glo卡片", "PullRequestPanel-PullRequestDescription": "拉請求描述", "PullRequestPanel-PullRequestTitle": "拉請求標題", - "PullRequestPanel-RemoveGloCard": "刪除Glo卡片", + "PullRequestPanel-RemoveGloCard": "移除Glo卡片", "PullRequestPanel-Repo": "儲存庫", "PullRequestPanel-Reviewers": "評審", "PullRequestPanel-SearchCards": "搜尋卡片...", @@ -1275,7 +1268,7 @@ "PushButtonTooltip": "推送", "PushToButtonTooltip": "推送到{0}", "QuitGitKraken": "退出GitKraken", - "RebaseAbortError-CloseDetailPanel": "要中止變基,請儲存更改並重試。", + "RebaseAbortError-CloseDetailPanel": "要中止變基,請儲存改動並重試。", "RebaseContinueError-CloseDetailPanel": "要繼續變基,請儲存改動並重試。", "RebaseError-CloseDetailPanel": "如果要變基,請儲存改動並重試。", "Rebasing-AutoStashLabel": "自動貯藏未提交的改動", @@ -1296,7 +1289,7 @@ "RefBar-GroupLocal": "本地", "RefBar-GroupPullRequests": "拉取請求", "RefBar-GroupRemote": "遠端", - "RefBar-GroupStashes": "貯藏區", + "RefBar-GroupStashes": "貯藏", "RefBar-GroupSubmodules": "子模組", "RefBar-GroupTags": "標記", "RefBar-NAhead": "超前{0}", @@ -1304,17 +1297,17 @@ "RefBar-NavigateToTag": "導航到標記", "RefBar-NBehind": "落後{0}", "RefBar-OpenGitFlow": "開啟Git工作流", - "RefBar-StatusSoloing": "獨奏", + "RefBar-StatusSoloing": "單獨", "RefBar-StatusViewing": "檢視", "RefBar-TagActions": "標記操作", "RefCreatedMessage": "{0}:{1}已創建在{2}", - "ReflogAction": "使用reflog訊息“{0}”的操作", + "ReflogAction": "使用引用訊息“{0}”的操作", "ReflogActionCheckout": "從“{0}”檢出到“{1}”", "ReflogActionCommit": "提交“{0}”", "ReflogActionCommitAmend": "提交修訂“{0}”", "ReflogActionDeleteBranch": "刪除分支“{0}”", "ReflogActionDeleteBranchTracking": "刪除分支“{0}”跟蹤“{1}”", - "ReflogActionRemoveRemote": "刪除遠端“{0}”", + "ReflogActionRemoveRemote": "移除遠端“{0}”", "ReflogActionReset": "復原為“{0}”", "ReflogActionSaveMany": "丟棄“{0}”和其他{1}個檔案", "ReflogActionSaveOne": "丟棄“{0}”", @@ -1376,12 +1369,12 @@ "Registration-PasswordStrength4": "非常強", "Registration-PasswordStrengthPrefix": "密碼強度:", "Registration-PasswordTooShort": "密碼長度必須至少為{0}個字元。", - "Registration-PrivateRepoDetected": "這似乎是一個私人儲存庫", + "Registration-PrivateRepoDetected": "這似乎是一個私有儲存庫", "Registration-PrivateRepoDetectedContent": "GitKraken的免費版本不支援私有或自建主機儲存庫", "Registration-ProLicenseExpiredBody1": "您的GitKraken許可證已經過期。請更新您的訂閱,以便繼續將GitKraken用於商業用途。", - "Registration-ProLicenseExpiredBody2-1": "您正在使用非商業用途的GitKraken免費版。合併衝突編輯器、配置檔案、GitHub企業版、GitLab自建主機,Bitbucket伺服器和Azure開發運維整合等專業功能已被禁用。", + "Registration-ProLicenseExpiredBody2-1": "您正在使用的是GitKraken的免費版本。開啟私有和自託管儲存庫、合併衝突編輯器、配置檔案和及GitHub企業版、GitLab自管、Bitbucket伺服器和開發運維整合功能已禁用。", "Registration-ProLicenseExpiredBody2-2": "您可以隨時從主選單或訪問{0}續訂。", - "Registration-ProLicenseExpiredCancel": "切換到非商業用途", + "Registration-ProLicenseExpiredCancel": "取消訂閱", "Registration-ProLicenseExpiredGoToShop": "續訂", "Registration-ProLicenseExpiredTitle": "許可證已過期", "Registration-Register": "註冊", @@ -1418,19 +1411,16 @@ "RemoteForm-AddRemoteButtonLabel": "新增遠端", "RemoteForm-AddUserRemote": "新增此遠端", "RemoteForm-AzureDevops": "Azure開發運維", - "RemoteForm-Bitbucket": "Bitbucket.org", "RemoteForm-BitbucketServer": "Bitbucket伺服器", "RemoteForm-ConnectToService": "連線到{0}", "RemoteForm-EditManually": "編輯遠端", "RemoteForm-EditRemote": "編輯遠端", "RemoteForm-Fork": "分叉", "RemoteForm-ForkAndAddRemote": "分叉並新增到遠端", - "RemoteForm-ForkFound": "{0}上有此儲存庫的分叉:", + "RemoteForm-ForkFound": "{0}上有您對此儲存庫的分叉:", "RemoteForm-ForkNotFound": "您尚未在{1}上分叉{0}。", - "RemoteForm-GitHub": "GitHub.com", "RemoteForm-GitHubEnterprise": "GitHub企業版", - "RemoteForm-GitLab": "GitLab.com", - "RemoteForm-GitLabSelfHosted": "GitLab(自建主機)", + "RemoteForm-GitLabSelfHosted": "GitLab自管", "RemoteForm-NoMatch": "沒有匹配", "RemoteForm-PrivateRepo": "私有儲存庫", "RemoteForm-PublicRepo": "公有儲存庫", @@ -1442,7 +1432,6 @@ "RemoteForm-SelectPlaceholder": "選擇...", "RemoteForm-TooManyServiceRemotesWarningManyForks": "我們正在檢索與此儲存庫關聯的大量分叉。從{1}獲取URL可能會更快", "RemoteForm-TooManyServiceRemotesWarningNForks": "我們正在檢索與此儲存庫關聯的{0}個分叉。從{1}獲取URL可能會更快", - "RemoteForm-Url": "URL", "RemoveButtonLabel": "移除", "Repo": "儲存庫", "Repo-ClearFromRecentRepositories": "清除最近的儲存庫中的{0}", @@ -1466,21 +1455,21 @@ "RightPanel-1ChangeOn": "1個檔案改動", "RightPanel-FilterFiles": "篩選檔案", "RightPanel-MergeConflictsDetected": "檢測到合併衝突", - "RightPanel-NChangesOn": "{0}檔案改動", + "RightPanel-NChangesOn": "{0}檔案改動在", "RightPanel-NCommitsSelected": "{0}個已選中的提交", "RightPanel-PinToBottom": "固定在底邊", "RightPanel-PinToRight": "固定在右邊", "RightPanel-RebaseConflictsDetected": "檢測到變基衝突", "RightPanel-UnsupportedRebase": "外部變基正在進行中", - "RightPanel-View1FileChangeInWorkingDirectory": "工作目錄中的1個檔案改動", - "RightPanel-View1FileConflictInWorkingDirectory": "工作目錄中的1個檔案衝突", + "RightPanel-View1FileChangeInWorkingDirectory": "工作目錄中有1個檔案改動", + "RightPanel-View1FileConflictInWorkingDirectory": "工作目錄中有1個檔案衝突", "RightPanel-ViewAllFiles": "檢視所有檔案", "RightPanel-ViewChange": "檢視改動", "RightPanel-ViewChanges": "檢視改動", "RightPanel-ViewConflict": "檢視衝突", "RightPanel-ViewConflicts": "檢視衝突", - "RightPanel-ViewNFileChangesInWorkingDirectory": "工作目錄中的{0}個檔案改動", - "RightPanel-ViewNFileConflictsInWorkingDirectory": "工作目錄中{0}個檔案衝突", + "RightPanel-ViewNFileChangesInWorkingDirectory": "工作目錄中有{0}個檔案改動", + "RightPanel-ViewNFileConflictsInWorkingDirectory": "工作目錄中有{0}個檔案衝突", "Save": "儲存", "SaveAncesor": "儲存上級", "SaveAndStageEditorChanges-Message": "您是否要在暫存之前儲存改動,或者只暫存已儲存到磁碟的部分?", @@ -1491,61 +1480,61 @@ "SeePlansButtonLabel": "檢視GitKraken收費計劃", "SendMessageButtonLabel": "傳送", "SendUsFeedback": "向我們傳送反饋", - "SendUsFeedback-CantRespondToAllFeedback": "當GitKraken團隊閱讀所有反饋時,我們無法回覆大多數反饋電子郵件。", + "SendUsFeedback-CantRespondToAllFeedback": "GitKraken團隊期待您的反饋,但是請注意,我們無法回覆所有反饋電子郵件。", "SendUsFeedback-DefaultSubject": "關於GitKraken({0})的反饋", "SendUsFeedback-EmailAddress": "電子郵件地址", - "SendUsFeedback-EmailUsYourself": "或者,您可以自己發電子郵件給我們在", + "SendUsFeedback-EmailUsYourself": "或者,您可以自己給我們發電子郵件到", "SendUsFeedback-Feedback": "反饋", "SendUsFeedback-Subject": "主題", "Service": "服務", "Services": "服務", - "Services-AddAndCopy": "新增SSH金鑰並將其複製到剪貼簿", + "Services-AddAndCopy": "新增SSH金鑰並複製到剪貼簿", "Services-AddedDate": "{0}已新增", "Services-AddExistingSSHKey": "新增現有SSH金鑰", "Services-AddKey": "將金鑰新增到{0}", - "Services-AddToService": "新增{0}", + "Services-AddToService": "新增到{0}", "Services-AuthenticationGeneral": "常規", "Services-AzureDevopsUpgradeToPro": "升級到GitKraken專業版以開始使用Azure開發運維整合", - "Services-BitbucketServerUpgradeToPro": "升級到GitKraken專業版並享與BitBucket伺服器相同的整合,就像使用Bitbucket.org一樣", + "Services-BitbucketServerUpgradeToPro": "升級到GitKraken專業版並讓您的BitBucket伺服器享受與Bitbucket.org一樣的整合", "Services-BrowseForPrivateSSHKey": "瀏覽**私**鑰", "Services-BrowseForPublicSSHKey": "瀏覽**公**鑰", - "Services-CannotDisconnectLoginService": "當{0}被用於登入GitKraken時,不能斷開連線。", + "Services-CannotDisconnectLoginService": "當{0}用於登入GitKraken時無法斷開連線。", "Services-ClearSSHKey": "停止使用", "Services-ComingSoon": "即將推出", "Services-Connect": "連線", "Services-Connected": "已連線", "Services-ConnectedWithService": "已連線到{0}", - "Services-CopySSHPublicKeyAndOpenWebsite": "將公鑰複製到剪貼簿並使用{0}開啟它", + "Services-CopySSHPublicKeyAndOpenWebsite": "將公鑰複製到剪貼簿並開啟{0}", "Services-CopySSHPublicKeyToClipboard": "將公鑰複製到剪貼簿", - "Services-DeleteSSHKey": "刪除本地", + "Services-DeleteSSHKey": "本地刪除", "Services-Disconnect": "斷開", "Services-EditConfig": "編輯", - "Services-Error-HostDomainUnreachable": "無法訪問指定的主機", + "Services-Error-HostDomainUnreachable": "無法訪問指定的主機域", "Services-Error-PersonalAccessTokenInvalid": "指定的個人訪問令牌無效", "Services-Error-SavePersonalAccessTokenFailed": "使用個人訪問令牌進行連線失敗", "Services-GenerateAndAddSSHKey": "生成SSH金鑰並新增到{0}", "Services-GenerateAndCopySSHKey": "生成SSH金鑰並複製到剪貼簿", "Services-GenerateATokenOn": "在{0}上生成令牌", "Services-GenerateSSHKey": "生成SSH金鑰", - "Services-GitHubEnterpriseUpgradeToPro": "升級到GitKraken專業版並享與GitHub企業伺服器相同的整合,就像使用GitHub.com一樣", + "Services-GitHubEnterpriseUpgradeToPro": "升級到GitKraken專業版並讓您的GitHub企業版伺服器享受與GitHub.com一樣的整合", "Services-GitKrakenNeedsATokenFrom": "GitKraken需要一個令牌從", - "Services-GitLabSelfHostedUpgradeToPro": "升級到GitKraken專業版並享與Gi​​tLab伺服器相同的整合,就像使用GitLab.com一樣", + "Services-GitLabSelfHostedUpgradeToPro": "升級到GitKraken專業版並讓您的GitLab自管享受與GitLab.com一樣的整合", "Services-HostDomain": "主機域", "Services-HostDomainHint": "例如:{0}.mycompany.com", "Services-HostDomainHintAzureDevops": "例如,dev.azure.com/mycompany", - "Services-Info": "設定SSH並繼續登入以優化您的體驗。GitKraken可以為每個服務設定不同的SSH金鑰。", + "Services-Info": "設定SSH並保持登入狀態以簡化您的體驗。GitKraken甚至可以為每個服務使用不同的SSH金鑰。", "Services-KeyPrivate": "私鑰:{0}", "Services-KeyPublic": "公鑰:{0}", - "Services-LeaveBlank": "建議此欄位留空", + "Services-LeaveBlank": "我們建議將此欄位留空。", "Services-NotConnected": "未連線", "Services-PersonalAccessToken": "個人訪問令牌", - "Services-PersonalAccessTokenGenerate": "創建{0}的訪問令牌", + "Services-PersonalAccessTokenGenerate": "在{0}上生成訪問令牌", "Services-PersonalAccessTokenTooltip": "GitKraken可以使用個人訪問令牌連線到企業伺服器,並簡化應用程式中的操作。單擊瞭解如何執行。", "Services-Reconnect": "重連線", "Services-RemoveAndDeleteSSHKey": "移除並刪除", - "Services-RemoveConfig": "刪除", + "Services-RemoveConfig": "移除", "Services-RemoveConfigTooltip": "移除與此伺服器的連線", - "Services-RemoveSSHKey": "刪除金鑰", + "Services-RemoveSSHKey": "移除金鑰", "Services-Repo": "{0}儲存庫", "Services-ServiceConnectionSuccessful": "已連線到{0}", "Services-ServiceConnectionSuccessfulMessage": "在克隆或新增遠端時,GitKraken將幫助您查詢{0}上的內容。我們還將使用您的SSH配置來獲取和推送;或者,您可以在“服務”選單中設定一個{0}特定的SSH金鑰。", @@ -1556,7 +1545,7 @@ "Services-SSHKeyAdviseAdd": "在{0}賬戶上未找到此項。GitKraken可以嘗試將金鑰新增到{0}(推薦)。", "Services-SSHKeyAdviseInvalid": "在{0}賬戶上未找到此項。您可以從下面配置GitHub的SSH金鑰。", "Services-SSHKeyAdviseInvalidOrAdd": "在{0}賬戶上未找到此項。GitKraken可以嘗試將金鑰新增到{0},也可以在下面配置其他金鑰。", - "Services-SSHKeyRemovalSuccessful": "SSH金鑰已從{0}中刪除。", + "Services-SSHKeyRemovalSuccessful": "SSH金鑰已從{0}中移除。", "Services-SSHKeyTitlePlaceholder": "(可選)請輸入新SSH金鑰的標題", "Services-SSHKeyTooltip": "使用GitKraken將SSH金鑰新增到{0}。在與{0} SSH儲存庫互動時,GitKraken將使用該金鑰。", "Services-SSHKeyUnverifiable": "{0}不允許外部應用程式檢查公鑰是否已註冊。如果您的金鑰未被{0}接受,請使用下面的按鈕,並確保該鍵已新增到{1}上。", @@ -1570,20 +1559,27 @@ "SetAsDefaultOptionTooltip": "設定為預設值", "SetUpstreamPrompt-InvalidBranchName": "給定的分支名稱無效", "SetUpstreamPrompt-MustSelectRemote": "您必須選擇一個遠端(例如“origin/”)", - "SetUpstreamPrompt-SelectRemoteBranchMessage": "請設定“{0}”的遠端分支", + "SetUpstreamPrompt-SelectRemoteBranchMessage": "“{0}”應該推送和拉取哪個遠端/分支?", "Shop-OpenInBrowser": "在瀏覽器中開啟", "Shop-ShopTitle": "賬戶管理", "ShowAll": "顯示全部", "ShowPricingButtonLabel": "顯示GitKraken專業版的價格", "ShPath-ConfirmPath": "這個儲存庫需要需要sh來運行Git鉤子。sh的路徑是否位於{0}?", "SkipCommitButtonLabel": "跳過提交", - "SoloBranch": "將此分支設定為獨奏模式", + "SnapClassicUpdate-ClassicConfinement": "經典約束", + "SnapClassicUpdate-Details": "我們正在將GitKraken快照包更改為使用{0}。以下是我們通過切換到經典約束而改進的內容", + "SnapClassicUpdate-GitHookSupport": "完整的Git鉤子支援", + "SnapClassicUpdate-GPGSupport": "完整的GPG支援", + "SnapClassicUpdate-LFSSupport": "完整的LFS支援", + "SnapClassicUpdate-SSHSupport": "完整的SSH支援", + "SnapClassicUpdate-ToGetNextUpdate": "要獲取下一個更新,您需要使用以下命令重新安裝該軟體包:", + "SoloBranch": "將此分支設定為單獨模式", "SSHConfig": "SSH配置", - "SSHConfig-GenerateNewKey": "生成新的金鑰/公鑰", + "SSHConfig-GenerateNewKey": "生成新的私鑰/公鑰", "SSHConfig-GenerateNewKeyButtonLabel": "生成", - "SSHConfig-GenerateNewKeyHelp": "這將創建新的金鑰並配置GitKraken以使用它們", + "SSHConfig-GenerateNewKeyHelp": "這將創建新的金鑰並配置GitKraken來使用它們", "SSHConfig-SSHKeySaveLocation": "SSH金鑰儲存位置", - "SSHConfig-SSHPrivateKey": "SSH金鑰", + "SSHConfig-SSHPrivateKey": "SSH私鑰", "SSHConfig-SSHPublicKey": "SSH公鑰", "SSHConfig-UseLocalSSHAgent": "使用本地SSH代理", "SSHKey": "SSH金鑰", @@ -1597,9 +1593,9 @@ "StageThisFile": "暫存檔案", "StageThisHunk": "暫存區塊", "StageThisLine": "暫存此行", - "StagingPanel-Amend": "修改", - "StagingPanel-DetachedHeadStateExplanation": "如果您檢出另一個分支或提交,則可能會丟失在分離頭狀態下創建的提交", - "StagingPanel-ShowMoreFiles": "顯示下一個{0}({1}以上)", + "StagingPanel-Amend": "修訂", + "StagingPanel-DetachedHeadStateExplanation": "如果您檢出另一個分支或提交,則可能會丟失在分離頭狀態下創建任何的提交", + "StagingPanel-ShowMoreFiles": "顯示下{0}個(還有{1}個)", "StagingPanel-UseTemplate": "使用模板", "StagingPanel-WarningDetachedHeadState": "您處於分離頭狀態", "Standalone": "企業版", @@ -1611,7 +1607,7 @@ "Standalone-DateExpired": "{0}已過期", "Standalone-Expires": "過期", "Standalone-GitKrakenIsUnlicensed": "這份GitKraken副本是未經授權的。", - "Standalone-LicenseConfigurationTitle": "企業許可證", + "Standalone-LicenseConfigurationTitle": "企業版許可證", "Standalone-LicensedTo": "授權於", "Standalone-LicenseInfoExpired": "{1}使用者的{0}許可。已過期", "Standalone-LicenseInfoExpiresToday": "{1}使用者的{0}許可。今天過期", @@ -1619,21 +1615,21 @@ "Standalone-LicenseInfoForActive": "{1}使用者的{0}許可", "Standalone-LicenseInfoForActiveExpiresSoon": "{1}使用者的{0}許可。{2}天后過期", "Standalone-LicenseSuccessfullyUpdated": "許可證已成功更新", - "Standalone-NumberOfUsers": "使用者數量", + "Standalone-NumberOfUsers": "#使用者數量", "Standalone-SavedLicenseIsInvalid": "磁碟上的許可證無效。", - "Standalone-Unlicensed": "未經授權", + "Standalone-Unlicensed": "未經授權許可", "Standalone-UpdatedLicenseFailedToUpdate": "當我們嘗試使用所選的許可證時出錯了。", "Standalone-UpdatedLicenseWasExpired": "您選擇的許可證檔案已過期。", "Standalone-UpdatedLicenseWasInvalid": "您選擇的許可證檔案無效。", "Standalone-UpdatedLicenseWasNotFound": "未找到您選擇的許可證檔案。", "Standalone-UpdateLicense": "更新許可證", - "StartRebaseButtonLabel": "開始變基", + "StartRebaseButtonLabel": "是,開始變基", "StartTrialButtonLabel": "GitKraken專業版免費試用", "Stash": "貯藏", - "Stash-ApplyWithUncommittedChangesPrompt": "您有未提交的改動。確定要應用貯藏區並覆蓋改動嗎?", + "Stash-ApplyWithUncommittedChangesPrompt": "您有未提交的改動。您確定要在改動的基礎上應用貯藏嗎?", "StashBar-Menu": "貯藏操作", "StashButtonTooltip": "貯藏", - "StashMessage-Amend": "在修改“{0}”之前自動貯藏", + "StashMessage-Amend": "在修訂“{0}”之前自動貯藏", "StashMessage-Checkout": "在檢出“{0}”之前自動貯藏", "StashMessage-CherryPick": "在摘取“{0}”之前自動貯藏", "StashMessage-Merge": "在合併“{0}”和“{1}”之前自動貯藏", @@ -1641,18 +1637,18 @@ "StashMessage-Revert": "在還原“{0}”之前自動貯藏", "SubmitButtonLabel": "提交", "Submodule": "子模組", - "Submodule-CannotStageUncommittedSubmoduleChanges": "有些改動尚未提交給子模組。請提交改動並開啟子模組。", + "Submodule-CannotStageUncommittedSubmoduleChanges": "您的子模組中有未提交的改動。開啟子模組來提交改動。", "Submodule-CheckingOut": "正在檢出子模組{0}", "Submodule-CommitMessageDeleted": "已移除子模組{0}", - "Submodule-CommitMessageNew": "子模組{0}已新增", + "Submodule-CommitMessageNew": "已新增子模組{0}", "Submodule-CommitMessageUpdated": "已更新子模組{0}", "Submodule-CommitWithAlreadyStagedPrompt": "您有已暫存的改動,是否也要提交這些改動?", "Submodule-CouldNotShowCurrent": "在初始化子模組之前無法解決子模組{0}中的合併衝突", "Submodule-Create": "新增子模組", "Submodule-Creating": "正在新增子模組", - "Submodule-DeletePrompt": "這是一種破壞性的操作,確定要刪除 “{0}”嗎?", + "Submodule-DeletePrompt": "這是一種破壞性操作,您確定要刪除 “{0}”嗎?", "Submodule-Deleting": "正在移除子模組", - "Submodule-DirInIndex": "索引中的路徑“{0}”已作為目錄存在。", + "Submodule-DirInIndex": "路徑“{0}”已作為目錄存在索引中。", "Submodule-Edit": "編輯子模組", "Submodule-Fetching": "正在獲取子模組{0}", "Submodule-FetchingRecursively": "正在獲取遞迴子模組{0}", @@ -1670,17 +1666,17 @@ "Submodule-FormPointerRevision": "預期的提交", "Submodule-FormRebase": "變基", "Submodule-FormRemove": "刪除此子模組", - "Submodule-FormReset": "丟棄子模組中的改動", + "Submodule-FormReset": "丟棄子模組改動", "Submodule-FormUpdateStrategy": "更新策略", "Submodule-FormUrl": "遠端URL", "Submodule-FormWorkdirRevision": "已檢出提交", - "Submodule-InitAllPrompt": "您確定要初始化{0}的子模組嗎?", + "Submodule-InitAllPrompt": "您需要初始化{0}的子模組嗎?", "Submodule-Initialize": "初始化", "Submodule-InitializeSpecific": "初始化{0}", "Submodule-Initializing": "初始化子模組", "Submodule-InitializingProgress": "初始化子模組{0}({1})", "Submodule-InitializingUpdate": "更新...", - "Submodule-LocalModifications": "有些改動未提交給子模組", + "Submodule-LocalModifications": "當前未提交的子模組改動", "Submodule-Menu": "子模組操作", "Submodule-Open": "開啟子模組:{0}", "Submodule-OpenImplied": "開啟子模組", @@ -1688,7 +1684,7 @@ "Submodule-PathExistsPrompt": "路徑{0}已存在,是否刪除它?", "Submodule-Status-AddedInitialized": "您的子模組已新增和初始化,但未提交。", "Submodule-Status-AddedUninitialized": "您的子模組已新增,但需要初始化。", - "Submodule-Status-Deleted": "您已刪除此子模組,需要提交改動。", + "Submodule-Status-Deleted": "您已移除此子模組,需要提交改動。", "Submodule-Status-Dirty": "此子模組中存在未提交的改動。", "Submodule-Status-DirtyAndOutOfSync": "此子模組中存在未提交的改動,並且與{0}不同步。", "Submodule-Status-InSync": "此子模組與您的儲存庫({0})同步。", @@ -1715,8 +1711,8 @@ "Theme-Light": "亮", "Timeline-1HourAgo": "1小時前", "Timeline-1MonthAgo": "1個月前", - "Timeline-1WeekAgo": "一週前", - "Timeline-1YearAgo": "一年前", + "Timeline-1WeekAgo": "1周前", + "Timeline-1YearAgo": "1年前", "Timeline-ArbitrarilyLongAgo": "請停止滾動", "Timeline-NDaysAgo": "{0}天前", "Timeline-NHoursAgo": "{0}小時前", @@ -1725,9 +1721,9 @@ "Timeline-NYearsAgo": "{0}年前", "Timeline-Yesterday": "昨天", "ToggleHideLabel": "隱藏", - "ToggleSoloLabel": "單獨的", + "ToggleSoloLabel": "單獨", "ToolbarButton-DropdownFilterNoResults": "無結果", - "ToolbarButton-DropdownFilterPlaceholder": "篩選面板", + "ToolbarButton-DropdownFilterPlaceholder": "篩選版塊", "ToolbarButton-DropdownMessage": "選擇單擊此儲存庫的Glo按鈕時要開啟的預設面板", "ToolbarButton-GloDropdownFilterPlaceholder": "篩選版塊", "ToolbarButton-GloDropdownMessage": "選擇在此儲存庫中點選Glo按鈕時預設開啟的版塊", @@ -1735,16 +1731,15 @@ "ToolbarButton-TimelinesDropdownMessage": "選擇在此儲存庫中點選時間線按鈕時預設開啟的時間線", "Toolbar-CloseRepository": "關閉儲存庫", "Toolbar-CloseSubmodule": "關閉子模組", - "ToolbarLabels-Chipotle": "吃葡萄", "ToolbarLabels-Fetch": "獲取", "Toolbar-PullFastForwardOnlyNotAvailableInDetachedHead": "當處於分離頭狀態時,拉取(僅快進)不可用", "Toolbar-PullMergeNotAvailableInDetachedHead": "當處於分離頭狀態時,拉取(快進優先)不可用", "Toolbar-PullRebaseNotAvailableInDetachedHead": "當處於分離頭狀態時,拉取(變基)不可用", "Toolbar-PushNotAvailableInDetachedHead": "當處於分離頭狀態時,推送不可用", - "Trial-AnyKindOfTrialEndedModalTitle": "GitKraken的試用已經結束", + "Trial-AnyKindOfTrialEndedModalTitle": "您的GitKraken的試用已經結束", "Trial-AnyKindOfTrialTrialEndedModalContinueUsingFree": "不,謝謝,我將不帶{0}繼續。", - "Trial-PremiumFeatures": "高階功能", - "Trial-ProFeatures": "專業功能", + "Trial-PremiumFeatures": "高階版功能", + "Trial-ProFeatures": "專業版功能", "Trial-StartTrialModalConfirmButton": "開始免費試用GitKrake專業版", "Trial-StartTrialModalContent": "開始{0}天GitKraken專業版免費試用,以訪問專業版功能,例如合併衝突編輯器、多配置檔案、GitHub企業版、GitLab自建主機、Bitbucket伺服器和Azure開發運維。無需信用卡。", "Trial-StartTrialModalHideTrialOfferCheckbox": "隱藏“GitKraken專業版免費試用”按鈕", @@ -1753,14 +1748,14 @@ "Trial-StartTrialModalTitle": "開始免費試用GitKraken專業版", "Trial-StartXDayTrial": "開始為期{0}天的專業版試用", "TrialStatus": "GitKraken專業版的試用期剩餘{0} - 立即升級", - "Trial-TableFeature1": "使用私有託管和自建主機的儲存庫", + "Trial-TableFeature1": "使用私有託管和自託管的儲存庫", "Trial-TableFeature2": "內建一個強大的合併衝突編輯器", "Trial-TableFeature3": "切換工作和個人用途的多個配置檔案", - "Trial-TableFeature4": "GitHub企業整合", - "Trial-TableFeature5": "自建GitLab整合", + "Trial-TableFeature4": "GitHub企業版整合", + "Trial-TableFeature5": "自管GitLab整合", "Trial-TableFeature6": "Bitbucket伺服器整合", "Trial-TableFeature7": "Azure開發運維整合", - "Trial-TrialEndedModalContinueUsingFree": "不用了,我將繼續免費版本。", + "Trial-TrialEndedModalContinueUsingFree": "不用了,我將繼續使用免費版本。", "Trial-TrialEndedModalSubcontent1": "立即升級到GitKraken專業版,可以繼續使用專業版功能,並獲得優先支援。", "Trial-TrialEndedModalSubcontent2": "如果您使用GitKraken進行商業項目,則需要GitKraken專業版。GitKraken為您的整個團隊大幅降價。", "Trial-TrialEndedModalTitle": "GitKraken專業版免費試用已經結束", @@ -1786,19 +1781,19 @@ "UIPreferences-UseAuthorInitialsForAvatars": "顯示作者首字母縮寫,而非頭像", "UncommittedFileList-ConflictedFilesTitleSummary": "衝突檔案({0})", "UncommittedFileList-StagedFilesTitleSummary": "已暫存檔案({0})", - "UncommittedFileList-UnconflictedFilesTitleSummary": "已解析檔案({0})", + "UncommittedFileList-UnconflictedFilesTitleSummary": "已解決檔案({0})", "UncommittedFileList-UnstagedFilesTitleSummary": "未暫存檔案({0})", "Undo": "撤消", "UndoCannotButtonTooltip": "無法撤消", - "UndoInvalidButtonTooltip": "無法撤消{0}。目前只支援提交、檢出和某些丟棄操作。", - "UndoRedo-InformationMissing": "撤消資訊丟失-這可能是由於垃圾回收造成的。", + "UndoInvalidButtonTooltip": "無法撤消{0}。當前僅支援提交(帶父級)、檢出和某些丟棄操作。", + "UndoRedo-InformationMissing": "撤消資訊丟失 - 這可能是由於垃圾回收造成的。", "UndoRedo-RedoFailed": "重做失敗", "UndoRedo-RedoSuccessful": "重做成功", "UndoRedo-UndoFailed": "撤消失敗", "UndoRedo-UndoSuccessful": "撤消成功", "UndoValidButtonTooltip": "撤消{0}", "Uninitialized": "未初始化", - "UnsoloAll": "退出獨奏模式", + "UnsoloAll": "退出單獨模式", "Unstage": "取消暫存", "UnstageAllChanges": "取消暫存的所有改動", "UnstageAndRemoveButtonLabel": "取消暫存並刪除", @@ -1810,16 +1805,16 @@ "UnstageThisFile": "取消暫存檔案", "UnstageThisHunk": "取消暫存區塊", "UnstageThisLine": "取消暫存此行", - "UnsupportedRebaseMessage": "此儲存庫正在另一個應用程式中運行變基", + "UnsupportedRebaseMessage": "外部應用程式正在此儲存庫上執行變基", "UpgradeGitKrakenButtonLabel": "升級GitKraken", "UpgradeToProButtonLabel": "升級到GitKraken專業版", "UpstreamBranch": "上游分支", "UseFreeButtonLabel": "繼續使用GitKraken免費版", "Version6LegacyTrial-BlogPost": "部落格帖子", - "Version6LegacyTrial-Feature1": "開啟私有儲存庫的能力", + "Version6LegacyTrial-Feature1": "能夠開啟私有儲存庫", "Version6LegacyTrial-Feature2": "訪問合併衝突編輯器", - "Version6LegacyTrial-ModalContent1": "我們對GitKraken收費計劃有了一些更改,由此,我們將您的帳戶升級到了{0}天的GitKraken個人版。此次升級將為您提供:", - "Version6LegacyTrial-ModalContent2": "關於收費計劃的變更,請參閱{0}。", + "Version6LegacyTrial-ModalContent1": "我們對GitKraken收費計劃有了一些改動,由此,我們將您的帳戶升級到了{0}天的GitKraken個人版!此次升級將為您提供:", + "Version6LegacyTrial-ModalContent2": "您可以在{0}中檢視我們的定價計劃更改。", "Version6LegacyTrial-ModalTitle": "感謝您成為出色的GitKraken使用者!", "Version6LegacyTrialStatus": "GitKraken個人版剩餘{0} - 立即升級", "View-ActivityLog": "活動日誌", @@ -1829,6 +1824,7 @@ "View-AutoUpdate": "選擇安裝程式", "View-AutoUpdate-Downloaded": "下載已完成", "View-AutoUpdate-Downloading": "正在下載更新", + "View-AutoUpdate-SnapClassicIsAvailable": "需要重新安裝", "View-AutoUpdate-SomethingWentWrong": "出了點問題", "ViewDiffToolSettings": "檢視差異工具設定", "View-GitHookFailureLog": "鉤子日誌", @@ -1840,7 +1836,7 @@ "ViewShPathSettings": "檢視設定", "ViewTerminalSettings": "檢視終端設定", "View-ToggleLeftPanel": "切換左側面板", - "View-ZoomDown": "縮少", + "View-ZoomDown": "縮小", "View-ZoomReset": "復位", "View-ZoomUp": "放大", "WelcomeView-OpenProject": "開啟一個項目", @@ -1851,9 +1847,9 @@ "WelcomeView-Welcome": "歡迎來到GitKraken!", "WindowsFilemodeChangeWarning": "檔案模式的索引可能已在GitKraken外部進行了改動。", "WindowsFilemodeChangeWarningConfigEnabled": "您在git配置中啟用了檔案模式改動!在Windows中,工作目錄中的檔案似乎有-x,因此檔案模式的改動顯示在此處。", - "WorkDirMessageInput-WIPPlaceholder": "// WIP", - "WorkInProgressAbbr": "中作中", - "WorkInProgressOnBranchAbbr": "中作中於{0}", + "WorkDirMessageInput-WIPPlaceholder": "// 工作中", + "WorkInProgressAbbr": "工作中", + "WorkInProgressOnBranchAbbr": "工作中於{0}", "YesButtonLabel": "是", "Zoom": "縮放" } diff --git a/src/sudo.js b/sudo.js similarity index 100% rename from src/sudo.js rename to sudo.js diff --git a/translate.js b/translate.js index 52bb575..1e532d0 100644 --- a/translate.js +++ b/translate.js @@ -7,13 +7,23 @@ const path = require("path"); const semver = require("semver"); const getAppRoot = require("./getAppRoot"); +let OpenCC; +let opencc; +try { + OpenCC = require("opencc"); +} catch (ex) { + // console.error(ex); +} +if (OpenCC) { + opencc = new OpenCC("s2twp.json"); +} const reHTML = /<(\w+)\b[^>]+>.*?<\/\1>/g; let en; let ja; let zhCN; let zhTW; -let opencc; + const zhSymbolMap = { ",": ",", ":": ":", @@ -23,8 +33,6 @@ const zhSymbolMap = { }; try { - const OpenCC = require("opencc"); - opencc = new OpenCC("s2twp.json"); } catch (ex) { // } @@ -75,7 +83,9 @@ try { (text, item, key) => { const html = en[item][key].match(reHTML); if (text === en[item][key] || !/\p{Ideographic}/u.test(text)) { - console.log(en[item][key]); + if (!(text === "GitKraken" || text === "Chipotle" || /^[A-Z]+$/.test(text) || /^(?:\w+)?(?:\.\w+)+$/.test(text) || /^<%=.*%>$/.test(text))) { + console.log(text); + } return; } text = text @@ -108,7 +118,7 @@ try { await writeJson("strings/zh-cn.json", zhCN); // https://bintray.com/package/files/byvoid/opencc/OpenCC - // opencc -i "strings/zh-cn.json" -o "strings/zh-tw.json" -c s2twp.json + // d:\Apps\opencc-1.0.1-win64\opencc -i "strings/zh-cn.json" -o "strings/zh-tw.json" -c d:\Apps\opencc-1.0.1-win64\s2twp.json zhTW = updateTranslate( await fs.readJson("strings/zh-tw.json"), (text, item, key) => { @@ -125,6 +135,10 @@ try { await writeJson("strings/zh-tw.json", zhTW); })(); +function normalizationKeyName (str) { + return str.replace(/(\w*)(\W+)(\w*)/, "$1$3$2"); +} + function writeJson (filePath, content) { if (typeof content !== "object" || content instanceof Buffer) { content = JSON.parse(content); @@ -132,7 +146,7 @@ function writeJson (filePath, content) { Object.keys(content).forEach(item => { const itemMap = {}; Object.keys(content[item]).sort((a, b) => { - return a.replace(/\W+/g, "").localeCompare(b.replace(/\W+/g, "")); + return normalizationKeyName(a).localeCompare(normalizationKeyName(b)); }).forEach(key => { itemMap[key] = content[item][key]; }); @@ -170,6 +184,9 @@ function updateTranslate (oldLocal, translate) { if (translate) { newLocal[item][key] = translate(newLocal[item][key], item, key) || newLocal[item][key]; } + if (newLocal[item][key] === en[item][key]) { + delete newLocal[item][key]; + } }); }); return newLocal;