@alwith/module-drive 0.0.0-stage → 0.1.0-rc.23
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/LICENSE +94 -0
- package/README.md +50 -2
- package/THIRD_PARTY_NOTICES.md +7 -0
- package/desktop-provenance.json +34 -0
- package/dist/badge-react.d.ts +9 -0
- package/dist/badge-react.js +1 -0
- package/dist/badge.d.ts +10 -0
- package/dist/badge.js +1 -0
- package/dist/browse.d.ts +33 -0
- package/dist/browse.js +1 -0
- package/dist/content/chat-condense.d.ts +22 -0
- package/dist/content/chat-condense.js +1 -0
- package/dist/content/collab.d.ts +34 -0
- package/dist/content/collab.js +1 -0
- package/dist/content/comment-anchors.d.ts +23 -0
- package/dist/content/comment-anchors.js +2 -0
- package/dist/content/comment-decorations.d.ts +23 -0
- package/dist/content/comment-decorations.js +3 -0
- package/dist/content/comment-drawer.d.ts +44 -0
- package/dist/content/comment-drawer.js +1 -0
- package/dist/content/comment-mentions.d.ts +18 -0
- package/dist/content/comment-mentions.js +1 -0
- package/dist/content/comment-surface.d.ts +25 -0
- package/dist/content/comment-surface.js +1 -0
- package/dist/content/condense-task.d.ts +44 -0
- package/dist/content/condense-task.js +1 -0
- package/dist/content/condense.d.ts +20 -0
- package/dist/content/condense.js +1 -0
- package/dist/content/editor.d.ts +5 -0
- package/dist/content/editor.js +1 -0
- package/dist/content/file-actions.d.ts +43 -0
- package/dist/content/file-actions.js +1 -0
- package/dist/content/file-link.d.ts +4 -0
- package/dist/content/file-link.js +1 -0
- package/dist/content/frontmatter-panel.d.ts +7 -0
- package/dist/content/frontmatter-panel.js +1 -0
- package/dist/content/frontmatter.d.ts +9 -0
- package/dist/content/frontmatter.js +7 -0
- package/dist/content/host.d.ts +49 -0
- package/dist/content/host.js +1 -0
- package/dist/content/html-bridge.d.ts +1 -0
- package/dist/content/html-bridge.js +187 -0
- package/dist/content/html-comments.d.ts +5 -0
- package/dist/content/html-comments.js +1 -0
- package/dist/content/markdown-comments.d.ts +4 -0
- package/dist/content/markdown-comments.js +2 -0
- package/dist/content/mention-picker.d.ts +10 -0
- package/dist/content/mention-picker.js +1 -0
- package/dist/content/save-version.d.ts +2 -0
- package/dist/content/save-version.js +1 -0
- package/dist/content/translations.d.ts +2 -0
- package/dist/content/translations.js +1 -0
- package/dist/content/use-file-comments.d.ts +12 -0
- package/dist/content/use-file-comments.js +1 -0
- package/dist/content/yuplink.d.ts +11 -0
- package/dist/content/yuplink.js +2 -0
- package/dist/content.css +64 -0
- package/dist/content.d.ts +10 -0
- package/dist/content.js +1 -0
- package/dist/contract.d.ts +780 -0
- package/dist/contract.js +0 -0
- package/dist/core.d.ts +22 -0
- package/dist/core.js +1 -0
- package/dist/files.d.ts +7 -0
- package/dist/files.js +1 -0
- package/dist/global-search.d.ts +34 -0
- package/dist/global-search.js +1 -0
- package/dist/icons.d.ts +5 -0
- package/dist/icons.js +1 -0
- package/dist/launcher.d.ts +15 -0
- package/dist/launcher.js +2 -0
- package/dist/locales.d.ts +985 -0
- package/dist/locales.js +1 -0
- package/dist/mass-delete.d.ts +9 -0
- package/dist/mass-delete.js +1 -0
- package/dist/notifications.d.ts +14 -0
- package/dist/notifications.js +1 -0
- package/dist/pinned-docs.d.ts +14 -0
- package/dist/pinned-docs.js +1 -0
- package/dist/pinned.d.ts +12 -0
- package/dist/pinned.js +1 -0
- package/dist/react.d.ts +29 -0
- package/dist/react.js +1 -0
- package/dist/roots.d.ts +10 -0
- package/dist/roots.js +1 -0
- package/dist/settings.d.ts +14 -0
- package/dist/settings.js +1 -0
- package/dist/sharing.d.ts +12 -0
- package/dist/sharing.js +1 -0
- package/dist/status.d.ts +16 -0
- package/dist/status.js +1 -0
- package/dist/styles.css +458 -0
- package/dist/summary.d.ts +10 -0
- package/dist/summary.js +1 -0
- package/dist/tauri.d.ts +6 -0
- package/dist/tauri.js +1 -0
- package/dist/transfer-feed.d.ts +36 -0
- package/dist/transfer-feed.js +1 -0
- package/dist/ui.d.ts +96 -0
- package/dist/ui.js +1 -0
- package/package.json +117 -4
- package/rust/Cargo.toml +14 -0
- package/rust/src/contract.rs +366 -0
- package/rust/src/lib.rs +5 -0
- package/rust/src/ownership.rs +4 -0
- package/rust/src/service.rs +140 -0
- package/rust/src/sync.rs +1602 -0
|
@@ -0,0 +1,985 @@
|
|
|
1
|
+
export declare const driveLocales: {
|
|
2
|
+
readonly en: {
|
|
3
|
+
readonly common: {
|
|
4
|
+
readonly title: "YUP Drive";
|
|
5
|
+
readonly massDelete: {
|
|
6
|
+
readonly title: "Delete {{count}} files from the cloud too?";
|
|
7
|
+
readonly desc: "You deleted {{count}} files locally in \"{{project}}\". Confirm to also delete them from the cloud (they go to the trash and can be recovered). Cancel to restore them from the cloud instead — use this if it was a mistake.";
|
|
8
|
+
readonly confirm: "Delete from cloud";
|
|
9
|
+
readonly cancel: "Cancel and restore";
|
|
10
|
+
readonly restoring: "Restoring the deleted files from the cloud…";
|
|
11
|
+
};
|
|
12
|
+
readonly syncNow: "Sync now";
|
|
13
|
+
readonly pause: "Pause";
|
|
14
|
+
readonly resume: "Resume";
|
|
15
|
+
readonly openSettings: "Open settings";
|
|
16
|
+
readonly engine: {
|
|
17
|
+
readonly idle: "Up to date";
|
|
18
|
+
readonly scanning: "Scanning";
|
|
19
|
+
readonly syncing: "Syncing";
|
|
20
|
+
readonly paused: "Paused";
|
|
21
|
+
readonly error: "Error";
|
|
22
|
+
};
|
|
23
|
+
readonly panel: {
|
|
24
|
+
readonly inFlight: "Transferring ({{count}})";
|
|
25
|
+
readonly recentDone: "Recently completed ({{count}})";
|
|
26
|
+
readonly retryOne: "Retry";
|
|
27
|
+
readonly reconcile: "Re-check";
|
|
28
|
+
readonly reconciling: "Re-checking…";
|
|
29
|
+
readonly reconcileHint: "If sync looks wrong, hit Re-check: it compares everything against the cloud. Files that already match aren't downloaded again.";
|
|
30
|
+
readonly retrying: "Retrying…";
|
|
31
|
+
readonly allQuiet: "Everything is up to date";
|
|
32
|
+
readonly signInHint: "Sign in to the company knowledge base to list your cloud projects here; click one to sync it locally and open it.";
|
|
33
|
+
readonly signIn: "Sign in to YUP Drive";
|
|
34
|
+
readonly openWeb: "Open on web";
|
|
35
|
+
readonly refresh: "Refresh";
|
|
36
|
+
readonly connecting: "Connecting to YUP Drive…";
|
|
37
|
+
readonly empty: "No cloud projects available yet";
|
|
38
|
+
readonly groups: {
|
|
39
|
+
readonly mine: "Mine";
|
|
40
|
+
readonly shared: "Shared";
|
|
41
|
+
readonly otherPersonal: "Other people's personal libraries";
|
|
42
|
+
};
|
|
43
|
+
readonly filter: "Filter by name";
|
|
44
|
+
readonly filterEmpty: "No matching projects";
|
|
45
|
+
readonly open: "Open";
|
|
46
|
+
readonly openTimeout: "{{name}} has not synced locally yet, try again shortly";
|
|
47
|
+
readonly state: "State";
|
|
48
|
+
readonly progress: "Progress";
|
|
49
|
+
readonly progressValue: "{{downloading}} downloading · {{uploading}} uploading · {{synced}} synced";
|
|
50
|
+
readonly lastSync: "Last sync";
|
|
51
|
+
readonly never: "Never";
|
|
52
|
+
readonly conflicts: "Conflicts ({{count}})";
|
|
53
|
+
readonly errors: "Errors ({{count}})";
|
|
54
|
+
readonly reveal: "Reveal";
|
|
55
|
+
readonly push: "Change push";
|
|
56
|
+
readonly pushLive: "Live";
|
|
57
|
+
readonly pushPolling: "Polling";
|
|
58
|
+
readonly guard: {
|
|
59
|
+
readonly notice: "The server doesn't report personal-library ownership yet, so we can't tell which of these {{count}} are yours. Only the projects you've opened are syncing. This clears itself once the server is upgraded — nothing for you to do.";
|
|
60
|
+
readonly syncAll: "Sync all";
|
|
61
|
+
readonly confirmTitle: "Sync every personal space?";
|
|
62
|
+
readonly confirmDesc: "This turns off the safeguard and downloads all {{count}} personal spaces — your colleagues' included — onto this computer. You can turn the safeguard back on later in settings.";
|
|
63
|
+
readonly cancel: "Cancel";
|
|
64
|
+
};
|
|
65
|
+
readonly containers: {
|
|
66
|
+
readonly material: "Materials";
|
|
67
|
+
readonly knowledge: "Knowledge";
|
|
68
|
+
};
|
|
69
|
+
readonly scopes: {
|
|
70
|
+
readonly personal: "Personal";
|
|
71
|
+
readonly dept: "Department";
|
|
72
|
+
readonly team: "Team";
|
|
73
|
+
readonly company: "Company";
|
|
74
|
+
};
|
|
75
|
+
readonly new: "New";
|
|
76
|
+
readonly more: "More";
|
|
77
|
+
readonly status: {
|
|
78
|
+
readonly queued: "Queued";
|
|
79
|
+
readonly syncing: "Syncing";
|
|
80
|
+
readonly syncingProgress: "{{done}} of {{total}}";
|
|
81
|
+
readonly opening: "Opening";
|
|
82
|
+
readonly failed: "Sync failed";
|
|
83
|
+
readonly retry: "Retry";
|
|
84
|
+
readonly partial: "{{count}} file(s) did not download";
|
|
85
|
+
};
|
|
86
|
+
readonly importFromFeishu: "Import from Feishu…";
|
|
87
|
+
readonly notUploaded: "Not uploaded ({{count}})";
|
|
88
|
+
readonly notUploadedMeta: "Tried {{attempts}} time(s) · next retry {{next}}";
|
|
89
|
+
readonly notUploadedMetaDue: "Tried {{attempts}} times · retrying next round";
|
|
90
|
+
readonly notUploadedMetaSettled: "Same result after {{attempts}} tries; auto-retry stopped — this one needs a person";
|
|
91
|
+
readonly retryNow: "Retry now";
|
|
92
|
+
readonly notDownloaded: "Not downloaded ({{count}})";
|
|
93
|
+
readonly transferFailed: "Failed to sync ({{count}})";
|
|
94
|
+
readonly direction: {
|
|
95
|
+
readonly upload: "Up";
|
|
96
|
+
readonly download: "Down";
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
readonly state: {
|
|
100
|
+
readonly synced: "Synced";
|
|
101
|
+
readonly pending: "Pending upload";
|
|
102
|
+
readonly uploading: "Uploading";
|
|
103
|
+
readonly conflict: "Conflict";
|
|
104
|
+
readonly cloudOnly: "Cloud only";
|
|
105
|
+
readonly ignored: "Ignored";
|
|
106
|
+
readonly skippedTooLarge: "Skipped, too large";
|
|
107
|
+
readonly forbidden: "Forbidden";
|
|
108
|
+
readonly error: "Error";
|
|
109
|
+
readonly collab: "Collaborating";
|
|
110
|
+
readonly readOnly: "Read-only · needs a change request";
|
|
111
|
+
readonly notDownloaded: "Not downloaded · click to fetch";
|
|
112
|
+
readonly downloading: "Downloading";
|
|
113
|
+
};
|
|
114
|
+
readonly condense: {
|
|
115
|
+
readonly action: "Condense into knowledge";
|
|
116
|
+
readonly scope: "Scope";
|
|
117
|
+
readonly close: "Close";
|
|
118
|
+
readonly cancelTask: "Cancel task";
|
|
119
|
+
readonly cancelling: "Cancelling…";
|
|
120
|
+
readonly cancelled: "Cancelled";
|
|
121
|
+
readonly succeeded: "Knowledge draft created";
|
|
122
|
+
readonly failed: "Condense failed";
|
|
123
|
+
readonly processing: "Processing…";
|
|
124
|
+
readonly uploadIssue: "A file needs attention. Review its sync details and cloud content:";
|
|
125
|
+
readonly uploading: "Uploading";
|
|
126
|
+
readonly uploadHint: "Closing keeps the task running. Cancelling prevents condensation; cloud file sync continues.";
|
|
127
|
+
readonly closeHint: "Closing keeps the task running. Reopen this dialog to see its status.";
|
|
128
|
+
readonly errorDetails: "Details";
|
|
129
|
+
readonly knowledgeSource: "The server does not accept a knowledge project as the source. Choose a materials or project space.";
|
|
130
|
+
readonly completed: "{{name}}: knowledge draft created";
|
|
131
|
+
readonly backgroundFailed: "{{name}}: condense failed. Reopen the dialog for details.";
|
|
132
|
+
readonly openResult: "Open draft";
|
|
133
|
+
readonly retry: "Try again";
|
|
134
|
+
readonly description: "Generate a knowledge draft from this project’s cloud content. You can edit the draft when it is ready.";
|
|
135
|
+
readonly phase: {
|
|
136
|
+
readonly preflight: "Checking uploads…";
|
|
137
|
+
readonly starting: "Starting…";
|
|
138
|
+
readonly running: "Condensing…";
|
|
139
|
+
readonly runningProgress: "Condensing… {{progress}}%";
|
|
140
|
+
readonly opening: "Opening the draft…";
|
|
141
|
+
};
|
|
142
|
+
readonly toast: {
|
|
143
|
+
readonly working: "{{name}} · {{detail}}";
|
|
144
|
+
readonly opened: "{{name}}: draft ready — it is open in the editor, edit it right here";
|
|
145
|
+
readonly remoteOnly: "The draft “{{title}}” was created, but the knowledge base it lives in is not synced to this computer yet";
|
|
146
|
+
readonly noUrl: "The server returned no web link either — look for it in the knowledge base project.";
|
|
147
|
+
readonly openWeb: "Open on web";
|
|
148
|
+
readonly cancel: "Cancel";
|
|
149
|
+
};
|
|
150
|
+
readonly propose: {
|
|
151
|
+
readonly title: "There has been activity in {{name}} — condense it into knowledge?";
|
|
152
|
+
readonly action: "Condense";
|
|
153
|
+
readonly dismiss: "Don't ask again";
|
|
154
|
+
readonly dismissed: "Won't ask about {{name}} again for a while.";
|
|
155
|
+
};
|
|
156
|
+
readonly unsynced: {
|
|
157
|
+
readonly title: "{{count}} file(s) have not been uploaded yet";
|
|
158
|
+
readonly desc: "Condensing runs on the cloud copy of this project, so anything not uploaded yet will be missing from the draft — and it will still look like it worked.";
|
|
159
|
+
readonly failed: "{{count}} of them failed to upload and need attention.";
|
|
160
|
+
readonly wait: "Wait for the upload";
|
|
161
|
+
readonly proceed: "Condense anyway";
|
|
162
|
+
};
|
|
163
|
+
readonly errors: {
|
|
164
|
+
readonly engineOff: "YUP Drive sync is not running, so this project's local changes cannot be pushed up first. Start sync, then try again.";
|
|
165
|
+
readonly preflight: "Could not check what is still waiting to be uploaded, so condensing did not start.";
|
|
166
|
+
readonly start: "The server refused to start condensing — its exact wording is above.";
|
|
167
|
+
readonly poll: "Lost track of the condense job; it may still be running on the server.";
|
|
168
|
+
readonly jobFailed: "The condense job failed — the executor's exact wording is above.";
|
|
169
|
+
readonly jobFailedUnknown: "The condense job failed and the server gave no reason. Check the job on the web.";
|
|
170
|
+
readonly cancelled: "The condense job was cancelled before it finished.";
|
|
171
|
+
readonly noResult: "The server reported success but returned no draft, so nothing was created.";
|
|
172
|
+
readonly timeout: "Still not finished after 20 minutes, so we stopped watching. Check the job on the web.";
|
|
173
|
+
readonly badScopePath: "The server could not make sense of that path — right-click the file or folder again from inside the project.";
|
|
174
|
+
readonly scopePathNotFound: "There is nothing visible to condense inside that file or folder on the cloud copy — it may not be uploaded yet, or you may not have access to it.";
|
|
175
|
+
readonly outsideDrive: "This row is not inside any YUP Drive project, so there is nothing to condense.";
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
readonly grants: {
|
|
179
|
+
readonly action: "Permissions & collaborators";
|
|
180
|
+
readonly title: "Permissions & collaborators";
|
|
181
|
+
readonly loading: "Loading permissions…";
|
|
182
|
+
readonly notInCloud: "This item isn't in the cloud yet, or isn't inside YUP Drive — nothing to set here for now.";
|
|
183
|
+
readonly loadFailed: "Couldn't load the permission list — the server's own words are above.";
|
|
184
|
+
readonly readOnly: "You don't manage permissions here, so this is view-only.";
|
|
185
|
+
readonly back: "Back to {{name}}";
|
|
186
|
+
readonly remove: "Remove";
|
|
187
|
+
readonly customHint: "Custom levels can only be changed in the admin console";
|
|
188
|
+
readonly customGrant: {
|
|
189
|
+
readonly title: "{{name}}'s permission includes a deny rule, so levels can't touch it";
|
|
190
|
+
readonly desc: "Change it in the web admin console.";
|
|
191
|
+
};
|
|
192
|
+
readonly who: {
|
|
193
|
+
readonly title: "Who can access";
|
|
194
|
+
readonly empty: "No collaborators yet";
|
|
195
|
+
readonly inheritedFrom: "From {{source}}";
|
|
196
|
+
readonly space: "space";
|
|
197
|
+
};
|
|
198
|
+
readonly implicit: {
|
|
199
|
+
readonly PROJECT_MANAGER: "Project manager";
|
|
200
|
+
readonly OWNER: "File owner";
|
|
201
|
+
readonly FOLDER_CREATOR: "Folder creator";
|
|
202
|
+
readonly GLOBAL_ADMIN: "Global admin";
|
|
203
|
+
readonly other: "Implicit";
|
|
204
|
+
};
|
|
205
|
+
readonly level: {
|
|
206
|
+
readonly label: "Level";
|
|
207
|
+
readonly VIEW: "Can view";
|
|
208
|
+
readonly EDIT: "Can edit";
|
|
209
|
+
readonly MANAGE: "Can manage";
|
|
210
|
+
readonly CUSTOM: "Custom";
|
|
211
|
+
};
|
|
212
|
+
readonly inheritedRemove: {
|
|
213
|
+
readonly title: "{{name}} gets this permission from “{{source}}”, so it can't be removed here";
|
|
214
|
+
readonly desc: "Change it at the source; this item will follow.";
|
|
215
|
+
readonly action: "Go to the source";
|
|
216
|
+
readonly unknown: "a parent level";
|
|
217
|
+
};
|
|
218
|
+
readonly add: {
|
|
219
|
+
readonly title: "Add collaborator";
|
|
220
|
+
readonly USER: "People";
|
|
221
|
+
readonly DEPT: "Department";
|
|
222
|
+
readonly ALL: "Everyone";
|
|
223
|
+
readonly all: "Everyone";
|
|
224
|
+
readonly allDesc: "Everyone in the company";
|
|
225
|
+
readonly searchUser: "Type a name or employee no.";
|
|
226
|
+
readonly searchDept: "Type a department name";
|
|
227
|
+
readonly hint: "Type to search";
|
|
228
|
+
readonly empty: "No matches";
|
|
229
|
+
readonly picked: "Selected: {{name}}";
|
|
230
|
+
readonly submit: "Add";
|
|
231
|
+
};
|
|
232
|
+
readonly toast: {
|
|
233
|
+
readonly set: "{{name}} is now {{level}}";
|
|
234
|
+
readonly removed: "Removed {{name}}";
|
|
235
|
+
readonly setFailed: "Couldn't set the permission — the server's own words are above.";
|
|
236
|
+
readonly removeFailed: "Couldn't remove — the server's own words are above.";
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
readonly newProject: {
|
|
240
|
+
readonly title: "New project";
|
|
241
|
+
readonly desc: "Pick a scope and template; it is pinned, pulled locally and opened";
|
|
242
|
+
readonly loading: "Loading templates and departments…";
|
|
243
|
+
readonly name: "Name";
|
|
244
|
+
readonly namePlaceholder: "Project name";
|
|
245
|
+
readonly scope: "Scope";
|
|
246
|
+
readonly scopes: {
|
|
247
|
+
readonly PERSONAL: "My space";
|
|
248
|
+
readonly DEPT: "Department";
|
|
249
|
+
readonly TEAM: "Team";
|
|
250
|
+
readonly COMPANY: "Company";
|
|
251
|
+
};
|
|
252
|
+
readonly department: "Department";
|
|
253
|
+
readonly template: "Template";
|
|
254
|
+
readonly cancel: "Cancel";
|
|
255
|
+
readonly create: "Create";
|
|
256
|
+
readonly creating: "Creating…";
|
|
257
|
+
readonly done: "Created {{name}}";
|
|
258
|
+
readonly preview: "Will appear under {{node}} › {{container}}";
|
|
259
|
+
};
|
|
260
|
+
readonly deviceMismatch: "Device mismatch, register this device again";
|
|
261
|
+
readonly summary: {
|
|
262
|
+
readonly upToDate: "Up to date";
|
|
263
|
+
readonly syncing: "Syncing {{count}} file(s)";
|
|
264
|
+
readonly scanning: "Scanning";
|
|
265
|
+
readonly paused: "Paused";
|
|
266
|
+
readonly conflicts: "{{count}} conflict(s)";
|
|
267
|
+
readonly failed: "{{count}} failed";
|
|
268
|
+
readonly error: "Sync error";
|
|
269
|
+
readonly notUploaded: "{{count}} not uploaded";
|
|
270
|
+
readonly notDownloaded: "{{count}} not downloaded";
|
|
271
|
+
readonly transferFailed: "{{count}} failed to sync";
|
|
272
|
+
};
|
|
273
|
+
readonly readOnly: {
|
|
274
|
+
readonly changed: "{{name}} needs a change request — your edit stays on this computer and will not be uploaded.";
|
|
275
|
+
readonly requestOnWeb: "Request a change on the web";
|
|
276
|
+
};
|
|
277
|
+
readonly cloudOnly: {
|
|
278
|
+
readonly restored: "Restored {{count}} files that were previously cloud-only";
|
|
279
|
+
readonly hidden: "{{count}} files are now cloud-only; their local copies were removed as required";
|
|
280
|
+
readonly repaired: "Restored local placeholders for {{count}} cloud-only files (their folders looked empty before)";
|
|
281
|
+
};
|
|
282
|
+
readonly comments: {
|
|
283
|
+
readonly title: "Comments";
|
|
284
|
+
readonly expand: "Show comments";
|
|
285
|
+
readonly collapse: "Hide comments";
|
|
286
|
+
readonly loading: "Loading comments";
|
|
287
|
+
readonly empty: "No comments yet";
|
|
288
|
+
readonly placeholder: "Write a comment";
|
|
289
|
+
readonly newForFile: "Comment on this file";
|
|
290
|
+
readonly mention: {
|
|
291
|
+
readonly hint: "Type a name to mention someone";
|
|
292
|
+
readonly empty: "No matching people";
|
|
293
|
+
};
|
|
294
|
+
readonly replyPlaceholder: "Write a reply";
|
|
295
|
+
readonly selectHint: "Select any text in the document to quote it in a comment or propose a replacement.";
|
|
296
|
+
readonly commentOnSelection: "Comment";
|
|
297
|
+
readonly send: "Send";
|
|
298
|
+
readonly cancel: "Cancel";
|
|
299
|
+
readonly save: "Save";
|
|
300
|
+
readonly reply: "Reply";
|
|
301
|
+
readonly edit: "Edit";
|
|
302
|
+
readonly edited: "Edited";
|
|
303
|
+
readonly delete: "Delete";
|
|
304
|
+
readonly deletedPlaceholder: "Deleted";
|
|
305
|
+
readonly aiBadge: "AI";
|
|
306
|
+
readonly suggestEdit: "Suggest a replacement";
|
|
307
|
+
readonly suggestPlaceholder: "Replacement text";
|
|
308
|
+
readonly suggestLabel: "Suggested replacement";
|
|
309
|
+
readonly applyAction: "Apply";
|
|
310
|
+
readonly applied: "Applied, a new version was created";
|
|
311
|
+
readonly appliedBy: "Applied by {{name}}";
|
|
312
|
+
readonly applyFailed: "Could not apply the suggestion";
|
|
313
|
+
readonly submitFailed: "Could not post the comment";
|
|
314
|
+
readonly deleteFailed: "Could not delete the comment";
|
|
315
|
+
readonly offline: "Offline";
|
|
316
|
+
readonly offlineHint: "Live updates are offline, reopen the file to see new comments";
|
|
317
|
+
readonly justNow: "Just now";
|
|
318
|
+
readonly minutesAgo: "{{count}} minutes ago";
|
|
319
|
+
readonly hoursAgo: "{{count}} hours ago";
|
|
320
|
+
readonly daysAgo: "{{count}} days ago";
|
|
321
|
+
};
|
|
322
|
+
readonly placeholder: {
|
|
323
|
+
readonly tapToDownload: "Click to download";
|
|
324
|
+
readonly tapToDownloadSized: "Click to download · {{size}}";
|
|
325
|
+
readonly tapToDownloadHint: "This file is large, so it was not downloaded automatically. Click to fetch it — it opens as soon as it lands.";
|
|
326
|
+
readonly downloading: "Downloading…";
|
|
327
|
+
readonly downloadingSized: "Downloading… · {{size}}";
|
|
328
|
+
readonly retry: "Retry";
|
|
329
|
+
readonly cloudOnly: "Cloud only";
|
|
330
|
+
readonly cloudOnlyHint: "This content stays in the cloud by policy and is never downloaded to anyone's computer. Open this row to see how to read it on the web.";
|
|
331
|
+
};
|
|
332
|
+
readonly search: {
|
|
333
|
+
readonly placeholder: "Search all projects";
|
|
334
|
+
readonly indexing: "Indexing...";
|
|
335
|
+
readonly empty: "No matches";
|
|
336
|
+
readonly truncated: "Showing partial results (index capped)";
|
|
337
|
+
};
|
|
338
|
+
readonly pinned: {
|
|
339
|
+
readonly title: "Pinned";
|
|
340
|
+
readonly pin: "Pin to sidebar";
|
|
341
|
+
readonly unpin: "Unpin from sidebar";
|
|
342
|
+
readonly missing: "This file no longer exists";
|
|
343
|
+
};
|
|
344
|
+
readonly shared: {
|
|
345
|
+
readonly title: "Shared with me";
|
|
346
|
+
readonly open: "Open";
|
|
347
|
+
readonly openWeb: "Open on the web";
|
|
348
|
+
readonly rowTitle: "{{name}} — in {{project}}, shared by {{by}}";
|
|
349
|
+
readonly notInDrive: "{{name}} is not in your local Drive — opening it on the web";
|
|
350
|
+
readonly landTimeout: "{{name}} has not synced locally yet, try again shortly";
|
|
351
|
+
readonly folderMissing: "{{name}} has not landed locally yet — opened its project instead";
|
|
352
|
+
};
|
|
353
|
+
readonly access: {
|
|
354
|
+
readonly request: "Request access";
|
|
355
|
+
readonly submitted: "Request submitted — you'll be notified once it's approved";
|
|
356
|
+
readonly alreadyPending: "You already have a pending request for this";
|
|
357
|
+
readonly cannotResolve: "Can't request access for this item";
|
|
358
|
+
};
|
|
359
|
+
readonly chatHere: "Chat in this folder";
|
|
360
|
+
};
|
|
361
|
+
readonly settings: {
|
|
362
|
+
readonly webBase: {
|
|
363
|
+
readonly title: "Web address";
|
|
364
|
+
readonly desc: "Knowledge base web URL used by \"Open on web\"; leave empty to use the address configured in the yup-kb plugin";
|
|
365
|
+
};
|
|
366
|
+
readonly ai: {
|
|
367
|
+
readonly title: "AI & knowledge";
|
|
368
|
+
};
|
|
369
|
+
readonly archive: {
|
|
370
|
+
readonly title: "AI session archive";
|
|
371
|
+
readonly desc: "Opt in: every 5 minutes, your local alwith conversations (your prompts and the AI's text replies only) are uploaded to the company knowledge base. A conversation goes to the project it happened in — chats inside a Drive project folder land there, everything else lands in your own personal library where nobody else can see it. Drop a <uuid>.private file next to a session to exclude it. Upload only: nothing is downloaded and nothing local is deleted; conversations stay in the cloud and never sync to anyone's machine";
|
|
372
|
+
readonly syncNow: "Sync now";
|
|
373
|
+
readonly syncing: "Syncing…";
|
|
374
|
+
readonly lastUpload: "Last upload: {{time}}";
|
|
375
|
+
readonly never: "never";
|
|
376
|
+
readonly synced: "{{count}} sessions archived";
|
|
377
|
+
};
|
|
378
|
+
readonly knowledge: {
|
|
379
|
+
readonly title: "Knowledge into chats";
|
|
380
|
+
readonly desc: "When a project inside YUP Drive is open, search the company knowledge base by the README title / topic / department and inject related summaries and links into new chats (fails silently, cached 10 minutes)";
|
|
381
|
+
};
|
|
382
|
+
readonly server: {
|
|
383
|
+
readonly title: "Server address";
|
|
384
|
+
readonly desc: "Knowledge server URL, without /api/v1";
|
|
385
|
+
};
|
|
386
|
+
readonly ownership: {
|
|
387
|
+
readonly title: "Continue using this directory?";
|
|
388
|
+
readonly description: "{{path}} contains existing Drive files or belongs to another profile. Continuing will assign this directory to the current account. Existing files will be preserved and participate in synchronization, and may be uploaded to this account. Close any other app syncing this directory first.";
|
|
389
|
+
readonly cancel: "Cancel";
|
|
390
|
+
readonly continue: "Continue";
|
|
391
|
+
};
|
|
392
|
+
readonly login: {
|
|
393
|
+
readonly title: "Sign in";
|
|
394
|
+
readonly desc: "Paste a personal access token, then register this device";
|
|
395
|
+
readonly tokenPlaceholder: "Personal access token";
|
|
396
|
+
readonly register: "Register this device";
|
|
397
|
+
readonly loading: "Signed in · reading device information…";
|
|
398
|
+
readonly loadFailed: "Signed in · could not read device information";
|
|
399
|
+
readonly registered: "Signed in · device {{deviceId}}";
|
|
400
|
+
readonly unregistered: "Signed in · device not registered";
|
|
401
|
+
readonly logout: "Sign out";
|
|
402
|
+
readonly done: "Signed in and device registered";
|
|
403
|
+
};
|
|
404
|
+
readonly sso: {
|
|
405
|
+
readonly title: "SSO sign in";
|
|
406
|
+
readonly desc: "Sign in with your company account in the system browser; this device is registered automatically";
|
|
407
|
+
readonly open: "SSO sign in";
|
|
408
|
+
readonly waiting: "Waiting for browser sign in…";
|
|
409
|
+
};
|
|
410
|
+
readonly collab: {
|
|
411
|
+
readonly title: "Collaboration relay";
|
|
412
|
+
readonly desc: "Yjs relay address (wss://…); leave empty to edit .md files in Drive locally only";
|
|
413
|
+
};
|
|
414
|
+
readonly localRoot: {
|
|
415
|
+
readonly title: "Local root folder";
|
|
416
|
+
readonly choose: "Choose folder";
|
|
417
|
+
};
|
|
418
|
+
readonly pause: {
|
|
419
|
+
readonly title: "Pause sync";
|
|
420
|
+
readonly desc: "Stop uploading and downloading until resumed";
|
|
421
|
+
};
|
|
422
|
+
readonly roots: {
|
|
423
|
+
readonly title: "Synced roots";
|
|
424
|
+
readonly empty: "No roots available";
|
|
425
|
+
readonly readOnly: "read only";
|
|
426
|
+
readonly scope: {
|
|
427
|
+
readonly personal: "My space";
|
|
428
|
+
readonly otherPersonal: "Others' personal spaces";
|
|
429
|
+
readonly dept: "Department";
|
|
430
|
+
readonly team: "Team";
|
|
431
|
+
readonly company: "Company";
|
|
432
|
+
};
|
|
433
|
+
};
|
|
434
|
+
readonly errors: {
|
|
435
|
+
readonly title: "Error queue";
|
|
436
|
+
readonly empty: "No errors";
|
|
437
|
+
};
|
|
438
|
+
readonly deviceMismatch: "Device mismatch, register this device again";
|
|
439
|
+
readonly guard: {
|
|
440
|
+
readonly title: "Sync all personal spaces";
|
|
441
|
+
readonly desc: "Your server does not report personal-space ownership, so {{count}} personal spaces cannot be told apart. Off (recommended): only the projects you pinned are synced. On: all of them are downloaded to this computer.";
|
|
442
|
+
};
|
|
443
|
+
readonly cleanup: {
|
|
444
|
+
readonly title: "Clean up unselected local copies";
|
|
445
|
+
readonly desc: "Project folders that are on disk but no longer in the sync selection are moved to a staging folder next to your local root — moved, not deleted.";
|
|
446
|
+
readonly scan: "Scan";
|
|
447
|
+
readonly nothing: "Nothing to clean up: every folder on disk is still in the sync selection.";
|
|
448
|
+
readonly confirm: "Move {{count}} folders to {{dir}}? They are moved, not deleted — move them back to restore.";
|
|
449
|
+
readonly move: "Move";
|
|
450
|
+
readonly cancel: "Cancel";
|
|
451
|
+
readonly done: "Moved {{count}} folders to {{dir}}";
|
|
452
|
+
readonly skipped: "Skipped {{count}}";
|
|
453
|
+
readonly skippedPinned: "{{count}} pinned";
|
|
454
|
+
readonly skippedPending: "{{count}} with unuploaded changes";
|
|
455
|
+
readonly failed: "{{count}} could not be moved";
|
|
456
|
+
};
|
|
457
|
+
readonly cloudOnly: {
|
|
458
|
+
readonly title: "Recheck cloud-only files";
|
|
459
|
+
readonly desc: "When the server changes whether a file may be downloaded, the file itself does not change, so incremental sync never hears about it — a .yupcloud placeholder can sit there forever (or, the other way round, content that should have been withdrawn stays on disk). The first sync after launch rechecks automatically; use this if you suspect what you have is stale.";
|
|
460
|
+
readonly action: "Recheck";
|
|
461
|
+
readonly clean: "Checked {{count}} projects; nothing needed fixing";
|
|
462
|
+
};
|
|
463
|
+
readonly skills: {
|
|
464
|
+
readonly title: "Installed department skills";
|
|
465
|
+
readonly empty: "No skill projects synced yet";
|
|
466
|
+
readonly installed: "Installed";
|
|
467
|
+
readonly notInstalled: "Not synced";
|
|
468
|
+
readonly auto: "Auto-installed (company or your department)";
|
|
469
|
+
readonly manual: "Pinned by you";
|
|
470
|
+
readonly notAuto: "Not auto-installed (other department)";
|
|
471
|
+
readonly desc: "Skill projects are not listed in the Drive panel — they are read by the machine. Company-wide and your own department's are installed automatically; others can be pinned by hand.";
|
|
472
|
+
};
|
|
473
|
+
readonly usage: {
|
|
474
|
+
readonly title: "Disk usage";
|
|
475
|
+
readonly desc: "See how much space Drive takes on this machine and what is taking it. Read-only — it changes no sync behaviour.";
|
|
476
|
+
readonly action: "Show";
|
|
477
|
+
readonly total: "{{size}} across {{count}} files";
|
|
478
|
+
readonly byProject: "Largest projects";
|
|
479
|
+
readonly byFile: "Largest files";
|
|
480
|
+
readonly files: "{{count}} files";
|
|
481
|
+
};
|
|
482
|
+
readonly maxAutoDownload: {
|
|
483
|
+
readonly title: "Don't auto-download large files";
|
|
484
|
+
readonly desc: "Files above this size are not downloaded automatically. They are marked in the file tree with their name and size — click one to fetch it, and it opens as soon as it lands. Set 0 to download everything. Takes effect on the next sync: raise it and files now under the limit are fetched for you, no clicking needed.";
|
|
485
|
+
readonly unit: "MB";
|
|
486
|
+
};
|
|
487
|
+
readonly advanced: {
|
|
488
|
+
readonly title: "Advanced (server addresses)";
|
|
489
|
+
};
|
|
490
|
+
};
|
|
491
|
+
};
|
|
492
|
+
readonly "zh-CN": {
|
|
493
|
+
readonly common: {
|
|
494
|
+
readonly title: "YUP Drive";
|
|
495
|
+
readonly massDelete: {
|
|
496
|
+
readonly title: "确认从云端也删除这 {{count}} 个文件?";
|
|
497
|
+
readonly desc: "你在「{{project}}」本地删除了 {{count}} 个文件。确认将一并从云端删除(进回收站,可找回);如果是误删,请点取消,从云端把它们恢复回来。";
|
|
498
|
+
readonly confirm: "从云端删除";
|
|
499
|
+
readonly cancel: "取消并恢复";
|
|
500
|
+
readonly restoring: "正在从云端恢复被删除的文件…";
|
|
501
|
+
};
|
|
502
|
+
readonly syncNow: "立即同步";
|
|
503
|
+
readonly pause: "暂停";
|
|
504
|
+
readonly resume: "继续";
|
|
505
|
+
readonly openSettings: "打开设置";
|
|
506
|
+
readonly engine: {
|
|
507
|
+
readonly idle: "已是最新";
|
|
508
|
+
readonly scanning: "扫描中";
|
|
509
|
+
readonly syncing: "同步中";
|
|
510
|
+
readonly paused: "已暂停";
|
|
511
|
+
readonly error: "错误";
|
|
512
|
+
};
|
|
513
|
+
readonly panel: {
|
|
514
|
+
readonly inFlight: "正在传输({{count}})";
|
|
515
|
+
readonly recentDone: "最近完成({{count}})";
|
|
516
|
+
readonly retryOne: "重试";
|
|
517
|
+
readonly reconcile: "重新对账";
|
|
518
|
+
readonly reconciling: "对账中…";
|
|
519
|
+
readonly reconcileHint: "同步不对劲时点「重新对账」:跟云端从头核对一遍,已经一样的文件不会重下。";
|
|
520
|
+
readonly retrying: "重试中…";
|
|
521
|
+
readonly allQuiet: "已是最新";
|
|
522
|
+
readonly signInHint: "登录公司知识库后,这里会列出你的云端项目;点一下就同步到本地并打开。";
|
|
523
|
+
readonly signIn: "登录 YUP Drive";
|
|
524
|
+
readonly openWeb: "在网页打开";
|
|
525
|
+
readonly refresh: "刷新";
|
|
526
|
+
readonly connecting: "正在连接 YUP Drive…";
|
|
527
|
+
readonly empty: "还没有可用的云端项目";
|
|
528
|
+
readonly groups: {
|
|
529
|
+
readonly mine: "我的";
|
|
530
|
+
readonly shared: "共享";
|
|
531
|
+
readonly otherPersonal: "他人的个人库";
|
|
532
|
+
};
|
|
533
|
+
readonly filter: "按名称筛选";
|
|
534
|
+
readonly filterEmpty: "没有匹配的项目";
|
|
535
|
+
readonly open: "打开";
|
|
536
|
+
readonly openTimeout: "{{name}} 还没同步到本地,稍后再试";
|
|
537
|
+
readonly state: "状态";
|
|
538
|
+
readonly progress: "进度";
|
|
539
|
+
readonly progressValue: "下载中 {{downloading}} · 上传中 {{uploading}} · 已同步 {{synced}}";
|
|
540
|
+
readonly lastSync: "上次同步";
|
|
541
|
+
readonly never: "从未";
|
|
542
|
+
readonly conflicts: "冲突({{count}})";
|
|
543
|
+
readonly errors: "错误({{count}})";
|
|
544
|
+
readonly reveal: "显示";
|
|
545
|
+
readonly push: "变更推送";
|
|
546
|
+
readonly pushLive: "实时";
|
|
547
|
+
readonly pushPolling: "轮询";
|
|
548
|
+
readonly guard: {
|
|
549
|
+
readonly notice: "服务端还没上归属字段,暂时分不清这 {{count}} 个个人库哪些是你的,已只同步你打开过的项目。服务端升级后自动恢复,无需你操作。";
|
|
550
|
+
readonly syncAll: "全部同步";
|
|
551
|
+
readonly confirmTitle: "同步全部个人库?";
|
|
552
|
+
readonly confirmDesc: "这会关掉这道保护,把全部 {{count}} 个个人库(含同事的)都下载到这台电脑上。之后可以在设置里改回来。";
|
|
553
|
+
readonly cancel: "取消";
|
|
554
|
+
};
|
|
555
|
+
readonly containers: {
|
|
556
|
+
readonly material: "资料库";
|
|
557
|
+
readonly knowledge: "知识库";
|
|
558
|
+
};
|
|
559
|
+
readonly scopes: {
|
|
560
|
+
readonly personal: "他人";
|
|
561
|
+
readonly dept: "部门";
|
|
562
|
+
readonly team: "团队";
|
|
563
|
+
readonly company: "公司";
|
|
564
|
+
};
|
|
565
|
+
readonly new: "新建";
|
|
566
|
+
readonly more: "更多";
|
|
567
|
+
readonly status: {
|
|
568
|
+
readonly queued: "等待中";
|
|
569
|
+
readonly syncing: "同步中";
|
|
570
|
+
readonly syncingProgress: "已下 {{done}} / 共 {{total}}";
|
|
571
|
+
readonly opening: "打开中";
|
|
572
|
+
readonly failed: "同步失败";
|
|
573
|
+
readonly retry: "重试";
|
|
574
|
+
readonly partial: "{{count}} 个文件没下来";
|
|
575
|
+
};
|
|
576
|
+
readonly importFromFeishu: "从飞书导入…";
|
|
577
|
+
readonly notUploaded: "没传上去({{count}})";
|
|
578
|
+
readonly notUploadedMeta: "已试 {{attempts}} 次 · 下次 {{next}}";
|
|
579
|
+
readonly notUploadedMetaDue: "已试 {{attempts}} 次 · 下一轮就再试";
|
|
580
|
+
readonly notUploadedMetaSettled: "试了 {{attempts}} 次都是同一个结果,已经不再自动重试 —— 这条要人去处理";
|
|
581
|
+
readonly retryNow: "立刻重试";
|
|
582
|
+
readonly notDownloaded: "没下下来({{count}})";
|
|
583
|
+
readonly transferFailed: "没同步成功({{count}})";
|
|
584
|
+
readonly direction: {
|
|
585
|
+
readonly upload: "上行";
|
|
586
|
+
readonly download: "下行";
|
|
587
|
+
};
|
|
588
|
+
};
|
|
589
|
+
readonly state: {
|
|
590
|
+
readonly synced: "已同步";
|
|
591
|
+
readonly pending: "待上传";
|
|
592
|
+
readonly uploading: "上传中";
|
|
593
|
+
readonly conflict: "冲突";
|
|
594
|
+
readonly cloudOnly: "仅云端";
|
|
595
|
+
readonly ignored: "已忽略";
|
|
596
|
+
readonly skippedTooLarge: "已跳过,过大";
|
|
597
|
+
readonly forbidden: "禁止";
|
|
598
|
+
readonly error: "错误";
|
|
599
|
+
readonly collab: "协同中";
|
|
600
|
+
readonly readOnly: "只读 · 需走修改申请";
|
|
601
|
+
readonly notDownloaded: "未下载 · 点一下就拉";
|
|
602
|
+
readonly downloading: "下载中";
|
|
603
|
+
};
|
|
604
|
+
readonly condense: {
|
|
605
|
+
readonly action: "沉淀为知识";
|
|
606
|
+
readonly scope: "沉淀范围";
|
|
607
|
+
readonly close: "关闭";
|
|
608
|
+
readonly cancelTask: "取消任务";
|
|
609
|
+
readonly cancelling: "正在取消…";
|
|
610
|
+
readonly cancelled: "已取消";
|
|
611
|
+
readonly succeeded: "沉淀成功";
|
|
612
|
+
readonly failed: "沉淀失败";
|
|
613
|
+
readonly processing: "处理中…";
|
|
614
|
+
readonly uploadIssue: "文件同步异常,请在同步详情中查看并核对云端内容:";
|
|
615
|
+
readonly uploading: "正在上传";
|
|
616
|
+
readonly uploadHint: "关闭后任务继续。取消将停止后续沉淀,云盘文件同步仍会继续。";
|
|
617
|
+
readonly closeHint: "关闭后任务继续,可重新打开此弹窗查看状态。";
|
|
618
|
+
readonly errorDetails: "详细信息";
|
|
619
|
+
readonly knowledgeSource: "服务端不支持将知识库项目作为沉淀来源,请选择资料或项目空间。";
|
|
620
|
+
readonly completed: "{{name}}:沉淀成功";
|
|
621
|
+
readonly backgroundFailed: "{{name}}:沉淀失败,可重新打开弹窗查看详情。";
|
|
622
|
+
readonly openResult: "打开草稿";
|
|
623
|
+
readonly retry: "重试";
|
|
624
|
+
readonly description: "根据当前项目的云端内容生成知识草稿,生成后可继续编辑。";
|
|
625
|
+
readonly phase: {
|
|
626
|
+
readonly preflight: "正在核对上传…";
|
|
627
|
+
readonly starting: "正在发起…";
|
|
628
|
+
readonly running: "沉淀中…";
|
|
629
|
+
readonly runningProgress: "沉淀中… {{progress}}%";
|
|
630
|
+
readonly opening: "正在打开草稿…";
|
|
631
|
+
};
|
|
632
|
+
readonly toast: {
|
|
633
|
+
readonly working: "{{name}} · {{detail}}";
|
|
634
|
+
readonly opened: "{{name}}:草稿已生成,已在编辑器里打开,可以直接改";
|
|
635
|
+
readonly remoteOnly: "草稿《{{title}}》已生成,但它所在的知识库项目本地还没同步";
|
|
636
|
+
readonly noUrl: "服务端也没给网页地址 —— 去那个知识库项目里找这份草稿。";
|
|
637
|
+
readonly openWeb: "在网页打开";
|
|
638
|
+
readonly cancel: "取消";
|
|
639
|
+
};
|
|
640
|
+
readonly propose: {
|
|
641
|
+
readonly title: "{{name}} 最近有不少进展,要沉淀成一份知识吗?";
|
|
642
|
+
readonly action: "沉淀";
|
|
643
|
+
readonly dismiss: "别再问";
|
|
644
|
+
readonly dismissed: "这段时间不会再问你 {{name}} 了。";
|
|
645
|
+
};
|
|
646
|
+
readonly unsynced: {
|
|
647
|
+
readonly title: "还有 {{count}} 个文件没传上去";
|
|
648
|
+
readonly desc: "沉淀跑的是这个项目在云端的那份内容,没传上去的东西不会进草稿 —— 而且它看起来还是成功的。";
|
|
649
|
+
readonly failed: "其中 {{count}} 个是传失败的,需要你处置。";
|
|
650
|
+
readonly wait: "先等等";
|
|
651
|
+
readonly proceed: "仍然沉淀";
|
|
652
|
+
};
|
|
653
|
+
readonly errors: {
|
|
654
|
+
readonly engineOff: "YUP Drive 同步没在跑,没法先把这个项目的本地改动推上去。请先启动同步再试。";
|
|
655
|
+
readonly preflight: "查不出还有什么没传上去,沉淀没有发起。";
|
|
656
|
+
readonly start: "服务端拒绝了这次沉淀 —— 上面是它的原话。";
|
|
657
|
+
readonly poll: "跟丢了这条沉淀任务,它可能还在服务端跑着。";
|
|
658
|
+
readonly jobFailed: "沉淀任务失败 —— 上面是执行器的原话。";
|
|
659
|
+
readonly jobFailedUnknown: "沉淀任务失败,服务端没给原因。去网页上看这条任务。";
|
|
660
|
+
readonly cancelled: "沉淀任务在跑完之前被取消了。";
|
|
661
|
+
readonly noResult: "服务端说成功了却没给草稿,什么都没生成。";
|
|
662
|
+
readonly timeout: "跑了 20 分钟还没结束,已经不再盯着了。去网页上看这条任务。";
|
|
663
|
+
readonly badScopePath: "服务端认不出这个路径 —— 回到项目里重新右键那个文件或文件夹再试。";
|
|
664
|
+
readonly scopePathNotFound: "云端这份内容里,这个文件或文件夹下没有可见的东西可沉淀 —— 可能还没传上去,也可能你没有权限。";
|
|
665
|
+
readonly outsideDrive: "这一行不在任何 YUP Drive 项目里,没有可沉淀的内容。";
|
|
666
|
+
};
|
|
667
|
+
};
|
|
668
|
+
readonly grants: {
|
|
669
|
+
readonly action: "权限与协作者";
|
|
670
|
+
readonly title: "权限与协作者";
|
|
671
|
+
readonly loading: "正在读取权限…";
|
|
672
|
+
readonly notInCloud: "这一行还没上云,或不在 YUP Drive 里 —— 暂时没有可设的权限。";
|
|
673
|
+
readonly loadFailed: "读不到权限列表 —— 上面是服务端的原话。";
|
|
674
|
+
readonly readOnly: "你在这里没有管理权限,只能查看。";
|
|
675
|
+
readonly back: "返回 {{name}}";
|
|
676
|
+
readonly remove: "移除";
|
|
677
|
+
readonly customHint: "自定义档位要去管理后台改";
|
|
678
|
+
readonly customGrant: {
|
|
679
|
+
readonly title: "{{name}} 的权限里含有拒绝规则,档位接口不碰它";
|
|
680
|
+
readonly desc: "去网页管理后台改。";
|
|
681
|
+
};
|
|
682
|
+
readonly who: {
|
|
683
|
+
readonly title: "谁能访问";
|
|
684
|
+
readonly empty: "还没有任何协作者";
|
|
685
|
+
readonly inheritedFrom: "来自 {{source}}";
|
|
686
|
+
readonly space: "空间";
|
|
687
|
+
};
|
|
688
|
+
readonly implicit: {
|
|
689
|
+
readonly PROJECT_MANAGER: "项目管理员";
|
|
690
|
+
readonly OWNER: "文件所有者";
|
|
691
|
+
readonly FOLDER_CREATOR: "目录创建者";
|
|
692
|
+
readonly GLOBAL_ADMIN: "全局管理员";
|
|
693
|
+
readonly other: "隐含权限";
|
|
694
|
+
};
|
|
695
|
+
readonly level: {
|
|
696
|
+
readonly label: "档位";
|
|
697
|
+
readonly VIEW: "只读";
|
|
698
|
+
readonly EDIT: "可编辑";
|
|
699
|
+
readonly MANAGE: "可管理";
|
|
700
|
+
readonly CUSTOM: "自定义";
|
|
701
|
+
};
|
|
702
|
+
readonly inheritedRemove: {
|
|
703
|
+
readonly title: "{{name}} 的权限是从「{{source}}」继承来的,这里删不掉";
|
|
704
|
+
readonly desc: "去源头那一层改;改了之后这里会跟着变。";
|
|
705
|
+
readonly action: "去源头改";
|
|
706
|
+
readonly unknown: "上一层";
|
|
707
|
+
};
|
|
708
|
+
readonly add: {
|
|
709
|
+
readonly title: "添加协作者";
|
|
710
|
+
readonly USER: "人";
|
|
711
|
+
readonly DEPT: "部门";
|
|
712
|
+
readonly ALL: "全公司";
|
|
713
|
+
readonly all: "全公司";
|
|
714
|
+
readonly allDesc: "公司里的所有人";
|
|
715
|
+
readonly searchUser: "输入姓名或工号";
|
|
716
|
+
readonly searchDept: "输入部门名";
|
|
717
|
+
readonly hint: "打字开始搜索";
|
|
718
|
+
readonly empty: "没有匹配的结果";
|
|
719
|
+
readonly picked: "已选:{{name}}";
|
|
720
|
+
readonly submit: "添加";
|
|
721
|
+
};
|
|
722
|
+
readonly toast: {
|
|
723
|
+
readonly set: "已把 {{name}} 设为{{level}}";
|
|
724
|
+
readonly removed: "已移除 {{name}}";
|
|
725
|
+
readonly setFailed: "设置权限失败 —— 上面是服务端的原话。";
|
|
726
|
+
readonly removeFailed: "移除失败 —— 上面是服务端的原话。";
|
|
727
|
+
};
|
|
728
|
+
};
|
|
729
|
+
readonly newProject: {
|
|
730
|
+
readonly title: "新建项目";
|
|
731
|
+
readonly desc: "选择范围与模板,建好后固定并拉到本地,随即打开";
|
|
732
|
+
readonly loading: "正在读取模板与部门…";
|
|
733
|
+
readonly name: "名称";
|
|
734
|
+
readonly namePlaceholder: "项目名称";
|
|
735
|
+
readonly scope: "范围";
|
|
736
|
+
readonly scopes: {
|
|
737
|
+
readonly PERSONAL: "我的空间";
|
|
738
|
+
readonly DEPT: "部门";
|
|
739
|
+
readonly TEAM: "团队";
|
|
740
|
+
readonly COMPANY: "公司";
|
|
741
|
+
};
|
|
742
|
+
readonly department: "部门";
|
|
743
|
+
readonly template: "模板";
|
|
744
|
+
readonly cancel: "取消";
|
|
745
|
+
readonly create: "创建";
|
|
746
|
+
readonly creating: "创建中…";
|
|
747
|
+
readonly done: "已创建 {{name}}";
|
|
748
|
+
readonly preview: "建好后出现在 {{node}} 的「{{container}}」下";
|
|
749
|
+
};
|
|
750
|
+
readonly deviceMismatch: "设备不匹配,重新注册此设备";
|
|
751
|
+
readonly summary: {
|
|
752
|
+
readonly upToDate: "已是最新";
|
|
753
|
+
readonly syncing: "同步中 {{count}} 个文件";
|
|
754
|
+
readonly scanning: "扫描中";
|
|
755
|
+
readonly paused: "已暂停";
|
|
756
|
+
readonly conflicts: "有 {{count}} 个冲突";
|
|
757
|
+
readonly failed: "有 {{count}} 个失败";
|
|
758
|
+
readonly error: "同步出错";
|
|
759
|
+
readonly notUploaded: "{{count}} 个没传上去";
|
|
760
|
+
readonly notDownloaded: "{{count}} 个没下下来";
|
|
761
|
+
readonly transferFailed: "{{count}} 个没同步成功";
|
|
762
|
+
};
|
|
763
|
+
readonly readOnly: {
|
|
764
|
+
readonly changed: "{{name}} 需要走修改申请 —— 你的改动只留在这台电脑上,不会上传。";
|
|
765
|
+
readonly requestOnWeb: "在网页申请修改";
|
|
766
|
+
};
|
|
767
|
+
readonly cloudOnly: {
|
|
768
|
+
readonly restored: "已恢复 {{count}} 个此前只能在云端查看的文件";
|
|
769
|
+
readonly hidden: "{{count}} 个文件改为只能在云端查看,本地副本已按权限要求移除";
|
|
770
|
+
readonly repaired: "已为 {{count}} 个只能在云端查看的文件补回本地说明文件(此前它们所在的文件夹看起来是空的)";
|
|
771
|
+
};
|
|
772
|
+
readonly comments: {
|
|
773
|
+
readonly title: "评论";
|
|
774
|
+
readonly expand: "显示评论";
|
|
775
|
+
readonly collapse: "隐藏评论";
|
|
776
|
+
readonly loading: "正在加载评论";
|
|
777
|
+
readonly empty: "暂无评论";
|
|
778
|
+
readonly placeholder: "写评论";
|
|
779
|
+
readonly newForFile: "评论这份文件";
|
|
780
|
+
readonly mention: {
|
|
781
|
+
readonly hint: "打字找人";
|
|
782
|
+
readonly empty: "没有匹配的人";
|
|
783
|
+
};
|
|
784
|
+
readonly replyPlaceholder: "写回复";
|
|
785
|
+
readonly selectHint: "在正文里选中一段文字,可以引用它评论或发起建议替换。";
|
|
786
|
+
readonly commentOnSelection: "评论";
|
|
787
|
+
readonly send: "发送";
|
|
788
|
+
readonly cancel: "取消";
|
|
789
|
+
readonly save: "保存";
|
|
790
|
+
readonly reply: "回复";
|
|
791
|
+
readonly edit: "编辑";
|
|
792
|
+
readonly edited: "已编辑";
|
|
793
|
+
readonly delete: "删除";
|
|
794
|
+
readonly deletedPlaceholder: "已删除";
|
|
795
|
+
readonly aiBadge: "AI";
|
|
796
|
+
readonly suggestEdit: "建议替换";
|
|
797
|
+
readonly suggestPlaceholder: "替换文本";
|
|
798
|
+
readonly suggestLabel: "建议替换";
|
|
799
|
+
readonly applyAction: "采纳";
|
|
800
|
+
readonly applied: "已采纳,新版本已生成";
|
|
801
|
+
readonly appliedBy: "由 {{name}} 采纳";
|
|
802
|
+
readonly applyFailed: "采纳失败";
|
|
803
|
+
readonly submitFailed: "评论发送失败";
|
|
804
|
+
readonly deleteFailed: "评论删除失败";
|
|
805
|
+
readonly offline: "离线";
|
|
806
|
+
readonly offlineHint: "实时推送已离线,重新打开文件才能看到新评论";
|
|
807
|
+
readonly justNow: "刚刚";
|
|
808
|
+
readonly minutesAgo: "{{count}} 分钟前";
|
|
809
|
+
readonly hoursAgo: "{{count}} 小时前";
|
|
810
|
+
readonly daysAgo: "{{count}} 天前";
|
|
811
|
+
};
|
|
812
|
+
readonly placeholder: {
|
|
813
|
+
readonly tapToDownload: "点一下下载";
|
|
814
|
+
readonly tapToDownloadSized: "点一下下载 · {{size}}";
|
|
815
|
+
readonly tapToDownloadHint: "这份文件太大,没有自动下载。点一下拉下来,下完直接打开。";
|
|
816
|
+
readonly downloading: "下载中…";
|
|
817
|
+
readonly downloadingSized: "下载中… · {{size}}";
|
|
818
|
+
readonly retry: "重试";
|
|
819
|
+
readonly cloudOnly: "仅云端";
|
|
820
|
+
readonly cloudOnlyHint: "这份内容按规定只留在云端,不会下载到任何人的电脑上。打开这一行可以看到怎么在网页读它。";
|
|
821
|
+
};
|
|
822
|
+
readonly search: {
|
|
823
|
+
readonly placeholder: "搜索所有项目";
|
|
824
|
+
readonly indexing: "正在建立索引…";
|
|
825
|
+
readonly empty: "没有匹配项";
|
|
826
|
+
readonly truncated: "结果可能不全(索引已达上限)";
|
|
827
|
+
};
|
|
828
|
+
readonly pinned: {
|
|
829
|
+
readonly title: "置顶";
|
|
830
|
+
readonly pin: "置顶到侧栏";
|
|
831
|
+
readonly unpin: "取消置顶";
|
|
832
|
+
readonly missing: "这个文件已经不存在了";
|
|
833
|
+
};
|
|
834
|
+
readonly shared: {
|
|
835
|
+
readonly title: "分享给我的";
|
|
836
|
+
readonly open: "打开";
|
|
837
|
+
readonly openWeb: "在网页打开";
|
|
838
|
+
readonly rowTitle: "{{name}} —— 在《{{project}}》里,{{by}} 分享的";
|
|
839
|
+
readonly notInDrive: "{{name}} 不在本地云盘里,去网页版打开";
|
|
840
|
+
readonly landTimeout: "{{name}} 还没同步到本地,稍后再试";
|
|
841
|
+
readonly folderMissing: "{{name}} 还没落到本地,先打开它所在的项目";
|
|
842
|
+
};
|
|
843
|
+
readonly access: {
|
|
844
|
+
readonly request: "申请权限";
|
|
845
|
+
readonly submitted: "已提交申请,通过后会收到通知";
|
|
846
|
+
readonly alreadyPending: "你已经申请过了,正在等待审批";
|
|
847
|
+
readonly cannotResolve: "这一项没法申请权限";
|
|
848
|
+
};
|
|
849
|
+
readonly chatHere: "在这个文件夹里对话";
|
|
850
|
+
};
|
|
851
|
+
readonly settings: {
|
|
852
|
+
readonly webBase: {
|
|
853
|
+
readonly title: "网页端地址";
|
|
854
|
+
readonly desc: "「在网页打开」用的知识库网页地址;留空则用 yup-kb 插件里配置的地址";
|
|
855
|
+
};
|
|
856
|
+
readonly ai: {
|
|
857
|
+
readonly title: "AI 与知识";
|
|
858
|
+
};
|
|
859
|
+
readonly archive: {
|
|
860
|
+
readonly title: "AI 对话归档";
|
|
861
|
+
readonly desc: "勾选即同意:每 5 分钟把本机 alwith 对话(只含你的输入与 AI 的文字回复)上传到公司知识库。对话归它发生的那个项目——在某个云盘项目目录里聊的进那个项目,其余进你自己的个人知识库,别人看不到。会话目录里放一个 <uuid>.private 文件可排除该会话。只上传,不下载、不删本地;对话只在云端,不会同步到任何人的电脑上";
|
|
862
|
+
readonly syncNow: "立即同步";
|
|
863
|
+
readonly syncing: "同步中…";
|
|
864
|
+
readonly lastUpload: "上次上传:{{time}}";
|
|
865
|
+
readonly never: "从未";
|
|
866
|
+
readonly synced: "已归档 {{count}} 个会话";
|
|
867
|
+
};
|
|
868
|
+
readonly knowledge: {
|
|
869
|
+
readonly title: "知识回流到对话";
|
|
870
|
+
readonly desc: "打开 YUP Drive 内的项目时,按 README 的标题 / 专题 / 部门检索公司知识库,把相关沉淀的摘要与链接注入新对话(失败静默,10 分钟缓存)";
|
|
871
|
+
};
|
|
872
|
+
readonly server: {
|
|
873
|
+
readonly title: "服务器地址";
|
|
874
|
+
readonly desc: "知识库服务器 URL,不含 /api/v1";
|
|
875
|
+
};
|
|
876
|
+
readonly ownership: {
|
|
877
|
+
readonly title: "继续使用该目录?";
|
|
878
|
+
readonly description: "{{path}} 已有云盘文件或属于其他配置。继续后将由当前账号接管;现有文件会保留并参与同步,可能上传到当前账号。请先关闭正在同步此目录的其他 App。";
|
|
879
|
+
readonly cancel: "取消";
|
|
880
|
+
readonly continue: "继续";
|
|
881
|
+
};
|
|
882
|
+
readonly login: {
|
|
883
|
+
readonly title: "登录";
|
|
884
|
+
readonly desc: "粘贴个人访问令牌,然后注册此设备";
|
|
885
|
+
readonly tokenPlaceholder: "个人访问令牌";
|
|
886
|
+
readonly register: "注册此设备";
|
|
887
|
+
readonly loading: "已登录 · 正在读取设备信息…";
|
|
888
|
+
readonly loadFailed: "已登录 · 设备信息读取失败";
|
|
889
|
+
readonly registered: "已登录 · 设备 {{deviceId}}";
|
|
890
|
+
readonly unregistered: "已登录 · 设备未注册";
|
|
891
|
+
readonly logout: "退出登录";
|
|
892
|
+
readonly done: "已登录并注册设备";
|
|
893
|
+
};
|
|
894
|
+
readonly sso: {
|
|
895
|
+
readonly title: "SSO 登录";
|
|
896
|
+
readonly desc: "在系统浏览器里用公司账号登录,自动注册此设备";
|
|
897
|
+
readonly open: "SSO 登录";
|
|
898
|
+
readonly waiting: "等待浏览器登录…";
|
|
899
|
+
};
|
|
900
|
+
readonly collab: {
|
|
901
|
+
readonly title: "协同中继";
|
|
902
|
+
readonly desc: "Yjs 中继地址(wss://…);留空则 Drive 内的 .md 只做本地编辑";
|
|
903
|
+
};
|
|
904
|
+
readonly localRoot: {
|
|
905
|
+
readonly title: "本地根目录";
|
|
906
|
+
readonly choose: "选择文件夹";
|
|
907
|
+
};
|
|
908
|
+
readonly pause: {
|
|
909
|
+
readonly title: "暂停同步";
|
|
910
|
+
readonly desc: "停止上传与下载,直到继续";
|
|
911
|
+
};
|
|
912
|
+
readonly roots: {
|
|
913
|
+
readonly title: "已同步的根";
|
|
914
|
+
readonly empty: "没有可用的根";
|
|
915
|
+
readonly readOnly: "只读";
|
|
916
|
+
readonly scope: {
|
|
917
|
+
readonly personal: "我的空间";
|
|
918
|
+
readonly otherPersonal: "他人的个人库";
|
|
919
|
+
readonly dept: "部门";
|
|
920
|
+
readonly team: "团队";
|
|
921
|
+
readonly company: "公司";
|
|
922
|
+
};
|
|
923
|
+
};
|
|
924
|
+
readonly errors: {
|
|
925
|
+
readonly title: "错误队列";
|
|
926
|
+
readonly empty: "没有错误";
|
|
927
|
+
};
|
|
928
|
+
readonly deviceMismatch: "设备不匹配,重新注册此设备";
|
|
929
|
+
readonly guard: {
|
|
930
|
+
readonly title: "同步全部个人库";
|
|
931
|
+
readonly desc: "服务端没有提供个人库归属信息,{{count}} 个个人库区分不出来。关(推荐):只同步你固定的项目;开:全部下载到这台电脑。";
|
|
932
|
+
};
|
|
933
|
+
readonly cleanup: {
|
|
934
|
+
readonly title: "清理未选中的本地副本";
|
|
935
|
+
readonly desc: "把已落盘、但当前不在同步选择集里的项目目录移到本地根同级的暂存目录 —— 是移动不是删除。";
|
|
936
|
+
readonly scan: "扫描";
|
|
937
|
+
readonly nothing: "没什么可清理的:磁盘上的目录都还在同步选择集里。";
|
|
938
|
+
readonly confirm: "把 {{count}} 个目录移到 {{dir}}?是移动不是删除,挪回去即可恢复。";
|
|
939
|
+
readonly move: "移动";
|
|
940
|
+
readonly cancel: "取消";
|
|
941
|
+
readonly done: "已把 {{count}} 个目录移到 {{dir}}";
|
|
942
|
+
readonly skipped: "跳过 {{count}} 个";
|
|
943
|
+
readonly skippedPinned: "已固定 {{count}} 个";
|
|
944
|
+
readonly skippedPending: "有未上传改动 {{count}} 个";
|
|
945
|
+
readonly failed: "{{count}} 个没能移动";
|
|
946
|
+
};
|
|
947
|
+
readonly cloudOnly: {
|
|
948
|
+
readonly title: "重新核对仅云端文件";
|
|
949
|
+
readonly desc: "服务端改了某份文件「能不能下载」的判定时,文件内容并没有变,增量同步收不到通知——本地会一直停在 .yupcloud 占位(或反过来,该收走的内容还留着)。启动后第一轮会自动核对一次;怀疑手上的东西不对就点这里重来。";
|
|
950
|
+
readonly action: "重新核对";
|
|
951
|
+
readonly clean: "{{count}} 个项目核对完毕,没有需要修正的文件";
|
|
952
|
+
};
|
|
953
|
+
readonly skills: {
|
|
954
|
+
readonly title: "已装的部门 Skill";
|
|
955
|
+
readonly empty: "还没有同步下来的 Skill 项目";
|
|
956
|
+
readonly installed: "已装";
|
|
957
|
+
readonly notInstalled: "未同步";
|
|
958
|
+
readonly auto: "自动装(公司级或本部门)";
|
|
959
|
+
readonly manual: "手动固定";
|
|
960
|
+
readonly notAuto: "未自动装(他部门)";
|
|
961
|
+
readonly desc: "SKILL 项目不出现在云盘列表里——它是给机器读的。公司级和你所在部门的会自动装;别的部门的可在云盘面板手动固定。";
|
|
962
|
+
};
|
|
963
|
+
readonly usage: {
|
|
964
|
+
readonly title: "磁盘占用";
|
|
965
|
+
readonly desc: "看看云盘在这台电脑上占了多少、都被谁占了。只是看,不改变任何同步行为。";
|
|
966
|
+
readonly action: "查看";
|
|
967
|
+
readonly total: "共 {{size}},{{count}} 个文件";
|
|
968
|
+
readonly byProject: "占用最多的项目";
|
|
969
|
+
readonly byFile: "占用最多的文件";
|
|
970
|
+
readonly files: "{{count}} 个文件";
|
|
971
|
+
};
|
|
972
|
+
readonly maxAutoDownload: {
|
|
973
|
+
readonly title: "大文件不自动下载";
|
|
974
|
+
readonly desc: "超过这个大小的文件不自动下载,会在文件树里标出来(带文件名和大小),点一下再拉,下完直接打开。填 0 = 全都下载。改动在下一轮同步生效:调大之后,新够得着的文件会自动补下来,不用你逐个去点。";
|
|
975
|
+
readonly unit: "MB";
|
|
976
|
+
};
|
|
977
|
+
readonly advanced: {
|
|
978
|
+
readonly title: "高级(服务器地址)";
|
|
979
|
+
};
|
|
980
|
+
};
|
|
981
|
+
};
|
|
982
|
+
};
|
|
983
|
+
export type DriveLocale = "en" | "zh-CN";
|
|
984
|
+
export type DriveTranslate = (key: string, values?: Record<string, string | number>) => string;
|
|
985
|
+
export declare function driveTranslator(locale?: DriveLocale, namespace?: "common" | "settings"): DriveTranslate;
|