From fa86a48e067f52e6a7ec35c84f7700640c4d767f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Sat, 21 Mar 2026 22:30:20 -0300 Subject: [PATCH 1/7] chore(l10n): add l10n gitkeep for transifex Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- l10n/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 l10n/.gitkeep diff --git a/l10n/.gitkeep b/l10n/.gitkeep new file mode 100644 index 0000000..e69de29 From a9890fdd405c456af4b7b52fb265ea57b0e87347 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Sat, 21 Mar 2026 22:30:20 -0300 Subject: [PATCH 2/7] fix(l10n): use unicode ellipsis in personal settings Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/views/PersonalSettings.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/PersonalSettings.vue b/src/views/PersonalSettings.vue index 327ec7b..af78918 100644 --- a/src/views/PersonalSettings.vue +++ b/src/views/PersonalSettings.vue @@ -151,7 +151,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later /> - {{ isSaving(field.definition.id) ? t('profile_fields', 'Saving changes...') : t('profile_fields', 'Save changes') }} + {{ isSaving(field.definition.id) ? t('profile_fields', 'Saving changes…') : t('profile_fields', 'Save changes') }} From 439408afba5c5456e3f3958976c171109f6301ec Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Sat, 21 Mar 2026 22:30:20 -0300 Subject: [PATCH 3/7] fix(l10n): use unicode ellipsis in admin settings Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/views/AdminSettings.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/AdminSettings.vue b/src/views/AdminSettings.vue index 5cb9738..5d0530e 100644 --- a/src/views/AdminSettings.vue +++ b/src/views/AdminSettings.vue @@ -397,7 +397,7 @@ const editorEmptyState = computed(() => sortedDefinitions.value.length === 0 description: t('profile_fields', 'Select a field from the list, or create a new one.'), }) const configuredFieldsCountLabel = computed(() => n('profile_fields', 'field configured', 'fields configured', definitions.value.length, { count: definitions.value.length })) -const saveActionLabel = computed(() => isSaving.value ? t('profile_fields', 'Saving changes...') : (isEditing.value ? t('profile_fields', 'Save changes') : t('profile_fields', 'Create field'))) +const saveActionLabel = computed(() => isSaving.value ? t('profile_fields', 'Saving changes…') : (isEditing.value ? t('profile_fields', 'Save changes') : t('profile_fields', 'Create field'))) const editFieldAriaLabel = (label: string) => t('profile_fields', 'Edit field {label}', { label }) const actionsForLabel = (label: string) => t('profile_fields', 'Actions for {label}', { label }) const toggleDefinitionActiveLabel = (definition: FieldDefinition) => definition.active From 592d882270bdd4bc139a80aa87a526b59a389065 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Sat, 21 Mar 2026 22:32:43 -0300 Subject: [PATCH 4/7] fix(i18n): use unicode ellipsis in admin user dialog strings Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/components/AdminUserFieldsDialog.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/AdminUserFieldsDialog.vue b/src/components/AdminUserFieldsDialog.vue index b8aec8e..3a2314d 100644 --- a/src/components/AdminUserFieldsDialog.vue +++ b/src/components/AdminUserFieldsDialog.vue @@ -124,7 +124,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later {{ t('profile_fields', 'Cancel') }} - {{ isSavingAny ? t('profile_fields', 'Saving changes...') : t('profile_fields', 'Save changes') }} + {{ isSavingAny ? t('profile_fields', 'Saving changes…') : t('profile_fields', 'Save changes') }} @@ -184,7 +184,7 @@ export default defineComponent({ const headerUserName = computed(() => props.userDisplayName.trim() !== '' ? props.userDisplayName : props.userUid) const visibilityFieldLabel = t('profile_fields', 'Who can view this field value') - const loadingMessage = computed(() => t('profile_fields', 'Loading profile fields for {userUid}...', { userUid: props.userUid })) + const loadingMessage = computed(() => t('profile_fields', 'Loading profile fields for {userUid}…', { userUid: props.userUid })) const editableFields = computed(() => buildAdminEditableFields(definitions.value, userValues.value)) const isSavingAny = computed(() => savingIds.value.length > 0) const headerDescription = computed(() => { From 9f4ff86c0b567b11b674640fcee9165f78abc22a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Sat, 21 Mar 2026 22:32:43 -0300 Subject: [PATCH 5/7] fix(i18n): use unicode ellipsis in webhook placeholder Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/workflow.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/workflow.ts b/src/workflow.ts index 708135f..62f3358 100644 --- a/src/workflow.ts +++ b/src/workflow.ts @@ -681,7 +681,7 @@ class WorkflowWebhookOperationElement extends HTMLElement { urlInput.type = 'url' urlInput.value = config.url urlInput.disabled = this.disabledInternal - urlInput.placeholder = t('profile_fields', 'Webhook URL (https://...)') + urlInput.placeholder = t('profile_fields', 'Webhook URL (https://…)') urlInput.className = config.url === '' || isUrlValid ? '' : 'invalid' const secretInput = document.createElement('input') From 9b6c06ac268365d9855ae266eed66e6d1066fe6f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Sat, 21 Mar 2026 22:34:56 -0300 Subject: [PATCH 6/7] fix: indent Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/views/PersonalSettings.vue | 2 +- src/workflow.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/PersonalSettings.vue b/src/views/PersonalSettings.vue index af78918..7a9e26f 100644 --- a/src/views/PersonalSettings.vue +++ b/src/views/PersonalSettings.vue @@ -151,7 +151,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later /> - {{ isSaving(field.definition.id) ? t('profile_fields', 'Saving changes…') : t('profile_fields', 'Save changes') }} + {{ isSaving(field.definition.id) ? t('profile_fields', 'Saving changes…') : t('profile_fields', 'Save changes') }} diff --git a/src/workflow.ts b/src/workflow.ts index 62f3358..34c925d 100644 --- a/src/workflow.ts +++ b/src/workflow.ts @@ -681,7 +681,7 @@ class WorkflowWebhookOperationElement extends HTMLElement { urlInput.type = 'url' urlInput.value = config.url urlInput.disabled = this.disabledInternal - urlInput.placeholder = t('profile_fields', 'Webhook URL (https://…)') + urlInput.placeholder = t('profile_fields', 'Webhook URL (https://…)') urlInput.className = config.url === '' || isUrlValid ? '' : 'invalid' const secretInput = document.createElement('input') From e70e83e7b0f503eec4f4537f014ba7c007980b81 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Sat, 21 Mar 2026 22:38:10 -0300 Subject: [PATCH 7/7] chore: update documentation Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- openapi-administration.json | 2 +- openapi-full.json | 2 +- openapi.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openapi-administration.json b/openapi-administration.json index 6c52dc4..2e9da01 100644 --- a/openapi-administration.json +++ b/openapi-administration.json @@ -3,7 +3,7 @@ "info": { "title": "profile_fields-administration", "version": "0.0.1", - "description": "Structured custom profile data for directories, operations and support teams", + "description": "Extend Nextcloud user profiles with customizable fields, access control, and integration-friendly APIs", "license": { "name": "agpl" } diff --git a/openapi-full.json b/openapi-full.json index 551804d..fa4bd48 100644 --- a/openapi-full.json +++ b/openapi-full.json @@ -3,7 +3,7 @@ "info": { "title": "profile_fields-full", "version": "0.0.1", - "description": "Structured custom profile data for directories, operations and support teams", + "description": "Extend Nextcloud user profiles with customizable fields, access control, and integration-friendly APIs", "license": { "name": "agpl" } diff --git a/openapi.json b/openapi.json index d5e81eb..fe05e2d 100644 --- a/openapi.json +++ b/openapi.json @@ -3,7 +3,7 @@ "info": { "title": "profile_fields", "version": "0.0.1", - "description": "Structured custom profile data for directories, operations and support teams", + "description": "Extend Nextcloud user profiles with customizable fields, access control, and integration-friendly APIs", "license": { "name": "agpl" }