From 17006ea538692f4bccf060b77bef0a4b62e62418 Mon Sep 17 00:00:00 2001 From: Dirk Holtwick Date: Sun, 5 Jan 2025 17:19:47 +0100 Subject: [PATCH 1/2] fix: translations --- lib/basic/i18n.ts | 8 ++++++-- lib/basic/oui-file.demo.vue | 5 ++++- lib/basic/oui-file.vue | 28 ++++++++++++---------------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/lib/basic/i18n.ts b/lib/basic/i18n.ts index ad3b4d4..e30e0f7 100644 --- a/lib/basic/i18n.ts +++ b/lib/basic/i18n.ts @@ -1,5 +1,9 @@ import { inject } from 'vue' -export function t(s: string, ...args: any): string { - return (inject('t') ?? ((s: string) => String(s))) as any +export function t(id: string, ...args: any): string { + return ((inject('t') ?? ((s: string) => String(s))) as any)(id, ...args) +} + +export function tt(defaultString: string, id: string, ...args: any): string { + return ((inject('t') ?? ((s: string) => String(defaultString))) as any)(id, ...args) } diff --git a/lib/basic/oui-file.demo.vue b/lib/basic/oui-file.demo.vue index 73abb54..747a631 100644 --- a/lib/basic/oui-file.demo.vue +++ b/lib/basic/oui-file.demo.vue @@ -7,7 +7,8 @@ const state = useLocalStorage('oui.demo.file', { multiple: true, preview: true, accept: 'image/*', - title: 'Choose file...', + title: 'A file input', + titleChoose: 'Choose a file', filename: '', }) @@ -34,11 +35,13 @@ const state = useLocalStorage('oui.demo.file', { v-model:filename="state.filename" :multiple="state.multiple" :title="state.title" + :title-choose="state.titleChoose" :accept="state.accept" /> + diff --git a/lib/basic/oui-file.vue b/lib/basic/oui-file.vue index 11449b9..c280f7a 100644 --- a/lib/basic/oui-file.vue +++ b/lib/basic/oui-file.vue @@ -3,11 +3,11 @@ import type { LoggerInterface } from 'zeed' import { useDropZone, useFileDialog } from '@vueuse/core' import { ref } from 'vue' import { createPromise, Logger } from 'zeed' +import { t } from './i18n' import OuiClose from './oui-close.vue' import OuiFormItem from './oui-form-item.vue' import './oui-file.styl' -import './oui-form.styl' defineOptions({ inheritAttrs: false, @@ -15,6 +15,7 @@ defineOptions({ const props = withDefaults(defineProps<{ title?: string + titleChoose?: string description?: string accept?: string // multiple?: boolean @@ -26,9 +27,9 @@ const props = withDefaults(defineProps<{ multiple: false, }) -const emit = defineEmits<{ - delete: [] -}>() +// const emit = defineEmits<{ +// delete: [] +// }>() const log: LoggerInterface = Logger('oui-file') @@ -38,11 +39,11 @@ const dropZoneRef = ref() // const filesize = ref() // const filetype = ref() -const model = defineModel({ required: true }) -const modelFilename = defineModel('filename', { required: false }) +const model = defineModel({ required: true }) +const modelFilename = defineModel('filename', { required: false }) async function fileToDataURI(file: File): Promise { - const [promise, resolve] = createPromise () + const [promise, resolve] = createPromise() const fileReader = new FileReader() fileReader.addEventListener('error', resolve) fileReader.addEventListener('abort', resolve) @@ -94,20 +95,15 @@ function doSelect() {