1
0
mirror of https://github.com/amir20/dozzle.git synced 2026-01-04 03:54:58 +01:00

fix: fixes default fallback not working. fixes #3154 (#3156)

This commit is contained in:
Amir Raminfar
2024-07-27 16:46:11 -07:00
committed by GitHub
parent 989f0f03ee
commit c91adb221a
14 changed files with 52 additions and 21 deletions

View File

@@ -3,8 +3,8 @@ import { createApp, App as VueApp } from "vue";
import App from "./App.vue";
const app = createApp(App);
Object.values(import.meta.glob<{ install: (app: VueApp) => void }>("./modules/*.ts", { eager: true })).forEach(
(i) => i.install?.(app),
Object.values(import.meta.glob<{ install: (app: VueApp) => void }>("./modules/*.ts", { eager: true })).forEach((i) =>
i.install?.(app),
);
app.mount("#app");

View File

@@ -17,10 +17,19 @@ function setI18nLanguage(lang: Locale) {
return lang;
}
const i18n = createI18n({
legacy: false,
locale: "",
fallbackLocale: "en",
messages: {},
});
const loadedLanguages: string[] = [];
async function loadLanguage(lang: string): Promise<Locale> {
if (i18n.global.locale.value === lang) return setI18nLanguage(lang);
if (loadedLanguages.includes(lang)) return setI18nLanguage(lang);
async function loadLanguage(lang: string, setLang = true): Promise<Locale> {
if (setLang) {
if (i18n.global.locale.value === lang) return setI18nLanguage(lang);
if (loadedLanguages.includes(lang)) return setI18nLanguage(lang);
}
const messages = await localesMap[lang]();
i18n.global.setLocaleMessage(lang, messages.default);
@@ -28,19 +37,20 @@ async function loadLanguage(lang: string): Promise<Locale> {
return setI18nLanguage(lang);
}
const i18n = createI18n({
legacy: false,
locale: "",
messages: {},
});
await loadLanguage("en", false); // load default language
watchEffect(() => {
loadLanguage(
const userLocale = computed(
() =>
locale.value ||
[navigator.language, navigator.language.slice(0, 2)].find((l) => availableLocales.includes(l)) ||
"en",
);
});
[navigator.language, navigator.language.slice(0, 2)].find((l) => availableLocales.includes(l)) ||
"en",
);
if (userLocale.value !== "en") {
await loadLanguage(userLocale.value);
}
watchEffect(() => loadLanguage(userLocale.value));
export const install = (app: App) => app.use(i18n);
export default i18n;

View File

@@ -13,6 +13,7 @@ label:
running-containers: Kørende Containere
all-containers: Alle Containere
host: Vært
hosts: Værter
password: Kodeord
username: Brugernavn
container-name: Container Navn

View File

@@ -6,6 +6,7 @@ toolbar:
show-all: Zeige alle Streams
label:
containers: Container
container: Keine Container | 1 Container | {count} Container
running-containers: Laufende Container
all-containers: Alle Container
total-containers: Gesamte Container
@@ -15,6 +16,7 @@ label:
dozzle-version: Dozzle Version
all: Alle
host: Host
hosts: Hosts
password: Passwort
username: Benutzername
container-name: Container Name
@@ -26,6 +28,8 @@ label:
tooltip:
search: Suche Container (⌘ + k, ⌃k)
pin-column: Als Spalte anheften
merge-services: Services zusammenführen
merge-containers: Container zusammenführen
error:
page-not-found: Diese Seite existiert nicht.
invalid-auth: Benutzername und Passwort sind ungültig.
@@ -69,6 +73,7 @@ settings:
small-scrollbars: Verwende kleinere Scrollbars
show-timesamps: Zeige Zeitstempel
soft-wrap: Zeilenumbruch
datetime-format: Datums- und Zeitformat
12-24-format: >-
Standardmäßig verwendet Dozzle die Spracheinstellungen des Browsers, um die
Zeit anzuzeigen. Du kannst die Zeit auf 12 oder 24 Stunden umstellen.

View File

@@ -9,6 +9,7 @@ toolbar:
restart: Reiniciar
label:
containers: Contenedores
container: No contenedores | 1 contenedor | {count} contenedores
running-containers: Contenedores en ejecución
all-containers: Todos los contenedores
total-containers: Contenedores Totales
@@ -18,6 +19,7 @@ label:
dozzle-version: Versión de Dozzle
all: Todo
host: Host
hosts: Hosts
password: Contraseña
username: Nombre de usuario
container-name: Nombre del contenedor

View File

@@ -13,6 +13,7 @@ label:
running-containers: Conteneurs en execution
all-containers: Tous les conteneurs
host: Hôte
hosts: Hôtes
password: Mot de passe
username: Nom d'utilisateur
container-name: Nom du conteneur

View File

@@ -18,6 +18,7 @@ label:
dozzle-version: Versione Dozzle
all: Tutto
host: Host
hosts: Hosts
password: Password
username: Username
container-name: Nome Container

View File

@@ -13,6 +13,7 @@ label:
running-containers: Działające kontenery
all-containers: Wszystkie kontenery
host: Host
hosts: Hosty
password: Hasło
username: Nazwa użytkownika
container-name: Nazwa kontenera
@@ -29,17 +30,17 @@ tooltip:
error:
page-not-found: Ta strona nie istnieje
invalid-auth: Nazwa użytkownika lub hasło są niepoprawne
logs-skipped: Pominiętych wpisów {total}
logs-skipped: Pominiętych wpisów {total}
container-not-found: Kontener nie został znaleziony
events-stream:
title: Niespodziewany błąd
message: >-
Dozzle nie był wstanie połączyć się z API. Sprawdź ustawienia sieciowe.
Jeżeli korzysasz z reverse proxy, upewnij się że jest poprawnie skonfigurowane.
Jeżeli korzysasz z reverse proxy, upewnij się że jest poprawnie skonfigurowane.
events-timeout:
title: Coś jest nie tak
message: >-
Przekroczono limit czasu w trakcie połączenia do API. Sprawdź ustawienia sieciowe.
Przekroczono limit czasu w trakcie połączenia do API. Sprawdź ustawienia sieciowe.
alert:
redirected:
title: Przekierowywanie do nowego kontenera
@@ -47,7 +48,7 @@ alert:
similar-container-found:
title: Podobny kontener został znaleziony
message: >-
Dozzle znalazł podobny kontener {containerId} który działa na tym samym
Dozzle znalazł podobny kontener {containerId} który działa na tym samym
hoście i przekieruje Cię na niego automatycznie jeżeli nie klikniesz 'Anuluj'
title:
page-not-found: Strona nie została znaleziona
@@ -55,7 +56,7 @@ title:
dashboard: 1 kontener | {count} kontenerów
settings: Ustawienia
button:
logout: Wyloguj się
logout: Wyloguj się
login: Zaloguj się
settings: Ustawienia
placeholder:

View File

@@ -15,6 +15,7 @@ label:
dozzle-version: Versão Dozzle
all: Tudo
host: Anfitrião
hosts: Anfitriões
password: Senha
username: Nome de usuário
container-name: Nome do contentor
@@ -71,6 +72,7 @@ settings:
font-size: Tamanho de letra a utilizar para os registos
color-scheme: Esquema de cores
options: Opções
datetime-format: Formato de data e hora
show-stopped-containers: Mostrar contentores parados
about: Acerca de
search: Habilitar a pesquisa com Dozzle usando

View File

@@ -15,6 +15,7 @@ label:
dozzle-version: Версия Dozzle
all: Все
host: Хост
hosts: Хосты
password: Пароль
username: Имя пользователя
container-name: Имя контейнера
@@ -71,6 +72,7 @@ settings:
color-scheme: Цветовая схема
options: Опции
show-stopped-containers: Показывать остановленные контейнеры
datetime-format: Формат даты и времени
about: Информация
search: Включить поиск с помощью Dozzle, используя
using-version: Вы используете версию Dozzle {version}.

View File

@@ -18,6 +18,7 @@ label:
dozzle-version: Dozzle Sürümü
all: Tümü
host: Sunucu
hosts: Sunucular
password: Şifre
username: Kullanıcı Adı
container-name: Konteyner Adı

View File

@@ -15,6 +15,7 @@ label:
dozzle-version: Dozzle 版本
all: 全部
host: 主機
hosts: 主機
password: 密碼
username: 使用者名稱
container-name: 容器名稱

View File

@@ -6,6 +6,7 @@ toolbar:
show-all: 显示全部
label:
containers: 容器
container: 无容器 | 1 容器 | {count} 容器
running-containers: 运行中的容器
all-containers: 所有容器
total-containers: 所有容器
@@ -15,6 +16,7 @@ label:
dozzle-version: Dozzle版本
all: 全部
host: 主机
hosts: 主机
password: 密码
username: 用户名
container-name: 容器名称
@@ -69,6 +71,7 @@ settings:
默认情况下Dozzle将使用您的浏览器区域设置来格式化时间。系统支持12或24小时制。
font-size: 字体大小
color-scheme: 颜色方案
datetime-format: 覆盖日期和时间格式
options: 选项
show-stopped-containers: 显示已停止的容器
about: 关于

View File

@@ -26,6 +26,7 @@ export default defineConfig(() => ({
modulePreload: {
polyfill: false,
},
target: "esnext",
},
plugins: [
VueMacros({