fix(files): add plural form for selected nodes

Reported at Transifex:
> This string needs pluralization feature, because in some languages translation of "selected" differs between singular and plural.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
pull/53588/head
Ferdinand Thiessen 2025-06-18 10:20:36 +07:00
parent 758c9053e5
commit 761525a787
3 changed files with 11 additions and 8 deletions

@ -21,7 +21,9 @@
</template>
<template v-if="!isNoneSelected" #header-overlay>
<span class="files-list__selected">{{ t('files', '{count} selected', { count: selectedNodes.length }) }}</span>
<span class="files-list__selected">
{{ n('files', '{count} selected', '{count} selected', selectedNodes.length, { count: selectedNodes.length }) }}
</span>
<FilesListTableHeaderActions :current-view="currentView"
:selected-nodes="selectedNodes" />
</template>
@ -65,8 +67,8 @@ import type { Location } from 'vue-router'
import { Folder, View, getFileActions, FileType } from '@nextcloud/files'
import { showError } from '@nextcloud/dialogs'
import { translate as t } from '@nextcloud/l10n'
import { subscribe, unsubscribe } from '@nextcloud/event-bus'
import { n, t } from '@nextcloud/l10n'
import { defineComponent } from 'vue'
import { action as sidebarAction } from '../actions/sidebarAction.ts'
@ -130,6 +132,9 @@ export default defineComponent({
userConfigStore,
selectionStore,
n,
t,
}
},
@ -353,8 +358,6 @@ export default defineComponent({
tableElement.scrollTop = tableElement.scrollTop + 25
}
},
t,
},
})
</script>

@ -40,7 +40,7 @@ describe('files: Select all files', { testIsolation: true }, () => {
selectAllFiles()
cy.get('.files-list__selected').should('have.text', '7 selected')
cy.get('.files-list__selected').should('contain.text', '7 selected')
cy.get('[data-cy-files-list-row-checkbox]').findByRole('checkbox').should('be.checked')
deselectAllFiles()
@ -59,7 +59,7 @@ describe('files: Select all files', { testIsolation: true }, () => {
randomFiles.forEach(name => selectRowForFile(name))
cy.get('.files-list__selected').should('have.text', `${randomFiles.length} selected`)
cy.get('.files-list__selected').should('contain.text', `${randomFiles.length} selected`)
cy.get('[data-cy-files-list-row-checkbox] input[type="checkbox"]:checked').should('have.length', randomFiles.length)
})
@ -70,7 +70,7 @@ describe('files: Select all files', { testIsolation: true }, () => {
selectRowForFile('readme.md', { shiftKey: true })
cy.window().trigger('keyup', { shiftKey: false, key: 'Shift' })
cy.get('.files-list__selected').should('have.text', '4 selected')
cy.get('.files-list__selected').should('contain.text', '4 selected')
cy.get('[data-cy-files-list-row-checkbox] input[type="checkbox"]:checked').should('have.length', 4)
})

@ -63,7 +63,7 @@ describe('files_trashbin: download files', { testIsolation: true }, () => {
it('does not offer bulk download', () => {
cy.get('[data-cy-files-list-row-checkbox]').should('have.length', 2)
selectAllFiles()
cy.get('.files-list__selected').should('have.text', '2 selected')
cy.get('.files-list__selected').should('contain.text', '2 selected')
cy.get('.files-list__row-actions-batch')
.should('be.visible')
.within(() => {