aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files')
-rw-r--r--apps/files/l10n/pl.js6
-rw-r--r--apps/files/l10n/pl.json6
-rw-r--r--apps/files/src/actions/sidebarAction.spec.ts2
-rw-r--r--apps/files/src/actions/sidebarAction.ts2
-rw-r--r--apps/files/src/components/FilesListTableHeaderActions.vue6
-rw-r--r--apps/files/src/components/FilesNavigationSearch.vue8
-rw-r--r--apps/files/src/filters/TypeFilter.ts2
-rw-r--r--apps/files/src/utils/actionUtils.ts6
-rw-r--r--apps/files/src/utils/davUtils.ts2
-rw-r--r--apps/files/src/utils/filesViews.spec.ts8
-rw-r--r--apps/files/src/views/FilesList.vue6
-rw-r--r--apps/files/src/views/Settings.vue60
12 files changed, 61 insertions, 53 deletions
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index 107bd2813bd..91b14c35ee9 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -202,13 +202,17 @@ OC.L10N.register(
"Sort favorites first" : "Najpierw sortuj ulubione",
"Sort folders before files" : "Sortuj katalogi przed plikami",
"Enable folder tree" : "Włącz drzewo katalogów",
+ "Visual settings" : "Ustawienia wizualne",
"Show hidden files" : "Pokaż ukryte pliki",
"Show file type column" : "Pokaż kolumnę typu pliku",
"Crop image previews" : "Przytnij podglądy obrazów",
+ "Show files extensions" : "Pokaż rozszerzenia plików",
"Additional settings" : "Ustawienia dodatkowe",
"WebDAV" : "WebDAV",
"WebDAV URL" : "URL WebDAV",
"Copy to clipboard" : "Kopiuj do schowka",
+ "Use this address to access your Files via WebDAV." : "Użyj tego adresu, aby uzyskać dostęp do swoich plików przez WebDAV.",
+ "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Uwierzytelnianie dwuskładnikowe jest włączone dla Twojego konta, dlatego musisz użyć hasła aplikacji, aby połączyć zewnętrznego klienta WebDAV.",
"Warnings" : "Ostrzeżenie",
"Prevent warning dialogs from open or reenable them." : "Zapobiegaj otwieraniu okien dialogowych z ostrzeżeniami lub włącz je ponownie.",
"Show a warning dialog when changing a file extension." : "Pokaż okno dialogowe z ostrzeżeniem przy zmianie rozszerzenia pliku.",
@@ -325,6 +329,7 @@ OC.L10N.register(
"Templates" : "Szablony",
"New template folder" : "Nowy katalog szablonów",
"In folder" : "W katalogu",
+ "Search in all files" : "Szukaj we wszystkich plikach",
"Search in folder: {folder}" : "Szukaj w katalogu: {folder}",
"One of the dropped files could not be processed" : "Jeden z upuszczonych plików nie mógł być przetworzony",
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "Twoja przeglądarka nie obsługuje interfejsu API systemu plików. Katalogi nie zostaną przesłane",
@@ -358,6 +363,7 @@ OC.L10N.register(
"No favorites yet" : "Brak ulubionych",
"Files and folders you mark as favorite will show up here" : "Pliki i katalogi, które oznaczysz jako ulubione wyświetlą się tutaj",
"List of your files and folders." : "Lista Twoich plików i katalogów.",
+ "Folder tree" : "Drzewo folderów",
"List of your files and folders that are not shared." : "Lista twoich plików i katalogów, które nie są udostępniane",
"No personal files found" : "Nie znaleziono plików osobistych",
"Files that are not shared will show up here." : "Tutaj pojawią się pliki, które nie są udostępniane.",
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index 763e3543115..18eac5d41da 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -200,13 +200,17 @@
"Sort favorites first" : "Najpierw sortuj ulubione",
"Sort folders before files" : "Sortuj katalogi przed plikami",
"Enable folder tree" : "Włącz drzewo katalogów",
+ "Visual settings" : "Ustawienia wizualne",
"Show hidden files" : "Pokaż ukryte pliki",
"Show file type column" : "Pokaż kolumnę typu pliku",
"Crop image previews" : "Przytnij podglądy obrazów",
+ "Show files extensions" : "Pokaż rozszerzenia plików",
"Additional settings" : "Ustawienia dodatkowe",
"WebDAV" : "WebDAV",
"WebDAV URL" : "URL WebDAV",
"Copy to clipboard" : "Kopiuj do schowka",
+ "Use this address to access your Files via WebDAV." : "Użyj tego adresu, aby uzyskać dostęp do swoich plików przez WebDAV.",
+ "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Uwierzytelnianie dwuskładnikowe jest włączone dla Twojego konta, dlatego musisz użyć hasła aplikacji, aby połączyć zewnętrznego klienta WebDAV.",
"Warnings" : "Ostrzeżenie",
"Prevent warning dialogs from open or reenable them." : "Zapobiegaj otwieraniu okien dialogowych z ostrzeżeniami lub włącz je ponownie.",
"Show a warning dialog when changing a file extension." : "Pokaż okno dialogowe z ostrzeżeniem przy zmianie rozszerzenia pliku.",
@@ -323,6 +327,7 @@
"Templates" : "Szablony",
"New template folder" : "Nowy katalog szablonów",
"In folder" : "W katalogu",
+ "Search in all files" : "Szukaj we wszystkich plikach",
"Search in folder: {folder}" : "Szukaj w katalogu: {folder}",
"One of the dropped files could not be processed" : "Jeden z upuszczonych plików nie mógł być przetworzony",
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "Twoja przeglądarka nie obsługuje interfejsu API systemu plików. Katalogi nie zostaną przesłane",
@@ -356,6 +361,7 @@
"No favorites yet" : "Brak ulubionych",
"Files and folders you mark as favorite will show up here" : "Pliki i katalogi, które oznaczysz jako ulubione wyświetlą się tutaj",
"List of your files and folders." : "Lista Twoich plików i katalogów.",
+ "Folder tree" : "Drzewo folderów",
"List of your files and folders that are not shared." : "Lista twoich plików i katalogów, które nie są udostępniane",
"No personal files found" : "Nie znaleziono plików osobistych",
"Files that are not shared will show up here." : "Tutaj pojawią się pliki, które nie są udostępniane.",
diff --git a/apps/files/src/actions/sidebarAction.spec.ts b/apps/files/src/actions/sidebarAction.spec.ts
index 75ed8c97b47..9085bf595ad 100644
--- a/apps/files/src/actions/sidebarAction.spec.ts
+++ b/apps/files/src/actions/sidebarAction.spec.ts
@@ -17,7 +17,7 @@ describe('Open sidebar action conditions tests', () => {
test('Default values', () => {
expect(action).toBeInstanceOf(FileAction)
expect(action.id).toBe('details')
- expect(action.displayName([], view)).toBe('Open details')
+ expect(action.displayName([], view)).toBe('Details')
expect(action.iconSvgInline([], view)).toMatch(/<svg.+<\/svg>/)
expect(action.default).toBeUndefined()
expect(action.order).toBe(-50)
diff --git a/apps/files/src/actions/sidebarAction.ts b/apps/files/src/actions/sidebarAction.ts
index 0b8ad91741e..8f020b4ee8d 100644
--- a/apps/files/src/actions/sidebarAction.ts
+++ b/apps/files/src/actions/sidebarAction.ts
@@ -16,7 +16,7 @@ export const ACTION_DETAILS = 'details'
export const action = new FileAction({
id: ACTION_DETAILS,
- displayName: () => t('files', 'Open details'),
+ displayName: () => t('files', 'Details'),
iconSvgInline: () => InformationSvg,
// Sidebar currently supports user folder only, /files/USER
diff --git a/apps/files/src/components/FilesListTableHeaderActions.vue b/apps/files/src/components/FilesListTableHeaderActions.vue
index 53b7e7ef21b..6a808355c58 100644
--- a/apps/files/src/components/FilesListTableHeaderActions.vue
+++ b/apps/files/src/components/FilesListTableHeaderActions.vue
@@ -305,16 +305,16 @@ export default defineComponent({
return
}
- showError(this.t('files', '"{displayName}" failed on some elements', { displayName }))
+ showError(this.t('files', '{displayName}: failed on some elements', { displayName }))
return
}
// Show success message and clear selection
- showSuccess(this.t('files', '"{displayName}" batch action executed successfully', { displayName }))
+ showSuccess(this.t('files', '{displayName}: done', { displayName }))
this.selectionStore.reset()
} catch (e) {
logger.error('Error while executing action', { action, e })
- showError(this.t('files', '"{displayName}" action failed', { displayName }))
+ showError(this.t('files', '{displayName}: failed', { displayName }))
} finally {
// Remove loading markers
this.loading = null
diff --git a/apps/files/src/components/FilesNavigationSearch.vue b/apps/files/src/components/FilesNavigationSearch.vue
index e34d4bf0971..0890dffcb39 100644
--- a/apps/files/src/components/FilesNavigationSearch.vue
+++ b/apps/files/src/components/FilesNavigationSearch.vue
@@ -55,9 +55,9 @@ const isSearchView = computed(() => currentView.value.id === VIEW_ID)
*/
const searchLabel = computed(() => {
if (searchStore.scope === 'globally') {
- return t('files', 'Search globally by filename …')
+ return t('files', 'Search everywhere …')
}
- return t('files', 'Search here by filename …')
+ return t('files', 'Search here …')
})
</script>
@@ -72,13 +72,13 @@ const searchLabel = computed(() => {
<template #icon>
<NcIconSvgWrapper :path="mdiMagnify" />
</template>
- {{ t('files', 'Filter and search from this location') }}
+ {{ t('files', 'Search here') }}
</NcActionButton>
<NcActionButton close-after-click @click="searchStore.scope = 'globally'">
<template #icon>
<NcIconSvgWrapper :path="mdiSearchWeb" />
</template>
- {{ t('files', 'Search globally') }}
+ {{ t('files', 'Search everywhere') }}
</NcActionButton>
</NcActions>
</template>
diff --git a/apps/files/src/filters/TypeFilter.ts b/apps/files/src/filters/TypeFilter.ts
index 94b109ea7a4..3170e22b260 100644
--- a/apps/files/src/filters/TypeFilter.ts
+++ b/apps/files/src/filters/TypeFilter.ts
@@ -73,7 +73,7 @@ const getTypePresets = async () => [
{
id: 'image',
// TRANSLATORS: This is for filtering files, e.g. PNG or JPEG, so photos, drawings, or images in general
- label: t('files', 'Photos and images'),
+ label: t('files', 'Images'),
icon: svgImage,
mime: ['image'],
},
diff --git a/apps/files/src/utils/actionUtils.ts b/apps/files/src/utils/actionUtils.ts
index f6d43727c29..adacf621b4c 100644
--- a/apps/files/src/utils/actionUtils.ts
+++ b/apps/files/src/utils/actionUtils.ts
@@ -59,13 +59,13 @@ export const executeAction = async (action: FileAction) => {
}
if (success) {
- showSuccess(t('files', '"{displayName}" action executed successfully', { displayName }))
+ showSuccess(t('files', '{displayName}: done', { displayName }))
return
}
- showError(t('files', '"{displayName}" action failed', { displayName }))
+ showError(t('files', '{displayName}: failed', { displayName }))
} catch (error) {
logger.error('Error while executing action', { action, error })
- showError(t('files', '"{displayName}" action failed', { displayName }))
+ showError(t('files', '{displayName}: failed', { displayName }))
} finally {
// Reset the loading marker
Vue.set(currentNode, 'status', undefined)
diff --git a/apps/files/src/utils/davUtils.ts b/apps/files/src/utils/davUtils.ts
index d8dc12d069d..54c1a6ea966 100644
--- a/apps/files/src/utils/davUtils.ts
+++ b/apps/files/src/utils/davUtils.ts
@@ -29,7 +29,7 @@ export function humanizeWebDAVError(error: unknown) {
} else if (status === 403) {
return t('files', 'This operation is forbidden')
} else if (status === 500) {
- return t('files', 'This directory is unavailable, please check the logs or contact the administrator')
+ return t('files', 'This folder is unavailable, please try again later or contact the administration')
} else if (status === 503) {
return t('files', 'Storage is temporarily not available')
}
diff --git a/apps/files/src/utils/filesViews.spec.ts b/apps/files/src/utils/filesViews.spec.ts
index e8c2ab3a6c1..03b0bb9aeb0 100644
--- a/apps/files/src/utils/filesViews.spec.ts
+++ b/apps/files/src/utils/filesViews.spec.ts
@@ -26,11 +26,7 @@ describe('hasPersonalFilesView', () => {
})
describe('defaultView', () => {
- beforeEach(() => {
- document.querySelectorAll('input[type="hidden"]').forEach((el) => {
- el.remove()
- })
- })
+ beforeEach(removeInitialState)
test('Returns files view if set', () => {
mockInitialState('files', 'config', { default_view: 'files' })
@@ -57,6 +53,8 @@ function removeInitialState(): void {
document.querySelectorAll('input[type="hidden"]').forEach((el) => {
el.remove()
})
+ // clear the cache
+ delete globalThis._nc_initial_state
}
/**
diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue
index 3f993e24958..f9e517e92ee 100644
--- a/apps/files/src/views/FilesList.vue
+++ b/apps/files/src/views/FilesList.vue
@@ -816,13 +816,13 @@ export default defineComponent({
}
if (success) {
- showSuccess(t('files', '"{displayName}" action executed successfully', { displayName }))
+ showSuccess(t('files', '{displayName}: done', { displayName }))
return
}
- showError(t('files', '"{displayName}" action failed', { displayName }))
+ showError(t('files', '{displayName}: failed', { displayName }))
} catch (error) {
logger.error('Error while executing action', { action, error })
- showError(t('files', '"{displayName}" action failed', { displayName }))
+ showError(t('files', '{displayName}: failed', { displayName }))
} finally {
this.loadingAction = null
}
diff --git a/apps/files/src/views/Settings.vue b/apps/files/src/views/Settings.vue
index 0838d308af9..bfac8e0b3d6 100644
--- a/apps/files/src/views/Settings.vue
+++ b/apps/files/src/views/Settings.vue
@@ -8,7 +8,7 @@
:name="t('files', 'Files settings')"
@update:open="onClose">
<!-- Settings API-->
- <NcAppSettingsSection id="settings" :name="t('files', 'Files settings')">
+ <NcAppSettingsSection id="settings" :name="t('files', 'General')">
<fieldset class="files-settings__default-view"
data-cy-files-settings-setting="default_view">
<legend>
@@ -42,12 +42,12 @@
<NcCheckboxRadioSwitch data-cy-files-settings-setting="folder_tree"
:checked="userConfig.folder_tree"
@update:checked="setConfig('folder_tree', $event)">
- {{ t('files', 'Enable folder tree') }}
+ {{ t('files', 'Folder tree') }}
</NcCheckboxRadioSwitch>
</NcAppSettingsSection>
- <!-- Visual settings -->
- <NcAppSettingsSection id="settings" :name="t('files', 'Visual settings')">
+ <!-- Appearance -->
+ <NcAppSettingsSection id="settings" :name="t('files', 'Appearance')">
<NcCheckboxRadioSwitch data-cy-files-settings-setting="show_hidden"
:checked="userConfig.show_hidden"
@update:checked="setConfig('show_hidden', $event)">
@@ -58,16 +58,16 @@
@update:checked="setConfig('show_mime_column', $event)">
{{ t('files', 'Show file type column') }}
</NcCheckboxRadioSwitch>
+ <NcCheckboxRadioSwitch data-cy-files-settings-setting="show_files_extensions"
+ :checked="userConfig.show_files_extensions"
+ @update:checked="setConfig('show_files_extensions', $event)">
+ {{ t('files', 'Show file extensions') }}
+ </NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch data-cy-files-settings-setting="crop_image_previews"
:checked="userConfig.crop_image_previews"
@update:checked="setConfig('crop_image_previews', $event)">
{{ t('files', 'Crop image previews') }}
</NcCheckboxRadioSwitch>
- <NcCheckboxRadioSwitch data-cy-files-settings-setting="show_files_extensions"
- :checked="userConfig.show_files_extensions"
- @update:checked="setConfig('show_files_extensions', $event)">
- {{ t('files', 'Show files extensions') }}
- </NcCheckboxRadioSwitch>
</NcAppSettingsSection>
<!-- Settings API-->
@@ -85,7 +85,7 @@
:label="t('files', 'WebDAV URL')"
:show-trailing-button="true"
:success="webdavUrlCopied"
- :trailing-button-label="t('files', 'Copy to clipboard')"
+ :trailing-button-label="t('files', 'Copy')"
:value="webdavUrl"
class="webdav-url-input"
readonly="readonly"
@@ -101,7 +101,7 @@
:href="webdavDocs"
target="_blank"
rel="noreferrer noopener">
- {{ t('files', 'Use this address to access your Files via WebDAV.') }} ↗
+ {{ t('files', 'How to access files using WebDAV') }} ↗
</a>
</em>
<br>
@@ -113,22 +113,20 @@
</NcAppSettingsSection>
<NcAppSettingsSection id="warning" :name="t('files', 'Warnings')">
- <em>{{ t('files', 'Prevent warning dialogs from open or reenable them.') }}</em>
<NcCheckboxRadioSwitch type="switch"
:checked="userConfig.show_dialog_file_extension"
@update:checked="setConfig('show_dialog_file_extension', $event)">
- {{ t('files', 'Show a warning dialog when changing a file extension.') }}
+ {{ t('files', 'Warn before changing a file extension') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch type="switch"
:checked="userConfig.show_dialog_deletion"
@update:checked="setConfig('show_dialog_deletion', $event)">
- {{ t('files', 'Show a warning dialog when deleting files.') }}
+ {{ t('files', 'Warn before deleting files') }}
</NcCheckboxRadioSwitch>
</NcAppSettingsSection>
<NcAppSettingsSection id="shortcuts"
:name="t('files', 'Keyboard shortcuts')">
- <em>{{ t('files', 'Speed up your Files experience with these quick shortcuts.') }}</em>
<h3>{{ t('files', 'Actions') }}</h3>
<dl>
@@ -137,7 +135,7 @@
<kbd>a</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Open the actions menu for a file') }}
+ {{ t('files', 'File actions') }}
</dd>
</div>
<div>
@@ -145,7 +143,7 @@
<kbd>F2</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Rename a file') }}
+ {{ t('files', 'Rename') }}
</dd>
</div>
<div>
@@ -153,7 +151,7 @@
<kbd>Del</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Delete a file') }}
+ {{ t('files', 'Delete') }}
</dd>
</div>
<div>
@@ -161,7 +159,7 @@
<kbd>s</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Favorite or remove a file from favorites') }}
+ {{ t('files', 'Add or remove favorite') }}
</dd>
</div>
<div v-if="isSystemtagsEnabled">
@@ -169,7 +167,7 @@
<kbd>t</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Manage tags for a file') }}
+ {{ t('files', 'Manage tags') }}
</dd>
</div>
</dl>
@@ -189,7 +187,7 @@
<kbd>ESC</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Deselect all files') }}
+ {{ t('files', 'Deselect all') }}
</dd>
</div>
<div>
@@ -197,7 +195,7 @@
<kbd>Ctrl</kbd> + <kbd>Space</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Select or deselect a file') }}
+ {{ t('files', 'Select or deselect') }}
</dd>
</div>
<div>
@@ -205,7 +203,7 @@
<kbd>Ctrl</kbd> + <kbd>Shift</kbd> <span>+ <kbd>Space</kbd></span>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Select a range of files') }}
+ {{ t('files', 'Select a range') }}
</dd>
</div>
</dl>
@@ -217,7 +215,7 @@
<kbd>Alt</kbd> + <kbd>↑</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Navigate to the parent folder') }}
+ {{ t('files', 'Go to parent folder') }}
</dd>
</div>
<div>
@@ -225,7 +223,7 @@
<kbd>↑</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Navigate to the file above') }}
+ {{ t('files', 'Go to file above') }}
</dd>
</div>
<div>
@@ -233,7 +231,7 @@
<kbd>↓</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Navigate to the file below') }}
+ {{ t('files', 'Go to file below') }}
</dd>
</div>
<div>
@@ -241,7 +239,7 @@
<kbd>←</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Navigate to the file on the left (in grid mode)') }}
+ {{ t('files', 'Go left in grid') }}
</dd>
</div>
<div>
@@ -249,7 +247,7 @@
<kbd>→</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Navigate to the file on the right (in grid mode)') }}
+ {{ t('files', 'Go right in grid') }}
</dd>
</div>
</dl>
@@ -261,7 +259,7 @@
<kbd>V</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Toggle the grid view') }}
+ {{ t('files', 'Toggle grid view') }}
</dd>
</div>
<div>
@@ -269,7 +267,7 @@
<kbd>D</kbd>
</dt>
<dd class="shortcut-description">
- {{ t('files', 'Open the sidebar for a file') }}
+ {{ t('files', 'Open file sidebar') }}
</dd>
</div>
<div>
@@ -400,7 +398,7 @@ export default {
await navigator.clipboard.writeText(this.webdavUrl)
this.webdavUrlCopied = true
- showSuccess(t('files', 'WebDAV URL copied to clipboard'))
+ showSuccess(t('files', 'WebDAV URL copied'))
setTimeout(() => {
this.webdavUrlCopied = false
}, 5000)