@lemoncat7/dsh-ssh 1.11.6 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/docs/releases/1.11.7.md +13 -0
- package/docs/releases/1.12.0.md +15 -0
- package/docs/releases/1.13.0.md +15 -0
- package/docs/third-party/react-bits.md +29 -0
- package/docs/usage.md +9 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +18 -0
- package/lib/api.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +312 -186
- package/lib/client.js.map +4 -4
- package/lib/config-backup-panel.d.ts +2 -0
- package/lib/config-backup-panel.d.ts.map +1 -0
- package/lib/config-backup-panel.js +74 -0
- package/lib/config-backup-panel.js.map +1 -0
- package/lib/config-backup.d.ts +6 -0
- package/lib/config-backup.d.ts.map +1 -0
- package/lib/config-backup.js +142 -0
- package/lib/config-backup.js.map +1 -0
- package/lib/gist-sync.d.ts +3 -1
- package/lib/gist-sync.d.ts.map +1 -1
- package/lib/gist-sync.js +9 -3
- package/lib/gist-sync.js.map +1 -1
- package/lib/locales/messages.d.ts +404 -0
- package/lib/locales/messages.d.ts.map +1 -1
- package/lib/locales/messages.js +101 -0
- package/lib/locales/messages.js.map +1 -1
- package/lib/sync-panel.d.ts +4 -0
- package/lib/sync-panel.d.ts.map +1 -0
- package/lib/sync-panel.js +252 -0
- package/lib/sync-panel.js.map +1 -0
- package/lib/sync-stepper.d.ts +16 -0
- package/lib/sync-stepper.d.ts.map +1 -0
- package/lib/sync-stepper.js +42 -0
- package/lib/sync-stepper.js.map +1 -0
- package/package.json +4 -2
|
@@ -1,6 +1,410 @@
|
|
|
1
1
|
/** UI-only catalog. Selected English translations adapted from knownasmobin/dsh-ssh PR #2 (MIT).
|
|
2
2
|
* Semantic keys and explicit parameters must never be used for protocol or persisted data. */
|
|
3
3
|
export declare const messages: {
|
|
4
|
+
readonly "backup.title": {
|
|
5
|
+
readonly zh: "配置导入与导出";
|
|
6
|
+
readonly en: "Import and export";
|
|
7
|
+
};
|
|
8
|
+
readonly "backup.description": {
|
|
9
|
+
readonly zh: "将常用配置保存为加密文件,便于备份或迁移。";
|
|
10
|
+
readonly en: "Save an encrypted file to back up or move your configuration.";
|
|
11
|
+
};
|
|
12
|
+
readonly "backup.scope": {
|
|
13
|
+
readonly zh: "包含主机、FTP/FTPS、项目目录、密钥库、代理库、分组代理和常用命令。";
|
|
14
|
+
readonly en: "Includes hosts, FTP/FTPS, projects, credentials, proxies, group proxies and commands.";
|
|
15
|
+
};
|
|
16
|
+
readonly "backup.excluded": {
|
|
17
|
+
readonly zh: "不包含会话授权、端口转发、本机运行设置及 GitHub 授权。";
|
|
18
|
+
readonly en: "Excludes session grants, port forwards, local runtime settings and GitHub authorization.";
|
|
19
|
+
};
|
|
20
|
+
readonly "backup.import": {
|
|
21
|
+
readonly zh: "导入配置";
|
|
22
|
+
readonly en: "Import configuration";
|
|
23
|
+
};
|
|
24
|
+
readonly "backup.export": {
|
|
25
|
+
readonly zh: "导出配置";
|
|
26
|
+
readonly en: "Export configuration";
|
|
27
|
+
};
|
|
28
|
+
readonly "backup.passwordHint": {
|
|
29
|
+
readonly zh: "整个文件都会加密。请保管好密码,导入时需要使用。";
|
|
30
|
+
readonly en: "The entire file is encrypted. Keep the password to import it later.";
|
|
31
|
+
};
|
|
32
|
+
readonly "backup.importHint": {
|
|
33
|
+
readonly zh: "选择导出的备份文件,输入密码后预览内容。";
|
|
34
|
+
readonly en: "Choose an exported backup and enter its password to preview it.";
|
|
35
|
+
};
|
|
36
|
+
readonly "backup.file": {
|
|
37
|
+
readonly zh: "备份文件";
|
|
38
|
+
readonly en: "Backup file";
|
|
39
|
+
};
|
|
40
|
+
readonly "backup.fileHint": {
|
|
41
|
+
readonly zh: "选择本插件导出的 JSON 文件,最大 1 MB。";
|
|
42
|
+
readonly en: "Select a JSON file exported by this plugin, up to 1 MB.";
|
|
43
|
+
};
|
|
44
|
+
readonly "backup.password": {
|
|
45
|
+
readonly zh: "备份密码";
|
|
46
|
+
readonly en: "Backup password";
|
|
47
|
+
};
|
|
48
|
+
readonly "backup.passwordLength": {
|
|
49
|
+
readonly zh: "8–256 个字符,不会保存为同步密码。";
|
|
50
|
+
readonly en: "8–256 characters. This does not change your sync password.";
|
|
51
|
+
};
|
|
52
|
+
readonly "backup.confirmPassword": {
|
|
53
|
+
readonly zh: "再次输入密码";
|
|
54
|
+
readonly en: "Confirm password";
|
|
55
|
+
};
|
|
56
|
+
readonly "backup.mismatch": {
|
|
57
|
+
readonly zh: "两次输入的密码不一致";
|
|
58
|
+
readonly en: "Passwords do not match";
|
|
59
|
+
};
|
|
60
|
+
readonly "backup.chooseFile": {
|
|
61
|
+
readonly zh: "请先选择备份文件";
|
|
62
|
+
readonly en: "Choose a backup file first";
|
|
63
|
+
};
|
|
64
|
+
readonly "backup.fileLimit": {
|
|
65
|
+
readonly zh: "备份文件不能超过 1 MB";
|
|
66
|
+
readonly en: "Backup files cannot exceed 1 MB";
|
|
67
|
+
};
|
|
68
|
+
readonly "backup.preview": {
|
|
69
|
+
readonly zh: "即将导入";
|
|
70
|
+
readonly en: "Ready to import";
|
|
71
|
+
};
|
|
72
|
+
readonly "backup.copyHint": {
|
|
73
|
+
readonly zh: "所有条目将作为新副本添加,不覆盖现有配置。分组会使用独立名称。若已开启自动同步,导入的内容也会参与同步。";
|
|
74
|
+
readonly en: "All entries are added as new copies. Existing configuration is preserved and groups get separate names. Imported entries participate in automatic sync when enabled.";
|
|
75
|
+
};
|
|
76
|
+
readonly "backup.profiles": {
|
|
77
|
+
readonly zh: "SSH 主机";
|
|
78
|
+
readonly en: "SSH hosts";
|
|
79
|
+
};
|
|
80
|
+
readonly "backup.ftpProfiles": {
|
|
81
|
+
readonly zh: "FTP / FTPS";
|
|
82
|
+
readonly en: "FTP / FTPS";
|
|
83
|
+
};
|
|
84
|
+
readonly "backup.remoteProjects": {
|
|
85
|
+
readonly zh: "项目目录";
|
|
86
|
+
readonly en: "Projects";
|
|
87
|
+
};
|
|
88
|
+
readonly "backup.credentialEntries": {
|
|
89
|
+
readonly zh: "密钥库条目";
|
|
90
|
+
readonly en: "Credentials";
|
|
91
|
+
};
|
|
92
|
+
readonly "backup.proxyEntries": {
|
|
93
|
+
readonly zh: "代理";
|
|
94
|
+
readonly en: "Proxies";
|
|
95
|
+
};
|
|
96
|
+
readonly "backup.commands": {
|
|
97
|
+
readonly zh: "常用命令";
|
|
98
|
+
readonly en: "Commands";
|
|
99
|
+
};
|
|
100
|
+
readonly "backup.groupProxies": {
|
|
101
|
+
readonly zh: "分组代理";
|
|
102
|
+
readonly en: "Group proxies";
|
|
103
|
+
};
|
|
104
|
+
readonly "backup.back": {
|
|
105
|
+
readonly zh: "返回修改";
|
|
106
|
+
readonly en: "Back";
|
|
107
|
+
};
|
|
108
|
+
readonly "backup.processing": {
|
|
109
|
+
readonly zh: "正在处理…";
|
|
110
|
+
readonly en: "Processing…";
|
|
111
|
+
};
|
|
112
|
+
readonly "backup.download": {
|
|
113
|
+
readonly zh: "加密并下载";
|
|
114
|
+
readonly en: "Encrypt and download";
|
|
115
|
+
};
|
|
116
|
+
readonly "backup.read": {
|
|
117
|
+
readonly zh: "解密并预览";
|
|
118
|
+
readonly en: "Decrypt and preview";
|
|
119
|
+
};
|
|
120
|
+
readonly "backup.confirmImport": {
|
|
121
|
+
readonly zh: "确认导入副本";
|
|
122
|
+
readonly en: "Import copies";
|
|
123
|
+
};
|
|
124
|
+
readonly "backup.exported": {
|
|
125
|
+
readonly zh: "已生成加密备份,请保存文件和密码。";
|
|
126
|
+
readonly en: "Encrypted backup generated. Save the file and password.";
|
|
127
|
+
};
|
|
128
|
+
readonly "backup.imported": {
|
|
129
|
+
readonly zh: "配置已导入为新副本,可在主机等页面查看。";
|
|
130
|
+
readonly en: "Configuration imported as new copies. Find them in Hosts and the other pages.";
|
|
131
|
+
};
|
|
132
|
+
readonly "sync.title": {
|
|
133
|
+
readonly zh: "同步";
|
|
134
|
+
readonly en: "Sync";
|
|
135
|
+
};
|
|
136
|
+
readonly "sync.description": {
|
|
137
|
+
readonly zh: "集中管理跨设备同步,让主机与常用配置保持一致。";
|
|
138
|
+
readonly en: "Keep hosts and everyday settings consistent across devices.";
|
|
139
|
+
};
|
|
140
|
+
readonly "sync.localSettingsHint": {
|
|
141
|
+
readonly zh: "备份与迁移配置,管理当前实例的安全边界与命令限制。";
|
|
142
|
+
readonly en: "Back up or move configuration and manage security and command limits for this instance.";
|
|
143
|
+
};
|
|
144
|
+
readonly "sync.methods": {
|
|
145
|
+
readonly zh: "同步方式";
|
|
146
|
+
readonly en: "Sync methods";
|
|
147
|
+
};
|
|
148
|
+
readonly "sync.githubMethod": {
|
|
149
|
+
readonly zh: "已支持";
|
|
150
|
+
readonly en: "Available";
|
|
151
|
+
};
|
|
152
|
+
readonly "sync.unavailable": {
|
|
153
|
+
readonly zh: "尚未接入";
|
|
154
|
+
readonly en: "Not available";
|
|
155
|
+
};
|
|
156
|
+
readonly "sync.methodsHint": {
|
|
157
|
+
readonly zh: "目前支持 GitHub Gist,其他方式尚未接入。";
|
|
158
|
+
readonly en: "GitHub Gist is supported. Other methods are not available yet.";
|
|
159
|
+
};
|
|
160
|
+
readonly "sync.loading": {
|
|
161
|
+
readonly zh: "正在读取同步配置…";
|
|
162
|
+
readonly en: "Loading sync settings…";
|
|
163
|
+
};
|
|
164
|
+
readonly "sync.githubDescription": {
|
|
165
|
+
readonly zh: "通过非公开 Gist 保存和同步 SSH 配置。";
|
|
166
|
+
readonly en: "Store and sync SSH settings with a secret Gist.";
|
|
167
|
+
};
|
|
168
|
+
readonly "sync.notConnected": {
|
|
169
|
+
readonly zh: "还未连接 GitHub";
|
|
170
|
+
readonly en: "GitHub is not connected";
|
|
171
|
+
};
|
|
172
|
+
readonly "sync.configuredHint": {
|
|
173
|
+
readonly zh: "授权与加密密码已保存,可以开始同步。";
|
|
174
|
+
readonly en: "Authorization and encryption password are saved. Ready to sync.";
|
|
175
|
+
};
|
|
176
|
+
readonly "sync.encryptionMissing": {
|
|
177
|
+
readonly zh: "账号已连接,请完成同步空间与加密密码配置。";
|
|
178
|
+
readonly en: "Account connected. Finish setting up storage and an encryption password.";
|
|
179
|
+
};
|
|
180
|
+
readonly "sync.setupHint": {
|
|
181
|
+
readonly zh: "跟随三步引导,完成账号连接与同步配置。";
|
|
182
|
+
readonly en: "Connect your account and set up sync in three guided steps.";
|
|
183
|
+
};
|
|
184
|
+
readonly "sync.manage": {
|
|
185
|
+
readonly zh: "管理配置";
|
|
186
|
+
readonly en: "Manage setup";
|
|
187
|
+
};
|
|
188
|
+
readonly "sync.startSetup": {
|
|
189
|
+
readonly zh: "开始配置";
|
|
190
|
+
readonly en: "Set up sync";
|
|
191
|
+
};
|
|
192
|
+
readonly "sync.behavior": {
|
|
193
|
+
readonly zh: "同步偏好";
|
|
194
|
+
readonly en: "Sync preferences";
|
|
195
|
+
};
|
|
196
|
+
readonly "sync.autoHint": {
|
|
197
|
+
readonly zh: "启动后、配置变更后及每 5 分钟检查同步。";
|
|
198
|
+
readonly en: "Check after startup, configuration changes, and every 5 minutes.";
|
|
199
|
+
};
|
|
200
|
+
readonly "sync.conflicts": {
|
|
201
|
+
readonly zh: "两端配置变化时";
|
|
202
|
+
readonly en: "When both devices have changes";
|
|
203
|
+
};
|
|
204
|
+
readonly "sync.conflictsHint": {
|
|
205
|
+
readonly zh: "智能同步按条目合并变化;本地优先或云端优先会采用对应一侧的配置。";
|
|
206
|
+
readonly en: "Smart sync merges changes by entry. Local-first or cloud-first uses the selected side’s configuration.";
|
|
207
|
+
};
|
|
208
|
+
readonly "sync.smart": {
|
|
209
|
+
readonly zh: "智能同步(推荐)";
|
|
210
|
+
readonly en: "Smart sync (recommended)";
|
|
211
|
+
};
|
|
212
|
+
readonly "sync.backupHint": {
|
|
213
|
+
readonly zh: "保留 0–50 份历史快照;0 表示不额外保留快照。";
|
|
214
|
+
readonly en: "Keep 0–50 history snapshots. Use 0 to keep no extra snapshots.";
|
|
215
|
+
};
|
|
216
|
+
readonly "sync.unsaved": {
|
|
217
|
+
readonly zh: "有未保存的修改";
|
|
218
|
+
readonly en: "Unsaved changes";
|
|
219
|
+
};
|
|
220
|
+
readonly "sync.saved": {
|
|
221
|
+
readonly zh: "配置已保存";
|
|
222
|
+
readonly en: "Settings saved";
|
|
223
|
+
};
|
|
224
|
+
readonly "sync.openCloud": {
|
|
225
|
+
readonly zh: "查看云端配置";
|
|
226
|
+
readonly en: "View cloud configuration";
|
|
227
|
+
};
|
|
228
|
+
readonly "sync.scope": {
|
|
229
|
+
readonly zh: "同步哪些内容?";
|
|
230
|
+
readonly en: "What gets synced?";
|
|
231
|
+
};
|
|
232
|
+
readonly "sync.scopeHint": {
|
|
233
|
+
readonly zh: "主机、FTP/FTPS、固定项目目录、密钥库、代理库、分组代理及常用命令。";
|
|
234
|
+
readonly en: "Hosts, FTP/FTPS, pinned projects, credentials, proxies, group proxies, and saved commands.";
|
|
235
|
+
};
|
|
236
|
+
readonly "sync.privacyHint": {
|
|
237
|
+
readonly zh: "密码和私钥等凭据会加密后上传;主机地址等配置以明文保存在非公开 Gist 中。请妥善保管 Gist 链接与加密密码。";
|
|
238
|
+
readonly en: "Passwords and private keys are encrypted before upload. Host addresses and other settings remain readable in the secret Gist. Keep its link and your encryption password safe.";
|
|
239
|
+
};
|
|
240
|
+
readonly "sync.network": {
|
|
241
|
+
readonly zh: "GitHub 网络与代理";
|
|
242
|
+
readonly en: "GitHub network and proxy";
|
|
243
|
+
};
|
|
244
|
+
readonly "sync.saveNetwork": {
|
|
245
|
+
readonly zh: "保存代理并测试网络";
|
|
246
|
+
readonly en: "Save proxy and test network";
|
|
247
|
+
};
|
|
248
|
+
readonly "sync.setupTitle": {
|
|
249
|
+
readonly zh: "配置 GitHub 同步";
|
|
250
|
+
readonly en: "Set up GitHub sync";
|
|
251
|
+
};
|
|
252
|
+
readonly "sync.setupSubtitle": {
|
|
253
|
+
readonly zh: "连接账号,选择同步空间,然后确认配置。";
|
|
254
|
+
readonly en: "Connect an account, choose storage, then review your setup.";
|
|
255
|
+
};
|
|
256
|
+
readonly "sync.account": {
|
|
257
|
+
readonly zh: "账号授权";
|
|
258
|
+
readonly en: "Account";
|
|
259
|
+
};
|
|
260
|
+
readonly "sync.storage": {
|
|
261
|
+
readonly zh: "同步空间";
|
|
262
|
+
readonly en: "Storage";
|
|
263
|
+
};
|
|
264
|
+
readonly "sync.review": {
|
|
265
|
+
readonly zh: "确认配置";
|
|
266
|
+
readonly en: "Review";
|
|
267
|
+
};
|
|
268
|
+
readonly "sync.accountHeading": {
|
|
269
|
+
readonly zh: "连接你的 GitHub 账号";
|
|
270
|
+
readonly en: "Connect your GitHub account";
|
|
271
|
+
};
|
|
272
|
+
readonly "sync.accountHint": {
|
|
273
|
+
readonly zh: "选择一种授权方式,仅用于访问 GitHub Gist。";
|
|
274
|
+
readonly en: "Choose how to authorize access to GitHub Gist.";
|
|
275
|
+
};
|
|
276
|
+
readonly "sync.keepAuth": {
|
|
277
|
+
readonly zh: "可直接继续使用当前授权,也可以更换账号或重新授权。";
|
|
278
|
+
readonly en: "Continue with the saved authorization, or connect another account.";
|
|
279
|
+
};
|
|
280
|
+
readonly "sync.changeAuth": {
|
|
281
|
+
readonly zh: "更换或重新授权";
|
|
282
|
+
readonly en: "Change authorization";
|
|
283
|
+
};
|
|
284
|
+
readonly "sync.authMethod": {
|
|
285
|
+
readonly zh: "授权方式";
|
|
286
|
+
readonly en: "Authorization method";
|
|
287
|
+
};
|
|
288
|
+
readonly "sync.tokenMode": {
|
|
289
|
+
readonly zh: "访问令牌(推荐)";
|
|
290
|
+
readonly en: "Access token (recommended)";
|
|
291
|
+
};
|
|
292
|
+
readonly "sync.deviceMode": {
|
|
293
|
+
readonly zh: "浏览器授权";
|
|
294
|
+
readonly en: "Browser authorization";
|
|
295
|
+
};
|
|
296
|
+
readonly "sync.createToken": {
|
|
297
|
+
readonly zh: "前往 GitHub 创建令牌";
|
|
298
|
+
readonly en: "Create a token on GitHub";
|
|
299
|
+
};
|
|
300
|
+
readonly "sync.tokenScope": {
|
|
301
|
+
readonly zh: ",仅勾选 gist 权限并设置有效期。";
|
|
302
|
+
readonly en: ", select only the gist scope and choose an expiration date.";
|
|
303
|
+
};
|
|
304
|
+
readonly "sync.tokenPaste": {
|
|
305
|
+
readonly zh: "生成后复制令牌,粘贴到下方,再点击「验证并继续」。";
|
|
306
|
+
readonly en: "Copy the generated token below, then select Verify and continue.";
|
|
307
|
+
};
|
|
308
|
+
readonly "sync.tokenLabel": {
|
|
309
|
+
readonly zh: "GitHub 访问令牌";
|
|
310
|
+
readonly en: "GitHub access token";
|
|
311
|
+
};
|
|
312
|
+
readonly "sync.tokenHint": {
|
|
313
|
+
readonly zh: "使用 classic Token 的 gist 权限。令牌保存在当前实例中,不会随配置同步。";
|
|
314
|
+
readonly en: "Use a classic token with the gist scope. It stays in this instance and is never synced.";
|
|
315
|
+
};
|
|
316
|
+
readonly "sync.deviceHelp": {
|
|
317
|
+
readonly zh: "需要一个已启用 Device Flow 的 GitHub OAuth 应用。没有应用时,可返回使用访问令牌。";
|
|
318
|
+
readonly en: "Requires a GitHub OAuth app with Device Flow enabled. Use an access token if you do not have an app.";
|
|
319
|
+
};
|
|
320
|
+
readonly "sync.createApp": {
|
|
321
|
+
readonly zh: "创建 OAuth 应用";
|
|
322
|
+
readonly en: "Create an OAuth app";
|
|
323
|
+
};
|
|
324
|
+
readonly "sync.authSavedHint": {
|
|
325
|
+
readonly zh: "验证授权后会立即保存到当前实例;关闭引导不会断开已连接的账号。";
|
|
326
|
+
readonly en: "Verified authorization is saved immediately. Closing setup does not disconnect the account.";
|
|
327
|
+
};
|
|
328
|
+
readonly "sync.storageHeading": {
|
|
329
|
+
readonly zh: "选择配置保存的位置";
|
|
330
|
+
readonly en: "Choose where to store your settings";
|
|
331
|
+
};
|
|
332
|
+
readonly "sync.storageHint": {
|
|
333
|
+
readonly zh: "首次使用可新建空间;连接另一台设备时,使用相同的 Gist ID 和加密密码。";
|
|
334
|
+
readonly en: "Create storage for first use. On another device, use the same Gist ID and encryption password.";
|
|
335
|
+
};
|
|
336
|
+
readonly "sync.newSpace": {
|
|
337
|
+
readonly zh: "新建同步空间";
|
|
338
|
+
readonly en: "Create new storage";
|
|
339
|
+
};
|
|
340
|
+
readonly "sync.existingSpace": {
|
|
341
|
+
readonly zh: "使用已有空间";
|
|
342
|
+
readonly en: "Use existing storage";
|
|
343
|
+
};
|
|
344
|
+
readonly "sync.gistHelp": {
|
|
345
|
+
readonly zh: "填写已有 Gist 链接最后一段的 ID,例如 gist.github.com/用户名/后面的那串字符。";
|
|
346
|
+
readonly en: "Enter the ID at the end of your Gist URL, after gist.github.com/username/.";
|
|
347
|
+
};
|
|
348
|
+
readonly "sync.newSpaceHint": {
|
|
349
|
+
readonly zh: "首次同步时自动创建非公开 Gist。原有云端空间不会被删除。";
|
|
350
|
+
readonly en: "A secret Gist is created on the first sync. Existing cloud storage is not deleted.";
|
|
351
|
+
};
|
|
352
|
+
readonly "sync.passwordHint": {
|
|
353
|
+
readonly zh: "至少 6 个字符。所有设备使用同一密码,用于加密和解密凭据,请妥善保存。";
|
|
354
|
+
readonly en: "At least 6 characters. Use the same password on every device to encrypt and decrypt credentials. Keep it safe.";
|
|
355
|
+
};
|
|
356
|
+
readonly "sync.reviewHeading": {
|
|
357
|
+
readonly zh: "确认后即可开始同步";
|
|
358
|
+
readonly en: "Review your sync setup";
|
|
359
|
+
};
|
|
360
|
+
readonly "sync.reviewHint": {
|
|
361
|
+
readonly zh: "完成后返回同步页,可随时调整同步偏好。";
|
|
362
|
+
readonly en: "Finish to return to Sync. You can adjust preferences at any time.";
|
|
363
|
+
};
|
|
364
|
+
readonly "sync.passwordWillSave": {
|
|
365
|
+
readonly zh: "将保存新的加密密码";
|
|
366
|
+
readonly en: "New encryption password will be saved";
|
|
367
|
+
};
|
|
368
|
+
readonly "sync.autoEnabled": {
|
|
369
|
+
readonly zh: "已开启,保存后会自动尝试同步";
|
|
370
|
+
readonly en: "Enabled; sync will be attempted after saving";
|
|
371
|
+
};
|
|
372
|
+
readonly "sync.manualEnabled": {
|
|
373
|
+
readonly zh: "已关闭,保存后可手动同步";
|
|
374
|
+
readonly en: "Off; sync manually after saving";
|
|
375
|
+
};
|
|
376
|
+
readonly "sync.back": {
|
|
377
|
+
readonly zh: "上一步";
|
|
378
|
+
readonly en: "Back";
|
|
379
|
+
};
|
|
380
|
+
readonly "sync.continue": {
|
|
381
|
+
readonly zh: "继续";
|
|
382
|
+
readonly en: "Continue";
|
|
383
|
+
};
|
|
384
|
+
readonly "sync.verifyContinue": {
|
|
385
|
+
readonly zh: "验证并继续";
|
|
386
|
+
readonly en: "Verify and continue";
|
|
387
|
+
};
|
|
388
|
+
readonly "sync.authorize": {
|
|
389
|
+
readonly zh: "获取授权码";
|
|
390
|
+
readonly en: "Get authorization code";
|
|
391
|
+
};
|
|
392
|
+
readonly "sync.processing": {
|
|
393
|
+
readonly zh: "正在验证…";
|
|
394
|
+
readonly en: "Verifying…";
|
|
395
|
+
};
|
|
396
|
+
readonly "sync.complete": {
|
|
397
|
+
readonly zh: "完成配置";
|
|
398
|
+
readonly en: "Finish setup";
|
|
399
|
+
};
|
|
400
|
+
readonly "sync.expired": {
|
|
401
|
+
readonly zh: "授权码已过期,请重新获取授权码后再试。";
|
|
402
|
+
readonly en: "The authorization code expired. Get a new code and try again.";
|
|
403
|
+
};
|
|
404
|
+
readonly "sync.cancelAuth": {
|
|
405
|
+
readonly zh: "取消等待,重新配置";
|
|
406
|
+
readonly en: "Cancel and change setup";
|
|
407
|
+
};
|
|
4
408
|
readonly "session-defaults.title": {
|
|
5
409
|
readonly zh: "新会话默认配置";
|
|
6
410
|
readonly en: "New session defaults";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/locales/messages.ts"],"names":[],"mappings":"AAAA;8FAC8F;AAC9F,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/locales/messages.ts"],"names":[],"mappings":"AAAA;8FAC8F;AAC9F,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmyFX,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,QAAQ,CAAA"}
|
package/lib/locales/messages.js
CHANGED
|
@@ -1,6 +1,107 @@
|
|
|
1
1
|
/** UI-only catalog. Selected English translations adapted from knownasmobin/dsh-ssh PR #2 (MIT).
|
|
2
2
|
* Semantic keys and explicit parameters must never be used for protocol or persisted data. */
|
|
3
3
|
export const messages = {
|
|
4
|
+
"backup.title": { "zh": "配置导入与导出", "en": "Import and export" },
|
|
5
|
+
"backup.description": { "zh": "将常用配置保存为加密文件,便于备份或迁移。", "en": "Save an encrypted file to back up or move your configuration." },
|
|
6
|
+
"backup.scope": { "zh": "包含主机、FTP/FTPS、项目目录、密钥库、代理库、分组代理和常用命令。", "en": "Includes hosts, FTP/FTPS, projects, credentials, proxies, group proxies and commands." },
|
|
7
|
+
"backup.excluded": { "zh": "不包含会话授权、端口转发、本机运行设置及 GitHub 授权。", "en": "Excludes session grants, port forwards, local runtime settings and GitHub authorization." },
|
|
8
|
+
"backup.import": { "zh": "导入配置", "en": "Import configuration" },
|
|
9
|
+
"backup.export": { "zh": "导出配置", "en": "Export configuration" },
|
|
10
|
+
"backup.passwordHint": { "zh": "整个文件都会加密。请保管好密码,导入时需要使用。", "en": "The entire file is encrypted. Keep the password to import it later." },
|
|
11
|
+
"backup.importHint": { "zh": "选择导出的备份文件,输入密码后预览内容。", "en": "Choose an exported backup and enter its password to preview it." },
|
|
12
|
+
"backup.file": { "zh": "备份文件", "en": "Backup file" },
|
|
13
|
+
"backup.fileHint": { "zh": "选择本插件导出的 JSON 文件,最大 1 MB。", "en": "Select a JSON file exported by this plugin, up to 1 MB." },
|
|
14
|
+
"backup.password": { "zh": "备份密码", "en": "Backup password" },
|
|
15
|
+
"backup.passwordLength": { "zh": "8–256 个字符,不会保存为同步密码。", "en": "8–256 characters. This does not change your sync password." },
|
|
16
|
+
"backup.confirmPassword": { "zh": "再次输入密码", "en": "Confirm password" },
|
|
17
|
+
"backup.mismatch": { "zh": "两次输入的密码不一致", "en": "Passwords do not match" },
|
|
18
|
+
"backup.chooseFile": { "zh": "请先选择备份文件", "en": "Choose a backup file first" },
|
|
19
|
+
"backup.fileLimit": { "zh": "备份文件不能超过 1 MB", "en": "Backup files cannot exceed 1 MB" },
|
|
20
|
+
"backup.preview": { "zh": "即将导入", "en": "Ready to import" },
|
|
21
|
+
"backup.copyHint": { "zh": "所有条目将作为新副本添加,不覆盖现有配置。分组会使用独立名称。若已开启自动同步,导入的内容也会参与同步。", "en": "All entries are added as new copies. Existing configuration is preserved and groups get separate names. Imported entries participate in automatic sync when enabled." },
|
|
22
|
+
"backup.profiles": { "zh": "SSH 主机", "en": "SSH hosts" },
|
|
23
|
+
"backup.ftpProfiles": { "zh": "FTP / FTPS", "en": "FTP / FTPS" },
|
|
24
|
+
"backup.remoteProjects": { "zh": "项目目录", "en": "Projects" },
|
|
25
|
+
"backup.credentialEntries": { "zh": "密钥库条目", "en": "Credentials" },
|
|
26
|
+
"backup.proxyEntries": { "zh": "代理", "en": "Proxies" },
|
|
27
|
+
"backup.commands": { "zh": "常用命令", "en": "Commands" },
|
|
28
|
+
"backup.groupProxies": { "zh": "分组代理", "en": "Group proxies" },
|
|
29
|
+
"backup.back": { "zh": "返回修改", "en": "Back" },
|
|
30
|
+
"backup.processing": { "zh": "正在处理…", "en": "Processing…" },
|
|
31
|
+
"backup.download": { "zh": "加密并下载", "en": "Encrypt and download" },
|
|
32
|
+
"backup.read": { "zh": "解密并预览", "en": "Decrypt and preview" },
|
|
33
|
+
"backup.confirmImport": { "zh": "确认导入副本", "en": "Import copies" },
|
|
34
|
+
"backup.exported": { "zh": "已生成加密备份,请保存文件和密码。", "en": "Encrypted backup generated. Save the file and password." },
|
|
35
|
+
"backup.imported": { "zh": "配置已导入为新副本,可在主机等页面查看。", "en": "Configuration imported as new copies. Find them in Hosts and the other pages." },
|
|
36
|
+
"sync.title": { "zh": "同步", "en": "Sync" },
|
|
37
|
+
"sync.description": { "zh": "集中管理跨设备同步,让主机与常用配置保持一致。", "en": "Keep hosts and everyday settings consistent across devices." },
|
|
38
|
+
"sync.localSettingsHint": { "zh": "备份与迁移配置,管理当前实例的安全边界与命令限制。", "en": "Back up or move configuration and manage security and command limits for this instance." },
|
|
39
|
+
"sync.methods": { "zh": "同步方式", "en": "Sync methods" },
|
|
40
|
+
"sync.githubMethod": { "zh": "已支持", "en": "Available" },
|
|
41
|
+
"sync.unavailable": { "zh": "尚未接入", "en": "Not available" },
|
|
42
|
+
"sync.methodsHint": { "zh": "目前支持 GitHub Gist,其他方式尚未接入。", "en": "GitHub Gist is supported. Other methods are not available yet." },
|
|
43
|
+
"sync.loading": { "zh": "正在读取同步配置…", "en": "Loading sync settings…" },
|
|
44
|
+
"sync.githubDescription": { "zh": "通过非公开 Gist 保存和同步 SSH 配置。", "en": "Store and sync SSH settings with a secret Gist." },
|
|
45
|
+
"sync.notConnected": { "zh": "还未连接 GitHub", "en": "GitHub is not connected" },
|
|
46
|
+
"sync.configuredHint": { "zh": "授权与加密密码已保存,可以开始同步。", "en": "Authorization and encryption password are saved. Ready to sync." },
|
|
47
|
+
"sync.encryptionMissing": { "zh": "账号已连接,请完成同步空间与加密密码配置。", "en": "Account connected. Finish setting up storage and an encryption password." },
|
|
48
|
+
"sync.setupHint": { "zh": "跟随三步引导,完成账号连接与同步配置。", "en": "Connect your account and set up sync in three guided steps." },
|
|
49
|
+
"sync.manage": { "zh": "管理配置", "en": "Manage setup" },
|
|
50
|
+
"sync.startSetup": { "zh": "开始配置", "en": "Set up sync" },
|
|
51
|
+
"sync.behavior": { "zh": "同步偏好", "en": "Sync preferences" },
|
|
52
|
+
"sync.autoHint": { "zh": "启动后、配置变更后及每 5 分钟检查同步。", "en": "Check after startup, configuration changes, and every 5 minutes." },
|
|
53
|
+
"sync.conflicts": { "zh": "两端配置变化时", "en": "When both devices have changes" },
|
|
54
|
+
"sync.conflictsHint": { "zh": "智能同步按条目合并变化;本地优先或云端优先会采用对应一侧的配置。", "en": "Smart sync merges changes by entry. Local-first or cloud-first uses the selected side’s configuration." },
|
|
55
|
+
"sync.smart": { "zh": "智能同步(推荐)", "en": "Smart sync (recommended)" },
|
|
56
|
+
"sync.backupHint": { "zh": "保留 0–50 份历史快照;0 表示不额外保留快照。", "en": "Keep 0–50 history snapshots. Use 0 to keep no extra snapshots." },
|
|
57
|
+
"sync.unsaved": { "zh": "有未保存的修改", "en": "Unsaved changes" },
|
|
58
|
+
"sync.saved": { "zh": "配置已保存", "en": "Settings saved" },
|
|
59
|
+
"sync.openCloud": { "zh": "查看云端配置", "en": "View cloud configuration" },
|
|
60
|
+
"sync.scope": { "zh": "同步哪些内容?", "en": "What gets synced?" },
|
|
61
|
+
"sync.scopeHint": { "zh": "主机、FTP/FTPS、固定项目目录、密钥库、代理库、分组代理及常用命令。", "en": "Hosts, FTP/FTPS, pinned projects, credentials, proxies, group proxies, and saved commands." },
|
|
62
|
+
"sync.privacyHint": { "zh": "密码和私钥等凭据会加密后上传;主机地址等配置以明文保存在非公开 Gist 中。请妥善保管 Gist 链接与加密密码。", "en": "Passwords and private keys are encrypted before upload. Host addresses and other settings remain readable in the secret Gist. Keep its link and your encryption password safe." },
|
|
63
|
+
"sync.network": { "zh": "GitHub 网络与代理", "en": "GitHub network and proxy" },
|
|
64
|
+
"sync.saveNetwork": { "zh": "保存代理并测试网络", "en": "Save proxy and test network" },
|
|
65
|
+
"sync.setupTitle": { "zh": "配置 GitHub 同步", "en": "Set up GitHub sync" },
|
|
66
|
+
"sync.setupSubtitle": { "zh": "连接账号,选择同步空间,然后确认配置。", "en": "Connect an account, choose storage, then review your setup." },
|
|
67
|
+
"sync.account": { "zh": "账号授权", "en": "Account" },
|
|
68
|
+
"sync.storage": { "zh": "同步空间", "en": "Storage" },
|
|
69
|
+
"sync.review": { "zh": "确认配置", "en": "Review" },
|
|
70
|
+
"sync.accountHeading": { "zh": "连接你的 GitHub 账号", "en": "Connect your GitHub account" },
|
|
71
|
+
"sync.accountHint": { "zh": "选择一种授权方式,仅用于访问 GitHub Gist。", "en": "Choose how to authorize access to GitHub Gist." },
|
|
72
|
+
"sync.keepAuth": { "zh": "可直接继续使用当前授权,也可以更换账号或重新授权。", "en": "Continue with the saved authorization, or connect another account." },
|
|
73
|
+
"sync.changeAuth": { "zh": "更换或重新授权", "en": "Change authorization" },
|
|
74
|
+
"sync.authMethod": { "zh": "授权方式", "en": "Authorization method" },
|
|
75
|
+
"sync.tokenMode": { "zh": "访问令牌(推荐)", "en": "Access token (recommended)" },
|
|
76
|
+
"sync.deviceMode": { "zh": "浏览器授权", "en": "Browser authorization" },
|
|
77
|
+
"sync.createToken": { "zh": "前往 GitHub 创建令牌", "en": "Create a token on GitHub" },
|
|
78
|
+
"sync.tokenScope": { "zh": ",仅勾选 gist 权限并设置有效期。", "en": ", select only the gist scope and choose an expiration date." },
|
|
79
|
+
"sync.tokenPaste": { "zh": "生成后复制令牌,粘贴到下方,再点击「验证并继续」。", "en": "Copy the generated token below, then select Verify and continue." },
|
|
80
|
+
"sync.tokenLabel": { "zh": "GitHub 访问令牌", "en": "GitHub access token" },
|
|
81
|
+
"sync.tokenHint": { "zh": "使用 classic Token 的 gist 权限。令牌保存在当前实例中,不会随配置同步。", "en": "Use a classic token with the gist scope. It stays in this instance and is never synced." },
|
|
82
|
+
"sync.deviceHelp": { "zh": "需要一个已启用 Device Flow 的 GitHub OAuth 应用。没有应用时,可返回使用访问令牌。", "en": "Requires a GitHub OAuth app with Device Flow enabled. Use an access token if you do not have an app." },
|
|
83
|
+
"sync.createApp": { "zh": "创建 OAuth 应用", "en": "Create an OAuth app" },
|
|
84
|
+
"sync.authSavedHint": { "zh": "验证授权后会立即保存到当前实例;关闭引导不会断开已连接的账号。", "en": "Verified authorization is saved immediately. Closing setup does not disconnect the account." },
|
|
85
|
+
"sync.storageHeading": { "zh": "选择配置保存的位置", "en": "Choose where to store your settings" },
|
|
86
|
+
"sync.storageHint": { "zh": "首次使用可新建空间;连接另一台设备时,使用相同的 Gist ID 和加密密码。", "en": "Create storage for first use. On another device, use the same Gist ID and encryption password." },
|
|
87
|
+
"sync.newSpace": { "zh": "新建同步空间", "en": "Create new storage" },
|
|
88
|
+
"sync.existingSpace": { "zh": "使用已有空间", "en": "Use existing storage" },
|
|
89
|
+
"sync.gistHelp": { "zh": "填写已有 Gist 链接最后一段的 ID,例如 gist.github.com/用户名/后面的那串字符。", "en": "Enter the ID at the end of your Gist URL, after gist.github.com/username/." },
|
|
90
|
+
"sync.newSpaceHint": { "zh": "首次同步时自动创建非公开 Gist。原有云端空间不会被删除。", "en": "A secret Gist is created on the first sync. Existing cloud storage is not deleted." },
|
|
91
|
+
"sync.passwordHint": { "zh": "至少 6 个字符。所有设备使用同一密码,用于加密和解密凭据,请妥善保存。", "en": "At least 6 characters. Use the same password on every device to encrypt and decrypt credentials. Keep it safe." },
|
|
92
|
+
"sync.reviewHeading": { "zh": "确认后即可开始同步", "en": "Review your sync setup" },
|
|
93
|
+
"sync.reviewHint": { "zh": "完成后返回同步页,可随时调整同步偏好。", "en": "Finish to return to Sync. You can adjust preferences at any time." },
|
|
94
|
+
"sync.passwordWillSave": { "zh": "将保存新的加密密码", "en": "New encryption password will be saved" },
|
|
95
|
+
"sync.autoEnabled": { "zh": "已开启,保存后会自动尝试同步", "en": "Enabled; sync will be attempted after saving" },
|
|
96
|
+
"sync.manualEnabled": { "zh": "已关闭,保存后可手动同步", "en": "Off; sync manually after saving" },
|
|
97
|
+
"sync.back": { "zh": "上一步", "en": "Back" },
|
|
98
|
+
"sync.continue": { "zh": "继续", "en": "Continue" },
|
|
99
|
+
"sync.verifyContinue": { "zh": "验证并继续", "en": "Verify and continue" },
|
|
100
|
+
"sync.authorize": { "zh": "获取授权码", "en": "Get authorization code" },
|
|
101
|
+
"sync.processing": { "zh": "正在验证…", "en": "Verifying…" },
|
|
102
|
+
"sync.complete": { "zh": "完成配置", "en": "Finish setup" },
|
|
103
|
+
"sync.expired": { "zh": "授权码已过期,请重新获取授权码后再试。", "en": "The authorization code expired. Get a new code and try again." },
|
|
104
|
+
"sync.cancelAuth": { "zh": "取消等待,重新配置", "en": "Cancel and change setup" },
|
|
4
105
|
"session-defaults.title": { "zh": "新会话默认配置", "en": "New session defaults" },
|
|
5
106
|
"session-defaults.hint": { "zh": "修改后自动保存,仅用于尚未配置的会话;不授权主机,不影响已有权限。", "en": "Saved automatically. Applies to unconfigured sessions only; grants no hosts and keeps existing permissions." },
|
|
6
107
|
"session-defaults.retry": { "zh": "重试", "en": "Retry" },
|