From 750e3ff600951b95971ad3c371166fd86c4b2a62 Mon Sep 17 00:00:00 2001 From: wz Date: Mon, 16 Mar 2026 08:28:27 +0800 Subject: [PATCH 1/3] fix: broken i18n meta tag for audio converter tool --- public/locales/zh/converters.json | 8 ++++++++ src/@types/i18n.d.ts | 2 ++ src/i18n/index.ts | 3 ++- src/pages/tools/converters/audio-converter/meta.ts | 8 ++++---- 4 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 public/locales/zh/converters.json diff --git a/public/locales/zh/converters.json b/public/locales/zh/converters.json new file mode 100644 index 0000000..fad5ec1 --- /dev/null +++ b/public/locales/zh/converters.json @@ -0,0 +1,8 @@ +{ + "audioconverter": { + "title": "音频转换器", + "description": "在不同格式之间转换音频文件。", + "shortDescription": "将音频文件转换为各种格式。", + "longDescription": "此工具允许您将音频文件从一种格式转换为另一种格式,支持多种音频格式的无缝转换。" + } +} diff --git a/src/@types/i18n.d.ts b/src/@types/i18n.d.ts index a0554fa..12a45a6 100644 --- a/src/@types/i18n.d.ts +++ b/src/@types/i18n.d.ts @@ -12,6 +12,7 @@ import pdf from '../../public/locales/en/pdf.json'; import audio from '../../public/locales/en/audio.json'; import xml from '../../public/locales/en/xml.json'; import image from '../../public/locales/en/image.json'; +import converters from '../../public/locales/en/converters.json'; declare module 'i18next' { interface CustomTypeOptions { @@ -28,6 +29,7 @@ declare module 'i18next' { audio: typeof audio; xml: typeof xml; image: typeof image; + converters: typeof converters; }; } } diff --git a/src/i18n/index.ts b/src/i18n/index.ts index fbec4a1..9efe881 100644 --- a/src/i18n/index.ts +++ b/src/i18n/index.ts @@ -15,7 +15,8 @@ export const validNamespaces = [ 'audio', 'xml', 'translation', - 'image' + 'image', + 'converters' ] as const satisfies readonly Namespace[]; export type I18nNamespaces = (typeof validNamespaces)[number]; diff --git a/src/pages/tools/converters/audio-converter/meta.ts b/src/pages/tools/converters/audio-converter/meta.ts index 757fed4..b33806f 100644 --- a/src/pages/tools/converters/audio-converter/meta.ts +++ b/src/pages/tools/converters/audio-converter/meta.ts @@ -3,10 +3,10 @@ import { lazy } from 'react'; export const tool = defineTool('converters', { i18n: { - name: 'translation:converters.audioconverter.title', - description: 'translation:converters.audioconverter.description', - shortDescription: 'translation:converters.audioconverter.shortDescription', - longDescription: 'translation:converters.audioconverter.longDescription' + name: 'converters:audioconverter.title', + description: 'converters:audioconverter.description', + shortDescription: 'converters:audioconverter.shortDescription', + longDescription: 'converters:audioconverter.longDescription' }, path: 'audio-converter', icon: 'mdi:music-note-outline', From 7334e55191f12eed8aee7f85294ec77bb558ea0b Mon Sep 17 00:00:00 2001 From: Chesterkxng Date: Mon, 16 Mar 2026 15:36:29 +0100 Subject: [PATCH 2/3] chore: Case correction --- public/locales/zh/converters.json | 2 +- src/pages/tools/converters/audio-converter/meta.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/public/locales/zh/converters.json b/public/locales/zh/converters.json index fad5ec1..2dd9d6c 100644 --- a/public/locales/zh/converters.json +++ b/public/locales/zh/converters.json @@ -1,5 +1,5 @@ { - "audioconverter": { + "audioConverter": { "title": "音频转换器", "description": "在不同格式之间转换音频文件。", "shortDescription": "将音频文件转换为各种格式。", diff --git a/src/pages/tools/converters/audio-converter/meta.ts b/src/pages/tools/converters/audio-converter/meta.ts index b33806f..1cfcef1 100644 --- a/src/pages/tools/converters/audio-converter/meta.ts +++ b/src/pages/tools/converters/audio-converter/meta.ts @@ -3,10 +3,10 @@ import { lazy } from 'react'; export const tool = defineTool('converters', { i18n: { - name: 'converters:audioconverter.title', - description: 'converters:audioconverter.description', - shortDescription: 'converters:audioconverter.shortDescription', - longDescription: 'converters:audioconverter.longDescription' + name: 'converters:audioConverter.title', + description: 'converters:audioConverter.description', + shortDescription: 'converters:audioConverter.shortDescription', + longDescription: 'converters:audioConverter.longDescription' }, path: 'audio-converter', icon: 'mdi:music-note-outline', From 747ea92cbcd4ea3a8aa4a8e1ce22b49e79034a7d Mon Sep 17 00:00:00 2001 From: Chesterkxng Date: Mon, 16 Mar 2026 15:39:28 +0100 Subject: [PATCH 3/3] chore: fix translation scope and complete i18n support - Apply useTranslation to converters instead of audio - Add missing translation keys for full i18n coverage --- public/locales/en/converters.json | 8 ++++-- .../converters/audio-converter/index.tsx | 27 ++++++------------- 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/public/locales/en/converters.json b/public/locales/en/converters.json index eb48c4d..584a717 100644 --- a/public/locales/en/converters.json +++ b/public/locales/en/converters.json @@ -1,8 +1,12 @@ { - "audioconverter": { + "audioConverter": { "title": "Audio Converter", "description": "Convert audio files between different formats.", "shortDescription": "Convert audio files to various formats.", - "longDescription": "This tool allows you to convert audio files from one format to another, supporting a wide range of audio formats for seamless conversion." + "longDescription": "This tool allows you to convert audio files from one format to another, supporting a wide range of audio formats for seamless conversion.", + "outputFormat": "output Format", + "outputFormatDescription": "Select the desired output audio format", + "inputTitle": "Audio Input", + "outputTitle": "Converted Audio" } } diff --git a/src/pages/tools/converters/audio-converter/index.tsx b/src/pages/tools/converters/audio-converter/index.tsx index 1654bf7..a77c26e 100644 --- a/src/pages/tools/converters/audio-converter/index.tsx +++ b/src/pages/tools/converters/audio-converter/index.tsx @@ -14,11 +14,8 @@ const initialValues: InitialValuesType = { outputFormat: 'mp3' }; -export default function AudioConverter({ - title, - longDescription -}: ToolComponentProps) { - const { t } = useTranslation('audio'); +export default function AudioConverter({ title }: ToolComponentProps) { + const { t } = useTranslation('converters'); const [input, setInput] = useState(null); const [result, setResult] = useState(null); const [loading, setLoading] = useState(false); @@ -47,12 +44,7 @@ export default function AudioConverter({ updateField }) => [ { - id: 'output-format', - title: t('audioConverter.outputFormat', 'Output Format'), - description: t( - 'audioConverter.outputFormatDescription', - 'Select the desired output audio format' - ), + title: t('audioConverter.outputFormat'), component: ( ) @@ -80,13 +69,13 @@ export default function AudioConverter({ } resultComponent={ } @@ -95,8 +84,8 @@ export default function AudioConverter({ setInput={setInput} compute={compute} toolInfo={{ - title: `What is a ${title}?`, - description: longDescription + title: t('audioConverter.title'), + description: t('audioConverter.longDescription') }} /> );