feat: show the desktop app's updates and channel in the general settings

This commit is contained in:
Linus Rath
2026-11-03 09:56:16 +01:00
parent 3b1fa089aa
commit 391edb8f92
34 changed files with 919 additions and 0 deletions
@@ -0,0 +1,125 @@
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react';
import { afterEach, describe, expect, it, vi } from 'vitest';
import type { BulwarkDesktopBridge, DesktopUpdateState, DesktopUpdatesBridge } from '@/lib/desktop/types';
import { DesktopUpdateSettings } from '../desktop-update-settings';
vi.mock('../settings-section', async (importOriginal) => ({
...(await importOriginal<typeof import('../settings-section')>()),
SettingsSection: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
}));
const base: DesktopUpdateState = {
version: '1.0.0',
channel: 'stable',
channelLocked: false,
allowed: true,
ability: 'install',
perMachine: false,
status: 'idle',
};
function bridge(state: Partial<DesktopUpdateState>) {
const full = { ...base, ...state };
let push: (next: DesktopUpdateState) => void = () => {};
const updates: DesktopUpdatesBridge = {
state: vi.fn(async () => full),
check: vi.fn(async () => full),
setChannel: vi.fn(async (channel) => ({ ...full, channel })),
installOlder: vi.fn(async () => full),
restart: vi.fn(),
openDownload: vi.fn(),
onChanged: (listener) => {
push = listener;
return () => {};
},
};
window.bulwarkDesktop = { version: 1, platform: 'win32', updates } as BulwarkDesktopBridge;
return { updates, push: (next: Partial<DesktopUpdateState>) => act(() => push({ ...full, ...next })) };
}
afterEach(() => {
window.bulwarkDesktop = undefined;
});
describe('updates in the settings', () => {
it('shows nothing in a browser', () => {
const { container } = render(<DesktopUpdateSettings />);
expect(container.textContent).toBe('');
});
it('shows nothing in a copy that cannot update', async () => {
const { updates } = bridge({ ability: 'none' });
const { container } = render(<DesktopUpdateSettings />);
await waitFor(() => expect(updates.state).toHaveBeenCalled());
await act(async () => {});
expect(container.textContent).toBe('');
});
it('offers to restart once an update is ready, and only then', async () => {
const { updates, push } = bridge({});
render(<DesktopUpdateSettings />);
await screen.findByRole('button', { name: 'check' });
expect(screen.queryByRole('button', { name: 'restart' })).toBeNull();
push({ status: 'ready', target: '1.1.0' });
fireEvent.click(await screen.findByRole('button', { name: 'restart' }));
expect(updates.restart).toHaveBeenCalledTimes(1);
expect(screen.queryByRole('button', { name: 'check' })).toBeNull();
});
it('can check again, but not while it is already checking or downloading', async () => {
const { updates, push } = bridge({});
render(<DesktopUpdateSettings />);
const check = await screen.findByRole<HTMLButtonElement>('button', { name: 'check' });
fireEvent.click(check);
expect(updates.check).toHaveBeenCalledTimes(1);
push({ status: 'downloading', target: '1.1.0', percent: 20 });
await waitFor(() => expect(screen.getByRole<HTMLButtonElement>('button', { name: 'check' }).disabled).toBe(true));
});
it('switches the channel through the shell', async () => {
const { updates } = bridge({});
render(<DesktopUpdateSettings />);
const select = await screen.findByRole('combobox');
fireEvent.change(select, { target: { value: 'beta' } });
expect(updates.setChannel).toHaveBeenCalledWith('beta');
});
it('marks the channel as set by the organisation when a policy locks it', async () => {
bridge({ channelLocked: true, channel: 'beta' });
render(<DesktopUpdateSettings />);
const select = await screen.findByRole<HTMLSelectElement>('combobox');
expect(select.value).toBe('beta');
expect(select.closest('[inert]')).not.toBeNull();
});
it('downgrades only on a click, and only where this copy can install it', async () => {
const { updates, push } = bridge({ status: 'older-available', target: '0.9.0', version: '1.0.0-beta.1' });
render(<DesktopUpdateSettings />);
fireEvent.click(await screen.findByRole('button', { name: 'install_older' }));
expect(updates.installOlder).toHaveBeenCalledTimes(1);
push({ status: 'older-available', target: '0.9.0', ability: 'notify' });
await waitFor(() => expect(screen.queryByRole('button', { name: 'install_older' })).toBeNull());
});
it('on an MSI it says a version exists and offers no download to a user who cannot install it', async () => {
bridge({ status: 'available', target: '1.1.0', ability: 'notify', perMachine: true });
render(<DesktopUpdateSettings />);
await screen.findByText('status_available_per_machine');
expect(screen.queryByRole('button', { name: 'download' })).toBeNull();
});
it('links to the download where the user installs it themselves', async () => {
const { updates } = bridge({ status: 'available', target: '1.1.0', ability: 'notify' });
render(<DesktopUpdateSettings />);
fireEvent.click(await screen.findByRole('button', { name: 'download' }));
expect(updates.openDownload).toHaveBeenCalledTimes(1);
});
it('says the organisation turned updates off', async () => {
bridge({ status: 'off', allowed: false });
render(<DesktopUpdateSettings />);
await screen.findByText('status_off');
});
});
@@ -0,0 +1,93 @@
"use client";
import { useEffect, useState } from "react";
import { useTranslations } from "next-intl";
import { Button } from "@/components/ui/button";
import { getDesktopBridge } from "@/lib/desktop/bridge";
import type { DesktopUpdateChannel, DesktopUpdateState } from "@/lib/desktop/types";
import { Select, SettingItem, SettingsSection } from "./settings-section";
/**
* The desktop app's updates: version, what's going on, and stable or beta. Only there,
* and only in a copy that can get updates: a browser has nothing to show.
*/
export function DesktopUpdateSettings() {
const t = useTranslations("desktop_updates");
const [state, setState] = useState<DesktopUpdateState | null>(null);
useEffect(() => {
const updates = getDesktopBridge()?.updates;
if (!updates) return;
let live = true;
void updates.state().then((value) => {
if (live) setState(value);
});
const stop = updates.onChanged(setState);
return () => {
live = false;
stop();
};
}, []);
const updates = getDesktopBridge()?.updates;
if (!state || !updates || state.ability === "none") return null;
const version = state.target ?? state.version;
const busy = state.status === "checking" || state.status === "downloading";
const statusText = (() => {
switch (state.status) {
case "checking":
return t("status_checking");
case "up-to-date":
return t("status_up_to_date");
case "downloading":
return t("status_downloading", { version });
case "ready":
return t("status_ready", { version });
case "available":
return state.perMachine ? t("status_available_per_machine", { version }) : t("status_available", { version });
case "older-available":
return t("status_older", { version });
case "error":
return t("status_error");
case "off":
return t("status_off");
default:
return t("status_idle");
}
})();
return (
<SettingsSection id="desktop-updates" title={t("title")}>
<SettingItem label={t("version_label", { version: state.version })} description={statusText} locked={!state.allowed}>
{state.status === "ready" ? (
<Button size="sm" onClick={() => updates.restart()}>
{t("restart")}
</Button>
) : state.status === "available" && !state.perMachine ? (
<Button variant="outline" size="sm" onClick={() => updates.openDownload()}>
{t("download")}
</Button>
) : state.status === "older-available" && state.ability === "install" ? (
<Button variant="outline" size="sm" onClick={() => void updates.installOlder().then(setState)}>
{t("install_older")}
</Button>
) : (
<Button variant="outline" size="sm" disabled={busy} onClick={() => void updates.check().then(setState)}>
{t("check")}
</Button>
)}
</SettingItem>
<SettingItem label={t("channel_label")} description={t("channel_description")} locked={state.channelLocked || !state.allowed}>
<Select
value={state.channel}
onChange={(value) => void updates.setChannel(value as DesktopUpdateChannel).then(setState)}
options={[
{ value: "stable", label: t("channel_stable") },
{ value: "beta", label: t("channel_beta") },
]}
/>
</SettingItem>
</SettingsSection>
);
}
+3
View File
@@ -9,6 +9,7 @@ import { useTour } from '@/components/tour/tour-provider';
import { Button } from '@/components/ui/button';
import { PlayCircle } from '@/components/icons';
import { IS_LITE } from '@/lib/lite';
import { DesktopUpdateSettings } from './desktop-update-settings';
/**
* The General page: language and time, which links the browser hands to
@@ -46,6 +47,8 @@ export function GeneralSettings({ supportsCalendar }: { supportsCalendar: boolea
/>
</SettingItem>
</SettingsSection>
{!IS_LITE && <DesktopUpdateSettings />}
</div>
);
}
+38
View File
@@ -111,6 +111,43 @@ export interface DesktopPluginsBridge {
install: (slug: string, version?: string) => Promise<DesktopPluginInstallResult>;
}
export type DesktopUpdateChannel = 'stable' | 'beta';
export interface DesktopUpdateState {
/** The running version. */
version: string;
channel: DesktopUpdateChannel;
/** Set by the `UpdateChannel` policy. */
channelLocked: boolean;
/** False when the `AutoUpdate` policy turned updates off. */
allowed: boolean;
/** `install`: replaces itself. `notify`: an MSI, deb, rpm or unsigned macOS, says a version exists. `none`: a development run. */
ability: 'install' | 'notify' | 'none';
/** Windows, and not the per-user installer: an MSI, whose updates come the way it did. */
perMachine: boolean;
/**
* `available`: a newer version, for `notify` installs. `older-available`: on stable, with
* a beta running, and the newest stable is older than it. `off`: the policy.
*/
status: 'idle' | 'checking' | 'up-to-date' | 'downloading' | 'ready' | 'available' | 'older-available' | 'error' | 'off';
/** The version the status is about. */
target?: string;
percent?: number;
}
export interface DesktopUpdatesBridge {
state: () => Promise<DesktopUpdateState>;
check: () => Promise<DesktopUpdateState>;
/** Going to beta asks natively first. A locked channel stays as it is. */
setChannel: (channel: DesktopUpdateChannel) => Promise<DesktopUpdateState>;
/** Beta to stable, with a native question that says what it means. */
installOlder: () => Promise<DesktopUpdateState>;
/** Saves drafts through the normal quit, then installs. Nothing happens unless an update is ready. */
restart: () => void;
openDownload: () => void;
onChanged: (listener: (state: DesktopUpdateState) => void) => () => void;
}
export interface BulwarkDesktopBridge {
version: number;
platform: 'win32' | 'darwin' | 'linux';
@@ -120,6 +157,7 @@ export interface BulwarkDesktopBridge {
menu?: DesktopMenuBridge;
shell?: DesktopShellBridge;
lifecycle?: DesktopLifecycleBridge;
updates?: DesktopUpdatesBridge;
servers?: DesktopServersBridge;
auth?: DesktopAuthBridge;
plugins?: DesktopPluginsBridge;
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "أدخل عنوان الخادم أولًا.",
"server_declined": "لم تسمح بهذا الخادم، لذا لم يُرسل إليه أي شيء.",
"server_invalid": "عنوان الخادم هذا غير صالح."
},
"desktop_updates": {
"title": "التحديثات",
"version_label": "Bulwark {version}",
"status_idle": "يبحث Bulwark عن التحديثات بنفسه.",
"status_checking": "جارٍ البحث عن تحديثات…",
"status_up_to_date": "لديك أحدث إصدار.",
"status_downloading": "جارٍ تنزيل الإصدار {version}…",
"status_ready": "الإصدار {version} جاهز. سيُثبَّت عند الخروج في المرة القادمة، أو أعد التشغيل الآن.",
"status_available": "الإصدار {version} متاح.",
"status_available_per_machine": "الإصدار {version} متاح. Bulwark مثبَّت لجميع مستخدمي هذا الكمبيوتر، لذلك يثبّت المسؤول التحديثات.",
"status_older": "لديك إصدار تجريبي. الإصدار المستقر {version} أقدم، لذلك يبقى Bulwark على هذا الإصدار حتى يلحق به الإصدار المستقر.",
"status_error": "تعذّر البحث عن تحديثات. سيحاول Bulwark مرة أخرى لاحقًا.",
"status_off": "أوقفت مؤسستك التحديثات داخل التطبيق.",
"check": "ابحث الآن",
"restart": "أعد التشغيل للتحديث",
"download": "تنزيل",
"install_older": "تثبيت إصدار أقدم…",
"channel_label": "قناة التحديث",
"channel_description": "تصل الإصدارات التجريبية أبكر وقد تكون فيها مشكلات أكثر.",
"channel_stable": "مستقر",
"channel_beta": "تجريبي"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Primer escriu l'adreça del servidor.",
"server_declined": "No has permès aquest servidor, així que no s'hi ha enviat res.",
"server_invalid": "Aquesta adreça de servidor no és vàlida."
},
"desktop_updates": {
"title": "Actualitzacions",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark cerca actualitzacions tot sol.",
"status_checking": "S’estan cercant actualitzacions…",
"status_up_to_date": "Teniu l’última versió.",
"status_downloading": "S’està baixant la versió {version}…",
"status_ready": "La versió {version} està a punt. S’instal·larà la pròxima vegada que sortiu, o reinicieu ara.",
"status_available": "La versió {version} està disponible.",
"status_available_per_machine": "La versió {version} està disponible. Bulwark està instal·lat per a tothom en aquest ordinador, així que un administrador instal·la les actualitzacions.",
"status_older": "Teniu una beta. La versió estable {version} és anterior, així que Bulwark es queda en aquesta versió fins que l’estable l’atrapi.",
"status_error": "No s’han pogut cercar actualitzacions. Bulwark ho tornarà a provar més tard.",
"status_off": "La vostra organització ha desactivat les actualitzacions a l’aplicació.",
"check": "Cerca ara",
"restart": "Reinicia per actualitzar",
"download": "Baixa",
"install_older": "Instal·la una versió anterior…",
"channel_label": "Canal d’actualització",
"channel_description": "Les versions beta arriben abans i poden tenir més problemes.",
"channel_stable": "Estable",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Nejdřív zadejte adresu serveru.",
"server_declined": "Tento server jste nepovolili, proto se na něj nic neodeslalo.",
"server_invalid": "Tato adresa serveru není platná."
},
"desktop_updates": {
"title": "Aktualizace",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark hledá aktualizace sám.",
"status_checking": "Hledání aktualizací…",
"status_up_to_date": "Máte nejnovější verzi.",
"status_downloading": "Stahování verze {version}…",
"status_ready": "Verze {version} je připravena. Nainstaluje se při příštím ukončení, nebo restartujte hned.",
"status_available": "Je dostupná verze {version}.",
"status_available_per_machine": "Je dostupná verze {version}. Bulwark je nainstalován pro všechny na tomto počítači, takže aktualizace instaluje správce.",
"status_older": "Máte verzi beta. Stabilní verze {version} je starší, takže Bulwark zůstane na této verzi, dokud ji stabilní nedožene.",
"status_error": "Aktualizace se nepodařilo zkontrolovat. Bulwark to zkusí znovu později.",
"status_off": "Vaše organizace vypnula aktualizace v aplikaci.",
"check": "Zkontrolovat",
"restart": "Restartovat a aktualizovat",
"download": "Stáhnout",
"install_older": "Nainstalovat starší verzi…",
"channel_label": "Kanál aktualizací",
"channel_description": "Verze beta přicházejí dříve a mohou mít více problémů.",
"channel_stable": "Stabilní",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Angiv først serverens adresse.",
"server_declined": "Du tillod ikke denne server, så der blev ikke sendt noget til den.",
"server_invalid": "Denne serveradresse er ikke gyldig."
},
"desktop_updates": {
"title": "Opdateringer",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark søger selv efter opdateringer.",
"status_checking": "Søger efter opdateringer…",
"status_up_to_date": "Du har den nyeste version.",
"status_downloading": "Henter version {version}…",
"status_ready": "Version {version} er klar. Den installeres, næste gang du afslutter, eller genstart nu.",
"status_available": "Version {version} er tilgængelig.",
"status_available_per_machine": "Version {version} er tilgængelig. Bulwark er installeret for alle på denne computer, så en administrator installerer opdateringer.",
"status_older": "Du har en beta. Den stabile version {version} er ældre, så Bulwark bliver på denne version, indtil den stabile har indhentet den.",
"status_error": "Kunne ikke søge efter opdateringer. Bulwark prøver igen senere.",
"status_off": "Din organisation har slået opdateringer i appen fra.",
"check": "Søg nu",
"restart": "Genstart for at opdatere",
"download": "Hent",
"install_older": "Installer ældre version…",
"channel_label": "Opdateringskanal",
"channel_description": "Betaversioner kommer tidligere og kan have flere problemer.",
"channel_stable": "Stabil",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Geben Sie zuerst die Adresse Ihres Servers ein.",
"server_declined": "Sie haben diesen Server nicht zugelassen, daher wurde nichts an ihn gesendet.",
"server_invalid": "Diese Serveradresse ist ungültig."
},
"desktop_updates": {
"title": "Updates",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark sucht selbst nach Updates.",
"status_checking": "Suche nach Updates…",
"status_up_to_date": "Sie haben die neueste Version.",
"status_downloading": "Version {version} wird heruntergeladen…",
"status_ready": "Version {version} ist bereit. Sie wird beim nächsten Beenden installiert, oder starten Sie jetzt neu.",
"status_available": "Version {version} ist verfügbar.",
"status_available_per_machine": "Version {version} ist verfügbar. Bulwark ist für alle auf diesem Computer installiert, deshalb installiert ein Administrator Updates.",
"status_older": "Sie haben eine Beta. Die stabile Version {version} ist älter, deshalb bleibt Bulwark auf dieser Version, bis die stabile Version aufgeholt hat.",
"status_error": "Die Suche nach Updates hat nicht geklappt. Bulwark versucht es später noch einmal.",
"status_off": "Ihre Organisation hat Updates in der App ausgeschaltet.",
"check": "Jetzt suchen",
"restart": "Neu starten und aktualisieren",
"download": "Herunterladen",
"install_older": "Ältere Version installieren…",
"channel_label": "Update-Kanal",
"channel_description": "Beta-Versionen kommen früher und können mehr Probleme haben.",
"channel_stable": "Stabil",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Enter your server's address first.",
"server_declined": "You didn't allow this server, so nothing was sent to it.",
"server_invalid": "This server address isn't valid."
},
"desktop_updates": {
"title": "Updates",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark checks for updates by itself.",
"status_checking": "Checking for updates…",
"status_up_to_date": "You have the latest version.",
"status_downloading": "Downloading version {version}…",
"status_ready": "Version {version} is ready. It installs the next time you quit, or restart now.",
"status_available": "Version {version} is available.",
"status_available_per_machine": "Version {version} is available. Bulwark is installed for everyone on this computer, so an administrator installs updates.",
"status_older": "You have a beta. Stable {version} is older, so Bulwark stays on this version until stable catches up.",
"status_error": "Couldn't check for updates. Bulwark tries again later.",
"status_off": "Your organisation turned off updates in the app.",
"check": "Check now",
"restart": "Restart to update",
"download": "Download",
"install_older": "Install older version…",
"channel_label": "Update channel",
"channel_description": "Beta versions come earlier and can have more problems.",
"channel_stable": "Stable",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Primero escribe la dirección del servidor.",
"server_declined": "No permitiste este servidor, así que no se le envió nada.",
"server_invalid": "Esta dirección de servidor no es válida."
},
"desktop_updates": {
"title": "Actualizaciones",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark busca actualizaciones por sí solo.",
"status_checking": "Buscando actualizaciones…",
"status_up_to_date": "Tienes la última versión.",
"status_downloading": "Descargando la versión {version}…",
"status_ready": "La versión {version} está lista. Se instalará la próxima vez que salgas, o reinicia ahora.",
"status_available": "La versión {version} está disponible.",
"status_available_per_machine": "La versión {version} está disponible. Bulwark está instalado para todos en este equipo, así que un administrador instala las actualizaciones.",
"status_older": "Tienes una beta. La versión estable {version} es anterior, así que Bulwark sigue en esta versión hasta que la estable la alcance.",
"status_error": "No se pudo buscar actualizaciones. Bulwark lo intentará más tarde.",
"status_off": "Tu organización ha desactivado las actualizaciones en la aplicación.",
"check": "Buscar ahora",
"restart": "Reiniciar para actualizar",
"download": "Descargar",
"install_older": "Instalar versión anterior…",
"channel_label": "Canal de actualización",
"channel_description": "Las versiones beta llegan antes y pueden tener más problemas.",
"channel_stable": "Estable",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Sisesta kõigepealt serveri aadress.",
"server_declined": "Sa ei lubanud seda serverit, nii et sellele ei saadetud midagi.",
"server_invalid": "See serveri aadress ei kehti."
},
"desktop_updates": {
"title": "Uuendused",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark otsib uuendusi ise.",
"status_checking": "Uuenduste otsimine…",
"status_up_to_date": "Sul on uusim versioon.",
"status_downloading": "Versiooni {version} allalaadimine…",
"status_ready": "Versioon {version} on valmis. See paigaldatakse järgmisel sulgemisel või taaskäivita kohe.",
"status_available": "Versioon {version} on saadaval.",
"status_available_per_machine": "Versioon {version} on saadaval. Bulwark on paigaldatud kõigile selle arvuti kasutajatele, seega paigaldab uuendused administraator.",
"status_older": "Sul on beetaversioon. Stabiilne versioon {version} on vanem, seega jääb Bulwark sellele versioonile, kuni stabiilne järele jõuab.",
"status_error": "Uuendusi ei õnnestunud otsida. Bulwark proovib hiljem uuesti.",
"status_off": "Sinu organisatsioon on rakenduse uuendused välja lülitanud.",
"check": "Otsi kohe",
"restart": "Taaskäivita uuendamiseks",
"download": "Laadi alla",
"install_older": "Paigalda vanem versioon…",
"channel_label": "Uuenduste kanal",
"channel_description": "Beetaversioonid tulevad varem ja neis võib olla rohkem probleeme.",
"channel_stable": "Stabiilne",
"channel_beta": "Beeta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "ابتدا نشانی سرور را وارد کنید.",
"server_declined": "شما این سرور را مجاز نکردید، پس چیزی به آن فرستاده نشد.",
"server_invalid": "این نشانی سرور معتبر نیست."
},
"desktop_updates": {
"title": "به‌روزرسانی‌ها",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark خودش به‌روزرسانی‌ها را بررسی می‌کند.",
"status_checking": "در حال بررسی به‌روزرسانی‌ها…",
"status_up_to_date": "آخرین نسخه را دارید.",
"status_downloading": "در حال دانلود نسخه {version}…",
"status_ready": "نسخه {version} آماده است. دفعه بعد که خارج شوید نصب می‌شود، یا همین حالا راه‌اندازی مجدد کنید.",
"status_available": "نسخه {version} در دسترس است.",
"status_available_per_machine": "نسخه {version} در دسترس است. Bulwark برای همه کاربران این رایانه نصب شده است، پس مدیر به‌روزرسانی‌ها را نصب می‌کند.",
"status_older": "نسخه بتا دارید. نسخه پایدار {version} قدیمی‌تر است، پس Bulwark تا رسیدن نسخه پایدار روی همین نسخه می‌ماند.",
"status_error": "بررسی به‌روزرسانی‌ها انجام نشد. Bulwark بعداً دوباره تلاش می‌کند.",
"status_off": "سازمان شما به‌روزرسانی‌ها را در برنامه خاموش کرده است.",
"check": "الان بررسی کن",
"restart": "راه‌اندازی مجدد برای به‌روزرسانی",
"download": "دانلود",
"install_older": "نصب نسخه قدیمی‌تر…",
"channel_label": "کانال به‌روزرسانی",
"channel_description": "نسخه‌های بتا زودتر می‌آیند و ممکن است مشکلات بیشتری داشته باشند.",
"channel_stable": "پایدار",
"channel_beta": "بتا"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Saisissez d'abord l'adresse du serveur.",
"server_declined": "Vous n'avez pas autorisé ce serveur, donc rien ne lui a été envoyé.",
"server_invalid": "Cette adresse de serveur n'est pas valide."
},
"desktop_updates": {
"title": "Mises à jour",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark recherche les mises à jour tout seul.",
"status_checking": "Recherche de mises à jour…",
"status_up_to_date": "Vous avez la dernière version.",
"status_downloading": "Téléchargement de la version {version}…",
"status_ready": "La version {version} est prête. Elle s'installera la prochaine fois que vous quitterez, ou redémarrez maintenant.",
"status_available": "La version {version} est disponible.",
"status_available_per_machine": "La version {version} est disponible. Bulwark est installé pour tous les utilisateurs de cet ordinateur, c'est donc un administrateur qui installe les mises à jour.",
"status_older": "Vous avez une bêta. La version stable {version} est plus ancienne, Bulwark reste donc sur cette version jusqu'à ce que la version stable la rattrape.",
"status_error": "Impossible de rechercher les mises à jour. Bulwark réessaiera plus tard.",
"status_off": "Votre organisation a désactivé les mises à jour dans l’application.",
"check": "Rechercher",
"restart": "Redémarrer pour mettre à jour",
"download": "Télécharger",
"install_older": "Installer une version plus ancienne…",
"channel_label": "Canal de mise à jour",
"channel_description": "Les versions bêta arrivent plus tôt et peuvent avoir plus de problèmes.",
"channel_stable": "Stable",
"channel_beta": "Bêta"
}
}
+22
View File
@@ -6510,5 +6510,27 @@
"server_needed": "קודם צריך להזין את כתובת השרת.",
"server_declined": "לא אישרת את השרת הזה, לכן לא נשלח אליו דבר.",
"server_invalid": "כתובת השרת הזו לא תקינה."
},
"desktop_updates": {
"title": "עדכונים",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark מחפש עדכונים בעצמו.",
"status_checking": "מחפש עדכונים…",
"status_up_to_date": "יש לך את הגרסה האחרונה.",
"status_downloading": "מוריד את גרסה {version}…",
"status_ready": "גרסה {version} מוכנה. היא תותקן בפעם הבאה שתצא, או הפעל מחדש עכשיו.",
"status_available": "גרסה {version} זמינה.",
"status_available_per_machine": "גרסה {version} זמינה. Bulwark מותקן לכל המשתמשים במחשב הזה, ולכן מנהל מתקין עדכונים.",
"status_older": "יש לך גרסת בטא. הגרסה היציבה {version} ישנה יותר, ולכן Bulwark נשאר בגרסה הזו עד שהיציבה תשיג אותה.",
"status_error": "לא ניתן היה לחפש עדכונים. Bulwark ינסה שוב מאוחר יותר.",
"status_off": "הארגון שלך כיבה עדכונים באפליקציה.",
"check": "חפש עכשיו",
"restart": "הפעל מחדש כדי לעדכן",
"download": "הורדה",
"install_older": "התקן גרסה ישנה יותר…",
"channel_label": "ערוץ עדכונים",
"channel_description": "גרסאות בטא מגיעות מוקדם יותר ועלולות להיות בהן יותר בעיות.",
"channel_stable": "יציב",
"channel_beta": "בטא"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Először adja meg a szerver címét.",
"server_declined": "Nem engedélyezte ezt a szervert, ezért semmit sem küldtünk neki.",
"server_invalid": "Ez a szervercím nem érvényes."
},
"desktop_updates": {
"title": "Frissítések",
"version_label": "Bulwark {version}",
"status_idle": "A Bulwark magától keres frissítéseket.",
"status_checking": "Frissítések keresése…",
"status_up_to_date": "A legújabb verzió van telepítve.",
"status_downloading": "A(z) {version} verzió letöltése…",
"status_ready": "A(z) {version} verzió készen áll. A következő kilépéskor települ, vagy indítsa újra most.",
"status_available": "Elérhető a(z) {version} verzió.",
"status_available_per_machine": "Elérhető a(z) {version} verzió. A Bulwark a számítógép minden felhasználójának telepítve van, ezért a frissítéseket rendszergazda telepíti.",
"status_older": "Béta verziója van. A(z) {version} stabil verzió régebbi, ezért a Bulwark ezen a verzión marad, amíg a stabil utol nem éri.",
"status_error": "Nem sikerült frissítéseket keresni. A Bulwark később újra próbálja.",
"status_off": "A szervezete kikapcsolta az alkalmazáson belüli frissítéseket.",
"check": "Keresés most",
"restart": "Újraindítás a frissítéshez",
"download": "Letöltés",
"install_older": "Régebbi verzió telepítése…",
"channel_label": "Frissítési csatorna",
"channel_description": "A béta verziók korábban érkeznek, és több hibájuk lehet.",
"channel_stable": "Stabil",
"channel_beta": "Béta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Inserisci prima l'indirizzo del server.",
"server_declined": "Non hai autorizzato questo server, quindi non gli è stato inviato nulla.",
"server_invalid": "Questo indirizzo del server non è valido."
},
"desktop_updates": {
"title": "Aggiornamenti",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark cerca gli aggiornamenti da solo.",
"status_checking": "Ricerca di aggiornamenti…",
"status_up_to_date": "Hai la versione più recente.",
"status_downloading": "Download della versione {version}…",
"status_ready": "La versione {version} è pronta. Verrà installata alla prossima chiusura, oppure riavvia ora.",
"status_available": "La versione {version} è disponibile.",
"status_available_per_machine": "La versione {version} è disponibile. Bulwark è installato per tutti su questo computer, quindi gli aggiornamenti li installa un amministratore.",
"status_older": "Hai una beta. La versione stabile {version} è precedente, quindi Bulwark resta su questa versione finché la stabile non la raggiunge.",
"status_error": "Impossibile cercare gli aggiornamenti. Bulwark riproverà più tardi.",
"status_off": "La tua organizzazione ha disattivato gli aggiornamenti nell'app.",
"check": "Cerca ora",
"restart": "Riavvia per aggiornare",
"download": "Scarica",
"install_older": "Installa versione precedente…",
"channel_label": "Canale di aggiornamento",
"channel_description": "Le versioni beta arrivano prima e possono avere più problemi.",
"channel_stable": "Stabile",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "先にサーバーのアドレスを入力してください。",
"server_declined": "このサーバーを許可しなかったため、何も送信していません。",
"server_invalid": "このサーバーアドレスは正しくありません。"
},
"desktop_updates": {
"title": "アップデート",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark は自動でアップデートを確認します。",
"status_checking": "アップデートを確認しています…",
"status_up_to_date": "最新バージョンです。",
"status_downloading": "バージョン {version} をダウンロードしています…",
"status_ready": "バージョン {version} の準備ができました。次回の終了時にインストールされます。今すぐ再起動することもできます。",
"status_available": "バージョン {version} が利用できます。",
"status_available_per_machine": "バージョン {version} が利用できます。Bulwark はこのコンピューターの全員向けにインストールされているため、アップデートは管理者がインストールします。",
"status_older": "ベータ版をお使いです。安定版 {version} はこれより古いため、安定版が追いつくまで Bulwark はこのバージョンのままです。",
"status_error": "アップデートを確認できませんでした。Bulwark は後でもう一度試します。",
"status_off": "アプリ内のアップデートは組織によってオフにされています。",
"check": "今すぐ確認",
"restart": "再起動してアップデート",
"download": "ダウンロード",
"install_older": "古いバージョンをインストール…",
"channel_label": "アップデートチャンネル",
"channel_description": "ベータ版は早く届きますが、問題が多い場合があります。",
"channel_stable": "安定版",
"channel_beta": "ベータ版"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "먼저 서버 주소를 입력하세요.",
"server_declined": "이 서버를 허용하지 않아 아무것도 보내지 않았습니다.",
"server_invalid": "이 서버 주소는 올바르지 않습니다."
},
"desktop_updates": {
"title": "업데이트",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark가 업데이트를 알아서 확인합니다.",
"status_checking": "업데이트 확인 중…",
"status_up_to_date": "최신 버전입니다.",
"status_downloading": "버전 {version} 다운로드 중…",
"status_ready": "버전 {version}이(가) 준비되었습니다. 다음에 종료할 때 설치되며, 지금 다시 시작할 수도 있습니다.",
"status_available": "버전 {version}을(를) 사용할 수 있습니다.",
"status_available_per_machine": "버전 {version}을(를) 사용할 수 있습니다. Bulwark가 이 컴퓨터의 모든 사용자용으로 설치되어 있어 관리자가 업데이트를 설치합니다.",
"status_older": "베타 버전을 사용 중입니다. 안정 버전 {version}이(가) 더 오래되어, 안정 버전이 따라올 때까지 Bulwark는 이 버전을 유지합니다.",
"status_error": "업데이트를 확인하지 못했습니다. Bulwark가 나중에 다시 시도합니다.",
"status_off": "조직에서 앱 내 업데이트를 껐습니다.",
"check": "지금 확인",
"restart": "다시 시작하여 업데이트",
"download": "다운로드",
"install_older": "이전 버전 설치…",
"channel_label": "업데이트 채널",
"channel_description": "베타 버전은 더 빨리 나오지만 문제가 더 많을 수 있습니다.",
"channel_stable": "안정",
"channel_beta": "베타"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Vispirms ievadiet servera adresi.",
"server_declined": "Jūs neatļāvāt šo serveri, tāpēc tam nekas netika nosūtīts.",
"server_invalid": "Šī servera adrese nav derīga."
},
"desktop_updates": {
"title": "Atjauninājumi",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark pats meklē atjauninājumus.",
"status_checking": "Meklē atjauninājumus…",
"status_up_to_date": "Jums ir jaunākā versija.",
"status_downloading": "Lejupielādē versiju {version}…",
"status_ready": "Versija {version} ir gatava. Tā tiks instalēta nākamajā aizvēršanas reizē, vai restartējiet tūlīt.",
"status_available": "Ir pieejama versija {version}.",
"status_available_per_machine": "Ir pieejama versija {version}. Bulwark ir instalēts visiem šī datora lietotājiem, tāpēc atjauninājumus instalē administrators.",
"status_older": "Jums ir beta versija. Stabilā versija {version} ir vecāka, tāpēc Bulwark paliek šajā versijā, līdz stabilā to panāk.",
"status_error": "Neizdevās meklēt atjauninājumus. Bulwark mēģinās vēlreiz vēlāk.",
"status_off": "Jūsu organizācija ir izslēgusi atjauninājumus lietotnē.",
"check": "Meklēt tūlīt",
"restart": "Restartēt, lai atjauninātu",
"download": "Lejupielādēt",
"install_older": "Instalēt vecāku versiju…",
"channel_label": "Atjauninājumu kanāls",
"channel_description": "Beta versijas iznāk ātrāk, un tajās var būt vairāk problēmu.",
"channel_stable": "Stabilā",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Эхлээд серверийн хаягаа оруулна уу.",
"server_declined": "Та энэ серверийг зөвшөөрөөгүй тул юу ч илгээгээгүй.",
"server_invalid": "Энэ серверийн хаяг буруу байна."
},
"desktop_updates": {
"title": "Шинэчлэлт",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark шинэчлэлтийг өөрөө шалгадаг.",
"status_checking": "Шинэчлэлт шалгаж байна…",
"status_up_to_date": "Танд хамгийн сүүлийн хувилбар байна.",
"status_downloading": "{version} хувилбарыг татаж байна…",
"status_ready": "{version} хувилбар бэлэн боллоо. Дараагийн удаа гарахад суулгана, эсвэл одоо дахин эхлүүлнэ үү.",
"status_available": "{version} хувилбар гарсан байна.",
"status_available_per_machine": "{version} хувилбар гарсан байна. Bulwark энэ компьютерын бүх хэрэглэгчид суулгагдсан тул шинэчлэлтийг админ суулгана.",
"status_older": "Танд бета хувилбар байна. Тогтвортой {version} хувилбар хуучин тул тогтвортой хувилбар гүйцэх хүртэл Bulwark энэ хувилбар дээр үлдэнэ.",
"status_error": "Шинэчлэлт шалгаж чадсангүй. Bulwark дараа дахин оролдоно.",
"status_off": "Танай байгууллага апп доторх шинэчлэлтийг унтраасан.",
"check": "Одоо шалгах",
"restart": "Шинэчлэхийн тулд дахин эхлүүлэх",
"download": "Татах",
"install_older": "Хуучин хувилбар суулгах…",
"channel_label": "Шинэчлэлтийн суваг",
"channel_description": "Бета хувилбарууд эрт гарах бөгөөд илүү олон асуудалтай байж болно.",
"channel_stable": "Тогтвортой",
"channel_beta": "Бета"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Skriv inn serveradressen først.",
"server_declined": "Du tillot ikke denne serveren, så ingenting ble sendt til den.",
"server_invalid": "Denne serveradressen er ikke gyldig."
},
"desktop_updates": {
"title": "Oppdateringer",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark ser etter oppdateringer selv.",
"status_checking": "Ser etter oppdateringer…",
"status_up_to_date": "Du har den nyeste versjonen.",
"status_downloading": "Laster ned versjon {version}…",
"status_ready": "Versjon {version} er klar. Den installeres neste gang du avslutter, eller start på nytt nå.",
"status_available": "Versjon {version} er tilgjengelig.",
"status_available_per_machine": "Versjon {version} er tilgjengelig. Bulwark er installert for alle på denne datamaskinen, så en administrator installerer oppdateringer.",
"status_older": "Du har en beta. Stabil versjon {version} er eldre, så Bulwark blir på denne versjonen til stabil har tatt den igjen.",
"status_error": "Kunne ikke se etter oppdateringer. Bulwark prøver igjen senere.",
"status_off": "Organisasjonen din har slått av oppdateringer i appen.",
"check": "Se etter nå",
"restart": "Start på nytt for å oppdatere",
"download": "Last ned",
"install_older": "Installer eldre versjon…",
"channel_label": "Oppdateringskanal",
"channel_description": "Betaversjoner kommer tidligere og kan ha flere problemer.",
"channel_stable": "Stabil",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Vul eerst het adres van de server in.",
"server_declined": "Je hebt deze server niet toegestaan, dus er is niets naartoe gestuurd.",
"server_invalid": "Dit serveradres is niet geldig."
},
"desktop_updates": {
"title": "Updates",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark zoekt zelf naar updates.",
"status_checking": "Zoeken naar updates…",
"status_up_to_date": "Je hebt de nieuwste versie.",
"status_downloading": "Versie {version} downloaden…",
"status_ready": "Versie {version} staat klaar. Ze wordt geïnstalleerd zodra je afsluit, of start nu opnieuw.",
"status_available": "Versie {version} is beschikbaar.",
"status_available_per_machine": "Versie {version} is beschikbaar. Bulwark is voor iedereen op deze computer geïnstalleerd, dus een beheerder installeert updates.",
"status_older": "Je hebt een bèta. Stabiele versie {version} is ouder, dus Bulwark blijft op deze versie tot de stabiele versie is bijgewerkt.",
"status_error": "Zoeken naar updates is niet gelukt. Bulwark probeert het later opnieuw.",
"status_off": "Je organisatie heeft updates in de app uitgeschakeld.",
"check": "Nu zoeken",
"restart": "Opnieuw starten en bijwerken",
"download": "Downloaden",
"install_older": "Oudere versie installeren…",
"channel_label": "Updatekanaal",
"channel_description": "Bètaversies komen eerder en kunnen meer problemen hebben.",
"channel_stable": "Stabiel",
"channel_beta": "Bèta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Najpierw wpisz adres serwera.",
"server_declined": "Ten serwer nie został dozwolony, więc nic do niego nie wysłano.",
"server_invalid": "Ten adres serwera jest nieprawidłowy."
},
"desktop_updates": {
"title": "Aktualizacje",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark sam szuka aktualizacji.",
"status_checking": "Szukanie aktualizacji…",
"status_up_to_date": "Masz najnowszą wersję.",
"status_downloading": "Pobieranie wersji {version}…",
"status_ready": "Wersja {version} jest gotowa. Zainstaluje się przy następnym zamknięciu albo uruchom ponownie teraz.",
"status_available": "Dostępna jest wersja {version}.",
"status_available_per_machine": "Dostępna jest wersja {version}. Bulwark jest zainstalowany dla wszystkich na tym komputerze, więc aktualizacje instaluje administrator.",
"status_older": "Masz wersję beta. Stabilna wersja {version} jest starsza, więc Bulwark zostaje na tej wersji, dopóki stabilna jej nie dogoni.",
"status_error": "Nie udało się sprawdzić aktualizacji. Bulwark spróbuje ponownie później.",
"status_off": "Twoja organizacja wyłączyła aktualizacje w aplikacji.",
"check": "Sprawdź teraz",
"restart": "Uruchom ponownie, aby zaktualizować",
"download": "Pobierz",
"install_older": "Zainstaluj starszą wersję…",
"channel_label": "Kanał aktualizacji",
"channel_description": "Wersje beta pojawiają się wcześniej i mogą mieć więcej problemów.",
"channel_stable": "Stabilna",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Digite primeiro o endereço do servidor.",
"server_declined": "Você não permitiu este servidor, então nada foi enviado a ele.",
"server_invalid": "Este endereço de servidor não é válido."
},
"desktop_updates": {
"title": "Atualizações",
"version_label": "Bulwark {version}",
"status_idle": "O Bulwark procura atualizações sozinho.",
"status_checking": "A procurar atualizações…",
"status_up_to_date": "Tem a versão mais recente.",
"status_downloading": "A transferir a versão {version}…",
"status_ready": "A versão {version} está pronta. É instalada da próxima vez que sair, ou reinicie agora.",
"status_available": "A versão {version} está disponível.",
"status_available_per_machine": "A versão {version} está disponível. O Bulwark está instalado para todos neste computador, por isso é um administrador que instala as atualizações.",
"status_older": "Tem uma beta. A versão estável {version} é mais antiga, por isso o Bulwark fica nesta versão até a estável a alcançar.",
"status_error": "Não foi possível procurar atualizações. O Bulwark tenta de novo mais tarde.",
"status_off": "A sua organização desativou as atualizações na aplicação.",
"check": "Procurar agora",
"restart": "Reiniciar para atualizar",
"download": "Transferir",
"install_older": "Instalar versão mais antiga…",
"channel_label": "Canal de atualização",
"channel_description": "As versões beta chegam mais cedo e podem ter mais problemas.",
"channel_stable": "Estável",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Introdu mai întâi adresa serverului.",
"server_declined": "Nu ai permis acest server, așa că nu i s-a trimis nimic.",
"server_invalid": "Această adresă de server nu este validă."
},
"desktop_updates": {
"title": "Actualizări",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark caută singur actualizări.",
"status_checking": "Se caută actualizări…",
"status_up_to_date": "Aveți cea mai nouă versiune.",
"status_downloading": "Se descarcă versiunea {version}…",
"status_ready": "Versiunea {version} este gata. Se instalează la următoarea închidere sau reporniți acum.",
"status_available": "Versiunea {version} este disponibilă.",
"status_available_per_machine": "Versiunea {version} este disponibilă. Bulwark este instalat pentru toată lumea pe acest computer, așa că actualizările le instalează un administrator.",
"status_older": "Aveți o versiune beta. Versiunea stabilă {version} este mai veche, așa că Bulwark rămâne pe această versiune până când cea stabilă o ajunge din urmă.",
"status_error": "Nu s-au putut căuta actualizări. Bulwark încearcă din nou mai târziu.",
"status_off": "Organizația dvs. a dezactivat actualizările din aplicație.",
"check": "Caută acum",
"restart": "Repornește pentru actualizare",
"download": "Descarcă",
"install_older": "Instalează versiunea mai veche…",
"channel_label": "Canal de actualizare",
"channel_description": "Versiunile beta apar mai devreme și pot avea mai multe probleme.",
"channel_stable": "Stabil",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Сначала введите адрес сервера.",
"server_declined": "Вы не разрешили этот сервер, поэтому ему ничего не отправлено.",
"server_invalid": "Этот адрес сервера недействителен."
},
"desktop_updates": {
"title": "Обновления",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark сам проверяет обновления.",
"status_checking": "Проверка обновлений…",
"status_up_to_date": "У вас последняя версия.",
"status_downloading": "Загрузка версии {version}…",
"status_ready": "Версия {version} готова. Она установится при следующем выходе, либо перезапустите сейчас.",
"status_available": "Доступна версия {version}.",
"status_available_per_machine": "Доступна версия {version}. Bulwark установлен для всех на этом компьютере, поэтому обновления устанавливает администратор.",
"status_older": "У вас бета-версия. Стабильная версия {version} старше, поэтому Bulwark останется на этой версии, пока стабильная её не догонит.",
"status_error": "Не удалось проверить обновления. Bulwark попробует позже.",
"status_off": "Ваша организация отключила обновления в приложении.",
"check": "Проверить",
"restart": "Перезапустить и обновить",
"download": "Скачать",
"install_older": "Установить более старую версию…",
"channel_label": "Канал обновлений",
"channel_description": "Бета-версии выходят раньше, и в них может быть больше проблем.",
"channel_stable": "Стабильный",
"channel_beta": "Бета"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Najprv zadajte adresu servera.",
"server_declined": "Tento server ste nepovolili, preto sa naň nič neodoslalo.",
"server_invalid": "Táto adresa servera nie je platná."
},
"desktop_updates": {
"title": "Aktualizácie",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark hľadá aktualizácie sám.",
"status_checking": "Hľadajú sa aktualizácie…",
"status_up_to_date": "Máte najnovšiu verziu.",
"status_downloading": "Sťahuje sa verzia {version}…",
"status_ready": "Verzia {version} je pripravená. Nainštaluje sa pri ďalšom ukončení, alebo reštartujte hneď.",
"status_available": "Je dostupná verzia {version}.",
"status_available_per_machine": "Je dostupná verzia {version}. Bulwark je nainštalovaný pre všetkých na tomto počítači, takže aktualizácie inštaluje správca.",
"status_older": "Máte verziu beta. Stabilná verzia {version} je staršia, takže Bulwark zostane na tejto verzii, kým ju stabilná nedobehne.",
"status_error": "Aktualizácie sa nepodarilo skontrolovať. Bulwark to skúsi znova neskôr.",
"status_off": "Vaša organizácia vypnula aktualizácie v aplikácii.",
"check": "Skontrolovať",
"restart": "Reštartovať a aktualizovať",
"download": "Stiahnuť",
"install_older": "Nainštalovať staršiu verziu…",
"channel_label": "Kanál aktualizácií",
"channel_description": "Verzie beta prichádzajú skôr a môžu mať viac problémov.",
"channel_stable": "Stabilná",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6517,5 +6517,27 @@
"server_needed": "ป้อนที่อยู่เซิร์ฟเวอร์ก่อน",
"server_declined": "คุณไม่ได้อนุญาตเซิร์ฟเวอร์นี้ จึงไม่มีการส่งข้อมูลใดไป",
"server_invalid": "ที่อยู่เซิร์ฟเวอร์นี้ไม่ถูกต้อง"
},
"desktop_updates": {
"title": "การอัปเดต",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark ตรวจหาการอัปเดตเอง",
"status_checking": "กำลังตรวจหาการอัปเดต…",
"status_up_to_date": "คุณมีเวอร์ชันล่าสุดแล้ว",
"status_downloading": "กำลังดาวน์โหลดเวอร์ชัน {version}…",
"status_ready": "เวอร์ชัน {version} พร้อมแล้ว จะติดตั้งเมื่อคุณออกครั้งถัดไป หรือรีสตาร์ตเลยตอนนี้",
"status_available": "มีเวอร์ชัน {version} ให้ใช้งาน",
"status_available_per_machine": "มีเวอร์ชัน {version} ให้ใช้งาน Bulwark ติดตั้งไว้สำหรับทุกคนบนคอมพิวเตอร์เครื่องนี้ ผู้ดูแลระบบจึงเป็นผู้ติดตั้งการอัปเดต",
"status_older": "คุณใช้เวอร์ชันเบต้าอยู่ เวอร์ชันเสถียร {version} เก่ากว่า Bulwark จึงอยู่ที่เวอร์ชันนี้จนกว่าเวอร์ชันเสถียรจะตามทัน",
"status_error": "ตรวจหาการอัปเดตไม่สำเร็จ Bulwark จะลองอีกครั้งในภายหลัง",
"status_off": "องค์กรของคุณปิดการอัปเดตในแอปแล้ว",
"check": "ตรวจหาเลย",
"restart": "รีสตาร์ตเพื่ออัปเดต",
"download": "ดาวน์โหลด",
"install_older": "ติดตั้งเวอร์ชันเก่ากว่า…",
"channel_label": "ช่องทางการอัปเดต",
"channel_description": "เวอร์ชันเบต้ามาเร็วกว่าและอาจมีปัญหามากกว่า",
"channel_stable": "เสถียร",
"channel_beta": "เบต้า"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Önce sunucu adresini girin.",
"server_declined": "Bu sunucuya izin vermediniz, bu yüzden ona hiçbir şey gönderilmedi.",
"server_invalid": "Bu sunucu adresi geçerli değil."
},
"desktop_updates": {
"title": "Güncellemeler",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark güncellemeleri kendisi arar.",
"status_checking": "Güncellemeler aranıyor…",
"status_up_to_date": "En son sürüme sahipsiniz.",
"status_downloading": "{version} sürümü indiriliyor…",
"status_ready": "{version} sürümü hazır. Bir sonraki çıkışta yüklenir veya şimdi yeniden başlatın.",
"status_available": "{version} sürümü kullanılabilir.",
"status_available_per_machine": "{version} sürümü kullanılabilir. Bulwark bu bilgisayardaki herkes için yüklü, bu yüzden güncellemeleri bir yönetici yükler.",
"status_older": "Beta sürümünü kullanıyorsunuz. Kararlı {version} sürümü daha eski, bu yüzden Bulwark kararlı sürüm yetişene kadar bu sürümde kalır.",
"status_error": "Güncellemeler aranamadı. Bulwark daha sonra yeniden deneyecek.",
"status_off": "Kuruluşunuz uygulama içi güncellemeleri kapattı.",
"check": "Şimdi ara",
"restart": "Güncellemek için yeniden başlat",
"download": "İndir",
"install_older": "Eski sürümü yükle…",
"channel_label": "Güncelleme kanalı",
"channel_description": "Beta sürümleri daha erken gelir ve daha fazla sorun içerebilir.",
"channel_stable": "Kararlı",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "Спочатку введіть адресу сервера.",
"server_declined": "Ви не дозволили цей сервер, тому йому нічого не надіслано.",
"server_invalid": "Ця адреса сервера недійсна."
},
"desktop_updates": {
"title": "Оновлення",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark сам перевіряє оновлення.",
"status_checking": "Перевірка оновлень…",
"status_up_to_date": "У вас остання версія.",
"status_downloading": "Завантаження версії {version}…",
"status_ready": "Версія {version} готова. Вона встановиться під час наступного виходу, або перезапустіть зараз.",
"status_available": "Доступна версія {version}.",
"status_available_per_machine": "Доступна версія {version}. Bulwark встановлено для всіх на цьому комп’ютері, тому оновлення встановлює адміністратор.",
"status_older": "У вас бета-версія. Стабільна версія {version} старіша, тому Bulwark залишиться на цій версії, доки стабільна її не наздожене.",
"status_error": "Не вдалося перевірити оновлення. Bulwark спробує пізніше.",
"status_off": "Ваша організація вимкнула оновлення в застосунку.",
"check": "Перевірити",
"restart": "Перезапустити й оновити",
"download": "Завантажити",
"install_older": "Установити старішу версію…",
"channel_label": "Канал оновлень",
"channel_description": "Бета-версії виходять раніше, і в них може бути більше проблем.",
"channel_stable": "Стабільний",
"channel_beta": "Бета"
}
}
+22
View File
@@ -6521,5 +6521,27 @@
"server_needed": "Trước tiên hãy nhập địa chỉ máy chủ.",
"server_declined": "Bạn không cho phép máy chủ này nên không có gì được gửi đến đó.",
"server_invalid": "Địa chỉ máy chủ này không hợp lệ."
},
"desktop_updates": {
"title": "Cập nhật",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark tự kiểm tra bản cập nhật.",
"status_checking": "Đang kiểm tra bản cập nhật…",
"status_up_to_date": "Bạn đang dùng phiên bản mới nhất.",
"status_downloading": "Đang tải phiên bản {version}…",
"status_ready": "Phiên bản {version} đã sẵn sàng. Bản này sẽ được cài vào lần thoát tới, hoặc khởi động lại ngay.",
"status_available": "Đã có phiên bản {version}.",
"status_available_per_machine": "Đã có phiên bản {version}. Bulwark được cài cho mọi người trên máy tính này nên quản trị viên sẽ cài bản cập nhật.",
"status_older": "Bạn đang dùng bản beta. Bản ổn định {version} cũ hơn nên Bulwark giữ phiên bản này đến khi bản ổn định theo kịp.",
"status_error": "Không kiểm tra được bản cập nhật. Bulwark sẽ thử lại sau.",
"status_off": "Tổ chức của bạn đã tắt cập nhật trong ứng dụng.",
"check": "Kiểm tra ngay",
"restart": "Khởi động lại để cập nhật",
"download": "Tải xuống",
"install_older": "Cài phiên bản cũ hơn…",
"channel_label": "Kênh cập nhật",
"channel_description": "Bản beta ra sớm hơn và có thể có nhiều lỗi hơn.",
"channel_stable": "Ổn định",
"channel_beta": "Beta"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "請先輸入伺服器位址。",
"server_declined": "你沒有允許此伺服器,因此沒有傳送任何內容給它。",
"server_invalid": "此伺服器位址無效。"
},
"desktop_updates": {
"title": "更新",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark 會自動檢查更新。",
"status_checking": "正在檢查更新…",
"status_up_to_date": "已是最新版本。",
"status_downloading": "正在下載版本 {version}…",
"status_ready": "版本 {version} 已準備好。將在下次結束時安裝,也可以立即重新啟動。",
"status_available": "版本 {version} 可用。",
"status_available_per_machine": "版本 {version} 可用。Bulwark 是為這台電腦的所有使用者安裝的,因此由管理員安裝更新。",
"status_older": "你使用的是測試版。穩定版 {version} 較舊,因此 Bulwark 會維持目前版本,直到穩定版趕上。",
"status_error": "無法檢查更新。Bulwark 稍後會再試。",
"status_off": "你的組織已關閉應用程式內更新。",
"check": "立即檢查",
"restart": "重新啟動以更新",
"download": "下載",
"install_older": "安裝舊版本…",
"channel_label": "更新管道",
"channel_description": "測試版較早推出,問題可能較多。",
"channel_stable": "穩定版",
"channel_beta": "測試版"
}
}
+22
View File
@@ -6509,5 +6509,27 @@
"server_needed": "请先输入服务器地址。",
"server_declined": "你没有允许此服务器,因此没有向它发送任何内容。",
"server_invalid": "此服务器地址无效。"
},
"desktop_updates": {
"title": "更新",
"version_label": "Bulwark {version}",
"status_idle": "Bulwark 会自动检查更新。",
"status_checking": "正在检查更新…",
"status_up_to_date": "已是最新版本。",
"status_downloading": "正在下载版本 {version}…",
"status_ready": "版本 {version} 已就绪。将在下次退出时安装,也可以立即重新启动。",
"status_available": "版本 {version} 可用。",
"status_available_per_machine": "版本 {version} 可用。Bulwark 是为这台电脑的所有用户安装的,因此由管理员安装更新。",
"status_older": "你使用的是测试版。稳定版 {version} 更旧,因此 Bulwark 会保持当前版本,直到稳定版赶上。",
"status_error": "无法检查更新。Bulwark 稍后会再试。",
"status_off": "你的组织已关闭应用内更新。",
"check": "立即检查",
"restart": "重新启动以更新",
"download": "下载",
"install_older": "安装旧版本…",
"channel_label": "更新渠道",
"channel_description": "测试版更早推出,问题可能更多。",
"channel_stable": "稳定版",
"channel_beta": "测试版"
}
}