Compare commits

...

16 commits

Author SHA1 Message Date
Ibrahima G. Coulibaly
5ba8955890 chore: sync locales
Some checks are pending
CI / test-and-build (push) Waiting to run
CI / Playwright Tests (push) Waiting to run
CI / Build and Push Multi-Platform Docker Image (push) Blocked by required conditions
CI / deploy (push) Blocked by required conditions
2025-07-15 17:20:32 +01:00
Ibrahima G. Coulibaly
f8189fdc23 fix: show Use this tool only if medium breakpoint 2025-07-15 15:56:21 +01:00
Ibrahima G. Coulibaly
c90283b571 fix: create-tool.mjs to use i18n object 2025-07-15 14:42:06 +01:00
Ibrahima G. Coulibaly
aed1681b7f chore: delete unused i18n json files 2025-07-15 14:23:44 +01:00
Ibrahima G. Coulibaly
d16cd41568
Merge pull request #192 from y1hao/bookmark
Implement bookmarking
2025-07-15 14:16:26 +01:00
Ibrahima G. Coulibaly
67e092ff1c fix: translations 2025-07-15 14:15:46 +01:00
Ibrahima G. Coulibaly
73224021d6 Merge branch 'main' of https://github.com/iib0011/omni-tools into fork/y1hao/bookmark
# Conflicts:
#	src/components/Hero.tsx
#	src/components/ToolHeader.tsx
#	src/components/ToolLayout.tsx
#	src/tools/defineTool.tsx
2025-07-15 14:08:42 +01:00
Ibrahima G. Coulibaly
1031db7ed2 chore: refine bookmarking 2025-07-15 14:01:38 +01:00
Yihao Wang
afc61e6f4c Fix typing 2025-07-14 19:14:20 +12:00
Yihao Wang
911057d560 Clean up 2025-07-14 14:18:15 +12:00
Yihao Wang
5b98dda19b Allow unbookmarking from the card 2025-07-14 14:13:52 +12:00
Yihao Wang
03d49e384f Add bookmark button to tool page 2025-07-14 14:02:17 +12:00
Yihao Wang
a50028e1fb Improve styling 2025-07-14 13:35:48 +12:00
Yihao Wang
989aa7958e Fix bookmarked tools retrieval 2025-07-14 00:11:17 +12:00
Yihao Wang
0d3a17a923 Implement bookmarking 2025-07-13 23:49:26 +12:00
Yihao Wang
0e09e9e027 Add bookmark helper functions 2025-07-13 22:50:26 +12:00
44 changed files with 1993 additions and 3145 deletions

286
.idea/workspace.xml generated
View file

@ -4,17 +4,22 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="b30e2810-c4c1-4aad-b134-794e52cc1c7d" name="Changes" comment="docs: translation docs">
<list default="true" id="b30e2810-c4c1-4aad-b134-794e52cc1c7d" name="Changes" comment="fix: create-tool.mjs to use i18n object">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/components/Navbar/index.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/components/Navbar/index.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/components/ToolHeader.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/components/ToolHeader.tsx" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="JavaScript File" />
</list>
</option>
</component>
<component name="Git.Merge.Settings">
<option name="BRANCH" value="origin/main" />
</component>
@ -22,7 +27,7 @@
<option name="PUSH_AUTO_UPDATE" value="true" />
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="chesterking" />
<entry key="$PROJECT_DIR$" value="fork/y1hao/bookmark" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@ -41,178 +46,185 @@
&quot;state&quot;: &quot;OPEN&quot;
}
}</component>
<component name="GitHubPullRequestState">{
&quot;prStates&quot;: [
<component name="GitHubPullRequestState"><![CDATA[{
"prStates": [
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts51PkS9&quot;,
&quot;number&quot;: 22
"id": {
"id": "PR_kwDOMJIfts51PkS9",
"number": 22
},
&quot;lastSeen&quot;: 1741207144695
"lastSeen": 1741207144695
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6NiNYl&quot;,
&quot;number&quot;: 32
"id": {
"id": "PR_kwDOMJIfts6NiNYl",
"number": 32
},
&quot;lastSeen&quot;: 1741209723869
"lastSeen": 1741209723869
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6Nheyd&quot;,
&quot;number&quot;: 31
"id": {
"id": "PR_kwDOMJIfts6Nheyd",
"number": 31
},
&quot;lastSeen&quot;: 1741213371410
"lastSeen": 1741213371410
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6NmRBs&quot;,
&quot;number&quot;: 33
"id": {
"id": "PR_kwDOMJIfts6NmRBs",
"number": 33
},
&quot;lastSeen&quot;: 1741282429036
"lastSeen": 1741282429036
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts5zyFTs&quot;,
&quot;number&quot;: 15
"id": {
"id": "PR_kwDOMJIfts5zyFTs",
"number": 15
},
&quot;lastSeen&quot;: 1741535540953
"lastSeen": 1741535540953
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6QQB3c&quot;,
&quot;number&quot;: 59
"id": {
"id": "PR_kwDOMJIfts6QQB3c",
"number": 59
},
&quot;lastSeen&quot;: 1743018960900
"lastSeen": 1743018960900
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6QMPEg&quot;,
&quot;number&quot;: 58
"id": {
"id": "PR_kwDOMJIfts6QMPEg",
"number": 58
},
&quot;lastSeen&quot;: 1743019452983
"lastSeen": 1743019452983
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6QZvRI&quot;,
&quot;number&quot;: 61
"id": {
"id": "PR_kwDOMJIfts6QZvRI",
"number": 61
},
&quot;lastSeen&quot;: 1743103196866
"lastSeen": 1743103196866
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6QqPrQ&quot;,
&quot;number&quot;: 73
"id": {
"id": "PR_kwDOMJIfts6QqPrQ",
"number": 73
},
&quot;lastSeen&quot;: 1743265865001
"lastSeen": 1743265865001
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6Qp5nI&quot;,
&quot;number&quot;: 72
"id": {
"id": "PR_kwDOMJIfts6Qp5nI",
"number": 72
},
&quot;lastSeen&quot;: 1743338472110
"lastSeen": 1743338472110
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6QsjlS&quot;,
&quot;number&quot;: 76
"id": {
"id": "PR_kwDOMJIfts6QsjlS",
"number": 76
},
&quot;lastSeen&quot;: 1743352150953
"lastSeen": 1743352150953
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6Q0JBe&quot;,
&quot;number&quot;: 82
"id": {
"id": "PR_kwDOMJIfts6Q0JBe",
"number": 82
},
&quot;lastSeen&quot;: 1743470267269
"lastSeen": 1743470267269
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6UE9-x&quot;,
&quot;number&quot;: 102
"id": {
"id": "PR_kwDOMJIfts6UE9-x",
"number": 102
},
&quot;lastSeen&quot;: 1747171977348
"lastSeen": 1747171977348
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6XPua_&quot;,
&quot;number&quot;: 117
"id": {
"id": "PR_kwDOMJIfts6XPua_",
"number": 117
},
&quot;lastSeen&quot;: 1747929835864
"lastSeen": 1747929835864
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6XY-mZ&quot;,
&quot;number&quot;: 119
"id": {
"id": "PR_kwDOMJIfts6XY-mZ",
"number": 119
},
&quot;lastSeen&quot;: 1748028108508
"lastSeen": 1748028108508
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6Xdz4n&quot;,
&quot;number&quot;: 120
"id": {
"id": "PR_kwDOMJIfts6Xdz4n",
"number": 120
},
&quot;lastSeen&quot;: 1748282672214
"lastSeen": 1748282672214
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6X_zxl&quot;,
&quot;number&quot;: 131
"id": {
"id": "PR_kwDOMJIfts6X_zxl",
"number": 131
},
&quot;lastSeen&quot;: 1748881279494
"lastSeen": 1748881279494
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6bhieT&quot;,
&quot;number&quot;: 152
"id": {
"id": "PR_kwDOMJIfts6bhieT",
"number": 152
},
&quot;lastSeen&quot;: 1751848489082
"lastSeen": 1751848489082
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6dOyRk&quot;,
&quot;number&quot;: 154
"id": {
"id": "PR_kwDOMJIfts6dOyRk",
"number": 154
},
&quot;lastSeen&quot;: 1751849436454
"lastSeen": 1751849436454
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6cHjNi&quot;,
&quot;number&quot;: 153
"id": {
"id": "PR_kwDOMJIfts6cHjNi",
"number": 153
},
&quot;lastSeen&quot;: 1751849501498
"lastSeen": 1751849501498
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6Zs1FN&quot;,
&quot;number&quot;: 145
"id": {
"id": "PR_kwDOMJIfts6Zs1FN",
"number": 145
},
&quot;lastSeen&quot;: 1751849770308
"lastSeen": 1751849770308
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6bgKi9&quot;,
&quot;number&quot;: 150
"id": {
"id": "PR_kwDOMJIfts6bgKi9",
"number": 150
},
&quot;lastSeen&quot;: 1751850367300
"lastSeen": 1751850367300
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6eUKC-&quot;,
&quot;number&quot;: 176
"id": {
"id": "PR_kwDOMJIfts6eUKC-",
"number": 176
},
&quot;lastSeen&quot;: 1752158748013
"lastSeen": 1752158748013
},
{
&quot;id&quot;: {
&quot;id&quot;: &quot;PR_kwDOMJIfts6eqzP7&quot;,
&quot;number&quot;: 190
"id": {
"id": "PR_kwDOMJIfts6eqzP7",
"number": 190
},
&quot;lastSeen&quot;: 1752404173008
"lastSeen": 1752404173008
},
{
"id": {
"id": "PR_kwDOMJIfts6et6vx",
"number": 192
},
"lastSeen": 1752585709582
}
]
}</component>
}]]></component>
<component name="GithubPullRequestsUISettings">{
&quot;selectedUrlAndAccountId&quot;: {
&quot;url&quot;: &quot;https://github.com/iib0011/omni-tools.git&quot;,
@ -272,7 +284,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": "#190 on fork/AshAnand34/en-hi-translation",
"git-widget-placeholder": "main",
"ignore.virus.scanning.warn.message": "true",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "C:/Users/Ibrahima/IdeaProjects/omni-tools",
@ -326,7 +338,7 @@
<recent name="C:\Users\Ibrahima\IdeaProjects\omni-tools\src\pages\categories" />
</key>
</component>
<component name="RunManager" selected="npm.dev">
<component name="RunManager" selected="npm.i18n:pull">
<configuration name="generatePassword" type="JavaScriptTestRunnerVitest" temporary="true" nameIsGenerated="true">
<node-interpreter value="project" />
<vitest-package value="$PROJECT_DIR$/node_modules/vitest" />
@ -400,11 +412,11 @@
</list>
<recent_temporary>
<list>
<item itemvalue="npm.dev" />
<item itemvalue="npm.i18n:pull" />
<item itemvalue="Vitest.generatePassword" />
<item itemvalue="npm.dev" />
<item itemvalue="npm.i18n:sync" />
<item itemvalue="npm.i18n:push" />
<item itemvalue="npm.i18n:pull" />
</list>
</recent_temporary>
</component>
@ -519,30 +531,6 @@
<workItem from="1752493585622" duration="11629000" />
<workItem from="1752507105323" duration="9008000" />
</task>
<task id="LOCAL-00184" summary="refactor: lib">
<option name="closed" value="true" />
<created>1743644942488</created>
<option name="number" value="00184" />
<option name="presentableId" value="LOCAL-00184" />
<option name="project" value="LOCAL" />
<updated>1743644942488</updated>
</task>
<task id="LOCAL-00185" summary="fix: path">
<option name="closed" value="true" />
<created>1743645074051</created>
<option name="number" value="00185" />
<option name="presentableId" value="LOCAL-00185" />
<option name="project" value="LOCAL" />
<updated>1743645074051</updated>
</task>
<task id="LOCAL-00186" summary="fix: vite worker format">
<option name="closed" value="true" />
<created>1743647707334</created>
<option name="number" value="00186" />
<option name="presentableId" value="LOCAL-00186" />
<option name="project" value="LOCAL" />
<updated>1743647707334</updated>
</task>
<task id="LOCAL-00187" summary="fix: tests">
<option name="closed" value="true" />
<created>1743691399769</created>
@ -911,7 +899,31 @@
<option name="project" value="LOCAL" />
<updated>1752515675314</updated>
</task>
<option name="localTasksCounter" value="233" />
<task id="LOCAL-00233" summary="fix: translations">
<option name="closed" value="true" />
<created>1752585351036</created>
<option name="number" value="00233" />
<option name="presentableId" value="LOCAL-00233" />
<option name="project" value="LOCAL" />
<updated>1752585351036</updated>
</task>
<task id="LOCAL-00234" summary="chore: delete unused i18n json files">
<option name="closed" value="true" />
<created>1752585829343</created>
<option name="number" value="00234" />
<option name="presentableId" value="LOCAL-00234" />
<option name="project" value="LOCAL" />
<updated>1752585829343</updated>
</task>
<task id="LOCAL-00235" summary="fix: create-tool.mjs to use i18n object">
<option name="closed" value="true" />
<created>1752586932190</created>
<option name="number" value="00235" />
<option name="presentableId" value="LOCAL-00235" />
<option name="project" value="LOCAL" />
<updated>1752586932190</updated>
</task>
<option name="localTasksCounter" value="236" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@ -958,8 +970,6 @@
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_NEW_TODO" value="false" />
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
<MESSAGE value="chore: new logo and font" />
<MESSAGE value="chore: white logo" />
<MESSAGE value="chore: png icon" />
<MESSAGE value="fix: remove xml viewer" />
<MESSAGE value="feat: convert to jpg" />
@ -979,11 +989,13 @@
<MESSAGE value="fix: tsc" />
<MESSAGE value="chore: remove unnecessary" />
<MESSAGE value="chore: saveMissing" />
<MESSAGE value="fix: translations" />
<MESSAGE value="fix: translation related behaviors" />
<MESSAGE value="feat: password generator to test translation" />
<MESSAGE value="docs: translation docs" />
<option name="LAST_COMMIT_MESSAGE" value="docs: translation docs" />
<MESSAGE value="fix: translations" />
<MESSAGE value="chore: delete unused i18n json files" />
<MESSAGE value="fix: create-tool.mjs to use i18n object" />
<option name="LAST_COMMIT_MESSAGE" value="fix: create-tool.mjs to use i18n object" />
</component>
<component name="VgoProject">
<integration-enabled>false</integration-enabled>

View file

@ -1,5 +1,42 @@
{
"changeSpeed": {
"description": "Modifier la vitesse de lecture des fichiers audio. Accélérer ou ralentir le son tout en conservant la hauteur."
"description": "Modifier la vitesse de lecture des fichiers audio. Accélérer ou ralentir le son tout en conservant la hauteur.",
"inputTitle": "Entrée audio",
"newAudioSpeed": "Nouvelle vitesse audio",
"outputFormat": "Format de sortie",
"resultTitle": "Audio édité",
"settingSpeed": "Réglage de la vitesse",
"shortDescription": "Modifier la vitesse des fichiers audio",
"speedDescription": "Multiplicateur par défaut : 2 signifie 2x plus rapide",
"title": "Changer la vitesse audio",
"toolInfo": {
"title": "Qu'est-ce que {{title}}?"
}
},
"extractAudio": {
"description": "Extraire la piste audio des fichiers vidéo.",
"extractingAudio": "Extraction audio",
"inputTitle": "Entrée vidéo",
"outputFormat": "Format de sortie",
"outputFormatDescription": "Sélectionnez le format dans lequel l'audio doit être extrait.",
"resultTitle": "Audio extrait",
"shortDescription": "Extrayez l'audio des fichiers vidéo (MP4, MOV, etc.) vers AAC, MP3 ou WAV.",
"title": "Extraire l'audio d'une vidéo",
"toolInfo": {
"description": "Cet outil vous permet d'extraire la piste audio de vos fichiers vidéo. Vous pouvez choisir parmi différents formats audio, notamment AAC, MP3 et WAV.",
"title": "Qu'est-ce que {{title}}?"
}
},
"mergeAudio": {
"description": "Combinez plusieurs fichiers audio en un seul fichier audio en les concaténant en séquence.",
"longDescription": "Cet outil vous permet de fusionner plusieurs fichiers audio en un seul fichier en les concaténant dans l'ordre de leur mise en ligne. Idéal pour combiner des segments de podcast, des morceaux de musique ou tout autre fichier audio à assembler. Compatible avec différents formats audio, dont MP3, AAC et WAV.",
"shortDescription": "Fusionnez plusieurs fichiers audio en un seul (MP3, AAC, WAV).",
"title": "Fusionner l'audio"
},
"trim": {
"description": "Coupez et rognez des fichiers audio pour extraire des segments spécifiques en spécifiant les heures de début et de fin.",
"longDescription": "Cet outil vous permet de découper des fichiers audio en spécifiant les heures de début et de fin. Vous pouvez extraire des segments spécifiques de fichiers audio plus longs, supprimer des parties inutiles ou créer des clips plus courts. Il prend en charge divers formats audio, dont MP3, AAC et WAV. Idéal pour le montage de podcasts, la production musicale ou tout autre besoin d'édition audio.",
"shortDescription": "Découpez des fichiers audio pour extraire des segments de temps spécifiques (MP3, AAC, WAV).",
"title": "Couper le son"
}
}

View file

@ -1 +1,114 @@
{}
{
"changeCsvSeparator": {
"description": "Modifiez le délimiteur/séparateur dans les fichiers CSV. Convertissez vos fichiers entre différents formats CSV, comme la virgule, le point-virgule, la tabulation ou des séparateurs personnalisés.",
"shortDescription": "Modifier le délimiteur du fichier CSV",
"title": "Changer le séparateur CSV"
},
"csvRowsToColumns": {
"description": "Cet outil convertit les lignes d'un fichier CSV (valeurs séparées par des virgules) en colonnes. Il extrait les lignes horizontales du fichier CSV d'entrée une par une, les fait pivoter de 90 degrés et les affiche sous forme de colonnes verticales, l'une après l'autre, séparées par des virgules.', longDescription: 'Cet outil convertit les lignes d'un fichier CSV (valeurs séparées par des virgules) en colonnes. Par exemple, si les données CSV d'entrée comportent 6 lignes, la sortie comportera 6 colonnes et les éléments des lignes seront disposés de haut en bas. Dans un fichier CSV bien formé, le nombre de valeurs par ligne est le même. Cependant, si des lignes contiennent des champs manquants, le programme peut les corriger et vous pouvez choisir parmi les options disponibles : remplir les données manquantes avec des éléments vides ou remplacer les données manquantes par des éléments personnalisés, tels que « manquant », « ? » ou « x ». Pendant le processus de conversion, l'outil nettoie également le fichier CSV des informations inutiles, telles que les lignes vides (c'est-à-dire sans informations visibles) et les commentaires. Pour aider l'outil à identifier correctement les commentaires, vous pouvez spécifier dans les options le symbole au début d'une ligne qui démarre un commentaire. Ce symbole est généralement un dièse « # » ou une double barre oblique « // ». C'est incroyable !",
"longDescription": "Cet outil convertit les lignes d'un fichier CSV (valeurs séparées par des virgules) en colonnes. Par exemple, si les données CSV d'entrée comportent six lignes, le résultat comportera six colonnes et les éléments des lignes seront disposés de haut en bas. Dans un fichier CSV bien formé, le nombre de valeurs par ligne est identique. Cependant, si des champs manquent dans certaines lignes, le programme peut les corriger et vous pouvez choisir parmi les options disponibles : compléter les données manquantes avec des éléments vides ou les remplacer par des éléments personnalisés, tels que",
"shortDescription": "Convertissez les lignes CSV en colonnes.",
"title": "Convertir des lignes CSV en colonnes"
},
"csvToJson": {
"columnSeparator": "Séparateur de colonnes (par exemple, , ; \\t)",
"commentSymbol": "Symbole de commentaire (par exemple, #)",
"conversionOptions": "Options de conversion",
"description": "Convertissez des fichiers CSV au format JSON avec des options personnalisables pour les délimiteurs, les guillemets et le formatage de sortie. Prise en charge des en-têtes, des commentaires et de la conversion de type dynamique.",
"dynamicTypes": "Types dynamiques",
"dynamicTypesDescription": "Convertir automatiquement les nombres et les booléens",
"errorParsing": "Erreur lors de l'analyse du fichier CSV : {{error}}",
"fieldQuote": "Citation de champ (par exemple, \")",
"inputCsvFormat": "Format d'entrée CSV",
"inputTitle": "Entrée CSV",
"resultTitle": "Sortie JSON",
"shortDescription": "Convertissez les données CSV au format JSON.",
"skipEmptyLines": "Sauter les lignes vides",
"skipEmptyLinesDescription": "Ignorer les lignes vides dans le fichier CSV d'entrée",
"title": "Convertir CSV en JSON",
"useHeaders": "Utiliser les en-têtes",
"useHeadersDescription": "Traiter la première ligne comme en-tête de colonne"
},
"csvToTsv": {
"description": "Téléchargez votre fichier CSV via le formulaire ci-dessous et il sera automatiquement converti en fichier TSV. Dans les options de l'outil, vous pouvez personnaliser le format CSV d'entrée : spécifiez le délimiteur de champ, le caractère de guillemet et le symbole de commentaire, ignorez les lignes CSV vides et conservez ou non les en-têtes de colonnes CSV.",
"longDescription": "Cet outil convertit les données CSV (valeurs séparées par des virgules) en données TSV (valeurs séparées par des tabulations). CSV et TSV sont des formats de fichier courants pour stocker des données tabulaires, mais ils utilisent des séparateurs différents pour séparer les valeurs : le CSV utilise des virgules (",
"shortDescription": "Convertissez les données CSV au format TSV.",
"title": "Convertir CSV en TSV"
},
"csvToXml": {
"description": "Convertissez des fichiers CSV au format XML avec des options personnalisables.",
"shortDescription": "Convertissez les données CSV au format XML.",
"title": "Convertir CSV en XML"
},
"csvToYaml": {
"description": "Il vous suffit de télécharger votre fichier CSV via le formulaire ci-dessous et il sera automatiquement converti en fichier YAML. Dans les options de l'outil, vous pouvez spécifier le caractère de délimitation de champ, le caractère de guillemet et le caractère de commentaire pour adapter l'outil aux formats CSV personnalisés. Vous pouvez également sélectionner le format YAML de sortie : préservant ou excluant les en-têtes CSV.",
"longDescription": "Cet outil transforme les données CSV (Comma Separated Values) en données YAML (Yet Another Markup Language). CSV est un format tabulaire simple utilisé pour représenter des types de données matricielles composés de lignes et de colonnes. YAML, quant à lui, est un format plus avancé (en fait un sur-ensemble de JSON), qui crée des données plus lisibles pour la sérialisation et prend en charge les listes, les dictionnaires et les objets imbriqués. Ce programme prend en charge différents formats d'entrée CSV : les données d'entrée peuvent être séparées par des virgules (par défaut), des points-virgules, des barres verticales ou utiliser un autre délimiteur. Vous pouvez spécifier le délimiteur exact utilisé par vos données dans les options. De même, dans les options, vous pouvez spécifier le caractère guillemet utilisé pour encadrer les champs CSV (par défaut, un guillemet double). Vous pouvez également ignorer les lignes commençant par des commentaires en spécifiant les symboles de commentaire dans les options. Cela vous permet de préserver la clarté de vos données en ignorant les lignes inutiles. Il existe deux méthodes pour convertir un fichier CSV en YAML. La première méthode convertit chaque ligne CSV en liste YAML. La seconde méthode extrait les en-têtes de la première ligne CSV et crée des objets YAML avec des clés basées sur ces en-têtes. Vous pouvez également personnaliser le format YAML de sortie en spécifiant le nombre d'espaces pour l'indentation des structures YAML. Pour effectuer la conversion inverse, c'est-à-dire convertir un fichier YAML en CSV, vous pouvez utiliser notre outil de conversion YAML en CSV. C'est génial !",
"shortDescription": "Convertissez rapidement un fichier CSV en fichier YAML.",
"title": "Convertir CSV en YAML"
},
"findIncompleteCsvRecords": {
"checkingOptions": "Vérification des options",
"commentCharacterDescription": "Saisissez le caractère indiquant le début d'une ligne de commentaire. Les lignes commençant par ce symbole seront ignorées.",
"csvInputOptions": "Options de saisie CSV",
"csvSeparatorDescription": "Saisissez le caractère utilisé pour délimiter les colonnes dans le fichier d'entrée CSV.",
"deleteLinesWithNoData": "Supprimer les lignes sans données",
"deleteLinesWithNoDataDescription": "Supprimer les lignes vides du fichier d'entrée CSV.",
"description": "Il vous suffit de télécharger votre fichier CSV dans le formulaire ci-dessous et cet outil vérifiera automatiquement qu'aucune ligne ou colonne ne contient de valeur manquante. Dans les options de l'outil, vous pouvez ajuster le format du fichier d'entrée (spécifier le délimiteur, les guillemets et les commentaires). De plus, vous pouvez activer la vérification des valeurs vides, ignorer les lignes vides et limiter le nombre de messages d'erreur dans la sortie.",
"findEmptyValues": "Trouver des valeurs vides",
"findEmptyValuesDescription": "Afficher un message concernant les champs CSV vides (il ne s'agit pas de champs manquants mais de champs qui ne contiennent rien).",
"inputTitle": "Entrée CSV",
"limitNumberOfMessages": "Limiter le nombre de messages",
"messageLimitDescription": "Définissez la limite du nombre de messages dans la sortie.",
"quoteCharacterDescription": "Saisissez le caractère de citation utilisé pour citer les champs de saisie CSV.",
"resultTitle": "Statut CSV",
"shortDescription": "Trouvez rapidement les lignes et les colonnes dans CSV auxquelles il manque des valeurs.",
"title": "Rechercher des enregistrements CSV incomplets",
"toolInfo": {
"title": "Qu'est-ce qu'un {{title}}?"
}
},
"insertCsvColumns": {
"appendColumns": "Ajouter des colonnes",
"commentCharacterDescription": "Saisissez le caractère indiquant le début d'une ligne de commentaire. Les lignes commençant par ce symbole seront ignorées.",
"csvOptions": "Options CSV",
"csvSeparator": "Séparateur CSV",
"csvToInsert": "CSV à insérer",
"csvToInsertDescription": "Saisissez la ou les colonnes à insérer dans le fichier CSV. Le caractère de délimitation des colonnes doit être identique à celui du fichier d'entrée CSV. Remarque : les lignes vides seront ignorées.",
"customFillDescription": "Si le fichier CSV d'entrée est incomplet (valeurs manquantes), ajoutez-vous des champs vides ou des symboles personnalisés aux enregistrements pour créer un CSV bien formé ?",
"customFillValueDescription": "Utilisez cette valeur personnalisée pour remplir les champs manquants. (Fonctionne uniquement avec le mode « Valeurs personnalisées » ci-dessus.)",
"customPosition": "Position personnalisée",
"customPositionOptionsDescription": "Sélectionnez la méthode pour insérer les colonnes dans le fichier CSV.",
"description": "Ajoutez de nouvelles colonnes aux données CSV à des positions spécifiées.",
"fillWithCustomValues": "Remplir avec les valeurs douanières",
"fillWithEmptyValues": "Remplir avec des valeurs vides",
"headerName": "Nom de l'en-tête",
"headerNameDescription": "En-tête de la colonne après laquelle vous souhaitez insérer des colonnes.",
"inputTitle": "Entrée CSV",
"insertingPositionDescription": "Spécifiez où insérer les colonnes dans le fichier CSV.",
"position": "Position",
"positionOptions": "Options de position",
"prependColumns": "Ajouter des colonnes au début",
"quoteCharDescription": "Saisissez le caractère de citation utilisé pour citer les champs de saisie CSV.",
"resultTitle": "Sortie CSV",
"rowNumberDescription": "Numéro de la colonne après laquelle vous souhaitez insérer des colonnes.",
"separatorDescription": "Saisissez le caractère utilisé pour délimiter les colonnes dans le fichier d'entrée CSV.",
"shortDescription": "Insérez rapidement une ou plusieurs nouvelles colonnes n'importe où dans un fichier CSV.",
"title": "Insérer des colonnes CSV",
"toolInfo": {
"description": "Cet outil vous permet d'insérer de nouvelles colonnes dans des données CSV à des emplacements spécifiques. Vous pouvez ajouter des colonnes à des emplacements personnalisés en fonction des noms d'en-tête ou des numéros de colonne.",
"title": "Insérer des colonnes CSV"
}
},
"swapCsvColumns": {
"description": "Il vous suffit de télécharger votre fichier CSV dans le formulaire ci-dessous, de spécifier les colonnes à permuter et l'outil modifiera automatiquement la position de ces colonnes dans le fichier de sortie. Dans les options de l'outil, vous pouvez spécifier la position ou le nom des colonnes à permuter, corriger les données incomplètes et éventuellement supprimer les enregistrements vides et commentés.",
"longDescription": "Cet outil réorganise les données CSV en intervertissant la position de leurs colonnes. L'interversion des colonnes améliore la lisibilité d'un fichier CSV en regroupant ou en mettant au premier plan les données fréquemment utilisées, facilitant ainsi leur comparaison et leur modification. Par exemple, vous pouvez intervertir la première colonne avec la dernière, ou la deuxième avec la troisième. Pour intervertir les colonnes en fonction de leur position, sélectionnez l'option",
"shortDescription": "Réorganiser les colonnes CSV.",
"title": "Échanger les colonnes CSV"
},
"transposeCsv": {
"description": "Il vous suffit de télécharger votre fichier CSV via le formulaire ci-dessous et cet outil le transposera automatiquement. Dans les options, vous pouvez spécifier le caractère de début des lignes de commentaire dans le fichier CSV pour les supprimer. De plus, si le fichier CSV est incomplet (valeurs manquantes), vous pouvez remplacer les valeurs manquantes par le caractère vide ou un caractère personnalisé.",
"longDescription": "Cet outil transpose les fichiers CSV (valeurs séparées par des virgules). Il traite le fichier CSV comme une matrice de données et inverse tous les éléments sur la diagonale principale. Le fichier CSV de sortie contient les mêmes données CSV que le fichier d'entrée, mais toutes les lignes sont désormais des colonnes, et toutes les colonnes des lignes. Après la transposition, le fichier CSV aura des dimensions opposées. Par exemple, si le fichier d'entrée comporte 4 colonnes et 3 lignes, le fichier de sortie comportera 3 colonnes et 4 lignes. Lors de la conversion, le programme supprime également les lignes inutiles et corrige les données incomplètes. Plus précisément, l'outil supprime automatiquement tous les enregistrements vides et les commentaires commençant par un caractère spécifique, que vous pouvez définir dans l'option. De plus, en cas de corruption ou de perte des données CSV, l'utilitaire complète le fichier avec des champs vides ou personnalisés, que vous pouvez spécifier dans les options. Csv-abulous !",
"shortDescription": "Transposer rapidement un fichier CSV.",
"title": "Transposer CSV"
}
}

View file

@ -1 +1,98 @@
{}
{
"changeColors": {
"description": "Monde",
"shortDescription": "Échanger rapidement les couleurs d'une image",
"title": "Changer une couleur dans une image"
},
"changeOpacity": {
"description": "Ajustez facilement la transparence de vos images. Téléchargez simplement votre image, utilisez le curseur pour définir le niveau d'opacité souhaité entre 0 (transparent) et 1 (opaque), puis téléchargez l'image modifiée.",
"shortDescription": "Ajuster la transparence des images",
"title": "Modifier l'opacité de l'image"
},
"compress": {
"description": "Réduisez la taille du fichier image tout en conservant la qualité.",
"inputTitle": "Image d'entrée",
"resultTitle": "Image compressée",
"shortDescription": "Compresser des images en maintenant une qualité raisonnable.",
"title": "Compresser une image"
},
"compressPng": {
"description": "C'est un programme pour compresser des images PNG. Dès que vous collez votre image PNG dans la zone d'entrée, le programme va la compresser et afficher le résultat dans la zone de sortie. Dans les options, vous pouvez ajuster le niveau de compression et comparer la taille des 2 fichiers.",
"shortDescription": "Compresser rapidement un PNG",
"title": "Compresser un PNG"
},
"convertJgpToPng": {
"description": "Convertissez rapidement vos images JPG en PNG. Importez simplement votre image PNG dans l'éditeur à gauche.",
"shortDescription": "Convertir rapidement vos images JPG en PNG",
"title": "Convertir un JPG en PNG"
},
"convertToJpg": {
"description": "Convertissez différents formats d'image (PNG, GIF, TIF, PSD, SVG, WEBP, HEIC, RAW) en JPG avec des paramètres de qualité et de couleur d'arrière-plan personnalisables.",
"shortDescription": "Convertir des images en JPG avec contrôle qualité",
"title": "Convertir des images en JPG"
},
"createTransparent": {
"description": "Monde",
"shortDescription": "Rendre rapidement une image transparente",
"title": "Créer un PNG transparent"
},
"crop": {
"description": "Recadrez les images pour supprimer les zones indésirables.",
"inputTitle": "Image d'entrée",
"resultTitle": "Image rognée",
"shortDescription": "Rogner des images rapidement.",
"title": "Rogner une image"
},
"editor": {
"description": "Éditeur d'images avancé avec des outils de recadrage, de rotation, d'annotation, d'ajustement des couleurs et d'ajout de filigranes. Retouchez vos images avec des outils professionnels directement dans votre navigateur.",
"shortDescription": "Modifiez des images avec des outils et des fonctionnalités avancés",
"title": "Éditeur d'images"
},
"imageToText": {
"description": "Extraire du texte à partir d'images (JPG, PNG) à l'aide de la reconnaissance optique de caractères (OCR).",
"shortDescription": "Extraire du texte à partir d'images à l'aide de l'OCR.",
"title": "Conversion d'image en texte (OCR)"
},
"qrCode": {
"description": "Générez des codes QR pour différents types de données : URL, texte, e-mail, téléphone, SMS, WiFi, vCard, etc.",
"shortDescription": "Créez des codes QR personnalisés pour différents formats de données.",
"title": "Générateur de code QR"
},
"removeBackground": {
"description": "Monde",
"shortDescription": "Supprimer automatiquement les arrière-plans des images",
"title": "Supprimer l'arrière-plan de l'image"
},
"resize": {
"description": "Redimensionner les images à différentes dimensions.",
"dimensionType": "Type de dimension",
"heightDescription": "Hauteur (en pixels)",
"inputTitle": "Image d'entrée",
"maintainAspectRatio": "Maintenir le rapport hauteur/largeur",
"maintainAspectRatioDescription": "Conserver le rapport hauteur/largeur d'origine de l'image.",
"percentage": "Pourcentage",
"percentageDescription": "Pourcentage de la taille d'origine (par exemple, 50 pour la demi-taille, 200 pour la double taille)",
"resizeByPercentage": "Redimensionner par pourcentage",
"resizeByPercentageDescription": "Redimensionner en spécifiant un pourcentage de la taille d'origine.",
"resizeByPixels": "Redimensionner par pixels",
"resizeByPixelsDescription": "Redimensionner en spécifiant les dimensions en pixels.",
"resizeMethod": "Méthode de redimensionnement",
"resultTitle": "Image redimensionnée",
"setHeight": "Définir la hauteur",
"setHeightDescription": "Spécifiez la hauteur en pixels et calculez la largeur en fonction du rapport hauteur/largeur.",
"setWidth": "Définir la largeur",
"setWidthDescription": "Spécifiez la largeur en pixels et calculez la hauteur en fonction du rapport hauteur/largeur.",
"shortDescription": "Redimensionnez facilement les images.",
"title": "Redimensionner l'image",
"toolInfo": {
"description": "Cet outil vous permet de redimensionner des images JPG, PNG, SVG ou GIF. Vous pouvez redimensionner en spécifiant les dimensions en pixels ou en pourcentage, avec des options permettant de conserver le rapport hauteur/largeur d'origine.",
"title": "Redimensionner l'image"
},
"widthDescription": "Largeur (en pixels)"
},
"rotate": {
"description": "Faire pivoter une image selon un angle spécifié.",
"shortDescription": "Faites pivoter une image facilement.",
"title": "Faire pivoter l'image"
}
}

View file

@ -1 +1,62 @@
{}
{
"escapeJson": {
"description": "Échappez les caractères spéciaux dans les chaînes JSON. Convertissez les données JSON au format correctement échappé pour une transmission ou un stockage sécurisé.",
"shortDescription": "Échapper aux caractères spéciaux dans JSON",
"title": "Échapper le JSON"
},
"jsonToXml": {
"description": "Convertissez des données JSON au format XML. Transformez des objets JSON structurés en documents XML bien formés.",
"shortDescription": "Convertir JSON au format XML",
"title": "JSON vers XML"
},
"minify": {
"description": "Supprimez tous les espaces inutiles du JSON.",
"inputTitle": "Entrée JSON",
"resultTitle": "JSON minifié",
"shortDescription": "Minifier JSON en supprimant les espaces",
"title": "Minifier JSON",
"toolInfo": {
"description": "La minification JSON consiste à supprimer tous les espaces inutiles des données JSON tout en préservant leur validité. Cela inclut la suppression des espaces, des sauts de ligne et des indentations inutiles à l'analyse correcte du JSON. La minification réduit la taille des données JSON, les rendant plus efficaces pour le stockage et la transmission, tout en conservant la même structure de données et les mêmes valeurs.",
"title": "Qu'est-ce que la minification JSON ?"
}
},
"prettify": {
"description": "Formatez JSON avec une indentation et un espacement appropriés.",
"indentation": "Échancrure",
"inputTitle": "Entrée JSON",
"resultTitle": "JSON embelli",
"shortDescription": "Formater et embellir le code JSON",
"title": "Embellir JSON",
"toolInfo": {
"description": "Cet outil vous permet de formater les données JSON avec une indentation et un espacement appropriés, les rendant plus lisibles et plus faciles à utiliser.",
"title": "Embellir JSON"
},
"useSpaces": "Utiliser les espaces",
"useSpacesDescription": "Indenter la sortie avec des espaces",
"useTabs": "Utiliser les onglets",
"useTabsDescription": "Indenter la sortie avec des tabulations."
},
"stringify": {
"description": "Convertissez des objets JavaScript au format de chaîne JSON. Sérialisez des structures de données en chaînes JSON pour le stockage ou la transmission.",
"shortDescription": "Convertir des objets en chaîne JSON",
"title": "Stringify JSON"
},
"tsvToJson": {
"description": "Convertissez les données TSV (valeurs séparées par des tabulations) au format JSON. Transformez les données tabulaires en objets JSON structurés.",
"shortDescription": "Convertir le format TSV au format JSON",
"title": "TSV vers JSON"
},
"validateJson": {
"description": "Vérifiez si JSON est valide et bien formé.",
"inputTitle": "Entrée JSON",
"invalidJson": "❌ {{error}}",
"resultTitle": "Résultat de validation",
"shortDescription": "Valider le code JSON pour les erreurs",
"title": "Valider JSON",
"toolInfo": {
"description": "JSON (JavaScript Object Notation) est un format d'échange de données léger. La validation JSON garantit la conformité de la structure des données à la norme JSON. Un objet JSON valide doit comporter : - des noms de propriétés entre guillemets ; - des accolades {} correctement équilibrées ; - aucune virgule après la dernière paire clé-valeur ; - une imbrication correcte des objets et des tableaux. Cet outil vérifie le JSON d'entrée et fournit des informations pour identifier et corriger les erreurs courantes.",
"title": "Qu'est-ce que la validation JSON ?"
},
"validJson": "✅ JSON valide"
}
}

View file

@ -1 +1,208 @@
{}
{
"duplicate": {
"concatenate": "Concatener",
"concatenateDescription": "Concaténer les copies (si cette option n'est pas cochée, les éléments seront entrelacés)",
"copyDescription": "Nombre de copies (fractionnable)",
"description": "L'utilitaire de duplication d'éléments de liste le plus simple au monde, accessible depuis un navigateur. Saisissez votre liste et spécifiez des critères de duplication pour créer des copies d'éléments. Idéal pour l'expansion de données, les tests ou la création de modèles répétitifs.",
"duplicationOptions": "Options de Duplication",
"examples": {
"fractional": {
"description": "Cet exemple montre comment dupliquer une liste avec un nombre fractionnaire de copies.",
"title": "duplication fractionnaire"
},
"interweave": {
"description": "Cet exemple montre comment entrelacer des éléments au lieu de les concaténer.",
"title": "Éléments entrelacés"
},
"reverse": {
"description": "Cet exemple montre comment dupliquer une liste dans lordre inverse.",
"title": "Duplication inversée"
},
"simple": {
"description": "Cet exemple montre comment dupliquer une liste de mots.",
"title": "Duplication simple"
}
},
"inputTitle": "Liste d'entrées",
"joinSeparatorDescription": "Séparateur pour joindre la liste dupliquée",
"resultTitle": "Liste dupliquée",
"reverse": "Inverse",
"reverseDescription": "Inverser les éléments dupliqués",
"shortDescription": "Dupliquer les éléments de la liste avec des critères spécifiés",
"splitByRegex": "Diviser par expression régulière",
"splitBySymbol": "Diviser par symbole",
"splitOptions": "Options de fractionnement",
"splitSeparatorDescription": "Séparateur pour diviser la liste",
"title": "Double",
"toolInfo": {
"description": "Cet outil vous permet de dupliquer des éléments d'une liste. Vous pouvez spécifier le nombre de copies (y compris les valeurs fractionnaires), contrôler si les éléments sont concaténés ou entrelacés, et même inverser les éléments dupliqués. Il est utile pour créer des motifs répétés, générer des données de test ou étendre des listes au contenu prévisible.",
"title": "Duplication de liste"
}
},
"findMostPopular": {
"description": "L'utilitaire de recherche par navigateur le plus simple au monde pour trouver les éléments les plus populaires d'une liste. Saisissez votre liste et obtenez instantanément les éléments qui apparaissent le plus fréquemment. Idéal pour l'analyse de données, l'identification de tendances ou la recherche d'éléments communs.",
"shortDescription": "Trouver les éléments les plus fréquemment utilisés",
"title": "Trouver les plus populaires"
},
"findUnique": {
"caseSensitiveItems": "Éléments sensibles à la casse",
"caseSensitiveItemsDescription": "Affichez les éléments avec une casse différente comme éléments uniques dans la liste.",
"delimiterDescription": "Définissez un symbole de délimitation ou une expression régulière.",
"description": "L'utilitaire de recherche d'éléments uniques dans une liste, le plus simple au monde, est disponible sur navigateur. Saisissez votre liste et obtenez instantanément toutes les valeurs uniques, sans doublons. Idéal pour le nettoyage des données, la déduplication ou la recherche d'éléments distincts.",
"findAbsolutelyUniqueItems": "Trouvez des articles absolument uniques",
"findAbsolutelyUniqueItemsDescription": "Afficher uniquement les éléments de la liste qui existent en un seul exemplaire.",
"inputListDelimiter": "Délimiteur de liste d'entrée",
"inputTitle": "Liste d'entrées",
"outputListDelimiter": "Délimiteur de liste de sortie",
"resultTitle": "Articles uniques",
"shortDescription": "Trouver des éléments uniques dans une liste",
"skipEmptyItems": "Ignorer les éléments vides",
"skipEmptyItemsDescription": "N'incluez pas les éléments de liste vides dans la sortie.",
"title": "Trouvez l'unique",
"trimItems": "Éléments de la liste de finition",
"trimItemsDescription": "Supprimez les espaces de début et de fin avant de comparer les éléments.",
"uniqueItemOptions": "Options d'articles uniques"
},
"group": {
"deleteEmptyItems": "Supprimer les éléments vides",
"deleteEmptyItemsDescription": "Ignorez les éléments vides et ne les incluez pas dans les groupes.",
"description": "L'utilitaire de regroupement d'éléments de liste le plus simple au monde, accessible depuis un navigateur. Saisissez votre liste et spécifiez des critères de regroupement pour organiser les éléments en groupes logiques. Idéal pour catégoriser des données, organiser des informations ou créer des listes structurées. Prend en charge les séparateurs personnalisés et diverses options de regroupement.",
"emptyItemsAndPadding": "Éléments vides et remplissage",
"groupNumberDescription": "Nombre d'éléments dans un groupe",
"groupSeparatorDescription": "Caractère séparateur de groupe",
"groupSizeAndSeparators": "Taille du groupe et séparateurs",
"inputItemSeparator": "Séparateur d'éléments d'entrée",
"inputTitle": "Liste d'entrée",
"itemSeparatorDescription": "Caractère séparateur d'éléments",
"leftWrapDescription": "Symbole d'enroulement gauche du groupe.",
"padNonFullGroups": "Groupes non complets de Pad",
"padNonFullGroupsDescription": "Remplissez les groupes non complets avec un élément personnalisé (saisissez ci-dessous).",
"paddingCharDescription": "Utilisez ce caractère ou cet objet pour compléter les groupes non complets.",
"resultTitle": "Articles groupés",
"rightWrapDescription": "Symbole d'enveloppement droit du groupe.",
"shortDescription": "Regrouper les éléments de la liste par propriétés communes",
"splitOperators": {
"regex": {
"description": "Délimitez les éléments de la liste dentrée avec une expression régulière.",
"title": "Utiliser une expression régulière pour le fractionnement"
},
"symbol": {
"description": "Délimitez les éléments de la liste d'entrée avec un caractère.",
"title": "Utiliser un symbole pour le fractionnement"
}
},
"splitSeparatorDescription": "Définissez un symbole de délimitation ou une expression régulière.",
"title": "Groupe"
},
"reverse": {
"description": "Cette application très simple, basée sur un navigateur, imprime tous les éléments d'une liste à l'envers. Les éléments saisis peuvent être séparés par n'importe quel symbole et vous pouvez également modifier le séparateur des éléments inversés.",
"inputTitle": "Liste d'entrée",
"itemSeparator": "Séparateur d'éléments",
"itemSeparatorDescription": "Définissez un symbole de délimitation ou une expression régulière.",
"outputListOptions": "Options de la liste de sortie",
"outputSeparatorDescription": "Séparateur d'éléments de liste de sortie.",
"resultTitle": "Liste inversée",
"shortDescription": "Inverser rapidement une liste",
"splitOperators": {
"regex": {
"description": "Délimitez les éléments de la liste dentrée avec une expression régulière.",
"title": "Utiliser une expression régulière pour le fractionnement"
},
"symbol": {
"description": "Délimitez les éléments de la liste d'entrée avec un caractère.",
"title": "Utiliser un symbole pour le fractionnement"
}
},
"splitterMode": "Mode séparateur",
"title": "Inverse",
"toolInfo": {
"description": "Cet utilitaire permet d'inverser l'ordre des éléments d'une liste. Il divise d'abord la liste d'entrée en éléments individuels, puis les parcourt du dernier au premier, en affichant chaque élément dans la sortie au cours de l'itération. La liste d'entrée peut contenir tout ce qui peut être représenté sous forme de données textuelles, notamment des chiffres, des nombres, des chaînes de caractères, des mots, des phrases, etc. Le séparateur d'éléments d'entrée peut également être une expression régulière. Par exemple, l'expression régulière /[;,]/ permet d'utiliser des éléments séparés par des virgules ou des points-virgules. Les délimiteurs des éléments d'entrée et de sortie sont personnalisables dans les options. Par défaut, les listes d'entrée et de sortie sont séparées par des virgules. Incroyable !",
"title": "Qu'est-ce qu'un inverseur de liste ?"
}
},
"rotate": {
"description": "L'utilitaire de rotation des éléments de liste le plus simple au monde, basé sur un navigateur. Saisissez votre liste et spécifiez le degré de rotation pour décaler les éléments d'un nombre de positions spécifié. Idéal pour la manipulation de données, les décalages circulaires ou la réorganisation des listes.",
"shortDescription": "Faire pivoter les éléments de la liste selon des positions spécifiées",
"title": "Tourner"
},
"shuffle": {
"delimiterDescription": "Définissez un symbole de délimitation ou une expression régulière.",
"description": "L'utilitaire de navigation le plus simple au monde pour mélanger les éléments d'une liste. Saisissez votre liste et obtenez instantanément une version aléatoire avec les éléments dans un ordre aléatoire. Idéal pour varier, tester le caractère aléatoire ou mélanger des données ordonnées.",
"inputListSeparator": "Séparateur de liste d'entrée",
"inputTitle": "Liste d'entrée",
"joinSeparatorDescription": "Utilisez ce séparateur dans la liste aléatoire.",
"outputLengthDescription": "Afficher autant d'éléments aléatoires",
"resultTitle": "Liste mélangée",
"shortDescription": "Randomiser l'ordre des éléments de la liste",
"shuffledListLength": "Longueur de la liste mélangée",
"shuffledListSeparator": "Séparateur de liste mélangée",
"title": "Mélanger"
},
"sort": {
"caseSensitive": "Tri sensible à la casse",
"caseSensitiveDescription": "Trier les majuscules et les minuscules séparément. Les majuscules précèdent les minuscules dans une liste ascendante. (Fonctionne uniquement en mode de tri alphabétique.)",
"description": "L'utilitaire de tri de listes le plus simple au monde, basé sur un navigateur. Saisissez votre liste et spécifiez des critères de tri pour organiser les éléments par ordre croissant ou décroissant. Idéal pour l'organisation de données, le traitement de texte ou la création de listes ordonnées.",
"inputItemSeparator": "Séparateur d'éléments d'entrée",
"inputTitle": "Liste d'entrée",
"joinSeparatorDescription": "Utilisez ce symbole comme jointure entre les éléments d'une liste triée.",
"orderDescription": "Sélectionnez un ordre de tri.",
"orderOptions": {
"decreasing": "Ordre décroissant",
"increasing": "Ordre croissant"
},
"removeDuplicates": "Supprimer les doublons",
"removeDuplicatesDescription": "Supprimer les éléments de liste en double.",
"resultTitle": "Liste triée",
"shortDescription": "Trier les éléments de la liste dans l'ordre spécifié",
"sortMethod": "Méthode de tri",
"sortMethodDescription": "Sélectionnez une méthode de tri.",
"sortOptions": {
"alphabetic": "Trier par ordre alphabétique",
"length": "Trier par longueur",
"numeric": "Trier numériquement"
},
"sortedItemProperties": "Propriétés des éléments triés",
"splitOperators": {
"regex": {
"description": "Délimitez les éléments de la liste dentrée avec une expression régulière.",
"title": "Utiliser une expression régulière pour le fractionnement"
},
"symbol": {
"description": "Délimitez les éléments de la liste d'entrée avec un caractère.",
"title": "Utiliser un symbole pour le fractionnement"
}
},
"splitSeparatorDescription": "Définissez un symbole de délimitation ou une expression régulière.",
"title": "Trier"
},
"truncate": {
"description": "L'utilitaire de tronquage de listes le plus simple au monde, accessible depuis un navigateur. Saisissez votre liste et spécifiez le nombre maximal d'éléments à conserver. Idéal pour le traitement de données, la gestion de listes ou la limitation de la longueur du contenu.",
"shortDescription": "Tronquer la liste au nombre spécifié d'éléments",
"title": "Tronquer"
},
"unwrap": {
"description": "L'utilitaire de dépliage de listes le plus simple au monde, basé sur un navigateur. Saisissez votre liste dépliée et spécifiez des critères de dépliage pour aplatir les éléments organisés. Idéal pour le traitement de données, la manipulation de texte ou l'extraction de contenu de listes structurées.",
"shortDescription": "Décompresser les éléments de la liste à partir du format structuré",
"title": "Déballer"
},
"wrap": {
"description": "Ajoutez du texte avant et après chaque élément de la liste.",
"inputTitle": "Liste d'entrées",
"joinSeparatorDescription": "Séparateur pour joindre la liste enveloppée",
"leftTextDescription": "Texte à ajouter avant chaque élément",
"removeEmptyItems": "Supprimer les éléments vides",
"resultTitle": "Liste enveloppée",
"rightTextDescription": "Texte à ajouter après chaque élément",
"shortDescription": "Envelopper les éléments de la liste avec des critères spécifiés",
"splitByRegex": "Diviser par expression régulière",
"splitBySymbol": "Diviser par symbole",
"splitOptions": "Options de fractionnement",
"splitSeparatorDescription": "Séparateur pour diviser la liste",
"title": "Envelopper",
"toolInfo": {
"description": "Cet outil vous permet d'ajouter du texte avant et après chaque élément d'une liste. Vous pouvez spécifier un texte différent pour les côtés gauche et droit, et contrôler le traitement de la liste. Il est utile pour ajouter des guillemets, des crochets ou d'autres éléments de mise en forme aux éléments d'une liste, préparer des données pour différents formats ou créer du texte structuré.",
"title": "Enveloppement de liste"
},
"wrapOptions": "Options d'enveloppement"
}
}

View file

@ -1 +1,89 @@
{}
{
"arithmeticSequence": {
"commonDifferenceDescription": "Différence courante entre les termes (d)",
"description": "Générez des séquences arithmétiques avec des paramètres personnalisables.",
"firstTermDescription": "Premier terme de la suite (a₁)",
"numberOfTermsDescription": "Nombre de termes à générer (n)",
"outputFormat": "Format de sortie",
"resultTitle": "Séquence générée",
"separatorDescription": "Séparateur entre les termes",
"sequenceParameters": "Paramètres de séquence",
"shortDescription": "Générer des séquences arithmétiques",
"title": "Séquence arithmétique",
"toolInfo": {
"description": "Une suite arithmétique est une suite de nombres dont la différence entre chaque terme consécutif est constante. Cette différence constante est appelée différence commune. Étant donné le premier terme (a₁) et la différence commune (d), chaque terme peut être trouvé en additionnant la différence commune au terme précédent.",
"title": "Qu'est-ce qu'une suite arithmétique ?"
}
},
"generate": {
"arithmeticSequenceOption": "Option de séquence arithmétique",
"description": "Générer une séquence de nombres avec des paramètres personnalisables.",
"numberOfElementsDescription": "Nombre d'éléments dans la séquence.",
"resultTitle": "Numéros générés",
"separator": "Séparateur",
"separatorDescription": "Séparez les éléments de la séquence arithmétique par ce caractère.",
"shortDescription": "Générer des nombres aléatoires dans des plages spécifiées",
"startSequenceDescription": "Démarrer la séquence à partir de ce numéro.",
"stepDescription": "Augmentez chaque élément de ce montant",
"title": "Générer",
"toolInfo": {
"description": "Cet outil vous permet de générer une séquence de nombres avec des paramètres personnalisables. Vous pouvez spécifier la valeur de départ, le pas et le nombre d'éléments.",
"title": "Générer des nombres"
}
},
"ohmsLaw": {
"description": "Calcule la tension, le courant et la résistance",
"longDescription": "Cette calculatrice applique la loi d'Ohm (V = I × R) pour déterminer n'importe lequel des trois paramètres électriques lorsque les deux autres sont connus. La loi d'Ohm est un principe fondamental du génie électrique qui décrit la relation entre la tension (V), le courant (I) et la résistance (R). Cet outil est essentiel pour les électroniciens amateurs, les ingénieurs électriciens et les étudiants travaillant sur des circuits afin de résoudre rapidement les valeurs inconnues de leurs conceptions électriques.",
"shortDescription": "Calculer la tension, le courant ou la résistance dans les circuits électriques en utilisant la loi d'Ohm",
"title": "loi d'Ohm"
},
"slackline": {
"description": "Calcule la tension dans une slackline",
"longDescription": "Cette calculatrice suppose une charge au centre de la corde",
"shortDescription": "Calculez la tension approximative d'une slackline ou d'une corde à linge. Ne vous fiez pas à cela pour votre sécurité.",
"title": "Tension de la slackline"
},
"sphereArea": {
"description": "Aire d'une sphère",
"longDescription": "Cette calculatrice détermine l'aire de surface d'une sphère selon la formule A = 4πr². Vous pouvez saisir le rayon pour trouver l'aire de surface ou saisir l'aire de surface pour calculer le rayon requis. Cet outil est utile aux étudiants en géométrie, aux ingénieurs travaillant avec des objets sphériques et à toute personne devant effectuer des calculs impliquant des surfaces sphériques.",
"shortDescription": "Calculer l'aire de surface d'une sphère en fonction de son rayon",
"title": "Aire d'une sphère"
},
"sphereVolume": {
"description": "Volume d'une sphère",
"longDescription": "Cette calculatrice calcule le volume d'une sphère selon la formule V = (4/3)πr³. Vous pouvez saisir le rayon ou le diamètre pour trouver le volume, ou saisir le volume pour déterminer le rayon requis. Cet outil est précieux pour les étudiants, les ingénieurs et les professionnels travaillant avec des objets sphériques dans des domaines tels que la physique, l'ingénierie et la fabrication.",
"shortDescription": "Calculer le volume d'une sphère en utilisant le rayon ou le diamètre",
"title": "Volume d'une sphère"
},
"sum": {
"description": "Calculez la somme d'une liste de nombres. Saisissez les nombres séparés par des virgules ou des sauts de ligne pour obtenir leur somme totale.",
"extractionTypes": {
"delimiter": {
"description": "Personnalisez le séparateur de nombres ici. (Par défaut, il s'agit d'un saut de ligne.)",
"title": "Délimiteur de nombre"
},
"smart": {
"description": "Détection automatique des nombres dans l'entrée.",
"title": "Somme intelligente"
}
},
"inputTitle": "Entrée",
"numberExtraction": "Extraction de nombres",
"printRunningSum": "Imprimer le total cumulé",
"printRunningSumDescription": "Affichez la somme telle qu'elle est calculée étape par étape.",
"resultTitle": "Total",
"runningSum": "Somme courante",
"shortDescription": "Calculer la somme des nombres",
"title": "Somme",
"toolInfo": {
"description": "Il s'agit d'un utilitaire en ligne, accessible depuis un navigateur, permettant de calculer la somme de plusieurs nombres. Vous pouvez saisir les nombres séparés par une virgule, un espace ou tout autre caractère, y compris le saut de ligne. Vous pouvez également simplement coller un fragment de données textuelles contenant les valeurs numériques à additionner : l'utilitaire les extraira et calculera leur somme.",
"title": "Qu'est-ce qu'une calculatrice de somme numérique ?"
}
},
"voltageDropInWire": {
"description": "Calcule la tension aller-retour et la perte de puissance dans un câble à 2 conducteurs",
"longDescription": "Ce calculateur permet de déterminer la chute de tension et la perte de puissance dans un câble électrique à deux conducteurs. Il prend en compte la longueur du câble, la section du fil, la résistivité du matériau et le flux de courant. Il calcule la chute de tension aller-retour, la résistance totale du câble et la puissance dissipée sous forme de chaleur. Cet outil est particulièrement utile aux ingénieurs électriciens, aux électriciens et aux bricoleurs pour la conception de systèmes électriques afin de garantir que les niveaux de tension restent dans des limites acceptables sous charge.",
"shortDescription": "Calculer la chute de tension et la perte de puissance dans les câbles électriques en fonction de la longueur, du matériau et du courant",
"title": "Chute de tension aller-retour dans le câble"
}
}

View file

@ -1 +1,113 @@
{}
{
"compressPdf": {
"compressedFileSize": "Taille du fichier compressé",
"compressingPdf": "Compression des PDF...",
"compressionLevel": "Niveau de compression",
"compressionSettings": "Paramètres de compression",
"description": "Réduire la taille des fichiers PDF tout en maintenant la qualité grâce à Ghostscript",
"errorCompressingPdf": "Échec de la compression du PDF : {{error}}",
"errorReadingPdf": "Échec de la lecture du fichier PDF. Veuillez vous assurer qu'il s'agit d'un PDF valide.",
"fileSize": "Taille du fichier original",
"highCompression": "Compression élevée",
"highCompressionDescription": "Réduction maximale de la taille du fichier avec une certaine perte de qualité",
"inputTitle": "Entrée PDF",
"lowCompression": "Faible compression",
"lowCompressionDescription": "Réduisez légèrement la taille du fichier avec une perte de qualité minimale",
"mediumCompression": "Compression moyenne",
"mediumCompressionDescription": "Équilibre entre la taille et la qualité des fichiers",
"pages": "Nombre de pages",
"resultTitle": "PDF compressé",
"shortDescription": "Compresser des fichiers PDF en toute sécurité dans votre navigateur",
"title": "Compresser le PDF"
},
"editor": {
"description": "Éditeur PDF avancé avec fonctions d'annotation, de remplissage de formulaires, de surlignage et d'export. Modifiez vos PDF directement dans le navigateur avec des outils de qualité professionnelle, notamment l'insertion de texte, le dessin, le surlignage, la signature et le remplissage de formulaires.",
"shortDescription": "Modifier les PDF avec des outils avancés d'annotation, de signature et d'édition",
"title": "Editeur de PDF"
},
"merge": {
"inputTitle": "Entrée PDF",
"loadingText": "Extraire les pages",
"resultTitle": "Sortie du PDF fusionné",
"toolInfo": {
"description": "Cet outil vous permet de fusionner plusieurs fichiers PDF en un seul document. Pour utiliser cet outil, il vous suffit de télécharger les fichiers PDF que vous souhaitez fusionner. L'outil combinera ensuite toutes les pages des fichiers d'entrée en un seul document PDF.",
"title": "Comment utiliser loutil de fusion de PDF ?"
}
},
"mergePdf": {
"description": "Comment utiliser l'outil Fusionner PDF ?",
"inputTitle": "PDF d'entrée",
"mergingPdfs": "Fusion de PDF",
"pdfOptions": "Options PDF",
"resultTitle": "PDF fusionné",
"shortDescription": "Fusionner plusieurs fichiers PDF en un seul document",
"sortByFileName": "Trier par nom de fichier",
"sortByFileNameDescription": "Trier les PDF par ordre alphabétique par nom de fichier",
"sortByUploadOrder": "Trier par ordre de téléchargement",
"sortByUploadOrderDescription": "Conserver les fichiers PDF dans l'ordre dans lequel ils ont été téléchargés",
"title": "Fusionner des PDF",
"toolInfo": {
"description": "Cet outil vous permet de combiner plusieurs fichiers PDF en un seul document. Vous pouvez choisir comment trier les PDF et l'outil les fusionnera dans l'ordre spécifié.",
"title": "Fusionner des fichiers PDF"
}
},
"pdfToEpub": {
"description": "Transformez les documents PDF en fichiers EPUB pour une meilleure compatibilité avec les liseuses.', icon: 'material-symbols:import-contacts', component: lazy(() => import('./index')), keywords: ['pdf', 'epub', 'convert', 'ebook'], path: 'pdf-to-epub', i18n: { name: 'pdf:pdfToEpub.title', description: 'pdf:pdfToEpub.description",
"shortDescription": "Convertir des fichiers PDF au format EPUB",
"title": "PDF vers EPUB"
},
"pdfToPng": {
"description": "Transformez les documents PDF en panneaux PNG.",
"longDescription": "Téléchargez un PDF et convertissez chaque page en image PNG de haute qualité directement dans votre navigateur. Cet outil est idéal pour extraire du contenu visuel ou partager des pages individuelles. Aucune donnée n'est téléchargée : tout fonctionne en local.",
"shortDescription": "Convertir des PDF en images PNG",
"title": "PDF en PNG"
},
"protectPdf": {
"description": "Ajoutez une protection par mot de passe à vos fichiers PDF en toute sécurité dans votre navigateur",
"shortDescription": "Protégez les fichiers PDF en toute sécurité avec un mot de passe",
"title": "Protéger le PDF"
},
"rotatePdf": {
"allPagesWillBeRotated": "Les {{count}} pages seront tournées",
"angleOptions": {
"clockwise90": "90° dans le sens des aiguilles d'une montre",
"counterClockwise270": "270° (90° dans le sens inverse des aiguilles d'une montre)",
"upsideDown180": "180° (à l'envers)"
},
"applyToAllPages": "Appliquer à toutes les pages",
"description": "Faire pivoter les pages d'un document PDF.",
"inputTitle": "Entrée PDF",
"longDescription": "Modifiez l'orientation des pages PDF en les faisant pivoter de 90, 180 ou 270 degrés. Utile pour corriger des documents mal numérisés ou préparer des PDF pour l'impression.",
"pageRangesDescription": "Saisissez les numéros de page ou les plages séparés par des virgules (par exemple, 1, 3, 5-7)",
"pageRangesPlaceholder": "par exemple, 1,5-8",
"pagesWillBeRotated": "{{count}} page{{count !== 1 ? 's' : ''}} sera tourné",
"pdfPageCount": "PDF a {{count}} page{{count !== 1 ? 's' : ''}}",
"resultTitle": "PDF pivoté",
"rotatingPages": "Rotation des pages",
"rotationAngle": "Angle de rotation",
"rotationSettings": "Paramètres de rotation",
"shortDescription": "Faire pivoter les pages d'un document PDF",
"title": "Faire pivoter le PDF",
"toolInfo": {
"description": "Cet outil vous permet de faire pivoter les pages d'un document PDF. Vous pouvez faire pivoter toutes les pages ou spécifier des pages individuelles. Choisissez un angle de rotation : 90° dans le sens horaire, 180° (à l'envers) ou 270° (90° dans le sens antihoraire). Pour faire pivoter des pages spécifiques, décochez « Appliquer à toutes les pages » et saisissez les numéros de page ou les plages de numéros séparés par des virgules (par exemple, 1, 3, 5-7).",
"title": "Comment utiliser l'outil de rotation PDF"
}
},
"splitPdf": {
"description": "Extraire des pages spécifiques d'un document PDF.",
"extractingPages": "Extraire les pages",
"inputTitle": "Entrée PDF",
"pageExtractionPreview": "{{count}} page{{count !== 1 ? 's' : ''}} sera(ont) extrait(s)",
"pageRangesDescription": "Saisissez les numéros de page ou les plages séparés par des virgules (par exemple, 1, 3, 5-7)",
"pageRangesPlaceholder": "par exemple, 1,5-8",
"pageSelection": "Sélection de page",
"pdfPageCount": "PDF a {{count}} page{{count !== 1 ? 's' : ''}}",
"resultTitle": "PDF extrait",
"shortDescription": "Extraire des pages spécifiques d'un fichier PDF",
"title": "Diviser le PDF",
"toolInfo": {
"description": "Cet outil vous permet d'extraire des pages spécifiques d'un document PDF. Vous pouvez spécifier des pages individuelles ou des plages de pages à extraire.",
"title": "Diviser le PDF"
}
}
}

View file

@ -1 +1,261 @@
{}
{
"base64": {
"decode": "Décodage Base64",
"description": "Encodez ou décodez du texte à l'aide de l'encodage Base64.",
"encode": "Encodage Base64",
"inputTitle": "Données d'entrée",
"optionsTitle": "Options Base64",
"resultTitle": "Résultat",
"shortDescription": "Encoder ou décoder des données à l'aide de Base64.",
"title": "Encodeur/décodeur Base64",
"toolInfo": {
"description": "Base64 est un schéma de codage qui représente les données au format chaîne ASCII en les convertissant en une représentation radix-64. Bien qu'il puisse être utilisé pour encoder des chaînes, il est couramment utilisé pour encoder des données binaires destinées à être transmises sur des supports conçus pour traiter des données textuelles.",
"title": "Qu'est-ce que Base64 ?"
}
},
"censor": {
"description": "Utilitaire de censure de mots dans un texte. Chargez votre texte dans le formulaire de saisie à gauche, spécifiez tous les mots interdits dans les options et vous obtiendrez instantanément le texte censuré dans la zone de sortie. », longDescription: « Avec cet outil en ligne, vous pouvez censurer certains mots dans n'importe quel texte. Vous pouvez spécifier une liste de mots indésirables (tels que des jurons ou des mots secrets) et le programme les remplacera par d'autres mots pour créer un texte lisible. Les mots peuvent être spécifiés dans un champ de texte multiligne dans les options, en saisissant un mot par ligne. », keywords: ['text', 'censor', 'words', 'characters'], component: lazy(() => import('./index')), i18n: { name: 'string:censor.title', description: 'string:censor.description",
"shortDescription": "Masquez rapidement les gros mots ou remplacez-les par des mots alternatifs.",
"title": "Censure de texte"
},
"createPalindrome": {
"description": "L'utilitaire de navigateur le plus simple au monde pour créer des palindromes à partir de n'importe quel texte. Saisissez du texte et transformez-le instantanément en un palindrome qui se lit de la même manière à l'endroit comme à l'envers. Idéal pour les jeux de mots, la création de motifs de texte symétriques ou l'exploration de curiosités linguistiques.",
"shortDescription": "Créez un texte qui se lit de la même manière à l'avant et à l'arrière",
"title": "Créer un palindrome"
},
"extractSubstring": {
"description": "L'utilitaire le plus simple au monde, basé sur un navigateur, pour extraire des sous-chaînes de texte. Saisissez votre texte et spécifiez les positions de début et de fin pour extraire la portion souhaitée. Idéal pour le traitement de données, l'analyse de texte ou l'extraction de contenu spécifique à partir de blocs de texte volumineux.",
"shortDescription": "Extraire une partie de texte entre des positions spécifiées",
"title": "Extraire la sous-chaîne"
},
"join": {
"blankLinesAndTrailingSpaces": "Lignes vides et espaces de fin",
"deleteBlankDescription": "Supprimez les lignes qui nont pas de symboles de texte.",
"deleteBlankTitle": "Supprimer les lignes vides",
"deleteTrailingDescription": "Supprimez les espaces et les tabulations à la fin des lignes.",
"deleteTrailingTitle": "Supprimer les espaces de fin",
"description": "Joignez des morceaux de texte avec des séparateurs personnalisables.",
"inputTitle": "Textes",
"joinCharacterDescription": "Symbole reliant les fragments de texte. (Espace par défaut.)",
"joinCharacterPlaceholder": "Rejoindre le personnage",
"resultTitle": "Texte joint",
"shortDescription": "Joindre des éléments de texte avec un séparateur spécifié",
"textMergedOptions": "Options de fusion de texte",
"title": "Joindre le texte",
"toolInfo": {
"description": "Cet outil vous permet de fusionner des parties de texte. Il prend une liste de valeurs de texte, séparées par des sauts de ligne, et les fusionne. Vous pouvez définir le caractère qui sera placé entre les parties du texte combiné. Vous pouvez également ignorer les lignes vides et supprimer les espaces et les tabulations à la fin de chaque ligne. Textabulous !",
"title": "Qu'est-ce qu'un outil de jointure de texte ?"
}
},
"palindrome": {
"description": "L'utilitaire le plus simple au monde, basé sur un navigateur, permet de vérifier si un texte est un palindrome. Vérifiez instantanément si votre texte se lit de la même manière à l'endroit comme à l'envers. Idéal pour les jeux de mots, l'analyse linguistique ou la validation de structures de texte symétriques. Prend en charge divers délimiteurs et la détection de palindromes multi-mots.",
"shortDescription": "Vérifiez si le texte se lit de la même manière à l'avant et à l'arrière",
"title": "Palindrome"
},
"passwordGenerator": {
"avoidAmbiguous": "Évitez les caractères ambigus (i, I, l, 0, O)",
"description": "Générez des mots de passe aléatoires sécurisés avec une longueur et des types de caractères personnalisables. Choisissez entre minuscules, majuscules, chiffres et caractères spéciaux. Option permettant d'éviter les caractères ambigus pour une meilleure lisibilité.",
"includeLowercase": "Inclure des lettres minuscules (a-z)",
"includeNumbers": "Inclure des chiffres (0-9)",
"includeSymbols": "Inclure des caractères spéciaux",
"includeUppercase": "Inclure des lettres majuscules (A-Z)",
"lengthDesc": "Longueur du mot de passe",
"lengthPlaceholder": "par exemple 12",
"optionsTitle": "Options de mot de passe",
"resultTitle": "Mot de passe généré",
"shortDescription": "Générez des mots de passe aléatoires sécurisés avec des options personnalisées",
"title": "Générateur de mot de passe",
"toolInfo": {
"description": "Cet outil génère des mots de passe aléatoires sécurisés selon vos critères. Vous pouvez personnaliser la longueur, inclure ou exclure différents types de caractères et éviter les caractères ambigus pour une meilleure lisibilité. Idéal pour créer des mots de passe forts pour vos comptes, applications ou tout autre besoin de sécurité.",
"title": "À propos du générateur de mots de passe"
}
},
"quote": {
"allowDoubleQuotation": "Autoriser les guillemets doubles",
"description": "Ajoutez des guillemets autour du texte avec des options personnalisables.",
"inputTitle": "Texte d'entrée",
"leftQuoteDescription": "Caractère(s) de citation gauche",
"processAsMultiLine": "Traiter comme un texte multiligne",
"quoteEmptyLines": "Citer les lignes vides",
"quoteOptions": "Options de devis",
"resultTitle": "Texte cité",
"rightQuoteDescription": "Caractère(s) de citation à droite",
"shortDescription": "Ajoutez des guillemets autour du texte avec différents styles",
"title": "Citation de texte",
"toolInfo": {
"description": "Cet outil vous permet d'insérer des guillemets autour du texte. Vous pouvez choisir différents caractères de guillemets, gérer du texte multiligne et contrôler le traitement des lignes vides. Il est utile pour préparer du texte pour la programmation, formater des données ou créer du texte stylisé.",
"title": "Citation de texte"
}
},
"randomizeCase": {
"description": "L'utilitaire de sélection aléatoire de casse de texte le plus simple au monde, basé sur un navigateur. Saisissez votre texte et transformez-le instantanément en ajoutant des majuscules et des minuscules aléatoires. Idéal pour créer des effets de texte uniques, tester la sensibilité à la casse ou générer des modèles de texte variés.",
"shortDescription": "Randomiser la casse des lettres dans le texte",
"title": "Cas randomisé"
},
"removeDuplicateLines": {
"description": "Chargez votre texte dans le formulaire de saisie à gauche et obtenez instantanément du texte sans doublons dans la zone de sortie. Puissant, gratuit et rapide. Chargez des lignes de texte : obtenez des lignes de texte uniques.",
"shortDescription": "Supprimez rapidement toutes les lignes répétées du texte",
"title": "Supprimer les lignes en double"
},
"repeat": {
"delimiterDescription": "Délimiteur pour les copies de sortie.",
"delimiterPlaceholder": "Délimiteur",
"description": "Répétez le texte plusieurs fois avec des séparateurs personnalisables.",
"inputTitle": "Texte d'entrée",
"numberPlaceholder": "Nombre",
"repeatAmountDescription": "Nombre de répétitions.",
"repetitionsDelimiter": "Délimiteur de répétitions",
"resultTitle": "Texte répété",
"shortDescription": "Répéter le texte plusieurs fois",
"textRepetitions": "Répétitions de texte",
"title": "Répéter le texte",
"toolInfo": {
"description": "Cet outil vous permet de répéter un texte donné plusieurs fois avec un séparateur optionnel.",
"title": "Répéter le texte"
}
},
"reverse": {
"description": "L'utilitaire d'inversion de texte le plus simple au monde, basé sur un navigateur. Saisissez n'importe quel texte et inversez-le instantanément, caractère par caractère. Idéal pour créer du texte miroir, analyser des palindromes ou jouer avec les motifs de texte. Préserve les espaces et les caractères spéciaux lors de l'inversion.",
"inputTitle": "Texte à inverser",
"processMultiLine": "Traiter un texte multiligne",
"processMultiLineDescription": "Chaque ligne sera inversée indépendamment",
"resultTitle": "Texte inversé",
"reversalOptions": "Options d'inversion",
"shortDescription": "Inverser n'importe quel texte caractère par caractère",
"skipEmptyLines": "Sauter les lignes vides",
"skipEmptyLinesDescription": "Les lignes vides seront supprimées de la sortie",
"title": "Inverse",
"trimWhitespace": "Couper les espaces blancs",
"trimWhitespaceDescription": "Supprimer les espaces de début et de fin de chaque ligne"
},
"rot13": {
"description": "Coder ou décoder du texte à l'aide du chiffrement ROT13.",
"inputTitle": "Texte d'entrée",
"resultTitle": "Résultat ROT13",
"shortDescription": "Coder ou décoder du texte à l'aide du chiffrement ROT13.",
"title": "Encodeur/décodeur ROT13",
"toolInfo": {
"description": "ROT13 (rotation de 13 positions) est un chiffrement par substitution de lettres simple qui remplace une lettre par la 13e lettre suivante dans l'alphabet. ROT13 est un cas particulier du chiffrement de César, développé dans la Rome antique. L'alphabet anglais comportant 26 lettres, ROT13 est son propre inverse ; pour annuler ROT13, le même algorithme est appliqué, permettant ainsi la même opération de codage et de décodage.",
"title": "Qu'est-ce que ROT13 ?"
}
},
"rotate": {
"description": "Faire pivoter les caractères du texte selon des positions spécifiées.",
"inputTitle": "Texte d'entrée",
"processAsMultiLine": "Traiter comme un texte multiligne (faire pivoter chaque ligne séparément)",
"resultTitle": "Texte pivoté",
"rotateLeft": "Tourner à gauche",
"rotateRight": "Tourner à droite",
"rotationOptions": "Options de rotation",
"shortDescription": "Décaler les caractères dans le texte par position.",
"stepDescription": "Nombre de positions à faire tourner",
"title": "Faire pivoter le texte",
"toolInfo": {
"description": "Cet outil vous permet de faire pivoter les caractères d'une chaîne d'un nombre spécifié de positions. Vous pouvez effectuer une rotation vers la gauche ou la droite, et traiter du texte multiligne en faisant pivoter chaque ligne séparément. La rotation de chaîne est utile pour les transformations de texte simples, la création de motifs ou la mise en œuvre de techniques de chiffrement de base.",
"title": "Rotation des cordes"
}
},
"split": {
"charAfterChunkDescription": "Caractère après chaque morceau",
"charBeforeChunkDescription": "Caractère avant chaque morceau",
"chunksDescription": "Nombre de morceaux de longueur égale dans la sortie.",
"chunksTitle": "Utiliser un certain nombre de morceaux",
"description": "L'utilitaire de découpage de texte basé sur navigateur le plus simple au monde. Saisissez votre texte et spécifiez un séparateur pour le diviser en plusieurs parties. Idéal pour le traitement de données, la manipulation de texte ou l'extraction de contenu spécifique à partir de blocs de texte volumineux.",
"lengthDescription": "Nombre de symboles qui seront placés dans chaque bloc de sortie.",
"lengthTitle": "Utiliser la longueur pour le fractionnement",
"outputSeparatorDescription": "Caractère à insérer entre les segments séparés. (Par défaut, il s'agit du saut de ligne « \\n ».)",
"outputSeparatorOptions": "Options de séparateur de sortie",
"regexDescription": "Expression régulière permettant de diviser le texte en plusieurs parties.\n(Plusieurs espaces par défaut.)",
"regexTitle": "Utiliser une expression régulière pour le fractionnement",
"resultTitle": "Textes",
"shortDescription": "Diviser le texte en plusieurs parties à l'aide d'un séparateur",
"splitSeparatorOptions": "Options de séparateur fractionné",
"symbolDescription": "Caractère permettant de diviser le texte en plusieurs parties.\n(Espace par défaut.)",
"symbolTitle": "Utiliser un symbole pour le fractionnement",
"title": "Diviser"
},
"statistic": {
"characterFrequencyAnalysis": "Analyse de la fréquence des caractères",
"characterFrequencyAnalysisDescription": "Comptez la fréquence à laquelle chaque caractère apparaît dans le texte",
"delimitersOptions": "Options de délimiteurs",
"description": "Analysez le texte et générez des statistiques complètes.",
"includeEmptyLines": "Inclure les lignes vides",
"includeEmptyLinesDescription": "Inclure les lignes vides lors du comptage des lignes",
"inputTitle": "Texte d'entrée",
"resultTitle": "Statistiques textuelles",
"sentenceDelimitersDescription": "Saisissez les caractères personnalisés utilisés pour délimiter les phrases dans votre langue (séparés par une virgule) ou laissez-le vide par défaut.",
"sentenceDelimitersPlaceholder": "par exemple ., !, ?, ...",
"shortDescription": "Obtenez des statistiques sur votre texte",
"statisticsOptions": "Options de statistiques",
"title": "Statistiques textuelles",
"toolInfo": {
"description": "Cet outil vous permet d'analyser du texte et de générer des statistiques complètes, notamment le nombre de caractères, le nombre de mots, le nombre de lignes et l'analyse de fréquence des caractères et des mots.",
"title": "Qu'est-ce qu'un {{title}}?"
},
"wordDelimitersDescription": "Saisissez une expression régulière personnalisée pour compter les mots ou laissez-la vide par défaut.",
"wordDelimitersPlaceholder": "par exemple \\s.,;:!?\"«»()…",
"wordFrequencyAnalysis": "Analyse de fréquence des mots",
"wordFrequencyAnalysisDescription": "Comptez la fréquence à laquelle chaque mot apparaît dans le texte"
},
"textReplacer": {
"description": "Remplacez les modèles de texte par un nouveau contenu.",
"findPatternInText": "Trouver ce modèle dans le texte",
"findPatternUsingRegexp": "Trouver un modèle à l'aide d'une expression régulière",
"inputTitle": "Texte à remplacer",
"newTextPlaceholder": "Nouveau texte",
"regexpDescription": "Saisissez lexpression régulière que vous souhaitez remplacer.",
"replacePatternDescription": "Saisissez le modèle à utiliser pour le remplacement.",
"replaceText": "Remplacer le texte",
"resultTitle": "Texte avec remplacements",
"searchPatternDescription": "Saisissez le modèle de texte que vous souhaitez remplacer.",
"searchText": "Texte de recherche",
"shortDescription": "Remplacez rapidement du texte dans votre contenu",
"title": "Remplaceur de texte",
"toolInfo": {
"description": "Remplacez facilement du texte spécifique dans votre contenu grâce à cet outil simple et accessible depuis un navigateur. Saisissez simplement votre texte, définissez le texte à remplacer et la valeur de remplacement, et obtenez instantanément la version mise à jour.",
"title": "Remplaceur de texte"
}
},
"toMorse": {
"dashSymbolDescription": "Symbole qui correspondra au tiret dans le code Morse.",
"description": "Convertir du texte en code Morse.",
"dotSymbolDescription": "Symbole qui correspondra au point dans le code Morse.",
"longSignal": "Signal long",
"resultTitle": "code Morse",
"shortDescription": "Encoder rapidement du texte en morse",
"shortSignal": "Signal court",
"title": "Chaîne en morse"
},
"truncate": {
"addTruncationIndicator": "Ajouter un indicateur de troncature",
"charactersPlaceholder": "Personnages",
"description": "Raccourcir le texte à une longueur spécifiée.",
"indicatorDescription": "Caractères à ajouter à la fin (ou au début) du texte. Remarque : ils sont pris en compte dans la longueur.",
"inputTitle": "Texte d'entrée",
"leftSideDescription": "Supprimer des caractères du début du texte.",
"leftSideTruncation": "Troncature du côté gauche",
"lengthAndLines": "Longueur et lignes",
"lineByLineDescription": "Tronquez chaque ligne séparément.",
"lineByLineTruncating": "Tronquer ligne par ligne",
"maxLengthDescription": "Nombre de caractères à laisser dans le texte.",
"numberPlaceholder": "Nombre",
"resultTitle": "Texte tronqué",
"rightSideDescription": "Supprimer les caractères de la fin du texte.",
"rightSideTruncation": "Troncature du côté droit",
"shortDescription": "Tronquer le texte à une longueur spécifiée",
"suffixAndAffix": "Suffixe et affixe",
"title": "Tronquer le texte",
"toolInfo": {
"description": "Chargez votre texte dans le formulaire de saisie à gauche et vous obtiendrez automatiquement du texte tronqué à droite.",
"title": "Tronquer le texte"
},
"truncationSide": "Côté troncature"
},
"uppercase": {
"description": "Convertir le texte en lettres majuscules.",
"inputTitle": "Texte d'entrée",
"resultTitle": "Texte en majuscules",
"shortDescription": "Convertir le texte en majuscules",
"title": "Convertir en majuscules"
}
}

View file

@ -1 +1,100 @@
{}
{
"checkLeapYears": {
"description": "Vérifiez si une année est bissextile et obtenez des informations sur les années bissextiles.",
"inputTitle": "Année d'entrée",
"resultTitle": "Résultat de l'année bissextile",
"shortDescription": "Vérifiez si une année est bissextile",
"title": "Vérifiez les années bissextiles",
"toolInfo": {
"description": "Une année bissextile est une année comportant un jour supplémentaire (le 29 février) pour synchroniser l'année civile avec l'année astronomique. Les années bissextiles ont lieu tous les 4 ans, sauf pour les années divisibles par 100 mais pas par 400.",
"title": "Qu'est-ce qu'une année bissextile ?"
}
},
"convertDaysToHours": {
"addHoursName": "Ajouter le nom des heures",
"addHoursNameDescription": "Ajoutez la chaîne hours aux valeurs de sortie",
"description": "Convertissez les jours en heures avec des options personnalisables.",
"hoursName": "Nom des heures",
"shortDescription": "Convertir des jours en heures",
"title": "Convertir des jours en heures",
"toolInfo": {
"description": "Cet outil vous permet de convertir des jours en heures. Vous pouvez saisir les jours sous forme de nombres ou d'unités, et l'outil les convertira en heures. Vous pouvez également ajouter le suffixe « heures » aux valeurs de sortie.",
"title": "Convertir des jours en heures"
}
},
"convertHoursToDays": {
"addDaysName": "Ajouter le nom du jour",
"addDaysNameDescription": "Ajoutez la chaîne days aux valeurs de sortie",
"daysName": "Nom des jours",
"description": "Convertissez les heures en jours avec des options personnalisables.",
"shortDescription": "Convertir des heures en jours",
"title": "Convertir des heures en jours",
"toolInfo": {
"description": "Cet outil vous permet de convertir des heures en jours. Vous pouvez saisir des heures sous forme de nombres ou d'unités, et l'outil les convertira en jours. Vous pouvez également ajouter le suffixe « jours » aux valeurs de sortie.",
"title": "Convertir des heures en jours"
}
},
"convertSecondsToTime": {
"addPadding": "Ajouter un rembourrage",
"addPaddingDescription": "Ajoutez un remplissage de zéro aux heures, minutes et secondes.",
"description": "Convertissez les secondes dans un format horaire lisible (heures:minutes:secondes). Saisissez le nombre de secondes pour obtenir l'heure formatée.",
"shortDescription": "Convertir les secondes au format horaire",
"timePadding": "Remplissage temporel",
"title": "Convertir les secondes en temps",
"toolInfo": {
"title": "Qu'est-ce qu'un {{title}}?"
}
},
"convertTimeToSeconds": {
"description": "Convertissez l'heure formatée (HH:MM:SS) en secondes.",
"inputTitle": "Heure d'entrée",
"resultTitle": "Secondes",
"shortDescription": "Convertir le format de l'heure en secondes",
"title": "Convertir le temps en secondes",
"toolInfo": {
"description": "Cet outil permet de convertir des chaînes de temps formatées (HH:MM:SS) en secondes. Il est utile pour calculer des durées et des intervalles de temps.",
"title": "Convertir le temps en secondes"
}
},
"crontabGuru": {
"description": "Générez et comprenez les expressions Cron. Créez des planifications Cron pour les tâches automatisées et les tâches système.",
"shortDescription": "Générer et comprendre les expressions cron",
"title": "Crontab Guru"
},
"timeBetweenDates": {
"description": "Calculez le décalage horaire entre deux dates. Obtenez la durée exacte en jours, heures, minutes et secondes.",
"endDate": "Date de fin",
"endDateTime": "Date et heure de fin",
"endTime": "Fin des temps",
"endTimezone": "Fuseau horaire de fin",
"shortDescription": "Calculer le temps entre deux dates",
"startDate": "Date de début",
"startDateTime": "Date et heure de début",
"startTime": "Heure de début",
"startTimezone": "Fuseau horaire de départ",
"title": "Temps entre les dates",
"toolInfo": {
"description": "Calculez le décalage horaire exact entre deux dates et heures, avec la prise en charge de différents fuseaux horaires. Cet outil fournit une analyse détaillée du décalage horaire en différentes unités (années, mois, jours, heures, minutes et secondes).",
"title": "Calculateur de temps entre les dates"
}
},
"truncateClockTime": {
"description": "Tronquez l'heure pour supprimer les secondes ou les minutes. Arrondissez l'heure à l'heure, à la minute ou à l'intervalle personnalisé le plus proche.",
"printDroppedComponents": "Imprimer les composants supprimés",
"shortDescription": "Tronquer l'heure de l'horloge à la précision spécifiée",
"timePadding": "Remplissage temporel",
"title": "Tronquer l'heure de l'horloge",
"toolInfo": {
"title": "Qu'est-ce qu'un {{title}}?"
},
"truncateMinutesAndSeconds": "Tronquer les minutes et les secondes",
"truncateMinutesAndSecondsDescription": "Supprimez les deux composants les minutes et les secondes de chaque heure dhorloge.",
"truncateOnlySeconds": "Tronquer uniquement les secondes",
"truncateOnlySecondsDescription": "Supprimez le composant secondes de chaque heure d'horloge.",
"truncationSide": "Côté troncature",
"useZeroPadding": "Utiliser le remplissage zéro",
"zeroPaddingDescription": "Faites en sorte que tous les composants de temps aient toujours une largeur de deux chiffres.",
"zeroPrintDescription": "Afficher les parties supprimées sous forme de valeurs nulles « 00 ».",
"zeroPrintTruncatedParts": "Parties tronquées sans impression"
}
}

View file

@ -1 +1,254 @@
{}
{
"app": {
"language": "Langue",
"title": "OmniTools"
},
"audio": {
"changeSpeed": {
"description": "Modifier la vitesse de lecture des fichiers audio. Accélérer ou ralentir le son tout en conservant la hauteur.",
"name": "Changer la vitesse audio",
"shortDescription": "Modifier la vitesse des fichiers audio"
},
"extractAudio": {
"description": "Extrayez la piste audio d'un fichier vidéo et enregistrez-la en tant que fichier audio séparé dans le format de votre choix (AAC, MP3, WAV).",
"name": "Extraire l'audio",
"shortDescription": "Extrayez l'audio des fichiers vidéo (MP4, MOV, etc.) vers AAC, MP3 ou WAV."
}
},
"baseFileInput": {
"copyFailed": "Échec de la copie : {{error}}",
"dropFileHere": "Déposez votre {{type}} ici",
"fileCopied": "Fichier copié",
"selectFileDescription": "Cliquez ici pour sélectionner un {{type}} depuis votre appareil, appuyez sur Ctrl+V pour utiliser un {{type}} depuis votre presse-papiers ou faites glisser et déposez un fichier depuis le bureau"
},
"categories": {
"audio": {
"description": "Outils pour travailler avec l'audio : extraire l'audio d'une vidéo, ajuster la vitesse de l'audio, fusionner plusieurs fichiers audio et bien plus encore.",
"title": "Outils audio"
},
"csv": {
"description": "Outils pour travailler avec des fichiers CSV : convertissez des fichiers CSV en différents formats, manipulez les données CSV, validez la structure CSV et traitez efficacement les fichiers CSV.",
"title": "Outils CSV"
},
"gif": {
"description": "Outils pour travailler avec des animations GIF : créez des GIF transparents, extrayez des cadres GIF, ajoutez du texte au GIF, recadrez, faites pivoter, inversez les GIF et bien plus encore.",
"title": "Outils GIF"
},
"image-generic": {
"description": "Outils pour travailler avec des images : compresser, redimensionner, recadrer, convertir en JPG, faire pivoter, supprimer l'arrière-plan et bien plus encore.",
"title": "Outils d'image"
},
"json": {
"description": "Outils pour travailler avec des structures de données JSON : embellir et minimiser des objets JSON, aplatir des tableaux JSON, transformer des valeurs JSON en chaînes, analyser des données et bien plus encore",
"title": "Outils JSON"
},
"list": {
"description": "Outils pour travailler avec des listes : trier, inverser, randomiser les listes, trouver des éléments de liste uniques et en double, modifier les séparateurs d'éléments de liste et bien plus encore.",
"title": "Liste des outils"
},
"number": {
"description": "Outils pour travailler avec des nombres : générer des séquences de nombres, convertir des nombres en mots et des mots en nombres, trier, arrondir, factoriser des nombres et bien plus encore.",
"title": "Outils numériques"
},
"pdf": {
"description": "Outils pour travailler avec des fichiers PDF : extraire du texte à partir de PDF, convertir des PDF en d'autres formats, manipuler des PDF et bien plus encore.",
"title": "Outils PDF"
},
"png": {
"description": "Outils pour travailler avec des images PNG : convertissez des PNG en JPG, créez des PNG transparents, modifiez les couleurs PNG, recadrez, faites pivoter, redimensionnez des PNG et bien plus encore.",
"title": "Outils PNG"
},
"seeAll": "Tout voir {{title}}",
"string": {
"description": "Outils pour travailler avec du texte : convertissez du texte en images, recherchez et remplacez du texte, divisez du texte en fragments, joignez des lignes de texte, répétez du texte et bien plus encore.",
"title": "Outils de texte"
},
"time": {
"description": "Outils pour travailler avec l'heure et la date : calculez les différences horaires, convertissez entre les fuseaux horaires, formatez les dates, générez des séquences de dates et bien plus encore.",
"title": "Outils de temps"
},
"try": "Essayer {{title}}",
"video": {
"description": "Outils pour travailler avec des vidéos : extraire des images de vidéos, créer des GIF à partir de vidéos, convertir des vidéos en différents formats et bien plus encore.",
"title": "Outils vidéo"
},
"xml": {
"description": "Outils pour travailler avec des structures de données XML - visualiseur, embellisseur, validateur et bien plus encore",
"title": "Outils XML"
}
},
"csv": {
"findIncompleteCsvRecords": {
"description": "Il vous suffit de télécharger votre fichier CSV dans le formulaire ci-dessous et cet outil vérifiera automatiquement qu'aucune ligne ou colonne ne contient de valeur manquante. Dans les options de l'outil, vous pouvez ajuster le format du fichier d'entrée (spécifier le délimiteur, les guillemets et les commentaires). De plus, vous pouvez activer la vérification des valeurs vides, ignorer les lignes vides et limiter le nombre de messages d'erreur dans la sortie.",
"name": "Rechercher des enregistrements CSV incomplets",
"shortDescription": "Trouvez rapidement les lignes et les colonnes dans CSV auxquelles il manque des valeurs."
}
},
"hero": {
"brand": "OmniTools",
"description": "Boostez votre productivité avec OmniTools, la boîte à outils ultime pour accélérer vos tâches ! Accédez à des milliers d'utilitaires conviviaux pour modifier des images, du texte, des listes et des données, directement depuis votre navigateur.",
"examples": {
"calculateNumberSum": "Calculer la somme des nombres",
"changeGifSpeed": "Modifier la vitesse du GIF",
"compressPng": "Compresser PNG",
"createTransparentImage": "Créer une image transparente",
"prettifyJson": "Embellir JSON",
"sortList": "Trier une liste",
"splitPdf": "Diviser le PDF",
"splitText": "Diviser un texte",
"trimVideo": "Découper la vidéo"
},
"searchPlaceholder": "Rechercher tous les outils",
"title": "Faites avancer les choses rapidement avec"
},
"inputFooter": {
"clear": "Clair",
"copyToClipboard": "Copier dans le presse-papiers",
"importFromFile": "Importer à partir d'un fichier"
},
"list": {
"group": {
"description": "L'utilitaire de regroupement d'éléments de liste le plus simple au monde, accessible depuis un navigateur. Saisissez votre liste et spécifiez des critères de regroupement pour organiser les éléments en groupes logiques. Idéal pour catégoriser des données, organiser des informations ou créer des listes structurées. Prend en charge les séparateurs personnalisés et diverses options de regroupement.",
"name": "Groupe",
"shortDescription": "Regrouper les éléments de la liste par propriétés communes"
},
"reverse": {
"description": "Cette application très simple, basée sur un navigateur, imprime tous les éléments d'une liste à l'envers. Les éléments saisis peuvent être séparés par n'importe quel symbole et vous pouvez également modifier le séparateur des éléments inversés.",
"name": "Inverse",
"shortDescription": "Inverser rapidement une liste"
},
"sort": {
"description": "Il s'agit d'une application navigateur ultra-simple qui trie les éléments d'une liste et les organise par ordre croissant ou décroissant. Vous pouvez trier les éléments par ordre alphabétique, numérique ou par longueur. Vous pouvez également supprimer les doublons et les éléments vides, ainsi que les éléments individuels entourés d'espaces. Vous pouvez utiliser n'importe quel caractère séparateur pour séparer les éléments de la liste d'entrée ou une expression régulière. De plus, vous pouvez créer un nouveau délimiteur pour la liste de sortie triée.",
"name": "Trier",
"shortDescription": "Trier rapidement une liste"
}
},
"navbar": {
"buyMeACoffee": "Offre-moi un café",
"home": "Maison",
"tools": "Outils"
},
"number": {
"generate": {
"description": "Calculez rapidement une liste d'entiers dans votre navigateur. Pour obtenir votre liste, indiquez simplement le premier entier, modifiez la valeur et le nombre total dans les options ci-dessous, et cet utilitaire générera le nombre d'entiers correspondant.",
"name": "Générer des nombres",
"shortDescription": "Calculez rapidement une liste d'entiers dans votre navigateur"
},
"sum": {
"description": "Il s'agit d'une application très simple, accessible depuis un navigateur, qui additionne des nombres. Les nombres saisis peuvent être séparés par n'importe quel symbole et vous pouvez également modifier le séparateur des nombres additionnés.",
"name": "Somme des nombres",
"shortDescription": "Additionner rapidement une liste de nombres"
}
},
"numericInputWithUnit": {
"unit": "Unité"
},
"pdf": {
"compressPdf": {
"description": "Réduire la taille des fichiers PDF tout en maintenant la qualité grâce à Ghostscript",
"name": "Compresser le PDF",
"shortDescription": "Compresser des fichiers PDF en toute sécurité dans votre navigateur"
},
"mergePdf": {
"description": "Comment utiliser l'outil Fusionner PDF ?",
"name": "Fusionner des PDF",
"shortDescription": "Fusionner plusieurs fichiers PDF en un seul document"
},
"pdfToEpub": {
"description": "Transformez les documents PDF en fichiers EPUB pour une meilleure compatibilité avec les liseuses.",
"name": "PDF vers EPUB",
"shortDescription": "Convertir des fichiers PDF au format EPUB"
},
"protectPdf": {
"description": "Ajoutez une protection par mot de passe à vos fichiers PDF en toute sécurité dans votre navigateur",
"name": "Protéger le PDF",
"shortDescription": "Protégez les fichiers PDF en toute sécurité avec un mot de passe"
},
"splitPdf": {
"description": "Extraire des pages spécifiques d'un fichier PDF à l'aide de numéros de page ou de plages (par exemple, 1, 5-8)",
"name": "Diviser le PDF",
"shortDescription": "Extraire des pages spécifiques d'un fichier PDF"
}
},
"resultFooter": {
"copy": "Copier dans le presse-papiers",
"download": "Télécharger"
},
"string": {
"createPalindrome": {
"description": "L'utilitaire de navigateur le plus simple au monde pour créer des palindromes à partir de n'importe quel texte. Saisissez du texte et transformez-le instantanément en un palindrome qui se lit de la même manière à l'endroit comme à l'envers. Idéal pour les jeux de mots, la création de motifs de texte symétriques ou l'exploration de curiosités linguistiques.",
"name": "Créer un palindrome",
"shortDescription": "Créez un texte qui se lit de la même manière à l'avant et à l'arrière"
},
"palindrome": {
"description": "L'utilitaire le plus simple au monde, basé sur un navigateur, permet de vérifier si un texte est un palindrome. Vérifiez instantanément si votre texte se lit de la même manière à l'endroit comme à l'envers. Idéal pour les jeux de mots, l'analyse linguistique ou la validation de structures de texte symétriques. Prend en charge divers délimiteurs et la détection de palindromes multi-mots.",
"name": "Palindrome",
"shortDescription": "Vérifiez si le texte se lit de la même manière à l'avant et à l'arrière"
},
"repeat": {
"description": "Cet outil vous permet de répéter un texte donné plusieurs fois avec un séparateur optionnel.",
"name": "Répéter le texte",
"shortDescription": "Répéter le texte plusieurs fois"
},
"reverse": {
"description": "L'utilitaire d'inversion de texte le plus simple au monde, basé sur un navigateur. Saisissez n'importe quel texte et inversez-le instantanément, caractère par caractère. Idéal pour créer du texte miroir, analyser des palindromes ou jouer avec les motifs de texte. Préserve les espaces et les caractères spéciaux lors de l'inversion.",
"name": "Inverse",
"shortDescription": "Inverser n'importe quel texte caractère par caractère"
},
"toMorse": {
"description": "L'utilitaire de conversion de texte en code Morse le plus simple au monde, accessible depuis un navigateur. Chargez votre texte dans le formulaire de saisie à gauche et obtenez instantanément le code Morse dans la zone de sortie. Puissant, gratuit et rapide. Chargez du texte et obtenez le code Morse.",
"name": "Chaîne en morse",
"shortDescription": "Encoder rapidement du texte en morse"
},
"uppercase": {
"description": "L'utilitaire de conversion de texte en majuscules le plus simple au monde, accessible depuis un navigateur. Saisissez simplement votre texte et il sera automatiquement converti en majuscules. Idéal pour créer des titres, mettre en valeur du texte ou standardiser son format. Prend en charge divers formats de texte et préserve les caractères spéciaux.",
"name": "Majuscule",
"shortDescription": "Convertir le texte en lettres majuscules"
}
},
"toolExamples": {
"subtitle": "Cliquez pour essayer !",
"title": "{{title}} Exemples"
},
"toolFileResult": {
"copied": "Fichier copié",
"copyFailed": "Échec de la copie : {{error}}",
"loading": "Chargement... Cela peut prendre un moment.",
"result": "Résultat"
},
"toolHeader": {
"seeExamples": "Voir des exemples"
},
"toolLayout": {
"allToolsTitle": "Tous {{type}} Outils"
},
"toolMultiFileResult": {
"copied": "Fichier copié",
"copyFailed": "Échec de la copie : {{error}}",
"loading": "Chargement... Cela peut prendre un moment.",
"result": "Résultat"
},
"toolMultipleAudioInput": {
"inputTitle": "Saisir {{type}}",
"noFilesSelected": "Aucun fichier sélectionné"
},
"toolMultiplePdfInput": {
"inputTitle": "Saisir {{type}}",
"noFilesSelected": "Aucun fichier sélectionné"
},
"toolOptions": {
"title": "Options d'outils"
},
"toolTextInput": {
"copied": "Texte copié",
"copyFailed": "Échec de la copie : {{error}}",
"input": "Texte d'entrée",
"placeholder": "Entrez votre texte ici..."
},
"toolTextResult": {
"copied": "Texte copié",
"copyFailed": "Échec de la copie : {{error}}",
"loading": "Chargement... Cela peut prendre un moment.",
"result": "Résultat"
}
}

View file

@ -1 +1,113 @@
{}
{
"changeSpeed": {
"defaultMultiplier": "Multiplicateur par défaut : 2 signifie 2x plus rapide",
"description": "Modifiez la vitesse de lecture des fichiers vidéo. Accélérez ou ralentissez les vidéos tout en conservant la synchronisation audio. Prise en charge de divers multiplicateurs de vitesse et formats vidéo courants.",
"inputTitle": "Entrée vidéo",
"newVideoSpeed": "Nouvelle vitesse vidéo",
"resultTitle": "Vidéo éditée",
"settingSpeed": "Réglage de la vitesse",
"shortDescription": "Modifier la vitesse de lecture vidéo",
"title": "Modifier la vitesse de la vidéo",
"toolInfo": {
"title": "Qu'est-ce qu'un {{title}}?"
}
},
"compress": {
"default": "Défaut",
"description": "Compressez vos vidéos en les adaptant à différentes résolutions (240p, 480p, 720p, etc.). Cet outil permet de réduire la taille des fichiers tout en conservant une qualité acceptable. Il prend en charge les formats vidéo courants comme MP4, WebM et OGG.",
"inputTitle": "Entrée vidéo",
"loadingText": "Compression vidéo...",
"lossless": "Sans perte",
"quality": "Qualité (CRF)",
"resolution": "Résolution",
"resultTitle": "Vidéo compressée",
"shortDescription": "Compresser des vidéos en les mettant à l'échelle vers différentes résolutions",
"title": "Compresser la vidéo",
"worst": "Pire"
},
"cropVideo": {
"cropCoordinates": "Coordonnées de culture",
"croppingVideo": "Recadrage vidéo",
"description": "Recadrez la vidéo pour supprimer les zones indésirables.",
"errorBeyondHeight": "La zone de recadrage s'étend au-delà de la hauteur de la vidéo ({{height}}px)",
"errorBeyondWidth": "La zone de recadrage s'étend au-delà de la largeur de la vidéo ({{width}}px)",
"errorCroppingVideo": "Erreur lors du recadrage de la vidéo. Veuillez vérifier les paramètres et le fichier vidéo.",
"errorLoadingDimensions": "Échec du chargement des dimensions de la vidéo",
"errorNonNegativeCoordinates": "Les coordonnées X et Y doivent être non négatives",
"errorPositiveDimensions": "La largeur et la hauteur doivent être positives",
"height": "Hauteur",
"inputTitle": "Entrée vidéo",
"loadVideoForDimensions": "Chargez une vidéo pour voir les dimensions",
"resultTitle": "Vidéo recadrée",
"shortDescription": "Recadrer la vidéo pour supprimer les zones indésirables",
"title": "Recadrer la vidéo",
"toolInfo": {
"description": "Cet outil vous permet de recadrer des fichiers vidéo afin de supprimer les zones indésirables. Vous pouvez spécifier la zone de recadrage en définissant les coordonnées X et Y, ainsi que les dimensions de largeur et de hauteur.",
"title": "Recadrer la vidéo"
},
"videoDimensions": "Dimensions de la vidéo : {{width}} × {{height}} pixels",
"videoInformation": "Informations vidéo",
"width": "Largeur",
"xCoordinate": "X (gauche)",
"yCoordinate": "Y (en haut)"
},
"flip": {
"description": "Retournez les fichiers vidéo horizontalement ou verticalement. Inversez les vidéos pour obtenir des effets spéciaux ou corriger les problèmes d'orientation.",
"flippingVideo": "Retournement vidéo",
"horizontalLabel": "Horizontal (miroir)",
"inputTitle": "Entrée vidéo",
"orientation": "Orientation",
"resultTitle": "Vidéo inversée",
"shortDescription": "Retourner la vidéo horizontalement ou verticalement",
"title": "Retourner la vidéo",
"verticalLabel": "Vertical (à l'envers)"
},
"gif": {
"changeSpeed": {
"description": "Modifiez la vitesse de lecture des animations GIF. Accélérez ou ralentissez les GIF tout en conservant une animation fluide.",
"shortDescription": "Modifier la vitesse de l'animation GIF",
"title": "Modifier la vitesse du GIF"
}
},
"loop": {
"description": "Créez une vidéo en boucle en répétant la vidéo originale plusieurs fois.",
"inputTitle": "Entrée vidéo",
"loopingVideo": "Vidéo en boucle",
"loops": "Boucles",
"numberOfLoops": "Nombre de boucles",
"resultTitle": "Vidéo en boucle",
"shortDescription": "Créer des fichiers vidéo en boucle",
"title": "Vidéo en boucle",
"toolInfo": {
"description": "Cet outil vous permet de créer une vidéo en boucle en répétant la vidéo originale plusieurs fois. Vous pouvez spécifier le nombre de répétitions.",
"title": "Qu'est-ce qu'un {{title}}?"
}
},
"rotate": {
"180Degrees": "180° (à l'envers)",
"270Degrees": "270° (90° dans le sens inverse des aiguilles d'une montre)",
"90Degrees": "90° dans le sens des aiguilles d'une montre",
"description": "Faites pivoter vos fichiers vidéo de 90, 180 ou 270 degrés. Corrigez l'orientation de vos vidéos ou créez des effets spéciaux grâce à un contrôle précis de la rotation.",
"inputTitle": "Entrée vidéo",
"resultTitle": "Vidéo tournée",
"rotatingVideo": "Vidéo rotative",
"rotation": "Rotation",
"shortDescription": "Faire pivoter la vidéo selon les degrés spécifiés",
"title": "Faire pivoter la vidéo"
},
"trim": {
"description": "Découpez vos fichiers vidéo en spécifiant les heures de début et de fin. Supprimez les sections indésirables au début ou à la fin de vos vidéos.",
"endTime": "Fin des temps",
"inputTitle": "Entrée vidéo",
"resultTitle": "Vidéo coupée",
"shortDescription": "Coupez la vidéo en supprimant les sections indésirables",
"startTime": "Heure de début",
"timestamps": "Horodatages",
"title": "Découper la vidéo"
},
"videoToGif": {
"description": "Convertissez des fichiers vidéo au format GIF animé. Extrayez des plages horaires spécifiques et créez des images animées partageables.",
"shortDescription": "Convertir une vidéo en GIF animé",
"title": "Vidéo en GIF"
}
}

View file

@ -1 +1,38 @@
{}
{
"xmlBeautifier": {
"description": "Formater XML avec une indentation et un espacement appropriés.",
"indentation": "Indentation",
"inputTitle": "XML d'entrée",
"resultTitle": "XML embelli",
"shortDescription": "Formater et embellir le code XML",
"title": "Embellisseur XML",
"toolInfo": {
"description": "Cet outil vous permet de formater les données XML avec une indentation et un espacement appropriés, les rendant plus lisibles et plus faciles à utiliser.",
"title": "Embellisseur XML"
},
"useSpaces": "Utiliser les espaces",
"useSpacesDescription": "Indenter la sortie avec des espaces",
"useTabs": "Utiliser les onglets",
"useTabsDescription": "Indenter la sortie avec des tabulations."
},
"xmlValidator": {
"description": "Valider la syntaxe et la structure XML.",
"placeholder": "Collez ou importez du XML ici...",
"shortDescription": "Valider le code XML pour les erreurs",
"title": "Validateur XML",
"toolInfo": {
"description": "Cet outil vous permet de valider la syntaxe et la structure XML. Il vérifie la bonne formation du XML et fournit des messages d'erreur détaillés pour tout problème détecté.",
"title": "Validateur XML"
}
},
"xmlViewer": {
"description": "Afficher et explorer la structure XML dans un format arborescent.",
"inputTitle": "XML d'entrée",
"resultTitle": "Vue arborescente du XML",
"title": "Visionneuse XML",
"toolInfo": {
"description": "Cet outil vous permet de visualiser les données XML dans un format d'arborescence hiérarchique, ce qui facilite l'exploration et la compréhension de la structure des documents XML.",
"title": "Visionneuse XML"
}
}
}

View file

@ -0,0 +1,94 @@
const fs = require('fs');
const path = require('path');
/**
* Recursively delete all empty folders in a directory
* @param {string} dirPath - The directory path to process
* @param {boolean} deleteRoot - Whether to delete the root directory if it becomes empty
* @returns {boolean} - Returns true if the directory is empty after processing
*/
function deleteEmptyFolders(dirPath, deleteRoot = false) {
if (!fs.existsSync(dirPath)) {
console.log(`Directory does not exist: ${dirPath}`);
return false;
}
if (!fs.statSync(dirPath).isDirectory()) {
console.log(`Path is not a directory: ${dirPath}`);
return false;
}
let files;
try {
files = fs.readdirSync(dirPath);
} catch (err) {
console.error(`Error reading directory ${dirPath}:`, err.message);
return false;
}
// Process each item in the directory
for (const file of files) {
const fullPath = path.join(dirPath, file);
try {
const stat = fs.statSync(fullPath);
if (stat.isDirectory()) {
// Recursively process subdirectories
const isEmpty = deleteEmptyFolders(fullPath, true);
// If subdirectory is empty, remove it from the files array
if (isEmpty) {
const index = files.indexOf(file);
if (index > -1) {
files.splice(index, 1);
}
}
}
} catch (err) {
console.error(`Error processing ${fullPath}:`, err.message);
}
}
// Check if directory is empty after processing
const isEmpty = files.length === 0;
if (isEmpty && deleteRoot) {
try {
fs.rmdirSync(dirPath);
console.log(`Deleted empty directory: ${dirPath}`);
return true;
} catch (err) {
console.error(`Error deleting directory ${dirPath}:`, err.message);
return false;
}
}
return isEmpty;
}
/**
* Main function to start the cleanup process
* @param {string} targetPath - The root directory to clean up
*/
function cleanupEmptyFolders(targetPath) {
console.log(`Starting cleanup of empty folders in: ${targetPath}`);
const absolutePath = path.resolve(targetPath);
const result = deleteEmptyFolders(absolutePath, false);
if (result) {
console.log(
'Cleanup completed. Root directory is empty but was not deleted.'
);
} else {
console.log('Cleanup completed.');
}
}
// Usage example
const targetDirectory = process.argv[2] || './target-folder';
cleanupEmptyFolders(targetDirectory);
// Export for use as a module
module.exports = { deleteEmptyFolders, cleanupEmptyFolders };

View file

@ -138,6 +138,40 @@ export default function ${capitalizeFirstLetter(toolNameCamelCase)}({
}
`
);
const validNamespaces = [
'string',
'number',
'video',
'list',
'json',
'time',
'csv',
'pdf',
'audio',
'xml',
'translation',
'image'
];
const isValidI18nNamespace = (value) => {
return validNamespaces.includes(value);
};
const getI18nNamespaceFromToolCategory = (category) => {
// Map image-related categories to 'image'
if (['png', 'image-generic'].includes(category)) {
return 'image';
} else if (['gif'].includes(category)) {
return 'video';
}
// Use type guard to check if category is a valid I18nNamespaces
if (isValidI18nNamespace(category)) {
return category;
}
return 'translation';
};
const i18nNamespace = getI18nNamespaceFromToolCategory(type);
createToolFile(
`meta.ts`,
`
@ -145,13 +179,15 @@ import { defineTool } from '@tools/defineTool';
import { lazy } from 'react';
export const tool = defineTool('${type}', {
name: '${toolNameTitleCase}',
i18n: {
name: '${i18nNamespace}:${toolNameCamelCase}.title',
description: '${i18nNamespace}:${toolNameCamelCase}.description',
shortDescription: '${i18nNamespace}:${toolNameCamelCase}.shortDescription',
longDescription: '${i18nNamespace}:${toolNameCamelCase}.longDescription'
},
path: '${toolName}',
icon: '',
description: '',
shortDescription: '',
keywords: ['${toolName.split('-').join("', '")}'],
longDescription: '',
component: lazy(() => import('./index'))
});
`

View file

@ -15,11 +15,16 @@ import { useState } from 'react';
import { DefinedTool } from '@tools/defineTool';
import { filterTools, tools } from '@tools/index';
import { useNavigate } from 'react-router-dom';
import _ from 'lodash';
import { Icon } from '@iconify/react';
import { getToolCategoryTitle } from '@utils/string';
import { useTranslation } from 'react-i18next';
import { validNamespaces } from '../i18n';
import {
getBookmarkedToolPaths,
isBookmarked,
toggleBookmarked
} from '@utils/bookmark';
import IconButton from '@mui/material/IconButton';
const GroupHeader = styled('div')(({ theme }) => ({
position: 'sticky',
@ -36,61 +41,59 @@ const GroupItems = styled('ul')({
padding: 0
});
type ToolInfo = {
label: string;
url: string;
};
export default function Hero() {
const { t } = useTranslation(validNamespaces);
const [inputValue, setInputValue] = useState<string>('');
const theme = useTheme();
const [filteredTools, setFilteredTools] = useState<DefinedTool[]>(tools);
const [bookmarkedToolPaths, setBookmarkedToolPaths] = useState<string[]>(
getBookmarkedToolPaths()
);
const navigate = useNavigate();
const exampleTools: { label: string; url: string; translationKey: string }[] =
[
{
label: t('translation:hero.examples.createTransparentImage'),
url: '/image-generic/create-transparent',
translationKey: 'translation:hero.examples.createTransparentImage'
},
{
label: t('translation:hero.examples.prettifyJson'),
url: '/json/prettify',
translationKey: 'translation:hero.examples.prettifyJson'
},
{
label: t('translation:hero.examples.changeGifSpeed'),
url: '/gif/change-speed',
translationKey: 'translation:hero.examples.changeGifSpeed'
},
{
label: t('translation:hero.examples.sortList'),
url: '/list/sort',
translationKey: 'translation:hero.examples.sortList'
},
{
label: t('translation:hero.examples.compressPng'),
url: '/png/compress-png',
translationKey: 'translation:hero.examples.compressPng'
},
{
label: t('translation:hero.examples.splitText'),
url: '/string/split',
translationKey: 'translation:hero.examples.splitText'
},
{
label: t('translation:hero.examples.splitPdf'),
url: '/pdf/split-pdf',
translationKey: 'translation:hero.examples.splitPdf'
},
{
label: t('translation:hero.examples.trimVideo'),
url: '/video/trim',
translationKey: 'translation:hero.examples.trimVideo'
},
{
label: t('translation:hero.examples.calculateNumberSum'),
url: '/number/sum',
translationKey: 'translation:hero.examples.calculateNumberSum'
}
];
const exampleTools: ToolInfo[] = [
{
label: t('translation:hero.examples.createTransparentImage'),
url: '/image-generic/create-transparent'
},
{
label: t('translation:hero.examples.prettifyJson'),
url: '/json/prettify'
},
{
label: t('translation:hero.examples.changeGifSpeed'),
url: '/gif/change-speed'
},
{
label: t('translation:hero.examples.sortList'),
url: '/list/sort'
},
{
label: t('translation:hero.examples.compressPng'),
url: '/png/compress-png'
},
{
label: t('translation:hero.examples.splitText'),
url: '/string/split'
},
{
label: t('translation:hero.examples.splitPdf'),
url: '/pdf/split-pdf'
},
{
label: t('translation:hero.examples.trimVideo'),
url: '/video/trim'
},
{
label: t('translation:hero.examples.calculateNumberSum'),
url: '/number/sum'
}
];
const handleInputChange = (
event: React.ChangeEvent<{}>,
@ -99,6 +102,24 @@ export default function Hero() {
setInputValue(newInputValue);
setFilteredTools(filterTools(tools, newInputValue, t));
};
const toolsMap = new Map<string, ToolInfo>();
for (const tool of filteredTools) {
toolsMap.set(tool.path, {
label: tool.name,
url: '/' + tool.path
});
}
const displayedTools =
bookmarkedToolPaths.length > 0
? bookmarkedToolPaths.flatMap((path) => {
const tool = toolsMap.get(path);
if (tool === undefined) {
return [];
}
return [{ ...tool, label: t(tool.label) }];
})
: exampleTools;
return (
<Box width={{ xs: '90%', md: '80%', lg: '60%' }}>
@ -159,14 +180,42 @@ export default function Hero() {
{...props}
onClick={() => navigate('/' + option.path)}
>
<Stack direction={'row'} spacing={2} alignItems={'center'}>
<Icon fontSize={20} icon={option.icon} />
<Box>
<Typography fontWeight={'bold'}>{t(option.name)}</Typography>
<Typography fontSize={12}>
{t(option.shortDescription)}
</Typography>
</Box>
<Stack
direction={'row'}
alignItems={'center'}
justifyContent={'space-between'}
width={'100%'}
>
<Stack direction={'row'} spacing={2} alignItems={'center'}>
<Icon fontSize={20} icon={option.icon} />
<Box>
<Typography fontWeight={'bold'}>{t(option.name)}</Typography>
<Typography fontSize={12}>
{t(option.shortDescription)}
</Typography>
</Box>
</Stack>
<IconButton
onClick={(e) => {
e.stopPropagation();
toggleBookmarked(option.path);
setBookmarkedToolPaths(getBookmarkedToolPaths());
}}
>
<Icon
fontSize={20}
color={
isBookmarked(option.path)
? theme.palette.primary.main
: theme.palette.grey[500]
}
icon={
isBookmarked(option.path)
? 'mdi:bookmark'
: 'mdi:bookmark-plus-outline'
}
/>
</IconButton>
</Stack>
</Box>
)}
@ -177,7 +226,7 @@ export default function Hero() {
}}
/>
<Grid container spacing={2} mt={2}>
{exampleTools.map((tool) => (
{displayedTools.map((tool) => (
<Grid
onClick={() =>
navigate(tool.url.startsWith('/') ? tool.url : `/${tool.url}`)
@ -186,7 +235,7 @@ export default function Hero() {
xs={12}
md={6}
lg={4}
key={tool.translationKey}
key={tool.label}
>
<Box
sx={{
@ -202,10 +251,30 @@ export default function Hero() {
cursor: 'pointer',
'&:hover': {
backgroundColor: 'background.hover'
}
},
height: '100%'
}}
>
<Typography>{tool.label}</Typography>
<Stack direction={'row'} spacing={1} alignItems={'center'}>
<Typography textAlign={'center'}>{tool.label}</Typography>
{bookmarkedToolPaths.length > 0 && (
<IconButton
onClick={(e) => {
e.stopPropagation();
const path = tool.url.substring(1);
toggleBookmarked(path);
setBookmarkedToolPaths(getBookmarkedToolPaths());
}}
size={'small'}
>
<Icon
icon={'mdi:close'}
color={theme.palette.grey[500]}
fontSize={15}
/>
</IconButton>
)}
</Stack>
</Box>
</Grid>
))}

View file

@ -1,4 +1,4 @@
import { Box, Button, styled, useTheme } from '@mui/material';
import { Box, Button, Stack, styled, useTheme } from '@mui/material';
import Typography from '@mui/material/Typography';
import ToolBreadcrumb from './ToolBreadcrumb';
import { capitalizeFirstLetter } from '../utils/string';
@ -7,7 +7,10 @@ import { Icon, IconifyIcon } from '@iconify/react';
import { categoriesColors } from '../config/uiConfig';
import { getToolsByCategory } from '@tools/index';
import { useEffect, useState } from 'react';
import { isBookmarked, toggleBookmarked } from '@utils/bookmark';
import IconButton from '@mui/material/IconButton';
import { useTranslation } from 'react-i18next';
import useMediaQuery from '@mui/material/useMediaQuery';
const StyledButton = styled(Button)(({ theme }) => ({
backgroundColor: 'white',
@ -22,11 +25,14 @@ interface ToolHeaderProps {
description: string;
icon?: IconifyIcon | string;
type: string;
path: string;
}
function ToolLinks() {
const { t } = useTranslation();
const [examplesVisible, setExamplesVisible] = useState(false);
const theme = useTheme();
const isMd = useMediaQuery(theme.breakpoints.down('md'));
useEffect(() => {
const timeout = setTimeout(() => {
@ -47,16 +53,18 @@ function ToolLinks() {
}
return (
<Grid container spacing={2} mt={1}>
<Grid item md={12} lg={6}>
<StyledButton
sx={{ backgroundColor: 'background.paper' }}
fullWidth
variant="outlined"
onClick={() => scrollToElement('tool')}
>
Use This Tool
</StyledButton>
</Grid>
{isMd && (
<Grid item md={12} lg={6}>
<StyledButton
sx={{ backgroundColor: 'background.paper' }}
fullWidth
variant="outlined"
onClick={() => scrollToElement('tool')}
>
Use This Tool
</StyledButton>
</Grid>
)}
{examplesVisible && (
<Grid item md={12} lg={6}>
<StyledButton
@ -82,8 +90,11 @@ export default function ToolHeader({
icon,
title,
description,
type
type,
path
}: ToolHeaderProps) {
const theme = useTheme();
const [bookmarked, setBookmarked] = useState<boolean>(isBookmarked(path));
return (
<Box my={4}>
<ToolBreadcrumb
@ -100,9 +111,27 @@ export default function ToolHeader({
/>
<Grid mt={1} container spacing={2}>
<Grid item xs={12} md={8}>
<Typography mb={2} fontSize={30} color={'primary'}>
{title}
</Typography>
<Stack direction={'row'} spacing={2} alignItems={'center'}>
<Typography mb={2} fontSize={30} color={'primary'}>
{title}
</Typography>
<IconButton
onClick={(e) => {
toggleBookmarked(path);
setBookmarked(!bookmarked);
}}
>
<Icon
fontSize={30}
color={
bookmarked
? theme.palette.primary.main
: theme.palette.grey[500]
}
icon={bookmarked ? 'mdi:bookmark' : 'mdi:bookmark-plus-outline'}
/>
</IconButton>
</Stack>
<Typography fontSize={20}>{description}</Typography>
<ToolLinks />
</Grid>

View file

@ -17,11 +17,13 @@ import { FullI18nKey } from '../i18n';
export default function ToolLayout({
children,
icon,
i18n,
type,
i18n
fullPath
}: {
icon?: IconifyIcon | string;
type: ToolCategory;
fullPath: string;
children: ReactNode;
i18n?: {
name: FullI18nKey;
@ -68,6 +70,7 @@ export default function ToolLayout({
description={toolDescription}
icon={icon}
type={type}
path={fullPath}
/>
{children}
<Separator backgroundColor="#5581b5" margin="50px" />

View file

@ -1,254 +0,0 @@
{
"app": {
"title": "Omni Tools",
"language": "Language"
},
"navbar": {
"home": "Home",
"tools": "Tools",
"buyMeACoffee": "Buy me a coffee"
},
"resultFooter": {
"download": "Download",
"copy": "Copy to clipboard"
},
"toolTextResult": {
"result": "Result",
"loading": "Loading... This may take a moment.",
"copied": "Text copied",
"copyFailed": "Failed to copy: {{error}}"
},
"toolFileResult": {
"result": "Result",
"loading": "Loading... This may take a moment.",
"copied": "File copied",
"copyFailed": "Failed to copy: {{error}}"
},
"toolMultiFileResult": {
"result": "Result",
"loading": "Loading... This may take a moment.",
"copied": "File copied",
"copyFailed": "Failed to copy: {{error}}"
},
"toolTextInput": {
"input": "Input text",
"placeholder": "Enter your text here...",
"copied": "Text copied",
"copyFailed": "Failed to copy: {{error}}"
},
"toolOptions": {
"title": "Tool options"
},
"hero": {
"title": "Get Things Done Quickly with",
"brand": "OmniTools",
"description": "Boost your productivity with OmniTools, the ultimate toolkit for getting things done quickly! Access thousands of user-friendly utilities for editing images, text, lists, and data, all directly from your browser.",
"searchPlaceholder": "Search all tools",
"examples": {
"createTransparentImage": "Create a transparent image",
"prettifyJson": "Prettify JSON",
"changeGifSpeed": "Change GIF speed",
"sortList": "Sort a list",
"compressPng": "Compress PNG",
"splitText": "Split a text",
"splitPdf": "Split PDF",
"trimVideo": "Trim video",
"calculateNumberSum": "Calculate number sum"
}
},
"toolHeader": {
"seeExamples": "See Examples"
},
"toolExamples": {
"title": "{{title}} Examples",
"subtitle": "Click to try!"
},
"inputFooter": {
"importFromFile": "Import from file",
"copyToClipboard": "Copy to clipboard",
"clear": "Clear"
},
"baseFileInput": {
"fileCopied": "File copied",
"copyFailed": "Failed to copy: {{error}}",
"dropFileHere": "Drop your {{type}} here",
"selectFileDescription": "Click here to select a {{type}} from your device, press Ctrl+V to use a {{type}} from your clipboard, or drag and drop a file from desktop"
},
"toolMultiplePdfInput": {
"noFilesSelected": "No files selected",
"inputTitle": "Input {{type}}"
},
"toolMultipleAudioInput": {
"noFilesSelected": "No files selected",
"inputTitle": "Input {{type}}"
},
"numericInputWithUnit": {
"unit": "Unit"
},
"toolLayout": {
"allToolsTitle": "All {{type}} Tools"
},
"list": {
"group": {
"name": "Group",
"description": "World's simplest browser-based utility for grouping list items. Input your list and specify grouping criteria to organize items into logical groups. Perfect for categorizing data, organizing information, or creating structured lists. Supports custom separators and various grouping options.",
"shortDescription": "Group list items by common properties"
},
"reverse": {
"name": "Reverse",
"description": "This is a super simple browser-based application prints all list items in reverse. The input items can be separated by any symbol and you can also change the separator of the reversed list items.",
"shortDescription": "Quickly reverse a list"
},
"sort": {
"name": "Sort",
"description": "This is a super simple browser-based application that sorts items in a list and arranges them in increasing or decreasing order. You can sort the items alphabetically, numerically, or by their length. You can also remove duplicate and empty items, as well as trim individual items that have whitespace around them. You can use any separator character to separate the input list items or alternatively use a regular expression to separate them. Additionally, you can create a new delimiter for the sorted output list.",
"shortDescription": "Quickly sort a list"
}
},
"string": {
"uppercase": {
"name": "Uppercase",
"description": "World's simplest browser-based utility for converting text to uppercase. Just input your text and it will be automatically converted to all capital letters. Perfect for creating headlines, emphasizing text, or standardizing text format. Supports various text formats and preserves special characters.",
"shortDescription": "Convert text to uppercase letters"
},
"reverse": {
"name": "Reverse",
"description": "World's simplest browser-based utility for reversing text. Input any text and get it instantly reversed, character by character. Perfect for creating mirror text, analyzing palindromes, or playing with text patterns. Preserves spaces and special characters while reversing.",
"shortDescription": "Reverse any text character by character"
},
"repeat": {
"name": "Repeat text",
"description": "This tool allows you to repeat a given text multiple times with an optional separator.",
"shortDescription": "Repeat text multiple times"
},
"createPalindrome": {
"name": "Create palindrome",
"description": "World's simplest browser-based utility for creating palindromes from any text. Input text and instantly transform it into a palindrome that reads the same forward and backward. Perfect for word games, creating symmetrical text patterns, or exploring linguistic curiosities.",
"shortDescription": "Create text that reads the same forward and backward"
},
"palindrome": {
"name": "Palindrome",
"description": "World's simplest browser-based utility for checking if text is a palindrome. Instantly verify if your text reads the same forward and backward. Perfect for word puzzles, linguistic analysis, or validating symmetrical text patterns. Supports various delimiters and multi-word palindrome detection.",
"shortDescription": "Check if text reads the same forward and backward"
},
"toMorse": {
"name": "String To morse",
"description": "World's simplest browser-based utility for converting text to Morse code. Load your text in the input form on the left and you'll instantly get Morse code in the output area. Powerful, free, and fast. Load text get Morse code.",
"shortDescription": "Quickly encode text to morse"
}
},
"pdf": {
"mergePdf": {
"name": "Merge PDF",
"description": "Combine multiple PDF files into a single document.",
"shortDescription": "Merge multiple PDF files into a single document"
},
"pdfToEpub": {
"name": "PDF to EPUB",
"description": "Transform PDF documents into EPUB files for better e-reader compatibility.",
"shortDescription": "Convert PDF files to EPUB format"
},
"protectPdf": {
"name": "Protect PDF",
"description": "Add password protection to your PDF files securely in your browser",
"shortDescription": "Password protect PDF files securely"
},
"splitPdf": {
"name": "Split PDF",
"description": "Extract specific pages from a PDF file using page numbers or ranges (e.g., 1,5-8)",
"shortDescription": "Extract specific pages from a PDF file"
},
"compressPdf": {
"name": "Compress PDF",
"description": "Reduce PDF file size while maintaining quality using Ghostscript",
"shortDescription": "Compress PDF files securely in your browser"
}
},
"number": {
"generate": {
"name": "Generate numbers",
"description": "Quickly calculate a list of integers in your browser. To get your list, just specify the first integer, change value and total count in the options below, and this utility will generate that many integers",
"shortDescription": "Quickly calculate a list of integers in your browser"
},
"sum": {
"name": "Sum numbers",
"description": "This is a super simple browser-based application that sums numbers. The input numbers can be separated by any symbol and you can also change the separator of the summed numbers.",
"shortDescription": "Quickly sum a list of numbers"
}
},
"audio": {
"extractAudio": {
"name": "Extract audio",
"description": "Extract the audio track from a video file and save it as a separate audio file in your chosen format (AAC, MP3, WAV).",
"shortDescription": "Extract audio from video files (MP4, MOV, etc.) to AAC, MP3, or WAV."
},
"changeSpeed": {
"name": "Change audio speed",
"description": "Change the playback speed of audio files. Speed up or slow down audio while maintaining pitch.",
"shortDescription": "Change the speed of audio files"
}
},
"csv": {
"findIncompleteCsvRecords": {
"name": "Find incomplete CSV records",
"description": "Just upload your CSV file in the form below and this tool will automatically check if none of the rows or columns are missing values. In the tool options, you can adjust the input file format (specify the delimiter, quote character, and comment character). Additionally, you can enable checking for empty values, skip empty lines, and set a limit on the number of error messages in the output.",
"shortDescription": "Quickly find rows and columns in CSV that are missing values."
}
},
"categories": {
"string": {
"title": "Text Tools",
"description": "Tools for working with text convert text to images, find and replace text, split text into fragments, join text lines, repeat text, and much more."
},
"png": {
"title": "PNG Tools",
"description": "Tools for working with PNG images convert PNGs to JPGs, create transparent PNGs, change PNG colors, crop, rotate, resize PNGs, and much more."
},
"number": {
"title": "Number Tools",
"description": "Tools for working with numbers generate number sequences, convert numbers to words and words to numbers, sort, round, factor numbers, and much more."
},
"gif": {
"title": "GIF Tools",
"description": "Tools for working with GIF animations create transparent GIFs, extract GIF frames, add text to GIF, crop, rotate, reverse GIFs, and much more."
},
"list": {
"title": "List Tools",
"description": "Tools for working with lists sort, reverse, randomize lists, find unique and duplicate list items, change list item separators, and much more."
},
"json": {
"title": "JSON Tools",
"description": "Tools for working with JSON data structures prettify and minify JSON objects, flatten JSON arrays, stringify JSON values, analyze data, and much more"
},
"time": {
"title": "Time Tools",
"description": "Tools for working with time and date calculate time differences, convert between time zones, format dates, generate date sequences, and much more."
},
"csv": {
"title": "CSV Tools",
"description": "Tools for working with CSV files - convert CSV to different formats, manipulate CSV data, validate CSV structure, and process CSV files efficiently."
},
"video": {
"title": "Video Tools",
"description": "Tools for working with videos extract frames from videos, create GIFs from videos, convert videos to different formats, and much more."
},
"pdf": {
"title": "PDF Tools",
"description": "Tools for working with PDF files - extract text from PDFs, convert PDFs to other formats, manipulate PDFs, and much more."
},
"image-generic": {
"title": "Image Tools",
"description": "Tools for working with pictures compress, resize, crop, convert to JPG, rotate, remove background and much more."
},
"audio": {
"title": "Audio Tools",
"description": "Tools for working with audio extract audio from video, adjusting audio speed, merging multiple audio files and much more."
},
"xml": {
"title": "XML Tools",
"description": "Tools for working with XML data structures - viewer, beautifier, validator and much more"
},
"seeAll": "See all {{title}}",
"try": "Try {{title}}"
}
}

View file

@ -1,254 +0,0 @@
{
"app": {
"title": "ओमनी टूल्स",
"language": "भाषा"
},
"navbar": {
"home": "होम",
"tools": "टूल्स",
"buyMeACoffee": "मुझे कॉफी खरीदें"
},
"resultFooter": {
"download": "डाउनलोड",
"copy": "क्लिपबोर्ड पर कॉपी करें"
},
"toolTextResult": {
"result": "परिणाम",
"loading": "लोड हो रहा है... इसमें कुछ समय लग सकता है।",
"copied": "टेक्स्ट कॉपी किया गया",
"copyFailed": "कॉपी करने में विफल: {{error}}"
},
"toolFileResult": {
"result": "परिणाम",
"loading": "लोड हो रहा है... इसमें कुछ समय लग सकता है।",
"copied": "फ़ाइल कॉपी की गई",
"copyFailed": "कॉपी करने में विफल: {{error}}"
},
"toolMultiFileResult": {
"result": "परिणाम",
"loading": "लोड हो रहा है... इसमें कुछ समय लग सकता है।",
"copied": "फ़ाइल कॉपी की गई",
"copyFailed": "कॉपी करने में विफल: {{error}}"
},
"toolTextInput": {
"input": "इनपुट टेक्स्ट",
"placeholder": "यहाँ अपना टेक्स्ट दर्ज करें...",
"copied": "टेक्स्ट कॉपी किया गया",
"copyFailed": "कॉपी करने में विफल: {{error}}"
},
"toolOptions": {
"title": "टूल विकल्प"
},
"hero": {
"title": "के साथ जल्दी काम करें",
"brand": "ओमनीटूल्स",
"description": "ओमनीटूल्स के साथ अपनी उत्पादकता बढ़ाएं, जल्दी काम करने के लिए अंतिम टूलकिट! छवियों, टेक्स्ट, सूचियों और डेटा को संपादित करने के लिए हजारों उपयोगकर्ता-अनुकूल उपयोगिताओं तक पहुंचें, सभी सीधे अपने ब्राउज़र से।",
"searchPlaceholder": "सभी टूल्स खोजें",
"examples": {
"createTransparentImage": "पारदर्शी छवि बनाएं",
"prettifyJson": "JSON सुंदर बनाएं",
"changeGifSpeed": "GIF गति बदलें",
"sortList": "सूची क्रमबद्ध करें",
"compressPng": "PNG संपीड़ित करें",
"splitText": "टेक्स्ट विभाजित करें",
"splitPdf": "PDF विभाजित करें",
"trimVideo": "वीडियो ट्रिम करें",
"calculateNumberSum": "संख्याओं का योग करें"
}
},
"toolHeader": {
"seeExamples": "उदाहरण देखें"
},
"toolExamples": {
"title": "{{title}} उदाहरण",
"subtitle": "आज़माने के लिए क्लिक करें!"
},
"inputFooter": {
"importFromFile": "फ़ाइल से आयात करें",
"copyToClipboard": "क्लिपबोर्ड पर कॉपी करें",
"clear": "साफ़ करें"
},
"baseFileInput": {
"fileCopied": "फ़ाइल कॉपी की गई",
"copyFailed": "कॉपी करने में विफल: {{error}}",
"dropFileHere": "यहाँ अपनी {{type}} डालें",
"selectFileDescription": "यहाँ क्लिक करें अपने डिवाइस से {{type}} चुनने के लिए, Ctrl+V दबाएं क्लिपबोर्ड से {{type}} का उपयोग करने के लिए, या डेस्कटॉप से फ़ाइल को खींचकर डालें"
},
"toolMultiplePdfInput": {
"noFilesSelected": "कोई फ़ाइल चयनित नहीं",
"inputTitle": "इनपुट {{type}}"
},
"toolMultipleAudioInput": {
"noFilesSelected": "कोई फ़ाइल चयनित नहीं",
"inputTitle": "इनपुट {{type}}"
},
"numericInputWithUnit": {
"unit": "इकाई"
},
"toolLayout": {
"allToolsTitle": "सभी {{type}} टूल्स"
},
"list": {
"group": {
"name": "समूह",
"description": "सूची आइटम को समूहित करने के लिए दुनिया का सबसे सरल ब्राउज़र-आधारित उपयोगिता। अपनी सूची इनपुट करें और समूहीकरण मानदंड निर्दिष्ट करें ताकि आइटम को तार्किक समूहों में व्यवस्थित किया जा सके। डेटा को वर्गीकृत करने, जानकारी को व्यवस्थित करने, या संरचित सूचियां बनाने के लिए बिल्कुल सही। कस्टम विभाजक और विभिन्न समूहीकरण विकल्पों का समर्थन करता है।",
"shortDescription": "सामान्य गुणों द्वारा सूची आइटम को समूहित करें"
},
"reverse": {
"name": "उलटा",
"description": "यह एक सुपर सरल ब्राउज़र-आधारित एप्लिकेशन है जो सभी सूची आइटम को उल्टे क्रम में प्रिंट करती है। इनपुट आइटम किसी भी प्रतीक से अलग किए जा सकते हैं और आप उलटे सूची आइटम के विभाजक को भी बदल सकते हैं।",
"shortDescription": "जल्दी से सूची को उलटा करें"
},
"sort": {
"name": "क्रमबद्ध",
"description": "यह एक सुपर सरल ब्राउज़र-आधारित एप्लिकेशन है जो सूची में आइटम को क्रमबद्ध करती है और उन्हें बढ़ते या घटते क्रम में व्यवस्थित करती है। आप आइटम को वर्णानुक्रमिक, संख्यात्मक, या उनकी लंबाई के अनुसार क्रमबद्ध कर सकते हैं। आप डुप्लिकेट और खाली आइटम को भी हटा सकते हैं, साथ ही उन आइटम को ट्रिम कर सकते हैं जिनके चारों ओर सफेद स्थान है। आप इनपुट सूची आइटम को अलग करने के लिए कोई भी विभाजक वर्ण उपयोग कर सकते हैं या वैकल्पिक रूप से उन्हें अलग करने के लिए एक नियमित अभिव्यक्ति का उपयोग कर सकते हैं। इसके अतिरिक्त, आप क्रमबद्ध आउटपुट सूची के लिए एक नया डिलिमिटर बना सकते हैं।",
"shortDescription": "जल्दी से सूची को क्रमबद्ध करें"
}
},
"string": {
"uppercase": {
"name": "बड़े अक्षर",
"description": "टेक्स्ट को बड़े अक्षरों में बदलने के लिए दुनिया का सबसे सरल ब्राउज़र-आधारित उपयोगिता। बस अपना टेक्स्ट इनपुट करें और यह स्वचालित रूप से सभी बड़े अक्षरों में परिवर्तित हो जाएगा। शीर्षक बनाने, टेक्स्ट पर जोर देने, या टेक्स्ट प्रारूप को मानकीकृत करने के लिए बिल्कुल सही। विभिन्न टेक्स्ट प्रारूपों का समर्थन करता है और विशेष वर्णों को संरक्षित करता है।",
"shortDescription": "टेक्स्ट को बड़े अक्षरों में बदलें"
},
"reverse": {
"name": "उलटा",
"description": "टेक्स्ट को उलटने के लिए दुनिया का सबसे सरल ब्राउज़र-आधारित उपयोगिता। कोई भी टेक्स्ट इनपुट करें और इसे तुरंत उलटा प्राप्त करें, वर्ण दर वर्ण। दर्पण टेक्स्ट बनाने, पैलिंड्रोम का विश्लेषण करने, या टेक्स्ट पैटर्न के साथ खेलने के लिए बिल्कुल सही। उलटते समय स्थान और विशेष वर्णों को संरक्षित करता है।",
"shortDescription": "किसी भी टेक्स्ट को वर्ण दर वर्ण उलटा करें"
},
"repeat": {
"name": "टेक्स्ट दोहराएं",
"description": "यह टूल आपको वैकल्पिक विभाजक के साथ दिए गए टेक्स्ट को कई बार दोहराने की अनुमति देता है।",
"shortDescription": "टेक्स्ट को कई बार दोहराएं"
},
"createPalindrome": {
"name": "पैलिंड्रोम बनाएं",
"description": "किसी भी टेक्स्ट से पैलिंड्रोम बनाने के लिए दुनिया का सबसे सरल ब्राउज़र-आधारित उपयोगिता। टेक्स्ट इनपुट करें और इसे तुरंत एक पैलिंड्रोम में बदल दें जो आगे और पीछे एक जैसा पढ़ता है। शब्द खेलों, सममित टेक्स्ट पैटर्न बनाने, या भाषाई जिज्ञासाओं की खोज के लिए बिल्कुल सही।",
"shortDescription": "ऐसा टेक्स्ट बनाएं जो आगे और पीछे एक जैसा पढ़ता है"
},
"palindrome": {
"name": "पैलिंड्रोम",
"description": "यह जांचने के लिए दुनिया का सबसे सरल ब्राउज़र-आधारित उपयोगिता कि टेक्स्ट पैलिंड्रोम है या नहीं। तुरंत सत्यापित करें कि क्या आपका टेक्स्ट आगे और पीछे एक जैसा पढ़ता है। शब्द पहेलियों, भाषाई विश्लेषण, या सममित टेक्स्ट पैटर्न को मान्य करने के लिए बिल्कुल सही। विभिन्न विभाजकों और बहु-शब्द पैलिंड्रोम पहचान का समर्थन करता है।",
"shortDescription": "जांचें कि क्या टेक्स्ट आगे और पीछे एक जैसा पढ़ता है"
},
"toMorse": {
"name": "टेक्स्ट से मोर्स",
"description": "टेक्स्ट को मोर्स कोड में बदलने के लिए दुनिया का सबसे सरल ब्राउज़र-आधारित उपयोगिता। बाईं ओर इनपुट फॉर्म में अपना टेक्स्ट लोड करें और आपको तुरंत आउटपुट क्षेत्र में मोर्स कोड मिलेगा। शक्तिशाली, मुफ्त, और तेज़। टेक्स्ट लोड करें मोर्स कोड प्राप्त करें।",
"shortDescription": "टेक्स्ट को जल्दी से मोर्स में एनकोड करें"
}
},
"pdf": {
"mergePdf": {
"name": "पीडीएफ मर्ज करें",
"description": "कई पीडीएफ फ़ाइलों को एक दस्तावेज़ में जोड़ें।",
"shortDescription": "कई पीडीएफ फ़ाइलों को एक दस्तावेज़ में मर्ज करें"
},
"pdfToEpub": {
"name": "पीडीएफ से ईपीयूबी",
"description": "बेहतर ई-रीडर संगतता के लिए पीडीएफ दस्तावेज़ों को ईपीयूबी फ़ाइलों में बदलें।",
"shortDescription": "पीडीएफ फ़ाइलों को ईपीयूबी प्रारूप में बदलें"
},
"protectPdf": {
"name": "पीडीएफ सुरक्षित करें",
"description": "अपने ब्राउज़र में सुरक्षित रूप से अपनी पीडीएफ फ़ाइलों में पासवर्ड सुरक्षा जोड़ें",
"shortDescription": "पीडीएफ फ़ाइलों को सुरक्षित रूप से पासवर्ड सुरक्षित करें"
},
"splitPdf": {
"name": "पीडीएफ विभाजित करें",
"description": "पेज नंबर या श्रेणियों का उपयोग करके पीडीएफ फ़ाइल से विशिष्ट पेज निकालें (उदाहरण के लिए, 1,5-8)",
"shortDescription": "पीडीएफ फ़ाइल से विशिष्ट पेज निकालें"
},
"compressPdf": {
"name": "पीडीएफ संपीड़ित करें",
"description": "गोस्टस्क्रिप्ट का उपयोग करके गुणवत्ता बनाए रखते हुए पीडीएफ फ़ाइल आकार कम करें",
"shortDescription": "अपने ब्राउज़र में सुरक्षित रूप से पीडीएफ फ़ाइलों को संपीड़ित करें"
}
},
"number": {
"generate": {
"name": "संख्याएं उत्पन्न करें",
"description": "अपने ब्राउज़र में पूर्णांकों की सूची की तुरंत गणना करें। अपनी सूची प्राप्त करने के लिए, बस पहला पूर्णांक निर्दिष्ट करें, नीचे विकल्पों में मान और कुल संख्या बदलें, और यह उपयोगिता उतने पूर्णांक उत्पन्न करेगी",
"shortDescription": "अपने ब्राउज़र में पूर्णांकों की सूची की तुरंत गणना करें"
},
"sum": {
"name": "संख्याएं जोड़ें",
"description": "यह एक सुपर सरल ब्राउज़र-आधारित एप्लिकेशन है जो संख्याओं को जोड़ती है। इनपुट संख्याएं किसी भी प्रतीक से अलग की जा सकती हैं और आप जोड़ी गई संख्याओं के विभाजक को भी बदल सकते हैं।",
"shortDescription": "जल्दी से संख्याओं की सूची जोड़ें"
}
},
"audio": {
"extractAudio": {
"name": "ऑडियो निकालें",
"description": "वीडियो फ़ाइल से ऑडियो ट्रैक निकालें और इसे अपने चुने हुए प्रारूप (एएसी, एमपी3, डब्ल्यूएवी) में एक अलग ऑडियो फ़ाइल के रूप में सहेजें।",
"shortDescription": "वीडियो फ़ाइलों (एमपी4, एमओवी, आदि) से ऑडियो निकालें एएसी, एमपी3, या डब्ल्यूएवी में।"
},
"changeSpeed": {
"name": "ऑडियो गति बदलें",
"description": "ऑडियो फ़ाइलों की प्लेबैक गति बदलें। पिच बनाए रखते हुए ऑडियो को तेज़ या धीमा करें।",
"shortDescription": "ऑडियो फ़ाइलों की गति बदलें"
}
},
"csv": {
"findIncompleteCsvRecords": {
"name": "अधूरे सीएसवी रिकॉर्ड खोजें",
"description": "बस नीचे फॉर्म में अपनी सीएसवी फ़ाइल अपलोड करें और यह टूल स्वचालित रूप से जांच करेगा कि क्या कोई पंक्ति या स्तंभ मूल्य नहीं खो रहे हैं। टूल विकल्पों में, आप इनपुट फ़ाइल प्रारूप को समायोजित कर सकते हैं (विभाजक, उद्धरण वर्ण, और टिप्पणी वर्ण निर्दिष्ट करें)। इसके अतिरिक्त, आप खाली मूल्यों की जांच सक्षम कर सकते हैं, खाली पंक्तियों को छोड़ सकते हैं, और आउटपुट में त्रुटि संदेशों की संख्या पर सीमा निर्धारित कर सकते हैं।",
"shortDescription": "सीएसवी में जल्दी से पंक्तियां और स्तंभ खोजें जो मूल्य खो रहे हैं।"
}
},
"categories": {
"string": {
"title": "टेक्स्ट टूल्स",
"description": "टेक्स्ट के साथ काम करने के लिए टूल्स टेक्स्ट को छवियों में बदलें, टेक्स्ट खोजें और बदलें, टेक्स्ट को टुकड़ों में विभाजित करें, टेक्स्ट पंक्तियों को जोड़ें, टेक्स्ट दोहराएं, और बहुत कुछ।"
},
"png": {
"title": "PNG टूल्स",
"description": "PNG छवियों के साथ काम करने के लिए टूल्स PNG को JPG में बदलें, पारदर्शी PNG बनाएं, PNG रंग बदलें, क्रॉप, घुमाएं, PNG का आकार बदलें, और बहुत कुछ।"
},
"number": {
"title": "संख्या टूल्स",
"description": "संख्याओं के साथ काम करने के लिए टूल्स संख्या अनुक्रम उत्पन्न करें, संख्याओं को शब्दों में और शब्दों को संख्याओं में बदलें, क्रमबद्ध करें, गोल करें, संख्याओं का गुणनखंड करें, और बहुत कुछ।"
},
"gif": {
"title": "GIF टूल्स",
"description": "GIF एनिमेशन के साथ काम करने के लिए टूल्स पारदर्शी GIF बनाएं, GIF फ्रेम निकालें, GIF में टेक्स्ट जोड़ें, क्रॉप, घुमाएं, GIF को उलटा करें, और बहुत कुछ।"
},
"list": {
"title": "सूची टूल्स",
"description": "सूचियों के साथ काम करने के लिए टूल्स क्रमबद्ध करें, उलटा करें, सूचियों को यादृच्छिक करें, अद्वितीय और डुप्लिकेट सूची आइटम खोजें, सूची आइटम विभाजक बदलें, और बहुत कुछ।"
},
"json": {
"title": "JSON टूल्स",
"description": "JSON डेटा संरचनाओं के साथ काम करने के लिए टूल्स JSON ऑब्जेक्ट को सुंदर और संक्षिप्त करें, JSON सरणियों को समतल करें, JSON मूल्यों को स्ट्रिंगिफाई करें, डेटा का विश्लेषण करें, और बहुत कुछ"
},
"time": {
"title": "समय टूल्स",
"description": "समय और तिथि के साथ काम करने के लिए टूल्स समय अंतर की गणना करें, समय क्षेत्रों के बीच बदलें, तिथियों को फॉर्मेट करें, तिथि अनुक्रम उत्पन्न करें, और बहुत कुछ।"
},
"csv": {
"title": "CSV टूल्स",
"description": "CSV फ़ाइलों के साथ काम करने के लिए टूल्स - CSV को विभिन्न प्रारूपों में बदलें, CSV डेटा में हेरफेर करें, CSV संरचना को मान्य करें, और CSV फ़ाइलों को कुशलतापूर्वक संसाधित करें।"
},
"video": {
"title": "वीडियो टूल्स",
"description": "वीडियो के साथ काम करने के लिए टूल्स वीडियो से फ्रेम निकालें, वीडियो से GIF बनाएं, वीडियो को विभिन्न प्रारूपों में बदलें, और बहुत कुछ।"
},
"pdf": {
"title": "PDF टूल्स",
"description": "PDF फ़ाइलों के साथ काम करने के लिए टूल्स - PDF से टेक्स्ट निकालें, PDF को अन्य प्रारूपों में बदलें, PDF में हेरफेर करें, और बहुत कुछ।"
},
"image-generic": {
"title": "छवि टूल्स",
"description": "चित्रों के साथ काम करने के लिए टूल्स संपीड़ित करें, आकार बदलें, क्रॉप करें, JPG में बदलें, घुमाएं, पृष्ठभूमि हटाएं और बहुत कुछ।"
},
"audio": {
"title": "ऑडियो टूल्स",
"description": "ऑडियो के साथ काम करने के लिए टूल्स वीडियो से ऑडियो निकालें, ऑडियो गति समायोजित करें, कई ऑडियो फ़ाइलों को मर्ज करें और बहुत कुछ।"
},
"xml": {
"title": "XML टूल्स",
"description": "XML डेटा संरचनाओं के साथ काम करने के लिए टूल्स - व्यूअर, ब्यूटिफायर, वैलिडेटर और बहुत कुछ"
},
"seeAll": "सभी {{title}} देखें",
"try": "{{title}} आज़माएं"
}
}

View file

@ -1,43 +0,0 @@
{
"extractAudio": {
"title": "Extract Audio from Video",
"description": "Extract audio track from video files.",
"inputTitle": "Input Video",
"resultTitle": "Extracted Audio",
"outputFormat": "Output Format",
"outputFormatDescription": "Select the format for the audio to be extracted as.",
"extractingAudio": "Extracting Audio",
"toolInfo": {
"title": "What is {{title}}?",
"description": "This tool allows you to extract the audio track from video files. You can choose from different audio formats including AAC, MP3, and WAV."
},
"shortDescription": "Extract audio from video files (MP4, MOV, etc.) to AAC, MP3, or WAV."
},
"changeSpeed": {
"title": "Change audio speed",
"description": "Change the playback speed of audio files. Speed up or slow down audio while maintaining pitch.",
"shortDescription": "Change the speed of audio files",
"newAudioSpeed": "New Audio Speed",
"speedDescription": "Default multiplier: 2 means 2x faster",
"outputFormat": "Output Format",
"inputTitle": "Input Audio",
"settingSpeed": "Setting Speed",
"resultTitle": "Edited Audio",
"toolInfo": {
"title": "What is {{title}}?",
"description": ""
}
},
"mergeAudio": {
"title": "Merge Audio",
"description": "Combine multiple audio files into a single audio file by concatenating them in sequence.",
"shortDescription": "Merge multiple audio files into one (MP3, AAC, WAV).",
"longDescription": "This tool allows you to merge multiple audio files into a single file by concatenating them in the order you upload them. Perfect for combining podcast segments, music tracks, or any audio files that need to be joined together. Supports various audio formats including MP3, AAC, and WAV."
},
"trim": {
"title": "Trim Audio",
"description": "Cut and trim audio files to extract specific segments by specifying start and end times.",
"shortDescription": "Trim audio files to extract specific time segments (MP3, AAC, WAV).",
"longDescription": "This tool allows you to trim audio files by specifying start and end times. You can extract specific segments from longer audio files, remove unwanted parts, or create shorter clips. Supports various audio formats including MP3, AAC, and WAV. Perfect for podcast editing, music production, or any audio editing needs."
}
}

View file

@ -1,64 +0,0 @@
{
"extractAudio": {
"title": "ऑडियो निकालें",
"description": "वीडियो फ़ाइल से ऑडियो ट्रैक निकालें।",
"inputTitle": "इनपुट वीडियो",
"resultTitle": "निकाला गया ऑडियो",
"extractionOptions": "निकालने के विकल्प",
"audioFormat": "ऑडियो प्रारूप",
"formatAac": "AAC",
"formatMp3": "MP3",
"formatWav": "WAV",
"audioQuality": "ऑडियो गुणवत्ता",
"qualityHigh": "उच्च",
"qualityMedium": "मध्यम",
"qualityLow": "कम",
"extractAllTracks": "सभी ट्रैक निकालें"
},
"changeSpeed": {
"title": "ऑडियो गति बदलें",
"description": "ऑडियो फ़ाइलों की प्लेबैक गति बदलें।",
"inputTitle": "इनपुट ऑडियो",
"resultTitle": "गति बदली गई ऑडियो",
"speedOptions": "गति विकल्प",
"speedFactor": "गति कारक",
"factorPlaceholder": "कारक (जैसे 0.5, 1.5, 2.0)",
"preservePitch": "पिच संरक्षित करें",
"outputFormat": "आउटपुट प्रारूप",
"formatMp3": "MP3",
"formatWav": "WAV",
"formatAac": "AAC"
},
"mergeAudio": {
"title": "ऑडियो मर्ज करें",
"description": "कई ऑडियो फ़ाइलों को एक में जोड़ें।",
"inputTitle": "इनपुट ऑडियो फ़ाइलें",
"resultTitle": "मर्ज किया गया ऑडियो",
"mergeOptions": "मर्ज विकल्प",
"mergeMethod": "मर्ज विधि",
"methodConcat": "क्रमबद्ध जोड़ना",
"methodMix": "मिश्रण",
"outputFormat": "आउटपुट प्रारूप",
"formatMp3": "MP3",
"formatWav": "WAV",
"formatAac": "AAC"
},
"trim": {
"title": "ऑडियो ट्रिम करें",
"description": "ऑडियो फ़ाइल से अनावश्यक भाग हटाएं।",
"inputTitle": "इनपुट ऑडियो",
"resultTitle": "ट्रिम किया गया ऑडियो",
"trimOptions": "ट्रिम विकल्प",
"startTime": "शुरुआती समय",
"startPlaceholder": "सेकंड",
"endTime": "अंतिम समय",
"endPlaceholder": "सेकंड",
"fadeIn": "फेड इन",
"fadeInPlaceholder": "सेकंड",
"fadeOut": "फेड आउट",
"fadeOutPlaceholder": "सेकंड",
"outputFormat": "आउटपुट प्रारूप",
"formatMp3": "MP3",
"formatWav": "WAV"
}
}

View file

@ -1,114 +0,0 @@
{
"insertCsvColumns": {
"title": "Insert CSV columns",
"description": "Add new columns to CSV data at specified positions.",
"inputTitle": "Input CSV",
"resultTitle": "Output CSV",
"csvToInsert": "CSV to insert",
"csvSeparator": "CSV separator",
"csvToInsertDescription": "Enter one or more columns you want to insert into the CSV. the character used to delimit columns has to be the same with the one in the CSV input file. Ps: Blank lines will be ignored",
"csvOptions": "CSV Options",
"separatorDescription": "Enter the character used to delimit columns in the CSV input file.",
"quoteCharDescription": "Enter the quote character used to quote the CSV input fields.",
"commentCharacterDescription": "Enter the character indicating the start of a comment line. Lines starting with this symbol will be skipped.",
"fillWithEmptyValues": "Fill With Empty Values",
"fillWithCustomValues": "Fill With Customs Values",
"customFillDescription": "If the input CSV file is incomplete (missing values), then add empty fields or custom symbols to records to make a well-formed CSV?",
"customFillValueDescription": "Use this custom value to fill in missing fields. (Works only with \"Custom Values\" mode above.)",
"positionOptions": "Position Options",
"prependColumns": "Prepend columns",
"appendColumns": "Append columns",
"customPosition": "Custom position",
"insertingPositionDescription": "Specify where to insert the columns in the CSV file.",
"headerName": "Header name",
"position": "Position",
"customPositionOptionsDescription": "Select the method to insert the columns in the CSV file.",
"headerNameDescription": "Header of the column you want to insert columns after.",
"rowNumberDescription": "Number of the column you want to insert columns after.",
"toolInfo": {
"title": "Insert CSV Columns",
"description": "This tool allows you to insert new columns into CSV data at specified positions. You can prepend, append, or insert columns at custom positions based on header names or column numbers."
},
"shortDescription": "Quickly insert one or more new columns anywhere in a CSV file."
},
"csvToJson": {
"inputTitle": "Input CSV",
"resultTitle": "Output JSON",
"inputCsvFormat": "Input CSV Format",
"columnSeparator": "Column Separator (e.g., , ; \\t)",
"fieldQuote": "Field Quote (e.g., \")",
"commentSymbol": "Comment Symbol (e.g., #)",
"conversionOptions": "Conversion Options",
"useHeaders": "Use Headers",
"useHeadersDescription": "Treat the first row as column headers",
"skipEmptyLines": "Skip Empty Lines",
"skipEmptyLinesDescription": "Ignore empty lines in the input CSV",
"dynamicTypes": "Dynamic Types",
"dynamicTypesDescription": "Automatically convert numbers and booleans",
"errorParsing": "Error parsing CSV: {{error}}",
"title": "Convert CSV to JSON",
"description": "Convert CSV files to JSON format with customizable options for delimiters, quotes, and output formatting. Support for headers, comments, and dynamic type conversion.",
"shortDescription": "Convert CSV data to JSON format."
},
"findIncompleteCsvRecords": {
"title": "Find incomplete CSV records",
"inputTitle": "Input CSV",
"resultTitle": "CSV Status",
"toolInfo": {
"title": "What is a {{title}}?"
},
"csvInputOptions": "CSV Input Options",
"csvSeparatorDescription": "Enter the character used to delimit columns in the CSV input file.",
"quoteCharacterDescription": "Enter the quote character used to quote the CSV input fields.",
"commentCharacterDescription": "Enter the character indicating the start of a comment line. Lines starting with this symbol will be skipped.",
"checkingOptions": "Checking Options",
"deleteLinesWithNoData": "Delete Lines with No Data",
"deleteLinesWithNoDataDescription": "Remove empty lines from CSV input file.",
"findEmptyValues": "Find Empty Values",
"findEmptyValuesDescription": "Display a message about CSV fields that are empty (These are not missing fields but fields that contain nothing).",
"limitNumberOfMessages": "Limit number of messages",
"messageLimitDescription": "Set the limit of number of messages in the output.",
"description": "Just upload your CSV file in the form below and this tool will automatically check if none of the rows or columns are missing values. In the tool options, you can adjust the input file format (specify the delimiter, quote character, and comment character). Additionally, you can enable checking for empty values, skip empty lines, and set a limit on the number of error messages in the output.",
"shortDescription": "Quickly find rows and columns in CSV that are missing values."
},
"changeCsvSeparator": {
"title": "Change CSV Separator",
"description": "Change the delimiter/separator in CSV files. Convert between different CSV formats like comma, semicolon, tab, or custom separators.",
"shortDescription": "Change CSV file delimiter"
},
"csvRowsToColumns": {
"title": "Convert CSV Rows to Columns",
"description": "This tool converts rows of a CSV (Comma Separated Values) file into columns. It extracts the horizontal lines from the input CSV one by one, rotates them 90 degrees, and outputs them as vertical columns one after another, separated by commas.', longDescription: 'This tool converts rows of a CSV (Comma Separated Values) file into columns. For example, if the input CSV data has 6 rows, then the output will have 6 columns and the elements of the rows will be arranged from the top to bottom. In a well-formed CSV, the number of values in each row is the same. However, in cases when rows are missing fields, the program can fix them and you can choose from the available options: fill missing data with empty elements or replace missing data with custom elements, such as \"missing\", \"?\", or \"x\". During the conversion process, the tool also cleans the CSV file from unnecessary information, such as empty lines (these are lines without visible information) and comments. To help the tool correctly identify comments, in the options, you can specify the symbol at the beginning of a line that starts a comment. This symbol is typically a hash \"#\" or double slash \"//\". Csv-abulous!.",
"shortDescription": "Convert CSV rows to columns.",
"longDescription": "This tool converts rows of a CSV (Comma Separated Values) file into columns. For example, if the input CSV data has 6 rows, then the output will have 6 columns and the elements of the rows will be arranged from the top to bottom. In a well-formed CSV, the number of values in each row is the same. However, in cases when rows are missing fields, the program can fix them and you can choose from the available options: fill missing data with empty elements or replace missing data with custom elements, such as"
},
"csvToTsv": {
"title": "Convert CSV to TSV",
"description": "Upload your CSV file in the form below and it will automatically get converted to a TSV file. In the tool options, you can customize the input CSV format specify the field delimiter, quotation character, and comment symbol, as well as skip empty CSV lines, and choose whether to preserve CSV column headers.",
"shortDescription": "Convert CSV data to TSV format.",
"longDescription": "This tool transforms Comma Separated Values (CSV) data to Tab Separated Values (TSV) data. Both CSV and TSV are popular file formats for storing tabular data but they use different delimiters to separate values CSV uses commas ("
},
"csvToXml": {
"title": "Convert CSV to XML",
"description": "Convert CSV files to XML format with customizable options.",
"shortDescription": "Convert CSV data to XML format."
},
"csvToYaml": {
"title": "Convert CSV to YAML",
"description": "Just upload your CSV file in the form below and it will automatically get converted to a YAML file. In the tool options, you can specify the field delimiter character, field quote character, and comment character to adapt the tool to custom CSV formats. Additionally, you can select the output YAML format: one that preserves CSV headers or one that excludes CSV headers.",
"shortDescription": "Quickly convert a CSV file to a YAML file.",
"longDescription": "This tool transforms CSV (Comma Separated Values) data into the YAML (Yet Another Markup Language) data. CSV is a simple, tabular format that is used to represent matrix-like data types consisting of rows and columns. YAML, on the other hand, is a more advanced format (actually a superset of JSON), which creates more human-readable data for serialization, and it supports lists, dictionaries, and nested objects. This program supports various input CSV formats the input data can be comma-separated (default), semicolon-separated, pipe-separated, or use another completely different delimiter. You can specify the exact delimiter your data uses in the options. Similarly, in the options, you can specify the quote character that is used to wrap CSV fields (by default a double-quote symbol). You can also skip lines that start with comments by specifying the comment symbols in the options. This allows you to keep your data clean by skipping unnecessary lines. There are two ways to convert CSV to YAML. The first method converts each CSV row into a YAML list. The second method extracts headers from the first CSV row and creates YAML objects with keys based on these headers. You can also customize the output YAML format by specifying the number of spaces for indenting YAML structures. If you need to perform the reverse conversion, that is, transform YAML into CSV, you can use our Convert YAML to CSV tool. Csv-abulous!"
},
"swapCsvColumns": {
"title": "Swap CSV Columns",
"description": "Just upload your CSV file in the form below, specify the columns to swap, and the tool will automatically change the positions of the specified columns in the output file. In the tool options, you can specify the column positions or names that you want to swap, as well as fix incomplete data and optionally remove empty records and records that have been commented out.",
"shortDescription": "Reorder CSV columns.",
"longDescription": "This tool reorganizes CSV data by swapping the positions of its columns. Swapping columns can enhance the readability of a CSV file by placing frequently used data together or in the front for easier data comparison and editing. For example, you can swap the first column with the last or swap the second column with the third. To swap columns based on their positions, select the"
},
"transposeCsv": {
"title": "Transpose CSV",
"description": "Just upload your CSV file in the form below, and this tool will automatically transpose your CSV. In the tool options, you can specify the character that starts the comment lines in the CSV to remove them. Additionally, if the CSV is incomplete (missing values), you can replace missing values with the empty character or a custom character.",
"shortDescription": "Quickly transpose a CSV file.",
"longDescription": "This tool transposes Comma Separated Values (CSV). It treats the CSV as a matrix of data and flips all elements across the main diagonal. The output contains the same CSV data as the input, but now all the rows have become columns, and all the columns have become rows. After transposition, the CSV file will have opposite dimensions. For example, if the input file has 4 columns and 3 rows, the output file will have 3 columns and 4 rows. During conversion, the program also cleans the data from unnecessary lines and corrects incomplete data. Specifically, the tool automatically deletes all empty records and comments that begin with a specific character, which you can set in the option. Additionally, in cases where the CSV data is corrupted or lost, the utility completes the file with empty fields or custom fields that can be specified in the options. Csv-abulous!"
}
}

View file

@ -1,123 +0,0 @@
{
"changeSeparator": {
"title": "CSV विभाजक बदलें",
"description": "CSV फ़ाइल में विभाजक वर्ण बदलें।",
"inputTitle": "इनपुट CSV",
"resultTitle": "परिवर्तित CSV",
"separatorOptions": "विभाजक विकल्प",
"inputSeparator": "इनपुट विभाजक",
"inputSeparatorPlaceholder": "विभाजक",
"outputSeparator": "आउटपुट विभाजक",
"outputSeparatorPlaceholder": "विभाजक",
"commonSeparators": "सामान्य विभाजक",
"comma": "कॉमा",
"semicolon": "सेमीकोलन",
"tab": "टैब",
"pipe": "पाइप"
},
"rowsToColumns": {
"title": "CSV पंक्तियां से स्तंभ",
"description": "CSV डेटा को पंक्तियों से स्तंभों में बदलें।",
"inputTitle": "इनपुट CSV",
"resultTitle": "परिवर्तित CSV",
"transformationOptions": "परिवर्तन विकल्प",
"transposeData": "डेटा ट्रांसपोज़ करें",
"includeHeaders": "शीर्षक शामिल करें",
"separatorPlaceholder": "विभाजक"
},
"csvToJson": {
"title": "CSV से JSON",
"description": "CSV डेटा को JSON प्रारूप में बदलें।",
"inputTitle": "इनपुट CSV",
"resultTitle": "JSON परिणाम",
"conversionOptions": "रूपांतरण विकल्प",
"firstRowAsHeaders": "पहली पंक्ति शीर्षक के रूप में",
"includeHeaders": "शीर्षक शामिल करें",
"outputFormat": "आउटपुट प्रारूप",
"arrayFormat": "सरणी प्रारूप",
"objectFormat": "ऑब्जेक्ट प्रारूप",
"separatorPlaceholder": "विभाजक"
},
"csvToTsv": {
"title": "CSV से TSV",
"description": "CSV फ़ाइल को TSV प्रारूप में बदलें।",
"inputTitle": "इनपुट CSV",
"resultTitle": "TSV परिणाम",
"conversionOptions": "रूपांतरण विकल्प",
"inputSeparator": "इनपुट विभाजक",
"inputSeparatorPlaceholder": "विभाजक",
"preserveHeaders": "शीर्षक संरक्षित करें"
},
"csvToXml": {
"title": "CSV से XML",
"description": "CSV डेटा को XML प्रारूप में बदलें।",
"inputTitle": "इनपुट CSV",
"resultTitle": "XML परिणाम",
"conversionOptions": "रूपांतरण विकल्प",
"rootElement": "मूल तत्व",
"rootPlaceholder": "तत्व नाम",
"rowElement": "पंक्ति तत्व",
"rowPlaceholder": "तत्व नाम",
"firstRowAsHeaders": "पहली पंक्ति शीर्षक के रूप में",
"separatorPlaceholder": "विभाजक"
},
"csvToYaml": {
"title": "CSV से YAML",
"description": "CSV डेटा को YAML प्रारूप में बदलें।",
"inputTitle": "इनपुट CSV",
"resultTitle": "YAML परिणाम",
"conversionOptions": "रूपांतरण विकल्प",
"firstRowAsHeaders": "पहली पंक्ति शीर्षक के रूप में",
"includeHeaders": "शीर्षक शामिल करें",
"indentSize": "इंडेंट आकार",
"sizePlaceholder": "आकार",
"separatorPlaceholder": "विभाजक"
},
"findIncompleteRecords": {
"title": "अधूरे CSV रिकॉर्ड खोजें",
"description": "CSV फ़ाइल में अधूरे रिकॉर्ड खोजें।",
"inputTitle": "इनपुट CSV",
"resultTitle": "अधूरे रिकॉर्ड",
"searchOptions": "खोज विकल्प",
"checkEmptyValues": "खाली मूल्य जांचें",
"skipEmptyLines": "खाली पंक्तियां छोड़ें",
"errorLimit": "त्रुटि सीमा",
"limitPlaceholder": "सीमा",
"separatorPlaceholder": "विभाजक"
},
"insertColumns": {
"title": "CSV स्तंभ डालें",
"description": "CSV फ़ाइल में नए स्तंभ डालें।",
"inputTitle": "इनपुट CSV",
"resultTitle": "संशोधित CSV",
"insertionOptions": "डालने के विकल्प",
"insertPosition": "डालने की स्थिति",
"positionPlaceholder": "स्थिति",
"columnNames": "स्तंभ नाम",
"namesPlaceholder": "नाम (कॉमा से अलग)",
"defaultValues": "डिफ़ॉल्ट मूल्य",
"valuesPlaceholder": "मूल्य (कॉमा से अलग)",
"separatorPlaceholder": "विभाजक"
},
"swapColumns": {
"title": "CSV स्तंभ बदलें",
"description": "CSV फ़ाइल में स्तंभों की स्थिति बदलें।",
"inputTitle": "इनपुट CSV",
"resultTitle": "संशोधित CSV",
"swapOptions": "बदलने के विकल्प",
"firstColumn": "पहला स्तंभ",
"firstColumnPlaceholder": "स्तंभ संख्या",
"secondColumn": "दूसरा स्तंभ",
"secondColumnPlaceholder": "स्तंभ संख्या",
"separatorPlaceholder": "विभाजक"
},
"transposeCsv": {
"title": "CSV ट्रांसपोज़ करें",
"description": "CSV डेटा को ट्रांसपोज़ करें (पंक्तियों को स्तंभों में बदलें)।",
"inputTitle": "इनपुट CSV",
"resultTitle": "ट्रांसपोज़ किया गया CSV",
"transposeOptions": "ट्रांसपोज़ विकल्प",
"includeHeaders": "शीर्षक शामिल करें",
"separatorPlaceholder": "विभाजक"
}
}

View file

@ -1,98 +0,0 @@
{
"resize": {
"title": "Resize Image",
"description": "Resize images to different dimensions.",
"inputTitle": "Input Image",
"resultTitle": "Resized Image",
"resizeMethod": "Resize Method",
"resizeByPixels": "Resize by Pixels",
"resizeByPixelsDescription": "Resize by specifying dimensions in pixels.",
"resizeByPercentage": "Resize by Percentage",
"resizeByPercentageDescription": "Resize by specifying a percentage of the original size.",
"dimensionType": "Dimension Type",
"maintainAspectRatio": "Maintain Aspect Ratio",
"maintainAspectRatioDescription": "Maintain the original aspect ratio of the image.",
"setWidth": "Set Width",
"setWidthDescription": "Specify the width in pixels and calculate height based on aspect ratio.",
"setHeight": "Set Height",
"setHeightDescription": "Specify the height in pixels and calculate width based on aspect ratio.",
"widthDescription": "Width (in pixels)",
"heightDescription": "Height (in pixels)",
"percentage": "Percentage",
"percentageDescription": "Percentage of original size (e.g., 50 for half size, 200 for double size)",
"toolInfo": {
"title": "Resize Image",
"description": "This tool allows you to resize JPG, PNG, SVG, or GIF images. You can resize by specifying dimensions in pixels or by percentage, with options to maintain the original aspect ratio."
},
"shortDescription": "Resize images easily."
},
"compress": {
"title": "Compress Image",
"description": "Reduce image file size while maintaining quality.",
"inputTitle": "Input image",
"resultTitle": "Compressed image",
"shortDescription": "Compress images to reduce file size while maintaining reasonable quality."
},
"crop": {
"title": "Crop Image",
"description": "Crop images to remove unwanted areas.",
"inputTitle": "Input image",
"resultTitle": "Cropped image",
"shortDescription": "Crop images quickly."
},
"changeColors": {
"title": "Change colors in image",
"description": "Change colors in image quickly",
"shortDescription": "Quickly swap colors in a image"
},
"changeOpacity": {
"title": "Change image Opacity",
"description": "Easily adjust the transparency of your images. Simply upload your image, use the slider to set the desired opacity level between 0 (fully transparent) and 1 (fully opaque), and download the modified image.",
"shortDescription": "Adjust transparency of images"
},
"convertToJpg": {
"title": "Convert Images to JPG",
"description": "Convert various image formats (PNG, GIF, TIF, PSD, SVG, WEBP, HEIC, RAW) to JPG with customizable quality and background color settings.",
"shortDescription": "Convert images to JPG with quality control"
},
"createTransparent": {
"title": "Create transparent PNG",
"description": "World",
"shortDescription": "Quickly make an image transparent"
},
"editor": {
"title": "Image Editor",
"description": "Advanced image editor with tools for cropping, rotating, annotating, adjusting colors, and adding watermarks. Edit your images with professional-grade tools directly in your browser.",
"shortDescription": "Edit images with advanced tools and features"
},
"imageToText": {
"title": "Image to Text (OCR)",
"description": "Extract text from images (JPG, PNG) using optical character recognition (OCR).",
"shortDescription": "Extract text from images using OCR."
},
"qrCode": {
"title": "QR Code Generator",
"description": "Generate QR codes for different data types: URL, Text, Email, Phone, SMS, WiFi, vCard, and more.",
"shortDescription": "Create customized QR codes for various data formats."
},
"removeBackground": {
"title": "Remove Background from Image",
"description": "World",
"shortDescription": "Automatically remove backgrounds from images"
},
"rotate": {
"title": "Rotate Image",
"description": "Rotate an image by a specified angle.",
"shortDescription": "Rotate an image easily."
},
"compressPng": {
"title": "Compress png",
"description": "This is a program that compresses PNG pictures. As soon as you paste your PNG picture in the input area, the program will compress it and show the result in the output area. In the options, you can adjust the compression level, as well as find the old and new picture file sizes.",
"shortDescription": "Quickly compress a PNG"
},
"convertJgpToPng": {
"title": "Convert JPG to PNG",
"description": "Quickly convert your JPG images to PNG. Just import your PNG image in the editor on the left",
"shortDescription": "Quickly convert your JPG images to PNG"
}
}

View file

@ -1,152 +0,0 @@
{
"resize": {
"title": "छवि आकार बदलें",
"description": "छवि का आकार बदलें।",
"inputTitle": "इनपुट छवि",
"resultTitle": "आकार बदली गई छवि",
"resizeOptions": "आकार बदलने के विकल्प",
"resizeMethod": "आकार बदलने की विधि",
"methodPercentage": "प्रतिशत",
"methodPixels": "पिक्सेल",
"methodAspectRatio": "आकार अनुपात",
"width": "चौड़ाई",
"widthPlaceholder": "मान",
"height": "ऊंचाई",
"heightPlaceholder": "मान",
"maintainAspectRatio": "आकार अनुपात बनाए रखें",
"interpolationMethod": "इंटरपोलेशन विधि",
"methodNearest": "निकटतम",
"methodBilinear": "द्विरेखीय",
"methodBicubic": "द्विघन"
},
"crop": {
"title": "छवि क्रॉप करें",
"description": "छवि से अनावश्यक भाग हटाएं।",
"inputTitle": "इनपुट छवि",
"resultTitle": "क्रॉप की गई छवि",
"cropOptions": "क्रॉप विकल्प",
"cropMethod": "क्रॉप विधि",
"methodManual": "मैनुअल",
"methodAspectRatio": "आकार अनुपात",
"aspectRatio": "आकार अनुपात",
"ratio16x9": "16:9",
"ratio4x3": "4:3",
"ratio1x1": "1:1",
"ratio3x2": "3:2",
"cropArea": "क्रॉप क्षेत्र",
"xPosition": "X स्थिति",
"xPlaceholder": "पिक्सेल",
"yPosition": "Y स्थिति",
"yPlaceholder": "पिक्सेल",
"width": "चौड़ाई",
"widthPlaceholder": "पिक्सेल",
"height": "ऊंचाई",
"heightPlaceholder": "पिक्सेल"
},
"rotate": {
"title": "छवि घुमाएं",
"description": "छवि को निर्दिष्ट कोण से घुमाएं।",
"inputTitle": "इनपुट छवि",
"resultTitle": "घुमाई गई छवि",
"rotationOptions": "घुमाने के विकल्प",
"rotationAngle": "घुमाने का कोण",
"angle90": "90 डिग्री",
"angle180": "180 डिग्री",
"angle270": "270 डिग्री",
"customAngle": "कस्टम कोण",
"customAnglePlaceholder": "डिग्री",
"backgroundColor": "पृष्ठभूमि रंग",
"colorTransparent": "पारदर्शी",
"colorWhite": "सफेद",
"colorBlack": "काला",
"colorCustom": "कस्टम",
"customColorPlaceholder": "#RRGGBB"
},
"flip": {
"title": "छवि फ्लिप करें",
"description": "छवि को क्षैतिज या लंबवत रूप से फ्लिप करें।",
"inputTitle": "इनपुट छवि",
"resultTitle": "फ्लिप की गई छवि",
"flipOptions": "फ्लिप विकल्प",
"flipDirection": "फ्लिप दिशा",
"directionHorizontal": "क्षैतिज",
"directionVertical": "लंबवत",
"directionBoth": "दोनों"
},
"compress": {
"title": "छवि संपीड़ित करें",
"description": "छवि फ़ाइल आकार कम करें।",
"inputTitle": "इनपुट छवि",
"resultTitle": "संपीड़ित छवि",
"compressionOptions": "संपीड़न विकल्प",
"imageQuality": "छवि गुणवत्ता",
"qualityPlaceholder": "गुणवत्ता (1-100)",
"outputFormat": "आउटपुट प्रारूप",
"formatJpeg": "JPEG",
"formatPng": "PNG",
"formatWebp": "WebP",
"removeMetadata": "मेटाडेटा हटाएं",
"progressiveJpeg": "प्रगतिशील JPEG"
},
"convert": {
"title": "छवि प्रारूप बदलें",
"description": "छवि को एक प्रारूप से दूसरे में बदलें।",
"inputTitle": "इनपुट छवि",
"resultTitle": "परिवर्तित छवि",
"conversionOptions": "रूपांतरण विकल्प",
"outputFormat": "आउटपुट प्रारूप",
"formatJpeg": "JPEG",
"formatPng": "PNG",
"formatGif": "GIF",
"formatWebp": "WebP",
"formatBmp": "BMP",
"formatTiff": "TIFF",
"imageQuality": "छवि गुणवत्ता",
"qualityPlaceholder": "गुणवत्ता (1-100)",
"preserveTransparency": "पारदर्शिता संरक्षित करें"
},
"watermark": {
"title": "छवि पर वॉटरमार्क",
"description": "छवि पर टेक्स्ट या छवि वॉटरमार्क जोड़ें।",
"inputTitle": "इनपुट छवि",
"resultTitle": "वॉटरमार्क वाली छवि",
"watermarkOptions": "वॉटरमार्क विकल्प",
"watermarkType": "वॉटरमार्क प्रकार",
"typeText": "टेक्स्ट",
"typeImage": "छवि",
"watermarkText": "वॉटरमार्क टेक्स्ट",
"textPlaceholder": "टेक्स्ट",
"watermarkImage": "वॉटरमार्क छवि",
"imagePlaceholder": "छवि फ़ाइल",
"position": "स्थिति",
"positionTopLeft": "ऊपर बाएं",
"positionTopRight": "ऊपर दाएं",
"positionBottomLeft": "नीचे बाएं",
"positionBottomRight": "नीचे दाएं",
"positionCenter": "केंद्र",
"opacity": "पारदर्शिता",
"opacityPlaceholder": "प्रतिशत (1-100)",
"fontSize": "फ़ॉन्ट आकार",
"fontSizePlaceholder": "आकार",
"fontColor": "फ़ॉन्ट रंग",
"colorPlaceholder": "#RRGGBB"
},
"filter": {
"title": "छवि फ़िल्टर",
"description": "छवि पर विभिन्न फ़िल्टर लागू करें।",
"inputTitle": "इनपुट छवि",
"resultTitle": "फ़िल्टर की गई छवि",
"filterOptions": "फ़िल्टर विकल्प",
"filterType": "फ़िल्टर प्रकार",
"typeGrayscale": "ग्रेस्केल",
"typeSepia": "सेपिया",
"typeBlur": "धुंधला",
"typeSharpen": "तेज़",
"typeInvert": "उलटा",
"typeBrightness": "चमक",
"typeContrast": "कंट्रास्ट",
"typeSaturation": "संतृप्ति",
"filterIntensity": "फ़िल्टर तीव्रता",
"intensityPlaceholder": "मान (0-100)"
}
}

View file

@ -1,65 +0,0 @@
{
"prettify": {
"title": "Prettify JSON",
"description": "Format JSON with proper indentation and spacing.",
"inputTitle": "Input JSON",
"resultTitle": "Prettified JSON",
"indentation": "Indentation",
"useSpaces": "Use Spaces",
"useSpacesDescription": "Indent output with spaces",
"useTabs": "Use Tabs",
"useTabsDescription": "Indent output with tabs.",
"toolInfo": {
"title": "Prettify JSON",
"description": "This tool allows you to format JSON data with proper indentation and spacing, making it more readable and easier to work with."
},
"title": "Prettify JSON",
"shortDescription": "Format and beautify JSON code"
},
"minify": {
"title": "Minify JSON",
"description": "Remove all unnecessary whitespace from JSON.",
"inputTitle": "Input JSON",
"resultTitle": "Minified JSON",
"toolInfo": {
"title": "What Is JSON Minification?",
"description": "JSON minification is the process of removing all unnecessary whitespace characters from JSON data while maintaining its validity. This includes removing spaces, newlines, and indentation that aren't required for the JSON to be parsed correctly. Minification reduces the size of JSON data, making it more efficient for storage and transmission while keeping the exact same data structure and values."
},
"title": "Minify JSON",
"shortDescription": "Minify JSON by removing whitespace"
},
"validateJson": {
"title": "Validate JSON",
"description": "Check if JSON is valid and well-formed.",
"inputTitle": "Input JSON",
"resultTitle": "Validation Result",
"validJson": "✅ Valid JSON",
"invalidJson": "❌ {{error}}",
"toolInfo": {
"title": "What is JSON Validation?",
"description": "JSON (JavaScript Object Notation) is a lightweight data-interchange format. JSON validation ensures that the structure of the data conforms to the JSON standard. A valid JSON object must have: - Property names enclosed in double quotes. - Properly balanced curly braces {}. - No trailing commas after the last key-value pair. - Proper nesting of objects and arrays. This tool checks the input JSON and provides feedback to help identify and fix common errors."
},
"title": "Validate JSON",
"shortDescription": "Validate JSON code for errors"
},
"escapeJson": {
"title": "Escape JSON",
"description": "Escape special characters in JSON strings. Convert JSON data to properly escaped format for safe transmission or storage.",
"shortDescription": "Escape special characters in JSON"
},
"jsonToXml": {
"title": "JSON to XML",
"description": "Convert JSON data to XML format. Transform structured JSON objects into well-formed XML documents.",
"shortDescription": "Convert JSON to XML format"
},
"stringify": {
"title": "Stringify JSON",
"description": "Convert JavaScript objects to JSON string format. Serialize data structures into JSON strings for storage or transmission.",
"shortDescription": "Convert objects to JSON string"
},
"tsvToJson": {
"title": "TSV to JSON",
"description": "Convert TSV (Tab-Separated Values) data to JSON format. Transform tabular data into structured JSON objects.",
"shortDescription": "Convert TSV to JSON format"
}
}

View file

@ -1,80 +0,0 @@
{
"escape": {
"title": "JSON एस्केप करें",
"description": "JSON स्ट्रिंग में विशेष वर्णों को एस्केप करें।",
"inputTitle": "इनपुट JSON",
"resultTitle": "एस्केप किया गया JSON",
"escapeOptions": "एस्केप विकल्प",
"escapeQuotes": "उद्धरण एस्केप करें",
"escapeNewlines": "नई पंक्तियां एस्केप करें",
"escapeTabs": "टैब एस्केप करें",
"escapeBackslashes": "बैकस्लैश एस्केप करें"
},
"jsonToXml": {
"title": "JSON से XML",
"description": "JSON डेटा को XML प्रारूप में बदलें।",
"inputTitle": "इनपुट JSON",
"resultTitle": "XML परिणाम",
"conversionOptions": "रूपांतरण विकल्प",
"rootElement": "मूल तत्व",
"rootPlaceholder": "तत्व नाम",
"indentSize": "इंडेंट आकार",
"sizePlaceholder": "आकार",
"includeAttributes": "विशेषताएं शामिल करें"
},
"minify": {
"title": "JSON संक्षिप्त करें",
"description": "JSON को संक्षिप्त प्रारूप में बदलें।",
"inputTitle": "इनपुट JSON",
"resultTitle": "संक्षिप्त JSON",
"minifyOptions": "संक्षिप्त करने के विकल्प",
"removeComments": "टिप्पणियां हटाएं",
"removeWhitespace": "सफेद स्थान हटाएं",
"compactArrays": "सरणियां संक्षिप्त करें"
},
"prettify": {
"title": "JSON सुंदर बनाएं",
"description": "JSON को सुंदर प्रारूप में बदलें।",
"inputTitle": "इनपुट JSON",
"resultTitle": "सुंदर JSON",
"formattingOptions": "फॉर्मेटिंग विकल्प",
"indentSize": "इंडेंट आकार",
"sizePlaceholder": "आकार",
"indentCharacter": "इंडेंट वर्ण",
"space": "स्पेस",
"tab": "टैब",
"sortKeys": "कुंजियां क्रमबद्ध करें"
},
"stringify": {
"title": "JSON स्ट्रिंगिफाई",
"description": "JavaScript ऑब्जेक्ट को JSON स्ट्रिंग में बदलें।",
"inputTitle": "इनपुट ऑब्जेक्ट",
"resultTitle": "JSON स्ट्रिंग",
"stringifyOptions": "स्ट्रिंगिफाई विकल्प",
"prettyPrint": "सुंदर प्रिंट",
"includeFunctions": "फ़ंक्शन शामिल करें",
"includeUndefined": "अपरिभाषित शामिल करें"
},
"tsvToJson": {
"title": "TSV से JSON",
"description": "TSV डेटा को JSON प्रारूप में बदलें।",
"inputTitle": "इनपुट TSV",
"resultTitle": "JSON परिणाम",
"conversionOptions": "रूपांतरण विकल्प",
"firstRowAsHeaders": "पहली पंक्ति शीर्षक के रूप में",
"includeHeaders": "शीर्षक शामिल करें",
"outputFormat": "आउटपुट प्रारूप",
"arrayFormat": "सरणी प्रारूप",
"objectFormat": "ऑब्जेक्ट प्रारूप"
},
"validateJson": {
"title": "JSON मान्य करें",
"description": "JSON स्ट्रिंग की वैधता जांचें।",
"inputTitle": "इनपुट JSON",
"resultTitle": "मान्यता परिणाम",
"validationOptions": "मान्यता विकल्प",
"strictMode": "सख्त मोड",
"allowComments": "टिप्पणियां अनुमति दें",
"allowTrailingCommas": "अनुगामी कॉमा अनुमति दें"
}
}

View file

@ -1,211 +0,0 @@
{
"findUnique": {
"title": "Find Unique",
"inputTitle": "Input List",
"resultTitle": "Unique Items",
"inputListDelimiter": "Input List Delimiter",
"delimiterDescription": "Set a delimiting symbol or regular expression.",
"outputListDelimiter": "Output List Delimiter",
"trimItems": "Trim List Items",
"trimItemsDescription": "Remove leading and trailing spaces before comparing items.",
"skipEmptyItems": "Skip Empty Items",
"skipEmptyItemsDescription": "Don't include the empty list items in the output.",
"uniqueItemOptions": "Unique Item Options",
"findAbsolutelyUniqueItems": "Find Absolutely Unique Items",
"findAbsolutelyUniqueItemsDescription": "Display only those items of the list that exist in a single copy.",
"caseSensitiveItems": "Case Sensitive Items",
"caseSensitiveItemsDescription": "Output items with different case as unique elements in the list.",
"title": "Find unique",
"description": "World's simplest browser-based utility for finding unique items in a list. Input your list and instantly get all unique values with duplicates removed. Perfect for data cleaning, deduplication, or finding distinct elements.",
"shortDescription": "Find unique items in a list"
},
"wrap": {
"title": "Wrap List",
"description": "Add text before and after each list item.",
"inputTitle": "Input List",
"resultTitle": "Wrapped List",
"splitOptions": "Split Options",
"splitBySymbol": "Split by Symbol",
"splitByRegex": "Split by Regular Expression",
"splitSeparatorDescription": "Separator to split the list",
"joinSeparatorDescription": "Separator to join the wrapped list",
"removeEmptyItems": "Remove empty items",
"wrapOptions": "Wrap Options",
"leftTextDescription": "Text to add before each item",
"rightTextDescription": "Text to add after each item",
"toolInfo": {
"title": "List Wrapping",
"description": "This tool allows you to add text before and after each item in a list. You can specify different text for the left and right sides, and control how the list is processed. It's useful for adding quotes, brackets, or other formatting to list items, preparing data for different formats, or creating structured text."
},
"title": "Wrap",
"shortDescription": "Wrap list items with specified criteria"
},
"sort": {
"inputTitle": "Input list",
"resultTitle": "Sorted list",
"inputItemSeparator": "Input item separator",
"splitSeparatorDescription": "Set a delimiting symbol or regular expression.",
"splitOperators": {
"symbol": {
"title": "Use a Symbol for Splitting",
"description": "Delimit input list items with a character."
},
"regex": {
"title": "Use a Regex for Splitting",
"description": "Delimit input list items with a regular expression."
}
},
"sortMethod": "Sort method",
"sortMethodDescription": "Select a sorting method.",
"sortOptions": {
"alphabetic": "Sort Alphabetically",
"numeric": "Sort Numerically",
"length": "Sort by Length"
},
"orderDescription": "Select a sorting order.",
"orderOptions": {
"increasing": "Increasing order",
"decreasing": "Decreasing order"
},
"caseSensitive": "Case Sensitive Sort",
"caseSensitiveDescription": "Sort uppercase and lowercase items separately. Capital letters precede lowercase letters in an ascending list. (Works only in alphabetical sorting mode.)",
"sortedItemProperties": "Sorted item properties",
"joinSeparatorDescription": "Use this symbol as a joiner between items in a sorted list.",
"removeDuplicates": "Remove duplicates",
"removeDuplicatesDescription": "Delete duplicate list items.",
"title": "Sort",
"description": "World's simplest browser-based utility for sorting list items. Input your list and specify sorting criteria to organize items in ascending or descending order. Perfect for data organization, text processing, or creating ordered lists.",
"shortDescription": "Sort list items in specified order"
},
"group": {
"inputTitle": "Input list",
"resultTitle": "Grouped items",
"inputItemSeparator": "Input Item Separator",
"splitSeparatorDescription": "Set a delimiting symbol or regular expression.",
"splitOperators": {
"symbol": {
"title": "Use a Symbol for Splitting",
"description": "Delimit input list items with a character."
},
"regex": {
"title": "Use a Regex for Splitting",
"description": "Delimit input list items with a regular expression."
}
},
"groupSizeAndSeparators": "Group Size and Separators",
"groupNumberDescription": "Number of items in a group",
"itemSeparatorDescription": "Item separator character",
"groupSeparatorDescription": "Group separator character",
"leftWrapDescription": "Group's left wrap symbol.",
"rightWrapDescription": "Group's right wrap symbol.",
"emptyItemsAndPadding": "Empty Items and Padding",
"deleteEmptyItems": "Delete Empty Items",
"deleteEmptyItemsDescription": "Ignore empty items and don't include them in the groups.",
"padNonFullGroups": "Pad Non-full Groups",
"padNonFullGroupsDescription": "Fill non-full groups with a custom item (enter below).",
"paddingCharDescription": "Use this character or item to pad non-full groups.",
"title": "Group",
"description": "World's simplest browser-based utility for grouping list items. Input your list and specify grouping criteria to organize items into logical groups. Perfect for categorizing data, organizing information, or creating structured lists. Supports custom separators and various grouping options.",
"shortDescription": "Group list items by common properties"
},
"duplicate": {
"toolInfo": {
"title": "List Duplication",
"description": "This tool allows you to duplicate items in a list. You can specify the number of copies (including fractional values), control whether items are concatenated or interweaved, and even reverse the duplicated items. It's useful for creating repeated patterns, generating test data, or expanding lists with predictable content."
},
"inputTitle": "Input List",
"resultTitle": "Duplicated List",
"splitOptions": "Split Options",
"splitBySymbol": "Split by Symbol",
"splitByRegex": "Split by Regular Expression",
"splitSeparatorDescription": "Separator to split the list",
"joinSeparatorDescription": "Separator to join the duplicated list",
"duplicationOptions": "Duplication Options",
"copyDescription": "Number of copies (can be fractional)",
"concatenate": "Concatenate",
"concatenateDescription": "Concatenate copies (if unchecked, items will be interweaved)",
"reverse": "Reverse",
"reverseDescription": "Reverse the duplicated items",
"examples": {
"simple": {
"title": "Simple duplication",
"description": "This example shows how to duplicate a list of words."
},
"reverse": {
"title": "Reverse duplication",
"description": "This example shows how to duplicate a list in reverse order."
},
"interweave": {
"title": "Interweaving items",
"description": "This example shows how to interweave items instead of concatenating them."
},
"fractional": {
"title": "Fractional duplication",
"description": "This example shows how to duplicate a list with a fractional number of copies."
}
},
"title": "Duplicate",
"description": "World's simplest browser-based utility for duplicating list items. Input your list and specify duplication criteria to create copies of items. Perfect for data expansion, testing, or creating repeated patterns.",
"shortDescription": "Duplicate list items with specified criteria"
},
"reverse": {
"toolInfo": {
"title": "What Is a List Reverser?",
"description": "With this utility, you can reverse the order of items in a list. The utility first splits the input list into individual items and then iterates through them from the last item to the first item, printing each item to the output during the iteration. The input list may contain anything that can be represented as textual data, which includes digits, numbers, strings, words, sentences, etc. The input item separator can also be a regular expression. For example, the regex /[;,]/ will allow you to use items that are either comma- or semicolon-separated. The input and output list items delimiters can be customized in the options. By default, both input and output lists are comma-separated. Listabulous!"
},
"splitterMode": "Splitter Mode",
"itemSeparator": "Item Separator",
"itemSeparatorDescription": "Set a delimiting symbol or regular expression.",
"outputListOptions": "Output List Options",
"outputSeparatorDescription": "Output list item separator.",
"inputTitle": "Input list",
"resultTitle": "Reversed list",
"splitOperators": {
"symbol": {
"title": "Use a Symbol for Splitting",
"description": "Delimit input list items with a character."
},
"regex": {
"title": "Use a Regex for Splitting",
"description": "Delimit input list items with a regular expression."
}
},
"title": "Reverse",
"description": "This is a super simple browser-based application prints all list items in reverse. The input items can be separated by any symbol and you can also change the separator of the reversed list items.",
"shortDescription": "Quickly reverse a list"
},
"shuffle": {
"title": "Shuffle",
"inputTitle": "Input list",
"resultTitle": "Shuffled list",
"inputListSeparator": "Input list separator",
"delimiterDescription": "Set a delimiting symbol or regular expression.",
"shuffledListLength": "Shuffled List Length",
"outputLengthDescription": "Output this many random items",
"shuffledListSeparator": "Shuffled List Separator",
"joinSeparatorDescription": "Use this separator in the randomized list.",
"title": "Shuffle",
"description": "World's simplest browser-based utility for shuffling list items. Input your list and instantly get a randomized version with items in random order. Perfect for creating variety, testing randomness, or mixing up ordered data.",
"shortDescription": "Randomize the order of list items"
},
"findMostPopular": {
"title": "Find most popular",
"description": "World's simplest browser-based utility for finding the most popular items in a list. Input your list and instantly get the items that appear most frequently. Perfect for data analysis, trend identification, or finding common elements.",
"shortDescription": "Find most frequently occurring items"
},
"rotate": {
"title": "Rotate",
"description": "World's simplest browser-based utility for rotating list items. Input your list and specify rotation amount to shift items by a specified number of positions. Perfect for data manipulation, circular shifts, or reordering lists.",
"shortDescription": "Rotate list items by specified positions"
},
"truncate": {
"title": "Truncate",
"description": "World's simplest browser-based utility for truncating lists. Input your list and specify the maximum number of items to keep. Perfect for data processing, list management, or limiting content length.",
"shortDescription": "Truncate list to specified number of items"
},
"unwrap": {
"title": "Unwrap",
"description": "World's simplest browser-based utility for unwrapping list items. Input your wrapped list and specify unwrapping criteria to flatten organized items. Perfect for data processing, text manipulation, or extracting content from structured lists.",
"shortDescription": "Unwrap list items from structured format"
}
}

View file

@ -1,138 +0,0 @@
{
"group": {
"title": "सूची समूहित करें",
"description": "सूची आइटम को समूहित करने के लिए सरल उपकरण।",
"inputTitle": "इनपुट सूची",
"resultTitle": "समूहित सूची",
"groupingOptions": "समूहीकरण विकल्प",
"groupByLength": "लंबाई के अनुसार समूहित करें",
"groupByFirstChar": "पहले वर्ण के अनुसार समूहित करें",
"groupByLastChar": "अंतिम वर्ण के अनुसार समूहित करें",
"groupByPattern": "पैटर्न के अनुसार समूहित करें",
"patternPlaceholder": "रेगेक्स पैटर्न",
"outputFormat": "आउटपुट प्रारूप",
"groupHeaders": "समूह शीर्षक जोड़ें",
"separatorPlaceholder": "विभाजक"
},
"reverse": {
"title": "सूची उलटा करें",
"description": "सूची में आइटम के क्रम को उलटा करें।",
"inputTitle": "इनपुट सूची",
"resultTitle": "उलटी सूची",
"reverseOptions": "उलटाने के विकल्प",
"reverseOrder": "क्रम उलटा करें",
"reverseEachItem": "प्रत्येक आइटम उलटा करें",
"separatorPlaceholder": "विभाजक"
},
"sort": {
"title": "सूची क्रमबद्ध करें",
"description": "सूची में आइटम को क्रमबद्ध करें।",
"inputTitle": "इनपुट सूची",
"resultTitle": "क्रमबद्ध सूची",
"sortingOptions": "क्रमबद्ध करने के विकल्प",
"sortAlphabetically": "वर्णानुक्रमिक रूप से क्रमबद्ध करें",
"sortNumerically": "संख्यात्मक रूप से क्रमबद्ध करें",
"sortByLength": "लंबाई के अनुसार क्रमबद्ध करें",
"sortOrder": "क्रमबद्ध करने का क्रम",
"ascending": "आरोही",
"descending": "अवरोही",
"removeDuplicates": "डुप्लिकेट हटाएं",
"removeEmpty": "खाली आइटम हटाएं",
"trimWhitespace": "सफेद स्थान ट्रिम करें",
"separatorPlaceholder": "विभाजक"
},
"shuffle": {
"title": "सूची फेरबदल करें",
"description": "सूची में आइटम को यादृच्छिक क्रम में व्यवस्थित करें।",
"inputTitle": "इनपुट सूची",
"resultTitle": "फेरबदल की गई सूची",
"shuffleOptions": "फेरबदल विकल्प",
"randomSeed": "यादृच्छिक बीज",
"seedPlaceholder": "बीज मान",
"separatorPlaceholder": "विभाजक"
},
"rotate": {
"title": "सूची घुमाएं",
"description": "सूची में आइटम को निर्दिष्ट स्थानों द्वारा घुमाएं।",
"inputTitle": "इनपुट सूची",
"resultTitle": "घुमाई गई सूची",
"rotationOptions": "घुमाने के विकल्प",
"rotateSteps": "घुमाने के चरण",
"stepsPlaceholder": "चरणों की संख्या",
"rotateDirection": "घुमाने की दिशा",
"rotateLeft": "बाईं ओर घुमाएं",
"rotateRight": "दाईं ओर घुमाएं",
"separatorPlaceholder": "विभाजक"
},
"findUnique": {
"title": "अद्वितीय आइटम खोजें",
"description": "सूची से अद्वितीय आइटम निकालें।",
"inputTitle": "इनपुट सूची",
"resultTitle": "अद्वितीय आइटम",
"uniqueOptions": "अद्वितीय विकल्प",
"caseSensitive": "केस संवेदी",
"removeEmpty": "खाली आइटम हटाएं",
"trimWhitespace": "सफेद स्थान ट्रिम करें",
"separatorPlaceholder": "विभाजक"
},
"findMostPopular": {
"title": "सबसे लोकप्रिय खोजें",
"description": "सूची में सबसे अधिक बार आने वाले आइटम खोजें।",
"inputTitle": "इनपुट सूची",
"resultTitle": "लोकप्रिय आइटम",
"popularityOptions": "लोकप्रियता विकल्प",
"topCount": "शीर्ष संख्या",
"countPlaceholder": "संख्या",
"caseSensitive": "केस संवेदी",
"removeEmpty": "खाली आइटम हटाएं",
"separatorPlaceholder": "विभाजक"
},
"duplicate": {
"title": "आइटम दोहराएं",
"description": "सूची में आइटम को दोहराएं।",
"inputTitle": "इनपुट सूची",
"resultTitle": "दोहराई गई सूची",
"duplicationOptions": "दोहराव विकल्प",
"duplicateCount": "दोहराव की संख्या",
"countPlaceholder": "संख्या",
"duplicateEach": "प्रत्येक आइटम दोहराएं",
"duplicateAll": "सभी आइटम दोहराएं",
"separatorPlaceholder": "विभाजक"
},
"wrap": {
"title": "सूची लपेटें",
"description": "सूची आइटम को निर्दिष्ट लंबाई में लपेटें।",
"inputTitle": "इनपुट सूची",
"resultTitle": "लपेटी गई सूची",
"wrapOptions": "लपेटने के विकल्प",
"wrapWidth": "लपेटने की चौड़ाई",
"widthPlaceholder": "चौड़ाई",
"wrapCharacter": "लपेटने का वर्ण",
"characterPlaceholder": "वर्ण",
"separatorPlaceholder": "विभाजक"
},
"unwrap": {
"title": "सूची खोलें",
"description": "लपेटी गई सूची को खोलें।",
"inputTitle": "इनपुट सूची",
"resultTitle": "खोली गई सूची",
"unwrapOptions": "खोलने के विकल्प",
"unwrapCharacter": "खोलने का वर्ण",
"characterPlaceholder": "वर्ण",
"removeEmpty": "खाली आइटम हटाएं",
"separatorPlaceholder": "विभाजक"
},
"truncate": {
"title": "सूची काटें",
"description": "सूची को निर्दिष्ट लंबाई तक काटें।",
"inputTitle": "इनपुट सूची",
"resultTitle": "काटी गई सूची",
"truncationOptions": "काटने के विकल्प",
"truncateLength": "काटने की लंबाई",
"lengthPlaceholder": "लंबाई",
"truncateFrom": "कहाँ से काटें",
"truncateFromStart": "शुरुआत से",
"truncateFromEnd": "अंत से",
"separatorPlaceholder": "विभाजक"
}
}

View file

@ -1,91 +0,0 @@
{
"generate": {
"title": "Generate Numbers",
"description": "Generate a sequence of numbers with customizable parameters.",
"resultTitle": "Generated numbers",
"arithmeticSequenceOption": "Arithmetic sequence option",
"startSequenceDescription": "Start sequence from this number.",
"stepDescription": "Increase each element by this amount",
"numberOfElementsDescription": "Number of elements in sequence.",
"separator": "Separator",
"separatorDescription": "Separate elements in the arithmetic sequence by this character.",
"toolInfo": {
"title": "Generate numbers",
"description": "This tool allows you to generate a sequence of numbers with customizable parameters. You can specify the starting value, step size, and number of elements."
},
"title": "Generate",
"shortDescription": "Generate random numbers in specified ranges"
},
"arithmeticSequence": {
"title": "Arithmetic Sequence",
"description": "Generate arithmetic sequences with customizable parameters.",
"resultTitle": "Generated Sequence",
"sequenceParameters": "Sequence Parameters",
"firstTermDescription": "First term of the sequence (a₁)",
"commonDifferenceDescription": "Common difference between terms (d)",
"numberOfTermsDescription": "Number of terms to generate (n)",
"outputFormat": "Output Format",
"separatorDescription": "Separator between terms",
"toolInfo": {
"title": "What is an Arithmetic Sequence?",
"description": "An arithmetic sequence is a sequence of numbers where the difference between each consecutive term is constant. This constant difference is called the common difference. Given the first term (a₁) and the common difference (d), each term can be found by adding the common difference to the previous term."
},
"title": "Arithmetic Sequence",
"shortDescription": "Generate arithmetic sequences"
},
"sum": {
"toolInfo": {
"title": "What Is a Number Sum Calculator?",
"description": "This is an online browser-based utility for calculating the sum of a bunch of numbers. You can enter the numbers separated by a comma, space, or any other character, including the line break. You can also simply paste a fragment of textual data that contains numerical values that you want to sum up and the utility will extract them and find their sum."
},
"inputTitle": "Input",
"resultTitle": "Total",
"numberExtraction": "Number Extraction",
"runningSum": "Running Sum",
"printRunningSum": "Print Running Sum",
"printRunningSumDescription": "Display the sum as it's calculated step by step.",
"extractionTypes": {
"smart": {
"title": "Smart Sum",
"description": "Auto detect numbers in the input."
},
"delimiter": {
"title": "Number Delimiter",
"description": "Customize the number separator here. (By default a line break.)"
}
},
"title": "Sum",
"description": "Calculate the sum of a list of numbers. Enter numbers separated by commas or newlines to get their total sum.",
"shortDescription": "Calculate sum of numbers"
},
"ohmsLaw": {
"title": "Ohm's Law",
"description": "Calculates voltage, current and resistance",
"shortDescription": "Calculate voltage, current, or resistance in electrical circuits using Ohm's Law",
"longDescription": "This calculator applies Ohm's Law (V = I × R) to determine any of the three electrical parameters when the other two are known. Ohm's Law is a fundamental principle in electrical engineering that describes the relationship between voltage (V), current (I), and resistance (R). This tool is essential for electronics hobbyists, electrical engineers, and students working with circuits to quickly solve for unknown values in their electrical designs."
},
"slackline": {
"title": "Slackline Tension",
"description": "Calculates tension in a slackline",
"shortDescription": "Calculate the approximate tension of a slackline or clothesline. Do not rely on this for safety.",
"longDescription": "This calculator assumes a load in the center of the rope"
},
"sphereArea": {
"title": "Area of a Sphere",
"description": "Area of a Sphere",
"shortDescription": "Calculate the surface area of a sphere based on its radius",
"longDescription": "This calculator determines the surface area of a sphere using the formula A = 4πr². You can either input the radius to find the surface area or enter the surface area to calculate the required radius. This tool is useful for students studying geometry, engineers working with spherical objects, and anyone needing to perform calculations involving spherical surfaces."
},
"sphereVolume": {
"title": "Volume of a Sphere",
"description": "Volume of a Sphere",
"shortDescription": "Calculate the volume of a sphere using radius or diameter",
"longDescription": "This calculator computes the volume of a sphere using the formula V = (4/3)πr³. You can input either the radius or diameter to find the volume, or enter the volume to determine the required radius. The tool is valuable for students, engineers, and professionals working with spherical objects in fields such as physics, engineering, and manufacturing."
},
"voltageDropInWire": {
"title": "Round trip voltage drop in cable",
"description": "Calculates round trip voltage and power loss in a 2 conductor cable",
"shortDescription": "Calculate voltage drop and power loss in electrical cables based on length, material, and current",
"longDescription": "This calculator helps determine the voltage drop and power loss in a two-conductor electrical cable. It takes into account the cable length, wire gauge (cross-sectional area), material resistivity, and current flow. The tool calculates the round-trip voltage drop, total resistance of the cable, and the power dissipated as heat. This is particularly useful for electrical engineers, electricians, and hobbyists when designing electrical systems to ensure voltage levels remain within acceptable limits at the load."
}
}

View file

@ -1,45 +0,0 @@
{
"generate": {
"title": "संख्याएं उत्पन्न करें",
"description": "निर्दिष्ट मापदंडों के अनुसार संख्याओं की सूची उत्पन्न करें।",
"inputTitle": "उत्पन्न की गई संख्याएं",
"resultTitle": "संख्याओं की सूची",
"generationOptions": "उत्पन्न करने के विकल्प",
"startNumber": "शुरुआती संख्या",
"startPlaceholder": "संख्या",
"stepValue": "चरण मान",
"stepPlaceholder": "मान",
"countNumbers": "संख्याओं की संख्या",
"countPlaceholder": "संख्या",
"outputFormat": "आउटपुट प्रारूप",
"separatorPlaceholder": "विभाजक"
},
"sum": {
"title": "संख्याएं जोड़ें",
"description": "संख्याओं की सूची का योग करें।",
"inputTitle": "इनपुट संख्याएं",
"resultTitle": "योग",
"sumOptions": "जोड़ने के विकल्प",
"ignoreNonNumbers": "गैर-संख्यात्मक मान अनदेखा करें",
"separatorPlaceholder": "विभाजक",
"resultFormat": "परिणाम प्रारूप",
"showSum": "योग दिखाएं",
"showCount": "गणना दिखाएं",
"showAverage": "औसत दिखाएं"
},
"arithmeticSequence": {
"title": "अंकगणितीय अनुक्रम",
"description": "अंकगणितीय अनुक्रम उत्पन्न करें।",
"inputTitle": "अनुक्रम",
"resultTitle": "अंकगणितीय अनुक्रम",
"sequenceOptions": "अनुक्रम विकल्प",
"firstTerm": "पहला पद",
"firstTermPlaceholder": "पद",
"commonDifference": "सामान्य अंतर",
"differencePlaceholder": "अंतर",
"numberOfTerms": "पदों की संख्या",
"termsPlaceholder": "संख्या",
"outputFormat": "आउटपुट प्रारूप",
"separatorPlaceholder": "विभाजक"
}
}

View file

@ -1,113 +0,0 @@
{
"mergePdf": {
"title": "Merge PDF",
"description": "Combine multiple PDF files into a single document.",
"inputTitle": "Input PDFs",
"resultTitle": "Merged PDF",
"mergingPdfs": "Merging PDFs",
"pdfOptions": "PDF Options",
"sortByFileName": "Sort by file name",
"sortByFileNameDescription": "Sort PDFs alphabetically by file name",
"sortByUploadOrder": "Sort by upload order",
"sortByUploadOrderDescription": "Keep PDFs in the order they were uploaded",
"toolInfo": {
"title": "Merge PDF Files",
"description": "This tool allows you to combine multiple PDF files into a single document. You can choose how to sort the PDFs and the tool will merge them in the specified order."
},
"shortDescription": "Merge multiple PDF files into a single document"
},
"splitPdf": {
"title": "Split PDF",
"description": "Extract specific pages from a PDF document.",
"inputTitle": "Input PDF",
"resultTitle": "Extracted PDF",
"extractingPages": "Extracting pages",
"pageSelection": "Page Selection",
"pdfPageCount": "PDF has {{count}} page{{count !== 1 ? 's' : ''}}",
"pageRangesDescription": "Enter page numbers or ranges separated by commas (e.g., 1,3,5-7)",
"pageRangesPlaceholder": "e.g., 1,5-8",
"pageExtractionPreview": "{{count}} page{{count !== 1 ? 's' : ''}} will be extracted",
"toolInfo": {
"title": "Split PDF",
"description": "This tool allows you to extract specific pages from a PDF document. You can specify individual pages or ranges of pages to extract."
},
"shortDescription": "Extract specific pages from a PDF file"
},
"rotatePdf": {
"title": "Rotate PDF",
"description": "Rotate pages in a PDF document.",
"inputTitle": "Input PDF",
"resultTitle": "Rotated PDF",
"rotatingPages": "Rotating pages",
"rotationSettings": "Rotation Settings",
"rotationAngle": "Rotation Angle",
"angleOptions": {
"clockwise90": "90° Clockwise",
"upsideDown180": "180° (Upside down)",
"counterClockwise270": "270° (90° Counter-clockwise)"
},
"applyToAllPages": "Apply to all pages",
"pdfPageCount": "PDF has {{count}} page{{count !== 1 ? 's' : ''}}",
"pageRangesDescription": "Enter page numbers or ranges separated by commas (e.g., 1,3,5-7)",
"pageRangesPlaceholder": "e.g., 1,5-8",
"allPagesWillBeRotated": "All {{count}} pages will be rotated",
"pagesWillBeRotated": "{{count}} page{{count !== 1 ? 's' : ''}} will be rotated",
"toolInfo": {
"title": "How to Use the Rotate PDF Tool",
"description": "This tool allows you to rotate pages in a PDF document. You can rotate all pages or specify individual pages to rotate. Choose a rotation angle: 90° Clockwise, 180° (Upside down), or 270° (90° Counter-clockwise). To rotate specific pages, uncheck \"Apply to all pages\" and enter page numbers or ranges separated by commas (e.g., 1,3,5-7)."
},
"shortDescription": "Rotate pages in a PDF document",
"longDescription": "Change the orientation of PDF pages by rotating them 90, 180, or 270 degrees. Useful for fixing incorrectly scanned documents or preparing PDFs for printing."
},
"compressPdf": {
"inputTitle": "Input PDF",
"resultTitle": "Compressed PDF",
"compressingPdf": "Compressing PDF...",
"compressionSettings": "Compression Settings",
"compressionLevel": "Compression Level",
"lowCompression": "Low Compression",
"lowCompressionDescription": "Slightly reduce file size with minimal quality loss",
"mediumCompression": "Medium Compression",
"mediumCompressionDescription": "Balance between file size and quality",
"highCompression": "High Compression",
"highCompressionDescription": "Maximum file size reduction with some quality loss",
"fileSize": "Original File Size",
"compressedFileSize": "Compressed File Size",
"pages": "Number of Pages",
"errorReadingPdf": "Failed to read PDF file. Please make sure it is a valid PDF.",
"errorCompressingPdf": "Failed to compress PDF: {{error}}",
"title": "Compress PDF",
"description": "Reduce PDF file size while maintaining quality using Ghostscript",
"shortDescription": "Compress PDF files securely in your browser"
},
"merge": {
"inputTitle": "Input PDF",
"resultTitle": "Output merged PDF",
"loadingText": "Extracting pages",
"toolInfo": {
"title": "How to Use the Merge PDF Tool?",
"description": "This tool allows you to merge multiple PDF files into a single document. To use the tool, simply upload the PDF files you want to merge. The tool will then combine all pages from the input files into a single PDF document."
}
},
"editor": {
"title": "PDF Editor",
"description": "Advanced PDF editor with annotation, form-fill, highlight, and export capabilities. Edit your PDFs directly in the browser with professional-grade tools including text insertion, drawing, highlighting, signing and form filling.",
"shortDescription": "Edit PDFs with advanced annotation, signing and editing tools"
},
"pdfToEpub": {
"title": "PDF to EPUB",
"description": "Transform PDF documents into EPUB files for better e-reader compatibility.', icon: 'material-symbols:import-contacts', component: lazy(() => import('./index')), keywords: ['pdf', 'epub', 'convert', 'ebook'], path: 'pdf-to-epub', i18n: { name: 'pdf:pdfToEpub.title', description: 'pdf:pdfToEpub.description",
"shortDescription": "Convert PDF files to EPUB format"
},
"pdfToPng": {
"title": "PDF to PNG",
"description": "Transform PDF documents into PNG panels.",
"shortDescription": "Convert PDF into PNG images",
"longDescription": "Upload a PDF and convert each page into a high-quality PNG image directly in your browser. This tool is ideal for extracting visual content or sharing individual pages. No data is uploaded — everything runs locally."
},
"protectPdf": {
"title": "Protect PDF",
"description": "Add password protection to your PDF files securely in your browser",
"shortDescription": "Password protect PDF files securely"
}
}

View file

@ -1,82 +0,0 @@
{
"mergePdf": {
"title": "PDF मर्ज करें",
"description": "कई PDF फ़ाइलों को एक दस्तावेज़ में जोड़ें।",
"inputTitle": "इनपुट PDF फ़ाइलें",
"resultTitle": "मर्ज किया गया PDF",
"mergeOptions": "मर्ज विकल्प",
"mergeOrder": "मर्ज क्रम",
"orderByFilename": "फ़ाइल नाम के अनुसार क्रम",
"orderByUpload": "अपलोड क्रम के अनुसार",
"customOrder": "कस्टम क्रम",
"includeBookmarks": "बुकमार्क शामिल करें"
},
"pdfToEpub": {
"title": "PDF से EPUB",
"description": "PDF दस्तावेज़ों को EPUB फ़ाइलों में बदलें।",
"inputTitle": "इनपुट PDF",
"resultTitle": "EPUB फ़ाइल",
"conversionOptions": "रूपांतरण विकल्प",
"extractImages": "छवियां निकालें",
"preserveFormatting": "फॉर्मेटिंग संरक्षित करें",
"generateToc": "सामग्री तालिका उत्पन्न करें"
},
"protectPdf": {
"title": "PDF सुरक्षित करें",
"description": "PDF फ़ाइलों में पासवर्ड सुरक्षा जोड़ें।",
"inputTitle": "इनपुट PDF",
"resultTitle": "सुरक्षित PDF",
"protectionOptions": "सुरक्षा विकल्प",
"userPassword": "उपयोगकर्ता पासवर्ड",
"userPasswordPlaceholder": "पासवर्ड",
"ownerPassword": "मालिक पासवर्ड",
"ownerPasswordPlaceholder": "पासवर्ड",
"permissions": "अनुमतियां",
"allowPrinting": "प्रिंटिंग की अनुमति दें",
"allowCopying": "कॉपी करने की अनुमति दें",
"allowModification": "संशोधन की अनुमति दें"
},
"splitPdf": {
"title": "PDF विभाजित करें",
"description": "PDF फ़ाइल से विशिष्ट पेज निकालें।",
"inputTitle": "इनपुट PDF",
"resultTitle": "विभाजित PDF फ़ाइलें",
"splitOptions": "विभाजन विकल्प",
"splitMethod": "विभाजन विधि",
"splitByPages": "पेज द्वारा विभाजित करें",
"splitByRanges": "श्रेणियों द्वारा विभाजित करें",
"splitByBookmarks": "बुकमार्क द्वारा विभाजित करें",
"pageRanges": "पेज श्रेणियां",
"rangesPlaceholder": "जैसे 1,3-5,7",
"includeBookmarks": "बुकमार्क शामिल करें"
},
"compressPdf": {
"title": "PDF संपीड़ित करें",
"description": "PDF फ़ाइल आकार कम करें।",
"inputTitle": "इनपुट PDF",
"resultTitle": "संपीड़ित PDF",
"compressionOptions": "संपीड़न विकल्प",
"compressionLevel": "संपीड़न स्तर",
"low": "कम",
"medium": "मध्यम",
"high": "उच्च",
"imageQuality": "छवि गुणवत्ता",
"qualityPlaceholder": "गुणवत्ता (1-100)",
"removeMetadata": "मेटाडेटा हटाएं"
},
"rotatePdf": {
"title": "PDF घुमाएं",
"description": "PDF पेजों को घुमाएं।",
"inputTitle": "इनपुट PDF",
"resultTitle": "घुमाया गया PDF",
"rotationOptions": "घुमाने के विकल्प",
"rotationAngle": "घुमाने का कोण",
"angle90": "90 डिग्री",
"angle180": "180 डिग्री",
"angle270": "270 डिग्री",
"applyToAll": "सभी पेजों पर लागू करें",
"applyToSelected": "चयनित पेजों पर लागू करें",
"selectedPages": "चयनित पेज",
"pagesPlaceholder": "जैसे 1,3-5,7"
}
}

View file

@ -1,243 +0,0 @@
{
"uppercase": {
"title": "Convert to Uppercase",
"description": "Convert text to uppercase letters.",
"inputTitle": "Input text",
"resultTitle": "Uppercase text",
"shortDescription": "Convert text to uppercase"
},
"base64": {
"title": "Base64 Encoder/Decoder",
"description": "Encode or decode text using Base64 encoding.",
"inputTitle": "Input Data",
"resultTitle": "Result",
"optionsTitle": "Base64 Options",
"encode": "Base64 Encode",
"decode": "Base64 Decode",
"toolInfo": {
"title": "What is Base64?",
"description": "Base64 is an encoding scheme that represents data in an ASCII string format by translating it into a radix-64 representation. Although it can be used to encode strings, it is commonly used to encode binary data for transmission over media that are designed to deal with textual data."
},
"shortDescription": "Encode or decode data using Base64."
},
"truncate": {
"title": "Truncate Text",
"description": "Shorten text to a specified length.",
"inputTitle": "Input text",
"resultTitle": "Truncated text",
"truncationSide": "Truncation Side",
"rightSideTruncation": "Right-side Truncation",
"rightSideDescription": "Remove characters from the end of the text.",
"leftSideTruncation": "Left-side Truncation",
"leftSideDescription": "Remove characters from the start of the text.",
"lengthAndLines": "Length and Lines",
"maxLengthDescription": "Number of characters to leave in the text.",
"numberPlaceholder": "Number",
"lineByLineTruncating": "Line-by-line Truncating",
"lineByLineDescription": "Truncate each line separately.",
"suffixAndAffix": "Suffix and Affix",
"addTruncationIndicator": "Add Truncation Indicator",
"indicatorDescription": "Characters to add at the end (or start) of the text. Note: They count towards the length.",
"charactersPlaceholder": "Characters",
"toolInfo": {
"title": "Truncate text",
"description": "Load your text in the input form on the left and you will automatically get truncated text on the right."
},
"shortDescription": "Truncate text to a specified length"
},
"quote": {
"title": "Text Quoter",
"description": "Add quotes around text with customizable options.",
"inputTitle": "Input Text",
"resultTitle": "Quoted Text",
"quoteOptions": "Quote Options",
"leftQuoteDescription": "Left quote character(s)",
"rightQuoteDescription": "Right quote character(s)",
"allowDoubleQuotation": "Allow double quotation",
"quoteEmptyLines": "Quote empty lines",
"processAsMultiLine": "Process as multi-line text",
"toolInfo": {
"title": "Text Quoter",
"description": "This tool allows you to add quotes around text. You can choose different quote characters, handle multi-line text, and control how empty lines are processed. It's useful for preparing text for programming, formatting data, or creating stylized text."
},
"shortDescription": "Add quotes around text with various styles"
},
"join": {
"title": "Join Text",
"description": "Join text pieces together with customizable separators.",
"inputTitle": "Text Pieces",
"resultTitle": "Joined Text",
"textMergedOptions": "Text Merged Options",
"joinCharacterPlaceholder": "Join Character",
"joinCharacterDescription": "Symbol that connects broken pieces of text. (Space by default.)",
"blankLinesAndTrailingSpaces": "Blank Lines and Trailing Spaces",
"deleteBlankTitle": "Delete Blank Lines",
"deleteBlankDescription": "Delete lines that don't have text symbols.",
"deleteTrailingTitle": "Delete Trailing Spaces",
"deleteTrailingDescription": "Remove spaces and tabs at the end of the lines.",
"toolInfo": {
"title": "What Is a Text Joiner?",
"description": "With this tool you can join parts of the text together. It takes a list of text values, separated by newlines, and merges them together. You can set the character that will be placed between the parts of the combined text. Also, you can ignore all empty lines and remove spaces and tabs at the end of all lines. Textabulous!"
},
"shortDescription": "Join text elements with a specified separator"
},
"rotate": {
"title": "Rotate Text",
"description": "Rotate characters in text by specified positions.",
"inputTitle": "Input Text",
"resultTitle": "Rotated Text",
"rotationOptions": "Rotation Options",
"stepDescription": "Number of positions to rotate",
"rotateRight": "Rotate Right",
"rotateLeft": "Rotate Left",
"processAsMultiLine": "Process as multi-line text (rotate each line separately)",
"toolInfo": {
"title": "String Rotation",
"description": "This tool allows you to rotate characters in a string by a specified number of positions. You can rotate to the left or right, and process multi-line text by rotating each line separately. String rotation is useful for simple text transformations, creating patterns, or implementing basic encryption techniques."
},
"shortDescription": "Shift characters in text by position."
},
"repeat": {
"title": "Repeat Text",
"description": "Repeat text multiple times with customizable separators.",
"inputTitle": "Input text",
"resultTitle": "Repeated text",
"textRepetitions": "Text Repetitions",
"repeatAmountDescription": "Number of repetitions.",
"numberPlaceholder": "Number",
"repetitionsDelimiter": "Repetitions Delimiter",
"delimiterDescription": "Delimiter for output copies.",
"delimiterPlaceholder": "Delimiter",
"toolInfo": {
"title": "Repeat text",
"description": "This tool allows you to repeat a given text multiple times with an optional separator."
},
"shortDescription": "Repeat text multiple times"
},
"rot13": {
"title": "ROT13 Encoder/Decoder",
"description": "Encode or decode text using ROT13 cipher.",
"inputTitle": "Input Text",
"resultTitle": "ROT13 Result",
"toolInfo": {
"title": "What Is ROT13?",
"description": "ROT13 (rotate by 13 places) is a simple letter substitution cipher that replaces a letter with the 13th letter after it in the alphabet. ROT13 is a special case of the Caesar cipher which was developed in ancient Rome. Because there are 26 letters in the English alphabet, ROT13 is its own inverse; that is, to undo ROT13, the same algorithm is applied, so the same action can be used for encoding and decoding."
},
"shortDescription": "Encode or decode text using ROT13 cipher."
},
"toMorse": {
"description": "Convert text to Morse code.",
"resultTitle": "Morse code",
"shortSignal": "Short Signal",
"dotSymbolDescription": "Symbol that will correspond to the dot in Morse code.",
"longSignal": "Long Signal",
"dashSymbolDescription": "Symbol that will correspond to the dash in Morse code.",
"title": "String To morse",
"shortDescription": "Quickly encode text to morse"
},
"statistic": {
"title": "Text Statistics",
"description": "Analyze text and generate comprehensive statistics.",
"inputTitle": "Input text",
"resultTitle": "Text Statistics",
"delimitersOptions": "Delimiters Options",
"sentenceDelimitersPlaceholder": "e.g. ., !, ?, ...",
"sentenceDelimitersDescription": "Enter custom characters used to delimit sentences in your language (separated by comma) or leave it blank for default.",
"wordDelimitersPlaceholder": "eg. \\s.,;:!?\"«»()…",
"wordDelimitersDescription": "Enter custom Regex to count Words or leave it blank for default.",
"statisticsOptions": "Statistics Options",
"wordFrequencyAnalysis": "Word Frequency Analysis",
"wordFrequencyAnalysisDescription": "Count how often each word appears in the text",
"characterFrequencyAnalysis": "Character Frequency Analysis",
"characterFrequencyAnalysisDescription": "Count how often each character appears in the text",
"includeEmptyLines": "Include Empty Lines",
"includeEmptyLinesDescription": "Include blank lines when counting lines",
"toolInfo": {
"title": "What is a {{title}}?",
"description": "This tool allows you to analyze text and generate comprehensive statistics including character count, word count, line count, and frequency analysis of characters and words."
},
"shortDescription": "Get statistics about your text"
},
"textReplacer": {
"title": "Text Replacer",
"description": "Replace text patterns with new content.",
"inputTitle": "Text to replace",
"resultTitle": "Text with replacements",
"searchText": "Search text",
"findPatternInText": "Find This Pattern in Text",
"searchPatternDescription": "Enter the text pattern that you want to replace.",
"findPatternUsingRegexp": "Find a Pattern Using a RegExp",
"regexpDescription": "Enter the regular expression that you want to replace.",
"replaceText": "Replace Text",
"replacePatternDescription": "Enter the pattern to use for replacement.",
"newTextPlaceholder": "New text",
"toolInfo": {
"title": "Text Replacer",
"description": "Easily replace specific text in your content with this simple, browser-based tool. Just input your text, set the text you want to replace and the replacement value, and instantly get the updated version."
},
"shortDescription": "Quickly replace text in your content"
},
"reverse": {
"reversalOptions": "Reversal options",
"processMultiLine": "Process multi-line text",
"processMultiLineDescription": "Each line will be reversed independently",
"skipEmptyLines": "Skip empty lines",
"skipEmptyLinesDescription": "Empty lines will be removed from the output",
"trimWhitespace": "Trim whitespace",
"trimWhitespaceDescription": "Remove leading and trailing whitespace from each line",
"inputTitle": "Text to reverse",
"resultTitle": "Reversed text",
"title": "Reverse",
"description": "World's simplest browser-based utility for reversing text. Input any text and get it instantly reversed, character by character. Perfect for creating mirror text, analyzing palindromes, or playing with text patterns. Preserves spaces and special characters while reversing.",
"shortDescription": "Reverse any text character by character"
},
"split": {
"resultTitle": "Text pieces",
"splitSeparatorOptions": "Split separator options",
"symbolTitle": "Use a Symbol for Splitting",
"symbolDescription": "Character that will be used to break text into parts.\n(Space by default.)",
"regexTitle": "Use a Regex for Splitting",
"regexDescription": "Regular expression that will be used to break text into parts.\n(Multiple spaces by default.)",
"lengthTitle": "Use Length for Splitting",
"lengthDescription": "Number of symbols that will be put in each output chunk.",
"chunksTitle": "Use a Number of Chunks",
"chunksDescription": "Number of chunks of equal\nlength in the output.",
"outputSeparatorOptions": "Output separator options",
"outputSeparatorDescription": "Character that will be put between the split chunks.\n(It's newline \"\\n\" by default.)",
"charBeforeChunkDescription": "Character before each chunk",
"charAfterChunkDescription": "Character after each chunk",
"title": "Split",
"description": "World's simplest browser-based utility for splitting text. Input your text and specify a separator to split it into multiple parts. Perfect for data processing, text manipulation, or extracting specific content from larger text blocks.",
"shortDescription": "Split text into multiple parts using a separator"
},
"censor": {
"title": "Text Censor",
"description": "utility for censoring words in text. Load your text in the input form on the left, specify all the bad words in the options, and you'll instantly get censored text in the output area.\", longDescription: 'With this online tool, you can censor certain words in any text. You can specify a list of unwanted words (such as swear words or secret words) and the program will replace them with alternative words and create a safe-to-read text. The words can be specified in a multi-line text field in the options by entering one word per line.', keywords: ['text', 'censor', 'words', 'characters'], component: lazy(() => import('./index')), i18n: { name: 'string:censor.title', description: 'string:censor.description",
"shortDescription": "Quickly mask bad words or replace them with alternative words."
},
"createPalindrome": {
"title": "Create palindrome",
"description": "World's simplest browser-based utility for creating palindromes from any text. Input text and instantly transform it into a palindrome that reads the same forward and backward. Perfect for word games, creating symmetrical text patterns, or exploring linguistic curiosities.",
"shortDescription": "Create text that reads the same forward and backward"
},
"extractSubstring": {
"title": "Extract substring",
"description": "World's simplest browser-based utility for extracting substrings from text. Input your text and specify start and end positions to extract the desired portion. Perfect for data processing, text analysis, or extracting specific content from larger text blocks.",
"shortDescription": "Extract a portion of text between specified positions"
},
"palindrome": {
"title": "Palindrome",
"description": "World's simplest browser-based utility for checking if text is a palindrome. Instantly verify if your text reads the same forward and backward. Perfect for word puzzles, linguistic analysis, or validating symmetrical text patterns. Supports various delimiters and multi-word palindrome detection.",
"shortDescription": "Check if text reads the same forward and backward"
},
"randomizeCase": {
"title": "Randomize case",
"description": "World's simplest browser-based utility for randomizing text case. Input your text and instantly transform it with random upper and lower case letters. Perfect for creating unique text effects, testing case sensitivity, or generating varied text patterns.",
"shortDescription": "Randomize the case of letters in text"
},
"removeDuplicateLines": {
"title": "Remove duplicate lines",
"description": "Load your text in the input form on the left and you'll instantly get text with no duplicate lines in the output area. Powerful, free, and fast. Load text lines get unique text lines",
"shortDescription": "Quickly delete all repeated lines from text"
}
}

View file

@ -1,196 +0,0 @@
{
"uppercase": {
"title": "बड़े अक्षरों में बदलें",
"description": "टेक्स्ट को बड़े अक्षरों में बदलें।",
"inputTitle": "इनपुट टेक्स्ट",
"resultTitle": "बड़े अक्षरों में टेक्स्ट"
},
"reverse": {
"title": "टेक्स्ट उलटा करें",
"description": "टेक्स्ट में वर्णों के क्रम को उलटा करें।",
"inputTitle": "इनपुट टेक्स्ट",
"resultTitle": "उलटा टेक्स्ट",
"processMultiLine": "बहु-पंक्ति टेक्स्ट के रूप में प्रक्रिया करें (प्रत्येक पंक्ति को अलग से उलटा करें)",
"skipEmptyLines": "खाली पंक्तियों को छोड़ें",
"trimWhitespace": "पंक्तियों से सफेद स्थान ट्रिम करें"
},
"base64": {
"title": "बेस64 एनकोडर/डिकोडर",
"description": "बेस64 एनकोडिंग का उपयोग करके टेक्स्ट को एनकोड या डिकोड करें।",
"inputTitle": "इनपुट डेटा",
"resultTitle": "परिणाम",
"optionsTitle": "बेस64 विकल्प",
"encode": "बेस64 एनकोड",
"decode": "बेस64 डिकोड",
"toolInfo": {
"title": "बेस64 क्या है?",
"description": "बेस64 एक एनकोडिंग योजना है जो डेटा को रेडिक्स-64 प्रतिनिधित्व में अनुवाद करके ASCII स्ट्रिंग प्रारूप में प्रस्तुत करती है। हालांकि इसका उपयोग स्ट्रिंग्स को एनकोड करने के लिए किया जा सकता है, यह आमतौर पर बाइनरी डेटा को एनकोड करने के लिए उपयोग किया जाता है जो टेक्स्ट डेटा से निपटने के लिए डिज़ाइन किए गए मीडिया पर प्रसारण के लिए होता है।"
}
},
"truncate": {
"title": "टेक्स्ट काटें",
"description": "टेक्स्ट को निर्दिष्ट लंबाई तक छोटा करें।",
"inputTitle": "इनपुट टेक्स्ट",
"resultTitle": "काटा गया टेक्स्ट",
"truncationSide": "काटने की तरफ",
"rightSideTruncation": "दाईं तरफ काटना",
"rightSideDescription": "टेक्स्ट के अंत से वर्ण हटाएं।",
"leftSideTruncation": "बाईं तरफ काटना",
"leftSideDescription": "टेक्स्ट की शुरुआत से वर्ण हटाएं।",
"lengthAndLines": "लंबाई और पंक्तियां",
"maxLengthDescription": "टेक्स्ट में छोड़ने के लिए वर्णों की संख्या।",
"numberPlaceholder": "संख्या",
"lineByLineTruncating": "पंक्ति दर पंक्ति काटना",
"lineByLineDescription": "प्रत्येक पंक्ति को अलग से काटें।",
"suffixAndAffix": "प्रत्यय और उपसर्ग",
"addTruncationIndicator": "काटने का संकेतक जोड़ें",
"indicatorDescription": "टेक्स्ट के अंत (या शुरुआत) में जोड़ने के लिए वर्ण। नोट: वे लंबाई की ओर गिने जाते हैं।",
"charactersPlaceholder": "वर्ण",
"toolInfo": {
"title": "टेक्स्ट काटें",
"description": "बाईं ओर इनपुट फॉर्म में अपना टेक्स्ट लोड करें और आपको दाईं ओर स्वचालित रूप से काटा गया टेक्स्ट मिलेगा।"
}
},
"quote": {
"title": "टेक्स्ट कोटर",
"description": "कस्टमाइज़ करने योग्य विकल्पों के साथ टेक्स्ट के चारों ओर उद्धरण जोड़ें।",
"inputTitle": "इनपुट टेक्स्ट",
"resultTitle": "कोटेड टेक्स्ट",
"quoteOptions": "उद्धरण विकल्प",
"leftQuoteDescription": "बाएं उद्धरण वर्ण",
"rightQuoteDescription": "दाएं उद्धरण वर्ण",
"allowDoubleQuotation": "दोहरे उद्धरण की अनुमति दें",
"quoteEmptyLines": "खाली पंक्तियों को कोट करें",
"processAsMultiLine": "बहु-पंक्ति टेक्स्ट के रूप में प्रक्रिया करें",
"toolInfo": {
"title": "टेक्स्ट कोटर",
"description": "यह टूल आपको टेक्स्ट के चारों ओर उद्धरण जोड़ने की अनुमति देता है। आप विभिन्न उद्धरण वर्ण चुन सकते हैं, बहु-पंक्ति टेक्स्ट को संभाल सकते हैं, और नियंत्रित कर सकते हैं कि खाली पंक्तियों को कैसे संसाधित किया जाता है। यह प्रोग्रामिंग के लिए टेक्स्ट तैयार करने, डेटा को फॉर्मेट करने, या स्टाइलिश टेक्स्ट बनाने के लिए उपयोगी है।"
}
},
"split": {
"title": "टेक्स्ट विभाजित करें",
"description": "विभिन्न मानदंडों के आधार पर टेक्स्ट को भागों में विभाजित करें।",
"resultTitle": "टेक्स्ट टुकड़े",
"splitSeparatorOptions": "विभाजक विकल्प",
"symbolTitle": "विभाजन के लिए प्रतीक का उपयोग करें",
"symbolDescription": "वर्ण जो टेक्स्ट को भागों में तोड़ने के लिए उपयोग किया जाएगा। (डिफ़ॉल्ट रूप से स्पेस।)",
"regexTitle": "विभाजन के लिए रेगेक्स का उपयोग करें",
"regexDescription": "नियमित अभिव्यक्ति जो टेक्स्ट को भागों में तोड़ने के लिए उपयोग की जाएगी। (डिफ़ॉल्ट रूप से कई स्पेस।)",
"lengthTitle": "विभाजन के लिए लंबाई का उपयोग करें",
"lengthDescription": "प्रत्येक आउटपुट चंक में रखे जाने वाले वर्णों की संख्या।",
"chunksTitle": "चंक की संख्या का उपयोग करें",
"chunksDescription": "आउटपुट में समान लंबाई के चंक की संख्या।",
"outputSeparatorOptions": "आउटपुट विभाजक विकल्प",
"outputSeparatorDescription": "वर्ण जो विभाजित चंक के बीच रखा जाएगा। (यह डिफ़ॉल्ट रूप से नई पंक्ति \"\\n\" है।)",
"charBeforeChunkDescription": "प्रत्येक चंक से पहले वर्ण",
"charAfterChunkDescription": "प्रत्येक चंक के बाद वर्ण"
},
"join": {
"title": "टेक्स्ट जोड़ें",
"description": "कस्टमाइज़ करने योग्य विभाजकों के साथ टेक्स्ट टुकड़ों को एक साथ जोड़ें।",
"inputTitle": "टेक्स्ट टुकड़े",
"resultTitle": "जुड़ा हुआ टेक्स्ट",
"textMergedOptions": "टेक्स्ट मर्ज विकल्प",
"joinCharacterPlaceholder": "जोड़ने का वर्ण",
"joinCharacterDescription": "प्रतीक जो टेक्स्ट के टूटे हुए टुकड़ों को जोड़ता है। (डिफ़ॉल्ट रूप से स्पेस।)",
"blankLinesAndTrailingSpaces": "खाली पंक्तियां और अनुगामी स्थान",
"deleteBlankTitle": "खाली पंक्तियां हटाएं",
"deleteBlankDescription": "उन पंक्तियों को हटाएं जिनमें टेक्स्ट प्रतीक नहीं हैं।",
"deleteTrailingTitle": "अनुगामी स्थान हटाएं",
"deleteTrailingDescription": "पंक्तियों के अंत से स्पेस और टैब हटाएं।",
"toolInfo": {
"title": "टेक्स्ट जोइनर क्या है?",
"description": "इस टूल के साथ आप टेक्स्ट के भागों को एक साथ जोड़ सकते हैं। यह नई पंक्तियों से अलग किए गए टेक्स्ट मूल्यों की सूची लेता है और उन्हें एक साथ मर्ज करता है। आप उस वर्ण को सेट कर सकते हैं जो संयुक्त टेक्स्ट के भागों के बीच रखा जाएगा। साथ ही, आप सभी खाली पंक्तियों को अनदेखा कर सकते हैं और सभी पंक्तियों के अंत से स्पेस और टैब हटा सकते हैं। टेक्स्टाबुलस!"
}
},
"rotate": {
"title": "टेक्स्ट घुमाएं",
"description": "निर्दिष्ट स्थानों द्वारा टेक्स्ट में वर्णों को घुमाएं।",
"inputTitle": "इनपुट टेक्स्ट",
"resultTitle": "घुमाया गया टेक्स्ट",
"rotationOptions": "घुमाने के विकल्प",
"stepDescription": "घुमाने के लिए स्थानों की संख्या",
"rotateRight": "दाईं ओर घुमाएं",
"rotateLeft": "बाईं ओर घुमाएं",
"processAsMultiLine": "बहु-पंक्ति टेक्स्ट के रूप में प्रक्रिया करें (प्रत्येक पंक्ति को अलग से घुमाएं)",
"toolInfo": {
"title": "स्ट्रिंग रोटेशन",
"description": "यह टूल आपको निर्दिष्ट संख्या में स्थानों द्वारा स्ट्रिंग में वर्णों को घुमाने की अनुमति देता है। आप बाएं या दाएं घुमा सकते हैं, और प्रत्येक पंक्ति को अलग से घुमाकर बहु-पंक्ति टेक्स्ट को संसाधित कर सकते हैं। स्ट्रिंग रोटेशन सरल टेक्स्ट परिवर्तनों, पैटर्न बनाने, या बुनियादी एन्क्रिप्शन तकनीकों को लागू करने के लिए उपयोगी है।"
}
},
"repeat": {
"title": "टेक्स्ट दोहराएं",
"description": "कस्टमाइज़ करने योग्य विभाजकों के साथ टेक्स्ट को कई बार दोहराएं।",
"inputTitle": "इनपुट टेक्स्ट",
"resultTitle": "दोहराया गया टेक्स्ट",
"textRepetitions": "टेक्स्ट दोहराव",
"repeatAmountDescription": "दोहराव की संख्या।",
"numberPlaceholder": "संख्या",
"repetitionsDelimiter": "दोहराव विभाजक",
"delimiterDescription": "आउटपुट प्रतियों के लिए विभाजक।",
"delimiterPlaceholder": "विभाजक",
"toolInfo": {
"title": "टेक्स्ट दोहराएं",
"description": "यह टूल आपको वैकल्पिक विभाजक के साथ दिए गए टेक्स्ट को कई बार दोहराने की अनुमति देता है।"
}
},
"rot13": {
"title": "ROT13 एनकोडर/डिकोडर",
"description": "ROT13 सिफर का उपयोग करके टेक्स्ट को एनकोड या डिकोड करें।",
"inputTitle": "इनपुट टेक्स्ट",
"resultTitle": "ROT13 परिणाम",
"toolInfo": {
"title": "ROT13 क्या है?",
"description": "ROT13 (13 स्थानों से घुमाएं) एक सरल अक्षर प्रतिस्थापन सिफर है जो एक अक्षर को वर्णमाला में उसके बाद के 13वें अक्षर से बदल देता है। ROT13 सीज़र सिफर का एक विशेष मामला है जो प्राचीन रोम में विकसित किया गया था। क्योंकि अंग्रेजी वर्णमाला में 26 अक्षर हैं, ROT13 अपना स्वयं का व्युत्क्रम है; अर्थात, ROT13 को पूर्ववत करने के लिए, एक ही एल्गोरिथम लागू किया जाता है, इसलिए एनकोडिंग और डिकोडिंग दोनों के लिए एक ही क्रिया का उपयोग किया जा सकता है।"
}
},
"toMorse": {
"title": "मोर्स में",
"description": "टेक्स्ट को मोर्स कोड में बदलें।",
"resultTitle": "मोर्स कोड",
"shortSignal": "छोटा संकेत",
"dotSymbolDescription": "प्रतीक जो मोर्स कोड में डॉट के अनुरूप होगा।",
"longSignal": "लंबा संकेत",
"dashSymbolDescription": "प्रतीक जो मोर्स कोड में डैश के अनुरूप होगा।"
},
"statistic": {
"title": "टेक्स्ट आंकड़े",
"description": "टेक्स्ट का विश्लेषण करें और व्यापक आंकड़े उत्पन्न करें।",
"inputTitle": "इनपुट टेक्स्ट",
"resultTitle": "टेक्स्ट आंकड़े",
"delimitersOptions": "विभाजक विकल्प",
"sentenceDelimitersPlaceholder": "जैसे ., !, ?, ...",
"sentenceDelimitersDescription": "अपनी भाषा में वाक्यों को विभाजित करने के लिए उपयोग किए जाने वाले कस्टम वर्ण दर्ज करें (कॉमा से अलग) या डिफ़ॉल्ट के लिए इसे खाली छोड़ दें।",
"wordDelimitersPlaceholder": "जैसे \\s.,;:!?\"«»()…",
"wordDelimitersDescription": "शब्दों की गणना के लिए कस्टम रेगेक्स दर्ज करें या डिफ़ॉल्ट के लिए इसे खाली छोड़ दें।",
"statisticsOptions": "आंकड़े विकल्प",
"wordFrequencyAnalysis": "शब्द आवृत्ति विश्लेषण",
"wordFrequencyAnalysisDescription": "गणना करें कि प्रत्येक शब्द टेक्स्ट में कितनी बार दिखाई देता है",
"characterFrequencyAnalysis": "वर्ण आवृत्ति विश्लेषण",
"characterFrequencyAnalysisDescription": "गणना करें कि प्रत्येक वर्ण टेक्स्ट में कितनी बार दिखाई देता है",
"includeEmptyLines": "खाली पंक्तियां शामिल करें",
"includeEmptyLinesDescription": "पंक्तियों की गणना करते समय खाली पंक्तियां शामिल करें",
"toolInfo": {
"title": "{{title}} क्या है?",
"description": "यह टूल आपको टेक्स्ट का विश्लेषण करने और वर्ण गणना, शब्द गणना, पंक्ति गणना, और वर्णों और शब्दों के आवृत्ति विश्लेषण सहित व्यापक आंकड़े उत्पन्न करने की अनुमति देता है।"
}
},
"textReplacer": {
"title": "टेक्स्ट रिप्लेसर",
"description": "टेक्स्ट पैटर्न को नई सामग्री से बदलें।",
"inputTitle": "बदलने के लिए टेक्स्ट",
"resultTitle": "प्रतिस्थापन के साथ टेक्स्ट",
"searchText": "खोज टेक्स्ट",
"findPatternInText": "टेक्स्ट में यह पैटर्न खोजें",
"searchPatternDescription": "उस टेक्स्ट पैटर्न को दर्ज करें जिसे आप बदलना चाहते हैं।",
"findPatternUsingRegexp": "रेगेक्स का उपयोग करके पैटर्न खोजें",
"regexpDescription": "उस नियमित अभिव्यक्ति को दर्ज करें जिसे आप बदलना चाहते हैं।",
"replaceText": "टेक्स्ट बदलें",
"replacePatternDescription": "प्रतिस्थापन के लिए उपयोग करने के लिए पैटर्न दर्ज करें।",
"newTextPlaceholder": "नया टेक्स्ट",
"toolInfo": {
"title": "टेक्स्ट रिप्लेसर",
"description": "इस सरल, ब्राउज़र-आधारित टूल के साथ अपनी सामग्री में विशिष्ट टेक्स्ट को आसानी से बदलें। बस अपना टेक्स्ट इनपुट करें, उस टेक्स्ट को सेट करें जिसे आप बदलना चाहते हैं और प्रतिस्थापन मूल्य, और तुरंत अपडेटेड संस्करण प्राप्त करें।"
}
}
}

View file

@ -1,106 +0,0 @@
{
"checkLeapYears": {
"title": "Check Leap Years",
"description": "Check if a year is a leap year and get leap year information.",
"inputTitle": "Input year",
"resultTitle": "Leap year result",
"toolInfo": {
"title": "What is a Leap Year?",
"description": "A leap year is a year containing one additional day (February 29) to keep the calendar year synchronized with the astronomical year. Leap years occur every 4 years, except for years that are divisible by 100 but not by 400."
},
"title": "Check Leap Years",
"shortDescription": "Check if a year is a leap year"
},
"convertDaysToHours": {
"title": "Convert Days to Hours",
"description": "Convert days to hours with customizable options.",
"hoursName": "Hours Name",
"addHoursName": "Add Hours Name",
"addHoursNameDescription": "Append the string hours to output values",
"toolInfo": {
"title": "Convert Days to Hours",
"description": "This tool allows you to convert days to hours. You can input days as numbers or with units, and the tool will convert them to hours. You can also choose to append the 'hours' suffix to the output values."
},
"title": "Convert Days to Hours",
"shortDescription": "Convert days to hours"
},
"convertHoursToDays": {
"title": "Convert Hours to Days",
"description": "Convert hours to days with customizable options.",
"daysName": "Days Name",
"addDaysName": "Add Days Name",
"addDaysNameDescription": "Append the string days to output values",
"toolInfo": {
"title": "Convert Hours to Days",
"description": "This tool allows you to convert hours to days. You can input hours as numbers or with units, and the tool will convert them to days. You can also choose to append the 'days' suffix to the output values."
},
"title": "Convert Hours to Days",
"shortDescription": "Convert hours to days"
},
"convertTimeToSeconds": {
"title": "Convert Time to Seconds",
"description": "Convert formatted time (HH:MM:SS) to seconds.",
"inputTitle": "Input time",
"resultTitle": "Seconds",
"toolInfo": {
"title": "Convert Time to Seconds",
"description": "This tool allows you to convert formatted time strings (HH:MM:SS) to seconds. It's useful for calculating durations and time intervals."
},
"title": "Convert Time to Seconds",
"shortDescription": "Convert time format to seconds"
},
"truncateClockTime": {
"toolInfo": {
"title": "What is a {{title}}?"
},
"truncationSide": "Truncation Side",
"truncateOnlySeconds": "Truncate Only Seconds",
"truncateOnlySecondsDescription": "Drop the seconds component from each clock time.",
"truncateMinutesAndSeconds": "Truncate Minutes and Seconds",
"truncateMinutesAndSecondsDescription": "Drop both the minutes and seconds components from each clock time.",
"printDroppedComponents": "Print Dropped Components",
"zeroPrintTruncatedParts": "Zero-print Truncated Parts",
"zeroPrintDescription": "Display the dropped parts as zero values \"00\".",
"timePadding": "Time Padding",
"useZeroPadding": "Use Zero Padding",
"zeroPaddingDescription": "Make all time components always be two digits wide.",
"title": "Truncate Clock Time",
"description": "Truncate clock time to remove seconds or minutes. Round time to the nearest hour, minute, or custom interval.",
"shortDescription": "Truncate clock time to specified precision"
},
"timeBetweenDates": {
"title": "Time Between Dates",
"toolInfo": {
"title": "Time Between Dates Calculator",
"description": "Calculate the exact time difference between two dates and times, with support for different timezones. This tool provides a detailed breakdown of the time difference in various units (years, months, days, hours, minutes, and seconds)."
},
"startDateTime": "Start Date & Time",
"startDate": "Start Date",
"startTime": "Start Time",
"startTimezone": "Start Timezone",
"endDateTime": "End Date & Time",
"endDate": "End Date",
"endTime": "End Time",
"endTimezone": "End Timezone",
"title": "Time Between Dates",
"description": "Calculate the time difference between two dates. Get the exact duration in days, hours, minutes, and seconds.",
"shortDescription": "Calculate time between two dates"
},
"convertSecondsToTime": {
"timePadding": "Time Padding",
"addPadding": "Add Padding",
"addPaddingDescription": "Add zero padding to hours, minutes, and seconds.",
"toolInfo": {
"title": "What is a {{title}}?",
"description": ""
},
"title": "Convert Seconds to Time",
"description": "Convert seconds to a readable time format (hours:minutes:seconds). Enter the number of seconds to get the formatted time.",
"shortDescription": "Convert seconds to time format"
},
"crontabGuru": {
"title": "Crontab Guru",
"description": "Generate and understand cron expressions. Create cron schedules for automated tasks and system jobs.",
"shortDescription": "Generate and understand cron expressions"
}
}

View file

@ -1,105 +0,0 @@
{
"checkLeapYears": {
"title": "लीप वर्ष जांचें",
"description": "निर्दिष्ट वर्षों को लीप वर्ष के रूप में जांचें।",
"inputTitle": "इनपुट वर्ष",
"resultTitle": "लीप वर्ष परिणाम",
"checkOptions": "जांच विकल्प",
"checkMultiple": "कई वर्ष जांचें",
"yearRange": "वर्ष श्रेणी",
"startYear": "शुरुआती वर्ष",
"startPlaceholder": "वर्ष",
"endYear": "अंतिम वर्ष",
"endPlaceholder": "वर्ष"
},
"convertDaysToHours": {
"title": "दिनों को घंटों में बदलें",
"description": "दिनों की संख्या को घंटों में बदलें।",
"inputTitle": "इनपुट दिन",
"resultTitle": "घंटे",
"conversionOptions": "रूपांतरण विकल्प",
"decimalPlaces": "दशमलव स्थान",
"placesPlaceholder": "स्थान",
"showBreakdown": "विस्तृत विवरण दिखाएं"
},
"convertHoursToDays": {
"title": "घंटों को दिनों में बदलें",
"description": "घंटों की संख्या को दिनों में बदलें।",
"inputTitle": "इनपुट घंटे",
"resultTitle": "दिन",
"conversionOptions": "रूपांतरण विकल्प",
"decimalPlaces": "दशमलव स्थान",
"placesPlaceholder": "स्थान",
"showBreakdown": "विस्तृत विवरण दिखाएं"
},
"convertSecondsToTime": {
"title": "सेकंड को समय में बदलें",
"description": "सेकंड की संख्या को पठनीय समय प्रारूप में बदलें।",
"inputTitle": "इनपुट सेकंड",
"resultTitle": "समय",
"conversionOptions": "रूपांतरण विकल्प",
"timeFormat": "समय प्रारूप",
"formatHMS": "घंटे:मिनट:सेकंड",
"formatDHMS": "दिन:घंटे:मिनट:सेकंड",
"showZeroValues": "शून्य मान दिखाएं"
},
"convertTimeToSeconds": {
"title": "समय को सेकंड में बदलें",
"description": "समय प्रारूप को सेकंड की संख्या में बदलें।",
"inputTitle": "इनपुट समय",
"resultTitle": "सेकंड",
"conversionOptions": "रूपांतरण विकल्प",
"timeFormat": "समय प्रारूप",
"formatHMS": "घंटे:मिनट:सेकंड",
"formatDHMS": "दिन:घंटे:मिनट:सेकंड",
"inputPlaceholder": "जैसे 1:30:45 या 1d 2h 30m 45s"
},
"crontabGuru": {
"title": "Crontab गुरु",
"description": "Cron एक्सप्रेशन को मानव-पठनीय प्रारूप में बदलें।",
"inputTitle": "इनपुट Cron एक्सप्रेशन",
"resultTitle": "मानव-पठनीय विवरण",
"cronOptions": "Cron विकल्प",
"expressionPlaceholder": "जैसे */5 * * * *",
"showNextRuns": "अगले रन दिखाएं",
"runCount": "रन की संख्या",
"countPlaceholder": "संख्या"
},
"timeBetweenDates": {
"title": "तिथियों के बीच समय",
"description": "दो तिथियों के बीच का समय अंतराल ज्ञात करें।",
"inputTitle": "तिथि जोड़े",
"resultTitle": "समय अंतराल",
"dateOptions": "तिथि विकल्प",
"startDate": "शुरुआती तिथि",
"startDatePlaceholder": "YYYY-MM-DD",
"endDate": "अंतिम तिथि",
"endDatePlaceholder": "YYYY-MM-DD",
"includeTime": "समय शामिल करें",
"startTime": "शुरुआती समय",
"startTimePlaceholder": "HH:MM:SS",
"endTime": "अंतिम समय",
"endTimePlaceholder": "HH:MM:SS",
"outputFormat": "आउटपुट प्रारूप",
"formatDays": "दिन",
"formatHours": "घंटे",
"formatMinutes": "मिनट",
"formatSeconds": "सेकंड"
},
"truncateClockTime": {
"title": "घड़ी का समय काटें",
"description": "समय को निर्दिष्ट स्तर तक काटें।",
"inputTitle": "इनपुट समय",
"resultTitle": "काटा गया समय",
"truncationOptions": "काटने के विकल्प",
"truncateTo": "काटने का स्तर",
"truncateToHours": "घंटे",
"truncateToMinutes": "मिनट",
"truncateToSeconds": "सेकंड",
"roundUp": "ऊपर गोल करें",
"roundDown": "नीचे गोल करें",
"timeFormat": "समय प्रारूप",
"format12Hour": "12 घंटे प्रारूप",
"format24Hour": "24 घंटे प्रारूप"
}
}

View file

@ -1,115 +0,0 @@
{
"loop": {
"title": "Loop Video",
"description": "Create a looping video by repeating the original video multiple times.",
"inputTitle": "Input Video",
"resultTitle": "Looped Video",
"loops": "Loops",
"numberOfLoops": "Number of Loops",
"loopingVideo": "Looping Video",
"toolInfo": {
"title": "What is a {{title}}?",
"description": "This tool allows you to create a looping video by repeating the original video multiple times. You can specify how many times the video should loop."
},
"title": "Loop Video",
"shortDescription": "Create looping video files"
},
"cropVideo": {
"title": "Crop Video",
"description": "Crop video to remove unwanted areas.",
"inputTitle": "Input Video",
"resultTitle": "Cropped Video",
"croppingVideo": "Cropping Video",
"videoInformation": "Video Information",
"videoDimensions": "Video dimensions: {{width}} × {{height}} pixels",
"loadVideoForDimensions": "Load a video to see dimensions",
"cropCoordinates": "Crop Coordinates",
"xCoordinate": "X (left)",
"yCoordinate": "Y (top)",
"width": "Width",
"height": "Height",
"errorNonNegativeCoordinates": "X and Y coordinates must be non-negative",
"errorPositiveDimensions": "Width and height must be positive",
"errorBeyondWidth": "Crop area extends beyond video width ({{width}}px)",
"errorBeyondHeight": "Crop area extends beyond video height ({{height}}px)",
"errorCroppingVideo": "Error cropping video. Please check parameters and video file.",
"errorLoadingDimensions": "Failed to load video dimensions",
"toolInfo": {
"title": "Crop Video",
"description": "This tool allows you to crop video files to remove unwanted areas. You can specify the crop area by setting the X, Y coordinates and width, height dimensions."
},
"title": "Crop Video",
"shortDescription": "Crop video to remove unwanted areas"
},
"trim": {
"timestamps": "Timestamps",
"startTime": "Start Time",
"endTime": "End Time",
"inputTitle": "Input Video",
"resultTitle": "Trimmed Video",
"title": "Trim Video",
"description": "Trim video files by specifying start and end times. Remove unwanted sections from the beginning or end of videos.",
"shortDescription": "Trim video by removing unwanted sections"
},
"changeSpeed": {
"newVideoSpeed": "New Video Speed",
"defaultMultiplier": "Default multiplier: 2 means 2x faster",
"inputTitle": "Input Video",
"settingSpeed": "Setting Speed",
"resultTitle": "Edited Video",
"toolInfo": {
"title": "What is a {{title}}?"
},
"title": "Change Video Speed",
"description": "Change the playback speed of video files. Speed up or slow down videos while maintaining audio synchronization. Supports various speed multipliers and common video formats.",
"shortDescription": "Change video playback speed"
},
"compress": {
"resolution": "Resolution",
"quality": "Quality (CRF)",
"lossless": "Lossless",
"default": "Default",
"worst": "Worst",
"inputTitle": "Input Video",
"resultTitle": "Compressed Video",
"loadingText": "Compressing video...",
"title": "Compress Video",
"description": "Compress videos by scaling them to different resolutions like 240p, 480p, 720p, etc. This tool helps reduce file size while maintaining acceptable quality. Supports common video formats like MP4, WebM, and OGG.",
"shortDescription": "Compress videos by scaling to different resolutions"
},
"flip": {
"orientation": "Orientation",
"horizontalLabel": "Horizontal (Mirror)",
"verticalLabel": "Vertical (Upside Down)",
"inputTitle": "Input Video",
"flippingVideo": "Flipping Video",
"resultTitle": "Flipped Video",
"title": "Flip Video",
"description": "Flip video files horizontally or vertically. Mirror videos for special effects or correct orientation issues.",
"shortDescription": "Flip video horizontally or vertically"
},
"rotate": {
"rotation": "Rotation",
"90Degrees": "90° Clockwise",
"180Degrees": "180° (Upside down)",
"270Degrees": "270° (90° Counter-clockwise)",
"inputTitle": "Input Video",
"rotatingVideo": "Rotating Video",
"resultTitle": "Rotated Video",
"title": "Rotate Video",
"description": "Rotate video files by 90, 180, or 270 degrees. Correct video orientation or create special effects with precise rotation control.",
"shortDescription": "Rotate video by specified degrees"
},
"videoToGif": {
"title": "Video to GIF",
"description": "Convert video files to animated GIF format. Extract specific time ranges and create shareable animated images.",
"shortDescription": "Convert video to animated GIF"
},
"gif": {
"changeSpeed": {
"title": "Change GIF Speed",
"description": "Change the playback speed of GIF animations. Speed up or slow down GIFs while maintaining smooth animation.",
"shortDescription": "Change GIF animation speed"
}
}
}

View file

@ -1,140 +0,0 @@
{
"changeSpeed": {
"title": "वीडियो गति बदलें",
"description": "वीडियो फ़ाइलों की प्लेबैक गति बदलें।",
"inputTitle": "इनपुट वीडियो",
"resultTitle": "गति बदली गई वीडियो",
"speedOptions": "गति विकल्प",
"speedFactor": "गति कारक",
"factorPlaceholder": "कारक (जैसे 0.5, 1.5, 2.0)",
"preserveAudio": "ऑडियो संरक्षित करें",
"outputFormat": "आउटपुट प्रारूप",
"formatMp4": "MP4",
"formatAvi": "AVI",
"formatMov": "MOV"
},
"compress": {
"title": "वीडियो संपीड़ित करें",
"description": "वीडियो फ़ाइल आकार कम करें।",
"inputTitle": "इनपुट वीडियो",
"resultTitle": "संपीड़ित वीडियो",
"compressionOptions": "संपीड़न विकल्प",
"videoQuality": "वीडियो गुणवत्ता",
"qualityHigh": "उच्च",
"qualityMedium": "मध्यम",
"qualityLow": "कम",
"resolution": "रिज़ॉल्यूशन",
"resolutionOriginal": "मूल",
"resolution720p": "720p",
"resolution480p": "480p",
"resolution360p": "360p",
"outputFormat": "आउटपुट प्रारूप",
"formatMp4": "MP4",
"formatAvi": "AVI"
},
"cropVideo": {
"title": "वीडियो क्रॉप करें",
"description": "वीडियो से अनावश्यक भाग हटाएं।",
"inputTitle": "इनपुट वीडियो",
"resultTitle": "क्रॉप किया गया वीडियो",
"cropOptions": "क्रॉप विकल्प",
"cropMethod": "क्रॉप विधि",
"methodManual": "मैनुअल",
"methodAspectRatio": "आकार अनुपात",
"aspectRatio": "आकार अनुपात",
"ratio16x9": "16:9",
"ratio4x3": "4:3",
"ratio1x1": "1:1",
"cropArea": "क्रॉप क्षेत्र",
"xPosition": "X स्थिति",
"xPlaceholder": "पिक्सेल",
"yPosition": "Y स्थिति",
"yPlaceholder": "पिक्सेल",
"width": "चौड़ाई",
"widthPlaceholder": "पिक्सेल",
"height": "ऊंचाई",
"heightPlaceholder": "पिक्सेल"
},
"flip": {
"title": "वीडियो फ्लिप करें",
"description": "वीडियो को क्षैतिज या लंबवत रूप से फ्लिप करें।",
"inputTitle": "इनपुट वीडियो",
"resultTitle": "फ्लिप किया गया वीडियो",
"flipOptions": "फ्लिप विकल्प",
"flipDirection": "फ्लिप दिशा",
"directionHorizontal": "क्षैतिज",
"directionVertical": "लंबवत",
"directionBoth": "दोनों",
"preserveAudio": "ऑडियो संरक्षित करें"
},
"loop": {
"title": "वीडियो लूप करें",
"description": "वीडियो को लूप में चलाएं।",
"inputTitle": "इनपुट वीडियो",
"resultTitle": "लूप वीडियो",
"loopOptions": "लूप विकल्प",
"loopCount": "लूप की संख्या",
"countPlaceholder": "संख्या",
"loopInfinitely": "अनंत लूप",
"fadeTransition": "फेड संक्रमण",
"fadeDuration": "फेड अवधि",
"durationPlaceholder": "सेकंड"
},
"rotate": {
"title": "वीडियो घुमाएं",
"description": "वीडियो को निर्दिष्ट कोण से घुमाएं।",
"inputTitle": "इनपुट वीडियो",
"resultTitle": "घुमाया गया वीडियो",
"rotationOptions": "घुमाने के विकल्प",
"rotationAngle": "घुमाने का कोण",
"angle90": "90 डिग्री",
"angle180": "180 डिग्री",
"angle270": "270 डिग्री",
"customAngle": "कस्टम कोण",
"customAnglePlaceholder": "डिग्री",
"preserveAudio": "ऑडियो संरक्षित करें"
},
"trim": {
"title": "वीडियो ट्रिम करें",
"description": "वीडियो से अनावश्यक भाग हटाएं।",
"inputTitle": "इनपुट वीडियो",
"resultTitle": "ट्रिम किया गया वीडियो",
"trimOptions": "ट्रिम विकल्प",
"startTime": "शुरुआती समय",
"startPlaceholder": "सेकंड",
"endTime": "अंतिम समय",
"endPlaceholder": "सेकंड",
"preserveAudio": "ऑडियो संरक्षित करें"
},
"videoToGif": {
"title": "वीडियो से GIF",
"description": "वीडियो को GIF एनिमेटेड फ़ाइल में बदलें।",
"inputTitle": "इनपुट वीडियो",
"resultTitle": "GIF फ़ाइल",
"conversionOptions": "रूपांतरण विकल्प",
"frameRate": "फ्रेम दर",
"frameRatePlaceholder": "FPS",
"quality": "गुणवत्ता",
"qualityHigh": "उच्च",
"qualityMedium": "मध्यम",
"qualityLow": "कम",
"resize": "आकार बदलें",
"width": "चौड़ाई",
"widthPlaceholder": "पिक्सेल",
"height": "ऊंचाई",
"heightPlaceholder": "पिक्सेल"
},
"gif": {
"changeSpeed": {
"title": "GIF गति बदलें",
"description": "GIF एनिमेटेड फ़ाइलों की गति बदलें।",
"inputTitle": "इनपुट GIF",
"resultTitle": "गति बदली गई GIF",
"speedOptions": "गति विकल्प",
"speedFactor": "गति कारक",
"factorPlaceholder": "कारक (जैसे 0.5, 1.5, 2.0)",
"frameDelay": "फ्रेम विलंब",
"delayPlaceholder": "मिलीसेकंड"
}
}
}

View file

@ -1,40 +0,0 @@
{
"xmlBeautifier": {
"title": "XML Beautifier",
"description": "Format XML with proper indentation and spacing.",
"inputTitle": "Input XML",
"resultTitle": "Beautified XML",
"indentation": "Indentation",
"useSpaces": "Use Spaces",
"useSpacesDescription": "Indent output with spaces",
"useTabs": "Use Tabs",
"useTabsDescription": "Indent output with tabs.",
"toolInfo": {
"title": "XML Beautifier",
"description": "This tool allows you to format XML data with proper indentation and spacing, making it more readable and easier to work with."
},
"title": "XML Beautifier",
"shortDescription": "Format and beautify XML code"
},
"xmlValidator": {
"title": "XML Validator",
"description": "Validate XML syntax and structure.",
"placeholder": "Paste or import XML here...",
"toolInfo": {
"title": "XML Validator",
"description": "This tool allows you to validate XML syntax and structure. It checks if the XML is well-formed and provides detailed error messages for any issues found."
},
"title": "XML Validator",
"shortDescription": "Validate XML code for errors"
},
"xmlViewer": {
"title": "XML Viewer",
"description": "View and explore XML structure in a tree format.",
"inputTitle": "Input XML",
"resultTitle": "XML Tree View",
"toolInfo": {
"title": "XML Viewer",
"description": "This tool allows you to view XML data in a hierarchical tree format, making it easier to explore and understand the structure of XML documents."
}
}
}

View file

@ -1,42 +0,0 @@
{
"xmlBeautifier": {
"title": "XML सुंदर बनाएं",
"description": "XML को सुंदर प्रारूप में बदलें।",
"inputTitle": "इनपुट XML",
"resultTitle": "सुंदर XML",
"formattingOptions": "फॉर्मेटिंग विकल्प",
"indentSize": "इंडेंट आकार",
"sizePlaceholder": "आकार",
"indentCharacter": "इंडेंट वर्ण",
"space": "स्पेस",
"tab": "टैब",
"sortAttributes": "विशेषताएं क्रमबद्ध करें",
"removeComments": "टिप्पणियां हटाएं",
"preserveWhitespace": "सफेद स्थान संरक्षित करें"
},
"xmlValidator": {
"title": "XML मान्य करें",
"description": "XML स्ट्रिंग की वैधता जांचें।",
"inputTitle": "इनपुट XML",
"resultTitle": "मान्यता परिणाम",
"validationOptions": "मान्यता विकल्प",
"strictMode": "सख्त मोड",
"allowComments": "टिप्पणियां अनुमति दें",
"allowCDATA": "CDATA अनुमति दें",
"showLineNumbers": "पंक्ति संख्याएं दिखाएं",
"showErrorDetails": "त्रुटि विवरण दिखाएं"
},
"xmlViewer": {
"title": "XML व्यूअर",
"description": "XML को पेड़ संरचना में देखें।",
"inputTitle": "इनपुट XML",
"resultTitle": "XML पेड़",
"viewerOptions": "व्यूअर विकल्प",
"expandAll": "सभी विस्तारित करें",
"collapseAll": "सभी संक्षिप्त करें",
"showAttributes": "विशेषताएं दिखाएं",
"showTextNodes": "टेक्स्ट नोड दिखाएं",
"highlightSyntax": "सिंटैक्स हाइलाइट करें",
"lineNumbers": "पंक्ति संख्याएं"
}
}

View file

@ -65,7 +65,12 @@ export const defineTool = (
component: function ToolComponent() {
const { t } = useTranslation();
return (
<ToolLayout icon={icon} type={basePath} i18n={i18n}>
<ToolLayout
icon={icon}
type={basePath}
i18n={i18n}
fullPath={`${basePath}/${path}`}
>
<Component
title={t(i18n.name)}
longDescription={

38
src/utils/bookmark.ts Normal file
View file

@ -0,0 +1,38 @@
const bookmarkedToolsKey = 'bookmarkedTools';
export function getBookmarkedToolPaths(): string[] {
return (
localStorage
.getItem(bookmarkedToolsKey)
?.split(',')
?.filter((path) => path) ?? []
);
}
export function isBookmarked(toolPath: string): boolean {
return getBookmarkedToolPaths().some((path) => path === toolPath);
}
export function toggleBookmarked(toolPath: string) {
if (isBookmarked(toolPath)) {
unbookmark(toolPath);
} else {
bookmark(toolPath);
}
}
function bookmark(toolPath: string) {
localStorage.setItem(
bookmarkedToolsKey,
[toolPath, ...getBookmarkedToolPaths()].join(',')
);
}
function unbookmark(toolPath: string) {
localStorage.setItem(
bookmarkedToolsKey,
getBookmarkedToolPaths()
.filter((path) => path !== toolPath)
.join(',')
);
}