diff --git a/changelog.d/20261005-launch-without-updating.md b/changelog.d/20261005-launch-without-updating.md new file mode 100644 index 0000000..b4d00d1 --- /dev/null +++ b/changelog.d/20261005-launch-without-updating.md @@ -0,0 +1,7 @@ +--- +area: manager +type: added +audience: players +title: Start your installed server or client without downloading an available update +--- +Choose to update later and keep playing with your installed version. Interrupted server updates still require recovery before startup. diff --git a/src/i18n/locales/de.ts b/src/i18n/locales/de.ts index 76e27d4..b9330d3 100644 --- a/src/i18n/locales/de.ts +++ b/src/i18n/locales/de.ts @@ -73,6 +73,8 @@ const de: Partial> = { "btn.stop": "SERVER STOPPEN", "btn.stopSmall": "Stoppen", "btn.restart": "Neustart", + "btn.startWithoutUpdate": "Ohne Update starten", + "btn.playWithoutUpdate": "Ohne Update spielen", "btn.play": "SPIELEN", "btn.startPlay": "STARTEN & SPIELEN", "btn.startingCaps": "STARTET …", diff --git a/src/i18n/locales/en.ts b/src/i18n/locales/en.ts index 0687612..fe566ef 100644 --- a/src/i18n/locales/en.ts +++ b/src/i18n/locales/en.ts @@ -104,6 +104,8 @@ const en = { "btn.stop": "STOP SERVER", "btn.stopSmall": "Stop", "btn.restart": "Restart", + "btn.startWithoutUpdate": "Start without updating", + "btn.playWithoutUpdate": "Play without updating", "btn.play": "PLAY", "btn.startPlay": "START & PLAY", "btn.startingCaps": "STARTING…", diff --git a/src/i18n/locales/es.ts b/src/i18n/locales/es.ts index 6144524..a8ee876 100644 --- a/src/i18n/locales/es.ts +++ b/src/i18n/locales/es.ts @@ -73,6 +73,8 @@ const es: Partial> = { "btn.stop": "DETENER SERVIDOR", "btn.stopSmall": "Detener", "btn.restart": "Reiniciar", + "btn.startWithoutUpdate": "Iniciar sin actualizar", + "btn.playWithoutUpdate": "Jugar sin actualizar", "btn.play": "JUGAR", "btn.startPlay": "INICIAR Y JUGAR", "btn.startingCaps": "INICIANDO…", diff --git a/src/i18n/locales/fr.ts b/src/i18n/locales/fr.ts index 8731974..1b7e1c5 100644 --- a/src/i18n/locales/fr.ts +++ b/src/i18n/locales/fr.ts @@ -73,6 +73,8 @@ const fr: Partial> = { "btn.stop": "ARRÊTER LE SERVEUR", "btn.stopSmall": "Arrêter", "btn.restart": "Redémarrer", + "btn.startWithoutUpdate": "Démarrer sans mise à jour", + "btn.playWithoutUpdate": "Jouer sans mise à jour", "btn.play": "JOUER", "btn.startPlay": "DÉMARRER ET JOUER", "btn.startingCaps": "DÉMARRAGE…", diff --git a/src/i18n/locales/ru.ts b/src/i18n/locales/ru.ts index 4f9b180..5c8b38e 100644 --- a/src/i18n/locales/ru.ts +++ b/src/i18n/locales/ru.ts @@ -104,6 +104,8 @@ const ru: Partial> = { "btn.stop": "ОСТАНОВИТЬ СЕРВЕР", "btn.stopSmall": "Остановить", "btn.restart": "Перезапустить", + "btn.startWithoutUpdate": "Запустить без обновления", + "btn.playWithoutUpdate": "Играть без обновления", "btn.play": "ИГРАТЬ", "btn.startPlay": "ЗАПУСТИТЬ И ИГРАТЬ", "btn.startingCaps": "ЗАПУСК…", diff --git a/src/i18n/locales/zh.ts b/src/i18n/locales/zh.ts index d5c9219..9f063f8 100644 --- a/src/i18n/locales/zh.ts +++ b/src/i18n/locales/zh.ts @@ -85,6 +85,8 @@ const zh = { "btn.stop": "停止服务器", "btn.stopSmall": "停止", "btn.restart": "重启", + "btn.startWithoutUpdate": "不更新启动服务器", + "btn.playWithoutUpdate": "不更新开始游戏", "btn.play": "开始游戏", "btn.startPlay": "启动并开始游戏", "btn.startingCaps": "正在启动…", diff --git a/src/screens/Overview.tsx b/src/screens/Overview.tsx index 00a7e6f..0dbae98 100644 --- a/src/screens/Overview.tsx +++ b/src/screens/Overview.tsx @@ -274,6 +274,11 @@ export function Overview({ server, companions = true, onForget, onOpenUpdates, o {transitioning ? (action === "stopping" ? t("btn.stoppingCaps") : t("btn.startingCaps")) : t("btn.start")} )} + {!running && upd.available && ( + + )} {running && ( ) : null} + {client && !jobBusy && (clientStatus?.update_available || job.phase === "choose") && ( + + )} {anyUp && !running && !transitioning && ( diff --git a/src/screens/RemoteClient.tsx b/src/screens/RemoteClient.tsx index cd3a325..0ad2300 100644 --- a/src/screens/RemoteClient.tsx +++ b/src/screens/RemoteClient.tsx @@ -74,6 +74,7 @@ export function RemoteClient({ onHost }: { onHost: () => void }) {

{t("remote.accountHint")}

+ {status?.linked && status.update_available && } {note &&

{note}

} {error &&

{error}

}