From 30331520c2cc97b767eb0dbe64d522091902664b Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 31 Jul 2026 09:46:59 -0400 Subject: [PATCH 1/5] fix(settings): Untranslated runtime error in UserList.vue Avoid passing a literal English error directly to `showError` that leaves non-English users with English UI feedback. Part of experiment for nextcloud/docker-ci#982 Assisted-by: Copilot:GPT-5.6 Signed-off-by: Josh --- apps/settings/src/components/UserList.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/settings/src/components/UserList.vue b/apps/settings/src/components/UserList.vue index 0cb78e12b0e9a..8c261564608da 100644 --- a/apps/settings/src/components/UserList.vue +++ b/apps/settings/src/components/UserList.vue @@ -307,7 +307,7 @@ export default { logger.debug(`${this.users.length} total user(s) loaded`) } catch (error) { logger.error('Failed to load accounts', { error }) - showError('Failed to load accounts') + showError(t('settings', 'Failed to load accounts')) } this.loading.users = false }, From a19cf082e2278f4583c1337f15cc625ef60175a3 Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 31 Jul 2026 10:10:19 -0400 Subject: [PATCH 2/5] fix(settings): [i18n] avoid concatenation in generic request errors Use a single translation with a named placeholder. Also: Prefer a plain-text separator to avoid unnecessary HTML interpretation. Signed-off-by: Josh --- apps/settings/src/store/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/settings/src/store/index.js b/apps/settings/src/store/index.js index 2a76f441deb6b..47548477e63a6 100644 --- a/apps/settings/src/store/index.js +++ b/apps/settings/src/store/index.js @@ -14,7 +14,7 @@ const mutations = { API_FAILURE(state, error) { try { const message = error.error.response.data.ocs.meta.message - showError(t('settings', 'An error occurred during the request. Unable to proceed.') + '
' + message, { isHTML: true }) + showError(t('settings', 'An error occurred during the request. Unable to proceed. {message}', { message })) } catch { showError(t('settings', 'An error occurred during the request. Unable to proceed.')) } From 431a0a680b7c84640c7078c9af9f38b9777ef84a Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 31 Jul 2026 10:24:06 -0400 Subject: [PATCH 3/5] fix(settings): [i18n] add translator context to placeholder in GroupSelect Signed-off-by: Josh --- apps/settings/src/components/AdminDelegation/GroupSelect.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/settings/src/components/AdminDelegation/GroupSelect.vue b/apps/settings/src/components/AdminDelegation/GroupSelect.vue index 209dedc98a78c..f2fd3e4cae464 100644 --- a/apps/settings/src/components/AdminDelegation/GroupSelect.vue +++ b/apps/settings/src/components/AdminDelegation/GroupSelect.vue @@ -7,6 +7,7 @@ v-model="selected" :input-id="setting.id" class="group-select" + :placeholder="t('settings', 'None')" label="displayName" :options="availableGroups" From 7de982271f85716caa025fc139c47c780b52fe2a Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 31 Jul 2026 10:40:19 -0400 Subject: [PATCH 4/5] chore(settings): [i18n] correct translator context placement in GroupSelect Signed-off-by: Josh --- apps/settings/src/components/AdminDelegation/GroupSelect.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/settings/src/components/AdminDelegation/GroupSelect.vue b/apps/settings/src/components/AdminDelegation/GroupSelect.vue index f2fd3e4cae464..167d60506a9af 100644 --- a/apps/settings/src/components/AdminDelegation/GroupSelect.vue +++ b/apps/settings/src/components/AdminDelegation/GroupSelect.vue @@ -3,11 +3,11 @@ - SPDX-License-Identifier: AGPL-3.0-or-later -->