diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 3f79c3d..1bfb20d 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,12 +4,128 @@
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -42,171 +158,171 @@
"state": "OPEN"
}
}
- {
+ "prStates": [
{
- "id": {
- "id": "PR_kwDOMJIfts51PkS9",
- "number": 22
+ "id": {
+ "id": "PR_kwDOMJIfts51PkS9",
+ "number": 22
},
- "lastSeen": 1741207144695
+ "lastSeen": 1741207144695
},
{
- "id": {
- "id": "PR_kwDOMJIfts6NiNYl",
- "number": 32
+ "id": {
+ "id": "PR_kwDOMJIfts6NiNYl",
+ "number": 32
},
- "lastSeen": 1741209723869
+ "lastSeen": 1741209723869
},
{
- "id": {
- "id": "PR_kwDOMJIfts6Nheyd",
- "number": 31
+ "id": {
+ "id": "PR_kwDOMJIfts6Nheyd",
+ "number": 31
},
- "lastSeen": 1741213371410
+ "lastSeen": 1741213371410
},
{
- "id": {
- "id": "PR_kwDOMJIfts6NmRBs",
- "number": 33
+ "id": {
+ "id": "PR_kwDOMJIfts6NmRBs",
+ "number": 33
},
- "lastSeen": 1741282429036
+ "lastSeen": 1741282429036
},
{
- "id": {
- "id": "PR_kwDOMJIfts5zyFTs",
- "number": 15
+ "id": {
+ "id": "PR_kwDOMJIfts5zyFTs",
+ "number": 15
},
- "lastSeen": 1741535540953
+ "lastSeen": 1741535540953
},
{
- "id": {
- "id": "PR_kwDOMJIfts6QQB3c",
- "number": 59
+ "id": {
+ "id": "PR_kwDOMJIfts6QQB3c",
+ "number": 59
},
- "lastSeen": 1743018960900
+ "lastSeen": 1743018960900
},
{
- "id": {
- "id": "PR_kwDOMJIfts6QMPEg",
- "number": 58
+ "id": {
+ "id": "PR_kwDOMJIfts6QMPEg",
+ "number": 58
},
- "lastSeen": 1743019452983
+ "lastSeen": 1743019452983
},
{
- "id": {
- "id": "PR_kwDOMJIfts6QZvRI",
- "number": 61
+ "id": {
+ "id": "PR_kwDOMJIfts6QZvRI",
+ "number": 61
},
- "lastSeen": 1743103196866
+ "lastSeen": 1743103196866
},
{
- "id": {
- "id": "PR_kwDOMJIfts6QqPrQ",
- "number": 73
+ "id": {
+ "id": "PR_kwDOMJIfts6QqPrQ",
+ "number": 73
},
- "lastSeen": 1743265865001
+ "lastSeen": 1743265865001
},
{
- "id": {
- "id": "PR_kwDOMJIfts6Qp5nI",
- "number": 72
+ "id": {
+ "id": "PR_kwDOMJIfts6Qp5nI",
+ "number": 72
},
- "lastSeen": 1743338472110
+ "lastSeen": 1743338472110
},
{
- "id": {
- "id": "PR_kwDOMJIfts6QsjlS",
- "number": 76
+ "id": {
+ "id": "PR_kwDOMJIfts6QsjlS",
+ "number": 76
},
- "lastSeen": 1743352150953
+ "lastSeen": 1743352150953
},
{
- "id": {
- "id": "PR_kwDOMJIfts6Q0JBe",
- "number": 82
+ "id": {
+ "id": "PR_kwDOMJIfts6Q0JBe",
+ "number": 82
},
- "lastSeen": 1743470267269
+ "lastSeen": 1743470267269
},
{
- "id": {
- "id": "PR_kwDOMJIfts6UE9-x",
- "number": 102
+ "id": {
+ "id": "PR_kwDOMJIfts6UE9-x",
+ "number": 102
},
- "lastSeen": 1747171977348
+ "lastSeen": 1747171977348
},
{
- "id": {
- "id": "PR_kwDOMJIfts6XPua_",
- "number": 117
+ "id": {
+ "id": "PR_kwDOMJIfts6XPua_",
+ "number": 117
},
- "lastSeen": 1747929835864
+ "lastSeen": 1747929835864
},
{
- "id": {
- "id": "PR_kwDOMJIfts6XY-mZ",
- "number": 119
+ "id": {
+ "id": "PR_kwDOMJIfts6XY-mZ",
+ "number": 119
},
- "lastSeen": 1748028108508
+ "lastSeen": 1748028108508
},
{
- "id": {
- "id": "PR_kwDOMJIfts6Xdz4n",
- "number": 120
+ "id": {
+ "id": "PR_kwDOMJIfts6Xdz4n",
+ "number": 120
},
- "lastSeen": 1748282672214
+ "lastSeen": 1748282672214
},
{
- "id": {
- "id": "PR_kwDOMJIfts6X_zxl",
- "number": 131
+ "id": {
+ "id": "PR_kwDOMJIfts6X_zxl",
+ "number": 131
},
- "lastSeen": 1748881279494
+ "lastSeen": 1748881279494
},
{
- "id": {
- "id": "PR_kwDOMJIfts6bhieT",
- "number": 152
+ "id": {
+ "id": "PR_kwDOMJIfts6bhieT",
+ "number": 152
},
- "lastSeen": 1751848489082
+ "lastSeen": 1751848489082
},
{
- "id": {
- "id": "PR_kwDOMJIfts6dOyRk",
- "number": 154
+ "id": {
+ "id": "PR_kwDOMJIfts6dOyRk",
+ "number": 154
},
- "lastSeen": 1751849436454
+ "lastSeen": 1751849436454
},
{
- "id": {
- "id": "PR_kwDOMJIfts6cHjNi",
- "number": 153
+ "id": {
+ "id": "PR_kwDOMJIfts6cHjNi",
+ "number": 153
},
- "lastSeen": 1751849501498
+ "lastSeen": 1751849501498
},
{
- "id": {
- "id": "PR_kwDOMJIfts6Zs1FN",
- "number": 145
+ "id": {
+ "id": "PR_kwDOMJIfts6Zs1FN",
+ "number": 145
},
- "lastSeen": 1751849770308
+ "lastSeen": 1751849770308
},
{
- "id": {
- "id": "PR_kwDOMJIfts6bgKi9",
- "number": 150
+ "id": {
+ "id": "PR_kwDOMJIfts6bgKi9",
+ "number": 150
},
- "lastSeen": 1751850367300
+ "lastSeen": 1751850367300
},
{
- "id": {
- "id": "PR_kwDOMJIfts6eUKC-",
- "number": 176
+ "id": {
+ "id": "PR_kwDOMJIfts6eUKC-",
+ "number": 176
},
- "lastSeen": 1752158748013
+ "lastSeen": 1752158748013
}
]
-}]]>
+}
{
"selectedUrlAndAccountId": {
"url": "https://github.com/iib0011/omni-tools.git",
@@ -262,7 +378,7 @@
"Vitest.replaceText function (regexp mode).should return the original text when passed an invalid regexp.executor": "Run",
"Vitest.replaceText function.executor": "Run",
"Vitest.timeBetweenDates.executor": "Run",
- "git-widget-placeholder": "main",
+ "git-widget-placeholder": "#190 on fork/AshAnand34/en-hi-translation",
"ignore.virus.scanning.warn.message": "true",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "C:/Users/Ibrahima/IdeaProjects/omni-tools/public",
diff --git a/package-lock.json b/package-lock.json
index 7ce39b2..732e472 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34,10 +34,12 @@
"fast-xml-parser": "^5.2.5",
"formik": "^2.4.6",
"i18next": "^25.3.2",
+ "i18next-locize-backend": "^7.0.4",
"jimp": "^0.22.12",
"js-quantities": "^1.8.0",
"jszip": "^3.10.1",
"lint-staged": "^15.4.3",
+ "locize": "^4.0.14",
"lodash": "^4.17.21",
"mime": "^4.0.6",
"morsee": "^1.0.9",
@@ -1420,20 +1422,22 @@
}
},
"node_modules/@floating-ui/core": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz",
- "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==",
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.2.tgz",
+ "integrity": "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==",
+ "license": "MIT",
"dependencies": {
- "@floating-ui/utils": "^0.2.0"
+ "@floating-ui/utils": "^0.2.10"
}
},
"node_modules/@floating-ui/dom": {
- "version": "1.6.5",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz",
- "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==",
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.2.tgz",
+ "integrity": "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==",
+ "license": "MIT",
"dependencies": {
- "@floating-ui/core": "^1.0.0",
- "@floating-ui/utils": "^0.2.0"
+ "@floating-ui/core": "^1.7.2",
+ "@floating-ui/utils": "^0.2.10"
}
},
"node_modules/@floating-ui/react-dom": {
@@ -1449,9 +1453,10 @@
}
},
"node_modules/@floating-ui/utils": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz",
- "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw=="
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
+ "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
+ "license": "MIT"
},
"node_modules/@hapi/hoek": {
"version": "9.3.0",
@@ -4953,6 +4958,15 @@
"cronstrue": "bin/cli.js"
}
},
+ "node_modules/cross-fetch": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz",
+ "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==",
+ "license": "MIT",
+ "dependencies": {
+ "node-fetch": "^2.7.0"
+ }
+ },
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -6764,6 +6778,24 @@
}
}
},
+ "node_modules/i18next-locize-backend": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/i18next-locize-backend/-/i18next-locize-backend-7.0.4.tgz",
+ "integrity": "sha512-saRyIQAX0k+YA6XzirU6cyudWDj1W7bGDz/Szq+8OIs3JJnNuMZCADuNgCwmo+dQm9P69bbALymV+9t9ffywBA==",
+ "license": "MIT",
+ "dependencies": {
+ "cross-fetch": "4.1.0"
+ }
+ },
+ "node_modules/i18next-subliminal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/i18next-subliminal/-/i18next-subliminal-1.0.1.tgz",
+ "integrity": "sha512-h3m1oQ8lTaTNNgqmvBXAzFSGoJ0uobUcFW6TJMaWV4QDQ0+YGIih3ZcCX1XouGzK8yyFX13lP+2zAT/k7u4oiQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.27.0"
+ }
+ },
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
@@ -7933,6 +7965,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/locize": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/locize/-/locize-4.0.14.tgz",
+ "integrity": "sha512-4AnM9Hoxm7tgE+LhkdX1cDp+PLnraSruNc/3O/AAFfbmqmqaGdf9TyLwgHd0C9ug6GPRS0RIzXH6wdg5tHMWWw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.23.6",
+ "@floating-ui/dom": "^1.6.13",
+ "i18next-subliminal": "^1.0.1"
+ }
+ },
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
diff --git a/package.json b/package.json
index db17368..32a02b4 100644
--- a/package.json
+++ b/package.json
@@ -51,10 +51,12 @@
"fast-xml-parser": "^5.2.5",
"formik": "^2.4.6",
"i18next": "^25.3.2",
+ "i18next-locize-backend": "^7.0.4",
"jimp": "^0.22.12",
"js-quantities": "^1.8.0",
"jszip": "^3.10.1",
"lint-staged": "^15.4.3",
+ "locize": "^4.0.14",
"lodash": "^4.17.21",
"mime": "^4.0.6",
"morsee": "^1.0.9",
diff --git a/src/i18n/index.ts b/src/i18n/index.ts
index 40b5682..9f41cf4 100644
--- a/src/i18n/index.ts
+++ b/src/i18n/index.ts
@@ -24,50 +24,59 @@ import enTime from '../pages/tools/time/i18n/en.json';
import hiTime from '../pages/tools/time/i18n/hi.json';
import enXml from '../pages/tools/xml/i18n/en.json';
import hiXml from '../pages/tools/xml/i18n/hi.json';
+import Backend from 'i18next-locize-backend';
+const locizeOptions = {
+ projectId: 'e7156a3e-66fb-4035-a0f0-cebf1c63a3ba', // Replace with your Locize project ID
+ apiKey: import.meta.env.LOCIZE_API_KEY, // Replace with your Locize API key
+ referenceLng: 'en',
+ version: 'latest'
+};
// Merge translations for demonstration; in a real app, use namespaces
const resources = {
en: {
- translation: {
- ...enGlobal,
- list: enList,
- string: enString,
- csv: enCsv,
- json: enJson,
- pdf: enPdf,
- image: enImage,
- audio: enAudio,
- video: enVideo,
- number: enNumber,
- time: enTime,
- xml: enXml
- }
+ translation: enGlobal,
+ list: enList,
+ string: enString,
+ csv: enCsv,
+ json: enJson,
+ pdf: enPdf,
+ image: enImage,
+ audio: enAudio,
+ video: enVideo,
+ number: enNumber,
+ time: enTime,
+ xml: enXml
},
hi: {
- translation: {
- ...hiGlobal,
- list: hiList,
- string: hiString,
- csv: hiCsv,
- json: hiJson,
- pdf: hiPdf,
- image: hiImage,
- audio: hiAudio,
- video: hiVideo,
- number: hiNumber,
- time: hiTime,
- xml: hiXml
- }
+ translation: hiGlobal,
+ list: hiList,
+ string: hiString,
+ csv: hiCsv,
+ json: hiJson,
+ pdf: hiPdf,
+ image: hiImage,
+ audio: hiAudio,
+ video: hiVideo,
+ number: hiNumber,
+ time: hiTime,
+ xml: hiXml
}
};
-i18n.use(initReactI18next).init({
- resources,
- lng: 'en',
- fallbackLng: 'en',
- interpolation: {
- escapeValue: false
- }
-});
+i18n
+ .use(Backend)
+ .use(initReactI18next)
+ .init({
+ resources,
+ lng: 'en',
+ fallbackLng: 'en',
+ interpolation: {
+ escapeValue: false
+ },
+ backend: locizeOptions,
+ saveMissing: true, // Send missing keys to Locize
+ updateMissing: true // Update keys in Locize
+ });
export default i18n;
diff --git a/src/pages/tools/audio/change-speed/index.tsx b/src/pages/tools/audio/change-speed/index.tsx
index ef77c40..248db62 100644
--- a/src/pages/tools/audio/change-speed/index.tsx
+++ b/src/pages/tools/audio/change-speed/index.tsx
@@ -51,20 +51,20 @@ export default function ChangeSpeed({
updateField
}) => [
{
- title: t('audio.changeSpeed.newAudioSpeed'),
+ title: t('audio:changeSpeed.newAudioSpeed'),
component: (
updateField('newSpeed', Number(val))}
- description={t('audio.changeSpeed.speedDescription')}
+ description={t('audio:changeSpeed.speedDescription')}
type="number"
/>
)
},
{
- title: t('audio.changeSpeed.outputFormat'),
+ title: t('audio:changeSpeed.outputFormat'),
component: (
}
resultComponent={
loading ? (
) : (
@@ -121,7 +121,7 @@ export default function ChangeSpeed({
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('audio.changeSpeed.toolInfo.title', { title }),
+ title: t('audio:changeSpeed.toolInfo.title', { title }),
description: longDescription
}}
/>
diff --git a/src/pages/tools/audio/change-speed/meta.ts b/src/pages/tools/audio/change-speed/meta.ts
index 1ec12a0..b0341b1 100644
--- a/src/pages/tools/audio/change-speed/meta.ts
+++ b/src/pages/tools/audio/change-speed/meta.ts
@@ -22,8 +22,8 @@ export const tool = defineTool('audio', {
'This tool allows you to change the playback speed of audio files. You can speed up or slow down audio while maintaining the original pitch. Useful for podcasts, music, or any audio content where you want to adjust the playback speed.',
component: lazy(() => import('./index')),
i18n: {
- name: 'audio.changeSpeed.name',
- description: 'audio.changeSpeed.description',
- shortDescription: 'audio.changeSpeed.shortDescription'
+ name: 'audio:changeSpeed.title',
+ description: 'audio:changeSpeed.description',
+ shortDescription: 'audio:changeSpeed.shortDescription'
}
});
diff --git a/src/pages/tools/audio/extract-audio/index.tsx b/src/pages/tools/audio/extract-audio/index.tsx
index 0408544..8f29eee 100644
--- a/src/pages/tools/audio/extract-audio/index.tsx
+++ b/src/pages/tools/audio/extract-audio/index.tsx
@@ -29,7 +29,7 @@ export default function ExtractAudio({
}) => {
return [
{
- title: t('audio.extractAudio.outputFormat'),
+ title: t('audio:extractAudio.outputFormat'),
component: (
)
@@ -71,19 +71,19 @@ export default function ExtractAudio({
}
resultComponent={
loading ? (
) : (
)
@@ -92,7 +92,7 @@ export default function ExtractAudio({
getGroups={getGroups}
compute={compute}
toolInfo={{
- title: t('audio.extractAudio.toolInfo.title', { title }),
+ title: t('audio:extractAudio.toolInfo.title', { title }),
description: longDescription
}}
setInput={setFile}
diff --git a/src/pages/tools/audio/extract-audio/meta.ts b/src/pages/tools/audio/extract-audio/meta.ts
index e0abea6..792c7fc 100644
--- a/src/pages/tools/audio/extract-audio/meta.ts
+++ b/src/pages/tools/audio/extract-audio/meta.ts
@@ -24,8 +24,8 @@ export const tool = defineTool('audio', {
'This tool allows you to extract the audio track from a video file (such as MP4, MOV, AVI, etc.) and save it as a standalone audio file in your preferred format (AAC, MP3, or WAV). Useful for podcasts, music, or any scenario where you need just the audio from a video.',
component: lazy(() => import('./index')),
i18n: {
- name: 'audio.extractAudio.name',
- description: 'audio.extractAudio.description',
- shortDescription: 'audio.extractAudio.shortDescription'
+ name: 'audio:extractAudio.title',
+ description: 'audio:extractAudio.description',
+ shortDescription: 'audio:extractAudio.shortDescription'
}
});
diff --git a/src/pages/tools/csv/change-csv-separator/meta.ts b/src/pages/tools/csv/change-csv-separator/meta.ts
index 854f8bd..6ea60bf 100644
--- a/src/pages/tools/csv/change-csv-separator/meta.ts
+++ b/src/pages/tools/csv/change-csv-separator/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('csv', {
keywords: ['csv', 'separator', 'delimiter', 'change'],
component: lazy(() => import('./index')),
i18n: {
- name: 'csv.changeCsvSeparator.name',
- description: 'csv.changeCsvSeparator.description',
- shortDescription: 'csv.changeCsvSeparator.shortDescription'
+ name: 'csv:changeCsvSeparator.title',
+ description: 'csv:changeCsvSeparator.description',
+ shortDescription: 'csv:changeCsvSeparator.shortDescription'
}
});
diff --git a/src/pages/tools/csv/csv-to-json/index.tsx b/src/pages/tools/csv/csv-to-json/index.tsx
index 7ffda1e..336c248 100644
--- a/src/pages/tools/csv/csv-to-json/index.tsx
+++ b/src/pages/tools/csv/csv-to-json/index.tsx
@@ -149,35 +149,35 @@ export default function CsvToJson({ title }: ToolComponentProps) {
exampleCards={exampleCards}
inputComponent={
}
resultComponent={
}
getGroups={({ values, updateField }) => [
{
- title: t('csv.csvToJson.inputCsvFormat'),
+ title: t('csv:csvToJson.inputCsvFormat'),
component: (
updateField('delimiter', val)}
/>
updateField('quote', val)}
value={values.quote}
/>
updateField('comment', val)}
/>
@@ -185,26 +185,26 @@ export default function CsvToJson({ title }: ToolComponentProps) {
)
},
{
- title: t('csv.csvToJson.conversionOptions'),
+ title: t('csv:csvToJson.conversionOptions'),
component: (
updateField('useHeaders', value)}
- title={t('csv.csvToJson.useHeaders')}
- description={t('csv.csvToJson.useHeadersDescription')}
+ title={t('csv:csvToJson.useHeaders')}
+ description={t('csv:csvToJson.useHeadersDescription')}
/>
updateField('skipEmptyLines', value)}
- title={t('csv.csvToJson.skipEmptyLines')}
- description={t('csv.csvToJson.skipEmptyLinesDescription')}
+ title={t('csv:csvToJson.skipEmptyLines')}
+ description={t('csv:csvToJson.skipEmptyLinesDescription')}
/>
updateField('dynamicTypes', value)}
- title={t('csv.csvToJson.dynamicTypes')}
- description={t('csv.csvToJson.dynamicTypesDescription')}
+ title={t('csv:csvToJson.dynamicTypes')}
+ description={t('csv:csvToJson.dynamicTypesDescription')}
/>
)
diff --git a/src/pages/tools/csv/find-incomplete-csv-records/index.tsx b/src/pages/tools/csv/find-incomplete-csv-records/index.tsx
index 3e99594..65ef993 100644
--- a/src/pages/tools/csv/find-incomplete-csv-records/index.tsx
+++ b/src/pages/tools/csv/find-incomplete-csv-records/index.tsx
@@ -117,59 +117,59 @@ export default function FindIncompleteCsvRecords({
updateField
}) => [
{
- title: t('csv.findIncompleteCsvRecords.csvInputOptions'),
+ title: t('csv:findIncompleteCsvRecords.csvInputOptions'),
component: (
updateField('csvSeparator', val)}
description={t(
- 'csv.findIncompleteCsvRecords.csvSeparatorDescription'
+ 'csv:findIncompleteCsvRecords.csvSeparatorDescription'
)}
/>
updateField('quoteCharacter', val)}
description={t(
- 'csv.findIncompleteCsvRecords.quoteCharacterDescription'
+ 'csv:findIncompleteCsvRecords.quoteCharacterDescription'
)}
/>
updateField('commentCharacter', val)}
description={t(
- 'csv.findIncompleteCsvRecords.commentCharacterDescription'
+ 'csv:findIncompleteCsvRecords.commentCharacterDescription'
)}
/>
)
},
{
- title: t('csv.findIncompleteCsvRecords.checkingOptions'),
+ title: t('csv:findIncompleteCsvRecords.checkingOptions'),
component: (
updateField('emptyLines', value)}
- title={t('csv.findIncompleteCsvRecords.deleteLinesWithNoData')}
+ title={t('csv:findIncompleteCsvRecords.deleteLinesWithNoData')}
description={t(
- 'csv.findIncompleteCsvRecords.deleteLinesWithNoDataDescription'
+ 'csv:findIncompleteCsvRecords.deleteLinesWithNoDataDescription'
)}
/>
updateField('emptyValues', value)}
- title={t('csv.findIncompleteCsvRecords.findEmptyValues')}
+ title={t('csv:findIncompleteCsvRecords.findEmptyValues')}
description={t(
- 'csv.findIncompleteCsvRecords.findEmptyValuesDescription'
+ 'csv:findIncompleteCsvRecords.findEmptyValuesDescription'
)}
/>
updateField('messageLimit', value)}
- title={t('csv.findIncompleteCsvRecords.limitNumberOfMessages')}
+ title={t('csv:findIncompleteCsvRecords.limitNumberOfMessages')}
/>
{values.messageLimit && (
@@ -179,7 +179,7 @@ export default function FindIncompleteCsvRecords({
type="number"
inputProps={{ min: 1 }}
description={t(
- 'csv.findIncompleteCsvRecords.messageLimitDescription'
+ 'csv:findIncompleteCsvRecords.messageLimitDescription'
)}
/>
)}
@@ -193,14 +193,14 @@ export default function FindIncompleteCsvRecords({
input={input}
inputComponent={
}
resultComponent={
}
@@ -210,7 +210,7 @@ export default function FindIncompleteCsvRecords({
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('csv.findIncompleteCsvRecords.toolInfo.title', { title }),
+ title: t('csv:findIncompleteCsvRecords.toolInfo.title', { title }),
description: longDescription
}}
/>
diff --git a/src/pages/tools/csv/find-incomplete-csv-records/meta.ts b/src/pages/tools/csv/find-incomplete-csv-records/meta.ts
index 4736b98..fb9a250 100644
--- a/src/pages/tools/csv/find-incomplete-csv-records/meta.ts
+++ b/src/pages/tools/csv/find-incomplete-csv-records/meta.ts
@@ -14,8 +14,8 @@ export const tool = defineTool('csv', {
'This tool allows you to find incomplete or missing records in CSV data. It can detect missing columns, empty values, and other data quality issues in your CSV files. You can customize the CSV parsing options and set limits on error reporting.',
component: lazy(() => import('./index')),
i18n: {
- name: 'csv.findIncompleteCsvRecords.name',
- description: 'csv.findIncompleteCsvRecords.description',
- shortDescription: 'csv.findIncompleteCsvRecords.shortDescription'
+ name: 'csv:findIncompleteCsvRecords.title',
+ description: 'csv:findIncompleteCsvRecords.description',
+ shortDescription: 'csv:findIncompleteCsvRecords.shortDescription'
}
});
diff --git a/src/pages/tools/csv/insert-csv-columns/index.tsx b/src/pages/tools/csv/insert-csv-columns/index.tsx
index 2b345e5..eea2ce9 100644
--- a/src/pages/tools/csv/insert-csv-columns/index.tsx
+++ b/src/pages/tools/csv/insert-csv-columns/index.tsx
@@ -145,7 +145,7 @@ export default function InsertCsvColumns({
updateField
}) => [
{
- title: t('csv.insertCsvColumns.csvToInsert'),
+ title: t('csv:insertCsvColumns.csvToInsert'),
component: (
updateField('csvToInsert', val)}
- title={t('csv.insertCsvColumns.csvSeparator')}
- description={t('csv.insertCsvColumns.csvToInsertDescription')}
+ title={t('csv:insertCsvColumns.csvSeparator')}
+ description={t('csv:insertCsvColumns.csvToInsertDescription')}
/>
)
},
{
- title: t('csv.insertCsvColumns.csvOptions'),
+ title: t('csv:insertCsvColumns.csvOptions'),
component: (
updateField('separator', val)}
- description={t('csv.insertCsvColumns.separatorDescription')}
+ description={t('csv:insertCsvColumns.separatorDescription')}
/>
updateField('quoteChar', val)}
- description={t('csv.insertCsvColumns.quoteCharDescription')}
+ description={t('csv:insertCsvColumns.quoteCharDescription')}
/>
updateField('commentCharacter', val)}
- description={t('csv.insertCsvColumns.commentCharacterDescription')}
+ description={t('csv:insertCsvColumns.commentCharacterDescription')}
/>
{values.customFill && (
updateField('customFillValue', val)}
- description={t('csv.insertCsvColumns.customFillValueDescription')}
+ description={t('csv:insertCsvColumns.customFillValueDescription')}
/>
)}
)
},
{
- title: t('csv.insertCsvColumns.positionOptions'),
+ title: t('csv:insertCsvColumns.positionOptions'),
component: (
updateField('insertingPosition', value)}
- description={t('csv.insertCsvColumns.insertingPositionDescription')}
+ description={t('csv:insertCsvColumns.insertingPositionDescription')}
/>
{values.insertingPosition === 'custom' && (
@@ -237,17 +237,17 @@ export default function InsertCsvColumns({
selected={values.customPostionOptions}
options={[
{
- label: t('csv.insertCsvColumns.headerName'),
+ label: t('csv:insertCsvColumns.headerName'),
value: 'headerName'
},
{
- label: t('csv.insertCsvColumns.position'),
+ label: t('csv:insertCsvColumns.position'),
value: 'rowNumber'
}
]}
onChange={(value) => updateField('customPostionOptions', value)}
description={t(
- 'csv.insertCsvColumns.customPositionOptionsDescription'
+ 'csv:insertCsvColumns.customPositionOptionsDescription'
)}
/>
)}
@@ -258,7 +258,7 @@ export default function InsertCsvColumns({
selected={values.headerName}
options={headerOptions}
onChange={(value) => updateField('headerName', value)}
- description={t('csv.insertCsvColumns.headerNameDescription')}
+ description={t('csv:insertCsvColumns.headerNameDescription')}
/>
)}
@@ -269,7 +269,7 @@ export default function InsertCsvColumns({
onOwnChange={(val) =>
updateField('rowNumber', parseInt(val) || 0)
}
- description={t('csv.insertCsvColumns.rowNumberDescription')}
+ description={t('csv:insertCsvColumns.rowNumberDescription')}
type="number"
/>
)}
@@ -283,14 +283,14 @@ export default function InsertCsvColumns({
title={title}
inputComponent={
}
resultComponent={
@@ -301,8 +301,8 @@ export default function InsertCsvColumns({
input={input}
setInput={setInput}
toolInfo={{
- title: t('csv.insertCsvColumns.toolInfo.title'),
- description: t('csv.insertCsvColumns.toolInfo.description')
+ title: t('csv:insertCsvColumns.toolInfo.title'),
+ description: t('csv:insertCsvColumns.toolInfo.description')
}}
exampleCards={exampleCards}
/>
diff --git a/src/pages/tools/image/generic/resize/index.tsx b/src/pages/tools/image/generic/resize/index.tsx
index 80e3081..d8b56ab 100644
--- a/src/pages/tools/image/generic/resize/index.tsx
+++ b/src/pages/tools/image/generic/resize/index.tsx
@@ -60,20 +60,20 @@ export default function ResizeImage({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('image.resize.resizeMethod'),
+ title: t('image:resize.resizeMethod'),
component: (
updateField('resizeMethod', 'pixels')}
checked={values.resizeMethod === 'pixels'}
- description={t('image.resize.resizeByPixelsDescription')}
- title={t('image.resize.resizeByPixels')}
+ description={t('image:resize.resizeByPixelsDescription')}
+ title={t('image:resize.resizeByPixels')}
/>
updateField('resizeMethod', 'percentage')}
checked={values.resizeMethod === 'percentage'}
- description={t('image.resize.resizeByPercentageDescription')}
- title={t('image.resize.resizeByPercentage')}
+ description={t('image:resize.resizeByPercentageDescription')}
+ title={t('image:resize.resizeByPercentage')}
/>
)
@@ -81,7 +81,7 @@ export default function ResizeImage({ title }: ToolComponentProps) {
...(values.resizeMethod === 'pixels'
? [
{
- title: t('image.resize.dimensionType'),
+ title: t('image:resize.dimensionType'),
component: (
updateField('maintainAspectRatio', value)
}
- description={t('image.resize.maintainAspectRatioDescription')}
- title={t('image.resize.maintainAspectRatio')}
+ description={t('image:resize.maintainAspectRatioDescription')}
+ title={t('image:resize.maintainAspectRatio')}
/>
{values.maintainAspectRatio && (
updateField('dimensionType', 'width')}
checked={values.dimensionType === 'width'}
- description={t('image.resize.setWidthDescription')}
- title={t('image.resize.setWidth')}
+ description={t('image:resize.setWidthDescription')}
+ title={t('image:resize.setWidth')}
/>
updateField('dimensionType', 'height')}
checked={values.dimensionType === 'height'}
- description={t('image.resize.setHeightDescription')}
- title={t('image.resize.setHeight')}
+ description={t('image:resize.setHeightDescription')}
+ title={t('image:resize.setHeight')}
/>
)}
updateField('width', val)}
- description={t('image.resize.widthDescription')}
+ description={t('image:resize.widthDescription')}
disabled={
values.maintainAspectRatio &&
values.dimensionType === 'height'
@@ -125,7 +125,7 @@ export default function ResizeImage({ title }: ToolComponentProps) {
updateField('height', val)}
- description={t('image.resize.heightDescription')}
+ description={t('image:resize.heightDescription')}
disabled={
values.maintainAspectRatio &&
values.dimensionType === 'width'
@@ -142,13 +142,13 @@ export default function ResizeImage({ title }: ToolComponentProps) {
]
: [
{
- title: t('image.resize.percentage'),
+ title: t('image:resize.percentage'),
component: (
updateField('percentage', val)}
- description={t('image.resize.percentageDescription')}
+ description={t('image:resize.percentageDescription')}
inputProps={{
'data-testid': 'percentage-input',
type: 'number',
@@ -175,19 +175,19 @@ export default function ResizeImage({ title }: ToolComponentProps) {
value={input}
onChange={setInput}
accept={['image/jpeg', 'image/png', 'image/svg+xml', 'image/gif']}
- title={t('image.resize.inputTitle')}
+ title={t('image:resize.inputTitle')}
/>
}
resultComponent={
}
toolInfo={{
- title: t('image.resize.toolInfo.title'),
- description: t('image.resize.toolInfo.description')
+ title: t('image:resize.toolInfo.title'),
+ description: t('image:resize.toolInfo.description')
}}
/>
);
diff --git a/src/pages/tools/image/i18n/hi.json b/src/pages/tools/image/i18n/hi.json
index f716bcc..fd82718 100644
--- a/src/pages/tools/image/i18n/hi.json
+++ b/src/pages/tools/image/i18n/hi.json
@@ -148,25 +148,5 @@
"typeSaturation": "संतृप्ति",
"filterIntensity": "फ़िल्टर तीव्रता",
"intensityPlaceholder": "मान (0-100)"
- },
- "resize": {
- "title": "छवि आकार बदलें",
- "description": "छवि का आकार बदलें।",
- "inputTitle": "इनपुट छवि",
- "resultTitle": "आकार बदली गई छवि",
- "resizeOptions": "आकार बदलने के विकल्प",
- "resizeMethod": "आकार बदलने की विधि",
- "methodPercentage": "प्रतिशत",
- "methodPixels": "पिक्सेल",
- "methodAspectRatio": "आकार अनुपात",
- "width": "चौड़ाई",
- "widthPlaceholder": "मान",
- "height": "ऊंचाई",
- "heightPlaceholder": "मान",
- "maintainAspectRatio": "आकार अनुपात बनाए रखें",
- "interpolationMethod": "इंटरपोलेशन विधि",
- "methodNearest": "निकटतम",
- "methodBilinear": "द्विरेखीय",
- "methodBicubic": "द्विघन"
}
}
diff --git a/src/pages/tools/json/escape-json/meta.ts b/src/pages/tools/json/escape-json/meta.ts
index f17f470..91a0f62 100644
--- a/src/pages/tools/json/escape-json/meta.ts
+++ b/src/pages/tools/json/escape-json/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('json', {
keywords: ['json', 'escape', 'characters', 'format'],
component: lazy(() => import('./index')),
i18n: {
- name: 'json.escapeJson.name',
- description: 'json.escapeJson.description',
- shortDescription: 'json.escapeJson.shortDescription'
+ name: 'json:escapeJson.title',
+ description: 'json:escapeJson.description',
+ shortDescription: 'json:escapeJson.shortDescription'
}
});
diff --git a/src/pages/tools/json/json-to-xml/meta.ts b/src/pages/tools/json/json-to-xml/meta.ts
index 5b1b6d4..677a37d 100644
--- a/src/pages/tools/json/json-to-xml/meta.ts
+++ b/src/pages/tools/json/json-to-xml/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('json', {
keywords: ['json', 'xml', 'convert', 'transform'],
component: lazy(() => import('./index')),
i18n: {
- name: 'json.jsonToXml.name',
- description: 'json.jsonToXml.description',
- shortDescription: 'json.jsonToXml.shortDescription'
+ name: 'json:jsonToXml.title',
+ description: 'json:jsonToXml.description',
+ shortDescription: 'json:jsonToXml.shortDescription'
}
});
diff --git a/src/pages/tools/json/minify/index.tsx b/src/pages/tools/json/minify/index.tsx
index b480147..55eb90d 100644
--- a/src/pages/tools/json/minify/index.tsx
+++ b/src/pages/tools/json/minify/index.tsx
@@ -61,14 +61,14 @@ export default function MinifyJson({ title }: ToolComponentProps) {
title={title}
inputComponent={
}
resultComponent={
@@ -76,8 +76,8 @@ export default function MinifyJson({ title }: ToolComponentProps) {
initialValues={initialValues}
getGroups={null}
toolInfo={{
- title: t('json.minify.toolInfo.title'),
- description: t('json.minify.toolInfo.description')
+ title: t('json:minify.toolInfo.title'),
+ description: t('json:minify.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}
diff --git a/src/pages/tools/json/minify/meta.ts b/src/pages/tools/json/minify/meta.ts
index b0b1754..e19beec 100644
--- a/src/pages/tools/json/minify/meta.ts
+++ b/src/pages/tools/json/minify/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('json', {
keywords: ['json', 'minify', 'compress', 'whitespace'],
component: lazy(() => import('./index')),
i18n: {
- name: 'json.minify.name',
- description: 'json.minify.description',
- shortDescription: 'json.minify.shortDescription'
+ name: 'json:minify.title',
+ description: 'json:minify.description',
+ shortDescription: 'json:minify.shortDescription'
}
});
diff --git a/src/pages/tools/json/prettify/index.tsx b/src/pages/tools/json/prettify/index.tsx
index 0664d64..c183aa3 100644
--- a/src/pages/tools/json/prettify/index.tsx
+++ b/src/pages/tools/json/prettify/index.tsx
@@ -131,14 +131,14 @@ export default function PrettifyJson({ title }: ToolComponentProps) {
input={input}
inputComponent={
}
resultComponent={
@@ -146,14 +146,14 @@ export default function PrettifyJson({ title }: ToolComponentProps) {
initialValues={initialValues}
getGroups={({ values, updateField }) => [
{
- title: t('json.prettify.indentation'),
+ title: t('json:prettify.indentation'),
component: (
updateField('indentationType', 'space')}
onTextChange={(val) =>
@@ -163,8 +163,8 @@ export default function PrettifyJson({ title }: ToolComponentProps) {
updateField('indentationType', 'tab')}
checked={values.indentationType === 'tab'}
- description={t('json.prettify.useTabsDescription')}
- title={t('json.prettify.useTabs')}
+ description={t('json:prettify.useTabsDescription')}
+ title={t('json:prettify.useTabs')}
/>
)
@@ -174,8 +174,8 @@ export default function PrettifyJson({ title }: ToolComponentProps) {
setInput={setInput}
exampleCards={exampleCards}
toolInfo={{
- title: t('json.prettify.toolInfo.title'),
- description: t('json.prettify.toolInfo.description')
+ title: t('json:prettify.toolInfo.title'),
+ description: t('json:prettify.toolInfo.description')
}}
/>
);
diff --git a/src/pages/tools/json/prettify/meta.ts b/src/pages/tools/json/prettify/meta.ts
index 1b6540a..ad9ca8f 100644
--- a/src/pages/tools/json/prettify/meta.ts
+++ b/src/pages/tools/json/prettify/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('json', {
keywords: ['json', 'prettify', 'format', 'beautify'],
component: lazy(() => import('./index')),
i18n: {
- name: 'json.prettify.name',
- description: 'json.prettify.description',
- shortDescription: 'json.prettify.shortDescription'
+ name: 'json:prettify.title',
+ description: 'json:prettify.description',
+ shortDescription: 'json:prettify.shortDescription'
}
});
diff --git a/src/pages/tools/json/stringify/meta.ts b/src/pages/tools/json/stringify/meta.ts
index 034425e..86689f6 100644
--- a/src/pages/tools/json/stringify/meta.ts
+++ b/src/pages/tools/json/stringify/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('json', {
keywords: ['json', 'stringify', 'serialize', 'convert'],
component: lazy(() => import('./index')),
i18n: {
- name: 'json.stringify.name',
- description: 'json.stringify.description',
- shortDescription: 'json.stringify.shortDescription'
+ name: 'json:stringify.title',
+ description: 'json:stringify.description',
+ shortDescription: 'json:stringify.shortDescription'
}
});
diff --git a/src/pages/tools/json/tsv-to-json/meta.ts b/src/pages/tools/json/tsv-to-json/meta.ts
index c5efe09..8c824aa 100644
--- a/src/pages/tools/json/tsv-to-json/meta.ts
+++ b/src/pages/tools/json/tsv-to-json/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('json', {
keywords: ['tsv', 'json', 'convert', 'tabular'],
component: lazy(() => import('./index')),
i18n: {
- name: 'json.tsvToJson.name',
- description: 'json.tsvToJson.description',
- shortDescription: 'json.tsvToJson.shortDescription'
+ name: 'json:tsvToJson.title',
+ description: 'json:tsvToJson.description',
+ shortDescription: 'json:tsvToJson.shortDescription'
}
});
diff --git a/src/pages/tools/json/validateJson/index.tsx b/src/pages/tools/json/validateJson/index.tsx
index af04f39..600701b 100644
--- a/src/pages/tools/json/validateJson/index.tsx
+++ b/src/pages/tools/json/validateJson/index.tsx
@@ -55,9 +55,9 @@ export default function ValidateJson({ title }: ToolComponentProps) {
const { valid, error } = validateJson(input);
if (valid) {
- setResult(t('json.validateJson.validJson'));
+ setResult(t('json:validateJson.validJson'));
} else {
- setResult(t('json.validateJson.invalidJson', { error }));
+ setResult(t('json:validateJson.invalidJson', { error }));
}
};
@@ -66,22 +66,22 @@ export default function ValidateJson({ title }: ToolComponentProps) {
title={title}
inputComponent={
}
resultComponent={
}
initialValues={{}}
getGroups={null}
toolInfo={{
- title: t('json.validateJson.toolInfo.title'),
- description: t('json.validateJson.toolInfo.description')
+ title: t('json:validateJson.toolInfo.title'),
+ description: t('json:validateJson.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}
diff --git a/src/pages/tools/json/validateJson/meta.ts b/src/pages/tools/json/validateJson/meta.ts
index 9bd9e14..cefda4b 100644
--- a/src/pages/tools/json/validateJson/meta.ts
+++ b/src/pages/tools/json/validateJson/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('json', {
keywords: ['json', 'validate', 'check', 'syntax', 'errors'],
component: lazy(() => import('./index')),
i18n: {
- name: 'json.validateJson.name',
- description: 'json.validateJson.description',
- shortDescription: 'json.validateJson.shortDescription'
+ name: 'json:validateJson.title',
+ description: 'json:validateJson.description',
+ shortDescription: 'json:validateJson.shortDescription'
}
});
diff --git a/src/pages/tools/list/duplicate/index.tsx b/src/pages/tools/list/duplicate/index.tsx
index 79bd7d3..a016fc8 100644
--- a/src/pages/tools/list/duplicate/index.tsx
+++ b/src/pages/tools/list/duplicate/index.tsx
@@ -136,53 +136,53 @@ export default function Duplicate({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('list.duplicate.splitOptions'),
+ title: t('list:duplicate.splitOptions'),
component: (
updateField('splitOperatorType', 'symbol')}
checked={values.splitOperatorType === 'symbol'}
- title={t('list.duplicate.splitBySymbol')}
+ title={t('list:duplicate.splitBySymbol')}
/>
updateField('splitOperatorType', 'regex')}
checked={values.splitOperatorType === 'regex'}
- title={t('list.duplicate.splitByRegex')}
+ title={t('list:duplicate.splitByRegex')}
/>
updateField('splitSeparator', val)}
- description={t('list.duplicate.splitSeparatorDescription')}
+ description={t('list:duplicate.splitSeparatorDescription')}
/>
updateField('joinSeparator', val)}
- description={t('list.duplicate.joinSeparatorDescription')}
+ description={t('list:duplicate.joinSeparatorDescription')}
/>
)
},
{
- title: t('list.duplicate.duplicationOptions'),
+ title: t('list:duplicate.duplicationOptions'),
component: (
updateField('copy', val)}
- description={t('list.duplicate.copyDescription')}
+ description={t('list:duplicate.copyDescription')}
type="number"
/>
updateField('concatenate', checked)}
- description={t('list.duplicate.concatenateDescription')}
+ description={t('list:duplicate.concatenateDescription')}
/>
updateField('reverse', checked)}
- description={t('list.duplicate.reverseDescription')}
+ description={t('list:duplicate.reverseDescription')}
/>
)
@@ -194,14 +194,14 @@ export default function Duplicate({ title }: ToolComponentProps) {
title={title}
inputComponent={
}
resultComponent={
}
@@ -209,8 +209,8 @@ export default function Duplicate({ title }: ToolComponentProps) {
getGroups={getGroups}
validationSchema={validationSchema}
toolInfo={{
- title: t('list.duplicate.toolInfo.title'),
- description: t('list.duplicate.toolInfo.description')
+ title: t('list:duplicate.toolInfo.title'),
+ description: t('list:duplicate.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}
diff --git a/src/pages/tools/list/duplicate/meta.ts b/src/pages/tools/list/duplicate/meta.ts
index 29e12d6..d4871e9 100644
--- a/src/pages/tools/list/duplicate/meta.ts
+++ b/src/pages/tools/list/duplicate/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('list', {
keywords: ['duplicate'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.duplicate.name',
- description: 'list.duplicate.description',
- shortDescription: 'list.duplicate.shortDescription'
+ name: 'list:duplicate.title',
+ description: 'list:duplicate.description',
+ shortDescription: 'list:duplicate.shortDescription'
}
});
diff --git a/src/pages/tools/list/find-most-popular/meta.ts b/src/pages/tools/list/find-most-popular/meta.ts
index 747b572..760225c 100644
--- a/src/pages/tools/list/find-most-popular/meta.ts
+++ b/src/pages/tools/list/find-most-popular/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('list', {
keywords: ['find', 'most', 'popular'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.findMostPopular.name',
- description: 'list.findMostPopular.description',
- shortDescription: 'list.findMostPopular.shortDescription'
+ name: 'list:findMostPopular.title',
+ description: 'list:findMostPopular.description',
+ shortDescription: 'list:findMostPopular.shortDescription'
}
});
diff --git a/src/pages/tools/list/find-unique/index.tsx b/src/pages/tools/list/find-unique/index.tsx
index aade59b..d2d1921 100644
--- a/src/pages/tools/list/find-unique/index.tsx
+++ b/src/pages/tools/list/find-unique/index.tsx
@@ -66,27 +66,27 @@ export default function FindUnique() {
return (
}
resultComponent={
}
getGroups={({ values, updateField }) => [
{
- title: t('list.findUnique.inputListDelimiter'),
+ title: t('list:findUnique.inputListDelimiter'),
component: (
{splitOperators.map(({ title, description, type }) => (
@@ -99,7 +99,7 @@ export default function FindUnique() {
/>
))}
updateField('splitSeparator', val)}
/>
@@ -107,7 +107,7 @@ export default function FindUnique() {
)
},
{
- title: t('list.findUnique.outputListDelimiter'),
+ title: t('list:findUnique.outputListDelimiter'),
component: (
updateField('joinSeparator', value)}
/>
updateField('trimItems', value)}
/>
updateField('deleteEmptyItems', value)}
/>
@@ -130,20 +130,20 @@ export default function FindUnique() {
)
},
{
- title: t('list.findUnique.uniqueItemOptions'),
+ title: t('list:findUnique.uniqueItemOptions'),
component: (
updateField('absolutelyUnique', value)}
/>
updateField('caseSensitive', value)}
/>
diff --git a/src/pages/tools/list/find-unique/meta.ts b/src/pages/tools/list/find-unique/meta.ts
index 38f03cb..6ac3cdc 100644
--- a/src/pages/tools/list/find-unique/meta.ts
+++ b/src/pages/tools/list/find-unique/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('list', {
keywords: ['find', 'unique'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.findUnique.name',
- description: 'list.findUnique.description',
- shortDescription: 'list.findUnique.shortDescription'
+ name: 'list:findUnique.title',
+ description: 'list:findUnique.description',
+ shortDescription: 'list:findUnique.shortDescription'
}
});
diff --git a/src/pages/tools/list/group/index.tsx b/src/pages/tools/list/group/index.tsx
index dfece68..e444af6 100644
--- a/src/pages/tools/list/group/index.tsx
+++ b/src/pages/tools/list/group/index.tsx
@@ -81,18 +81,18 @@ export default function FindUnique({ title }: ToolComponentProps) {
input={input}
inputComponent={
}
resultComponent={
-
+
}
initialValues={initialValues}
getGroups={({ values, updateField }) => [
{
- title: t('list.group.inputItemSeparator'),
+ title: t('list:group.inputItemSeparator'),
component: (
{splitOperators.map(({ title, description, type }) => (
@@ -107,7 +107,7 @@ export default function FindUnique({ title }: ToolComponentProps) {
/>
))}
updateField('splitSeparator', val)}
/>
@@ -115,12 +115,12 @@ export default function FindUnique({ title }: ToolComponentProps) {
)
},
{
- title: t('list.group.groupSizeAndSeparators'),
+ title: t('list:group.groupSizeAndSeparators'),
component: (
updateField('groupNumber', formatNumber(value, 1))
@@ -128,46 +128,46 @@ export default function FindUnique({ title }: ToolComponentProps) {
/>
updateField('itemSeparator', value)}
/>
updateField('groupSeparator', value)}
/>
updateField('leftWrap', value)}
/>
updateField('rightWrap', value)}
/>
)
},
{
- title: t('list.group.emptyItemsAndPadding'),
+ title: t('list:group.emptyItemsAndPadding'),
component: (
updateField('deleteEmptyItems', value)}
/>
updateField('padNonFullGroup', value)}
/>
updateField('paddingChar', value)}
/>
diff --git a/src/pages/tools/list/group/meta.ts b/src/pages/tools/list/group/meta.ts
index 372dcc2..4827432 100644
--- a/src/pages/tools/list/group/meta.ts
+++ b/src/pages/tools/list/group/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('list', {
keywords: ['group'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.group.name',
- description: 'list.group.description',
- shortDescription: 'list.group.shortDescription'
+ name: 'list:group.title',
+ description: 'list:group.description',
+ shortDescription: 'list:group.shortDescription'
}
});
diff --git a/src/pages/tools/list/reverse/index.tsx b/src/pages/tools/list/reverse/index.tsx
index 688c2a6..6a140e1 100644
--- a/src/pages/tools/list/reverse/index.tsx
+++ b/src/pages/tools/list/reverse/index.tsx
@@ -121,7 +121,7 @@ export default function Reverse({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('list.reverse.splitterMode'),
+ title: t('list:reverse.splitterMode'),
component: (
{splitOperators.map(({ title, description, type }) => (
@@ -137,11 +137,11 @@ export default function Reverse({ title }: ToolComponentProps) {
)
},
{
- title: t('list.reverse.itemSeparator'),
+ title: t('list:reverse.itemSeparator'),
component: (
updateField('splitSeparator', val)}
/>
@@ -149,11 +149,11 @@ export default function Reverse({ title }: ToolComponentProps) {
)
},
{
- title: t('list.reverse.outputListOptions'),
+ title: t('list:reverse.outputListOptions'),
component: (
updateField('joinSeparator', val)}
/>
@@ -179,17 +179,17 @@ export default function Reverse({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
}
resultComponent={
-
+
}
toolInfo={{
- title: t('list.reverse.toolInfo.title'),
- description: t('list.reverse.toolInfo.description')
+ title: t('list:reverse.toolInfo.title'),
+ description: t('list:reverse.toolInfo.description')
}}
exampleCards={exampleCards}
/>
diff --git a/src/pages/tools/list/reverse/meta.ts b/src/pages/tools/list/reverse/meta.ts
index fb78f03..50364e2 100644
--- a/src/pages/tools/list/reverse/meta.ts
+++ b/src/pages/tools/list/reverse/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('list', {
keywords: ['reverse'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.reverse.name',
- description: 'list.reverse.description',
- shortDescription: 'list.reverse.shortDescription'
+ name: 'list:reverse.title',
+ description: 'list:reverse.description',
+ shortDescription: 'list:reverse.shortDescription'
}
});
diff --git a/src/pages/tools/list/rotate/meta.ts b/src/pages/tools/list/rotate/meta.ts
index ae68883..e57a39a 100644
--- a/src/pages/tools/list/rotate/meta.ts
+++ b/src/pages/tools/list/rotate/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('list', {
keywords: ['rotate'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.rotate.name',
- description: 'list.rotate.description',
- shortDescription: 'list.rotate.shortDescription'
+ name: 'list:rotate.title',
+ description: 'list:rotate.description',
+ shortDescription: 'list:rotate.shortDescription'
}
});
diff --git a/src/pages/tools/list/shuffle/index.tsx b/src/pages/tools/list/shuffle/index.tsx
index 53a2b31..e994ccc 100644
--- a/src/pages/tools/list/shuffle/index.tsx
+++ b/src/pages/tools/list/shuffle/index.tsx
@@ -53,24 +53,24 @@ export default function Shuffle() {
return (
}
resultComponent={
-
+
}
getGroups={({ values, updateField }) => [
{
- title: t('list.shuffle.inputListSeparator'),
+ title: t('list:shuffle.inputListSeparator'),
component: (
{splitOperators.map(({ title, description, type }) => (
@@ -83,7 +83,7 @@ export default function Shuffle() {
/>
))}
updateField('splitSeparator', val)}
/>
@@ -91,11 +91,11 @@ export default function Shuffle() {
)
},
{
- title: t('list.shuffle.shuffledListLength'),
+ title: t('list:shuffle.shuffledListLength'),
component: (
updateField('length', val)}
/>
@@ -103,13 +103,13 @@ export default function Shuffle() {
)
},
{
- title: t('list.shuffle.shuffledListSeparator'),
+ title: t('list:shuffle.shuffledListSeparator'),
component: (
updateField('joinSeparator', value)}
- description={t('list.shuffle.joinSeparatorDescription')}
+ description={t('list:shuffle.joinSeparatorDescription')}
/>
)
diff --git a/src/pages/tools/list/shuffle/meta.ts b/src/pages/tools/list/shuffle/meta.ts
index 3d77c16..5c01f1a 100644
--- a/src/pages/tools/list/shuffle/meta.ts
+++ b/src/pages/tools/list/shuffle/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('list', {
keywords: ['shuffle'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.shuffle.name',
- description: 'list.shuffle.description',
- shortDescription: 'list.shuffle.shortDescription'
+ name: 'list:shuffle.title',
+ description: 'list:shuffle.description',
+ shortDescription: 'list:shuffle.shortDescription'
}
});
diff --git a/src/pages/tools/list/sort/index.tsx b/src/pages/tools/list/sort/index.tsx
index 90f1185..a895fd8 100644
--- a/src/pages/tools/list/sort/index.tsx
+++ b/src/pages/tools/list/sort/index.tsx
@@ -72,18 +72,18 @@ export default function SplitText({ title }: ToolComponentProps) {
input={input}
inputComponent={
}
resultComponent={
-
+
}
initialValues={initialValues}
getGroups={({ values, updateField }) => [
{
- title: t('list.sort.inputItemSeparator'),
+ title: t('list:sort.inputItemSeparator'),
component: (
{splitOperators.map(({ title, description, type }) => (
@@ -98,7 +98,7 @@ export default function SplitText({ title }: ToolComponentProps) {
/>
))}
updateField('splitSeparator', val)}
/>
@@ -106,45 +106,45 @@ export default function SplitText({ title }: ToolComponentProps) {
)
},
{
- title: t('list.sort.sortMethod'),
+ title: t('list:sort.sortMethod'),
component: (
updateField('sortingMethod', value)}
- description={t('list.sort.sortMethodDescription')}
+ description={t('list:sort.sortMethodDescription')}
/>
{
updateField('increasing', value);
}}
- description={t('list.sort.orderDescription')}
+ description={t('list:sort.orderDescription')}
/>
updateField('caseSensitive', val)}
/>
@@ -152,17 +152,17 @@ export default function SplitText({ title }: ToolComponentProps) {
)
},
{
- title: t('list.sort.sortedItemProperties'),
+ title: t('list:sort.sortedItemProperties'),
component: (
updateField('joinSeparator', val)}
/>
updateField('removeDuplicated', val)}
/>
diff --git a/src/pages/tools/list/sort/meta.ts b/src/pages/tools/list/sort/meta.ts
index 7a78a22..065b009 100644
--- a/src/pages/tools/list/sort/meta.ts
+++ b/src/pages/tools/list/sort/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('list', {
keywords: ['sort'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.sort.name',
- description: 'list.sort.description',
- shortDescription: 'list.sort.shortDescription'
+ name: 'list:sort.title',
+ description: 'list:sort.description',
+ shortDescription: 'list:sort.shortDescription'
}
});
diff --git a/src/pages/tools/list/truncate/meta.ts b/src/pages/tools/list/truncate/meta.ts
index 3de53dd..d35547c 100644
--- a/src/pages/tools/list/truncate/meta.ts
+++ b/src/pages/tools/list/truncate/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('list', {
keywords: ['truncate'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.truncate.name',
- description: 'list.truncate.description',
- shortDescription: 'list.truncate.shortDescription'
+ name: 'list:truncate.title',
+ description: 'list:truncate.description',
+ shortDescription: 'list:truncate.shortDescription'
}
});
diff --git a/src/pages/tools/list/unwrap/meta.ts b/src/pages/tools/list/unwrap/meta.ts
index e5550cb..88b9755 100644
--- a/src/pages/tools/list/unwrap/meta.ts
+++ b/src/pages/tools/list/unwrap/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('list', {
keywords: ['unwrap'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.unwrap.name',
- description: 'list.unwrap.description',
- shortDescription: 'list.unwrap.shortDescription'
+ name: 'list:unwrap.title',
+ description: 'list:unwrap.description',
+ shortDescription: 'list:unwrap.shortDescription'
}
});
diff --git a/src/pages/tools/list/wrap/index.tsx b/src/pages/tools/list/wrap/index.tsx
index 929b783..705dcfe 100644
--- a/src/pages/tools/list/wrap/index.tsx
+++ b/src/pages/tools/list/wrap/index.tsx
@@ -119,50 +119,50 @@ export default function Wrap({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('list.wrap.splitOptions'),
+ title: t('list:wrap.splitOptions'),
component: (
updateField('splitOperatorType', 'symbol')}
checked={values.splitOperatorType === 'symbol'}
- title={t('list.wrap.splitBySymbol')}
+ title={t('list:wrap.splitBySymbol')}
/>
updateField('splitOperatorType', 'regex')}
checked={values.splitOperatorType === 'regex'}
- title={t('list.wrap.splitByRegex')}
+ title={t('list:wrap.splitByRegex')}
/>
updateField('splitSeparator', val)}
- description={t('list.wrap.splitSeparatorDescription')}
+ description={t('list:wrap.splitSeparatorDescription')}
/>
updateField('joinSeparator', val)}
- description={t('list.wrap.joinSeparatorDescription')}
+ description={t('list:wrap.joinSeparatorDescription')}
/>
updateField('deleteEmptyItems', checked)}
- title={t('list.wrap.removeEmptyItems')}
+ title={t('list:wrap.removeEmptyItems')}
/>
)
},
{
- title: t('list.wrap.wrapOptions'),
+ title: t('list:wrap.wrapOptions'),
component: (
updateField('left', val)}
- description={t('list.wrap.leftTextDescription')}
+ description={t('list:wrap.leftTextDescription')}
/>
updateField('right', val)}
- description={t('list.wrap.rightTextDescription')}
+ description={t('list:wrap.rightTextDescription')}
/>
)
@@ -174,20 +174,20 @@ export default function Wrap({ title }: ToolComponentProps) {
title={title}
inputComponent={
}
resultComponent={
-
+
}
initialValues={initialValues}
getGroups={getGroups}
validationSchema={validationSchema}
toolInfo={{
- title: t('list.wrap.toolInfo.title'),
- description: t('list.wrap.toolInfo.description')
+ title: t('list:wrap.toolInfo.title'),
+ description: t('list:wrap.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}
diff --git a/src/pages/tools/list/wrap/meta.ts b/src/pages/tools/list/wrap/meta.ts
index 7df75de..a7ed1b7 100644
--- a/src/pages/tools/list/wrap/meta.ts
+++ b/src/pages/tools/list/wrap/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('list', {
keywords: ['wrap'],
component: lazy(() => import('./index')),
i18n: {
- name: 'list.wrap.name',
- description: 'list.wrap.description',
- shortDescription: 'list.wrap.shortDescription'
+ name: 'list:wrap.title',
+ description: 'list:wrap.description',
+ shortDescription: 'list:wrap.shortDescription'
}
});
diff --git a/src/pages/tools/number/arithmetic-sequence/index.tsx b/src/pages/tools/number/arithmetic-sequence/index.tsx
index b921a35..70f3e4a 100644
--- a/src/pages/tools/number/arithmetic-sequence/index.tsx
+++ b/src/pages/tools/number/arithmetic-sequence/index.tsx
@@ -80,7 +80,7 @@ export default function ArithmeticSequence({ title }: ToolComponentProps) {
inputComponent={null}
resultComponent={
}
@@ -88,17 +88,17 @@ export default function ArithmeticSequence({ title }: ToolComponentProps) {
validationSchema={validationSchema}
exampleCards={exampleCards}
toolInfo={{
- title: t('number.arithmeticSequence.toolInfo.title'),
- description: t('number.arithmeticSequence.toolInfo.description')
+ title: t('number:arithmeticSequence.toolInfo.title'),
+ description: t('number:arithmeticSequence.toolInfo.description')
}}
getGroups={({ values, updateField }) => [
{
- title: t('number.arithmeticSequence.sequenceParameters'),
+ title: t('number:arithmeticSequence.sequenceParameters'),
component: (
updateField('firstTerm', val)}
@@ -106,7 +106,7 @@ export default function ArithmeticSequence({ title }: ToolComponentProps) {
/>
updateField('commonDifference', val)}
@@ -114,7 +114,7 @@ export default function ArithmeticSequence({ title }: ToolComponentProps) {
/>
updateField('numberOfTerms', val)}
@@ -124,10 +124,10 @@ export default function ArithmeticSequence({ title }: ToolComponentProps) {
)
},
{
- title: t('number.arithmeticSequence.outputFormat'),
+ title: t('number:arithmeticSequence.outputFormat'),
component: (
updateField('separator', val)}
/>
diff --git a/src/pages/tools/number/arithmetic-sequence/meta.ts b/src/pages/tools/number/arithmetic-sequence/meta.ts
index 82b67f5..f5a4c1f 100644
--- a/src/pages/tools/number/arithmetic-sequence/meta.ts
+++ b/src/pages/tools/number/arithmetic-sequence/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('number', {
keywords: ['arithmetic', 'sequence', 'math', 'progression'],
component: lazy(() => import('./index')),
i18n: {
- name: 'number.arithmeticSequence.name',
- description: 'number.arithmeticSequence.description',
- shortDescription: 'number.arithmeticSequence.shortDescription'
+ name: 'number:arithmeticSequence.title',
+ description: 'number:arithmeticSequence.description',
+ shortDescription: 'number:arithmeticSequence.shortDescription'
}
});
diff --git a/src/pages/tools/number/generate/index.tsx b/src/pages/tools/number/generate/index.tsx
index ece6e10..5273141 100644
--- a/src/pages/tools/number/generate/index.tsx
+++ b/src/pages/tools/number/generate/index.tsx
@@ -36,23 +36,23 @@ export default function GenerateNumbers({ title }: ToolComponentProps) {
initialValues={initialValues}
getGroups={({ values, updateField }) => [
{
- title: t('number.generate.arithmeticSequenceOption'),
+ title: t('number:generate.arithmeticSequenceOption'),
component: (
updateField('firstValue', val)}
type={'number'}
/>
updateField('step', val)}
type={'number'}
/>
updateField('numberOfNumbers', val)}
type={'number'}
@@ -61,10 +61,10 @@ export default function GenerateNumbers({ title }: ToolComponentProps) {
)
},
{
- title: t('number.generate.separator'),
+ title: t('number:generate.separator'),
component: (
updateField('separator', val)}
/>
@@ -74,7 +74,7 @@ export default function GenerateNumbers({ title }: ToolComponentProps) {
compute={compute}
resultComponent={
}
diff --git a/src/pages/tools/number/generate/meta.ts b/src/pages/tools/number/generate/meta.ts
index 5fe25e7..5a79cfc 100644
--- a/src/pages/tools/number/generate/meta.ts
+++ b/src/pages/tools/number/generate/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('number', {
keywords: ['generate', 'random', 'numbers'],
component: lazy(() => import('./index')),
i18n: {
- name: 'number.generate.name',
- description: 'number.generate.description',
- shortDescription: 'number.generate.shortDescription'
+ name: 'number:generate.title',
+ description: 'number:generate.description',
+ shortDescription: 'number:generate.shortDescription'
}
});
diff --git a/src/pages/tools/number/sum/index.tsx b/src/pages/tools/number/sum/index.tsx
index 7a75229..a8d44f9 100644
--- a/src/pages/tools/number/sum/index.tsx
+++ b/src/pages/tools/number/sum/index.tsx
@@ -128,7 +128,7 @@ export default function SumNumbers({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('number.sum.numberExtraction'),
+ title: t('number:sum.numberExtraction'),
component: extractionTypes.map(
({ title, description, type, withTextField, textValueAccessor }) =>
withTextField ? (
@@ -158,11 +158,11 @@ export default function SumNumbers({ title }: ToolComponentProps) {
)
},
{
- title: t('number.sum.runningSum'),
+ title: t('number:sum.runningSum'),
component: (
updateField('printRunningSum', value)}
/>
@@ -175,13 +175,13 @@ export default function SumNumbers({ title }: ToolComponentProps) {
input={input}
inputComponent={
}
resultComponent={
-
+
}
initialValues={initialValues}
getGroups={getGroups}
@@ -191,8 +191,8 @@ export default function SumNumbers({ title }: ToolComponentProps) {
}}
setInput={setInput}
toolInfo={{
- title: t('number.sum.toolInfo.title'),
- description: t('number.sum.toolInfo.description')
+ title: t('number:sum.toolInfo.title'),
+ description: t('number:sum.toolInfo.description')
}}
exampleCards={exampleCards}
/>
diff --git a/src/pages/tools/number/sum/meta.ts b/src/pages/tools/number/sum/meta.ts
index a61de2f..187d958 100644
--- a/src/pages/tools/number/sum/meta.ts
+++ b/src/pages/tools/number/sum/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('number', {
keywords: ['sum', 'add', 'calculate', 'total'],
component: lazy(() => import('./index')),
i18n: {
- name: 'number.sum.name',
- description: 'number.sum.description',
- shortDescription: 'number.sum.shortDescription'
+ name: 'number:sum.title',
+ description: 'number:sum.description',
+ shortDescription: 'number:sum.shortDescription'
}
});
diff --git a/src/pages/tools/pdf/compress-pdf/index.tsx b/src/pages/tools/pdf/compress-pdf/index.tsx
index c5f489e..32c712f 100644
--- a/src/pages/tools/pdf/compress-pdf/index.tsx
+++ b/src/pages/tools/pdf/compress-pdf/index.tsx
@@ -80,7 +80,7 @@ export default function CompressPdf({
} catch (error) {
console.error('Error getting PDF info:', error);
setFileInfo(null);
- showSnackBar(t('pdf.compressPdf.errorReadingPdf'), 'error');
+ showSnackBar(t('pdf:compressPdf.errorReadingPdf'), 'error');
}
};
@@ -112,7 +112,7 @@ export default function CompressPdf({
} catch (error) {
console.error('Error compressing PDF:', error);
showSnackBar(
- t('pdf.compressPdf.errorCompressingPdf', {
+ t('pdf:compressPdf.errorCompressingPdf', {
error: error instanceof Error ? error.message : String(error)
}),
'error'
@@ -130,18 +130,18 @@ export default function CompressPdf({
}[] = [
{
value: 'low',
- label: t('pdf.compressPdf.lowCompression'),
- description: t('pdf.compressPdf.lowCompressionDescription')
+ label: t('pdf:compressPdf.lowCompression'),
+ description: t('pdf:compressPdf.lowCompressionDescription')
},
{
value: 'medium',
- label: t('pdf.compressPdf.mediumCompression'),
- description: t('pdf.compressPdf.mediumCompressionDescription')
+ label: t('pdf:compressPdf.mediumCompression'),
+ description: t('pdf:compressPdf.mediumCompressionDescription')
},
{
value: 'high',
- label: t('pdf.compressPdf.highCompression'),
- description: t('pdf.compressPdf.highCompressionDescription')
+ label: t('pdf:compressPdf.highCompression'),
+ description: t('pdf:compressPdf.highCompressionDescription')
}
];
@@ -157,26 +157,26 @@ export default function CompressPdf({
value={input}
onChange={setInput}
accept={['application/pdf']}
- title={t('pdf.compressPdf.inputTitle')}
+ title={t('pdf:compressPdf.inputTitle')}
/>
}
resultComponent={
}
getGroups={({ values, updateField }) => [
{
- title: t('pdf.compressPdf.compressionSettings'),
+ title: t('pdf:compressPdf.compressionSettings'),
component: (
- {t('pdf.compressPdf.compressionLevel')}
+ {t('pdf:compressPdf.compressionLevel')}
{compressionOptions.map((option) => (
@@ -201,16 +201,16 @@ export default function CompressPdf({
}}
>
- {t('pdf.compressPdf.fileSize')}:{' '}
+ {t('pdf:compressPdf.fileSize')}:{' '}
{fileInfo.size}
- {t('pdf.compressPdf.pages')}:{' '}
+ {t('pdf:compressPdf.pages')}:{' '}
{fileInfo.pages}
{resultSize && (
- {t('pdf.compressPdf.compressedFileSize')}:{' '}
+ {t('pdf:compressPdf.compressedFileSize')}:{' '}
{resultSize}
)}
diff --git a/src/pages/tools/pdf/compress-pdf/meta.ts b/src/pages/tools/pdf/compress-pdf/meta.ts
index b1a877a..efa440c 100644
--- a/src/pages/tools/pdf/compress-pdf/meta.ts
+++ b/src/pages/tools/pdf/compress-pdf/meta.ts
@@ -26,8 +26,8 @@ export const tool = defineTool('pdf', {
'Compress PDF files securely in your browser using Ghostscript. Your files never leave your device, ensuring complete privacy while reducing file sizes for email sharing, uploading to websites, or saving storage space. Powered by WebAssembly technology.',
component: lazy(() => import('./index')),
i18n: {
- name: 'pdf.compressPdf.name',
- description: 'pdf.compressPdf.description',
- shortDescription: 'pdf.compressPdf.shortDescription'
+ name: 'pdf:compressPdf.title',
+ description: 'pdf:compressPdf.description',
+ shortDescription: 'pdf:compressPdf.shortDescription'
}
});
diff --git a/src/pages/tools/pdf/merge-pdf/index.tsx b/src/pages/tools/pdf/merge-pdf/index.tsx
index 716f7c4..77084e9 100644
--- a/src/pages/tools/pdf/merge-pdf/index.tsx
+++ b/src/pages/tools/pdf/merge-pdf/index.tsx
@@ -44,23 +44,23 @@ export default function MergePdf({ title }: ToolComponentProps) {
setInput(pdfInputs);
}}
accept={['application/pdf']}
- title={t('pdf.merge.inputTitle')}
+ title={t('pdf:merge.inputTitle')}
type="pdf"
/>
}
getGroups={null}
resultComponent={
}
toolInfo={{
- title: t('pdf.merge.toolInfo.title'),
- description: t('pdf.merge.toolInfo.description')
+ title: t('pdf:merge.toolInfo.title'),
+ description: t('pdf:merge.toolInfo.description')
}}
/>
);
diff --git a/src/pages/tools/pdf/merge-pdf/meta.ts b/src/pages/tools/pdf/merge-pdf/meta.ts
index 482764c..ca5ec98 100644
--- a/src/pages/tools/pdf/merge-pdf/meta.ts
+++ b/src/pages/tools/pdf/merge-pdf/meta.ts
@@ -10,8 +10,8 @@ export const meta = defineTool('pdf', {
keywords: ['pdf', 'merge', 'extract', 'pages', 'combine', 'document'],
path: 'merge-pdf',
i18n: {
- name: 'pdf.mergePdf.name',
- description: 'pdf.mergePdf.description',
- shortDescription: 'pdf.mergePdf.shortDescription'
+ name: 'pdf:mergePdf.title',
+ description: 'pdf:mergePdf.description',
+ shortDescription: 'pdf:mergePdf.shortDescription'
}
});
diff --git a/src/pages/tools/pdf/pdf-to-epub/meta.ts b/src/pages/tools/pdf/pdf-to-epub/meta.ts
index 767b2b7..fa9f341 100644
--- a/src/pages/tools/pdf/pdf-to-epub/meta.ts
+++ b/src/pages/tools/pdf/pdf-to-epub/meta.ts
@@ -11,8 +11,8 @@ export const meta = defineTool('pdf', {
keywords: ['pdf', 'epub', 'convert', 'ebook'],
path: 'pdf-to-epub',
i18n: {
- name: 'pdf.pdfToEpub.name',
- description: 'pdf.pdfToEpub.description',
- shortDescription: 'pdf.pdfToEpub.shortDescription'
+ name: 'pdf:pdfToEpub.title',
+ description: 'pdf:pdfToEpub.description',
+ shortDescription: 'pdf:pdfToEpub.shortDescription'
}
});
diff --git a/src/pages/tools/pdf/protect-pdf/meta.ts b/src/pages/tools/pdf/protect-pdf/meta.ts
index b176d00..d5c13d9 100644
--- a/src/pages/tools/pdf/protect-pdf/meta.ts
+++ b/src/pages/tools/pdf/protect-pdf/meta.ts
@@ -25,8 +25,8 @@ export const tool = defineTool('pdf', {
'Add password protection to your PDF files securely in your browser. Your files never leave your device, ensuring complete privacy while securing your documents with password encryption. Perfect for protecting sensitive information, confidential documents, or personal data.',
component: lazy(() => import('./index')),
i18n: {
- name: 'pdf.protectPdf.name',
- description: 'pdf.protectPdf.description',
- shortDescription: 'pdf.protectPdf.shortDescription'
+ name: 'pdf:protectPdf.title',
+ description: 'pdf:protectPdf.description',
+ shortDescription: 'pdf:protectPdf.shortDescription'
}
});
diff --git a/src/pages/tools/pdf/rotate-pdf/index.tsx b/src/pages/tools/pdf/rotate-pdf/index.tsx
index c62a716..d95da5d 100644
--- a/src/pages/tools/pdf/rotate-pdf/index.tsx
+++ b/src/pages/tools/pdf/rotate-pdf/index.tsx
@@ -92,7 +92,7 @@ export default function RotatePdf({
if (applyToAllPages) {
setPageRangePreview(
totalPages > 0
- ? t('pdf.rotatePdf.allPagesWillBeRotated', { count: totalPages })
+ ? t('pdf:rotatePdf.allPagesWillBeRotated', { count: totalPages })
: ''
);
return;
@@ -105,7 +105,7 @@ export default function RotatePdf({
try {
const count = parsePageRanges(pageRanges, totalPages).length;
- setPageRangePreview(t('pdf.rotatePdf.pagesWillBeRotated', { count }));
+ setPageRangePreview(t('pdf:rotatePdf.pagesWillBeRotated', { count }));
} catch (error) {
setPageRangePreview('');
}
@@ -125,9 +125,9 @@ export default function RotatePdf({
}
};
const angleOptions: { value: RotationAngle; label: string }[] = [
- { value: 90, label: t('pdf.rotatePdf.angleOptions.clockwise90') },
- { value: 180, label: t('pdf.rotatePdf.angleOptions.upsideDown180') },
- { value: 270, label: t('pdf.rotatePdf.angleOptions.counterClockwise270') }
+ { value: 90, label: t('pdf:rotatePdf.angleOptions.clockwise90') },
+ { value: 180, label: t('pdf:rotatePdf.angleOptions.upsideDown180') },
+ { value: 270, label: t('pdf:rotatePdf.angleOptions.counterClockwise270') }
];
return (
}
resultComponent={
}
getGroups={({ values, updateField }) => [
{
- title: t('pdf.rotatePdf.rotationSettings'),
+ title: t('pdf:rotatePdf.rotationSettings'),
component: (
- {t('pdf.rotatePdf.rotationAngle')}
+ {t('pdf:rotatePdf.rotationAngle')}
{angleOptions.map((angleOption) => (
}
- label={t('pdf.rotatePdf.applyToAllPages')}
+ label={t('pdf:rotatePdf.applyToAllPages')}
/>
@@ -191,7 +191,7 @@ export default function RotatePdf({
{totalPages > 0 && (
- {t('pdf.rotatePdf.pdfPageCount', { count: totalPages })}
+ {t('pdf:rotatePdf.pdfPageCount', { count: totalPages })}
)}
{
updateField('pageRanges', val);
}}
- description={t('pdf.rotatePdf.pageRangesDescription')}
- placeholder={t('pdf.rotatePdf.pageRangesPlaceholder')}
+ description={t('pdf:rotatePdf.pageRangesDescription')}
+ placeholder={t('pdf:rotatePdf.pageRangesPlaceholder')}
/>
{pageRangePreview && (
);
diff --git a/src/pages/tools/pdf/split-pdf/index.tsx b/src/pages/tools/pdf/split-pdf/index.tsx
index d90bb7d..7a1fa26 100644
--- a/src/pages/tools/pdf/split-pdf/index.tsx
+++ b/src/pages/tools/pdf/split-pdf/index.tsx
@@ -85,7 +85,7 @@ export default function SplitPdf({ title }: ToolComponentProps) {
}
try {
const count = parsePageRanges(pageRanges, totalPages).length;
- setPageRangePreview(t('pdf.splitPdf.pageExtractionPreview', { count }));
+ setPageRangePreview(t('pdf:splitPdf.pageExtractionPreview', { count }));
} catch (error) {
setPageRangePreview('');
}
@@ -118,26 +118,26 @@ export default function SplitPdf({ title }: ToolComponentProps) {
value={input}
onChange={setInput}
accept={['application/pdf']}
- title={t('pdf.splitPdf.inputTitle')}
+ title={t('pdf:splitPdf.inputTitle')}
/>
}
resultComponent={
}
getGroups={({ values, updateField }) => [
{
- title: t('pdf.splitPdf.pageSelection'),
+ title: t('pdf:splitPdf.pageSelection'),
component: (
{totalPages > 0 && (
- {t('pdf.splitPdf.pdfPageCount', { count: totalPages })}
+ {t('pdf:splitPdf.pdfPageCount', { count: totalPages })}
)}
{
updateField('pageRanges', val);
}}
- description={t('pdf.splitPdf.pageRangesDescription')}
- placeholder={t('pdf.splitPdf.pageRangesPlaceholder')}
+ description={t('pdf:splitPdf.pageRangesDescription')}
+ placeholder={t('pdf:splitPdf.pageRangesPlaceholder')}
/>
{pageRangePreview && (
);
diff --git a/src/pages/tools/pdf/split-pdf/meta.ts b/src/pages/tools/pdf/split-pdf/meta.ts
index 3746d92..f63a35d 100644
--- a/src/pages/tools/pdf/split-pdf/meta.ts
+++ b/src/pages/tools/pdf/split-pdf/meta.ts
@@ -11,8 +11,8 @@ export const meta = defineTool('pdf', {
keywords: ['pdf', 'split', 'extract', 'pages', 'range', 'document'],
path: 'split-pdf',
i18n: {
- name: 'pdf.splitPdf.name',
- description: 'pdf.splitPdf.description',
- shortDescription: 'pdf.splitPdf.shortDescription'
+ name: 'pdf:splitPdf.title',
+ description: 'pdf:splitPdf.description',
+ shortDescription: 'pdf:splitPdf.shortDescription'
}
});
diff --git a/src/pages/tools/string/base64/index.tsx b/src/pages/tools/string/base64/index.tsx
index 1b42119..c5e62f2 100644
--- a/src/pages/tools/string/base64/index.tsx
+++ b/src/pages/tools/string/base64/index.tsx
@@ -47,18 +47,18 @@ export default function Base64({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('string.base64.optionsTitle'),
+ title: t('string:base64.optionsTitle'),
component: (
updateField('mode', 'encode')}
checked={values.mode === 'encode'}
- title={t('string.base64.encode')}
+ title={t('string:base64.encode')}
/>
updateField('mode', 'decode')}
checked={values.mode === 'decode'}
- title={t('string.base64.decode')}
+ title={t('string:base64.decode')}
/>
)
@@ -70,19 +70,19 @@ export default function Base64({ title }: ToolComponentProps) {
title={title}
inputComponent={
}
resultComponent={
-
+
}
initialValues={initialValues}
getGroups={getGroups}
toolInfo={{
- title: t('string.base64.toolInfo.title'),
- description: t('string.base64.toolInfo.description')
+ title: t('string:base64.toolInfo.title'),
+ description: t('string:base64.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}
diff --git a/src/pages/tools/string/base64/meta.ts b/src/pages/tools/string/base64/meta.ts
index 5484b37..994f343 100644
--- a/src/pages/tools/string/base64/meta.ts
+++ b/src/pages/tools/string/base64/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['base64'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.base64.name',
- description: 'string.base64.description',
- shortDescription: 'string.base64.shortDescription'
+ name: 'string:base64.title',
+ description: 'string:base64.description',
+ shortDescription: 'string:base64.shortDescription'
}
});
diff --git a/src/pages/tools/string/censor/meta.ts b/src/pages/tools/string/censor/meta.ts
index 8088f41..de271b0 100644
--- a/src/pages/tools/string/censor/meta.ts
+++ b/src/pages/tools/string/censor/meta.ts
@@ -14,9 +14,9 @@ export const tool = defineTool('string', {
keywords: ['text', 'censor', 'words', 'characters'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.censor.name',
- description: 'string.censor.description',
- shortDescription: 'string.censor.shortDescription',
- longDescription: 'string.censor.longDescription'
+ name: 'string:censor.title',
+ description: 'string:censor.description',
+ shortDescription: 'string:censor.shortDescription',
+ longDescription: 'string:censor.longDescription'
}
});
diff --git a/src/pages/tools/string/create-palindrome/meta.ts b/src/pages/tools/string/create-palindrome/meta.ts
index 4588130..f1207a7 100644
--- a/src/pages/tools/string/create-palindrome/meta.ts
+++ b/src/pages/tools/string/create-palindrome/meta.ts
@@ -14,8 +14,8 @@ export const tool = defineTool('string', {
keywords: ['create', 'palindrome'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.createPalindrome.name',
- description: 'string.createPalindrome.description',
- shortDescription: 'string.createPalindrome.shortDescription'
+ name: 'string:createPalindrome.title',
+ description: 'string:createPalindrome.description',
+ shortDescription: 'string:createPalindrome.shortDescription'
}
});
diff --git a/src/pages/tools/string/extract-substring/meta.ts b/src/pages/tools/string/extract-substring/meta.ts
index eeaea56..4692063 100644
--- a/src/pages/tools/string/extract-substring/meta.ts
+++ b/src/pages/tools/string/extract-substring/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('string', {
keywords: ['extract', 'substring'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.extractSubstring.name',
- description: 'string.extractSubstring.description',
- shortDescription: 'string.extractSubstring.shortDescription'
+ name: 'string:extractSubstring.title',
+ description: 'string:extractSubstring.description',
+ shortDescription: 'string:extractSubstring.shortDescription'
}
});
diff --git a/src/pages/tools/string/join/index.tsx b/src/pages/tools/string/join/index.tsx
index 1106481..63b6aed 100644
--- a/src/pages/tools/string/join/index.tsx
+++ b/src/pages/tools/string/join/index.tsx
@@ -121,18 +121,18 @@ export default function JoinText({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('string.join.textMergedOptions'),
+ title: t('string:join.textMergedOptions'),
component: (
updateField(mergeOptions.accessor, value)}
- description={t('string.join.joinCharacterDescription')}
+ description={t('string:join.joinCharacterDescription')}
/>
)
},
{
- title: t('string.join.blankLinesAndTrailingSpaces'),
+ title: t('string:join.blankLinesAndTrailingSpaces'),
component: blankTrailingOptions.map((option) => (
}
resultComponent={
-
+
}
getGroups={getGroups}
toolInfo={{
- title: t('string.join.toolInfo.title'),
- description: t('string.join.toolInfo.description')
+ title: t('string:join.toolInfo.title'),
+ description: t('string:join.toolInfo.description')
}}
exampleCards={exampleCards}
/>
diff --git a/src/pages/tools/string/join/meta.ts b/src/pages/tools/string/join/meta.ts
index 13992b9..83904c8 100644
--- a/src/pages/tools/string/join/meta.ts
+++ b/src/pages/tools/string/join/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['join'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.join.name',
- description: 'string.join.description',
- shortDescription: 'string.join.shortDescription'
+ name: 'string:join.title',
+ description: 'string:join.description',
+ shortDescription: 'string:join.shortDescription'
}
});
diff --git a/src/pages/tools/string/palindrome/meta.ts b/src/pages/tools/string/palindrome/meta.ts
index 1dc92a1..d9a6304 100644
--- a/src/pages/tools/string/palindrome/meta.ts
+++ b/src/pages/tools/string/palindrome/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('string', {
keywords: ['palindrome'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.palindrome.name',
- description: 'string.palindrome.description',
- shortDescription: 'string.palindrome.shortDescription'
+ name: 'string:palindrome.title',
+ description: 'string:palindrome.description',
+ shortDescription: 'string:palindrome.shortDescription'
}
});
diff --git a/src/pages/tools/string/quote/index.tsx b/src/pages/tools/string/quote/index.tsx
index 318282e..0726dae 100644
--- a/src/pages/tools/string/quote/index.tsx
+++ b/src/pages/tools/string/quote/index.tsx
@@ -95,33 +95,33 @@ export default function Quote({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('string.quote.quoteOptions'),
+ title: t('string:quote.quoteOptions'),
component: (
updateField('leftQuote', val)}
- description={t('string.quote.leftQuoteDescription')}
+ description={t('string:quote.leftQuoteDescription')}
/>
updateField('rightQuote', val)}
- description={t('string.quote.rightQuoteDescription')}
+ description={t('string:quote.rightQuoteDescription')}
/>
updateField('doubleQuotation', checked)}
- title={t('string.quote.allowDoubleQuotation')}
+ title={t('string:quote.allowDoubleQuotation')}
/>
updateField('emptyQuoting', checked)}
- title={t('string.quote.quoteEmptyLines')}
+ title={t('string:quote.quoteEmptyLines')}
/>
updateField('multiLine', checked)}
- title={t('string.quote.processAsMultiLine')}
+ title={t('string:quote.processAsMultiLine')}
/>
)
@@ -133,19 +133,19 @@ export default function Quote({ title }: ToolComponentProps) {
title={title}
inputComponent={
}
resultComponent={
-
+
}
initialValues={initialValues}
getGroups={getGroups}
toolInfo={{
- title: t('string.quote.toolInfo.title'),
- description: t('string.quote.toolInfo.description')
+ title: t('string:quote.toolInfo.title'),
+ description: t('string:quote.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}
diff --git a/src/pages/tools/string/quote/meta.ts b/src/pages/tools/string/quote/meta.ts
index 6d5d461..09846da 100644
--- a/src/pages/tools/string/quote/meta.ts
+++ b/src/pages/tools/string/quote/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('string', {
keywords: ['quote'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.quote.name',
- description: 'string.quote.description',
- shortDescription: 'string.quote.shortDescription'
+ name: 'string:quote.title',
+ description: 'string:quote.description',
+ shortDescription: 'string:quote.shortDescription'
}
});
diff --git a/src/pages/tools/string/randomize-case/meta.ts b/src/pages/tools/string/randomize-case/meta.ts
index 2889d57..559827c 100644
--- a/src/pages/tools/string/randomize-case/meta.ts
+++ b/src/pages/tools/string/randomize-case/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('string', {
keywords: ['randomize', 'case'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.randomizeCase.name',
- description: 'string.randomizeCase.description',
- shortDescription: 'string.randomizeCase.shortDescription'
+ name: 'string:randomizeCase.title',
+ description: 'string:randomizeCase.description',
+ shortDescription: 'string:randomizeCase.shortDescription'
}
});
diff --git a/src/pages/tools/string/remove-duplicate-lines/meta.ts b/src/pages/tools/string/remove-duplicate-lines/meta.ts
index 76aed23..577fa2f 100644
--- a/src/pages/tools/string/remove-duplicate-lines/meta.ts
+++ b/src/pages/tools/string/remove-duplicate-lines/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['remove', 'duplicate', 'lines'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.removeDuplicateLines.name',
- description: 'string.removeDuplicateLines.description',
- shortDescription: 'string.removeDuplicateLines.shortDescription'
+ name: 'string:removeDuplicateLines.title',
+ description: 'string:removeDuplicateLines.description',
+ shortDescription: 'string:removeDuplicateLines.shortDescription'
}
});
diff --git a/src/pages/tools/string/repeat/index.tsx b/src/pages/tools/string/repeat/index.tsx
index c70d2a2..694e0fe 100644
--- a/src/pages/tools/string/repeat/index.tsx
+++ b/src/pages/tools/string/repeat/index.tsx
@@ -62,12 +62,12 @@ export default function Replacer({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('string.repeat.textRepetitions'),
+ title: t('string:repeat.textRepetitions'),
component: (
updateField('repeatAmount', val)}
type={'number'}
@@ -76,12 +76,12 @@ export default function Replacer({ title }: ToolComponentProps) {
)
},
{
- title: t('string.repeat.repetitionsDelimiter'),
+ title: t('string:repeat.repetitionsDelimiter'),
component: (
updateField('delimiter', val)}
type={'text'}
@@ -101,17 +101,17 @@ export default function Replacer({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
}
resultComponent={
-
+
}
toolInfo={{
- title: t('string.repeat.toolInfo.title'),
- description: t('string.repeat.toolInfo.description')
+ title: t('string:repeat.toolInfo.title'),
+ description: t('string:repeat.toolInfo.description')
}}
exampleCards={exampleCards}
/>
diff --git a/src/pages/tools/string/repeat/meta.ts b/src/pages/tools/string/repeat/meta.ts
index 6ec3def..680b666 100644
--- a/src/pages/tools/string/repeat/meta.ts
+++ b/src/pages/tools/string/repeat/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['text', 'repeat'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.repeat.name',
- description: 'string.repeat.description',
- shortDescription: 'string.repeat.shortDescription'
+ name: 'string:repeat.title',
+ description: 'string:repeat.description',
+ shortDescription: 'string:repeat.shortDescription'
}
});
diff --git a/src/pages/tools/string/reverse/index.tsx b/src/pages/tools/string/reverse/index.tsx
index 184aaac..328688f 100644
--- a/src/pages/tools/string/reverse/index.tsx
+++ b/src/pages/tools/string/reverse/index.tsx
@@ -76,27 +76,27 @@ export default function Reverse({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('string.reverse.reversalOptions'),
+ title: t('string:reverse.reversalOptions'),
component: [
updateField('multiLine', val)}
/>,
updateField('emptyItems', val)}
/>,
updateField('trim', val)}
/>
]
@@ -113,14 +113,14 @@ export default function Reverse({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
}
resultComponent={
}
diff --git a/src/pages/tools/string/reverse/meta.ts b/src/pages/tools/string/reverse/meta.ts
index 0f00c21..18b476f 100644
--- a/src/pages/tools/string/reverse/meta.ts
+++ b/src/pages/tools/string/reverse/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['reverse'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.reverse.name',
- description: 'string.reverse.description',
- shortDescription: 'string.reverse.shortDescription'
+ name: 'string:reverse.title',
+ description: 'string:reverse.description',
+ shortDescription: 'string:reverse.shortDescription'
}
});
diff --git a/src/pages/tools/string/rot13/index.tsx b/src/pages/tools/string/rot13/index.tsx
index 222a7c2..a0a3d49 100644
--- a/src/pages/tools/string/rot13/index.tsx
+++ b/src/pages/tools/string/rot13/index.tsx
@@ -44,19 +44,19 @@ export default function Rot13({ title }: ToolComponentProps) {
title={title}
inputComponent={
}
resultComponent={
-
+
}
initialValues={initialValues}
getGroups={null}
toolInfo={{
- title: t('string.rot13.toolInfo.title'),
- description: t('string.rot13.toolInfo.description')
+ title: t('string:rot13.toolInfo.title'),
+ description: t('string:rot13.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}
diff --git a/src/pages/tools/string/rotate/index.tsx b/src/pages/tools/string/rotate/index.tsx
index 06baefb..42f9590 100644
--- a/src/pages/tools/string/rotate/index.tsx
+++ b/src/pages/tools/string/rotate/index.tsx
@@ -81,29 +81,29 @@ export default function Rotate({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('string.rotate.rotationOptions'),
+ title: t('string:rotate.rotationOptions'),
component: (
updateField('step', val)}
- description={t('string.rotate.stepDescription')}
+ description={t('string:rotate.stepDescription')}
type="number"
/>
updateField('direction', 'right')}
checked={values.direction === 'right'}
- title={t('string.rotate.rotateRight')}
+ title={t('string:rotate.rotateRight')}
/>
updateField('direction', 'left')}
checked={values.direction === 'left'}
- title={t('string.rotate.rotateLeft')}
+ title={t('string:rotate.rotateLeft')}
/>
updateField('multiLine', checked)}
- title={t('string.rotate.processAsMultiLine')}
+ title={t('string:rotate.processAsMultiLine')}
/>
)
@@ -115,19 +115,19 @@ export default function Rotate({ title }: ToolComponentProps) {
title={title}
inputComponent={
}
resultComponent={
-
+
}
initialValues={initialValues}
getGroups={getGroups}
toolInfo={{
- title: t('string.rotate.toolInfo.title'),
- description: t('string.rotate.toolInfo.description')
+ title: t('string:rotate.toolInfo.title'),
+ description: t('string:rotate.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}
diff --git a/src/pages/tools/string/split/index.tsx b/src/pages/tools/string/split/index.tsx
index 6e8bb9a..705d507 100644
--- a/src/pages/tools/string/split/index.tsx
+++ b/src/pages/tools/string/split/index.tsx
@@ -173,12 +173,12 @@ export default function SplitText({ title }: ToolComponentProps) {
input={input}
inputComponent={}
resultComponent={
-
+
}
initialValues={initialValues}
getGroups={({ values, updateField }) => [
{
- title: t('string.split.splitSeparatorOptions'),
+ title: t('string:split.splitSeparatorOptions'),
component: splitOperators.map(({ title, description, type }) => (
(
import('./index')),
i18n: {
- name: 'string.split.name',
- description: 'string.split.description',
- shortDescription: 'string.split.shortDescription'
+ name: 'string:split.title',
+ description: 'string:split.description',
+ shortDescription: 'string:split.shortDescription'
}
});
diff --git a/src/pages/tools/string/statistic/index.tsx b/src/pages/tools/string/statistic/index.tsx
index bcaac9d..2f475e1 100644
--- a/src/pages/tools/string/statistic/index.tsx
+++ b/src/pages/tools/string/statistic/index.tsx
@@ -230,47 +230,47 @@ export default function Truncate({
updateField
}) => [
{
- title: t('string.statistic.delimitersOptions'),
+ title: t('string:statistic.delimitersOptions'),
component: (
updateField('sentenceDelimiters', val)}
- placeholder={t('string.statistic.sentenceDelimitersPlaceholder')}
- description={t('string.statistic.sentenceDelimitersDescription')}
+ placeholder={t('string:statistic.sentenceDelimitersPlaceholder')}
+ description={t('string:statistic.sentenceDelimitersDescription')}
/>
updateField('wordDelimiters', val)}
- placeholder={t('string.statistic.wordDelimitersPlaceholder')}
- description={t('string.statistic.wordDelimitersDescription')}
+ placeholder={t('string:statistic.wordDelimitersPlaceholder')}
+ description={t('string:statistic.wordDelimitersDescription')}
/>
)
},
{
- title: t('string.statistic.statisticsOptions'),
+ title: t('string:statistic.statisticsOptions'),
component: (
updateField('wordCount', value)}
- title={t('string.statistic.wordFrequencyAnalysis')}
- description={t('string.statistic.wordFrequencyAnalysisDescription')}
+ title={t('string:statistic.wordFrequencyAnalysis')}
+ description={t('string:statistic.wordFrequencyAnalysisDescription')}
/>
updateField('characterCount', value)}
- title={t('string.statistic.characterFrequencyAnalysis')}
+ title={t('string:statistic.characterFrequencyAnalysis')}
description={t(
- 'string.statistic.characterFrequencyAnalysisDescription'
+ 'string:statistic.characterFrequencyAnalysisDescription'
)}
/>
updateField('emptyLines', value)}
- title={t('string.statistic.includeEmptyLines')}
- description={t('string.statistic.includeEmptyLinesDescription')}
+ title={t('string:statistic.includeEmptyLines')}
+ description={t('string:statistic.includeEmptyLinesDescription')}
/>
)
@@ -287,19 +287,19 @@ export default function Truncate({
setInput={setInput}
inputComponent={
}
resultComponent={
}
toolInfo={{
- title: t('string.statistic.toolInfo.title', { title }),
+ title: t('string:statistic.toolInfo.title', { title }),
description: longDescription
}}
exampleCards={exampleCards}
diff --git a/src/pages/tools/string/statistic/meta.ts b/src/pages/tools/string/statistic/meta.ts
index 5769d0a..4cb9309 100644
--- a/src/pages/tools/string/statistic/meta.ts
+++ b/src/pages/tools/string/statistic/meta.ts
@@ -13,9 +13,9 @@ export const tool = defineTool('string', {
keywords: ['text', 'statistics', 'count', 'lines', 'words', 'characters'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.statistic.name',
- description: 'string.statistic.description',
- shortDescription: 'string.statistic.shortDescription',
- longDescription: 'string.statistic.longDescription'
+ name: 'string:statistic.title',
+ description: 'string:statistic.description',
+ shortDescription: 'string:statistic.shortDescription',
+ longDescription: 'string:statistic.longDescription'
}
});
diff --git a/src/pages/tools/string/text-replacer/index.tsx b/src/pages/tools/string/text-replacer/index.tsx
index 44b0507..378325b 100644
--- a/src/pages/tools/string/text-replacer/index.tsx
+++ b/src/pages/tools/string/text-replacer/index.tsx
@@ -74,16 +74,16 @@ export default function Replacer({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('string.textReplacer.searchText'),
+ title: t('string:textReplacer.searchText'),
component: (
updateField('mode', 'text')}
checked={values.mode === 'text'}
- title={t('string.textReplacer.findPatternInText')}
+ title={t('string:textReplacer.findPatternInText')}
/>
updateField('searchValue', val)}
type={'text'}
@@ -91,10 +91,10 @@ export default function Replacer({ title }: ToolComponentProps) {
updateField('mode', 'regexp')}
checked={values.mode === 'regexp'}
- title={t('string.textReplacer.findPatternUsingRegexp')}
+ title={t('string:textReplacer.findPatternUsingRegexp')}
/>
updateField('searchRegexp', val)}
type={'text'}
@@ -103,12 +103,12 @@ export default function Replacer({ title }: ToolComponentProps) {
)
},
{
- title: t('string.textReplacer.replaceText'),
+ title: t('string:textReplacer.replaceText'),
component: (
updateField('replaceValue', val)}
type={'text'}
@@ -128,20 +128,20 @@ export default function Replacer({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
}
resultComponent={
}
toolInfo={{
- title: t('string.textReplacer.toolInfo.title'),
- description: t('string.textReplacer.toolInfo.description')
+ title: t('string:textReplacer.toolInfo.title'),
+ description: t('string:textReplacer.toolInfo.description')
}}
exampleCards={exampleCards}
/>
diff --git a/src/pages/tools/string/to-morse/index.tsx b/src/pages/tools/string/to-morse/index.tsx
index 8a4463e..f94659d 100644
--- a/src/pages/tools/string/to-morse/index.tsx
+++ b/src/pages/tools/string/to-morse/index.tsx
@@ -22,7 +22,7 @@ export default function ToMorse() {
return (
}
resultComponent={
}
getGroups={({ values, updateField }) => [
{
- title: t('string.toMorse.shortSignal'),
+ title: t('string:toMorse.shortSignal'),
component: (
updateField('dotSymbol', val)}
/>
)
},
{
- title: t('string.toMorse.longSignal'),
+ title: t('string:toMorse.longSignal'),
component: (
updateField('dashSymbol', val)}
/>
diff --git a/src/pages/tools/string/to-morse/meta.ts b/src/pages/tools/string/to-morse/meta.ts
index cf5f1ae..917358f 100644
--- a/src/pages/tools/string/to-morse/meta.ts
+++ b/src/pages/tools/string/to-morse/meta.ts
@@ -12,8 +12,8 @@ export const tool = defineTool('string', {
keywords: ['to', 'morse'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.toMorse.name',
- description: 'string.toMorse.description',
- shortDescription: 'string.toMorse.shortDescription'
+ name: 'string:toMorse.title',
+ description: 'string:toMorse.description',
+ shortDescription: 'string:toMorse.shortDescription'
}
});
diff --git a/src/pages/tools/string/truncate/index.tsx b/src/pages/tools/string/truncate/index.tsx
index 717d24e..3bc8a26 100644
--- a/src/pages/tools/string/truncate/index.tsx
+++ b/src/pages/tools/string/truncate/index.tsx
@@ -81,31 +81,31 @@ export default function Truncate({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('string.truncate.truncationSide'),
+ title: t('string:truncate.truncationSide'),
component: (
updateField('truncationSide', 'right')}
checked={values.truncationSide === 'right'}
- title={t('string.truncate.rightSideTruncation')}
- description={t('string.truncate.rightSideDescription')}
+ title={t('string:truncate.rightSideTruncation')}
+ description={t('string:truncate.rightSideDescription')}
/>
updateField('truncationSide', 'left')}
checked={values.truncationSide === 'left'}
- title={t('string.truncate.leftSideTruncation')}
- description={t('string.truncate.leftSideDescription')}
+ title={t('string:truncate.leftSideTruncation')}
+ description={t('string:truncate.leftSideDescription')}
/>
)
},
{
- title: t('string.truncate.lengthAndLines'),
+ title: t('string:truncate.lengthAndLines'),
component: (
updateField('maxLength', val)}
type={'number'}
@@ -113,25 +113,25 @@ export default function Truncate({ title }: ToolComponentProps) {
updateField('lineByLine', val)}
checked={values.lineByLine}
- title={t('string.truncate.lineByLineTruncating')}
- description={t('string.truncate.lineByLineDescription')}
+ title={t('string:truncate.lineByLineTruncating')}
+ description={t('string:truncate.lineByLineDescription')}
/>
)
},
{
- title: t('string.truncate.suffixAndAffix'),
+ title: t('string:truncate.suffixAndAffix'),
component: (
updateField('addIndicator', val)}
checked={values.addIndicator}
- title={t('string.truncate.addTruncationIndicator')}
+ title={t('string:truncate.addTruncationIndicator')}
description={''}
/>
updateField('indicator', val)}
type={'text'}
@@ -151,20 +151,20 @@ export default function Truncate({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
}
resultComponent={
}
toolInfo={{
- title: t('string.truncate.toolInfo.title'),
- description: t('string.truncate.toolInfo.description')
+ title: t('string:truncate.toolInfo.title'),
+ description: t('string:truncate.toolInfo.description')
}}
exampleCards={exampleCards}
/>
diff --git a/src/pages/tools/string/truncate/meta.ts b/src/pages/tools/string/truncate/meta.ts
index a9f7080..b01707f 100644
--- a/src/pages/tools/string/truncate/meta.ts
+++ b/src/pages/tools/string/truncate/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['truncate'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.truncate.name',
- description: 'string.truncate.description',
- shortDescription: 'string.truncate.shortDescription'
+ name: 'string:truncate.title',
+ description: 'string:truncate.description',
+ shortDescription: 'string:truncate.shortDescription'
}
});
diff --git a/src/pages/tools/string/uppercase/index.tsx b/src/pages/tools/string/uppercase/index.tsx
index 085548c..bb6a9b7 100644
--- a/src/pages/tools/string/uppercase/index.tsx
+++ b/src/pages/tools/string/uppercase/index.tsx
@@ -57,14 +57,14 @@ export default function Uppercase({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
}
resultComponent={
}
diff --git a/src/pages/tools/string/uppercase/meta.ts b/src/pages/tools/string/uppercase/meta.ts
index 103edc6..15e06e9 100644
--- a/src/pages/tools/string/uppercase/meta.ts
+++ b/src/pages/tools/string/uppercase/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['uppercase'],
component: lazy(() => import('./index')),
i18n: {
- name: 'string.uppercase.name',
- description: 'string.uppercase.description',
- shortDescription: 'string.uppercase.shortDescription'
+ name: 'string:uppercase.title',
+ description: 'string:uppercase.description',
+ shortDescription: 'string:uppercase.shortDescription'
}
});
diff --git a/src/pages/tools/time/check-leap-years/index.tsx b/src/pages/tools/time/check-leap-years/index.tsx
index c89f9ac..8d941ee 100644
--- a/src/pages/tools/time/check-leap-years/index.tsx
+++ b/src/pages/tools/time/check-leap-years/index.tsx
@@ -78,7 +78,7 @@ export default function ConvertDaysToHours({
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('time.checkLeapYears.toolInfo.title', { title }),
+ title: t('time:checkLeapYears.toolInfo.title', { title }),
description: longDescription
}}
exampleCards={exampleCards}
diff --git a/src/pages/tools/time/check-leap-years/meta.ts b/src/pages/tools/time/check-leap-years/meta.ts
index 844208c..1c4b7ee 100644
--- a/src/pages/tools/time/check-leap-years/meta.ts
+++ b/src/pages/tools/time/check-leap-years/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('time', {
keywords: ['leap', 'year', 'calendar', 'date'],
component: lazy(() => import('./index')),
i18n: {
- name: 'time.checkLeapYears.name',
- description: 'time.checkLeapYears.description',
- shortDescription: 'time.checkLeapYears.shortDescription'
+ name: 'time:checkLeapYears.title',
+ description: 'time:checkLeapYears.description',
+ shortDescription: 'time:checkLeapYears.shortDescription'
}
});
diff --git a/src/pages/tools/time/convert-days-to-hours/index.tsx b/src/pages/tools/time/convert-days-to-hours/index.tsx
index 6209a64..89a2da3 100644
--- a/src/pages/tools/time/convert-days-to-hours/index.tsx
+++ b/src/pages/tools/time/convert-days-to-hours/index.tsx
@@ -19,7 +19,7 @@ const exampleCards: CardExampleType[] = [
title: 'Full Days to Hours',
description:
'This example calculates how many hours there are in 1 day, in one week (7 days), in one month (30 days), and in even longer time periods. To see all the results at once, we enter each individual day value on a new line. We also use the "days" suffix in the input and add the "hours" suffix to the output.',
- sampleText: `1 day
+ sampleText: `1 day
7 days
30 days
90 days
@@ -76,14 +76,14 @@ export default function ConvertDaysToHours({
updateField
}) => [
{
- title: t('time.convertDaysToHours.hoursName'),
+ title: t('time:convertDaysToHours.hoursName'),
component: (
updateField('hoursFlag', val)}
checked={values.hoursFlag}
- title={t('time.convertDaysToHours.addHoursName')}
- description={t('time.convertDaysToHours.addHoursNameDescription')}
+ title={t('time:convertDaysToHours.addHoursName')}
+ description={t('time:convertDaysToHours.addHoursNameDescription')}
/>
)
@@ -101,8 +101,8 @@ export default function ConvertDaysToHours({
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('time.convertDaysToHours.toolInfo.title'),
- description: t('time.convertDaysToHours.toolInfo.description')
+ title: t('time:convertDaysToHours.toolInfo.title'),
+ description: t('time:convertDaysToHours.toolInfo.description')
}}
exampleCards={exampleCards}
/>
diff --git a/src/pages/tools/time/convert-days-to-hours/meta.ts b/src/pages/tools/time/convert-days-to-hours/meta.ts
index 4c0e131..4932b8f 100644
--- a/src/pages/tools/time/convert-days-to-hours/meta.ts
+++ b/src/pages/tools/time/convert-days-to-hours/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('time', {
keywords: ['days', 'hours', 'convert', 'time'],
component: lazy(() => import('./index')),
i18n: {
- name: 'time.convertDaysToHours.name',
- description: 'time.convertDaysToHours.description',
- shortDescription: 'time.convertDaysToHours.shortDescription'
+ name: 'time:convertDaysToHours.title',
+ description: 'time:convertDaysToHours.description',
+ shortDescription: 'time:convertDaysToHours.shortDescription'
}
});
diff --git a/src/pages/tools/time/convert-hours-to-days/meta.ts b/src/pages/tools/time/convert-hours-to-days/meta.ts
index b522db7..310d835 100644
--- a/src/pages/tools/time/convert-hours-to-days/meta.ts
+++ b/src/pages/tools/time/convert-hours-to-days/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('time', {
keywords: ['hours', 'days', 'convert', 'time'],
component: lazy(() => import('./index')),
i18n: {
- name: 'time.convertHoursToDays.name',
- description: 'time.convertHoursToDays.description',
- shortDescription: 'time.convertHoursToDays.shortDescription'
+ name: 'time:convertHoursToDays.title',
+ description: 'time:convertHoursToDays.description',
+ shortDescription: 'time:convertHoursToDays.shortDescription'
}
});
diff --git a/src/pages/tools/time/convert-seconds-to-time/index.tsx b/src/pages/tools/time/convert-seconds-to-time/index.tsx
index de29718..f877ee9 100644
--- a/src/pages/tools/time/convert-seconds-to-time/index.tsx
+++ b/src/pages/tools/time/convert-seconds-to-time/index.tsx
@@ -82,14 +82,14 @@ export default function SecondsToTime({
updateField
}) => [
{
- title: t('time.convertSecondsToTime.timePadding'),
+ title: t('time:convertSecondsToTime.timePadding'),
component: (
updateField('paddingFlag', val)}
checked={values.paddingFlag}
- title={t('time.convertSecondsToTime.addPadding')}
- description={t('time.convertSecondsToTime.addPaddingDescription')}
+ title={t('time:convertSecondsToTime.addPadding')}
+ description={t('time:convertSecondsToTime.addPaddingDescription')}
/>
)
@@ -107,7 +107,7 @@ export default function SecondsToTime({
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('time.convertSecondsToTime.toolInfo.title', { title }),
+ title: t('time:convertSecondsToTime.toolInfo.title', { title }),
description: longDescription
}}
exampleCards={exampleCards}
diff --git a/src/pages/tools/time/convert-seconds-to-time/meta.ts b/src/pages/tools/time/convert-seconds-to-time/meta.ts
index 1b1e7f1..94fd26a 100644
--- a/src/pages/tools/time/convert-seconds-to-time/meta.ts
+++ b/src/pages/tools/time/convert-seconds-to-time/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('time', {
keywords: ['seconds', 'time', 'convert', 'format'],
component: lazy(() => import('./index')),
i18n: {
- name: 'time.convertSecondsToTime.name',
- description: 'time.convertSecondsToTime.description',
- shortDescription: 'time.convertSecondsToTime.shortDescription'
+ name: 'time:convertSecondsToTime.title',
+ description: 'time:convertSecondsToTime.description',
+ shortDescription: 'time:convertSecondsToTime.shortDescription'
}
});
diff --git a/src/pages/tools/time/convert-time-to-seconds/index.tsx b/src/pages/tools/time/convert-time-to-seconds/index.tsx
index 4d909d5..0f4a8a1 100644
--- a/src/pages/tools/time/convert-time-to-seconds/index.tsx
+++ b/src/pages/tools/time/convert-time-to-seconds/index.tsx
@@ -95,7 +95,7 @@ export default function TimeToSeconds({
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('time.convertTimeToSeconds.toolInfo.title', { title }),
+ title: t('time:convertTimeToSeconds.toolInfo.title', { title }),
description: longDescription
}}
exampleCards={exampleCards}
diff --git a/src/pages/tools/time/convert-time-to-seconds/meta.ts b/src/pages/tools/time/convert-time-to-seconds/meta.ts
index d9ffd3a..ca0bfea 100644
--- a/src/pages/tools/time/convert-time-to-seconds/meta.ts
+++ b/src/pages/tools/time/convert-time-to-seconds/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('time', {
keywords: ['time', 'seconds', 'convert', 'format'],
component: lazy(() => import('./index')),
i18n: {
- name: 'time.convertTimeToSeconds.name',
- description: 'time.convertTimeToSeconds.description',
- shortDescription: 'time.convertTimeToSeconds.shortDescription'
+ name: 'time:convertTimeToSeconds.title',
+ description: 'time:convertTimeToSeconds.description',
+ shortDescription: 'time:convertTimeToSeconds.shortDescription'
}
});
diff --git a/src/pages/tools/time/crontab-guru/meta.ts b/src/pages/tools/time/crontab-guru/meta.ts
index 485a9dd..374b264 100644
--- a/src/pages/tools/time/crontab-guru/meta.ts
+++ b/src/pages/tools/time/crontab-guru/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('time', {
keywords: ['cron', 'schedule', 'automation', 'expression'],
component: lazy(() => import('./index')),
i18n: {
- name: 'time.crontabGuru.name',
- description: 'time.crontabGuru.description',
- shortDescription: 'time.crontabGuru.shortDescription'
+ name: 'time:crontabGuru.title',
+ description: 'time:crontabGuru.description',
+ shortDescription: 'time:crontabGuru.shortDescription'
}
});
diff --git a/src/pages/tools/time/time-between-dates/index.tsx b/src/pages/tools/time/time-between-dates/index.tsx
index 9ed21b7..5e6808f 100644
--- a/src/pages/tools/time/time-between-dates/index.tsx
+++ b/src/pages/tools/time/time-between-dates/index.tsx
@@ -126,7 +126,7 @@ export default function TimeBetweenDates() {
return (
[
{
- title: t('time.timeBetweenDates.startDateTime'),
+ title: t('time:timeBetweenDates.startDateTime'),
component: (
updateField('startDate', val)}
type="date"
/>
updateField('startTime', val)}
type="time"
/>
updateField('startTimezone', val)}
options={timezoneOptions}
@@ -185,23 +185,23 @@ export default function TimeBetweenDates() {
)
},
{
- title: t('time.timeBetweenDates.endDateTime'),
+ title: t('time:timeBetweenDates.endDateTime'),
component: (
updateField('endDate', val)}
type="date"
/>
updateField('endTime', val)}
type="time"
/>
updateField('endTimezone', val)}
options={timezoneOptions}
diff --git a/src/pages/tools/time/time-between-dates/meta.ts b/src/pages/tools/time/time-between-dates/meta.ts
index 41b5073..fbaf80d 100644
--- a/src/pages/tools/time/time-between-dates/meta.ts
+++ b/src/pages/tools/time/time-between-dates/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('time', {
keywords: ['dates', 'time', 'difference', 'duration', 'calculate'],
component: lazy(() => import('./index')),
i18n: {
- name: 'time.timeBetweenDates.name',
- description: 'time.timeBetweenDates.description',
- shortDescription: 'time.timeBetweenDates.shortDescription'
+ name: 'time:timeBetweenDates.title',
+ description: 'time:timeBetweenDates.description',
+ shortDescription: 'time:timeBetweenDates.shortDescription'
}
});
diff --git a/src/pages/tools/time/truncate-clock-time/index.tsx b/src/pages/tools/time/truncate-clock-time/index.tsx
index b96bc0d..9cd58fc 100644
--- a/src/pages/tools/time/truncate-clock-time/index.tsx
+++ b/src/pages/tools/time/truncate-clock-time/index.tsx
@@ -88,50 +88,50 @@ export default function TruncateClockTime({
updateField
}) => [
{
- title: t('time.truncateClockTime.truncationSide'),
+ title: t('time:truncateClockTime.truncationSide'),
component: (
updateField('onlySecond', true)}
checked={values.onlySecond}
- title={t('time.truncateClockTime.truncateOnlySeconds')}
+ title={t('time:truncateClockTime.truncateOnlySeconds')}
description={t(
- 'time.truncateClockTime.truncateOnlySecondsDescription'
+ 'time:truncateClockTime.truncateOnlySecondsDescription'
)}
/>
updateField('onlySecond', false)}
checked={!values.onlySecond}
- title={t('time.truncateClockTime.truncateMinutesAndSeconds')}
+ title={t('time:truncateClockTime.truncateMinutesAndSeconds')}
description={t(
- 'time.truncateClockTime.truncateMinutesAndSecondsDescription'
+ 'time:truncateClockTime.truncateMinutesAndSecondsDescription'
)}
/>
)
},
{
- title: t('time.truncateClockTime.printDroppedComponents'),
+ title: t('time:truncateClockTime.printDroppedComponents'),
component: (
updateField('zeroPrint', val)}
checked={values.zeroPrint}
- title={t('time.truncateClockTime.zeroPrintTruncatedParts')}
- description={t('time.truncateClockTime.zeroPrintDescription')}
+ title={t('time:truncateClockTime.zeroPrintTruncatedParts')}
+ description={t('time:truncateClockTime.zeroPrintDescription')}
/>
)
},
{
- title: t('time.truncateClockTime.timePadding'),
+ title: t('time:truncateClockTime.timePadding'),
component: (
updateField('zeroPadding', val)}
checked={values.zeroPadding}
- title={t('time.truncateClockTime.useZeroPadding')}
- description={t('time.truncateClockTime.zeroPaddingDescription')}
+ title={t('time:truncateClockTime.useZeroPadding')}
+ description={t('time:truncateClockTime.zeroPaddingDescription')}
/>
)
@@ -149,7 +149,7 @@ export default function TruncateClockTime({
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('time.truncateClockTime.toolInfo.title', { title }),
+ title: t('time:truncateClockTime.toolInfo.title', { title }),
description: longDescription
}}
exampleCards={exampleCards}
diff --git a/src/pages/tools/time/truncate-clock-time/meta.ts b/src/pages/tools/time/truncate-clock-time/meta.ts
index 6e9bc1a..8a847e1 100644
--- a/src/pages/tools/time/truncate-clock-time/meta.ts
+++ b/src/pages/tools/time/truncate-clock-time/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('time', {
keywords: ['time', 'truncate', 'clock', 'round', 'precision'],
component: lazy(() => import('./index')),
i18n: {
- name: 'time.truncateClockTime.name',
- description: 'time.truncateClockTime.description',
- shortDescription: 'time.truncateClockTime.shortDescription'
+ name: 'time:truncateClockTime.title',
+ description: 'time:truncateClockTime.description',
+ shortDescription: 'time:truncateClockTime.shortDescription'
}
});
diff --git a/src/pages/tools/video/change-speed/index.tsx b/src/pages/tools/video/change-speed/index.tsx
index 684d1ba..aac2355 100644
--- a/src/pages/tools/video/change-speed/index.tsx
+++ b/src/pages/tools/video/change-speed/index.tsx
@@ -130,13 +130,13 @@ export default function ChangeSpeed({
updateField
}) => [
{
- title: t('video.changeSpeed.newVideoSpeed'),
+ title: t('video:changeSpeed.newVideoSpeed'),
component: (
updateField('newSpeed', Number(val))}
- description={t('video.changeSpeed.defaultMultiplier')}
+ description={t('video:changeSpeed.defaultMultiplier')}
type="number"
/>
@@ -151,19 +151,19 @@ export default function ChangeSpeed({
}
resultComponent={
loading ? (
) : (
@@ -174,7 +174,7 @@ export default function ChangeSpeed({
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('video.changeSpeed.toolInfo.title', { title }),
+ title: t('video:changeSpeed.toolInfo.title', { title }),
description: longDescription
}}
/>
diff --git a/src/pages/tools/video/change-speed/meta.ts b/src/pages/tools/video/change-speed/meta.ts
index c3c1b7a..f6df94b 100644
--- a/src/pages/tools/video/change-speed/meta.ts
+++ b/src/pages/tools/video/change-speed/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('video', {
keywords: ['video', 'speed', 'playback', 'fast', 'slow'],
component: lazy(() => import('./index')),
i18n: {
- name: 'video.changeSpeed.name',
- description: 'video.changeSpeed.description',
- shortDescription: 'video.changeSpeed.shortDescription'
+ name: 'video:changeSpeed.title',
+ description: 'video:changeSpeed.description',
+ shortDescription: 'video:changeSpeed.shortDescription'
}
});
diff --git a/src/pages/tools/video/compress/index.tsx b/src/pages/tools/video/compress/index.tsx
index 960f282..a383c99 100644
--- a/src/pages/tools/video/compress/index.tsx
+++ b/src/pages/tools/video/compress/index.tsx
@@ -102,7 +102,7 @@ export default function CompressVideo({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('video.compress.resolution'),
+ title: t('video:compress.resolution'),
component: (
{resolutionOptions.map((option) => (
@@ -119,7 +119,7 @@ export default function CompressVideo({ title }: ToolComponentProps) {
)
},
{
- title: t('video.compress.quality'),
+ title: t('video:compress.quality'),
component: (
@@ -162,16 +162,16 @@ export default function CompressVideo({ title }: ToolComponentProps) {
}
resultComponent={
}
initialValues={initialValues}
diff --git a/src/pages/tools/video/compress/meta.ts b/src/pages/tools/video/compress/meta.ts
index 322b9a5..e96b7bc 100644
--- a/src/pages/tools/video/compress/meta.ts
+++ b/src/pages/tools/video/compress/meta.ts
@@ -18,8 +18,8 @@ export const tool = defineTool('video', {
],
component: lazy(() => import('./index')),
i18n: {
- name: 'video.compress.name',
- description: 'video.compress.description',
- shortDescription: 'video.compress.shortDescription'
+ name: 'video:compress.title',
+ description: 'video:compress.description',
+ shortDescription: 'video:compress.shortDescription'
}
});
diff --git a/src/pages/tools/video/crop-video/index.tsx b/src/pages/tools/video/crop-video/index.tsx
index 216e070..30aea5f 100644
--- a/src/pages/tools/video/crop-video/index.tsx
+++ b/src/pages/tools/video/crop-video/index.tsx
@@ -32,21 +32,21 @@ export default function CropVideo({ title }: ToolComponentProps) {
if (!videoDimensions) return '';
if (values.x < 0 || values.y < 0) {
- return t('video.cropVideo.errorNonNegativeCoordinates');
+ return t('video:cropVideo.errorNonNegativeCoordinates');
}
if (values.width <= 0 || values.height <= 0) {
- return t('video.cropVideo.errorPositiveDimensions');
+ return t('video:cropVideo.errorPositiveDimensions');
}
if (values.x + values.width > videoDimensions.width) {
- return t('video.cropVideo.errorBeyondWidth', {
+ return t('video:cropVideo.errorBeyondWidth', {
width: videoDimensions.width
});
}
if (values.y + values.height > videoDimensions.height) {
- return t('video.cropVideo.errorBeyondHeight', {
+ return t('video:cropVideo.errorBeyondHeight', {
height: videoDimensions.height
});
}
@@ -74,7 +74,7 @@ export default function CropVideo({ title }: ToolComponentProps) {
setResult(croppedFile);
} catch (error) {
console.error('Error cropping video:', error);
- setProcessingError(t('video.cropVideo.errorCroppingVideo'));
+ setProcessingError(t('video:cropVideo.errorCroppingVideo'));
} finally {
setLoading(false);
}
@@ -90,26 +90,26 @@ export default function CropVideo({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('video.cropVideo.videoInformation'),
+ title: t('video:cropVideo.videoInformation'),
component: (
{videoDimensions ? (
- {t('video.cropVideo.videoDimensions', {
+ {t('video:cropVideo.videoDimensions', {
width: videoDimensions.width,
height: videoDimensions.height
})}
) : (
- {t('video.cropVideo.loadVideoForDimensions')}
+ {t('video:cropVideo.loadVideoForDimensions')}
)}
)
},
{
- title: t('video.cropVideo.cropCoordinates'),
+ title: t('video:cropVideo.cropCoordinates'),
component: (
{processingError && (
@@ -119,7 +119,7 @@ export default function CropVideo({ title }: ToolComponentProps) {
)}
updateField('x', parseInt(e.target.value) || 0)}
@@ -127,7 +127,7 @@ export default function CropVideo({ title }: ToolComponentProps) {
inputProps={{ min: 0 }}
/>
updateField('y', parseInt(e.target.value) || 0)}
@@ -137,7 +137,7 @@ export default function CropVideo({ title }: ToolComponentProps) {
@@ -147,7 +147,7 @@ export default function CropVideo({ title }: ToolComponentProps) {
inputProps={{ min: 1 }}
/>
@@ -190,7 +190,7 @@ export default function CropVideo({ title }: ToolComponentProps) {
.catch((error) => {
console.error('Error getting video dimensions:', error);
setProcessingError(
- t('video.cropVideo.errorLoadingDimensions')
+ t('video:cropVideo.errorLoadingDimensions')
);
});
} else {
@@ -199,20 +199,20 @@ export default function CropVideo({ title }: ToolComponentProps) {
}
setInput(video);
}}
- title={t('video.cropVideo.inputTitle')}
+ title={t('video:cropVideo.inputTitle')}
/>
)}
resultComponent={
loading ? (
) : (
diff --git a/src/pages/tools/video/crop-video/meta.ts b/src/pages/tools/video/crop-video/meta.ts
index 1e78ea6..92b422d 100644
--- a/src/pages/tools/video/crop-video/meta.ts
+++ b/src/pages/tools/video/crop-video/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('video', {
keywords: ['video', 'crop', 'trim', 'edit', 'resize'],
component: lazy(() => import('./index')),
i18n: {
- name: 'video.cropVideo.name',
- description: 'video.cropVideo.description',
- shortDescription: 'video.cropVideo.shortDescription'
+ name: 'video:cropVideo.title',
+ description: 'video:cropVideo.description',
+ shortDescription: 'video:cropVideo.shortDescription'
}
});
diff --git a/src/pages/tools/video/flip/index.tsx b/src/pages/tools/video/flip/index.tsx
index 7a2b2ac..a40c5fe 100644
--- a/src/pages/tools/video/flip/index.tsx
+++ b/src/pages/tools/video/flip/index.tsx
@@ -60,7 +60,7 @@ export default function FlipVideo({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('video.flip.orientation'),
+ title: t('video:flip.orientation'),
component: (
{orientationOptions.map((orientationOption) => (
@@ -86,20 +86,20 @@ export default function FlipVideo({ title }: ToolComponentProps) {
}
resultComponent={
loading ? (
) : (
diff --git a/src/pages/tools/video/flip/meta.ts b/src/pages/tools/video/flip/meta.ts
index e7679e6..8607810 100644
--- a/src/pages/tools/video/flip/meta.ts
+++ b/src/pages/tools/video/flip/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('video', {
keywords: ['video', 'flip', 'mirror', 'horizontal', 'vertical'],
component: lazy(() => import('./index')),
i18n: {
- name: 'video.flip.name',
- description: 'video.flip.description',
- shortDescription: 'video.flip.shortDescription'
+ name: 'video:flip.title',
+ description: 'video:flip.description',
+ shortDescription: 'video:flip.shortDescription'
}
});
diff --git a/src/pages/tools/video/gif/change-speed/meta.ts b/src/pages/tools/video/gif/change-speed/meta.ts
index bee9618..3e36c2d 100644
--- a/src/pages/tools/video/gif/change-speed/meta.ts
+++ b/src/pages/tools/video/gif/change-speed/meta.ts
@@ -12,7 +12,7 @@ export const tool = defineTool('gif', {
keywords: ['gif', 'speed', 'animation', 'fast', 'slow'],
component: lazy(() => import('./index')),
i18n: {
- name: 'gif.changeSpeed.name',
+ name: 'gif.changeSpeed.title',
description: 'gif.changeSpeed.description',
shortDescription: 'gif.changeSpeed.shortDescription'
}
diff --git a/src/pages/tools/video/loop/index.tsx b/src/pages/tools/video/loop/index.tsx
index c8e951d..ecd7e4b 100644
--- a/src/pages/tools/video/loop/index.tsx
+++ b/src/pages/tools/video/loop/index.tsx
@@ -45,7 +45,7 @@ export default function Loop({ title, longDescription }: ToolComponentProps) {
updateField
}) => [
{
- title: t('video.loop.loops'),
+ title: t('video:loop.loops'),
component: (
)
@@ -68,14 +68,14 @@ export default function Loop({ title, longDescription }: ToolComponentProps) {
loading ? (
) : (
)
@@ -86,7 +86,7 @@ export default function Loop({ title, longDescription }: ToolComponentProps) {
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('video.loop.toolInfo.title', { title }),
+ title: t('video:loop.toolInfo.title', { title }),
description: longDescription
}}
/>
diff --git a/src/pages/tools/video/loop/meta.ts b/src/pages/tools/video/loop/meta.ts
index bdfe19a..1abf644 100644
--- a/src/pages/tools/video/loop/meta.ts
+++ b/src/pages/tools/video/loop/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('video', {
keywords: ['video', 'loop', 'repeat', 'continuous'],
component: lazy(() => import('./index')),
i18n: {
- name: 'video.loop.name',
- description: 'video.loop.description',
- shortDescription: 'video.loop.shortDescription'
+ name: 'video:loop.title',
+ description: 'video:loop.description',
+ shortDescription: 'video:loop.shortDescription'
}
});
diff --git a/src/pages/tools/video/rotate/index.tsx b/src/pages/tools/video/rotate/index.tsx
index f25d87c..ea072e3 100644
--- a/src/pages/tools/video/rotate/index.tsx
+++ b/src/pages/tools/video/rotate/index.tsx
@@ -57,7 +57,7 @@ export default function RotateVideo({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('video.rotate.rotation'),
+ title: t('video:rotate.rotation'),
component: (
{angleOptions.map((angleOption) => (
@@ -83,20 +83,20 @@ export default function RotateVideo({ title }: ToolComponentProps) {
}
resultComponent={
loading ? (
) : (
diff --git a/src/pages/tools/video/rotate/meta.ts b/src/pages/tools/video/rotate/meta.ts
index 4afce0d..0df8d33 100644
--- a/src/pages/tools/video/rotate/meta.ts
+++ b/src/pages/tools/video/rotate/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('video', {
keywords: ['video', 'rotate', 'orientation', 'degrees'],
component: lazy(() => import('./index')),
i18n: {
- name: 'video.rotate.name',
- description: 'video.rotate.description',
- shortDescription: 'video.rotate.shortDescription'
+ name: 'video:rotate.title',
+ description: 'video:rotate.description',
+ shortDescription: 'video:rotate.shortDescription'
}
});
diff --git a/src/pages/tools/video/trim/index.tsx b/src/pages/tools/video/trim/index.tsx
index 2ea506b..cc260cf 100644
--- a/src/pages/tools/video/trim/index.tsx
+++ b/src/pages/tools/video/trim/index.tsx
@@ -87,7 +87,7 @@ export default function TrimVideo({ title }: ToolComponentProps) {
updateField
}) => [
{
- title: t('video.trim.timestamps'),
+ title: t('video:trim.timestamps'),
component: (
)
@@ -118,7 +118,7 @@ export default function TrimVideo({ title }: ToolComponentProps) {
{
setFieldValue('trimStart', trimStart);
@@ -131,7 +131,7 @@ export default function TrimVideo({ title }: ToolComponentProps) {
}}
resultComponent={
diff --git a/src/pages/tools/video/trim/meta.ts b/src/pages/tools/video/trim/meta.ts
index 674b71b..dee99bf 100644
--- a/src/pages/tools/video/trim/meta.ts
+++ b/src/pages/tools/video/trim/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('video', {
keywords: ['video', 'trim', 'cut', 'edit', 'time'],
component: lazy(() => import('./index')),
i18n: {
- name: 'video.trim.name',
- description: 'video.trim.description',
- shortDescription: 'video.trim.shortDescription'
+ name: 'video:trim.title',
+ description: 'video:trim.description',
+ shortDescription: 'video:trim.shortDescription'
}
});
diff --git a/src/pages/tools/video/video-to-gif/meta.ts b/src/pages/tools/video/video-to-gif/meta.ts
index c8bce7d..467d920 100644
--- a/src/pages/tools/video/video-to-gif/meta.ts
+++ b/src/pages/tools/video/video-to-gif/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('video', {
keywords: ['video', 'gif', 'convert', 'animated', 'image'],
component: lazy(() => import('./index')),
i18n: {
- name: 'video.videoToGif.name',
- description: 'video.videoToGif.description',
- shortDescription: 'video.videoToGif.shortDescription'
+ name: 'video:videoToGif.title',
+ description: 'video:videoToGif.description',
+ shortDescription: 'video:videoToGif.shortDescription'
}
});
diff --git a/src/pages/tools/xml/xml-beautifier/index.tsx b/src/pages/tools/xml/xml-beautifier/index.tsx
index 0e0fcfd..8ad6099 100644
--- a/src/pages/tools/xml/xml-beautifier/index.tsx
+++ b/src/pages/tools/xml/xml-beautifier/index.tsx
@@ -39,15 +39,15 @@ export default function XmlBeautifier({
input={input}
inputComponent={
}
resultComponent={
@@ -58,7 +58,7 @@ export default function XmlBeautifier({
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('xml.beautifier.toolInfo.title', { title }),
+ title: t('xml:beautifier.toolInfo.title', { title }),
description: longDescription
}}
/>
diff --git a/src/pages/tools/xml/xml-beautifier/meta.ts b/src/pages/tools/xml/xml-beautifier/meta.ts
index 4242efa..3c000b8 100644
--- a/src/pages/tools/xml/xml-beautifier/meta.ts
+++ b/src/pages/tools/xml/xml-beautifier/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('xml', {
keywords: ['xml', 'beautify', 'format', 'code', 'indent'],
component: lazy(() => import('./index')),
i18n: {
- name: 'xml.xmlBeautifier.name',
- description: 'xml.xmlBeautifier.description',
- shortDescription: 'xml.xmlBeautifier.shortDescription'
+ name: 'xml:xmlBeautifier.title',
+ description: 'xml:xmlBeautifier.description',
+ shortDescription: 'xml:xmlBeautifier.shortDescription'
}
});
diff --git a/src/pages/tools/xml/xml-validator/index.tsx b/src/pages/tools/xml/xml-validator/index.tsx
index 34d5aa3..f691a24 100644
--- a/src/pages/tools/xml/xml-validator/index.tsx
+++ b/src/pages/tools/xml/xml-validator/index.tsx
@@ -48,7 +48,7 @@ export default function XmlValidator({
}
resultComponent={}
@@ -58,8 +58,8 @@ export default function XmlValidator({
setInput={setInput}
compute={compute}
toolInfo={{
- title: t('xml.xmlValidator.toolInfo.title'),
- description: t('xml.xmlValidator.toolInfo.description')
+ title: t('xml:xmlValidator.toolInfo.title'),
+ description: t('xml:xmlValidator.toolInfo.description')
}}
/>
);
diff --git a/src/pages/tools/xml/xml-validator/meta.ts b/src/pages/tools/xml/xml-validator/meta.ts
index 31f7c51..004a563 100644
--- a/src/pages/tools/xml/xml-validator/meta.ts
+++ b/src/pages/tools/xml/xml-validator/meta.ts
@@ -11,8 +11,8 @@ export const tool = defineTool('xml', {
keywords: ['xml', 'validate', 'check', 'syntax', 'errors'],
component: lazy(() => import('./index')),
i18n: {
- name: 'xml.xmlValidator.name',
- description: 'xml.xmlValidator.description',
- shortDescription: 'xml.xmlValidator.shortDescription'
+ name: 'xml:xmlValidator.title',
+ description: 'xml:xmlValidator.description',
+ shortDescription: 'xml:xmlValidator.shortDescription'
}
});