From 7d93d4c49f278b37909bcb181d03111423761d5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Slab=C3=BD?= Date: Thu, 20 Nov 2025 12:58:31 +0100 Subject: [PATCH 01/17] Update docker-compose.yml --- docker-compose.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 12ec586e1..78cb60758 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ services: context: . dockerfile: Dockerfile container_name: romm-dev - env_file: .env + env_file: .devcontainer/dev.env environment: - REDIS_HOST=romm-valkey-dev - DB_HOST=${DB_HOST:-romm-db-dev} @@ -36,7 +36,7 @@ services: image: mariadb:11.3.2 container_name: romm-db-dev restart: unless-stopped - env_file: .env + env_file: .devcontainer/dev.env environment: - MARIADB_ROOT_PASSWORD=${DB_ROOT_PASSWD:-rootpassword} - MARIADB_DATABASE=${DB_NAME:-romm} @@ -51,7 +51,7 @@ services: image: valkey/valkey:8 container_name: romm-valkey-dev restart: unless-stopped - env_file: .env + env_file: .devcontainer/dev.env ports: - "${REDIS_PORT:-6379}:6379" @@ -59,7 +59,7 @@ services: image: postgres:16-alpine container_name: romm-postgresql-dev restart: unless-stopped - env_file: .env + env_file: .devcontainer/dev.env environment: POSTGRES_PASSWORD: ${DB_PASSWD:-postgres} POSTGRES_USER: ${DB_USER:-postgres} @@ -74,7 +74,7 @@ services: container_name: romm-authentik-server restart: unless-stopped command: server - env_file: .env + env_file: .devcontainer/dev.env environment: AUTHENTIK_REDIS__HOST: romm-valkey-dev AUTHENTIK_POSTGRESQL__HOST: romm-postgres-dev @@ -98,7 +98,7 @@ services: container_name: romm-authentik-worker restart: unless-stopped command: worker - env_file: .env + env_file: .devcontainer/dev.env environment: AUTHENTIK_REDIS__HOST: romm-valkey-dev AUTHENTIK_POSTGRESQL__HOST: romm-postgres-dev From 83a89b737110910029a7dddc17d3ede5f552d78c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Slab=C3=BD?= Date: Thu, 20 Nov 2025 14:21:57 +0000 Subject: [PATCH 02/17] Translate console --- .../src/console/components/CollectionCard.vue | 4 ++- .../src/console/components/NavigationText.vue | 26 +++++++++-------- .../src/console/components/SettingsModal.vue | 12 ++++---- .../src/console/components/SystemCard.vue | 4 ++- frontend/src/console/views/Game.vue | 12 ++++---- frontend/src/console/views/Home.vue | 22 +++++++------- frontend/src/locales/cs_CZ/console.json | 27 +++++++++++++++++ frontend/src/locales/en_US/console.json | 29 +++++++++++++++++++ 8 files changed, 102 insertions(+), 34 deletions(-) create mode 100644 frontend/src/locales/cs_CZ/console.json create mode 100644 frontend/src/locales/en_US/console.json diff --git a/frontend/src/console/components/CollectionCard.vue b/frontend/src/console/components/CollectionCard.vue index 4f0edf025..7ca20d508 100644 --- a/frontend/src/console/components/CollectionCard.vue +++ b/frontend/src/console/components/CollectionCard.vue @@ -19,7 +19,9 @@ import { getFavoriteCoverImage, EXTENSION_REGEX, } from "@/utils/covers"; +import { useI18n } from "vue-i18n"; +const { t } = useI18n(); const props = defineProps<{ collection: CollectionType; index: number; @@ -229,7 +231,7 @@ onMounted(() => { class="text-xs opacity-90" :style="{ color: 'var(--console-collection-card-text)' }" > - {{ collection.rom_count || 0 }} games + {{ t("console.games-n", collection.rom_count || 0) }} diff --git a/frontend/src/console/components/NavigationText.vue b/frontend/src/console/components/NavigationText.vue index b76e94bc7..fb753dc6d 100644 --- a/frontend/src/console/components/NavigationText.vue +++ b/frontend/src/console/components/NavigationText.vue @@ -3,6 +3,7 @@ import { computed, onMounted, onUnmounted, ref } from "vue"; import ArrowKeysIcon from "./icons/ArrowKeysIcon.vue"; import DPadIcon from "./icons/DPadIcon.vue"; import FaceButtons from "./icons/FaceButtons.vue"; +import { useI18n } from "vue-i18n"; interface Props { showNavigation?: boolean; @@ -24,6 +25,7 @@ const props = withDefaults(defineProps(), { isModal: false, }); +const { t } = useI18n(); const hasController = ref(false); let rafId = 0; @@ -83,54 +85,54 @@ onUnmounted(() => { diff --git a/frontend/src/console/components/SettingsModal.vue b/frontend/src/console/components/SettingsModal.vue index 12e49d894..99186d3d6 100644 --- a/frontend/src/console/components/SettingsModal.vue +++ b/frontend/src/console/components/SettingsModal.vue @@ -5,7 +5,9 @@ import { useConsoleTheme } from "@/console/composables/useConsoleTheme"; import { useInputScope } from "@/console/composables/useInputScope"; import type { InputAction } from "@/console/input/actions"; import { getSfxEnabled, setSfxEnabled } from "@/console/utils/sfx"; +import { useI18n } from "vue-i18n"; +const { t } = useI18n(); const props = defineProps<{ modelValue: boolean; }>(); @@ -19,12 +21,12 @@ const { subscribe } = useInputScope(); const selectedOption = ref(0); const options = [ - { label: "Theme", type: "theme" as const }, - { label: "Sound Effects", type: "sfx" as const }, + { label: t('console.theme'), type: "theme" as const }, + { label: t('console.sound-effects'), type: "sfx" as const }, ]; const themeOptions = [ - { value: "default", label: "Default" }, + { value: "default", label: t('console.default') }, { value: "neon", label: "Soft Neon" }, ]; @@ -116,7 +118,7 @@ function getCurrentThemeLabel(): string {