Skip to content

Commit 5cdfdff

Browse files
authored
Merge pull request #12019 from owncloud/fix/file-extension-label-callback
fix: allow callback for file extension labels
2 parents 4724e31 + 68448eb commit 5cdfdff

File tree

6 files changed

+23
-17
lines changed

6 files changed

+23
-17
lines changed

packages/web-app-external/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export default defineWebApplication({
5858
const provider = mimeType.app_providers.find((provider) => provider.name === appName)
5959
return {
6060
extension: mimeType.ext,
61-
label: $gettext('Open in %{app}', { app: provider.name }),
61+
label: () => $gettext('Open in %{app}', { app: provider.name }),
6262
icon: provider.icon,
6363
name: provider.name,
6464
mimeType: mimeType.mime_type,

packages/web-app-preview/src/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { AppWrapperRoute, defineWebApplication } from '@ownclouders/web-pkg'
1+
import { ApplicationInformation, AppWrapperRoute, defineWebApplication } from '@ownclouders/web-pkg'
22
import translations from '../l10n/translations.json'
33
import * as app from './App.vue'
44
import { useGettext } from 'vue3-gettext'
@@ -30,14 +30,14 @@ export default defineWebApplication({
3030

3131
const routeName = 'preview-media'
3232

33-
const appInfo = {
33+
const appInfo: ApplicationInformation = {
3434
name: $gettext('Preview'),
3535
id: appId,
3636
icon: 'eye',
3737
extensions: mimeTypes.map((mimeType) => ({
3838
mimeType,
3939
routeName,
40-
label: $gettext('Preview')
40+
label: () => $gettext('Preview')
4141
}))
4242
}
4343

packages/web-app-text-editor/src/index.ts

+13-10
Original file line numberDiff line numberDiff line change
@@ -25,39 +25,39 @@ export default defineWebApplication({
2525
const extensions: ApplicationFileExtension[] = [
2626
{
2727
extension: 'txt',
28-
label: $gettext('Plain text file')
28+
label: () => $gettext('Plain text file')
2929
},
3030
{
3131
extension: 'md',
32-
label: $gettext('Markdown file')
32+
label: () => $gettext('Markdown file')
3333
},
3434
{
3535
extension: 'markdown',
36-
label: $gettext('Markdown file')
36+
label: () => $gettext('Markdown file')
3737
},
3838
{
3939
extension: 'js',
40-
label: $gettext('JavaScript file')
40+
label: () => $gettext('JavaScript file')
4141
},
4242
{
4343
extension: 'json',
44-
label: $gettext('JSON file')
44+
label: () => $gettext('JSON file')
4545
},
4646
{
4747
extension: 'xml',
48-
label: $gettext('XML file')
48+
label: () => $gettext('XML file')
4949
},
5050
{
5151
extension: 'py',
52-
label: $gettext('Python file')
52+
label: () => $gettext('Python file')
5353
},
5454
{
5555
extension: 'php',
56-
label: $gettext('PHP file')
56+
label: () => $gettext('PHP file')
5757
},
5858
{
5959
extension: 'yaml',
60-
label: $gettext('YAML file')
60+
label: () => $gettext('YAML file')
6161
}
6262
]
6363

@@ -75,7 +75,10 @@ export default defineWebApplication({
7575
if (isPrimary) {
7676
extensionItem.newFileMenu = {
7777
menuTitle() {
78-
return $gettext(extensionItem.label)
78+
if (typeof extensionItem.label === 'function') {
79+
return extensionItem.label()
80+
}
81+
return extensionItem.label
7982
}
8083
}
8184
}

packages/web-pkg/src/apps/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export interface ApplicationFileExtension {
5656
currentFolder: Resource
5757
}) => Promise<Resource>
5858
hasPriority?: boolean
59-
label?: string
59+
label?: string | (() => string)
6060
name?: string
6161
icon?: string
6262
mimeType?: string

packages/web-pkg/src/components/ContextActions/ActionMenuItem.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export default defineComponent({
147147
const openInNewTabHint = computed(() => {
148148
return $gettext(
149149
'Hold %{key} and click to open in new tab',
150-
{ key: unref(isMacOs) ? '' : 'ctrl' },
150+
{ key: unref(isMacOs) ? '' : $gettext('ctrl') },
151151
true
152152
)
153153
})

packages/web-pkg/src/composables/actions/files/useFileActions.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,10 @@ export const useFileActions = () => {
119119
name: `editor-${fileExtension.app}`,
120120
label: () => {
121121
if (fileExtension.label) {
122-
return $gettext(fileExtension.label)
122+
if (typeof fileExtension.label === 'function') {
123+
return fileExtension.label()
124+
}
125+
return fileExtension.label
123126
}
124127
return $gettext('Open in %{app}', { app: appInfo.name }, true)
125128
},

0 commit comments

Comments
 (0)