From 8265566522ddc04c7d4158de9930d2ec7f914919 Mon Sep 17 00:00:00 2001 From: Aaron Hogue Date: Fri, 21 Aug 2026 12:40:43 -0400 Subject: [PATCH 1/4] fix(session): make unarchive work and archived sessions findable Archiving was effectively one-way. Two defects meant the clear path could never work, even with UI wired up, and there was no way to find an archived session in order to restore it. Write path: - projector: `time_archived: info.time.archived ?? null`. Drizzle omits undefined keys from `.set()`, so clearing the timestamp never emitted a SQL NULL and the row kept its stale value while the request returned 200. - session update handler: gate on presence of the `time` object instead of `time.archived !== undefined`. A client clearing the field sends `{"time":{}}` because JSON.stringify drops undefined-valued properties, so the old guard skipped setArchived entirely. A title-only PATCH still leaves archived untouched. Restore: - `useSessionArchive()` gains `unarchive`, alongside the existing `archive`. - Session dropdown shows Archive or Unarchive based on state, in both the DropdownMenu and MenuV2 variants. - New `session.unarchive` command. - TUI: ctrl+a toggles from the session list, labelled `archive/unarchive` to match the existing `pin/unpin` convention. - Event reducer increments sessionTotal when an unarchived session re-enters the store, mirroring the existing decrement on archive. Discovery: - Palette search requests archived sessions through experimental.session.list({ archived: true }) and groups them under an "Archived" heading, sorted after active matches. Search-gated, so default lists are unchanged. - TUI session list groups archived sessions under "Archived" rather than interleaving them into date buckets. The category logic is extracted as a pure exported function and covered by tests. Verified: create -> archive -> found only with archived=true -> unarchive via the real client body -> cleared and persisted; title-only PATCH regression checked. tsc clean across app/core/tui/opencode; 76 tests pass. --- .../app/src/components/command-palette.ts | 15 +++++-- .../components/dialog-command-palette-v2.tsx | 4 +- .../src/context/global-sync/event-reducer.ts | 3 ++ packages/app/src/i18n/en.ts | 3 ++ .../app/src/pages/session/session-archive.ts | 17 +++++++- .../session/timeline/message-timeline.tsx | 30 +++++++++++--- .../pages/session/use-session-commands.tsx | 9 +++++ packages/app/src/utils/server-compat.ts | 11 ++++- packages/core/src/session/projector.ts | 5 ++- .../instance/httpapi/handlers/session.ts | 7 +++- .../tui/src/component/dialog-session-list.tsx | 40 +++++++++++++++++-- packages/tui/src/config/keybind.ts | 2 + .../component/dialog-session-list.test.ts | 31 +++++++++++++- 13 files changed, 157 insertions(+), 20 deletions(-) diff --git a/packages/app/src/components/command-palette.ts b/packages/app/src/components/command-palette.ts index 8014ea1c4395..1ea1559c8f24 100644 --- a/packages/app/src/components/command-palette.ts +++ b/packages/app/src/components/command-palette.ts @@ -146,9 +146,11 @@ export function createCommandPaletteModel(props: { filesOnly?: () => boolean; on server: ServerConnection.key(serverSDK.server), opened: serverCtx.projects.list, stored: () => serverCtx.sync.data.project, - load: (search, signal) => serverSDK.api.session.list({ parentID: null, search, limit: 50 }, { signal }), + load: (search, signal) => + serverSDK.api.session.list({ parentID: null, search, limit: 50, archived: true }, { signal }), untitled: () => language.t("command.session.new"), category: () => language.t("command.category.session"), + archivedCategory: () => language.t("command.category.session.archived"), }) const highlight = (item: CommandPaletteEntry | undefined) => { @@ -223,6 +225,7 @@ export function createServerSessionEntries(props: { load: (search: string, signal: AbortSignal) => Promise<{ data: SessionInfo[] }> untitled: () => string category: () => string + archivedCategory: () => string }) { let abort: AbortController | undefined @@ -258,23 +261,27 @@ export function createServerSessionEntries(props: { .then((result) => result.data .map(normalizeSessionInfo) - .filter((session) => !session.time.archived) .map((session) => { const project = projectForSession(session, opened, openedByID) ?? projectForSession(session, stored, storedByID) + const archived = session.time.archived return { id: `session:${props.server}:${session.id}`, type: "session" as const, title: session.title || props.untitled(), description: project ? displayName(project) : getFilename(session.directory), - category: props.category(), + category: archived ? props.archivedCategory() : props.category(), directory: session.directory, sessionID: session.id, server: props.server, project, updated: session.time.updated, + archived, } - }), + }) + // Keep archived matches after active ones so a search never buries a + // live session beneath restored-from-archive results. + .sort((a, b) => Number(!!a.archived) - Number(!!b.archived)), ) .catch(() => [] as CommandPaletteEntry[]) } diff --git a/packages/app/src/components/dialog-command-palette-v2.tsx b/packages/app/src/components/dialog-command-palette-v2.tsx index e996fd0be77c..5629af8652f6 100644 --- a/packages/app/src/components/dialog-command-palette-v2.tsx +++ b/packages/app/src/components/dialog-command-palette-v2.tsx @@ -79,9 +79,11 @@ export function DialogHomeCommandPaletteV2(props: { server: ServerConnection.key(props.server), opened: serverCtx.projects.list, stored: () => serverCtx.sync.data.project, - load: (search, signal) => serverCtx.sdk.api.session.list({ parentID: null, search, limit: 50 }, { signal }), + load: (search, signal) => + serverCtx.sdk.api.session.list({ parentID: null, search, limit: 50, archived: true }, { signal }), untitled: () => language.t("command.session.new"), category: () => language.t("command.category.session"), + archivedCategory: () => language.t("command.category.session.archived"), }) const highlight = (item: CommandPaletteEntry | undefined) => { diff --git a/packages/app/src/context/global-sync/event-reducer.ts b/packages/app/src/context/global-sync/event-reducer.ts index b84d5201cf55..456a0a217b55 100644 --- a/packages/app/src/context/global-sync/event-reducer.ts +++ b/packages/app/src/context/global-sync/event-reducer.ts @@ -169,6 +169,9 @@ export function applyDirectoryEvent(input: { const trimmed = trimSessions(next, { limit, permission: input.permission ?? input.store.permission }) input.setStore("session", reconcile(trimmed, { key: "id" })) cleanupDroppedSessionCaches(input.store, input.setStore, trimmed, input.setSessionTodo) + // Counterpart to the decrement in the archived branch above: an unarchived + // session re-enters the store and must be counted again. + if (!info.parentID) input.setStore("sessionTotal", (value) => value + 1) break } case "session.deleted": { diff --git a/packages/app/src/i18n/en.ts b/packages/app/src/i18n/en.ts index 62d4dc1ae6e9..a377259b5316 100644 --- a/packages/app/src/i18n/en.ts +++ b/packages/app/src/i18n/en.ts @@ -8,6 +8,7 @@ export const dict = { "command.category.provider": "Provider", "command.category.server": "Server", "command.category.session": "Session", + "command.category.session.archived": "Archived", "command.category.theme": "Theme", "command.category.language": "Language", "command.category.file": "File", @@ -38,6 +39,7 @@ export const dict = { "command.session.previous.unseen": "Previous unread session", "command.session.next.unseen": "Next unread session", "command.session.archive": "Archive session", + "command.session.unarchive": "Unarchive session", "command.palette": "Command palette", @@ -814,6 +816,7 @@ export const dict = { "common.export": "Export", "common.reset": "Reset", "common.archive": "Archive", + "common.unarchive": "Unarchive", "common.delete": "Delete", "common.close": "Close", "common.edit": "Edit", diff --git a/packages/app/src/pages/session/session-archive.ts b/packages/app/src/pages/session/session-archive.ts index 5e1314dbd14d..422456402e96 100644 --- a/packages/app/src/pages/session/session-archive.ts +++ b/packages/app/src/pages/session/session-archive.ts @@ -67,5 +67,20 @@ export function useSessionArchive() { }) } - return { archive, navigateAfterRemoval } + const unarchive = async (sessionID: string) => { + if ((await sdk().protocol) !== "v1") return + + // Omitting `archived` clears the timestamp. The request body serializes to + // {"time":{}}, which the server reads as "clear the archive state". + await sdk() + .client.session.update({ sessionID, directory: sdk().directory, time: {} }) + .catch((err) => { + showToast({ + title: language.t("common.requestFailed"), + description: errorMessage(err, language.t("common.requestFailed")), + }) + }) + } + + return { archive, unarchive, navigateAfterRemoval } } diff --git a/packages/app/src/pages/session/timeline/message-timeline.tsx b/packages/app/src/pages/session/timeline/message-timeline.tsx index 18a153d29971..313339ab9f6c 100644 --- a/packages/app/src/pages/session/timeline/message-timeline.tsx +++ b/packages/app/src/pages/session/timeline/message-timeline.tsx @@ -1544,9 +1544,18 @@ export function MessageTimeline(props: { exportSession(id)}> {language.t("common.export")} - void sessionArchive.archive(id)}> - {language.t("common.archive")} - + void sessionArchive.archive(id)}> + {language.t("common.archive")} + + } + > + void sessionArchive.unarchive(id)}> + {language.t("common.unarchive")} + + dialog.show(() => )} @@ -1618,9 +1627,18 @@ export function MessageTimeline(props: { exportSession(id)}> {language.t("common.export")}... - void sessionArchive.archive(id)}> - {language.t("common.archive")} - + void sessionArchive.archive(id)}> + {language.t("common.archive")} + + } + > + void sessionArchive.unarchive(id)}> + {language.t("common.unarchive")} + + dialog.show(() => )}> {language.t("common.delete")}... diff --git a/packages/app/src/pages/session/use-session-commands.tsx b/packages/app/src/pages/session/use-session-commands.tsx index 18d5b172ff17..468e22fe7163 100644 --- a/packages/app/src/pages/session/use-session-commands.tsx +++ b/packages/app/src/pages/session/use-session-commands.tsx @@ -509,6 +509,15 @@ export const useSessionCommands = (actions: SessionCommandContext) => { if (id) void sessionArchive.archive(id) }, }), + sessionCommand({ + id: "session.unarchive", + title: language.t("command.session.unarchive"), + disabled: !params.id, + onSelect: () => { + const id = params.id + if (id) void sessionArchive.unarchive(id) + }, + }), ] const fileCmds = () => { diff --git a/packages/app/src/utils/server-compat.ts b/packages/app/src/utils/server-compat.ts index 1df1338b71e5..6bedd2e86d85 100644 --- a/packages/app/src/utils/server-compat.ts +++ b/packages/app/src/utils/server-compat.ts @@ -20,7 +20,7 @@ type LegacyClient = OpencodeClient type LegacyFor = (directory?: string) => LegacyClient type CompatibleSessionApi = Omit< SessionApi, - "prompt" | "command" | "shell" | "compact" | "rename" | "archive" | "remove" + "prompt" | "command" | "shell" | "compact" | "rename" | "archive" | "remove" | "list" > & { prompt: (input: SessionPromptInput & LegacyPrompt) => Promise command: (input: SessionCommandInput) => Promise @@ -29,6 +29,10 @@ type CompatibleSessionApi = Omit< rename: (input: Parameters[0] & LegacyLocation) => ReturnType // archive: (input: Parameters[0] & LegacyLocation) => ReturnType remove: (input: Parameters[0] & LegacyLocation) => ReturnType + list: ( + input?: Parameters[0] & { parentID?: string | null; archived?: boolean }, + options?: Parameters[1], + ) => ReturnType } type CompatiblePermissionApi = Omit & { reply: ( @@ -138,7 +142,7 @@ function createV1Api(input: CompatibleInput): CompatibleApi { session: { ...input.current.session, async list( - value?: Parameters[0], + value?: Parameters[0] & { parentID?: string | null; archived?: boolean }, options?: Parameters[1], ) { if (!value?.directory && value?.search !== undefined) { @@ -147,6 +151,9 @@ function createV1Api(input: CompatibleInput): CompatibleApi { roots: value.parentID === null ? true : undefined, search: value.search, limit: value.limit, + // Include archived sessions in search results so an archived session + // can be found and restored. Default lists still exclude them. + archived: value.archived ? true : undefined, }, options, ) diff --git a/packages/core/src/session/projector.ts b/packages/core/src/session/projector.ts index 792067017d14..d2f7e412b768 100644 --- a/packages/core/src/session/projector.ts +++ b/packages/core/src/session/projector.ts @@ -70,7 +70,10 @@ function sessionRow(info: SessionV1.SessionInfo): typeof SessionTable.$inferInse time_created: info.time.created, time_updated: info.time.updated, time_compacting: info.time.compacting, - time_archived: info.time.archived, + // Use null rather than undefined so Drizzle emits an explicit SQL NULL when + // a session is unarchived. Drizzle omits undefined keys from .set(), which + // would otherwise leave a stale time_archived value in place. + time_archived: info.time.archived ?? null, } } diff --git a/packages/opencode/src/server/routes/instance/httpapi/handlers/session.ts b/packages/opencode/src/server/routes/instance/httpapi/handlers/session.ts index 662585020a64..9f416fc79368 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/handlers/session.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/handlers/session.ts @@ -197,7 +197,12 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session", permission: Permission.merge(current.permission ?? [], ctx.payload.permission), }) } - if (ctx.payload.time?.archived !== undefined) { + // Presence of the `time` object signals archive intent. An explicit + // archived value archives; an absent value clears it, which is how clients + // unarchive. Checking `time.archived !== undefined` here would make + // unarchive unreachable, since JSON.stringify drops undefined-valued + // properties and the request body arrives as {"time":{}}. + if (ctx.payload.time !== undefined) { yield* session.setArchived({ sessionID: ctx.params.sessionID, time: ctx.payload.time.archived }) } return yield* requireSession(ctx.params.sessionID) diff --git a/packages/tui/src/component/dialog-session-list.tsx b/packages/tui/src/component/dialog-session-list.tsx index c508fc6b7b01..73d2713e4531 100644 --- a/packages/tui/src/component/dialog-session-list.tsx +++ b/packages/tui/src/component/dialog-session-list.tsx @@ -42,6 +42,18 @@ export function loadDialogSessionList(input: { ) } +/** + * Category heading for a session in the list. Archived sessions are grouped + * together so they stay discoverable without being interleaved into the date + * buckets alongside active sessions. + */ +export function dialogSessionListCategory(input: { archived?: number; updated: number; now?: Date }): string { + if (input.archived) return "Archived" + const today = (input.now ?? new Date()).toDateString() + const label = new Date(input.updated).toDateString() + return label === today ? "Today" : label +} + export function DialogSessionList() { const dialog = useDialog() const route = useRoute() @@ -206,7 +218,6 @@ export function DialogSessionList() { }) const options = createMemo(() => { - const today = new Date().toDateString() const sessionMap = new Map( sessions() .filter((x) => x.parentID === undefined) @@ -257,8 +268,7 @@ export function DialogSessionList() { .map((id) => { const x = sessionMap.get(id) if (!x) return undefined - const label = new Date(x.time.updated).toDateString() - return buildOption(id, label === today ? "Today" : label) + return buildOption(id, dialogSessionListCategory({ archived: x.time?.archived, updated: x.time.updated })) }) .filter((x) => x !== undefined) @@ -351,6 +361,30 @@ export function DialogSessionList() { dialog.replace(() => ) }, }, + { + command: "session.archive", + title: "archive/unarchive", + onTrigger: async (option) => { + const session = sessions().find((item) => item.id === option.value) + if (!session) return + const archived = session.time?.archived + await sdk.client.session + .update({ + sessionID: option.value, + // Omitting `archived` clears it; the body serializes to {"time":{}}. + time: archived ? {} : { archived: Date.now() }, + }) + .catch((err) => { + toast.show({ + variant: "error", + title: archived ? "Failed to unarchive session" : "Failed to archive session", + message: errorMessage(err), + }) + }) + await sync.session.refresh() + if (search()) await refetch() + }, + }, ]} footerHints={quickSwitchFooterHints()} /> diff --git a/packages/tui/src/config/keybind.ts b/packages/tui/src/config/keybind.ts index 5dd7e4b5aafe..277168151f00 100644 --- a/packages/tui/src/config/keybind.ts +++ b/packages/tui/src/config/keybind.ts @@ -92,6 +92,7 @@ export const Definitions = { session_fork: keybind("none", "Fork session from message"), session_rename: keybind("ctrl+r", "Rename session"), session_delete: keybind("ctrl+d", "Delete session"), + session_archive: keybind("ctrl+a", "Archive or unarchive session"), session_share: keybind("none", "Share current session"), session_unshare: keybind("none", "Unshare current session"), session_interrupt: keybind("escape", "Interrupt current session"), @@ -299,6 +300,7 @@ export const CommandMap = { session_fork: "session.fork", session_rename: "session.rename", session_delete: "session.delete", + session_archive: "session.archive", session_share: "session.share", session_unshare: "session.unshare", session_interrupt: "session.interrupt", diff --git a/packages/tui/test/component/dialog-session-list.test.ts b/packages/tui/test/component/dialog-session-list.test.ts index 977904799504..b9b07b23b99f 100644 --- a/packages/tui/test/component/dialog-session-list.test.ts +++ b/packages/tui/test/component/dialog-session-list.test.ts @@ -1,5 +1,9 @@ import { describe, expect, test } from "bun:test" -import { createDialogSessionListQuery, loadDialogSessionList } from "../../src/component/dialog-session-list" +import { + createDialogSessionListQuery, + dialogSessionListCategory, + loadDialogSessionList, +} from "../../src/component/dialog-session-list" describe("dialog session list", () => { test("requests root sessions for the default browse list", () => { @@ -43,4 +47,29 @@ describe("dialog session list", () => { }), ).toBeUndefined() }) + + describe("category", () => { + const now = new Date("2026-08-18T12:00:00Z") + + test("groups archived sessions under Archived", () => { + expect(dialogSessionListCategory({ archived: 1700000000000, updated: now.getTime(), now })).toBe("Archived") + }) + + test("archived wins over the date bucket even when updated today", () => { + expect(dialogSessionListCategory({ archived: now.getTime(), updated: now.getTime(), now })).toBe("Archived") + }) + + test("groups sessions updated today under Today", () => { + expect(dialogSessionListCategory({ updated: now.getTime(), now })).toBe("Today") + }) + + test("groups older sessions under their date", () => { + const older = new Date("2026-08-15T09:00:00Z") + expect(dialogSessionListCategory({ updated: older.getTime(), now })).toBe(older.toDateString()) + }) + + test("treats a missing archived timestamp as active", () => { + expect(dialogSessionListCategory({ archived: undefined, updated: now.getTime(), now })).toBe("Today") + }) + }) }) From b69f68be4593e385d7986e3caf362b422212e23a Mon Sep 17 00:00:00 2001 From: Aaron Hogue Date: Fri, 21 Aug 2026 13:01:48 -0400 Subject: [PATCH 2/4] fix(tui): label the archive action from the highlighted session MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The footer read a static "archive" even when an archived session was highlighted, so nothing indicated that ctrl+a would restore it. Widening it to "archive/unarchive" fixed the ambiguity but wrapped onto a second line at common terminal widths and pushed the quick-switch hint with it. Let DialogSelect actions derive their title from the highlighted option, the same way `disabled` already can. The session list now shows "archive" or "unarchive" — shorter than either static form, and unambiguous about what the key will do. Existing callers pass plain strings and are unaffected. --- packages/tui/src/component/dialog-session-list.tsx | 5 ++++- packages/tui/src/ui/dialog-select.tsx | 14 ++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/tui/src/component/dialog-session-list.tsx b/packages/tui/src/component/dialog-session-list.tsx index 73d2713e4531..43591ed451d7 100644 --- a/packages/tui/src/component/dialog-session-list.tsx +++ b/packages/tui/src/component/dialog-session-list.tsx @@ -363,7 +363,10 @@ export function DialogSessionList() { }, { command: "session.archive", - title: "archive/unarchive", + // Label reflects what ctrl+a will do to the highlighted session, which is + // both shorter than a static "archive/unarchive" and unambiguous. + title: (option) => + option && sessions().find((item) => item.id === option.value)?.time?.archived ? "unarchive" : "archive", onTrigger: async (option) => { const session = sessions().find((item) => item.id === option.value) if (!session) return diff --git a/packages/tui/src/ui/dialog-select.tsx b/packages/tui/src/ui/dialog-select.tsx index df2913ede08c..4ddd33e9791d 100644 --- a/packages/tui/src/ui/dialog-select.tsx +++ b/packages/tui/src/ui/dialog-select.tsx @@ -38,7 +38,7 @@ export interface DialogSelectProps { preserveSelection?: boolean actions?: { command: string - title: string + title: string | ((option: DialogSelectOption | undefined) => string) side?: "left" | "right" hidden?: boolean disabled?: boolean | ((option: DialogSelectOption | undefined) => boolean) @@ -435,7 +435,7 @@ export function DialogSelect(props: DialogSelectProps) { }, ...visible.map((item) => ({ name: item.command, - title: item.title, + title: actionTitle(item), category: "Dialog", run() { if (props.locked) return @@ -517,6 +517,12 @@ export function DialogSelect(props: DialogSelectProps) { return typeof item.disabled === "function" ? item.disabled(selected()) : item.disabled } + // Actions may label themselves from the highlighted option, so a toggle can read + // "archive" or "unarchive" instead of a static both-ways label. + function actionTitle(item: { title: Action["title"] }) { + return typeof item.title === "function" ? item.title(selected()) : item.title + } + function isActionFocused(item: VisibleAction) { if (props.locked) return false if (!isActionItem(item)) return false @@ -528,7 +534,7 @@ export function DialogSelect(props: DialogSelectProps) { return ( - {action.item.title}{" "} + {actionTitle(action.item)}{" "} {action.item.label} @@ -547,7 +553,7 @@ export function DialogSelect(props: DialogSelectProps) { fg={disabled() ? theme.textMuted : active() ? fg : theme.text} attributes={active() ? TextAttributes.BOLD : undefined} > - {item.title} + {actionTitle(item)} {item.label} From cb62caa8505445100620c5468191dd58823f9a9c Mon Sep 17 00:00:00 2001 From: Aaron Hogue Date: Fri, 21 Aug 2026 13:47:26 -0400 Subject: [PATCH 3/4] fix(session): address review on counting, archived precision, and coverage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-ups from review of the unarchive change. sessionTotal could drift upward. The increment fired for any session.updated whose session was absent from the local store, but a session trimmed out by the window limit is still counted in sessionTotal, so an unrelated update to one inflated the total. Only count a session that actually widened the window. A genuine unarchive while the store is already at its limit now leaves the total untouched rather than over-counting; the next server fetch reconciles it. ArchivedTimestamp is Schema.Finite and deliberately accepts 0 and negative values for legacy compatibility, so truthiness misclassifies those as active. Test presence instead, matching the existing check in home-session-index.ts. Affects the TUI category and toggle (where a session archived at 0 would have been re-archived rather than restored), the dropdown menus, and palette grouping. Covered by tests for 0 and -1. Add integration coverage for the two core fixes. Archiving then sending `{"time":{}}` clears the timestamp and the cleared state survives a re-read, which exercises the handler guard and the projector's explicit null together — a unit test on either alone would not have caught the original defect. A second test asserts a title-only PATCH leaves the timestamp intact. The command palette no longer offers both Archive and Unarchive; each is gated on the current session's state, matching the dropdown and TUI. --- .../app/src/components/command-palette.ts | 2 +- .../src/context/global-sync/event-reducer.ts | 9 ++- .../session/timeline/message-timeline.tsx | 4 +- .../pages/session/use-session-commands.tsx | 8 ++- packages/app/src/utils/server-compat.ts | 3 + .../test/server/httpapi-session.test.ts | 60 +++++++++++++++++++ .../tui/src/component/dialog-session-list.tsx | 12 ++-- .../component/dialog-session-list.test.ts | 10 ++++ 8 files changed, 96 insertions(+), 12 deletions(-) diff --git a/packages/app/src/components/command-palette.ts b/packages/app/src/components/command-palette.ts index 1ea1559c8f24..578f5e424c50 100644 --- a/packages/app/src/components/command-palette.ts +++ b/packages/app/src/components/command-palette.ts @@ -264,7 +264,7 @@ export function createServerSessionEntries(props: { .map((session) => { const project = projectForSession(session, opened, openedByID) ?? projectForSession(session, stored, storedByID) - const archived = session.time.archived + const archived = typeof session.time.archived === "number" ? session.time.archived : undefined return { id: `session:${props.server}:${session.id}`, type: "session" as const, diff --git a/packages/app/src/context/global-sync/event-reducer.ts b/packages/app/src/context/global-sync/event-reducer.ts index 456a0a217b55..b048830e43bf 100644 --- a/packages/app/src/context/global-sync/event-reducer.ts +++ b/packages/app/src/context/global-sync/event-reducer.ts @@ -167,11 +167,14 @@ export function applyDirectoryEvent(input: { const next = input.store.session.slice() next.splice(result.index, 0, info) const trimmed = trimSessions(next, { limit, permission: input.permission ?? input.store.permission }) + const grew = trimmed.length > input.store.session.length input.setStore("session", reconcile(trimmed, { key: "id" })) cleanupDroppedSessionCaches(input.store, input.setStore, trimmed, input.setSessionTodo) - // Counterpart to the decrement in the archived branch above: an unarchived - // session re-enters the store and must be counted again. - if (!info.parentID) input.setStore("sessionTotal", (value) => value + 1) + // Counterpart to the decrement in the archived branch above. Only count a + // session that genuinely widened the window: a session trimmed out by the + // limit is still included in sessionTotal, so an unrelated update to one + // would otherwise inflate the count on every event. + if (!info.parentID && grew) input.setStore("sessionTotal", (value) => value + 1) break } case "session.deleted": { diff --git a/packages/app/src/pages/session/timeline/message-timeline.tsx b/packages/app/src/pages/session/timeline/message-timeline.tsx index 313339ab9f6c..900b8dce0f30 100644 --- a/packages/app/src/pages/session/timeline/message-timeline.tsx +++ b/packages/app/src/pages/session/timeline/message-timeline.tsx @@ -1545,7 +1545,7 @@ export function MessageTimeline(props: { {language.t("common.export")} void sessionArchive.archive(id)}> {language.t("common.archive")} @@ -1628,7 +1628,7 @@ export function MessageTimeline(props: { {language.t("common.export")}... void sessionArchive.archive(id)}> {language.t("common.archive")} diff --git a/packages/app/src/pages/session/use-session-commands.tsx b/packages/app/src/pages/session/use-session-commands.tsx index 468e22fe7163..420385bd0218 100644 --- a/packages/app/src/pages/session/use-session-commands.tsx +++ b/packages/app/src/pages/session/use-session-commands.tsx @@ -76,6 +76,8 @@ export const useSessionCommands = (actions: SessionCommandContext) => { if (!id) return return sync().session.get(id) } + // ArchivedTimestamp permits 0 and negative values, so test presence. + const isArchived = () => typeof info()?.time?.archived === "number" const hasReview = () => !!params.id const normalizeTab = (tab: string) => { if (!tab.startsWith("file://")) return tab @@ -503,7 +505,9 @@ export const useSessionCommands = (actions: SessionCommandContext) => { id: "session.archive", title: language.t("command.session.archive"), keybind: "mod+shift+backspace", - disabled: !params.id, + // Only one of archive/unarchive applies to the current session, so the + // palette offers whichever matches its state rather than both. + disabled: !params.id || isArchived(), onSelect: () => { const id = params.id if (id) void sessionArchive.archive(id) @@ -512,7 +516,7 @@ export const useSessionCommands = (actions: SessionCommandContext) => { sessionCommand({ id: "session.unarchive", title: language.t("command.session.unarchive"), - disabled: !params.id, + disabled: !params.id || !isArchived(), onSelect: () => { const id = params.id if (id) void sessionArchive.unarchive(id) diff --git a/packages/app/src/utils/server-compat.ts b/packages/app/src/utils/server-compat.ts index 6bedd2e86d85..ccc09ce5d5d4 100644 --- a/packages/app/src/utils/server-compat.ts +++ b/packages/app/src/utils/server-compat.ts @@ -29,6 +29,9 @@ type CompatibleSessionApi = Omit< rename: (input: Parameters[0] & LegacyLocation) => ReturnType // archive: (input: Parameters[0] & LegacyLocation) => ReturnType remove: (input: Parameters[0] & LegacyLocation) => ReturnType + // `archived` is only honoured on the search path, which routes to + // /experimental/session — the only list endpoint that accepts it. Directory + // listings intentionally ignore it so default lists stay archive-free. list: ( input?: Parameters[0] & { parentID?: string | null; archived?: boolean }, options?: Parameters[1], diff --git a/packages/opencode/test/server/httpapi-session.test.ts b/packages/opencode/test/server/httpapi-session.test.ts index 9d7643cb3309..13343162ff1e 100644 --- a/packages/opencode/test/server/httpapi-session.test.ts +++ b/packages/opencode/test/server/httpapi-session.test.ts @@ -844,6 +844,66 @@ describe("session HttpApi", () => { { git: true, config: { formatter: false, lsp: false } }, ) + it.instance( + "clears the archived timestamp when time is sent without it", + () => + Effect.gen(function* () { + const test = yield* TestInstance + const headers = { "x-opencode-directory": test.directory, "content-type": "application/json" } + const session = yield* createSession({ title: "unarchive" }) + const path = pathFor(SessionPaths.update, { sessionID: session.id }) + + const archived = yield* requestJson(path, { + method: "PATCH", + headers, + body: JSON.stringify({ time: { archived: 1 } }), + }) + expect(archived.time.archived).toBe(1) + + // Clients clear the field by omitting it; JSON.stringify drops + // undefined-valued properties, so the body arrives as {"time":{}}. + const cleared = yield* requestJson(path, { + method: "PATCH", + headers, + body: JSON.stringify({ time: {} }), + }) + expect(cleared.time.archived).toBeUndefined() + + // Re-read so a stale value written to the row would surface here. + const reread = yield* requestJson(pathFor(SessionPaths.get, { sessionID: session.id }), { + headers, + }) + expect(reread.time.archived).toBeUndefined() + }), + { git: true, config: { formatter: false, lsp: false } }, + ) + + it.instance( + "leaves the archived timestamp untouched when time is absent", + () => + Effect.gen(function* () { + const test = yield* TestInstance + const headers = { "x-opencode-directory": test.directory, "content-type": "application/json" } + const session = yield* createSession({ title: "archived" }) + const path = pathFor(SessionPaths.update, { sessionID: session.id }) + + yield* requestJson(path, { + method: "PATCH", + headers, + body: JSON.stringify({ time: { archived: 1 } }), + }) + + const renamed = yield* requestJson(path, { + method: "PATCH", + headers, + body: JSON.stringify({ title: "renamed" }), + }) + expect(renamed.title).toBe("renamed") + expect(renamed.time.archived).toBe(1) + }), + { git: true, config: { formatter: false, lsp: false } }, + ) + it.instance( "uses project-scoped path and directory precedence", () => diff --git a/packages/tui/src/component/dialog-session-list.tsx b/packages/tui/src/component/dialog-session-list.tsx index 43591ed451d7..d0cfd7c101c0 100644 --- a/packages/tui/src/component/dialog-session-list.tsx +++ b/packages/tui/src/component/dialog-session-list.tsx @@ -48,7 +48,9 @@ export function loadDialogSessionList(input: { * buckets alongside active sessions. */ export function dialogSessionListCategory(input: { archived?: number; updated: number; now?: Date }): string { - if (input.archived) return "Archived" + // ArchivedTimestamp permits 0 and negative values for legacy compatibility, so + // presence must be tested rather than truthiness. + if (typeof input.archived === "number") return "Archived" const today = (input.now ?? new Date()).toDateString() const label = new Date(input.updated).toDateString() return label === today ? "Today" : label @@ -365,12 +367,14 @@ export function DialogSessionList() { command: "session.archive", // Label reflects what ctrl+a will do to the highlighted session, which is // both shorter than a static "archive/unarchive" and unambiguous. - title: (option) => - option && sessions().find((item) => item.id === option.value)?.time?.archived ? "unarchive" : "archive", + title: (option) => { + const session = option ? sessions().find((item) => item.id === option.value) : undefined + return typeof session?.time?.archived === "number" ? "unarchive" : "archive" + }, onTrigger: async (option) => { const session = sessions().find((item) => item.id === option.value) if (!session) return - const archived = session.time?.archived + const archived = typeof session.time?.archived === "number" await sdk.client.session .update({ sessionID: option.value, diff --git a/packages/tui/test/component/dialog-session-list.test.ts b/packages/tui/test/component/dialog-session-list.test.ts index b9b07b23b99f..2692a4538a25 100644 --- a/packages/tui/test/component/dialog-session-list.test.ts +++ b/packages/tui/test/component/dialog-session-list.test.ts @@ -71,5 +71,15 @@ describe("dialog session list", () => { test("treats a missing archived timestamp as active", () => { expect(dialogSessionListCategory({ archived: undefined, updated: now.getTime(), now })).toBe("Today") }) + + // ArchivedTimestamp is Schema.Finite and accepts 0 and negatives for legacy + // compatibility, so a truthiness check would misreport these as active. + test("treats a zero archived timestamp as archived", () => { + expect(dialogSessionListCategory({ archived: 0, updated: now.getTime(), now })).toBe("Archived") + }) + + test("treats a negative archived timestamp as archived", () => { + expect(dialogSessionListCategory({ archived: -1, updated: now.getTime(), now })).toBe("Archived") + }) }) }) From 1a6c2e0886331233e0e874215b51d627d0be9be5 Mon Sep 17 00:00:00 2001 From: Aaron Hogue Date: Fri, 21 Aug 2026 14:29:31 -0400 Subject: [PATCH 4/4] fix(app): translate the new unarchive strings into every locale src/i18n/parity.test.ts requires each non-English dictionary to carry every English key, so adding the three unarchive strings to en.ts alone failed CI. Type-level parity was not enough: locale files are typed `satisfies Partial>` and compiled fine while the parity test failed. Adds common.unarchive, command.session.unarchive, and command.category.session.archived to all 61 locales, each placed next to its existing archive counterpart and worded to match the terminology that locale already uses for "archive". --- packages/app/src/i18n/am.ts | 3 +++ packages/app/src/i18n/ar.ts | 3 +++ packages/app/src/i18n/az.ts | 3 +++ packages/app/src/i18n/bg.ts | 3 +++ packages/app/src/i18n/bn.ts | 3 +++ packages/app/src/i18n/br.ts | 3 +++ packages/app/src/i18n/bs.ts | 3 +++ packages/app/src/i18n/ca.ts | 3 +++ packages/app/src/i18n/cs.ts | 3 +++ packages/app/src/i18n/da.ts | 3 +++ packages/app/src/i18n/de.ts | 3 +++ packages/app/src/i18n/dv.ts | 3 +++ packages/app/src/i18n/dz.ts | 3 +++ packages/app/src/i18n/el.ts | 3 +++ packages/app/src/i18n/es.ts | 3 +++ packages/app/src/i18n/et.ts | 3 +++ packages/app/src/i18n/fa.ts | 3 +++ packages/app/src/i18n/fi.ts | 3 +++ packages/app/src/i18n/fo.ts | 3 +++ packages/app/src/i18n/fr.ts | 3 +++ packages/app/src/i18n/hi.ts | 3 +++ packages/app/src/i18n/hr.ts | 3 +++ packages/app/src/i18n/hu.ts | 3 +++ packages/app/src/i18n/hy.ts | 3 +++ packages/app/src/i18n/id.ts | 3 +++ packages/app/src/i18n/is.ts | 3 +++ packages/app/src/i18n/it.ts | 3 +++ packages/app/src/i18n/ja.ts | 3 +++ packages/app/src/i18n/ka.ts | 3 +++ packages/app/src/i18n/km.ts | 3 +++ packages/app/src/i18n/ko.ts | 3 +++ packages/app/src/i18n/lo.ts | 3 +++ packages/app/src/i18n/lt.ts | 3 +++ packages/app/src/i18n/lv.ts | 3 +++ packages/app/src/i18n/mk.ts | 3 +++ packages/app/src/i18n/mn.ts | 3 +++ packages/app/src/i18n/ms.ts | 3 +++ packages/app/src/i18n/my.ts | 3 +++ packages/app/src/i18n/ne.ts | 3 +++ packages/app/src/i18n/nl.ts | 3 +++ packages/app/src/i18n/no.ts | 3 +++ packages/app/src/i18n/pa.ts | 3 +++ packages/app/src/i18n/pl.ts | 3 +++ packages/app/src/i18n/ro.ts | 3 +++ packages/app/src/i18n/ru.ts | 3 +++ packages/app/src/i18n/si.ts | 3 +++ packages/app/src/i18n/sk.ts | 3 +++ packages/app/src/i18n/sl.ts | 3 +++ packages/app/src/i18n/sq.ts | 3 +++ packages/app/src/i18n/sr.ts | 3 +++ packages/app/src/i18n/sv.ts | 3 +++ packages/app/src/i18n/tg.ts | 3 +++ packages/app/src/i18n/th.ts | 3 +++ packages/app/src/i18n/tk.ts | 3 +++ packages/app/src/i18n/tr.ts | 3 +++ packages/app/src/i18n/uk.ts | 3 +++ packages/app/src/i18n/ur.ts | 3 +++ packages/app/src/i18n/uz.ts | 3 +++ packages/app/src/i18n/vi.ts | 3 +++ packages/app/src/i18n/zh.ts | 3 +++ packages/app/src/i18n/zht.ts | 3 +++ 61 files changed, 183 insertions(+) diff --git a/packages/app/src/i18n/am.ts b/packages/app/src/i18n/am.ts index bda48350e532..a9ddaffef81e 100644 --- a/packages/app/src/i18n/am.ts +++ b/packages/app/src/i18n/am.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "አቅራቢ", "command.category.server": "አገልጋይ", "command.category.session": "ክፍለ ጊዜ", + "command.category.session.archived": "በማህደር የተቀመጡ", "command.category.theme": "ገጽታ", "command.category.language": "ቋንቋ", "command.category.file": "ፋይል", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "ያለፈው ያልተነበበ ክፍለ ጊዜ", "command.session.next.unseen": "ቀጣይ ያልተነበበ ክፍለ ጊዜ", "command.session.archive": "ክፍለ ጊዜን በማህደር አስቀምጥ", + "command.session.unarchive": "ክፍለ ጊዜን ከማህደር አውጣ", "command.palette": "የትእዛዝ ቤተ-ስዕል", "command.theme.cycle": "የዑደት ጭብጥ", "command.theme.set": "ገጽታ ይጠቀሙ፡ {{theme}}", @@ -822,6 +824,7 @@ export const dict = { "common.export": "ላክ", "common.reset": "ዳግም አስጀምር", "common.archive": "በማህደር አስቀምጥ", + "common.unarchive": "ከማህደር አውጣ", "common.delete": "ሰርዝ", "common.close": "ዝጋ", "common.edit": "አርትዕ", diff --git a/packages/app/src/i18n/ar.ts b/packages/app/src/i18n/ar.ts index 3f55b3084088..f26196991df7 100644 --- a/packages/app/src/i18n/ar.ts +++ b/packages/app/src/i18n/ar.ts @@ -103,6 +103,7 @@ export const dict = { "command.category.provider": "موفر", "command.category.server": "خادم", "command.category.session": "جلسة", + "command.category.session.archived": "المؤرشفة", "command.category.theme": "سمة", "command.category.language": "لغة", "command.category.file": "ملف", @@ -131,6 +132,7 @@ export const dict = { "command.session.previous.unseen": "الجلسة غير المقروءة السابقة", "command.session.next.unseen": "الجلسة غير المقروءة التالية", "command.session.archive": "أرشفة الجلسة", + "command.session.unarchive": "إلغاء أرشفة الجلسة", "command.palette": "لوحة الأوامر", "command.theme.cycle": "تغيير السمة", "command.theme.set": "استخدام السمة: {{theme}}", @@ -808,6 +810,7 @@ export const dict = { "common.export": "تصدير", "common.reset": "إعادة تعيين", "common.archive": "أرشفة", + "common.unarchive": "إلغاء الأرشفة", "common.delete": "حذف", "common.close": "إغلاق", "common.edit": "تحرير", diff --git a/packages/app/src/i18n/az.ts b/packages/app/src/i18n/az.ts index d818ae57fd6c..43c5b15221f4 100644 --- a/packages/app/src/i18n/az.ts +++ b/packages/app/src/i18n/az.ts @@ -99,6 +99,7 @@ export const dict = { "command.category.provider": "Provayder", "command.category.server": "Server", "command.category.session": "Sessiya", + "command.category.session.archived": "Arxivlənmiş", "command.category.theme": "Mövzu", "command.category.language": "Dil", "command.category.file": "Fayl", @@ -127,6 +128,7 @@ export const dict = { "command.session.previous.unseen": "Əvvəlki oxunmamış sessiya", "command.session.next.unseen": "Növbəti oxunmamış sessiya", "command.session.archive": "Sessiyanı arxivlə", + "command.session.unarchive": "Sessiyanı arxivdən çıxar", "command.palette": "Əmr paneli", "command.theme.cycle": "Mövzunu dəyiş", "command.theme.set": "Mövzudan istifadə et: {{theme}}", @@ -847,6 +849,7 @@ export const dict = { "common.export": "İxrac et", "common.reset": "Sıfırla", "common.archive": "Arxivlə", + "common.unarchive": "Arxivdən çıxar", "common.delete": "Sil", "common.close": "Bağla", "common.edit": "Redaktə et", diff --git a/packages/app/src/i18n/bg.ts b/packages/app/src/i18n/bg.ts index 7f63d1fa4b3e..a92e433c5757 100644 --- a/packages/app/src/i18n/bg.ts +++ b/packages/app/src/i18n/bg.ts @@ -99,6 +99,7 @@ export const dict = { "command.category.provider": "Доставчик", "command.category.server": "сървър", "command.category.session": "Сесия", + "command.category.session.archived": "Архивирани", "command.category.theme": "Тема", "command.category.language": "език", "command.category.file": "Файл", @@ -127,6 +128,7 @@ export const dict = { "command.session.previous.unseen": "Предишна непрочетена сесия", "command.session.next.unseen": "Следваща непрочетена сесия", "command.session.archive": "Архивна сесия", + "command.session.unarchive": "Разархивиране на сесия", "command.palette": "Командна палитра", "command.theme.cycle": "Тема за цикъл", "command.theme.set": "Използвайте тема: {{theme}}", @@ -844,6 +846,7 @@ export const dict = { "common.export": "Експортиране", "common.reset": "Нулиране", "common.archive": "Архив", + "common.unarchive": "Разархивиране", "common.delete": "Изтриване", "common.close": "затвори", "common.edit": "Редактиране", diff --git a/packages/app/src/i18n/bn.ts b/packages/app/src/i18n/bn.ts index 5f0698ab64f1..dde38cbcaa36 100644 --- a/packages/app/src/i18n/bn.ts +++ b/packages/app/src/i18n/bn.ts @@ -98,6 +98,7 @@ export const dict: Record = { "command.category.provider": "প্রদানকারী", "command.category.server": "সার্ভার", "command.category.session": "সেশন", + "command.category.session.archived": "আর্কাইভ করা", "command.category.theme": "থিম", "command.category.language": "ভাষা", "command.category.file": "ফাইল", @@ -126,6 +127,7 @@ export const dict: Record = { "command.session.previous.unseen": "পূর্ববর্তী অপঠিত সেশন", "command.session.next.unseen": "পরবর্তী অপঠিত সেশন", "command.session.archive": "আর্কাইভ সেশন", + "command.session.unarchive": "সেশন আর্কাইভ থেকে ফেরান", "command.palette": "কমান্ড প্যালেট", "command.theme.cycle": "সাইকেল থিম", "command.theme.set": "থিম ব্যবহার করুন: {{theme}}", @@ -837,6 +839,7 @@ export const dict: Record = { "common.export": "রপ্তানি", "common.reset": "রিসেট করুন", "common.archive": "সংরক্ষণাগার", + "common.unarchive": "আর্কাইভ থেকে ফেরান", "common.delete": "মুছে দিন", "common.close": "বন্ধ", "common.edit": "সম্পাদনা করুন", diff --git a/packages/app/src/i18n/br.ts b/packages/app/src/i18n/br.ts index 09da845ccb53..43b131c3a12c 100644 --- a/packages/app/src/i18n/br.ts +++ b/packages/app/src/i18n/br.ts @@ -105,6 +105,7 @@ export const dict = { "command.category.provider": "Provedor", "command.category.server": "Servidor", "command.category.session": "Sessão", + "command.category.session.archived": "Arquivadas", "command.category.theme": "Tema", "command.category.language": "Idioma", "command.category.file": "Arquivo", @@ -133,6 +134,7 @@ export const dict = { "command.session.previous.unseen": "Sessão não lida anterior", "command.session.next.unseen": "Próxima sessão não lida", "command.session.archive": "Arquivar sessão", + "command.session.unarchive": "Desarquivar sessão", "command.palette": "Paleta de comandos", "command.theme.cycle": "Alternar tema", "command.theme.set": "Usar tema: {{theme}}", @@ -811,6 +813,7 @@ export const dict = { "common.export": "Exportar", "common.reset": "Redefinir", "common.archive": "Arquivar", + "common.unarchive": "Desarquivar", "common.delete": "Excluir", "common.close": "Fechar", "common.edit": "Editar", diff --git a/packages/app/src/i18n/bs.ts b/packages/app/src/i18n/bs.ts index feb41c651a87..9340cacc5639 100644 --- a/packages/app/src/i18n/bs.ts +++ b/packages/app/src/i18n/bs.ts @@ -105,6 +105,7 @@ export const dict = { "command.category.provider": "Provajder", "command.category.server": "Server", "command.category.session": "Sesija", + "command.category.session.archived": "Arhivirano", "command.category.theme": "Tema", "command.category.language": "Jezik", "command.category.file": "Datoteka", @@ -135,6 +136,7 @@ export const dict = { "command.session.previous.unseen": "Prethodna nepročitana sesija", "command.session.next.unseen": "Sljedeća nepročitana sesija", "command.session.archive": "Arhiviraj sesiju", + "command.session.unarchive": "Vrati sesiju iz arhive", "command.palette": "Paleta komandi", @@ -871,6 +873,7 @@ export const dict = { "common.export": "Izvezi", "common.reset": "Vrati na početno stanje", "common.archive": "Arhiviraj", + "common.unarchive": "Vrati iz arhive", "common.delete": "Izbriši", "common.close": "Zatvori", "common.edit": "Uredi", diff --git a/packages/app/src/i18n/ca.ts b/packages/app/src/i18n/ca.ts index 21ad325607a6..9bdd841bc48f 100644 --- a/packages/app/src/i18n/ca.ts +++ b/packages/app/src/i18n/ca.ts @@ -99,6 +99,7 @@ export const dict = { "command.category.provider": "Proveïdor", "command.category.server": "Servidor", "command.category.session": "Sessió", + "command.category.session.archived": "Arxivades", "command.category.theme": "Tema", "command.category.language": "Llengua", "command.category.file": "Fitxer", @@ -127,6 +128,7 @@ export const dict = { "command.session.previous.unseen": "Sessió anterior sense llegir", "command.session.next.unseen": "Pròxima sessió sense llegir", "command.session.archive": "Sessió d'arxiu", + "command.session.unarchive": "Desarxiva la sessió", "command.palette": "Paleta de comandaments", "command.theme.cycle": "Temàtica del cicle", "command.theme.set": "Utilitza el tema: {{theme}}", @@ -848,6 +850,7 @@ export const dict = { "common.export": "Exporta", "common.reset": "Restableix", "common.archive": "Arxiu", + "common.unarchive": "Desarxiva", "common.delete": "Suprimeix", "common.close": "Tancar", "common.edit": "Edita", diff --git a/packages/app/src/i18n/cs.ts b/packages/app/src/i18n/cs.ts index d79d4eb5a7f8..567ce502c146 100644 --- a/packages/app/src/i18n/cs.ts +++ b/packages/app/src/i18n/cs.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "Poskytovatel", "command.category.server": "Server", "command.category.session": "Relace", + "command.category.session.archived": "Archivované", "command.category.theme": "téma", "command.category.language": "Jazyk", "command.category.file": "Soubor", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "Předchozí nepřečtená relace", "command.session.next.unseen": "Další nepřečtená relace", "command.session.archive": "Archivní relace", + "command.session.unarchive": "Zrušit archivaci sezení", "command.palette": "Paleta příkazů", "command.theme.cycle": "Téma cyklu", "command.theme.set": "Použít motiv: {{theme}}", @@ -843,6 +845,7 @@ export const dict = { "common.export": "Exportovat", "common.reset": "Resetovat", "common.archive": "Archiv", + "common.unarchive": "Zrušit archivaci", "common.delete": "Odstranit", "common.close": "Zavřít", "common.edit": "Upravit", diff --git a/packages/app/src/i18n/da.ts b/packages/app/src/i18n/da.ts index 87737b094240..ab8fd362ccc1 100644 --- a/packages/app/src/i18n/da.ts +++ b/packages/app/src/i18n/da.ts @@ -5,6 +5,7 @@ export const dict = { "command.category.provider": "Udbyder", "command.category.server": "Server", "command.category.session": "Session", + "command.category.session.archived": "Arkiverede", "command.category.theme": "Tema", "command.category.language": "Sprog", "command.category.file": "Fil", @@ -34,6 +35,7 @@ export const dict = { "command.session.previous.unseen": "Forrige ulæste session", "command.session.next.unseen": "Næste ulæste session", "command.session.archive": "Arkivér session", + "command.session.unarchive": "Fjern session fra arkiv", "command.palette": "Kommandopalette", @@ -748,6 +750,7 @@ export const dict = { "common.export": "Eksportér", "common.reset": "Nulstil", "common.archive": "Arkivér", + "common.unarchive": "Fjern fra arkiv", "common.delete": "Slet", "common.close": "Luk", "common.edit": "Rediger", diff --git a/packages/app/src/i18n/de.ts b/packages/app/src/i18n/de.ts index 00849598c5c5..e1dd48db8e5f 100644 --- a/packages/app/src/i18n/de.ts +++ b/packages/app/src/i18n/de.ts @@ -9,6 +9,7 @@ export const dict = { "command.category.provider": "Anbieter", "command.category.server": "Server", "command.category.session": "Sitzung", + "command.category.session.archived": "Archiviert", "command.category.theme": "Thema", "command.category.language": "Sprache", "command.category.file": "Datei", @@ -36,6 +37,7 @@ export const dict = { "command.session.previous.unseen": "Vorherige ungelesene Sitzung", "command.session.next.unseen": "Nächste ungelesene Sitzung", "command.session.archive": "Sitzung archivieren", + "command.session.unarchive": "Archivierung der Sitzung aufheben", "command.palette": "Befehlspalette", "command.theme.cycle": "Thema wechseln", "command.theme.set": "Thema verwenden: {{theme}}", @@ -701,6 +703,7 @@ export const dict = { "common.export": "Exportieren", "common.reset": "Zurücksetzen", "common.archive": "Archivieren", + "common.unarchive": "Archivierung aufheben", "common.delete": "Löschen", "common.close": "Schließen", "common.edit": "Bearbeiten", diff --git a/packages/app/src/i18n/dv.ts b/packages/app/src/i18n/dv.ts index 27b5fea86999..6e4351d488e3 100644 --- a/packages/app/src/i18n/dv.ts +++ b/packages/app/src/i18n/dv.ts @@ -100,6 +100,7 @@ export const dict = { "command.category.provider": "ޕްރޮވައިޑަރެވެ", "command.category.server": "ސަރވަރ އެވެ", "command.category.session": "ސެޝަން", + "command.category.session.archived": "އަރުޝީވުކޮށްފައި", "command.category.theme": "ތީމް", "command.category.language": "ބަސް", "command.category.file": "ފައިލް", @@ -128,6 +129,7 @@ export const dict = { "command.session.previous.unseen": "ކުރީގެ ނުކިޔާ ސެޝަން", "command.session.next.unseen": "ދެން ނުކިޔާ ސެޝަން", "command.session.archive": "އަރުޝީފް ސެޝަން", + "command.session.unarchive": "ސެޝަން އަރުޝީވުން ނަގާ", "command.palette": "ކޮމާންޑް ޕެލެޓް", "command.theme.cycle": "ސައިކަލް ތީމް", "command.theme.set": "ތީމް ބޭނުންކުރުން: {{theme}}", @@ -851,6 +853,7 @@ export const dict = { "common.export": "އެކްސްޕޯޓް", "common.reset": "ރީސެޓް ކުރުން", "common.archive": "އާކައިވް", + "common.unarchive": "އަރުޝީވުން ނަގާ", "common.delete": "ފުހެލުން", "common.close": "ލެއްޕުން", "common.edit": "ބަދަލު ގެނައުން", diff --git a/packages/app/src/i18n/dz.ts b/packages/app/src/i18n/dz.ts index 3b2ad46ca304..77e0e42fe19e 100644 --- a/packages/app/src/i18n/dz.ts +++ b/packages/app/src/i18n/dz.ts @@ -100,6 +100,7 @@ export const dict: Record = { "command.category.provider": "བྱིན་མི།", "command.category.server": "སར་བར།", "command.category.session": "ལཱ་ཡུན།", + "command.category.session.archived": "ཡིག་མཛོད་བཞག་ཡོདཔ", "command.category.theme": "བརྗོད༌དོན", "command.category.language": "སྐད༌ཡིག", "command.category.file": "ཡིག༌སྣོད", @@ -128,6 +129,7 @@ export const dict: Record = { "command.session.previous.unseen": "ཧེ་མའི་མ་ལྷག་པའི་ལཱ་ཡུན།", "command.session.next.unseen": "ལྷག་མ་ཚར་བའི་ལཱ་ཡུན་ཤུལ་མམ།", "command.session.archive": "ཡིག་མཛོད་ལཱ་ཡན།", + "command.session.unarchive": "ལས་ཐུན་ཡིག་མཛོད་ནས་ཕྱིར་འདོན", "command.palette": "བརྡ་བཀོད་པེ་ལེཊི།", "command.theme.cycle": "འཁོར་བའི་བརྗོད་གཞི།", "command.theme.set": "བརྗོད་དོན་ལག་ལེན་འཐབ།: {{theme}}", @@ -852,6 +854,7 @@ export const dict: Record = { "common.export": "ཕྱིར་བཙོང", "common.reset": "སླར་སྒྲིག་འབད།", "common.archive": "གཏན་མཛོད", + "common.unarchive": "ཡིག་མཛོད་ནས་ཕྱིར་འདོན", "common.delete": "བཏོན༌གཏང༌བ", "common.close": "སྒོ་བསྡམ", "common.edit": "ཞུན༌དག", diff --git a/packages/app/src/i18n/el.ts b/packages/app/src/i18n/el.ts index 8f91b46af010..2fa30de919f5 100644 --- a/packages/app/src/i18n/el.ts +++ b/packages/app/src/i18n/el.ts @@ -98,6 +98,7 @@ export const dict = { "command.category.provider": "Πάροχος", "command.category.server": "Διακομιστής", "command.category.session": "Συνεδρία", + "command.category.session.archived": "Αρχειοθετημένες", "command.category.theme": "Θέμα", "command.category.language": "Γλώσσα", "command.category.file": "Αρχείο", @@ -126,6 +127,7 @@ export const dict = { "command.session.previous.unseen": "Προηγούμενη μη αναγνωσμένη συνεδρία", "command.session.next.unseen": "Επόμενη μη αναγνωσμένη συνεδρία", "command.session.archive": "Αρχειοθέτηση συνεδρίας", + "command.session.unarchive": "Κατάργηση αρχειοθέτησης συνεδρίας", "command.palette": "Παλέτα εντολών", "command.theme.cycle": "Θέμα κύκλου", "command.theme.set": "Χρήση θέματος: {{theme}}", @@ -847,6 +849,7 @@ export const dict = { "common.export": "Εξαγωγή", "common.reset": "Επαναφορά", "common.archive": "Αρχείο", + "common.unarchive": "Κατάργηση αρχειοθέτησης", "common.delete": "Διαγραφή", "common.close": "Κλείσιμο", "common.edit": "Επεξεργασία", diff --git a/packages/app/src/i18n/es.ts b/packages/app/src/i18n/es.ts index 9e9ff2c36750..35345581d5b4 100644 --- a/packages/app/src/i18n/es.ts +++ b/packages/app/src/i18n/es.ts @@ -105,6 +105,7 @@ export const dict = { "command.category.provider": "Proveedor", "command.category.server": "Servidor", "command.category.session": "Sesión", + "command.category.session.archived": "Archivadas", "command.category.theme": "Tema", "command.category.language": "Idioma", "command.category.file": "Archivo", @@ -135,6 +136,7 @@ export const dict = { "command.session.previous.unseen": "Sesión no leída anterior", "command.session.next.unseen": "Siguiente sesión no leída", "command.session.archive": "Archivar sesión", + "command.session.unarchive": "Desarchivar sesión", "command.palette": "Paleta de comandos", @@ -876,6 +878,7 @@ export const dict = { "common.export": "Exportar", "common.reset": "Restablecer", "common.archive": "Archivar", + "common.unarchive": "Desarchivar", "common.delete": "Eliminar", "common.close": "Cerrar", "common.edit": "Editar", diff --git a/packages/app/src/i18n/et.ts b/packages/app/src/i18n/et.ts index d78296675e3d..46677ca90f95 100644 --- a/packages/app/src/i18n/et.ts +++ b/packages/app/src/i18n/et.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "Pakkuja", "command.category.server": "Server", "command.category.session": "Seanss", + "command.category.session.archived": "Arhiveeritud", "command.category.theme": "Teema", "command.category.language": "Keel", "command.category.file": "Fail", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "Eelmine lugemata seanss", "command.session.next.unseen": "Järgmine lugemata seanss", "command.session.archive": "Arhiivi seanss", + "command.session.unarchive": "Taasta seanss arhiivist", "command.palette": "Käsupalett", "command.theme.cycle": "Tsükli teema", "command.theme.set": "Kasuta teemat: {{theme}}", @@ -834,6 +836,7 @@ export const dict = { "common.export": "Ekspordi", "common.reset": "Lähtesta", "common.archive": "Arhiiv", + "common.unarchive": "Taasta arhiivist", "common.delete": "Kustuta", "common.close": "Sule", "common.edit": "Muuda", diff --git a/packages/app/src/i18n/fa.ts b/packages/app/src/i18n/fa.ts index 0d3d721b5324..35b6406b8c44 100644 --- a/packages/app/src/i18n/fa.ts +++ b/packages/app/src/i18n/fa.ts @@ -98,6 +98,7 @@ export const dict = { "command.category.provider": "ارائه دهنده", "command.category.server": "سرور", "command.category.session": "جلسه", + "command.category.session.archived": "بایگانی‌شده", "command.category.theme": "موضوع", "command.category.language": "زبان", "command.category.file": "فایل", @@ -126,6 +127,7 @@ export const dict = { "command.session.previous.unseen": "جلسه خوانده نشده قبلی", "command.session.next.unseen": "جلسه خوانده نشده بعدی", "command.session.archive": "جلسه آرشیو", + "command.session.unarchive": "خارج کردن نشست از بایگانی", "command.palette": "پالت فرمان", "command.theme.cycle": "موضوع چرخه", "command.theme.set": "استفاده از تم: {{theme}}", @@ -837,6 +839,7 @@ export const dict = { "common.export": "صادرات", "common.reset": "بازنشانی کنید", "common.archive": "آرشیو", + "common.unarchive": "خارج کردن از بایگانی", "common.delete": "حذف", "common.close": "بستن", "common.edit": "ویرایش کنید", diff --git a/packages/app/src/i18n/fi.ts b/packages/app/src/i18n/fi.ts index aa9c92574cff..b330a93b61ac 100644 --- a/packages/app/src/i18n/fi.ts +++ b/packages/app/src/i18n/fi.ts @@ -5,6 +5,7 @@ export const dict = { "command.category.provider": "Palveluntarjoaja", "command.category.server": "Palvelin", "command.category.session": "Istunto", + "command.category.session.archived": "Arkistoidut", "command.category.theme": "Teema", "command.category.language": "Kieli", "command.category.file": "Tiedosto", @@ -32,6 +33,7 @@ export const dict = { "command.session.previous.unseen": "Edellinen lukematon istunto", "command.session.next.unseen": "Seuraava lukematon istunto", "command.session.archive": "Arkistoi istunto", + "command.session.unarchive": "Palauta istunto arkistosta", "command.palette": "Komentopaletti", "command.theme.cycle": "Vaihda teemaa", "command.theme.set": "Käytä teemaa: {{theme}}", @@ -737,6 +739,7 @@ export const dict = { "common.export": "Vie", "common.reset": "Palauta", "common.archive": "Arkistoi", + "common.unarchive": "Palauta arkistosta", "common.delete": "Poista", "common.close": "Sulje", "common.edit": "Muokkaa", diff --git a/packages/app/src/i18n/fo.ts b/packages/app/src/i18n/fo.ts index 4329a35b4247..a1d78dd5d07e 100644 --- a/packages/app/src/i18n/fo.ts +++ b/packages/app/src/i18n/fo.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "Veitari", "command.category.server": "Ambætari", "command.category.session": "Seta", + "command.category.session.archived": "Skjalasavnað", "command.category.theme": "Tema", "command.category.language": "Mál", "command.category.file": "Skrá", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "Fyrra ólisna setan", "command.session.next.unseen": "Næsta ólisna setan", "command.session.archive": "Arkivløta", + "command.session.unarchive": "Tak setu úr skjalasavni", "command.palette": "Skipanarpaletta", "command.theme.cycle": "Súkklutema", "command.theme.set": "Brúka tema: {{theme}}", @@ -838,6 +840,7 @@ export const dict = { "common.export": "Útflutningur", "common.reset": "Nullstilla", "common.archive": "Arkiv", + "common.unarchive": "Tak úr skjalasavni", "common.delete": "Strika", "common.close": "Lat aftur", "common.edit": "Rætta", diff --git a/packages/app/src/i18n/fr.ts b/packages/app/src/i18n/fr.ts index 3c89860a4490..edb96d29785b 100644 --- a/packages/app/src/i18n/fr.ts +++ b/packages/app/src/i18n/fr.ts @@ -105,6 +105,7 @@ export const dict = { "command.category.provider": "Fournisseur", "command.category.server": "Serveur", "command.category.session": "Session", + "command.category.session.archived": "Archivées", "command.category.theme": "Thème", "command.category.language": "Langue", "command.category.file": "Fichier", @@ -133,6 +134,7 @@ export const dict = { "command.session.previous.unseen": "Session précédente non lue", "command.session.next.unseen": "Session suivante non lue", "command.session.archive": "Archiver la session", + "command.session.unarchive": "Désarchiver la session", "command.palette": "Palette de commandes", "command.theme.cycle": "Changer de thème", "command.theme.set": "Utiliser le thème : {{theme}}", @@ -814,6 +816,7 @@ export const dict = { "common.export": "Exporter", "common.reset": "Réinitialiser", "common.archive": "Archiver", + "common.unarchive": "Désarchiver", "common.delete": "Supprimer", "common.close": "Fermer", "common.edit": "Modifier", diff --git a/packages/app/src/i18n/hi.ts b/packages/app/src/i18n/hi.ts index 0aaf8e14dc6d..cd27ed77f54b 100644 --- a/packages/app/src/i18n/hi.ts +++ b/packages/app/src/i18n/hi.ts @@ -104,6 +104,7 @@ export const dict = { "command.category.provider": "प्रोवाइडर", "command.category.server": "सर्वर", "command.category.session": "सेशन", + "command.category.session.archived": "संग्रहित", "command.category.theme": "थीम", "command.category.language": "भाषा", "command.category.file": "फ़ाइल", @@ -132,6 +133,7 @@ export const dict = { "command.session.previous.unseen": "पिछला अपठित सेशन", "command.session.next.unseen": "अगला अपठित सेशन", "command.session.archive": "सेशन संग्रहित करें", + "command.session.unarchive": "सत्र को संग्रह से हटाएँ", "command.palette": "कमांड पैलेट", "command.theme.cycle": "थीम बदलें", "command.theme.set": "थीम का उपयोग करें: {{theme}}", @@ -848,6 +850,7 @@ export const dict = { "common.export": "निर्यात करें", "common.reset": "रीसेट करें", "common.archive": "संग्रहित करें", + "common.unarchive": "संग्रह से हटाएँ", "common.delete": "हटाएँ", "common.close": "बंद करें", "common.edit": "संपादित करें", diff --git a/packages/app/src/i18n/hr.ts b/packages/app/src/i18n/hr.ts index 2130c88ada2d..76ead0ee5e51 100644 --- a/packages/app/src/i18n/hr.ts +++ b/packages/app/src/i18n/hr.ts @@ -101,6 +101,7 @@ export const dict = { "command.category.provider": "Pružatelj usluga", "command.category.server": "Poslužitelj", "command.category.session": "Sesija", + "command.category.session.archived": "Arhivirano", "command.category.theme": "Tema", "command.category.language": "Jezik", "command.category.file": "Datoteka", @@ -129,6 +130,7 @@ export const dict = { "command.session.previous.unseen": "Prethodna nepročitana sesija", "command.session.next.unseen": "Sljedeća nepročitana sesija", "command.session.archive": "Arhiviraj sesiju", + "command.session.unarchive": "Vrati sesiju iz arhive", "command.palette": "Paleta naredbi", "command.theme.cycle": "Promijeni temu", "command.theme.set": "Koristite temu: {{theme}}", @@ -847,6 +849,7 @@ export const dict = { "common.export": "Izvoz", "common.reset": "Resetiraj", "common.archive": "Arhiva", + "common.unarchive": "Vrati iz arhive", "common.delete": "Izbriši", "common.close": "Zatvoriti", "common.edit": "Uredi", diff --git a/packages/app/src/i18n/hu.ts b/packages/app/src/i18n/hu.ts index 664abf8ee4c0..b131fa047cdc 100644 --- a/packages/app/src/i18n/hu.ts +++ b/packages/app/src/i18n/hu.ts @@ -101,6 +101,7 @@ export const dict = { "command.category.provider": "Szolgáltató", "command.category.server": "Kiszolgáló", "command.category.session": "Munkamenet", + "command.category.session.archived": "Archivált", "command.category.theme": "Téma", "command.category.language": "Nyelv", "command.category.file": "Fájl", @@ -129,6 +130,7 @@ export const dict = { "command.session.previous.unseen": "Előző olvasatlan munkamenet", "command.session.next.unseen": "Következő olvasatlan munkamenet", "command.session.archive": "Munkamenet archiválása", + "command.session.unarchive": "Munkamenet archiválásának visszavonása", "command.palette": "Parancs paletta", "command.theme.cycle": "Téma váltása", "command.theme.set": "Használd a témát: {{theme}}", @@ -845,6 +847,7 @@ export const dict = { "common.export": "Exportálás", "common.reset": "Alaphelyzet", "common.archive": "Archívum", + "common.unarchive": "Archiválás visszavonása", "common.delete": "Törlés", "common.close": "Bezárás", "common.edit": "Szerkesztés", diff --git a/packages/app/src/i18n/hy.ts b/packages/app/src/i18n/hy.ts index 6eac43b5e6dd..8db596b918f2 100644 --- a/packages/app/src/i18n/hy.ts +++ b/packages/app/src/i18n/hy.ts @@ -99,6 +99,7 @@ export const dict = { "command.category.provider": "Մատակարար", "command.category.server": "Սերվեր", "command.category.session": "Նիստ", + "command.category.session.archived": "Արխիվացված", "command.category.theme": "Թեմա", "command.category.language": "Լեզու", "command.category.file": "Ֆայլ", @@ -127,6 +128,7 @@ export const dict = { "command.session.previous.unseen": "Նախորդ չկարդացված նիստը", "command.session.next.unseen": "Հաջորդ չկարդացված նիստը", "command.session.archive": "Արխիվացնել նիստը", + "command.session.unarchive": "Հանել աշխատաշրջանը արխիվից", "command.palette": "Հրամանների գունապնակ", "command.theme.cycle": "Ցիկլի թեմա", "command.theme.set": "Օգտագործել թեման՝ {{theme}}", @@ -844,6 +846,7 @@ export const dict = { "common.export": "Արտահանում", "common.reset": "Վերականգնել", "common.archive": "Արխիվ", + "common.unarchive": "Հանել արխիվից", "common.delete": "Ջնջել", "common.close": "Փակել", "common.edit": "Խմբագրել", diff --git a/packages/app/src/i18n/id.ts b/packages/app/src/i18n/id.ts index 96dc3c7592e4..5fd3cf585db8 100644 --- a/packages/app/src/i18n/id.ts +++ b/packages/app/src/i18n/id.ts @@ -105,6 +105,7 @@ export const dict = { "command.category.provider": "Penyedia", "command.category.server": "Server", "command.category.session": "Sesi", + "command.category.session.archived": "Diarsipkan", "command.category.theme": "Tema", "command.category.language": "Bahasa", "command.category.file": "Berkas", @@ -135,6 +136,7 @@ export const dict = { "command.session.previous.unseen": "Sesi sebelumnya yang belum dibaca", "command.session.next.unseen": "Sesi berikutnya yang belum dibaca", "command.session.archive": "Arsipkan sesi", + "command.session.unarchive": "Batalkan arsip sesi", "command.palette": "Palet perintah", @@ -912,6 +914,7 @@ export const dict = { "common.export": "Ekspor", "common.reset": "Atur ulang", "common.archive": "Arsipkan", + "common.unarchive": "Batalkan arsip", "common.delete": "Hapus", "common.close": "Tutup", "common.edit": "Sunting", diff --git a/packages/app/src/i18n/is.ts b/packages/app/src/i18n/is.ts index a45ed9a40cb0..9fd97dea4970 100644 --- a/packages/app/src/i18n/is.ts +++ b/packages/app/src/i18n/is.ts @@ -101,6 +101,7 @@ export const dict = { "command.category.provider": "Þjónustuveita", "command.category.server": "Netþjónn", "command.category.session": "Seta", + "command.category.session.archived": "Í safni", "command.category.theme": "Þema", "command.category.language": "Tungumál", "command.category.file": "Skrá", @@ -129,6 +130,7 @@ export const dict = { "command.session.previous.unseen": "Fyrri ólesin seta", "command.session.next.unseen": "Næsta ólesna seta", "command.session.archive": "Setja setu í geymslu", + "command.session.unarchive": "Taka setu úr safni", "command.palette": "Skipunarspjald", "command.theme.cycle": "Skipta um þema", "command.theme.set": "Notaðu þema: {{theme}}", @@ -841,6 +843,7 @@ export const dict = { "common.export": "Útflutningur", "common.reset": "Endurstilla", "common.archive": "Skjalasafn", + "common.unarchive": "Taka úr safni", "common.delete": "Eyða", "common.close": "Loka", "common.edit": "Breyta", diff --git a/packages/app/src/i18n/it.ts b/packages/app/src/i18n/it.ts index a093e11485a3..4b05278caa18 100644 --- a/packages/app/src/i18n/it.ts +++ b/packages/app/src/i18n/it.ts @@ -5,6 +5,7 @@ export const dict = { "command.category.provider": "Provider", "command.category.server": "Server", "command.category.session": "Sessione", + "command.category.session.archived": "Archiviate", "command.category.theme": "Tema", "command.category.language": "Lingua", "command.category.file": "File", @@ -33,6 +34,7 @@ export const dict = { "command.session.previous.unseen": "Sessione precedente non letta", "command.session.next.unseen": "Sessione successiva non letta", "command.session.archive": "Archivia sessione", + "command.session.unarchive": "Rimuovi la sessione dall'archivio", "command.palette": "Palette dei comandi", "command.theme.cycle": "Cambia tema", "command.theme.set": "Usa tema: {{theme}}", @@ -758,6 +760,7 @@ export const dict = { "common.export": "Esporta", "common.reset": "Ripristina", "common.archive": "Archivia", + "common.unarchive": "Rimuovi dall'archivio", "common.delete": "Elimina", "common.close": "Chiudi", "common.edit": "Modifica", diff --git a/packages/app/src/i18n/ja.ts b/packages/app/src/i18n/ja.ts index b96e8b544b2b..32f8b3aa119a 100644 --- a/packages/app/src/i18n/ja.ts +++ b/packages/app/src/i18n/ja.ts @@ -103,6 +103,7 @@ export const dict = { "command.category.provider": "プロバイダー", "command.category.server": "サーバー", "command.category.session": "セッション", + "command.category.session.archived": "アーカイブ済み", "command.category.theme": "テーマ", "command.category.language": "言語", "command.category.file": "ファイル", @@ -131,6 +132,7 @@ export const dict = { "command.session.previous.unseen": "前の未読セッション", "command.session.next.unseen": "次の未読セッション", "command.session.archive": "セッションをアーカイブ", + "command.session.unarchive": "セッションのアーカイブを解除", "command.palette": "コマンドパレット", "command.theme.cycle": "テーマの切り替え", "command.theme.set": "テーマを使用: {{theme}}", @@ -796,6 +798,7 @@ export const dict = { "common.export": "エクスポート", "common.reset": "リセット", "common.archive": "アーカイブ", + "common.unarchive": "アーカイブ解除", "common.delete": "削除", "common.close": "閉じる", "common.edit": "編集", diff --git a/packages/app/src/i18n/ka.ts b/packages/app/src/i18n/ka.ts index be052930a2ec..76c6a9a02e2f 100644 --- a/packages/app/src/i18n/ka.ts +++ b/packages/app/src/i18n/ka.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "პროვაიდერი", "command.category.server": "სერვერი", "command.category.session": "სესია", + "command.category.session.archived": "დაარქივებული", "command.category.theme": "თემა", "command.category.language": "ენა", "command.category.file": "ფაილი", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "წინა წაუკითხავი სესია", "command.session.next.unseen": "შემდეგი წაუკითხავი სესია", "command.session.archive": "სესიის დაარქივება", + "command.session.unarchive": "სესიის არქივიდან დაბრუნება", "command.palette": "ბრძანების პალიტრა", "command.theme.cycle": "ციკლის თემა", "command.theme.set": "გამოიყენე თემა: {{theme}}", @@ -837,6 +839,7 @@ export const dict = { "common.export": "ექსპორტი", "common.reset": "გადატვირთვა", "common.archive": "არქივი", + "common.unarchive": "არქივიდან დაბრუნება", "common.delete": "წაშლა", "common.close": "დახურვა", "common.edit": "რედაქტირება", diff --git a/packages/app/src/i18n/km.ts b/packages/app/src/i18n/km.ts index 7f1b61fe3667..7b0ed676b308 100644 --- a/packages/app/src/i18n/km.ts +++ b/packages/app/src/i18n/km.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "អ្នកផ្តល់សេវា", "command.category.server": "ម៉ាស៊ីនមេ", "command.category.session": "សម័យ", + "command.category.session.archived": "បានទុកក្នុងប័ណ្ណសារ", "command.category.theme": "ប្រធានបទ", "command.category.language": "ភាសា", "command.category.file": "ឯកសារ", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "សម័យមិនទាន់អានពីមុន", "command.session.next.unseen": "សម័យមិនទាន់អានបន្ទាប់", "command.session.archive": "សម័យបណ្ណសារ", + "command.session.unarchive": "ដកសម័យចេញពីប័ណ្ណសារ", "command.palette": "ក្ដារលាយពាក្យបញ្ជា", "command.theme.cycle": "ប្រធានបទវដ្ត", "command.theme.set": "ប្រើប្រធានបទ៖ {{theme}}", @@ -835,6 +837,7 @@ export const dict = { "common.export": "នាំចេញ", "common.reset": "កំណត់ឡើងវិញ", "common.archive": "បណ្ណសារ", + "common.unarchive": "ដកចេញពីប័ណ្ណសារ", "common.delete": "លុប", "common.close": "បិទ", "common.edit": "កែសម្រួល", diff --git a/packages/app/src/i18n/ko.ts b/packages/app/src/i18n/ko.ts index b96fb4c59471..50a8ee17248c 100644 --- a/packages/app/src/i18n/ko.ts +++ b/packages/app/src/i18n/ko.ts @@ -5,6 +5,7 @@ export const dict = { "command.category.provider": "공급자", "command.category.server": "서버", "command.category.session": "세션", + "command.category.session.archived": "보관됨", "command.category.theme": "테마", "command.category.language": "언어", "command.category.file": "파일", @@ -29,6 +30,7 @@ export const dict = { "command.session.previous.unseen": "이전 읽지 않은 세션", "command.session.next.unseen": "다음 읽지 않은 세션", "command.session.archive": "세션 보관", + "command.session.unarchive": "세션 보관 취소", "command.palette": "명령 팔레트", "command.theme.cycle": "테마 순환", "command.theme.set": "테마 사용: {{theme}}", @@ -559,6 +561,7 @@ export const dict = { "common.export": "내보내기", "common.reset": "초기화", "common.archive": "보관", + "common.unarchive": "보관 취소", "common.delete": "삭제", "common.close": "닫기", "common.edit": "편집", diff --git a/packages/app/src/i18n/lo.ts b/packages/app/src/i18n/lo.ts index acdc26df08aa..28e18a81b568 100644 --- a/packages/app/src/i18n/lo.ts +++ b/packages/app/src/i18n/lo.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "ຜູ້ໃຫ້ບໍລິການ", "command.category.server": "ເຊີບເວີ", "command.category.session": "ເຊດຊັນ", + "command.category.session.archived": "ຈັດເກັບໄວ້", "command.category.theme": "ຫົວຂໍ້", "command.category.language": "ພາສາ", "command.category.file": "ໄຟລ໌", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "ເຊດຊັນທີ່ຍັງບໍ່ໄດ້ອ່ານຜ່ານມາ", "command.session.next.unseen": "ເຊດຊັນທີ່ຍັງບໍ່ໄດ້ອ່ານຕໍ່ໄປ", "command.session.archive": "ຮວບຮວມເຊດຊັນ", + "command.session.unarchive": "ນຳເຊສຊັນອອກຈາກຄັງ", "command.palette": "ແຖບຄໍາສັ່ງ", "command.theme.cycle": "ຮູບແບບສີສັນຮອບວຽນ", "command.theme.set": "ໃຊ້ຫົວຂໍ້: {{theme}}", @@ -833,6 +835,7 @@ export const dict = { "common.export": "ສົ່ງອອກ", "common.reset": "ຣີເຊັດ", "common.archive": "ຮວບຮວມ", + "common.unarchive": "ນຳອອກຈາກຄັງ", "common.delete": "ລຶບ", "common.close": "ປິດ", "common.edit": "ແກ້ໄຂ", diff --git a/packages/app/src/i18n/lt.ts b/packages/app/src/i18n/lt.ts index ba161eb31879..6f9b3d2e9a64 100644 --- a/packages/app/src/i18n/lt.ts +++ b/packages/app/src/i18n/lt.ts @@ -101,6 +101,7 @@ export const dict = { "command.category.provider": "Teikėjas", "command.category.server": "Serveris", "command.category.session": "Seansas", + "command.category.session.archived": "Archyvuota", "command.category.theme": "tema", "command.category.language": "Kalba", "command.category.file": "Failas", @@ -129,6 +130,7 @@ export const dict = { "command.session.previous.unseen": "Ankstesnis neskaitytas seansas", "command.session.next.unseen": "Kitas neskaitytas seansas", "command.session.archive": "Archyvuoti seansą", + "command.session.unarchive": "Grąžinti sesiją iš archyvo", "command.palette": "Komandų paletė", "command.theme.cycle": "Perjungti temą", "command.theme.set": "Naudokite temą: {{theme}}", @@ -851,6 +853,7 @@ export const dict = { "common.export": "Eksportuoti", "common.reset": "Nustatyti iš naujo", "common.archive": "Archyvas", + "common.unarchive": "Grąžinti iš archyvo", "common.delete": "Ištrinti", "common.close": "Uždaryti", "common.edit": "Redaguoti", diff --git a/packages/app/src/i18n/lv.ts b/packages/app/src/i18n/lv.ts index df4c5b2dcd91..12dea137c93c 100644 --- a/packages/app/src/i18n/lv.ts +++ b/packages/app/src/i18n/lv.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "Pakalpojumu sniedzējs", "command.category.server": "Serveris", "command.category.session": "Sesija", + "command.category.session.archived": "Arhivēts", "command.category.theme": "Tēma", "command.category.language": "Valoda", "command.category.file": "Fails", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "Iepriekšējā nelasītā sesija", "command.session.next.unseen": "Nākamā nelasītā sesija", "command.session.archive": "Arhivēt sesiju", + "command.session.unarchive": "Atjaunot sesiju no arhīva", "command.palette": "Komandu palete", "command.theme.cycle": "Mainīt motīvu", "command.theme.set": "Izmantot motīvu: {{theme}}", @@ -843,6 +845,7 @@ export const dict = { "common.export": "Eksportēt", "common.reset": "Atiestatīt", "common.archive": "Arhivēt", + "common.unarchive": "Atjaunot no arhīva", "common.delete": "Dzēst", "common.close": "Aizvērt", "common.edit": "Rediģēt", diff --git a/packages/app/src/i18n/mk.ts b/packages/app/src/i18n/mk.ts index 01e60baa408b..ab2f4f25773e 100644 --- a/packages/app/src/i18n/mk.ts +++ b/packages/app/src/i18n/mk.ts @@ -98,6 +98,7 @@ export const dict = { "command.category.provider": "Провајдер", "command.category.server": "Сервер", "command.category.session": "Сесија", + "command.category.session.archived": "Архивирани", "command.category.theme": "Тема", "command.category.language": "Јазик", "command.category.file": "Датотека", @@ -126,6 +127,7 @@ export const dict = { "command.session.previous.unseen": "Претходна непрочитана сесија", "command.session.next.unseen": "Следна непрочитана сесија", "command.session.archive": "Сесија за архива", + "command.session.unarchive": "Врати сесија од архива", "command.palette": "Палета на команди", "command.theme.cycle": "Тема за циклус", "command.theme.set": "Користете ја темата: {{theme}}", @@ -842,6 +844,7 @@ export const dict = { "common.export": "Извоз", "common.reset": "Ресетирај", "common.archive": "Архива", + "common.unarchive": "Врати од архива", "common.delete": "Избриши", "common.close": "Затвори", "common.edit": "Уреди", diff --git a/packages/app/src/i18n/mn.ts b/packages/app/src/i18n/mn.ts index 41c4fa085d1a..d4bcdda7a93c 100644 --- a/packages/app/src/i18n/mn.ts +++ b/packages/app/src/i18n/mn.ts @@ -99,6 +99,7 @@ export const dict = { "command.category.provider": "Үйлчилгээ үзүүлэгч", "command.category.server": "Сервер", "command.category.session": "Сесс", + "command.category.session.archived": "Архивласан", "command.category.theme": "Сэдэв", "command.category.language": "Хэл", "command.category.file": "Файл", @@ -127,6 +128,7 @@ export const dict = { "command.session.previous.unseen": "Өмнөх уншаагүй сесс", "command.session.next.unseen": "Дараагийн уншаагүй сесс", "command.session.archive": "Архивын сесс", + "command.session.unarchive": "Сессийг архиваас гаргах", "command.palette": "Командын палитр", "command.theme.cycle": "Циклийн сэдэв", "command.theme.set": "Сэдвийг ашиглах: {{theme}}", @@ -845,6 +847,7 @@ export const dict = { "common.export": "Экспорт", "common.reset": "Дахин тохируулах", "common.archive": "Архив", + "common.unarchive": "Архиваас гаргах", "common.delete": "Устгах", "common.close": "Хаах", "common.edit": "Засварлах", diff --git a/packages/app/src/i18n/ms.ts b/packages/app/src/i18n/ms.ts index 2c3783d43b7d..7cf627f6ce5e 100644 --- a/packages/app/src/i18n/ms.ts +++ b/packages/app/src/i18n/ms.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "Penyedia", "command.category.server": "Pelayan", "command.category.session": "Sesi", + "command.category.session.archived": "Diarkibkan", "command.category.theme": "Tema", "command.category.language": "Bahasa", "command.category.file": "Fail", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "Sesi belum dibaca sebelumnya", "command.session.next.unseen": "Sesi belum dibaca seterusnya", "command.session.archive": "Arkibkan sesi", + "command.session.unarchive": "Buang sesi dari arkib", "command.palette": "Palet arahan", "command.theme.cycle": "Tukar tema", "command.theme.set": "Guna tema: {{theme}}", @@ -837,6 +839,7 @@ export const dict = { "common.export": "Eksport", "common.reset": "Tetapkan semula", "common.archive": "Arkib", + "common.unarchive": "Buang dari arkib", "common.delete": "Padam", "common.close": "Tutup", "common.edit": "Sunting", diff --git a/packages/app/src/i18n/my.ts b/packages/app/src/i18n/my.ts index 6046f337ff06..f4a8ea58f7ee 100644 --- a/packages/app/src/i18n/my.ts +++ b/packages/app/src/i18n/my.ts @@ -99,6 +99,7 @@ export const dict = { "command.category.provider": "ပံ့ပိုးပေးသူ", "command.category.server": "ဆာဗာ", "command.category.session": "အပိုင်း", + "command.category.session.archived": "မှတ်တမ်းတင်ထား", "command.category.theme": "အပြင်အဆင်", "command.category.language": "ဘာသာစကား", "command.category.file": "ဖိုင်", @@ -127,6 +128,7 @@ export const dict = { "command.session.previous.unseen": "ယခင် မဖတ်ရသေးသော စက်ရှင်", "command.session.next.unseen": "နောက်တစ်ခု မဖတ်ရသေးသော စက်ရှင်", "command.session.archive": "မှတ်တမ်း အပိုင်း", + "command.session.unarchive": "စက်ရှင်ကို မှတ်တမ်းမှ ပြန်ထုတ်", "command.palette": "အမိန့်များစာရင်း", "command.theme.cycle": "Cycle အပြင်အဆင်", "command.theme.set": "အပြင်အဆင်ကို အသုံးပြုပါ- {{theme}}", @@ -847,6 +849,7 @@ export const dict = { "common.export": "တင်ပို့ခြင်း။", "common.reset": "ပြန်လည်သတ်မှတ်ပါ။", "common.archive": "မှတ်တမ်း", + "common.unarchive": "မှတ်တမ်းမှ ပြန်ထုတ်", "common.delete": "ဖျက်ပါ", "common.close": "ပိတ်ပါ။", "common.edit": "တည်းဖြတ်ရန်", diff --git a/packages/app/src/i18n/ne.ts b/packages/app/src/i18n/ne.ts index cc60bff9f400..6bce779d5312 100644 --- a/packages/app/src/i18n/ne.ts +++ b/packages/app/src/i18n/ne.ts @@ -98,6 +98,7 @@ export const dict: Record = { "command.category.provider": "प्रदायक", "command.category.server": "सर्भर", "command.category.session": "सत्र", + "command.category.session.archived": "संग्रहित", "command.category.theme": "विषयवस्तु", "command.category.language": "भाषा", "command.category.file": "फाइल", @@ -126,6 +127,7 @@ export const dict: Record = { "command.session.previous.unseen": "अघिल्लो नपढिएको सत्र", "command.session.next.unseen": "अर्को अपठित सत्र", "command.session.archive": "अभिलेख सत्र", + "command.session.unarchive": "सत्र संग्रहबाट फिर्ता", "command.palette": "आदेश प्यालेट", "command.theme.cycle": "साइकल विषयवस्तु", "command.theme.set": "विषयवस्तु प्रयोग गर्नुहोस्: {{theme}}", @@ -839,6 +841,7 @@ export const dict: Record = { "common.export": "निर्यात गर्नुहोस्", "common.reset": "रिसेट गर्नुहोस्", "common.archive": "अभिलेख", + "common.unarchive": "संग्रहबाट फिर्ता", "common.delete": "मेट्नुहोस्", "common.close": "बन्द गर्नुहोस्", "common.edit": "सम्पादन गर्नुहोस्", diff --git a/packages/app/src/i18n/nl.ts b/packages/app/src/i18n/nl.ts index 6fb1dc09f24b..9fb81ed98271 100644 --- a/packages/app/src/i18n/nl.ts +++ b/packages/app/src/i18n/nl.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "Aanbieder", "command.category.server": "Server", "command.category.session": "Sessie", + "command.category.session.archived": "Gearchiveerd", "command.category.theme": "Thema", "command.category.language": "Taal", "command.category.file": "Bestand", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "Vorige ongelezen sessie", "command.session.next.unseen": "Volgende ongelezen sessie", "command.session.archive": "Sessie archiveren", + "command.session.unarchive": "Sessie uit archief halen", "command.palette": "Commandopalet", "command.theme.cycle": "Volgend thema", "command.theme.set": "Gebruik thema: {{theme}}", @@ -847,6 +849,7 @@ export const dict = { "common.export": "Exporteren", "common.reset": "Opnieuw instellen", "common.archive": "Archiveren", + "common.unarchive": "Uit archief halen", "common.delete": "Verwijderen", "common.close": "Sluiten", "common.edit": "Bewerken", diff --git a/packages/app/src/i18n/no.ts b/packages/app/src/i18n/no.ts index 11958029dc38..f3deeef2b66f 100644 --- a/packages/app/src/i18n/no.ts +++ b/packages/app/src/i18n/no.ts @@ -107,6 +107,7 @@ export const dict = { "command.category.provider": "Leverandør", "command.category.server": "Server", "command.category.session": "Sesjon", + "command.category.session.archived": "Arkivert", "command.category.theme": "Tema", "command.category.language": "Språk", "command.category.file": "Fil", @@ -134,6 +135,7 @@ export const dict = { "command.session.previous.unseen": "Forrige uleste sesjon", "command.session.next.unseen": "Neste uleste sesjon", "command.session.archive": "Arkiver sesjon", + "command.session.unarchive": "Hent økt fra arkiv", "command.palette": "Kommandopalett", @@ -736,6 +738,7 @@ export const dict = { "common.export": "Eksporter", "common.reset": "Tilbakestill", "common.archive": "Arkiver", + "common.unarchive": "Hent fra arkiv", "common.delete": "Slett", "common.close": "Lukk", "common.edit": "Rediger", diff --git a/packages/app/src/i18n/pa.ts b/packages/app/src/i18n/pa.ts index 6298581c0aab..3fd5c77dbc69 100644 --- a/packages/app/src/i18n/pa.ts +++ b/packages/app/src/i18n/pa.ts @@ -103,6 +103,7 @@ export const dict = { "command.category.provider": "پرووائیڈر", "command.category.server": "سرور", "command.category.session": "سیشن", + "command.category.session.archived": "ਪੁਰਾਲੇਖਬੱਧ", "command.category.theme": "تھیم", "command.category.language": "بولی", "command.category.file": "فائل", @@ -131,6 +132,7 @@ export const dict = { "command.session.previous.unseen": "پچھلا ان پڑھیا سیشن", "command.session.next.unseen": "اگلا ان پڑھیا سیشن", "command.session.archive": "آرکائیو سیشن", + "command.session.unarchive": "ਸੈਸ਼ਨ ਪੁਰਾਲੇਖ ਤੋਂ ਹਟਾਓ", "command.palette": "کمانڈ پیلیٹ", "command.theme.cycle": "اگلا تھیم ورتو", "command.theme.set": "تھیم ورتو: {{theme}}", @@ -846,6 +848,7 @@ export const dict = { "common.export": "برآمد کرو", "common.reset": "ری سیٹ کرو", "common.archive": "آرکائیو کرو", + "common.unarchive": "ਪੁਰਾਲੇਖ ਤੋਂ ਹਟਾਓ", "common.delete": "مکاؤ", "common.close": "بند کرو", "common.edit": "ترمیم کرو", diff --git a/packages/app/src/i18n/pl.ts b/packages/app/src/i18n/pl.ts index 9b3c927498d8..086f9fa3412e 100644 --- a/packages/app/src/i18n/pl.ts +++ b/packages/app/src/i18n/pl.ts @@ -104,6 +104,7 @@ export const dict = { "command.category.provider": "Dostawca", "command.category.server": "Serwer", "command.category.session": "Sesja", + "command.category.session.archived": "Zarchiwizowane", "command.category.theme": "Motyw", "command.category.language": "Język", "command.category.file": "Plik", @@ -132,6 +133,7 @@ export const dict = { "command.session.previous.unseen": "Poprzednia nieprzeczytana sesja", "command.session.next.unseen": "Następna nieprzeczytana sesja", "command.session.archive": "Zarchiwizuj sesję", + "command.session.unarchive": "Przywróć sesję z archiwum", "command.palette": "Paleta poleceń", "command.theme.cycle": "Przełącz motyw", "command.theme.set": "Użyj motywu: {{theme}}", @@ -812,6 +814,7 @@ export const dict = { "common.export": "Eksportuj", "common.reset": "Resetuj", "common.archive": "Archiwizuj", + "common.unarchive": "Przywróć z archiwum", "common.delete": "Usuń", "common.close": "Zamknij", "common.edit": "Edytuj", diff --git a/packages/app/src/i18n/ro.ts b/packages/app/src/i18n/ro.ts index c84f9a4ee76e..e8f8385b9151 100644 --- a/packages/app/src/i18n/ro.ts +++ b/packages/app/src/i18n/ro.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "Furnizor", "command.category.server": "Server", "command.category.session": "Sesiune", + "command.category.session.archived": "Arhivate", "command.category.theme": "Temă", "command.category.language": "Limbă", "command.category.file": "Fișier", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "Sesiunea anterioară necitită", "command.session.next.unseen": "Sesiunea următoare necitită", "command.session.archive": "Arhivează sesiunea", + "command.session.unarchive": "Dezarhivează sesiunea", "command.palette": "Paletă de comenzi", "command.theme.cycle": "Schimbă tema", "command.theme.set": "Folosește tema: {{theme}}", @@ -843,6 +845,7 @@ export const dict = { "common.export": "Exportă", "common.reset": "Resetează", "common.archive": "Arhivează", + "common.unarchive": "Dezarhivează", "common.delete": "Șterge", "common.close": "Închide", "common.edit": "Editează", diff --git a/packages/app/src/i18n/ru.ts b/packages/app/src/i18n/ru.ts index cf4fa8d8f4ca..288c5e40d290 100644 --- a/packages/app/src/i18n/ru.ts +++ b/packages/app/src/i18n/ru.ts @@ -104,6 +104,7 @@ export const dict = { "command.category.provider": "Провайдер", "command.category.server": "Сервер", "command.category.session": "Сессия", + "command.category.session.archived": "Архивные", "command.category.theme": "Тема", "command.category.language": "Язык", "command.category.file": "Файл", @@ -134,6 +135,7 @@ export const dict = { "command.session.previous.unseen": "Предыдущая непрочитанная сессия", "command.session.next.unseen": "Следующая непрочитанная сессия", "command.session.archive": "Архивировать сессию", + "command.session.unarchive": "Извлечь сессию из архива", "command.palette": "Палитра команд", @@ -873,6 +875,7 @@ export const dict = { "common.export": "Экспортировать", "common.reset": "Сбросить", "common.archive": "Архивировать", + "common.unarchive": "Извлечь из архива", "common.delete": "Удалить", "common.close": "Закрыть", "common.edit": "Редактировать", diff --git a/packages/app/src/i18n/si.ts b/packages/app/src/i18n/si.ts index 00ca188b1581..29ee19494923 100644 --- a/packages/app/src/i18n/si.ts +++ b/packages/app/src/i18n/si.ts @@ -97,6 +97,7 @@ export const dict: Record = { "command.category.provider": "සපයන්නා", "command.category.server": "සේවාදායකය", "command.category.session": "සැසිය", + "command.category.session.archived": "සංරක්ෂිත", "command.category.theme": "තේමාව", "command.category.language": "භාෂාව", "command.category.file": "ගොනුව", @@ -125,6 +126,7 @@ export const dict: Record = { "command.session.previous.unseen": "පෙර නොකියවූ සැසිය", "command.session.next.unseen": "ඊළඟ නොකියවූ සැසිය", "command.session.archive": "සංරක්ෂිත සැසිය", + "command.session.unarchive": "සැසිය සංරක්ෂිතයෙන් ඉවත් කරන්න", "command.palette": "විධාන පුවරුව", "command.theme.cycle": "සයිකල් තේමාව", "command.theme.set": "තේමාව භාවිතා කරන්න: {{theme}}", @@ -835,6 +837,7 @@ export const dict: Record = { "common.export": "අපනයනය කරන්න", "common.reset": "යළි පිහිටුවන්න", "common.archive": "සංරක්ෂිතය", + "common.unarchive": "සංරක්ෂිතයෙන් ඉවත් කරන්න", "common.delete": "මකන්න", "common.close": "වසන්න", "common.edit": "සංස්කරණය කරන්න", diff --git a/packages/app/src/i18n/sk.ts b/packages/app/src/i18n/sk.ts index 9992e06cc4af..a8c585cfcf6b 100644 --- a/packages/app/src/i18n/sk.ts +++ b/packages/app/src/i18n/sk.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "Poskytovateľ", "command.category.server": "Server", "command.category.session": "Relácia", + "command.category.session.archived": "Archivované", "command.category.theme": "Motív", "command.category.language": "Jazyk", "command.category.file": "Súbor", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "Predchádzajúca neprečítaná relácia", "command.session.next.unseen": "Ďalšia neprečítaná relácia", "command.session.archive": "Archivovať reláciu", + "command.session.unarchive": "Zrušiť archiváciu sedenia", "command.palette": "Paleta príkazov", "command.theme.cycle": "Prepnúť tému", "command.theme.set": "Použiť tému: {{theme}}", @@ -841,6 +843,7 @@ export const dict = { "common.export": "Exportovať", "common.reset": "Obnoviť", "common.archive": "Archivovať", + "common.unarchive": "Zrušiť archiváciu", "common.delete": "Odstrániť", "common.close": "Zavrieť", "common.edit": "Upraviť", diff --git a/packages/app/src/i18n/sl.ts b/packages/app/src/i18n/sl.ts index 3c23fcd7f708..a22eeae78c04 100644 --- a/packages/app/src/i18n/sl.ts +++ b/packages/app/src/i18n/sl.ts @@ -97,6 +97,7 @@ export const dict = { "command.category.provider": "Ponudnik", "command.category.server": "Strežnik", "command.category.session": "Seja", + "command.category.session.archived": "Arhivirano", "command.category.theme": "Tema", "command.category.language": "Jezik", "command.category.file": "Datoteka", @@ -125,6 +126,7 @@ export const dict = { "command.session.previous.unseen": "Prejšnja neprebrana seja", "command.session.next.unseen": "Naslednja neprebrana seja", "command.session.archive": "Arhiv seje", + "command.session.unarchive": "Odstrani sejo iz arhiva", "command.palette": "Paleta ukazov", "command.theme.cycle": "Tema cikla", "command.theme.set": "Uporabite temo: {{theme}}", @@ -843,6 +845,7 @@ export const dict = { "common.export": "Izvozi", "common.reset": "Ponastavi", "common.archive": "Arhiv", + "common.unarchive": "Odstrani iz arhiva", "common.delete": "Izbriši", "common.close": "Zapri", "common.edit": "Uredi", diff --git a/packages/app/src/i18n/sq.ts b/packages/app/src/i18n/sq.ts index ca94793ab0e6..b7c71346c313 100644 --- a/packages/app/src/i18n/sq.ts +++ b/packages/app/src/i18n/sq.ts @@ -98,6 +98,7 @@ export const dict = { "command.category.provider": "Ofruesi", "command.category.server": "Serveri", "command.category.session": "Sesioni", + "command.category.session.archived": "Arkivuara", "command.category.theme": "Tema", "command.category.language": "Gjuha", "command.category.file": "Skedari", @@ -126,6 +127,7 @@ export const dict = { "command.session.previous.unseen": "Sesioni i mëparshëm i palexuar", "command.session.next.unseen": "Sesioni tjetër i palexuar", "command.session.archive": "Sesioni i arkivit", + "command.session.unarchive": "Hiq sesionin nga arkivi", "command.palette": "Paleta e komandave", "command.theme.cycle": "Tema e ciklit", "command.theme.set": "Përdorni temën: {{theme}}", @@ -841,6 +843,7 @@ export const dict = { "common.export": "Eksporto", "common.reset": "Rivendos", "common.archive": "Arkivi", + "common.unarchive": "Hiq nga arkivi", "common.delete": "Fshi", "common.close": "Mbylle", "common.edit": "Redakto", diff --git a/packages/app/src/i18n/sr.ts b/packages/app/src/i18n/sr.ts index f059160087d8..418604fc7872 100644 --- a/packages/app/src/i18n/sr.ts +++ b/packages/app/src/i18n/sr.ts @@ -98,6 +98,7 @@ export const dict = { "command.category.provider": "Добављач", "command.category.server": "Сервер", "command.category.session": "Сесија", + "command.category.session.archived": "Архивирано", "command.category.theme": "Тема", "command.category.language": "Језик", "command.category.file": "датотека", @@ -126,6 +127,7 @@ export const dict = { "command.session.previous.unseen": "Претходна непрочитана сесија", "command.session.next.unseen": "Следећа непрочитана сесија", "command.session.archive": "Архивска сесија", + "command.session.unarchive": "Врати сесију из архиве", "command.palette": "Командна палета", "command.theme.cycle": "Тема циклуса", "command.theme.set": "Користите тему: {{theme}}", @@ -841,6 +843,7 @@ export const dict = { "common.export": "Извоз", "common.reset": "Ресет", "common.archive": "Архива", + "common.unarchive": "Врати из архиве", "common.delete": "Избриши", "common.close": "Затвори", "common.edit": "Уреди", diff --git a/packages/app/src/i18n/sv.ts b/packages/app/src/i18n/sv.ts index 39b363c6b657..c1c3e8c643d4 100644 --- a/packages/app/src/i18n/sv.ts +++ b/packages/app/src/i18n/sv.ts @@ -98,6 +98,7 @@ export const dict = { "command.category.provider": "Leverantör", "command.category.server": "Server", "command.category.session": "Session", + "command.category.session.archived": "Arkiverade", "command.category.theme": "Tema", "command.category.language": "Språk", "command.category.file": "Fil", @@ -126,6 +127,7 @@ export const dict = { "command.session.previous.unseen": "Föregående oläst session", "command.session.next.unseen": "Nästa olästa session", "command.session.archive": "Arkivera session", + "command.session.unarchive": "Hämta session från arkiv", "command.palette": "Kommandopalett", "command.theme.cycle": "Växla tema", "command.theme.set": "Använd tema: {{theme}}", @@ -843,6 +845,7 @@ export const dict = { "common.export": "Exportera", "common.reset": "Återställ", "common.archive": "Arkivera", + "common.unarchive": "Hämta från arkiv", "common.delete": "Radera", "common.close": "Stäng", "common.edit": "Redigera", diff --git a/packages/app/src/i18n/tg.ts b/packages/app/src/i18n/tg.ts index ffa08409f684..a00ece2fc375 100644 --- a/packages/app/src/i18n/tg.ts +++ b/packages/app/src/i18n/tg.ts @@ -98,6 +98,7 @@ export const dict = { "command.category.provider": "Таъминкунанда", "command.category.server": "Сервер", "command.category.session": "Сессия", + "command.category.session.archived": "Бойгонишуда", "command.category.theme": "Мавзӯъ", "command.category.language": "Забон", "command.category.file": "Файл", @@ -126,6 +127,7 @@ export const dict = { "command.session.previous.unseen": "Сеанси қаблии хонданашуда", "command.session.next.unseen": "Сеанси навбатии нохонда", "command.session.archive": "Сеанси архив", + "command.session.unarchive": "Ҷаласаро аз бойгонӣ баровардан", "command.palette": "Палитраи фармон", "command.theme.cycle": "Мавзӯи велосипедронӣ", "command.theme.set": "Мавзӯъро истифода баред: {{theme}}", @@ -841,6 +843,7 @@ export const dict = { "common.export": "Содирот", "common.reset": "Бозсозӣ", "common.archive": "Архив", + "common.unarchive": "Аз бойгонӣ баровардан", "common.delete": "Нобуд кунед", "common.close": "Пӯшед", "common.edit": "Таҳрир", diff --git a/packages/app/src/i18n/th.ts b/packages/app/src/i18n/th.ts index 1a0e9db72b1b..730642b17772 100644 --- a/packages/app/src/i18n/th.ts +++ b/packages/app/src/i18n/th.ts @@ -103,6 +103,7 @@ export const dict = { "command.category.provider": "ผู้ให้บริการ", "command.category.server": "เซิร์ฟเวอร์", "command.category.session": "เซสชัน", + "command.category.session.archived": "จัดเก็บแล้ว", "command.category.theme": "ธีม", "command.category.language": "ภาษา", "command.category.file": "ไฟล์", @@ -133,6 +134,7 @@ export const dict = { "command.session.previous.unseen": "เซสชันที่ยังไม่ได้อ่านก่อนหน้า", "command.session.next.unseen": "เซสชันที่ยังไม่ได้อ่านถัดไป", "command.session.archive": "จัดเก็บเซสชัน", + "command.session.unarchive": "เลิกจัดเก็บเซสชัน", "command.palette": "ชุดคำสั่ง", @@ -858,6 +860,7 @@ export const dict = { "common.export": "ส่งออก", "common.reset": "รีเซ็ต", "common.archive": "จัดเก็บ", + "common.unarchive": "เลิกจัดเก็บ", "common.delete": "ลบ", "common.close": "ปิด", "common.edit": "แก้ไข", diff --git a/packages/app/src/i18n/tk.ts b/packages/app/src/i18n/tk.ts index 2b144c6a26c7..078027223631 100644 --- a/packages/app/src/i18n/tk.ts +++ b/packages/app/src/i18n/tk.ts @@ -98,6 +98,7 @@ export const dict = { "command.category.provider": "Üpjün ediji", "command.category.server": "Serwer", "command.category.session": "Sessiýa", + "command.category.session.archived": "Arhiwlenen", "command.category.theme": "Mowzuk", "command.category.language": "Dil", "command.category.file": "Faýl", @@ -126,6 +127,7 @@ export const dict = { "command.session.previous.unseen": "Öňki okalmadyk sessiýa", "command.session.next.unseen": "Indiki okalmadyk sessiýa", "command.session.archive": "Arhiw sessiýasy", + "command.session.unarchive": "Sessiýany arhiwden çykar", "command.palette": "Buýruk palitrasy", "command.theme.cycle": "Sikl mowzugy", "command.theme.set": "Tema ulanyň: {{theme}}", @@ -838,6 +840,7 @@ export const dict = { "common.export": "Eksport", "common.reset": "Täzeden düzmek", "common.archive": "Arhiw", + "common.unarchive": "Arhiwden çykar", "common.delete": "Poz", "common.close": ".Akyn", "common.edit": "Redaktirläň", diff --git a/packages/app/src/i18n/tr.ts b/packages/app/src/i18n/tr.ts index 85623036e429..f8a5ced0f208 100644 --- a/packages/app/src/i18n/tr.ts +++ b/packages/app/src/i18n/tr.ts @@ -109,6 +109,7 @@ export const dict = { "command.category.provider": "Sağlayıcı", "command.category.server": "Sunucu", "command.category.session": "Oturum", + "command.category.session.archived": "Arşivlenmiş", "command.category.theme": "Tema", "command.category.language": "Dil", "command.category.file": "Dosya", @@ -139,6 +140,7 @@ export const dict = { "command.session.previous.unseen": "Önceki okunmamış oturum", "command.session.next.unseen": "Sonraki okunmamış oturum", "command.session.archive": "Oturumu arşivle", + "command.session.unarchive": "Oturumu arşivden çıkar", "command.palette": "Komut paleti", @@ -876,6 +878,7 @@ export const dict = { "common.export": "Dışa aktar", "common.reset": "Sıfırla", "common.archive": "Arşivle", + "common.unarchive": "Arşivden çıkar", "common.delete": "Sil", "common.close": "Kapat", "common.edit": "Düzenle", diff --git a/packages/app/src/i18n/uk.ts b/packages/app/src/i18n/uk.ts index 54732a87b7eb..4610ee3152f1 100644 --- a/packages/app/src/i18n/uk.ts +++ b/packages/app/src/i18n/uk.ts @@ -105,6 +105,7 @@ export const dict = { "command.category.provider": "Провайдер", "command.category.server": "Сервер", "command.category.session": "Сесія", + "command.category.session.archived": "Архівні", "command.category.theme": "Тема", "command.category.language": "Мова", "command.category.file": "Файл", @@ -135,6 +136,7 @@ export const dict = { "command.session.previous.unseen": "Попередня непрочитана сесія", "command.session.next.unseen": "Наступна непрочитана сесія", "command.session.archive": "Архівувати сесію", + "command.session.unarchive": "Вилучити сесію з архіву", "command.palette": "Палітра команд", @@ -925,6 +927,7 @@ export const dict = { "common.export": "Експортувати", "common.reset": "Скинути", "common.archive": "Архівувати", + "common.unarchive": "Вилучити з архіву", "common.delete": "Видалити", "common.close": "Закрити", "common.edit": "Редагувати", diff --git a/packages/app/src/i18n/ur.ts b/packages/app/src/i18n/ur.ts index 2ab69e7aec71..6efe866d4fbe 100644 --- a/packages/app/src/i18n/ur.ts +++ b/packages/app/src/i18n/ur.ts @@ -105,6 +105,7 @@ export const dict = { "command.category.provider": "فراہم کنندہ", "command.category.server": "سرور", "command.category.session": "سیشن", + "command.category.session.archived": "آرکائیو شدہ", "command.category.theme": "تھیم", "command.category.language": "زبان", "command.category.file": "فائل", @@ -133,6 +134,7 @@ export const dict = { "command.session.previous.unseen": "پچھلا بغیر پڑھا ہوا سیشن", "command.session.next.unseen": "اگلا بغیر پڑھا ہوا سیشن", "command.session.archive": "سیشن آرکائیو کریں", + "command.session.unarchive": "سیشن آرکائیو سے واپس لائیں", "command.palette": "کمانڈ پیلیٹ", "command.theme.cycle": "اگلی تھیم منتخب کریں", "command.theme.set": "تھیم استعمال کریں: {{theme}}", @@ -849,6 +851,7 @@ export const dict = { "common.export": "برآمد کریں", "common.reset": "دوبارہ ترتیب دیں۔", "common.archive": "آرکائیو کریں", + "common.unarchive": "آرکائیو سے واپس لائیں", "common.delete": "حذف کریں۔", "common.close": "بند", "common.edit": "ترمیم کریں۔", diff --git a/packages/app/src/i18n/uz.ts b/packages/app/src/i18n/uz.ts index 8cb7097fc07a..5fd13040bb8c 100644 --- a/packages/app/src/i18n/uz.ts +++ b/packages/app/src/i18n/uz.ts @@ -99,6 +99,7 @@ export const dict = { "command.category.provider": "Provayder", "command.category.server": "Server", "command.category.session": "Sessiya", + "command.category.session.archived": "Arxivlangan", "command.category.theme": "Mavzu", "command.category.language": "Til", "command.category.file": "Fayl", @@ -127,6 +128,7 @@ export const dict = { "command.session.previous.unseen": "Oldingi oʻqilmagan seans", "command.session.next.unseen": "Keyingi oʻqilmagan seans", "command.session.archive": "Arxiv seansi", + "command.session.unarchive": "Sessiyani arxivdan chiqarish", "command.palette": "Buyruqlar palitrasi", "command.theme.cycle": "Keyingi mavzu", "command.theme.set": "Mavzudan foydalaning: {{theme}}", @@ -844,6 +846,7 @@ export const dict = { "common.export": "Eksport", "common.reset": "Qayta tiklash", "common.archive": "Arxiv", + "common.unarchive": "Arxivdan chiqarish", "common.delete": "Oʻchirish", "common.close": "Yopish", "common.edit": "Tahrirlash", diff --git a/packages/app/src/i18n/vi.ts b/packages/app/src/i18n/vi.ts index 06fda4ce707c..1ff1abab28d2 100644 --- a/packages/app/src/i18n/vi.ts +++ b/packages/app/src/i18n/vi.ts @@ -104,6 +104,7 @@ export const dict = { "command.category.provider": "Nhà cung cấp", "command.category.server": "Máy chủ", "command.category.session": "Phiên", + "command.category.session.archived": "Đã lưu trữ", "command.category.theme": "Chủ đề", "command.category.language": "Ngôn ngữ", "command.category.file": "Tệp", @@ -132,6 +133,7 @@ export const dict = { "command.session.previous.unseen": "Phiên chưa đọc trước đó", "command.session.next.unseen": "Phiên chưa đọc tiếp theo", "command.session.archive": "Lưu trữ phiên", + "command.session.unarchive": "Bỏ lưu trữ phiên", "command.palette": "Bảng lệnh", "command.theme.cycle": "Chuyển chủ đề", "command.theme.set": "Sử dụng chủ đề: {{theme}}", @@ -849,6 +851,7 @@ export const dict = { "common.export": "Xuất", "common.reset": "Đặt lại", "common.archive": "Lưu trữ", + "common.unarchive": "Bỏ lưu trữ", "common.delete": "Xóa", "common.close": "Đóng", "common.edit": "Chỉnh sửa", diff --git a/packages/app/src/i18n/zh.ts b/packages/app/src/i18n/zh.ts index b0ba0453479b..92e3880b5f55 100644 --- a/packages/app/src/i18n/zh.ts +++ b/packages/app/src/i18n/zh.ts @@ -107,6 +107,7 @@ export const dict = { "command.category.provider": "提供商", "command.category.server": "服务器", "command.category.session": "会话", + "command.category.session.archived": "已归档", "command.category.theme": "主题", "command.category.language": "语言", "command.category.file": "文件", @@ -142,6 +143,7 @@ export const dict = { "command.session.previous.unseen": "上一个未读会话", "command.session.next.unseen": "下一个未读会话", "command.session.archive": "归档会话", + "command.session.unarchive": "取消归档会话", "command.palette": "命令面板", @@ -854,6 +856,7 @@ export const dict = { "common.export": "导出", "common.reset": "重置", "common.archive": "归档", + "common.unarchive": "取消归档", "common.delete": "删除", "common.close": "关闭", "common.edit": "编辑", diff --git a/packages/app/src/i18n/zht.ts b/packages/app/src/i18n/zht.ts index 6cc3d555289d..fb6a6a16aed6 100644 --- a/packages/app/src/i18n/zht.ts +++ b/packages/app/src/i18n/zht.ts @@ -107,6 +107,7 @@ export const dict = { "command.category.provider": "提供者", "command.category.server": "伺服器", "command.category.session": "工作階段", + "command.category.session.archived": "已封存", "command.category.theme": "主題", "command.category.language": "語言", "command.category.file": "檔案", @@ -137,6 +138,7 @@ export const dict = { "command.session.previous.unseen": "上一個未讀工作階段", "command.session.next.unseen": "下一個未讀工作階段", "command.session.archive": "封存工作階段", + "command.session.unarchive": "取消封存工作階段", "command.palette": "命令面板", @@ -851,6 +853,7 @@ export const dict = { "common.export": "匯出", "common.reset": "重設", "common.archive": "封存", + "common.unarchive": "取消封存", "common.delete": "刪除", "common.close": "關閉", "common.edit": "編輯",