From 5ed36935c7fb56d8c0ce89cdd06c6a0afb60fd28 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 12 Dec 2023 14:04:19 +0100 Subject: [PATCH 01/42] fix(jwt-parser): jwt claim array support (#799) fixes support of claim array values (was shown "[Object]" before) Signed-off-by: Markus Blaschke --- src/tools/jwt-parser/jwt-parser.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/jwt-parser/jwt-parser.service.ts b/src/tools/jwt-parser/jwt-parser.service.ts index cc39145a3..543f4c8be 100644 --- a/src/tools/jwt-parser/jwt-parser.service.ts +++ b/src/tools/jwt-parser/jwt-parser.service.ts @@ -19,7 +19,7 @@ function decodeJwt({ jwt }: { jwt: string }) { function parseClaims({ claim, value }: { claim: string; value: unknown }) { const claimDescription = CLAIM_DESCRIPTIONS[claim]; - const formattedValue = _.isPlainObject(value) ? JSON.stringify(value, null, 3) : _.toString(value); + const formattedValue = _.isPlainObject(value) || _.isArray(value) ? JSON.stringify(value, null, 3) : _.toString(value); const friendlyValue = getFriendlyValue({ claim, value }); return { From a29ad668096fc92480c4a74b2462924811f4094e Mon Sep 17 00:00:00 2001 From: Corentin Thomasset Date: Thu, 21 Dec 2023 08:45:27 +0100 Subject: [PATCH 02/42] docs(changelog): update changelog for 2023.12.21-5ed3693 --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09ff19c9d..1c12c11cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,37 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## Version 2023.12.21-5ed3693 + +### Features +- **i18n**: improve chinese i18n (#757) (2e56641) +- **i18n**: add tooltip and favoriteButton i18n (#756) (a1037cf) +- **i18n**: add Chinese translation base (#718) (8f99eb6) +- **new tool**: pdf signature checker (#745) (4781920) +- **new tool**: numeronym generator (#729) (e07e2ae) + +### Bug fixes +- **jwt-parser**: jwt claim array support (#799) (5ed3693) +- **camera-recorder**: stop camera on navigation (#782) (80e46c9) +- **doc**: updated create new tool command in readme (#762) (7a70dbb) +- **base64-file-converter**: fix downloading of index.html content without data preambula (#750) (043e4f0) +- **docker**: rollback armv7 in docker releases (#741) (205e360) +- **eta**: corrected example (#737) (821cbea) + +### Refactoring +- **about, i18n**: improved i18n dx with markdown (#753) (bd3edcb) +- **token, i18n**: complete fr translation (#752) (de1ee69) +- **uuid generator**: uuid version picker (#751) (38586ca) +- **case converter**: no split on lowercase, uppercase and mocking case (#748) (ca43a25) +- **ui**: replaced legacy n-upload with c-file-upload (#747) (7fe47b3) +- **token**: added password in token generator keywords (#746) (16ffe6b) +- **bcrypt**: fix input label align (#721) (093ff31) + +### Chores +- **deps**: switched from oui to oui-data for mac address lookup (#693) (0fe9a20) +- **deps**: update unocss monorepo to ^0.57.0 (#638) (2e396d8) +- **docker**: added armv7 plateform for docker releases (#722) (fe1de8c) + ## Version 2023.11.02-7d94e11 ### Features From 670f735501b5830ad31af52ef7cdaa17e9e51bab Mon Sep 17 00:00:00 2001 From: Corentin Thomasset Date: Thu, 21 Dec 2023 08:45:28 +0100 Subject: [PATCH 03/42] chore(version): release 2023.12.21-5ed3693 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ffa7bd4e2..e0148f879 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "it-tools", - "version": "2023.11.2-7d94e11", + "version": "2023.12.21-5ed3693", "description": "Collection of handy online tools for developers, with great UX. ", "keywords": [ "productivity", From c46207f1bb9fcd0691898be63bd20dfb5164de4b Mon Sep 17 00:00:00 2001 From: hieudt-2054 <55786352+hieudt-2054@users.noreply.github.com> Date: Wed, 31 Jan 2024 16:55:18 +0700 Subject: [PATCH 04/42] feat(new-tool): added unicode conversion utilities (#858) * feat: add Text to Unicode tool * Update src/tools/text-to-unicode/index.ts --------- Co-authored-by: Corentin THOMASSET --- components.d.ts | 1 + src/tools/index.ts | 2 ++ src/tools/text-to-unicode/index.ts | 12 +++++++ .../text-to-unicode.e2e.spec.ts | 25 ++++++++++++++ .../text-to-unicode.service.test.ts | 20 +++++++++++ .../text-to-unicode.service.ts | 9 +++++ src/tools/text-to-unicode/text-to-unicode.vue | 34 +++++++++++++++++++ 7 files changed, 103 insertions(+) create mode 100644 src/tools/text-to-unicode/index.ts create mode 100644 src/tools/text-to-unicode/text-to-unicode.e2e.spec.ts create mode 100644 src/tools/text-to-unicode/text-to-unicode.service.test.ts create mode 100644 src/tools/text-to-unicode/text-to-unicode.service.ts create mode 100644 src/tools/text-to-unicode/text-to-unicode.vue diff --git a/components.d.ts b/components.d.ts index d034fc780..caac9a83c 100644 --- a/components.d.ts +++ b/components.d.ts @@ -197,6 +197,7 @@ declare module '@vue/runtime-core' { TextStatistics: typeof import('./src/tools/text-statistics/text-statistics.vue')['default'] TextToBinary: typeof import('./src/tools/text-to-binary/text-to-binary.vue')['default'] TextToNatoAlphabet: typeof import('./src/tools/text-to-nato-alphabet/text-to-nato-alphabet.vue')['default'] + TextToUnicode: typeof import('./src/tools/text-to-unicode/text-to-unicode.vue')['default'] TokenDisplay: typeof import('./src/tools/otp-code-generator-and-validator/token-display.vue')['default'] 'TokenGenerator.tool': typeof import('./src/tools/token-generator/token-generator.tool.vue')['default'] TomlToJson: typeof import('./src/tools/toml-to-json/toml-to-json.vue')['default'] diff --git a/src/tools/index.ts b/src/tools/index.ts index 52bdf8e37..2b95577d0 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -1,6 +1,7 @@ import { tool as base64FileConverter } from './base64-file-converter'; import { tool as base64StringConverter } from './base64-string-converter'; import { tool as basicAuthGenerator } from './basic-auth-generator'; +import { tool as textToUnicode } from './text-to-unicode'; import { tool as pdfSignatureChecker } from './pdf-signature-checker'; import { tool as numeronymGenerator } from './numeronym-generator'; import { tool as macAddressGenerator } from './mac-address-generator'; @@ -93,6 +94,7 @@ export const toolsByCategory: ToolCategory[] = [ caseConverter, textToNatoAlphabet, textToBinary, + textToUnicode, yamlToJson, yamlToToml, jsonToYaml, diff --git a/src/tools/text-to-unicode/index.ts b/src/tools/text-to-unicode/index.ts new file mode 100644 index 000000000..885cfc995 --- /dev/null +++ b/src/tools/text-to-unicode/index.ts @@ -0,0 +1,12 @@ +import { TextWrap } from '@vicons/tabler'; +import { defineTool } from '../tool'; + +export const tool = defineTool({ + name: 'Text to Unicode', + path: '/text-to-unicode', + description: 'Parse and convert text to unicode and vice-versa', + keywords: ['text', 'to', 'unicode'], + component: () => import('./text-to-unicode.vue'), + icon: TextWrap, + createdAt: new Date('2024-01-31'), +}); diff --git a/src/tools/text-to-unicode/text-to-unicode.e2e.spec.ts b/src/tools/text-to-unicode/text-to-unicode.e2e.spec.ts new file mode 100644 index 000000000..761828fd3 --- /dev/null +++ b/src/tools/text-to-unicode/text-to-unicode.e2e.spec.ts @@ -0,0 +1,25 @@ +import { expect, test } from '@playwright/test'; + +test.describe('Tool - Text to Unicode', () => { + test.beforeEach(async ({ page }) => { + await page.goto('/text-to-unicode'); + }); + + test('Has correct title', async ({ page }) => { + await expect(page).toHaveTitle('Text to Unicode - IT Tools'); + }); + + test('Text to unicode conversion', async ({ page }) => { + await page.getByTestId('text-to-unicode-input').fill('it-tools'); + const unicode = await page.getByTestId('text-to-unicode-output').inputValue(); + + expect(unicode).toEqual('it-tools'); + }); + + test('Unicode to text conversion', async ({ page }) => { + await page.getByTestId('unicode-to-text-input').fill('it-tools'); + const text = await page.getByTestId('unicode-to-text-output').inputValue(); + + expect(text).toEqual('it-tools'); + }); +}); diff --git a/src/tools/text-to-unicode/text-to-unicode.service.test.ts b/src/tools/text-to-unicode/text-to-unicode.service.test.ts new file mode 100644 index 000000000..bda4fa7ae --- /dev/null +++ b/src/tools/text-to-unicode/text-to-unicode.service.test.ts @@ -0,0 +1,20 @@ +import { describe, expect, it } from 'vitest'; +import { convertTextToUnicode, convertUnicodeToText } from './text-to-unicode.service'; + +describe('text-to-unicode', () => { + describe('convertTextToUnicode', () => { + it('a text string is converted to unicode representation', () => { + expect(convertTextToUnicode('A')).toBe('A'); + expect(convertTextToUnicode('linke the string convert to unicode')).toBe('linke the string convert to unicode'); + expect(convertTextToUnicode('')).toBe(''); + }); + }); + + describe('convertUnicodeToText', () => { + it('an unicode string is converted to its text representation', () => { + expect(convertUnicodeToText('A')).toBe('A'); + expect(convertUnicodeToText('linke the string convert to unicode')).toBe('linke the string convert to unicode'); + expect(convertUnicodeToText('')).toBe(''); + }); + }); +}); diff --git a/src/tools/text-to-unicode/text-to-unicode.service.ts b/src/tools/text-to-unicode/text-to-unicode.service.ts new file mode 100644 index 000000000..e7772cf89 --- /dev/null +++ b/src/tools/text-to-unicode/text-to-unicode.service.ts @@ -0,0 +1,9 @@ +function convertTextToUnicode(text: string): string { + return text.split('').map(value => `&#${value.charCodeAt(0)};`).join(''); +} + +function convertUnicodeToText(unicodeStr: string): string { + return unicodeStr.replace(/&#(\d+);/g, (match, dec) => String.fromCharCode(dec)); +} + +export { convertTextToUnicode, convertUnicodeToText }; diff --git a/src/tools/text-to-unicode/text-to-unicode.vue b/src/tools/text-to-unicode/text-to-unicode.vue new file mode 100644 index 000000000..ae4c6982a --- /dev/null +++ b/src/tools/text-to-unicode/text-to-unicode.vue @@ -0,0 +1,34 @@ + + + From fc06f01b340d745536946b8d348e1a7387f9d9dc Mon Sep 17 00:00:00 2001 From: Isaiah <66272034+lovesinatra@users.noreply.github.com> Date: Wed, 31 Jan 2024 03:58:53 -0600 Subject: [PATCH 05/42] feat(new-tool): yaml formater (#779) * validating if yaml is correct and collecting format options * Formatting yaml, sorting keys and changing indent size. * Removed unused format options * Fixed lint errors * Installed types for js-yaml * Removed legacy routing and added tool creation date Co-authored-by: Corentin THOMASSET * Using existing yaml package instead of js-yaml * Update src/tools/yaml-viewer/index.ts --------- Co-authored-by: Isaiah <66272034+isaiah-j@users.noreply.github.com> Co-authored-by: Corentin THOMASSET --- components.d.ts | 4 +- src/tools/index.ts | 2 + src/tools/yaml-viewer/index.ts | 12 +++++ src/tools/yaml-viewer/yaml-models.ts | 24 +++++++++ src/tools/yaml-viewer/yaml-viewer.vue | 72 +++++++++++++++++++++++++++ 5 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 src/tools/yaml-viewer/index.ts create mode 100644 src/tools/yaml-viewer/yaml-models.ts create mode 100644 src/tools/yaml-viewer/yaml-viewer.vue diff --git a/components.d.ts b/components.d.ts index caac9a83c..fabbe7939 100644 --- a/components.d.ts +++ b/components.d.ts @@ -91,7 +91,6 @@ declare module '@vue/runtime-core' { 'IconMdi:contentCopy': typeof import('~icons/mdi/content-copy')['default'] 'IconMdi:kettleSteamOutline': typeof import('~icons/mdi/kettle-steam-outline')['default'] IconMdiArrowDown: typeof import('~icons/mdi/arrow-down')['default'] - IconMdiArrowRight: typeof import('~icons/mdi/arrow-right')['default'] IconMdiArrowRightBottom: typeof import('~icons/mdi/arrow-right-bottom')['default'] IconMdiCamera: typeof import('~icons/mdi/camera')['default'] IconMdiChevronDown: typeof import('~icons/mdi/chevron-down')['default'] @@ -171,8 +170,6 @@ declare module '@vue/runtime-core' { NTable: typeof import('naive-ui')['NTable'] NTag: typeof import('naive-ui')['NTag'] NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default'] - NUpload: typeof import('naive-ui')['NUpload'] - NUploadDragger: typeof import('naive-ui')['NUploadDragger'] OtpCodeGeneratorAndValidator: typeof import('./src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue')['default'] PasswordStrengthAnalyser: typeof import('./src/tools/password-strength-analyser/password-strength-analyser.vue')['default'] PdfSignatureChecker: typeof import('./src/tools/pdf-signature-checker/pdf-signature-checker.vue')['default'] @@ -214,5 +211,6 @@ declare module '@vue/runtime-core' { XmlFormatter: typeof import('./src/tools/xml-formatter/xml-formatter.vue')['default'] YamlToJson: typeof import('./src/tools/yaml-to-json-converter/yaml-to-json.vue')['default'] YamlToToml: typeof import('./src/tools/yaml-to-toml/yaml-to-toml.vue')['default'] + YamlViewer: typeof import('./src/tools/yaml-viewer/yaml-viewer.vue')['default'] } } diff --git a/src/tools/index.ts b/src/tools/index.ts index 2b95577d0..2a477ed2d 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -76,6 +76,7 @@ import { tool as urlParser } from './url-parser'; import { tool as uuidGenerator } from './uuid-generator'; import { tool as macAddressLookup } from './mac-address-lookup'; import { tool as xmlFormatter } from './xml-formatter'; +import { tool as yamlViewer } from './yaml-viewer'; export const toolsByCategory: ToolCategory[] = [ { @@ -141,6 +142,7 @@ export const toolsByCategory: ToolCategory[] = [ chmodCalculator, dockerRunToDockerComposeConverter, xmlFormatter, + yamlViewer, ], }, { diff --git a/src/tools/yaml-viewer/index.ts b/src/tools/yaml-viewer/index.ts new file mode 100644 index 000000000..4ba6ced36 --- /dev/null +++ b/src/tools/yaml-viewer/index.ts @@ -0,0 +1,12 @@ +import { AlignJustified } from '@vicons/tabler'; +import { defineTool } from '../tool'; + +export const tool = defineTool({ + name: 'YAML prettify and format', + path: '/yaml-prettify', + description: 'Prettify your YAML string to a human friendly readable format.', + keywords: ['yaml', 'viewer', 'prettify', 'format'], + component: () => import('./yaml-viewer.vue'), + icon: AlignJustified, + createdAt: new Date('2024-01-31'), +}); diff --git a/src/tools/yaml-viewer/yaml-models.ts b/src/tools/yaml-viewer/yaml-models.ts new file mode 100644 index 000000000..54569db8e --- /dev/null +++ b/src/tools/yaml-viewer/yaml-models.ts @@ -0,0 +1,24 @@ +import { type MaybeRef, get } from '@vueuse/core'; + +import yaml from 'yaml'; + +export { formatYaml }; + +function formatYaml({ + rawYaml, + sortKeys = false, + indentSize = 2, +}: { + rawYaml: MaybeRef + sortKeys?: MaybeRef + indentSize?: MaybeRef +}) { + const parsedYaml = yaml.parse(get(rawYaml)); + + const formattedYAML = yaml.stringify(parsedYaml, { + sortMapEntries: get(sortKeys), + indent: get(indentSize), + }); + + return formattedYAML; +} diff --git a/src/tools/yaml-viewer/yaml-viewer.vue b/src/tools/yaml-viewer/yaml-viewer.vue new file mode 100644 index 000000000..3385eee28 --- /dev/null +++ b/src/tools/yaml-viewer/yaml-viewer.vue @@ -0,0 +1,72 @@ + + + + + From 693f362e154fa700496b9c7da8619640f39b5a59 Mon Sep 17 00:00:00 2001 From: Nikitin Roman <78508681+IronWillDevops@users.noreply.github.com> Date: Wed, 31 Jan 2024 12:00:06 +0200 Subject: [PATCH 06/42] feat(i18n): added ukrainian language (#827) Added Ukrainian language --- locales/uk.yml | 71 +++++++++++++++++++ .../i18n/components/locale-selector.vue | 1 + 2 files changed, 72 insertions(+) create mode 100644 locales/uk.yml diff --git a/locales/uk.yml b/locales/uk.yml new file mode 100644 index 000000000..2d28f157d --- /dev/null +++ b/locales/uk.yml @@ -0,0 +1,71 @@ +home: + categories: + newestTools: Найновіші інструменти + favoriteTools: 'Ваші улюблені інструменти' + allTools: 'Усі інструменти' + subtitle: 'Зручні інструменти для розробників' + toggleMenu: 'Перемикання меню' + home: Головна + uiLib: 'UI Бібліотека' + support: 'Підтримка розробки IT Tools' + buyMeACoffee: 'Купи мені каву' + follow: + title: 'Вам подобаються інструменти IT?' + p1: 'Додайте нам зірку на' + githubRepository: 'GitHub-репозиторій IT-Tools' + p2: 'або слідкуйте за нами на' + twitterAccount: 'Твіттер-акаунт IT-Tools' + thankYou: 'Дякуємо!' + nav: + github: 'GitHub-репозиторій' + githubRepository: 'GitHub-репозиторій IT-Tools' + twitter: 'Твіттер' + twitterAccount: 'Твіттер-акаунт IT-Tools' + about: 'Про IT-Tools' + aboutLabel: 'Про нас' + darkMode: 'Темний режим' + lightMode: 'Світлий режим' + mode: 'Перемикання темного/світлого режиму' +about: + content: > + # Про IT-Tools + + Цей чудовий вебсайт, створений з ❤ [Corentin Thomasset](https://github.com/CorentinTh), агрегує корисні інструменти для розробників і людей, які працюють в сфері IT. Якщо вам це корисно, будь ласка, поділіться цим з людьми, які, на вашу думку, також можуть знайти його корисним, і не забудьте додати його до закладок у вашій панелі швидкого доступу! + + IT Tools є відкритим програмним забезпеченням (під ліцензією MIT) і безкоштовним, і завжди буде таким, але мені коштує гроші для хостингу і продовження доменного імені. Якщо ви хочете підтримати мою роботу і підтримати мене у додаванні нових інструментів, розгляньте можливість підтримки, [спонсоруючи мене](https://www.buymeacoffee.com/cthmsst). + + ## Технології + + IT Tools виконаний на Vue.js (Vue 3) з використанням бібліотеки компонентів Naive UI і розгортаний за допомогою Vercel. У деяких інструментах використовуються сторонні відкриті бібліотеки, повний список яких ви можете знайти в файлі [package.json](https://github.com/CorentinTh/it-tools/blob/main/package.json) репозиторію. + + ## Знайшли баг? Відсутній інструмент? + + Якщо вам потрібен інструмент, якого наразі немає тут, і ви вважаєте, що він може бути корисним, ви можете подати запит на додавання функції в [розділі проблем](https://github.com/CorentinTh/it-tools/issues/new/choose) у репозиторії GitHub. + + А якщо ви знайшли баг або щось не працює, як очікувалося, будь ласка, подайте звіт про баг в [розділі проблем](https://github.com/CorentinTh/it-tools/issues/new/choose) у репозиторії GitHub. + +404: + notFound: '404 Сторінка не знайдена' + sorry: 'Вибачте, ця сторінка, схоже, не існує' + maybe: 'Можливо, кеш робить хитрощі, спробуйте примусово оновити сторінку?' + backHome: 'Повернутися на головну' +favoriteButton: + remove: 'Вилучити з обраних' + add: 'Додати до обраних' +toolCard: + new: Новий +search: + label: Пошук +tools: + categories: + favorite-tools: 'Ваші улюблені інструменти' + crypto: Крипта + converter: Конвертер + web: Веб + images and videos: 'Зображення та відео' + development: Розробка + network: Мережа + math: Математика + measurement: Вимірювання + text: Текст + data: Дані diff --git a/src/modules/i18n/components/locale-selector.vue b/src/modules/i18n/components/locale-selector.vue index 29dc0e5df..76b76e63d 100644 --- a/src/modules/i18n/components/locale-selector.vue +++ b/src/modules/i18n/components/locale-selector.vue @@ -7,6 +7,7 @@ const localesLong: Record = { fr: 'Français', pt: 'Português', ru: 'Русский', + uk: 'Українська', zh: '中文', }; From c65ffb6e75fed59f4dff1b5d0668d9233d7d3cc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcelo=20Gon=C3=A7alves?= Date: Wed, 31 Jan 2024 10:03:54 +0000 Subject: [PATCH 07/42] feat(i18n): added portuguese language (#813) --- locales/pt.yml | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 locales/pt.yml diff --git a/locales/pt.yml b/locales/pt.yml new file mode 100644 index 000000000..96fdaed4c --- /dev/null +++ b/locales/pt.yml @@ -0,0 +1,71 @@ +home: + categories: + newestTools: 'Novas ferramentas' + favoriteTools: 'Suas ferramentas favoritas' + allTools: 'Todas as ferramentas' + subtitle: 'Ferraentas úteis para desenvolvedores' + toggleMenu: 'Menu' + home: 'Início' + uiLib: 'Biblioteca de UI' + support: 'Apoie o desenvolvimento do IT Tools' + buyMeACoffee: 'Pague-me um café' + follow: + title: 'Gostou do it-tools?' + p1: 'Dê uma estrela no' + githubRepository: 'repositório do IT-Tools no GitHub' + p2: 'ou siga nossa' + twitterAccount: 'conta IT-Tools no Twitter' + thankYou: 'Obrigado !' + nav: + github: 'Repositório no GitHub' + githubRepository: 'repositório do IT-Tools no GitHub' + twitter: 'Conta no Twitter' + twitterAccount: 'conta do IT Tools no Twitter' + about: 'Sobre o IT-Tools' + aboutLabel: 'Sobre' + darkMode: 'Modo Escuro' + lightMode: 'Modo Claro' + mode: 'Trocar modo escuro/claro' +about: + content: > + # Sobre o IT-Tools + + Este site maravilhoso, feito com ❤ por [Corentin Thomasset](https://github.com/CorentinTh), junta ferramentas úteis para desenvolvedores e outras pessoas que trabalham com TI. Se você achar o site útil, fique à vontade para compartilhar com quem também possa gostar e não esqueça de salvar o bookmark na sua barra de atalhos! + + O IT Tools é código aberto (sob a licença MIT), é gratuito, e sempre será, mas custa dinheiro para hospedar e renovar o domínio. Se quiser apoiar meu trabalho e me encorajar a adicionar mais ferramentas, por favor considere [ser patrocinador](https://www.buymeacoffee.com/cthmsst). + + ## Tecnologias + + O IT Tools é feito em Vue.js (Vue 3) com a biblioteca de componentes Naive UI e é hospedado pela Vercel. Bibliotecas de código aberto de terceiros são usadas em algumas ferramentas e você pode encontrar a lista completa no arquivo [package.json](https://github.com/CorentinTh/it-tools/blob/main/package.json) do repositório. + + ## Achou um bug? Está faltando uma ferramenta? + + Se você precisa de uma ferramenta que ainda não existe aqui e acha que pode ser útil, seu pedido será bem vindo na [seção de issues](https://github.com/CorentinTh/it-tools/issues/new/choose) no repositório do GitHub. + + E se você encontrar um bug ou se algo não funcionar como esperado, por favor registre um relato de bug na [seção de issues](https://github.com/CorentinTh/it-tools/issues/new/choose) no GitHub. + +404: + notFound: '404 Não Encontrado' + sorry: 'Desculpe, parece que essa página não existe' + maybe: 'Talvez o cache esteja fazendo bobagem, que tal tentar forçar a atualização?' + backHome: 'Voltar para o início' +favoriteButton: + remove: 'Remover dos favoritos' + add: 'Adicionar aos favoritos' +toolCard: + new: 'Novo' +search: + label: 'Pesquisar' +tools: + categories: + favorite-tools: 'Suas ferramentas favoritas' + crypto: 'Cripto' + converter: 'Conversores' + web: 'Web' + images and videos: 'Imagens & Vídeos' + development: 'Desenvolvimento' + network: 'Rede' + math: 'Matemática' + measurement: 'Medidas' + text: 'Texto' + data: 'Dados' From 85b50bb8f0effc7de7f3050ee51b6e1d3b5acbf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Mora?= <155681266+Raulmora22@users.noreply.github.com> Date: Wed, 31 Jan 2024 11:10:21 +0100 Subject: [PATCH 08/42] feat(i18n): added spanish language (#854) * spanish translation * Create es.yaml --- locales/es.yaml | 71 +++++++++++++++++++++++ src/tools/token-generator/locales/es.yaml | 15 +++++ 2 files changed, 86 insertions(+) create mode 100644 locales/es.yaml create mode 100644 src/tools/token-generator/locales/es.yaml diff --git a/locales/es.yaml b/locales/es.yaml new file mode 100644 index 000000000..b87502fc0 --- /dev/null +++ b/locales/es.yaml @@ -0,0 +1,71 @@ +home: + categories: + newestTools: Nuevas herramientas + favoriteTools: 'Tus herramientas favoritas' + allTools: 'Todas las herramientas' + subtitle: 'Herramientas practicas para desarrolladores' + toggleMenu: 'Toggle menu' + home: Home + uiLib: 'UI Lib' + support: 'Apoyar el desarrollo de IT-Tools' + buyMeACoffee: 'Buy me a coffee' + follow: + title: 'Te gustan las it-tools?' + p1: 'Danos una estrella en' + githubRepository: 'Repositorio de IT-Tools en GitHub' + p2: 'o síguenos en' + twitterAccount: 'Cuenta de twitter de IT-Tools' + thankYou: 'Muchas gracias!' + nav: + github: 'Repositorio en github' + githubRepository: 'IT-Tools GitHub repository' + twitter: 'Cuenta de Twitter' + twitterAccount: 'Cuenta de twitter de IT Tools' + about: 'Sobre IT-Tools' + aboutLabel: 'Sobre' + darkMode: 'Modo obscuro' + lightMode: 'Modo claro' + mode: 'Alternar modo oscuro/claro' +about: + content: > + # Sobre IT-Tools + + Este maravilloso sitio web, hecho con ❤ por [Corentin Thomasset](https://github.com/CorentinTh) , agrega herramientas útiles para desarrolladores y personas que trabajan en IT. Si lo encuentra útil, no dude en compartirlo con las personas que crea que también pueden encontrarlo útil y ¡no olvide marcarlo como favorito en su barra de accesos directos! + + IT Tools es de código abierto (under the MIT license) y gratis, y siempre lo será, pero me cuesta dinero alojar y renovar el nombre de dominio. Si desea apoyar mi trabajo y animarme a agregar más herramientas, considere apoyarme a través de[sponsoring me](https://www.buymeacoffee.com/cthmsst). + + ## Tecnologías + + IT Tools está creado en Vue.js (Vue 3) con la biblioteca de componentes Naive UI y Vercel lo aloja y lo implementa continuamente. En algunas herramientas se utilizan bibliotecas de código abierto de terceros; puede encontrar la lista completa en [package.json](https://github.com/CorentinTh/it-tools/blob/main/package.json) archivo del repositorio. + + ## ¿Encontraste un error? ¿Falta una herramienta? + + Si necesita una herramienta que actualmente no está presente aquí y cree que puede ser útil, puede enviar una solicitud de función en el [issues section](https://github.com/CorentinTh/it-tools/issues/new/choose) en el repositorio de GitHub. + + Y si encontró un error o algo no funciona como se esperaba, presente un reporte de error en el [issues section](https://github.com/CorentinTh/it-tools/issues/new/choose) en el repositorio de GitHub. + +404: + notFound: '404 Not Found' + sorry: 'Lo sentimos, esta página no parece existir' + maybe: 'Tal vez el caché esté haciendo cosas raras, ¿probamos a refrescar forzosamente?' + backHome: 'Back home' +favoriteButton: + remove: 'Quitar de favoritos' + add: 'Añadir a favoritos' +toolCard: + new: Nuevo +search: + label: Buscar +tools: + categories: + favorite-tools: 'Tus herramientas favoritas' + crypto: Crypto + converter: Converter + web: Web + images and videos: 'Images & Videos' + development: Development + network: Network + math: Math + measurement: Measurement + text: Text + data: Data \ No newline at end of file diff --git a/src/tools/token-generator/locales/es.yaml b/src/tools/token-generator/locales/es.yaml new file mode 100644 index 000000000..d96d95b12 --- /dev/null +++ b/src/tools/token-generator/locales/es.yaml @@ -0,0 +1,15 @@ +tools: + token-generator: + title: Token generator + description: Genera una cadena aleatoria con los caracteres que desees, letras mayúsculas o minúsculas, números y/o símbolos. + + uppercase: Mayúsculas (ABC...) + lowercase: Minúsculas (abc...) + numbers: Números (123...) + symbols: Símbolos (!-;...) + length: Longitud + tokenPlaceholder: 'The token...' + copied: Token copiado al portapapeles + button: + copy: Copiar + refresh: Actualizar \ No newline at end of file From 95698cb9380d541b86144df4ee5fae310c234f20 Mon Sep 17 00:00:00 2001 From: Corentin THOMASSET Date: Thu, 1 Feb 2024 14:05:54 +0100 Subject: [PATCH 09/42] refactor(i18n): added locales per tool (#861) --- src/tools/base64-file-converter/index.ts | 5 +++-- src/tools/base64-file-converter/locales/en.yml | 4 ++++ src/tools/base64-string-converter/index.ts | 5 +++-- src/tools/base64-string-converter/locales/en.yml | 4 ++++ src/tools/basic-auth-generator/index.ts | 5 +++-- src/tools/basic-auth-generator/locales/en.yml | 4 ++++ src/tools/bcrypt/index.ts | 6 +++--- src/tools/bcrypt/locales/en.yml | 4 ++++ src/tools/benchmark-builder/index.ts | 5 +++-- src/tools/benchmark-builder/locales/en.yml | 4 ++++ src/tools/bip39-generator/index.ts | 5 +++-- src/tools/bip39-generator/locales/en.yml | 4 ++++ src/tools/camera-recorder/index.ts | 5 +++-- src/tools/camera-recorder/locales/en.yml | 4 ++++ src/tools/case-converter/index.ts | 5 +++-- src/tools/case-converter/locales/en.yml | 4 ++++ src/tools/chmod-calculator/index.ts | 5 +++-- src/tools/chmod-calculator/locales/en.yml | 4 ++++ src/tools/chronometer/index.ts | 5 +++-- src/tools/chronometer/locales/en.yml | 4 ++++ src/tools/color-converter/index.ts | 5 +++-- src/tools/color-converter/locales/en.yml | 4 ++++ src/tools/crontab-generator/index.ts | 5 +++-- src/tools/crontab-generator/locales/en.yml | 4 ++++ src/tools/date-time-converter/index.ts | 5 +++-- src/tools/date-time-converter/locales/en.yml | 4 ++++ src/tools/device-information/index.ts | 5 +++-- src/tools/device-information/locales/en.yml | 4 ++++ src/tools/docker-run-to-docker-compose-converter/index.ts | 5 +++-- .../docker-run-to-docker-compose-converter/locales/en.yml | 4 ++++ src/tools/emoji-picker/index.ts | 5 +++-- src/tools/emoji-picker/locales/en.yml | 4 ++++ src/tools/encryption/index.ts | 5 +++-- src/tools/encryption/locales/en.yml | 4 ++++ src/tools/eta-calculator/index.ts | 6 +++--- src/tools/eta-calculator/locales/en.yml | 4 ++++ src/tools/git-memo/index.ts | 6 +++--- src/tools/git-memo/locales/en.yml | 4 ++++ src/tools/hash-text/index.ts | 6 +++--- src/tools/hash-text/locales/en.yml | 4 ++++ src/tools/hmac-generator/index.ts | 6 +++--- src/tools/hmac-generator/locales/en.yml | 4 ++++ src/tools/html-entities/index.ts | 5 +++-- src/tools/html-entities/locales/en.yml | 4 ++++ src/tools/html-wysiwyg-editor/index.ts | 5 +++-- src/tools/html-wysiwyg-editor/locales/en.yml | 4 ++++ src/tools/http-status-codes/index.ts | 5 +++-- src/tools/http-status-codes/locales/en.yml | 4 ++++ src/tools/iban-validator-and-parser/index.ts | 5 +++-- src/tools/iban-validator-and-parser/locales/en.yml | 4 ++++ src/tools/integer-base-converter/index.ts | 5 +++-- src/tools/integer-base-converter/locales/en.yml | 4 ++++ src/tools/ipv4-address-converter/index.ts | 5 +++-- src/tools/ipv4-address-converter/locales/en.yml | 4 ++++ src/tools/ipv4-range-expander/index.ts | 6 +++--- src/tools/ipv4-range-expander/locales/en.yml | 4 ++++ src/tools/ipv4-subnet-calculator/index.ts | 5 +++-- src/tools/ipv4-subnet-calculator/locales/en.yml | 4 ++++ src/tools/ipv6-ula-generator/index.ts | 5 +++-- src/tools/ipv6-ula-generator/locales/en.yml | 4 ++++ src/tools/json-diff/index.ts | 5 +++-- src/tools/json-diff/locales/en.yml | 4 ++++ src/tools/json-minify/index.ts | 5 +++-- src/tools/json-minify/locales/en.yml | 4 ++++ src/tools/json-to-csv/index.ts | 5 +++-- src/tools/json-to-csv/locales/en.yml | 4 ++++ src/tools/json-to-toml/index.ts | 5 +++-- src/tools/json-to-toml/locales/en.yml | 4 ++++ src/tools/json-to-yaml-converter/index.ts | 5 +++-- src/tools/json-to-yaml-converter/locales/en.yml | 4 ++++ src/tools/json-viewer/index.ts | 5 +++-- src/tools/json-viewer/locales/en.yml | 4 ++++ src/tools/jwt-parser/index.ts | 5 +++-- src/tools/jwt-parser/locales/en.yml | 4 ++++ src/tools/keycode-info/index.ts | 5 +++-- src/tools/keycode-info/locales/en.yml | 4 ++++ src/tools/list-converter/index.ts | 6 +++--- src/tools/list-converter/locales/en.yml | 4 ++++ src/tools/lorem-ipsum-generator/index.ts | 6 +++--- src/tools/lorem-ipsum-generator/locales/en.yml | 4 ++++ src/tools/mac-address-generator/index.ts | 5 +++-- src/tools/mac-address-generator/locales/en.yml | 4 ++++ src/tools/mac-address-lookup/index.ts | 5 +++-- src/tools/mac-address-lookup/locales/en.yml | 4 ++++ src/tools/math-evaluator/index.ts | 5 +++-- src/tools/math-evaluator/locales/en.yml | 4 ++++ src/tools/meta-tag-generator/index.ts | 5 +++-- src/tools/meta-tag-generator/locales/en.yml | 4 ++++ src/tools/mime-types/index.ts | 5 +++-- src/tools/mime-types/locales/en.yml | 4 ++++ src/tools/numeronym-generator/index.ts | 5 +++-- src/tools/numeronym-generator/locales/en.yml | 4 ++++ src/tools/otp-code-generator-and-validator/index.ts | 5 +++-- src/tools/otp-code-generator-and-validator/locales/en.yml | 4 ++++ src/tools/password-strength-analyser/index.ts | 5 +++-- src/tools/password-strength-analyser/locales/en.yml | 4 ++++ src/tools/pdf-signature-checker/index.ts | 5 +++-- src/tools/pdf-signature-checker/locales/en.yml | 4 ++++ src/tools/percentage-calculator/index.ts | 5 +++-- src/tools/percentage-calculator/locales/en.yml | 4 ++++ src/tools/phone-parser-and-formatter/index.ts | 6 +++--- src/tools/phone-parser-and-formatter/locales/en.yml | 4 ++++ src/tools/qr-code-generator/index.ts | 6 +++--- src/tools/qr-code-generator/locales/en.yml | 4 ++++ src/tools/random-port-generator/index.ts | 5 +++-- src/tools/random-port-generator/locales/en.yml | 4 ++++ src/tools/roman-numeral-converter/index.ts | 5 +++-- src/tools/roman-numeral-converter/locales/en.yml | 4 ++++ src/tools/rsa-key-pair-generator/index.ts | 5 +++-- src/tools/rsa-key-pair-generator/locales/en.yml | 4 ++++ src/tools/slugify-string/index.ts | 5 +++-- src/tools/slugify-string/locales/en.yml | 4 ++++ src/tools/sql-prettify/index.ts | 5 +++-- src/tools/sql-prettify/locales/en.yml | 4 ++++ src/tools/string-obfuscator/index.ts | 5 +++-- src/tools/string-obfuscator/locales/en.yml | 4 ++++ src/tools/svg-placeholder-generator/index.ts | 5 +++-- src/tools/svg-placeholder-generator/locales/en.yml | 4 ++++ src/tools/temperature-converter/index.ts | 6 +++--- src/tools/temperature-converter/locales/en.yml | 4 ++++ src/tools/text-diff/index.ts | 5 +++-- src/tools/text-diff/locales/en.yml | 4 ++++ src/tools/text-statistics/index.ts | 5 +++-- src/tools/text-statistics/locales/en.yml | 4 ++++ src/tools/text-to-binary/index.ts | 5 +++-- src/tools/text-to-binary/locales/en.yml | 4 ++++ src/tools/text-to-nato-alphabet/index.ts | 5 +++-- src/tools/text-to-nato-alphabet/locales/en.yml | 4 ++++ src/tools/text-to-unicode/index.ts | 5 +++-- src/tools/text-to-unicode/locales/en.yml | 4 ++++ src/tools/toml-to-json/index.ts | 5 +++-- src/tools/toml-to-json/locales/en.yml | 4 ++++ src/tools/toml-to-yaml/index.ts | 5 +++-- src/tools/toml-to-yaml/locales/en.yml | 4 ++++ src/tools/ulid-generator/index.ts | 5 +++-- src/tools/ulid-generator/locales/en.yml | 4 ++++ src/tools/url-encoder/index.ts | 5 +++-- src/tools/url-encoder/locales/en.yml | 4 ++++ src/tools/url-parser/index.ts | 6 +++--- src/tools/url-parser/locales/en.yml | 4 ++++ src/tools/user-agent-parser/index.ts | 5 +++-- src/tools/user-agent-parser/locales/en.yml | 4 ++++ src/tools/uuid-generator/index.ts | 6 +++--- src/tools/uuid-generator/locales/en.yml | 4 ++++ src/tools/wifi-qr-code-generator/index.ts | 6 +++--- src/tools/wifi-qr-code-generator/locales/en.yml | 4 ++++ src/tools/xml-formatter/index.ts | 5 +++-- src/tools/xml-formatter/locales/en.yml | 4 ++++ src/tools/yaml-to-json-converter/index.ts | 5 +++-- src/tools/yaml-to-json-converter/locales/en.yml | 4 ++++ src/tools/yaml-to-toml/index.ts | 5 +++-- src/tools/yaml-to-toml/locales/en.yml | 4 ++++ src/tools/yaml-viewer/index.ts | 5 +++-- src/tools/yaml-viewer/locales/en.yml | 4 ++++ 154 files changed, 539 insertions(+), 168 deletions(-) create mode 100644 src/tools/base64-file-converter/locales/en.yml create mode 100644 src/tools/base64-string-converter/locales/en.yml create mode 100644 src/tools/basic-auth-generator/locales/en.yml create mode 100644 src/tools/bcrypt/locales/en.yml create mode 100644 src/tools/benchmark-builder/locales/en.yml create mode 100644 src/tools/bip39-generator/locales/en.yml create mode 100644 src/tools/camera-recorder/locales/en.yml create mode 100644 src/tools/case-converter/locales/en.yml create mode 100644 src/tools/chmod-calculator/locales/en.yml create mode 100644 src/tools/chronometer/locales/en.yml create mode 100644 src/tools/color-converter/locales/en.yml create mode 100644 src/tools/crontab-generator/locales/en.yml create mode 100644 src/tools/date-time-converter/locales/en.yml create mode 100644 src/tools/device-information/locales/en.yml create mode 100644 src/tools/docker-run-to-docker-compose-converter/locales/en.yml create mode 100644 src/tools/emoji-picker/locales/en.yml create mode 100644 src/tools/encryption/locales/en.yml create mode 100644 src/tools/eta-calculator/locales/en.yml create mode 100644 src/tools/git-memo/locales/en.yml create mode 100644 src/tools/hash-text/locales/en.yml create mode 100644 src/tools/hmac-generator/locales/en.yml create mode 100644 src/tools/html-entities/locales/en.yml create mode 100644 src/tools/html-wysiwyg-editor/locales/en.yml create mode 100644 src/tools/http-status-codes/locales/en.yml create mode 100644 src/tools/iban-validator-and-parser/locales/en.yml create mode 100644 src/tools/integer-base-converter/locales/en.yml create mode 100644 src/tools/ipv4-address-converter/locales/en.yml create mode 100644 src/tools/ipv4-range-expander/locales/en.yml create mode 100644 src/tools/ipv4-subnet-calculator/locales/en.yml create mode 100644 src/tools/ipv6-ula-generator/locales/en.yml create mode 100644 src/tools/json-diff/locales/en.yml create mode 100644 src/tools/json-minify/locales/en.yml create mode 100644 src/tools/json-to-csv/locales/en.yml create mode 100644 src/tools/json-to-toml/locales/en.yml create mode 100644 src/tools/json-to-yaml-converter/locales/en.yml create mode 100644 src/tools/json-viewer/locales/en.yml create mode 100644 src/tools/jwt-parser/locales/en.yml create mode 100644 src/tools/keycode-info/locales/en.yml create mode 100644 src/tools/list-converter/locales/en.yml create mode 100644 src/tools/lorem-ipsum-generator/locales/en.yml create mode 100644 src/tools/mac-address-generator/locales/en.yml create mode 100644 src/tools/mac-address-lookup/locales/en.yml create mode 100644 src/tools/math-evaluator/locales/en.yml create mode 100644 src/tools/meta-tag-generator/locales/en.yml create mode 100644 src/tools/mime-types/locales/en.yml create mode 100644 src/tools/numeronym-generator/locales/en.yml create mode 100644 src/tools/otp-code-generator-and-validator/locales/en.yml create mode 100644 src/tools/password-strength-analyser/locales/en.yml create mode 100644 src/tools/pdf-signature-checker/locales/en.yml create mode 100644 src/tools/percentage-calculator/locales/en.yml create mode 100644 src/tools/phone-parser-and-formatter/locales/en.yml create mode 100644 src/tools/qr-code-generator/locales/en.yml create mode 100644 src/tools/random-port-generator/locales/en.yml create mode 100644 src/tools/roman-numeral-converter/locales/en.yml create mode 100644 src/tools/rsa-key-pair-generator/locales/en.yml create mode 100644 src/tools/slugify-string/locales/en.yml create mode 100644 src/tools/sql-prettify/locales/en.yml create mode 100644 src/tools/string-obfuscator/locales/en.yml create mode 100644 src/tools/svg-placeholder-generator/locales/en.yml create mode 100644 src/tools/temperature-converter/locales/en.yml create mode 100644 src/tools/text-diff/locales/en.yml create mode 100644 src/tools/text-statistics/locales/en.yml create mode 100644 src/tools/text-to-binary/locales/en.yml create mode 100644 src/tools/text-to-nato-alphabet/locales/en.yml create mode 100644 src/tools/text-to-unicode/locales/en.yml create mode 100644 src/tools/toml-to-json/locales/en.yml create mode 100644 src/tools/toml-to-yaml/locales/en.yml create mode 100644 src/tools/ulid-generator/locales/en.yml create mode 100644 src/tools/url-encoder/locales/en.yml create mode 100644 src/tools/url-parser/locales/en.yml create mode 100644 src/tools/user-agent-parser/locales/en.yml create mode 100644 src/tools/uuid-generator/locales/en.yml create mode 100644 src/tools/wifi-qr-code-generator/locales/en.yml create mode 100644 src/tools/xml-formatter/locales/en.yml create mode 100644 src/tools/yaml-to-json-converter/locales/en.yml create mode 100644 src/tools/yaml-to-toml/locales/en.yml create mode 100644 src/tools/yaml-viewer/locales/en.yml diff --git a/src/tools/base64-file-converter/index.ts b/src/tools/base64-file-converter/index.ts index c27e34ed3..4d94402ba 100644 --- a/src/tools/base64-file-converter/index.ts +++ b/src/tools/base64-file-converter/index.ts @@ -1,10 +1,11 @@ import { FileDigit } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Base64 file converter', + name: translate('tools.base64-file-converter.title'), path: '/base64-file-converter', - description: 'Convert string, files or images into a it\'s base64 representation.', + description: translate('tools.base64-file-converter.description'), keywords: ['base64', 'converter', 'upload', 'image', 'file', 'conversion', 'web', 'data', 'format'], component: () => import('./base64-file-converter.vue'), icon: FileDigit, diff --git a/src/tools/base64-file-converter/locales/en.yml b/src/tools/base64-file-converter/locales/en.yml new file mode 100644 index 000000000..501e535e5 --- /dev/null +++ b/src/tools/base64-file-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + base64-file-converter: + title: Base64 file converter + description: Convert string, files or images into a it\'s base64 representation. diff --git a/src/tools/base64-string-converter/index.ts b/src/tools/base64-string-converter/index.ts index 0dd9bee2e..e51d54df6 100644 --- a/src/tools/base64-string-converter/index.ts +++ b/src/tools/base64-string-converter/index.ts @@ -1,10 +1,11 @@ import { FileDigit } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Base64 string encoder/decoder', + name: translate('tools.base64-string-converter.title'), path: '/base64-string-converter', - description: 'Simply encode and decode string into a their base64 representation.', + description: translate('tools.base64-string-converter.description'), keywords: ['base64', 'converter', 'conversion', 'web', 'data', 'format', 'atob', 'btoa'], component: () => import('./base64-string-converter.vue'), icon: FileDigit, diff --git a/src/tools/base64-string-converter/locales/en.yml b/src/tools/base64-string-converter/locales/en.yml new file mode 100644 index 000000000..19396bfbe --- /dev/null +++ b/src/tools/base64-string-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + base64-string-converter: + title: Base64 string encoder/decoder + description: Simply encode and decode string into a their base64 representation. diff --git a/src/tools/basic-auth-generator/index.ts b/src/tools/basic-auth-generator/index.ts index 3138b5042..eff6eae38 100644 --- a/src/tools/basic-auth-generator/index.ts +++ b/src/tools/basic-auth-generator/index.ts @@ -1,10 +1,11 @@ import { PasswordRound } from '@vicons/material'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Basic auth generator', + name: translate('tools.basic-auth-generator.title'), path: '/basic-auth-generator', - description: 'Generate a base64 basic auth header from an username and a password.', + description: translate('tools.basic-auth-generator.description'), keywords: [ 'basic', 'auth', diff --git a/src/tools/basic-auth-generator/locales/en.yml b/src/tools/basic-auth-generator/locales/en.yml new file mode 100644 index 000000000..414761918 --- /dev/null +++ b/src/tools/basic-auth-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + basic-auth-generator: + title: Basic auth generator + description: Generate a base64 basic auth header from an username and a password. diff --git a/src/tools/bcrypt/index.ts b/src/tools/bcrypt/index.ts index f70a3a600..9c80c6945 100644 --- a/src/tools/bcrypt/index.ts +++ b/src/tools/bcrypt/index.ts @@ -1,11 +1,11 @@ import { LockSquare } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Bcrypt', + name: translate('tools.bcrypt.title'), path: '/bcrypt', - description: - 'Hash and compare text string using bcrypt. Bcrypt is a password-hashing function based on the Blowfish cipher.', + description: translate('tools.bcrypt.description'), keywords: ['bcrypt', 'hash', 'compare', 'password', 'salt', 'round', 'storage', 'crypto'], component: () => import('./bcrypt.vue'), icon: LockSquare, diff --git a/src/tools/bcrypt/locales/en.yml b/src/tools/bcrypt/locales/en.yml new file mode 100644 index 000000000..03629afbd --- /dev/null +++ b/src/tools/bcrypt/locales/en.yml @@ -0,0 +1,4 @@ +tools: + bcrypt: + title: Bcrypt + description: Hash and compare text string using bcrypt. Bcrypt is a password-hashing function based on the Blowfish cipher. diff --git a/src/tools/benchmark-builder/index.ts b/src/tools/benchmark-builder/index.ts index 51eb80581..426d287a2 100644 --- a/src/tools/benchmark-builder/index.ts +++ b/src/tools/benchmark-builder/index.ts @@ -1,10 +1,11 @@ import { SpeedFilled } from '@vicons/material'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Benchmark builder', + name: translate('tools.benchmark-builder.title'), path: '/benchmark-builder', - description: 'Easily compare execution time of tasks with this very simple online benchmark builder.', + description: translate('tools.benchmark-builder.description'), keywords: ['benchmark', 'builder', 'execution', 'duration', 'mean', 'variance'], component: () => import('./benchmark-builder.vue'), icon: SpeedFilled, diff --git a/src/tools/benchmark-builder/locales/en.yml b/src/tools/benchmark-builder/locales/en.yml new file mode 100644 index 000000000..673646931 --- /dev/null +++ b/src/tools/benchmark-builder/locales/en.yml @@ -0,0 +1,4 @@ +tools: + benchmark-builder: + title: Benchmark builder + description: Easily compare execution time of tasks with this very simple online benchmark builder. diff --git a/src/tools/bip39-generator/index.ts b/src/tools/bip39-generator/index.ts index f649e1887..40582da48 100644 --- a/src/tools/bip39-generator/index.ts +++ b/src/tools/bip39-generator/index.ts @@ -1,10 +1,11 @@ import { AlignJustified } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'BIP39 passphrase generator', + name: translate('tools.bip39-generator.title'), path: '/bip39-generator', - description: 'Generate BIP39 passphrase from existing or random mnemonic, or get the mnemonic from the passphrase.', + description: translate('tools.bip39-generator.description'), keywords: ['BIP39', 'passphrase', 'generator', 'mnemonic', 'entropy'], component: () => import('./bip39-generator.vue'), icon: AlignJustified, diff --git a/src/tools/bip39-generator/locales/en.yml b/src/tools/bip39-generator/locales/en.yml new file mode 100644 index 000000000..6f81e614d --- /dev/null +++ b/src/tools/bip39-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + bip39-generator: + title: BIP39 passphrase generator + description: Generate BIP39 passphrase from existing or random mnemonic, or get the mnemonic from the passphrase. diff --git a/src/tools/camera-recorder/index.ts b/src/tools/camera-recorder/index.ts index 3c5d11bd2..5cda41f36 100644 --- a/src/tools/camera-recorder/index.ts +++ b/src/tools/camera-recorder/index.ts @@ -1,10 +1,11 @@ import { Camera } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Camera recorder', + name: translate('tools.camera-recorder.title'), path: '/camera-recorder', - description: 'Take a picture or record a video from your webcam or camera.', + description: translate('tools.camera-recorder.description'), keywords: ['camera', 'recoder'], component: () => import('./camera-recorder.vue'), icon: Camera, diff --git a/src/tools/camera-recorder/locales/en.yml b/src/tools/camera-recorder/locales/en.yml new file mode 100644 index 000000000..dfc8cfd28 --- /dev/null +++ b/src/tools/camera-recorder/locales/en.yml @@ -0,0 +1,4 @@ +tools: + camera-recorder: + title: Camera recorder + description: Take a picture or record a video from your webcam or camera. diff --git a/src/tools/case-converter/index.ts b/src/tools/case-converter/index.ts index 710a03f2f..14d7ec128 100644 --- a/src/tools/case-converter/index.ts +++ b/src/tools/case-converter/index.ts @@ -1,10 +1,11 @@ import { LetterCaseToggle } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Case converter', + name: translate('tools.case-converter.title'), path: '/case-converter', - description: 'Change the case of a string and chose between different formats', + description: translate('tools.case-converter.description'), keywords: [ 'case', 'converter', diff --git a/src/tools/case-converter/locales/en.yml b/src/tools/case-converter/locales/en.yml new file mode 100644 index 000000000..fd4e4d4c1 --- /dev/null +++ b/src/tools/case-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + case-converter: + title: Case converter + description: Change the case of a string and chose between different formats diff --git a/src/tools/chmod-calculator/index.ts b/src/tools/chmod-calculator/index.ts index 7d299e425..e6b39df80 100644 --- a/src/tools/chmod-calculator/index.ts +++ b/src/tools/chmod-calculator/index.ts @@ -1,10 +1,11 @@ import { FileInvoice } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Chmod calculator', + name: translate('tools.chmod-calculator.title'), path: '/chmod-calculator', - description: 'Compute your chmod permissions and commands with this online chmod calculator.', + description: translate('tools.chmod-calculator.description'), keywords: [ 'chmod', 'calculator', diff --git a/src/tools/chmod-calculator/locales/en.yml b/src/tools/chmod-calculator/locales/en.yml new file mode 100644 index 000000000..02a2f93bf --- /dev/null +++ b/src/tools/chmod-calculator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + chmod-calculator: + title: Chmod calculator + description: Compute your chmod permissions and commands with this online chmod calculator. diff --git a/src/tools/chronometer/index.ts b/src/tools/chronometer/index.ts index 424d03dc9..d7d8196ae 100644 --- a/src/tools/chronometer/index.ts +++ b/src/tools/chronometer/index.ts @@ -1,10 +1,11 @@ import { TimerOutlined } from '@vicons/material'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Chronometer', + name: translate('tools.chronometer.title'), path: '/chronometer', - description: 'Monitor the duration of a thing. Basically a chronometer with simple chronometer features.', + description: translate('tools.chronometer.description'), keywords: ['chronometer', 'time', 'lap', 'duration', 'measure', 'pause', 'resume', 'stopwatch'], component: () => import('./chronometer.vue'), icon: TimerOutlined, diff --git a/src/tools/chronometer/locales/en.yml b/src/tools/chronometer/locales/en.yml new file mode 100644 index 000000000..e3dda4af2 --- /dev/null +++ b/src/tools/chronometer/locales/en.yml @@ -0,0 +1,4 @@ +tools: + chronometer: + title: Chronometer + description: Monitor the duration of a thing. Basically a chronometer with simple chronometer features. diff --git a/src/tools/color-converter/index.ts b/src/tools/color-converter/index.ts index c82689cc4..9a295e2b5 100644 --- a/src/tools/color-converter/index.ts +++ b/src/tools/color-converter/index.ts @@ -1,10 +1,11 @@ import { Palette } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Color converter', + name: translate('tools.color-converter.title'), path: '/color-converter', - description: 'Convert color between the different formats (hex, rgb, hsl and css name)', + description: translate('tools.color-converter.description'), keywords: ['color', 'converter'], component: () => import('./color-converter.vue'), icon: Palette, diff --git a/src/tools/color-converter/locales/en.yml b/src/tools/color-converter/locales/en.yml new file mode 100644 index 000000000..55a41783b --- /dev/null +++ b/src/tools/color-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + color-converter: + title: Color converter + description: Convert color between the different formats (hex, rgb, hsl and css name) diff --git a/src/tools/crontab-generator/index.ts b/src/tools/crontab-generator/index.ts index 49b283890..429d6e143 100644 --- a/src/tools/crontab-generator/index.ts +++ b/src/tools/crontab-generator/index.ts @@ -1,10 +1,11 @@ import { Alarm } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Crontab generator', + name: translate('tools.crontab-generator.title'), path: '/crontab-generator', - description: 'Validate and generate crontab and get the human readable description of the cron schedule.', + description: translate('tools.crontab-generator.description'), keywords: [ 'crontab', 'generator', diff --git a/src/tools/crontab-generator/locales/en.yml b/src/tools/crontab-generator/locales/en.yml new file mode 100644 index 000000000..b8363312a --- /dev/null +++ b/src/tools/crontab-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + crontab-generator: + title: Crontab generator + description: Validate and generate crontab and get the human readable description of the cron schedule. diff --git a/src/tools/date-time-converter/index.ts b/src/tools/date-time-converter/index.ts index 4bc66bf10..b0413fc09 100644 --- a/src/tools/date-time-converter/index.ts +++ b/src/tools/date-time-converter/index.ts @@ -1,10 +1,11 @@ import { Calendar } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Date-time converter', + name: translate('tools.date-converter.title'), path: '/date-converter', - description: 'Convert date and time into the various different formats', + description: translate('tools.date-converter.description'), keywords: ['date', 'time', 'converter', 'iso', 'utc', 'timezone', 'year', 'month', 'day', 'minute', 'seconde'], component: () => import('./date-time-converter.vue'), icon: Calendar, diff --git a/src/tools/date-time-converter/locales/en.yml b/src/tools/date-time-converter/locales/en.yml new file mode 100644 index 000000000..a689eafe6 --- /dev/null +++ b/src/tools/date-time-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + date-converter: + title: Date-time converter + description: Convert date and time into the various different formats diff --git a/src/tools/device-information/index.ts b/src/tools/device-information/index.ts index e55ae28cd..44d91598c 100644 --- a/src/tools/device-information/index.ts +++ b/src/tools/device-information/index.ts @@ -1,10 +1,11 @@ import { DeviceDesktop } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Device information', + name: translate('tools.device-information.title'), path: '/device-information', - description: 'Get information about your current device (screen size, pixel-ratio, user agent, ...)', + description: translate('tools.device-information.description'), keywords: [ 'device', 'information', diff --git a/src/tools/device-information/locales/en.yml b/src/tools/device-information/locales/en.yml new file mode 100644 index 000000000..42a9248c6 --- /dev/null +++ b/src/tools/device-information/locales/en.yml @@ -0,0 +1,4 @@ +tools: + device-information: + title: Device information + description: Get information about your current device (screen size, pixel-ratio, user agent, ...) diff --git a/src/tools/docker-run-to-docker-compose-converter/index.ts b/src/tools/docker-run-to-docker-compose-converter/index.ts index d9c1437fd..0ecc4b0b8 100644 --- a/src/tools/docker-run-to-docker-compose-converter/index.ts +++ b/src/tools/docker-run-to-docker-compose-converter/index.ts @@ -1,10 +1,11 @@ import { BrandDocker } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Docker run to Docker compose converter', + name: translate('tools.docker-run-to-docker-compose-converter.title'), path: '/docker-run-to-docker-compose-converter', - description: 'Turns docker run commands into docker-compose files!', + description: translate('tools.docker-run-to-docker-compose-converter.description'), keywords: ['docker', 'run', 'compose', 'yaml', 'yml', 'convert', 'deamon'], component: () => import('./docker-run-to-docker-compose-converter.vue'), icon: BrandDocker, diff --git a/src/tools/docker-run-to-docker-compose-converter/locales/en.yml b/src/tools/docker-run-to-docker-compose-converter/locales/en.yml new file mode 100644 index 000000000..ebe0db759 --- /dev/null +++ b/src/tools/docker-run-to-docker-compose-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + docker-run-to-docker-compose-converter: + title: Docker run to Docker compose converter + description: Turns docker run commands into docker-compose files! diff --git a/src/tools/emoji-picker/index.ts b/src/tools/emoji-picker/index.ts index ef01b2deb..3a28cf0f1 100644 --- a/src/tools/emoji-picker/index.ts +++ b/src/tools/emoji-picker/index.ts @@ -1,10 +1,11 @@ import { MoodSmile } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Emoji picker', + name: translate('tools.emoji-picker.title'), path: '/emoji-picker', - description: 'Copy and paste emojis easily and get the unicode and code points value of each emoji.', + description: translate('tools.emoji-picker.description'), keywords: ['emoji', 'picker', 'unicode', 'copy', 'paste'], component: () => import('./emoji-picker.vue'), icon: MoodSmile, diff --git a/src/tools/emoji-picker/locales/en.yml b/src/tools/emoji-picker/locales/en.yml new file mode 100644 index 000000000..8766e6627 --- /dev/null +++ b/src/tools/emoji-picker/locales/en.yml @@ -0,0 +1,4 @@ +tools: + emoji-picker: + title: Emoji picker + description: Copy and paste emojis easily and get the unicode and code points value of each emoji. diff --git a/src/tools/encryption/index.ts b/src/tools/encryption/index.ts index 9a95f4bc8..c8dd85dbf 100644 --- a/src/tools/encryption/index.ts +++ b/src/tools/encryption/index.ts @@ -1,10 +1,11 @@ import { Lock } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Encrypt / decrypt text', + name: translate('tools.encryption.title'), path: '/encryption', - description: 'Encrypt and decrypt text clear text using crypto algorithm like AES, TripleDES, Rabbit or RC4.', + description: translate('tools.encryption.description'), keywords: ['cypher', 'encipher', 'text', 'AES', 'TripleDES', 'Rabbit', 'RC4'], component: () => import('./encryption.vue'), icon: Lock, diff --git a/src/tools/encryption/locales/en.yml b/src/tools/encryption/locales/en.yml new file mode 100644 index 000000000..6be962b55 --- /dev/null +++ b/src/tools/encryption/locales/en.yml @@ -0,0 +1,4 @@ +tools: + encryption: + title: Encrypt / decrypt text + description: Encrypt and decrypt text clear text using crypto algorithm like AES, TripleDES, Rabbit or RC4. diff --git a/src/tools/eta-calculator/index.ts b/src/tools/eta-calculator/index.ts index abda2870c..5016ab666 100644 --- a/src/tools/eta-calculator/index.ts +++ b/src/tools/eta-calculator/index.ts @@ -1,11 +1,11 @@ import { Hourglass } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'ETA calculator', + name: translate('tools.eta-calculator.title'), path: '/eta-calculator', - description: - 'An ETA (Estimated Time of Arrival) calculator to know the approximate end time of a task, for example the moment of ending of a download.', + description: translate('tools.eta-calculator.description'), keywords: ['eta', 'calculator', 'estimated', 'time', 'arrival', 'average'], component: () => import('./eta-calculator.vue'), icon: Hourglass, diff --git a/src/tools/eta-calculator/locales/en.yml b/src/tools/eta-calculator/locales/en.yml new file mode 100644 index 000000000..c4d006e25 --- /dev/null +++ b/src/tools/eta-calculator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + eta-calculator: + title: ETA calculator + description: An ETA (Estimated Time of Arrival) calculator to know the approximate end time of a task, for example the moment of ending of a download. diff --git a/src/tools/git-memo/index.ts b/src/tools/git-memo/index.ts index c91ee813b..f65ffe074 100644 --- a/src/tools/git-memo/index.ts +++ b/src/tools/git-memo/index.ts @@ -1,11 +1,11 @@ import { BrandGit } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Git cheatsheet', + name: translate('tools.git-memo.title'), path: '/git-memo', - description: - 'Git is a decentralized version management software. With this cheatsheet you will have a quick access to the most common git commands.', + description: translate('tools.git-memo.description'), keywords: ['git', 'push', 'force', 'pull', 'commit', 'amend', 'rebase', 'merge', 'reset', 'soft', 'hard', 'lease'], component: () => import('./git-memo.vue'), icon: BrandGit, diff --git a/src/tools/git-memo/locales/en.yml b/src/tools/git-memo/locales/en.yml new file mode 100644 index 000000000..f435a3e17 --- /dev/null +++ b/src/tools/git-memo/locales/en.yml @@ -0,0 +1,4 @@ +tools: + git-memo: + title: Git cheatsheet + description: Git is a decentralized version management software. With this cheatsheet you will have a quick access to the most common git commands. diff --git a/src/tools/hash-text/index.ts b/src/tools/hash-text/index.ts index 3012747c0..2070e41d1 100644 --- a/src/tools/hash-text/index.ts +++ b/src/tools/hash-text/index.ts @@ -1,11 +1,11 @@ import { EyeOff } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Hash text', + name: translate('tools.hash-text.title'), path: '/hash-text', - description: - 'Hash a text string using the function you need : MD5, SHA1, SHA256, SHA224, SHA512, SHA384, SHA3 or RIPEMD160', + description: translate('tools.hash-text.description'), keywords: [ 'hash', 'digest', diff --git a/src/tools/hash-text/locales/en.yml b/src/tools/hash-text/locales/en.yml new file mode 100644 index 000000000..909ba8da7 --- /dev/null +++ b/src/tools/hash-text/locales/en.yml @@ -0,0 +1,4 @@ +tools: + hash-text: + title: Hash text + description: 'Hash a text string using the function you need : MD5, SHA1, SHA256, SHA224, SHA512, SHA384, SHA3 or RIPEMD160' diff --git a/src/tools/hmac-generator/index.ts b/src/tools/hmac-generator/index.ts index c0ca7da4e..3500684e3 100644 --- a/src/tools/hmac-generator/index.ts +++ b/src/tools/hmac-generator/index.ts @@ -1,11 +1,11 @@ import { ShortTextRound } from '@vicons/material'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Hmac generator', + name: translate('tools.hmac-generator.title'), path: '/hmac-generator', - description: - 'Computes a hash-based message authentication code (HMAC) using a secret key and your favorite hashing function.', + description: translate('tools.hmac-generator.description'), keywords: ['hmac', 'generator', 'MD5', 'SHA1', 'SHA256', 'SHA224', 'SHA512', 'SHA384', 'SHA3', 'RIPEMD160'], component: () => import('./hmac-generator.vue'), icon: ShortTextRound, diff --git a/src/tools/hmac-generator/locales/en.yml b/src/tools/hmac-generator/locales/en.yml new file mode 100644 index 000000000..9e834958d --- /dev/null +++ b/src/tools/hmac-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + hmac-generator: + title: Hmac generator + description: Computes a hash-based message authentication code (HMAC) using a secret key and your favorite hashing function. diff --git a/src/tools/html-entities/index.ts b/src/tools/html-entities/index.ts index 4907dc686..e292f087e 100644 --- a/src/tools/html-entities/index.ts +++ b/src/tools/html-entities/index.ts @@ -1,10 +1,11 @@ import { Code } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Escape html entities', + name: translate('tools.html-entities.title'), path: '/html-entities', - description: 'Escape or unescape html entities (replace <,>, &, " and \' to their html version)', + description: translate('tools.html-entities.description'), keywords: ['html', 'entities', 'escape', 'unescape', 'special', 'characters', 'tags'], component: () => import('./html-entities.vue'), icon: Code, diff --git a/src/tools/html-entities/locales/en.yml b/src/tools/html-entities/locales/en.yml new file mode 100644 index 000000000..e9dd69726 --- /dev/null +++ b/src/tools/html-entities/locales/en.yml @@ -0,0 +1,4 @@ +tools: + html-entities: + title: Escape html entities + description: Escape or unescape html entities (replace <,>, &, " and \' to their html version) diff --git a/src/tools/html-wysiwyg-editor/index.ts b/src/tools/html-wysiwyg-editor/index.ts index 461ad2354..3a2ab0077 100644 --- a/src/tools/html-wysiwyg-editor/index.ts +++ b/src/tools/html-wysiwyg-editor/index.ts @@ -1,10 +1,11 @@ import { Edit } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'HTML WYSIWYG editor', + name: translate('tools.html-wysiwyg-editor.title'), path: '/html-wysiwyg-editor', - description: 'Online HTML editor with feature-rich WYSIWYG editor, get the source code of the content immediately.', + description: translate('tools.html-wysiwyg-editor.description'), keywords: ['html', 'wysiwyg', 'editor', 'p', 'ul', 'ol', 'converter', 'live'], component: () => import('./html-wysiwyg-editor.vue'), icon: Edit, diff --git a/src/tools/html-wysiwyg-editor/locales/en.yml b/src/tools/html-wysiwyg-editor/locales/en.yml new file mode 100644 index 000000000..03e5e503d --- /dev/null +++ b/src/tools/html-wysiwyg-editor/locales/en.yml @@ -0,0 +1,4 @@ +tools: + html-wysiwyg-editor: + title: HTML WYSIWYG editor + description: Online HTML editor with feature-rich WYSIWYG editor, get the source code of the content immediately. diff --git a/src/tools/http-status-codes/index.ts b/src/tools/http-status-codes/index.ts index 43afae834..b31389430 100644 --- a/src/tools/http-status-codes/index.ts +++ b/src/tools/http-status-codes/index.ts @@ -2,11 +2,12 @@ import { HttpRound } from '@vicons/material'; import { defineTool } from '../tool'; import { codesByCategories } from './http-status-codes.constants'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'HTTP status codes', + name: translate('tools.http-status-codes.title'), path: '/http-status-codes', - description: 'The list of all HTTP status codes their name and their meaning.', + description: translate('tools.http-status-codes.description'), keywords: [ 'http', 'status', diff --git a/src/tools/http-status-codes/locales/en.yml b/src/tools/http-status-codes/locales/en.yml new file mode 100644 index 000000000..07f2a168b --- /dev/null +++ b/src/tools/http-status-codes/locales/en.yml @@ -0,0 +1,4 @@ +tools: + http-status-codes: + title: HTTP status codes + description: The list of all HTTP status codes their name and their meaning. diff --git a/src/tools/iban-validator-and-parser/index.ts b/src/tools/iban-validator-and-parser/index.ts index b0cae50d5..ff7ff135b 100644 --- a/src/tools/iban-validator-and-parser/index.ts +++ b/src/tools/iban-validator-and-parser/index.ts @@ -1,10 +1,11 @@ import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; import Bank from '~icons/mdi/bank'; export const tool = defineTool({ - name: 'IBAN validator and parser', + name: translate('tools.iban-validator-and-parser.title'), path: '/iban-validator-and-parser', - description: 'Validate and parse IBAN numbers. Check if IBAN is valid and get the country, BBAN, if it is a QR-IBAN and the IBAN friendly format.', + description: translate('tools.iban-validator-and-parser.description'), keywords: ['iban', 'validator', 'and', 'parser', 'bic', 'bank'], component: () => import('./iban-validator-and-parser.vue'), icon: Bank, diff --git a/src/tools/iban-validator-and-parser/locales/en.yml b/src/tools/iban-validator-and-parser/locales/en.yml new file mode 100644 index 000000000..ab38c2f2e --- /dev/null +++ b/src/tools/iban-validator-and-parser/locales/en.yml @@ -0,0 +1,4 @@ +tools: + iban-validator-and-parser: + title: IBAN validator and parser + description: Validate and parse IBAN numbers. Check if IBAN is valid and get the country, BBAN, if it is a QR-IBAN and the IBAN friendly format. diff --git a/src/tools/integer-base-converter/index.ts b/src/tools/integer-base-converter/index.ts index 0008568c2..f60d996d1 100644 --- a/src/tools/integer-base-converter/index.ts +++ b/src/tools/integer-base-converter/index.ts @@ -1,10 +1,11 @@ import { ArrowsLeftRight } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Integer base converter', + name: translate('tools.base-converter.title'), path: '/base-converter', - description: 'Convert number between different bases (decimal, hexadecimal, binary, octal, base64, ...)', + description: translate('tools.base-converter.description'), keywords: ['integer', 'number', 'base', 'conversion', 'decimal', 'hexadecimal', 'binary', 'octal', 'base64'], component: () => import('./integer-base-converter.vue'), icon: ArrowsLeftRight, diff --git a/src/tools/integer-base-converter/locales/en.yml b/src/tools/integer-base-converter/locales/en.yml new file mode 100644 index 000000000..dc3e99f67 --- /dev/null +++ b/src/tools/integer-base-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + base-converter: + title: Integer base converter + description: Convert number between different bases (decimal, hexadecimal, binary, octal, base64, ...) diff --git a/src/tools/ipv4-address-converter/index.ts b/src/tools/ipv4-address-converter/index.ts index 62d2daf11..66ae03a3e 100644 --- a/src/tools/ipv4-address-converter/index.ts +++ b/src/tools/ipv4-address-converter/index.ts @@ -1,10 +1,11 @@ import { Binary } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Ipv4 address converter', + name: translate('tools.ipv4-address-converter.title'), path: '/ipv4-address-converter', - description: 'Convert an ip address into decimal, binary, hexadecimal or event in ipv6', + description: translate('tools.ipv4-address-converter.description'), keywords: ['ipv4', 'address', 'converter', 'decimal', 'hexadecimal', 'binary', 'ipv6'], component: () => import('./ipv4-address-converter.vue'), icon: Binary, diff --git a/src/tools/ipv4-address-converter/locales/en.yml b/src/tools/ipv4-address-converter/locales/en.yml new file mode 100644 index 000000000..f12db2054 --- /dev/null +++ b/src/tools/ipv4-address-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + ipv4-address-converter: + title: Ipv4 address converter + description: Convert an ip address into decimal, binary, hexadecimal or event in ipv6 diff --git a/src/tools/ipv4-range-expander/index.ts b/src/tools/ipv4-range-expander/index.ts index 233f7cc4e..49dfae951 100644 --- a/src/tools/ipv4-range-expander/index.ts +++ b/src/tools/ipv4-range-expander/index.ts @@ -1,11 +1,11 @@ import { UnfoldMoreOutlined } from '@vicons/material'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'IPv4 range expander', + name: translate('tools.ipv4-range-expander.title'), path: '/ipv4-range-expander', - description: - 'Given a start and an end IPv4 address this tool calculates a valid IPv4 network with its CIDR notation.', + description: translate('tools.ipv4-range-expander.description'), keywords: ['ipv4', 'range', 'expander', 'subnet', 'creator', 'cidr'], component: () => import('./ipv4-range-expander.vue'), icon: UnfoldMoreOutlined, diff --git a/src/tools/ipv4-range-expander/locales/en.yml b/src/tools/ipv4-range-expander/locales/en.yml new file mode 100644 index 000000000..53d42fe0c --- /dev/null +++ b/src/tools/ipv4-range-expander/locales/en.yml @@ -0,0 +1,4 @@ +tools: + ipv4-range-expander: + title: IPv4 range expander + description: Given a start and an end IPv4 address this tool calculates a valid IPv4 network with its CIDR notation. diff --git a/src/tools/ipv4-subnet-calculator/index.ts b/src/tools/ipv4-subnet-calculator/index.ts index fb4bfb43f..1bae72824 100644 --- a/src/tools/ipv4-subnet-calculator/index.ts +++ b/src/tools/ipv4-subnet-calculator/index.ts @@ -1,10 +1,11 @@ import { RouterOutlined } from '@vicons/material'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'IPv4 subnet calculator', + name: translate('tools.ipv4-subnet-calculator.title'), path: '/ipv4-subnet-calculator', - description: 'Parse your IPv4 CIDR blocks and get all the info you need about your sub network.', + description: translate('tools.ipv4-subnet-calculator.description'), keywords: ['ipv4', 'subnet', 'calculator', 'mask', 'network', 'cidr', 'netmask', 'bitmask', 'broadcast', 'address'], component: () => import('./ipv4-subnet-calculator.vue'), icon: RouterOutlined, diff --git a/src/tools/ipv4-subnet-calculator/locales/en.yml b/src/tools/ipv4-subnet-calculator/locales/en.yml new file mode 100644 index 000000000..34d27f8d9 --- /dev/null +++ b/src/tools/ipv4-subnet-calculator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + ipv4-subnet-calculator: + title: IPv4 subnet calculator + description: Parse your IPv4 CIDR blocks and get all the info you need about your sub network. diff --git a/src/tools/ipv6-ula-generator/index.ts b/src/tools/ipv6-ula-generator/index.ts index 24efaeba9..51bfd6fcd 100644 --- a/src/tools/ipv6-ula-generator/index.ts +++ b/src/tools/ipv6-ula-generator/index.ts @@ -1,10 +1,11 @@ import { BuildingFactory } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'IPv6 ULA generator', + name: translate('tools.ipv6-ula-generator.title'), path: '/ipv6-ula-generator', - description: 'Generate your own local, non-routable IP addresses on your network according to RFC4193.', + description: translate('tools.ipv6-ula-generator.description'), keywords: ['ipv6', 'ula', 'generator', 'rfc4193', 'network', 'private'], component: () => import('./ipv6-ula-generator.vue'), icon: BuildingFactory, diff --git a/src/tools/ipv6-ula-generator/locales/en.yml b/src/tools/ipv6-ula-generator/locales/en.yml new file mode 100644 index 000000000..2be89b8d1 --- /dev/null +++ b/src/tools/ipv6-ula-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + ipv6-ula-generator: + title: IPv6 ULA generator + description: Generate your own local, non-routable IP addresses on your network according to RFC4193. diff --git a/src/tools/json-diff/index.ts b/src/tools/json-diff/index.ts index 7c4c1eee1..a4c0319c0 100644 --- a/src/tools/json-diff/index.ts +++ b/src/tools/json-diff/index.ts @@ -1,10 +1,11 @@ import { CompareArrowsRound } from '@vicons/material'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'JSON diff', + name: translate('tools.json-diff.title'), path: '/json-diff', - description: 'Compare two JSON objects and get the differences between them.', + description: translate('tools.json-diff.description'), keywords: ['json', 'diff', 'compare', 'difference', 'object', 'data'], component: () => import('./json-diff.vue'), icon: CompareArrowsRound, diff --git a/src/tools/json-diff/locales/en.yml b/src/tools/json-diff/locales/en.yml new file mode 100644 index 000000000..6962461f9 --- /dev/null +++ b/src/tools/json-diff/locales/en.yml @@ -0,0 +1,4 @@ +tools: + json-diff: + title: JSON diff + description: Compare two JSON objects and get the differences between them. diff --git a/src/tools/json-minify/index.ts b/src/tools/json-minify/index.ts index e6a02dbea..fbe5831b5 100644 --- a/src/tools/json-minify/index.ts +++ b/src/tools/json-minify/index.ts @@ -1,10 +1,11 @@ import { Braces } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'JSON minify', + name: translate('tools.json-minify.title'), path: '/json-minify', - description: 'Minify and compress your JSON by removing unnecessary white spaces.', + description: translate('tools.json-minify.description'), keywords: ['json', 'minify', 'format'], component: () => import('./json-minify.vue'), icon: Braces, diff --git a/src/tools/json-minify/locales/en.yml b/src/tools/json-minify/locales/en.yml new file mode 100644 index 000000000..c0343a6b9 --- /dev/null +++ b/src/tools/json-minify/locales/en.yml @@ -0,0 +1,4 @@ +tools: + json-minify: + title: JSON minify + description: Minify and compress your JSON by removing unnecessary white spaces. diff --git a/src/tools/json-to-csv/index.ts b/src/tools/json-to-csv/index.ts index acfef02fe..9f38b82fc 100644 --- a/src/tools/json-to-csv/index.ts +++ b/src/tools/json-to-csv/index.ts @@ -1,10 +1,11 @@ import { List } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'JSON to CSV', + name: translate('tools.json-to-csv.title'), path: '/json-to-csv', - description: 'Convert JSON to CSV with automatic header detection.', + description: translate('tools.json-to-csv.description'), keywords: ['json', 'to', 'csv', 'convert'], component: () => import('./json-to-csv.vue'), icon: List, diff --git a/src/tools/json-to-csv/locales/en.yml b/src/tools/json-to-csv/locales/en.yml new file mode 100644 index 000000000..60d9ccfff --- /dev/null +++ b/src/tools/json-to-csv/locales/en.yml @@ -0,0 +1,4 @@ +tools: + json-to-csv: + title: JSON to CSV + description: Convert JSON to CSV with automatic header detection. diff --git a/src/tools/json-to-toml/index.ts b/src/tools/json-to-toml/index.ts index 13e45eaf4..da42c18d9 100644 --- a/src/tools/json-to-toml/index.ts +++ b/src/tools/json-to-toml/index.ts @@ -1,10 +1,11 @@ import { Braces } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'JSON to TOML', + name: translate('tools.json-to-toml.title'), path: '/json-to-toml', - description: 'Parse and convert JSON to TOML.', + description: translate('tools.json-to-toml.description'), keywords: ['json', 'parse', 'toml', 'convert', 'transform'], component: () => import('./json-to-toml.vue'), icon: Braces, diff --git a/src/tools/json-to-toml/locales/en.yml b/src/tools/json-to-toml/locales/en.yml new file mode 100644 index 000000000..d397a3c00 --- /dev/null +++ b/src/tools/json-to-toml/locales/en.yml @@ -0,0 +1,4 @@ +tools: + json-to-toml: + title: JSON to TOML + description: Parse and convert JSON to TOML. diff --git a/src/tools/json-to-yaml-converter/index.ts b/src/tools/json-to-yaml-converter/index.ts index 9db09d3eb..c01e3ec02 100644 --- a/src/tools/json-to-yaml-converter/index.ts +++ b/src/tools/json-to-yaml-converter/index.ts @@ -1,10 +1,11 @@ import { Braces } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'JSON to YAML converter', + name: translate('tools.json-to-yaml-converter.title'), path: '/json-to-yaml-converter', - description: 'Simply convert JSON to YAML with this live online converter.', + description: translate('tools.json-to-yaml-converter.description'), keywords: ['yaml', 'to', 'json'], component: () => import('./json-to-yaml.vue'), icon: Braces, diff --git a/src/tools/json-to-yaml-converter/locales/en.yml b/src/tools/json-to-yaml-converter/locales/en.yml new file mode 100644 index 000000000..225e85f6d --- /dev/null +++ b/src/tools/json-to-yaml-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + json-to-yaml-converter: + title: JSON to YAML converter + description: Simply convert JSON to YAML with this live online converter. diff --git a/src/tools/json-viewer/index.ts b/src/tools/json-viewer/index.ts index 6b5b88120..bc4882455 100644 --- a/src/tools/json-viewer/index.ts +++ b/src/tools/json-viewer/index.ts @@ -1,10 +1,11 @@ import { Braces } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'JSON prettify and format', + name: translate('tools.json-prettify.title'), path: '/json-prettify', - description: 'Prettify your JSON string to a human friendly readable format.', + description: translate('tools.json-prettify.description'), keywords: ['json', 'viewer', 'prettify', 'format'], component: () => import('./json-viewer.vue'), icon: Braces, diff --git a/src/tools/json-viewer/locales/en.yml b/src/tools/json-viewer/locales/en.yml new file mode 100644 index 000000000..7f0a303d8 --- /dev/null +++ b/src/tools/json-viewer/locales/en.yml @@ -0,0 +1,4 @@ +tools: + json-prettify: + title: JSON prettify and format + description: Prettify your JSON string to a human friendly readable format. diff --git a/src/tools/jwt-parser/index.ts b/src/tools/jwt-parser/index.ts index 7249ace07..939b4b34a 100644 --- a/src/tools/jwt-parser/index.ts +++ b/src/tools/jwt-parser/index.ts @@ -1,10 +1,11 @@ import { Key } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'JWT parser', + name: translate('tools.jwt-parser.title'), path: '/jwt-parser', - description: 'Parse and decode your JSON Web Token (jwt) and display its content.', + description: translate('tools.jwt-parser.description'), keywords: [ 'jwt', 'parser', diff --git a/src/tools/jwt-parser/locales/en.yml b/src/tools/jwt-parser/locales/en.yml new file mode 100644 index 000000000..956f92398 --- /dev/null +++ b/src/tools/jwt-parser/locales/en.yml @@ -0,0 +1,4 @@ +tools: + jwt-parser: + title: JWT parser + description: Parse and decode your JSON Web Token (jwt) and display its content. diff --git a/src/tools/keycode-info/index.ts b/src/tools/keycode-info/index.ts index a9ffab2db..a2f36562f 100644 --- a/src/tools/keycode-info/index.ts +++ b/src/tools/keycode-info/index.ts @@ -1,10 +1,11 @@ import { Keyboard } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Keycode info', + name: translate('tools.keycode-info.title'), path: '/keycode-info', - description: 'Find the javascript keycode, code, location and modifiers of any pressed key.', + description: translate('tools.keycode-info.description'), keywords: [ 'keycode', 'info', diff --git a/src/tools/keycode-info/locales/en.yml b/src/tools/keycode-info/locales/en.yml new file mode 100644 index 000000000..98322a55b --- /dev/null +++ b/src/tools/keycode-info/locales/en.yml @@ -0,0 +1,4 @@ +tools: + keycode-info: + title: Keycode info + description: Find the javascript keycode, code, location and modifiers of any pressed key. diff --git a/src/tools/list-converter/index.ts b/src/tools/list-converter/index.ts index cf9fbd390..9ae7c512c 100644 --- a/src/tools/list-converter/index.ts +++ b/src/tools/list-converter/index.ts @@ -1,11 +1,11 @@ import { List } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'List converter', + name: translate('tools.list-converter.title'), path: '/list-converter', - description: - 'This tool can process column-based data and apply various changes (transpose, add prefix and suffix, reverse list, sort list, lowercase values, truncate values) to each row.', + description: translate('tools.list-converter.description'), keywords: ['list', 'converter', 'sort', 'reverse', 'prefix', 'suffix', 'lowercase', 'truncate'], component: () => import('./list-converter.vue'), icon: List, diff --git a/src/tools/list-converter/locales/en.yml b/src/tools/list-converter/locales/en.yml new file mode 100644 index 000000000..4b1c19994 --- /dev/null +++ b/src/tools/list-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + list-converter: + title: List converter + description: This tool can process column-based data and apply various changes (transpose, add prefix and suffix, reverse list, sort list, lowercase values, truncate values) to each row. diff --git a/src/tools/lorem-ipsum-generator/index.ts b/src/tools/lorem-ipsum-generator/index.ts index 1767d85de..2634d9e0c 100644 --- a/src/tools/lorem-ipsum-generator/index.ts +++ b/src/tools/lorem-ipsum-generator/index.ts @@ -1,11 +1,11 @@ import { AlignJustified } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Lorem ipsum generator', + name: translate('tools.lorem-ipsum-generator.title'), path: '/lorem-ipsum-generator', - description: - 'Lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content', + description: translate('tools.lorem-ipsum-generator.description'), keywords: ['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'placeholder', 'text', 'filler', 'random', 'generator'], component: () => import('./lorem-ipsum-generator.vue'), icon: AlignJustified, diff --git a/src/tools/lorem-ipsum-generator/locales/en.yml b/src/tools/lorem-ipsum-generator/locales/en.yml new file mode 100644 index 000000000..9f4aa605a --- /dev/null +++ b/src/tools/lorem-ipsum-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + lorem-ipsum-generator: + title: Lorem ipsum generator + description: Lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content diff --git a/src/tools/mac-address-generator/index.ts b/src/tools/mac-address-generator/index.ts index 9d20fb697..3106bcec8 100644 --- a/src/tools/mac-address-generator/index.ts +++ b/src/tools/mac-address-generator/index.ts @@ -1,10 +1,11 @@ import { Devices } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'MAC address generator', + name: translate('tools.mac-address-generator.title'), path: '/mac-address-generator', - description: 'Enter the quantity and prefix. MAC addresses will be generated in your chosen case (uppercase or lowercase)', + description: translate('tools.mac-address-generator.description'), keywords: ['mac', 'address', 'generator', 'random', 'prefix'], component: () => import('./mac-address-generator.vue'), icon: Devices, diff --git a/src/tools/mac-address-generator/locales/en.yml b/src/tools/mac-address-generator/locales/en.yml new file mode 100644 index 000000000..c24d7337a --- /dev/null +++ b/src/tools/mac-address-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + mac-address-generator: + title: MAC address generator + description: Enter the quantity and prefix. MAC addresses will be generated in your chosen case (uppercase or lowercase) diff --git a/src/tools/mac-address-lookup/index.ts b/src/tools/mac-address-lookup/index.ts index 4108bc331..367bcebb7 100644 --- a/src/tools/mac-address-lookup/index.ts +++ b/src/tools/mac-address-lookup/index.ts @@ -1,10 +1,11 @@ import { Devices } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'MAC address lookup', + name: translate('tools.mac-address-lookup.title'), path: '/mac-address-lookup', - description: 'Find the vendor and manufacturer of a device by its MAC address.', + description: translate('tools.mac-address-lookup.description'), keywords: ['mac', 'address', 'lookup', 'vendor', 'parser', 'manufacturer'], component: () => import('./mac-address-lookup.vue'), icon: Devices, diff --git a/src/tools/mac-address-lookup/locales/en.yml b/src/tools/mac-address-lookup/locales/en.yml new file mode 100644 index 000000000..761b739e9 --- /dev/null +++ b/src/tools/mac-address-lookup/locales/en.yml @@ -0,0 +1,4 @@ +tools: + mac-address-lookup: + title: MAC address lookup + description: Find the vendor and manufacturer of a device by its MAC address. diff --git a/src/tools/math-evaluator/index.ts b/src/tools/math-evaluator/index.ts index 8bf5ce2d2..eb4290ba4 100644 --- a/src/tools/math-evaluator/index.ts +++ b/src/tools/math-evaluator/index.ts @@ -1,10 +1,11 @@ import { Math } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Math evaluator', + name: translate('tools.math-evaluator.title'), path: '/math-evaluator', - description: 'A calculator for evaluating mathematical expressions. You can use functions like sqrt, cos, sin, abs, etc.', + description: translate('tools.math-evaluator.description'), keywords: [ 'math', 'evaluator', diff --git a/src/tools/math-evaluator/locales/en.yml b/src/tools/math-evaluator/locales/en.yml new file mode 100644 index 000000000..3c27f469e --- /dev/null +++ b/src/tools/math-evaluator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + math-evaluator: + title: Math evaluator + description: A calculator for evaluating mathematical expressions. You can use functions like sqrt, cos, sin, abs, etc. diff --git a/src/tools/meta-tag-generator/index.ts b/src/tools/meta-tag-generator/index.ts index c79b19f37..c62244109 100644 --- a/src/tools/meta-tag-generator/index.ts +++ b/src/tools/meta-tag-generator/index.ts @@ -1,10 +1,11 @@ import { Tags } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Open graph meta generator', + name: translate('tools.og-meta-generator.title'), path: '/og-meta-generator', - description: 'Generate open-graph and socials html meta tags for your website.', + description: translate('tools.og-meta-generator.description'), keywords: [ 'meta', 'tag', diff --git a/src/tools/meta-tag-generator/locales/en.yml b/src/tools/meta-tag-generator/locales/en.yml new file mode 100644 index 000000000..532d8a6f9 --- /dev/null +++ b/src/tools/meta-tag-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + og-meta-generator: + title: Open graph meta generator + description: Generate open-graph and socials html meta tags for your website. diff --git a/src/tools/mime-types/index.ts b/src/tools/mime-types/index.ts index 25e564049..da6ba0c4a 100644 --- a/src/tools/mime-types/index.ts +++ b/src/tools/mime-types/index.ts @@ -1,10 +1,11 @@ import { World } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Mime types', + name: translate('tools.mime-types.title'), path: '/mime-types', - description: 'Convert mime types to extensions and vice-versa.', + description: translate('tools.mime-types.description'), keywords: ['mime', 'types', 'extension', 'content', 'type'], component: () => import('./mime-types.vue'), icon: World, diff --git a/src/tools/mime-types/locales/en.yml b/src/tools/mime-types/locales/en.yml new file mode 100644 index 000000000..357af31e7 --- /dev/null +++ b/src/tools/mime-types/locales/en.yml @@ -0,0 +1,4 @@ +tools: + mime-types: + title: Mime types + description: Convert mime types to extensions and vice-versa. diff --git a/src/tools/numeronym-generator/index.ts b/src/tools/numeronym-generator/index.ts index 196869220..3d8472aef 100644 --- a/src/tools/numeronym-generator/index.ts +++ b/src/tools/numeronym-generator/index.ts @@ -1,10 +1,11 @@ import { defineTool } from '../tool'; import n7mIcon from './n7m-icon.svg?component'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Numeronym generator', + name: translate('tools.numeronym-generator.title'), path: '/numeronym-generator', - description: 'A numeronym is a word where a number is used to form an abbreviation. For example, "i18n" is a numeronym of "internationalization" where 18 stands for the number of letters between the first i and the last n in the word.', + description: translate('tools.numeronym-generator.description'), keywords: ['numeronym', 'generator', 'abbreviation', 'i18n', 'a11y', 'l10n'], component: () => import('./numeronym-generator.vue'), icon: n7mIcon, diff --git a/src/tools/numeronym-generator/locales/en.yml b/src/tools/numeronym-generator/locales/en.yml new file mode 100644 index 000000000..ee1a32782 --- /dev/null +++ b/src/tools/numeronym-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + numeronym-generator: + title: Numeronym generator + description: A numeronym is a word where a number is used to form an abbreviation. For example, "i18n" is a numeronym of "internationalization" where 18 stands for the number of letters between the first i and the last n in the word. diff --git a/src/tools/otp-code-generator-and-validator/index.ts b/src/tools/otp-code-generator-and-validator/index.ts index 914368b67..42ecc9fc2 100644 --- a/src/tools/otp-code-generator-and-validator/index.ts +++ b/src/tools/otp-code-generator-and-validator/index.ts @@ -1,10 +1,11 @@ import { DeviceMobile } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'OTP code generator', + name: translate('tools.otp-generator.title'), path: '/otp-generator', - description: 'Generate and validate time-based OTP (one time password) for multi-factor authentication.', + description: translate('tools.otp-generator.description'), keywords: [ 'otp', 'code', diff --git a/src/tools/otp-code-generator-and-validator/locales/en.yml b/src/tools/otp-code-generator-and-validator/locales/en.yml new file mode 100644 index 000000000..e6db4d490 --- /dev/null +++ b/src/tools/otp-code-generator-and-validator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + otp-generator: + title: OTP code generator + description: Generate and validate time-based OTP (one time password) for multi-factor authentication. diff --git a/src/tools/password-strength-analyser/index.ts b/src/tools/password-strength-analyser/index.ts index 7b86bdd54..f2e89ef9a 100644 --- a/src/tools/password-strength-analyser/index.ts +++ b/src/tools/password-strength-analyser/index.ts @@ -1,10 +1,11 @@ import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; import PasswordIcon from '~icons/mdi/form-textbox-password'; export const tool = defineTool({ - name: 'Password strength analyser', + name: translate('tools.password-strength-analyser.title'), path: '/password-strength-analyser', - description: 'Discover the strength of your password with this client side only password strength analyser and crack time estimation tool.', + description: translate('tools.password-strength-analyser.description'), keywords: ['password', 'strength', 'analyser', 'and', 'crack', 'time', 'estimation', 'brute', 'force', 'attack', 'entropy', 'cracking', 'hash', 'hashing', 'algorithm', 'algorithms', 'md5', 'sha1', 'sha256', 'sha512', 'bcrypt', 'scrypt', 'argon2', 'argon2id', 'argon2i', 'argon2d'], component: () => import('./password-strength-analyser.vue'), icon: PasswordIcon, diff --git a/src/tools/password-strength-analyser/locales/en.yml b/src/tools/password-strength-analyser/locales/en.yml new file mode 100644 index 000000000..306bf1823 --- /dev/null +++ b/src/tools/password-strength-analyser/locales/en.yml @@ -0,0 +1,4 @@ +tools: + password-strength-analyser: + title: Password strength analyser + description: Discover the strength of your password with this client side only password strength analyser and crack time estimation tool. diff --git a/src/tools/pdf-signature-checker/index.ts b/src/tools/pdf-signature-checker/index.ts index 545639797..8b5d356b6 100644 --- a/src/tools/pdf-signature-checker/index.ts +++ b/src/tools/pdf-signature-checker/index.ts @@ -1,10 +1,11 @@ import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; import FileCertIcon from '~icons/mdi/file-certificate-outline'; export const tool = defineTool({ - name: 'PDF signature checker', + name: translate('tools.pdf-signature-checker.title'), path: '/pdf-signature-checker', - description: 'Verify the signatures of a PDF file. A signed PDF file contains one or more signatures that may be used to determine whether the contents of the file have been altered since the file was signed.', + description: translate('tools.pdf-signature-checker.description'), keywords: ['pdf', 'signature', 'checker', 'verify', 'validate', 'sign'], component: () => import('./pdf-signature-checker.vue'), icon: FileCertIcon, diff --git a/src/tools/pdf-signature-checker/locales/en.yml b/src/tools/pdf-signature-checker/locales/en.yml new file mode 100644 index 000000000..e856db118 --- /dev/null +++ b/src/tools/pdf-signature-checker/locales/en.yml @@ -0,0 +1,4 @@ +tools: + pdf-signature-checker: + title: PDF signature checker + description: Verify the signatures of a PDF file. A signed PDF file contains one or more signatures that may be used to determine whether the contents of the file have been altered since the file was signed. diff --git a/src/tools/percentage-calculator/index.ts b/src/tools/percentage-calculator/index.ts index 736f57069..33c5b2f12 100644 --- a/src/tools/percentage-calculator/index.ts +++ b/src/tools/percentage-calculator/index.ts @@ -1,10 +1,11 @@ import { Percentage } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Percentage calculator', + name: translate('tools.percentage-calculator.title'), path: '/percentage-calculator', - description: 'Easily calculate percentages from a value to another value, or from a percentage to a value.', + description: translate('tools.percentage-calculator.description'), keywords: ['percentage', 'calculator', 'calculate', 'value', 'number', '%'], component: () => import('./percentage-calculator.vue'), icon: Percentage, diff --git a/src/tools/percentage-calculator/locales/en.yml b/src/tools/percentage-calculator/locales/en.yml new file mode 100644 index 000000000..e46e69f68 --- /dev/null +++ b/src/tools/percentage-calculator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + percentage-calculator: + title: Percentage calculator + description: Easily calculate percentages from a value to another value, or from a percentage to a value. diff --git a/src/tools/phone-parser-and-formatter/index.ts b/src/tools/phone-parser-and-formatter/index.ts index 5b19ae61a..094b21e87 100644 --- a/src/tools/phone-parser-and-formatter/index.ts +++ b/src/tools/phone-parser-and-formatter/index.ts @@ -1,11 +1,11 @@ import { Phone } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Phone parser and formatter', + name: translate('tools.phone-parser-and-formatter.title'), path: '/phone-parser-and-formatter', - description: - 'Parse, validate and format phone numbers. Get information about the phone number, like the country code, type, etc.', + description: translate('tools.phone-parser-and-formatter.description'), keywords: [ 'phone', 'parser', diff --git a/src/tools/phone-parser-and-formatter/locales/en.yml b/src/tools/phone-parser-and-formatter/locales/en.yml new file mode 100644 index 000000000..c45b1859a --- /dev/null +++ b/src/tools/phone-parser-and-formatter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + phone-parser-and-formatter: + title: Phone parser and formatter + description: Parse, validate and format phone numbers. Get information about the phone number, like the country code, type, etc. diff --git a/src/tools/qr-code-generator/index.ts b/src/tools/qr-code-generator/index.ts index 4c2f86bba..b97b4cbcb 100644 --- a/src/tools/qr-code-generator/index.ts +++ b/src/tools/qr-code-generator/index.ts @@ -1,11 +1,11 @@ import { Qrcode } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'QR Code generator', + name: translate('tools.qrcode-generator.title'), path: '/qrcode-generator', - description: - 'Generate and download QR-code for an url or just a text and customize the background and foreground colors.', + description: translate('tools.qrcode-generator.description'), keywords: ['qr', 'code', 'generator', 'square', 'color', 'link', 'low', 'medium', 'quartile', 'high', 'transparent'], component: () => import('./qr-code-generator.vue'), icon: Qrcode, diff --git a/src/tools/qr-code-generator/locales/en.yml b/src/tools/qr-code-generator/locales/en.yml new file mode 100644 index 000000000..aefd6b0ab --- /dev/null +++ b/src/tools/qr-code-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + qrcode-generator: + title: QR Code generator + description: Generate and download QR-code for an url or just a text and customize the background and foreground colors. diff --git a/src/tools/random-port-generator/index.ts b/src/tools/random-port-generator/index.ts index febdc2a4a..e300b8f0d 100644 --- a/src/tools/random-port-generator/index.ts +++ b/src/tools/random-port-generator/index.ts @@ -1,10 +1,11 @@ import { Server } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Random port generator', + name: translate('tools.random-port-generator.title'), path: '/random-port-generator', - description: 'Generate random port numbers outside of the range of "known" ports (0-1023).', + description: translate('tools.random-port-generator.description'), keywords: ['system', 'port', 'lan', 'generator', 'random', 'development', 'computer'], component: () => import('./random-port-generator.vue'), icon: Server, diff --git a/src/tools/random-port-generator/locales/en.yml b/src/tools/random-port-generator/locales/en.yml new file mode 100644 index 000000000..7cf571420 --- /dev/null +++ b/src/tools/random-port-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + random-port-generator: + title: Random port generator + description: Generate random port numbers outside of the range of "known" ports (0-1023). diff --git a/src/tools/roman-numeral-converter/index.ts b/src/tools/roman-numeral-converter/index.ts index f2dbdc0a4..6929747f1 100644 --- a/src/tools/roman-numeral-converter/index.ts +++ b/src/tools/roman-numeral-converter/index.ts @@ -1,10 +1,11 @@ import { LetterX } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Roman numeral converter', + name: translate('tools.roman-numeral-converter.title'), path: '/roman-numeral-converter', - description: 'Convert Roman numerals to numbers and convert numbers to Roman numerals.', + description: translate('tools.roman-numeral-converter.description'), keywords: ['roman', 'arabic', 'converter', 'X', 'I', 'V', 'L', 'C', 'D', 'M'], component: () => import('./roman-numeral-converter.vue'), icon: LetterX, diff --git a/src/tools/roman-numeral-converter/locales/en.yml b/src/tools/roman-numeral-converter/locales/en.yml new file mode 100644 index 000000000..85c7bed94 --- /dev/null +++ b/src/tools/roman-numeral-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + roman-numeral-converter: + title: Roman numeral converter + description: Convert Roman numerals to numbers and convert numbers to Roman numerals. diff --git a/src/tools/rsa-key-pair-generator/index.ts b/src/tools/rsa-key-pair-generator/index.ts index c8ab4cdbe..3d034e5ba 100644 --- a/src/tools/rsa-key-pair-generator/index.ts +++ b/src/tools/rsa-key-pair-generator/index.ts @@ -1,10 +1,11 @@ import { Certificate } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'RSA key pair generator', + name: translate('tools.rsa-key-pair-generator.title'), path: '/rsa-key-pair-generator', - description: 'Generate new random RSA private and public key pem certificates.', + description: translate('tools.rsa-key-pair-generator.description'), keywords: ['rsa', 'key', 'pair', 'generator', 'public', 'private', 'secret', 'ssh', 'pem'], component: () => import('./rsa-key-pair-generator.vue'), icon: Certificate, diff --git a/src/tools/rsa-key-pair-generator/locales/en.yml b/src/tools/rsa-key-pair-generator/locales/en.yml new file mode 100644 index 000000000..a6c7056ac --- /dev/null +++ b/src/tools/rsa-key-pair-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + rsa-key-pair-generator: + title: RSA key pair generator + description: Generate new random RSA private and public key pem certificates. diff --git a/src/tools/slugify-string/index.ts b/src/tools/slugify-string/index.ts index 8dabcdb14..1f1bfcf3c 100644 --- a/src/tools/slugify-string/index.ts +++ b/src/tools/slugify-string/index.ts @@ -1,10 +1,11 @@ import { AbcRound } from '@vicons/material'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Slugify string', + name: translate('tools.slugify-string.title'), path: '/slugify-string', - description: 'Make a string url, filename and id safe.', + description: translate('tools.slugify-string.description'), keywords: ['slugify', 'string', 'escape', 'emoji', 'special', 'character', 'space', 'trim'], component: () => import('./slugify-string.vue'), icon: AbcRound, diff --git a/src/tools/slugify-string/locales/en.yml b/src/tools/slugify-string/locales/en.yml new file mode 100644 index 000000000..7161b20df --- /dev/null +++ b/src/tools/slugify-string/locales/en.yml @@ -0,0 +1,4 @@ +tools: + slugify-string: + title: Slugify string + description: Make a string url, filename and id safe. diff --git a/src/tools/sql-prettify/index.ts b/src/tools/sql-prettify/index.ts index 426845fb7..96bff0fe8 100644 --- a/src/tools/sql-prettify/index.ts +++ b/src/tools/sql-prettify/index.ts @@ -1,10 +1,11 @@ import { Database } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'SQL prettify and format', + name: translate('tools.sql-prettify.title'), path: '/sql-prettify', - description: 'Format and prettify your SQL queries online (it supports various SQL dialects).', + description: translate('tools.sql-prettify.description'), keywords: [ 'sql', 'prettify', diff --git a/src/tools/sql-prettify/locales/en.yml b/src/tools/sql-prettify/locales/en.yml new file mode 100644 index 000000000..708474049 --- /dev/null +++ b/src/tools/sql-prettify/locales/en.yml @@ -0,0 +1,4 @@ +tools: + sql-prettify: + title: SQL prettify and format + description: Format and prettify your SQL queries online (it supports various SQL dialects). diff --git a/src/tools/string-obfuscator/index.ts b/src/tools/string-obfuscator/index.ts index d5b453187..67f1995c9 100644 --- a/src/tools/string-obfuscator/index.ts +++ b/src/tools/string-obfuscator/index.ts @@ -1,10 +1,11 @@ import { EyeOff } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'String obfuscator', + name: translate('tools.string-obfuscator.title'), path: '/string-obfuscator', - description: 'Obfuscate a string (like a secret, an IBAN, or a token) to make it shareable and identifiable without revealing its content.', + description: translate('tools.string-obfuscator.description'), keywords: ['string', 'obfuscator', 'secret', 'token', 'hide', 'obscure', 'mask', 'masking'], component: () => import('./string-obfuscator.vue'), icon: EyeOff, diff --git a/src/tools/string-obfuscator/locales/en.yml b/src/tools/string-obfuscator/locales/en.yml new file mode 100644 index 000000000..d26e0840f --- /dev/null +++ b/src/tools/string-obfuscator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + string-obfuscator: + title: String obfuscator + description: Obfuscate a string (like a secret, an IBAN, or a token) to make it shareable and identifiable without revealing its content. diff --git a/src/tools/svg-placeholder-generator/index.ts b/src/tools/svg-placeholder-generator/index.ts index d676294c1..37a709ebd 100644 --- a/src/tools/svg-placeholder-generator/index.ts +++ b/src/tools/svg-placeholder-generator/index.ts @@ -1,10 +1,11 @@ import { ImageOutlined } from '@vicons/material'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'SVG placeholder generator', + name: translate('tools.svg-placeholder-generator.title'), path: '/svg-placeholder-generator', - description: 'Generate svg images to use as placeholder in your applications.', + description: translate('tools.svg-placeholder-generator.description'), keywords: ['svg', 'placeholder', 'generator', 'image', 'size', 'mockup'], component: () => import('./svg-placeholder-generator.vue'), icon: ImageOutlined, diff --git a/src/tools/svg-placeholder-generator/locales/en.yml b/src/tools/svg-placeholder-generator/locales/en.yml new file mode 100644 index 000000000..7884cb615 --- /dev/null +++ b/src/tools/svg-placeholder-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + svg-placeholder-generator: + title: SVG placeholder generator + description: Generate svg images to use as placeholder in your applications. diff --git a/src/tools/temperature-converter/index.ts b/src/tools/temperature-converter/index.ts index 60192b414..3f526ee2c 100644 --- a/src/tools/temperature-converter/index.ts +++ b/src/tools/temperature-converter/index.ts @@ -1,11 +1,11 @@ import { Temperature } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Temperature converter', + name: translate('tools.temperature-converter.title'), path: '/temperature-converter', - description: - 'Temperature degrees conversions for Kelvin, Celsius, Fahrenheit, Rankine, Delisle, Newton, Réaumur and Rømer.', + description: translate('tools.temperature-converter.description'), keywords: [ 'temperature', 'converter', diff --git a/src/tools/temperature-converter/locales/en.yml b/src/tools/temperature-converter/locales/en.yml new file mode 100644 index 000000000..8b3ae991e --- /dev/null +++ b/src/tools/temperature-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + temperature-converter: + title: Temperature converter + description: Temperature degrees conversions for Kelvin, Celsius, Fahrenheit, Rankine, Delisle, Newton, Réaumur and Rømer. diff --git a/src/tools/text-diff/index.ts b/src/tools/text-diff/index.ts index 992acbaec..de124ee65 100644 --- a/src/tools/text-diff/index.ts +++ b/src/tools/text-diff/index.ts @@ -1,10 +1,11 @@ import { FileDiff } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Text diff', + name: translate('tools.text-diff.title'), path: '/text-diff', - description: 'Compare two texts and see the differences between them.', + description: translate('tools.text-diff.description'), keywords: ['text', 'diff', 'compare', 'string', 'text diff', 'code'], component: () => import('./text-diff.vue'), icon: FileDiff, diff --git a/src/tools/text-diff/locales/en.yml b/src/tools/text-diff/locales/en.yml new file mode 100644 index 000000000..3fe957322 --- /dev/null +++ b/src/tools/text-diff/locales/en.yml @@ -0,0 +1,4 @@ +tools: + text-diff: + title: Text diff + description: Compare two texts and see the differences between them. diff --git a/src/tools/text-statistics/index.ts b/src/tools/text-statistics/index.ts index 0e54b71b0..239378399 100644 --- a/src/tools/text-statistics/index.ts +++ b/src/tools/text-statistics/index.ts @@ -1,10 +1,11 @@ import { FileText } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Text statistics', + name: translate('tools.text-statistics.title'), path: '/text-statistics', - description: 'Get information about a text, the amount of characters, the amount of words, it\'s size, ...', + description: translate('tools.text-statistics.description'), keywords: ['text', 'statistics', 'length', 'characters', 'count', 'size', 'bytes'], component: () => import('./text-statistics.vue'), icon: FileText, diff --git a/src/tools/text-statistics/locales/en.yml b/src/tools/text-statistics/locales/en.yml new file mode 100644 index 000000000..cc9d3e58f --- /dev/null +++ b/src/tools/text-statistics/locales/en.yml @@ -0,0 +1,4 @@ +tools: + text-statistics: + title: Text statistics + description: Get information about a text, the amount of characters, the amount of words, it\'s size, ... diff --git a/src/tools/text-to-binary/index.ts b/src/tools/text-to-binary/index.ts index 40ac93d63..ce0f87ea5 100644 --- a/src/tools/text-to-binary/index.ts +++ b/src/tools/text-to-binary/index.ts @@ -1,10 +1,11 @@ import { Binary } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Text to ASCII binary', + name: translate('tools.text-to-binary.title'), path: '/text-to-binary', - description: 'Convert text to its ASCII binary representation and vice versa.', + description: translate('tools.text-to-binary.description'), keywords: ['text', 'to', 'binary', 'converter', 'encode', 'decode', 'ascii'], component: () => import('./text-to-binary.vue'), icon: Binary, diff --git a/src/tools/text-to-binary/locales/en.yml b/src/tools/text-to-binary/locales/en.yml new file mode 100644 index 000000000..7650b945a --- /dev/null +++ b/src/tools/text-to-binary/locales/en.yml @@ -0,0 +1,4 @@ +tools: + text-to-binary: + title: Text to ASCII binary + description: Convert text to its ASCII binary representation and vice versa. diff --git a/src/tools/text-to-nato-alphabet/index.ts b/src/tools/text-to-nato-alphabet/index.ts index 100476a0e..43b72fb49 100644 --- a/src/tools/text-to-nato-alphabet/index.ts +++ b/src/tools/text-to-nato-alphabet/index.ts @@ -1,10 +1,11 @@ import { Speakerphone } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Text to NATO alphabet', + name: translate('tools.text-to-nato-alphabet.title'), path: '/text-to-nato-alphabet', - description: 'Transform text into NATO phonetic alphabet for oral transmission.', + description: translate('tools.text-to-nato-alphabet.description'), keywords: ['string', 'nato', 'alphabet', 'phonetic', 'oral', 'transmission'], component: () => import('./text-to-nato-alphabet.vue'), icon: Speakerphone, diff --git a/src/tools/text-to-nato-alphabet/locales/en.yml b/src/tools/text-to-nato-alphabet/locales/en.yml new file mode 100644 index 000000000..90ee1642b --- /dev/null +++ b/src/tools/text-to-nato-alphabet/locales/en.yml @@ -0,0 +1,4 @@ +tools: + text-to-nato-alphabet: + title: Text to NATO alphabet + description: Transform text into NATO phonetic alphabet for oral transmission. diff --git a/src/tools/text-to-unicode/index.ts b/src/tools/text-to-unicode/index.ts index 885cfc995..80396026b 100644 --- a/src/tools/text-to-unicode/index.ts +++ b/src/tools/text-to-unicode/index.ts @@ -1,10 +1,11 @@ import { TextWrap } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Text to Unicode', + name: translate('tools.text-to-unicode.title'), path: '/text-to-unicode', - description: 'Parse and convert text to unicode and vice-versa', + description: translate('tools.text-to-unicode.description'), keywords: ['text', 'to', 'unicode'], component: () => import('./text-to-unicode.vue'), icon: TextWrap, diff --git a/src/tools/text-to-unicode/locales/en.yml b/src/tools/text-to-unicode/locales/en.yml new file mode 100644 index 000000000..a5a90494c --- /dev/null +++ b/src/tools/text-to-unicode/locales/en.yml @@ -0,0 +1,4 @@ +tools: + text-to-unicode: + title: Text to Unicode + description: Parse and convert text to unicode and vice-versa diff --git a/src/tools/toml-to-json/index.ts b/src/tools/toml-to-json/index.ts index 653b432f2..77a1b26e5 100644 --- a/src/tools/toml-to-json/index.ts +++ b/src/tools/toml-to-json/index.ts @@ -1,11 +1,12 @@ import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; import BracketIcon from '~icons/mdi/code-brackets'; export const tool = defineTool({ - name: 'TOML to JSON', + name: translate('tools.toml-to-json.title'), path: '/toml-to-json', - description: 'Parse and convert TOML to JSON.', + description: translate('tools.toml-to-json.description'), keywords: ['toml', 'json', 'convert', 'online', 'transform', 'parser'], component: () => import('./toml-to-json.vue'), icon: BracketIcon, diff --git a/src/tools/toml-to-json/locales/en.yml b/src/tools/toml-to-json/locales/en.yml new file mode 100644 index 000000000..87f635dc5 --- /dev/null +++ b/src/tools/toml-to-json/locales/en.yml @@ -0,0 +1,4 @@ +tools: + toml-to-json: + title: TOML to JSON + description: Parse and convert TOML to JSON. diff --git a/src/tools/toml-to-yaml/index.ts b/src/tools/toml-to-yaml/index.ts index 69f9459c3..2ee0958b0 100644 --- a/src/tools/toml-to-yaml/index.ts +++ b/src/tools/toml-to-yaml/index.ts @@ -1,10 +1,11 @@ import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; import BracketIcon from '~icons/mdi/code-brackets'; export const tool = defineTool({ - name: 'TOML to YAML', + name: translate('tools.toml-to-yaml.title'), path: '/toml-to-yaml', - description: 'Parse and convert TOML to YAML.', + description: translate('tools.toml-to-yaml.description'), keywords: ['toml', 'yaml', 'convert', 'online', 'transform', 'parse'], component: () => import('./toml-to-yaml.vue'), icon: BracketIcon, diff --git a/src/tools/toml-to-yaml/locales/en.yml b/src/tools/toml-to-yaml/locales/en.yml new file mode 100644 index 000000000..f66679b3c --- /dev/null +++ b/src/tools/toml-to-yaml/locales/en.yml @@ -0,0 +1,4 @@ +tools: + toml-to-yaml: + title: TOML to YAML + description: Parse and convert TOML to YAML. diff --git a/src/tools/ulid-generator/index.ts b/src/tools/ulid-generator/index.ts index 6a5408dda..c12679a75 100644 --- a/src/tools/ulid-generator/index.ts +++ b/src/tools/ulid-generator/index.ts @@ -1,10 +1,11 @@ import { SortDescendingNumbers } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'ULID generator', + name: translate('tools.ulid-generator.title'), path: '/ulid-generator', - description: 'Generate random Universally Unique Lexicographically Sortable Identifier (ULID).', + description: translate('tools.ulid-generator.description'), keywords: ['ulid', 'generator', 'random', 'id', 'alphanumeric', 'identity', 'token', 'string', 'identifier', 'unique'], component: () => import('./ulid-generator.vue'), icon: SortDescendingNumbers, diff --git a/src/tools/ulid-generator/locales/en.yml b/src/tools/ulid-generator/locales/en.yml new file mode 100644 index 000000000..182998e65 --- /dev/null +++ b/src/tools/ulid-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + ulid-generator: + title: ULID generator + description: Generate random Universally Unique Lexicographically Sortable Identifier (ULID). diff --git a/src/tools/url-encoder/index.ts b/src/tools/url-encoder/index.ts index bd19b8908..ab85118c8 100644 --- a/src/tools/url-encoder/index.ts +++ b/src/tools/url-encoder/index.ts @@ -1,10 +1,11 @@ import { Link } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Encode/decode url formatted strings', + name: translate('tools.url-encoder.title'), path: '/url-encoder', - description: 'Encode to url-encoded format (also known as "percent-encoded") or decode from it.', + description: translate('tools.url-encoder.description'), keywords: ['url', 'encode', 'decode', 'percent', '%20', 'format'], component: () => import('./url-encoder.vue'), icon: Link, diff --git a/src/tools/url-encoder/locales/en.yml b/src/tools/url-encoder/locales/en.yml new file mode 100644 index 000000000..bbeca37e0 --- /dev/null +++ b/src/tools/url-encoder/locales/en.yml @@ -0,0 +1,4 @@ +tools: + url-encoder: + title: Encode/decode url formatted strings + description: Encode to url-encoded format (also known as "percent-encoded") or decode from it. diff --git a/src/tools/url-parser/index.ts b/src/tools/url-parser/index.ts index d1c8dfe8d..77976a24b 100644 --- a/src/tools/url-parser/index.ts +++ b/src/tools/url-parser/index.ts @@ -1,11 +1,11 @@ import { Unlink } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'Url parser', + name: translate('tools.url-parser.title'), path: '/url-parser', - description: - 'Parse an url string to get all the different parts (protocol, origin, params, port, username-password, ...)', + description: translate('tools.url-parser.description'), keywords: ['url', 'parser', 'protocol', 'origin', 'params', 'port', 'username', 'password', 'href'], component: () => import('./url-parser.vue'), icon: Unlink, diff --git a/src/tools/url-parser/locales/en.yml b/src/tools/url-parser/locales/en.yml new file mode 100644 index 000000000..1ebc0e9cd --- /dev/null +++ b/src/tools/url-parser/locales/en.yml @@ -0,0 +1,4 @@ +tools: + url-parser: + title: Url parser + description: Parse an url string to get all the different parts (protocol, origin, params, port, username-password, ...) diff --git a/src/tools/user-agent-parser/index.ts b/src/tools/user-agent-parser/index.ts index 1ae05d146..4d026145d 100644 --- a/src/tools/user-agent-parser/index.ts +++ b/src/tools/user-agent-parser/index.ts @@ -1,10 +1,11 @@ import { Browser } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'User-agent parser', + name: translate('tools.user-agent-parser.title'), path: '/user-agent-parser', - description: 'Detect and parse Browser, Engine, OS, CPU, and Device type/model from an user-agent string.', + description: translate('tools.user-agent-parser.description'), keywords: ['user', 'agent', 'parser', 'browser', 'engine', 'os', 'cpu', 'device', 'user-agent', 'client'], component: () => import('./user-agent-parser.vue'), icon: Browser, diff --git a/src/tools/user-agent-parser/locales/en.yml b/src/tools/user-agent-parser/locales/en.yml new file mode 100644 index 000000000..8116a38c1 --- /dev/null +++ b/src/tools/user-agent-parser/locales/en.yml @@ -0,0 +1,4 @@ +tools: + user-agent-parser: + title: User-agent parser + description: Detect and parse Browser, Engine, OS, CPU, and Device type/model from an user-agent string. diff --git a/src/tools/uuid-generator/index.ts b/src/tools/uuid-generator/index.ts index 9289b9028..54ec479f6 100644 --- a/src/tools/uuid-generator/index.ts +++ b/src/tools/uuid-generator/index.ts @@ -1,11 +1,11 @@ import { Fingerprint } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'UUIDs generator', + name: translate('tools.uuid-generator.title'), path: '/uuid-generator', - description: - 'A Universally Unique Identifier (UUID) is a 128-bit number used to identify information in computer systems. The number of possible UUIDs is 16^32, which is 2^128 or about 3.4x10^38 (which is a lot!).', + description: translate('tools.uuid-generator.description'), keywords: ['uuid', 'v4', 'random', 'id', 'alphanumeric', 'identity', 'token', 'string', 'identifier', 'unique', 'v1', 'v3', 'v5', 'nil'], component: () => import('./uuid-generator.vue'), icon: Fingerprint, diff --git a/src/tools/uuid-generator/locales/en.yml b/src/tools/uuid-generator/locales/en.yml new file mode 100644 index 000000000..b71a71b2e --- /dev/null +++ b/src/tools/uuid-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + uuid-generator: + title: UUIDs generator + description: A Universally Unique Identifier (UUID) is a 128-bit number used to identify information in computer systems. The number of possible UUIDs is 16^32, which is 2^128 or about 3.4x10^38 (which is a lot!). diff --git a/src/tools/wifi-qr-code-generator/index.ts b/src/tools/wifi-qr-code-generator/index.ts index ad0135c36..b59b95dfb 100644 --- a/src/tools/wifi-qr-code-generator/index.ts +++ b/src/tools/wifi-qr-code-generator/index.ts @@ -1,11 +1,11 @@ import { Qrcode } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'WiFi QR Code generator', + name: translate('tools.wifi-qrcode-generator.title'), path: '/wifi-qrcode-generator', - description: - 'Generate and download QR-codes for quick connections to WiFi networks.', + description: translate('tools.wifi-qrcode-generator.description'), keywords: ['qr', 'code', 'generator', 'square', 'color', 'link', 'low', 'medium', 'quartile', 'high', 'transparent', 'wifi'], component: () => import('./wifi-qr-code-generator.vue'), icon: Qrcode, diff --git a/src/tools/wifi-qr-code-generator/locales/en.yml b/src/tools/wifi-qr-code-generator/locales/en.yml new file mode 100644 index 000000000..7355c85da --- /dev/null +++ b/src/tools/wifi-qr-code-generator/locales/en.yml @@ -0,0 +1,4 @@ +tools: + wifi-qrcode-generator: + title: WiFi QR Code generator + description: Generate and download QR-codes for quick connections to WiFi networks. diff --git a/src/tools/xml-formatter/index.ts b/src/tools/xml-formatter/index.ts index fe28d3ae1..7aa096da7 100644 --- a/src/tools/xml-formatter/index.ts +++ b/src/tools/xml-formatter/index.ts @@ -1,10 +1,11 @@ import { Code } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'XML formatter', + name: translate('tools.xml-formatter.title'), path: '/xml-formatter', - description: 'Prettify your XML string to a human friendly readable format.', + description: translate('tools.xml-formatter.description'), keywords: ['xml', 'prettify', 'format'], component: () => import('./xml-formatter.vue'), icon: Code, diff --git a/src/tools/xml-formatter/locales/en.yml b/src/tools/xml-formatter/locales/en.yml new file mode 100644 index 000000000..a217f66e5 --- /dev/null +++ b/src/tools/xml-formatter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + xml-formatter: + title: XML formatter + description: Prettify your XML string to a human friendly readable format. diff --git a/src/tools/yaml-to-json-converter/index.ts b/src/tools/yaml-to-json-converter/index.ts index 724ecdb7b..60110f096 100644 --- a/src/tools/yaml-to-json-converter/index.ts +++ b/src/tools/yaml-to-json-converter/index.ts @@ -1,10 +1,11 @@ import { AlignJustified } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'YAML to JSON converter', + name: translate('tools.yaml-to-json-converter.title'), path: '/yaml-to-json-converter', - description: 'Simply convert YAML to JSON with this live online converter.', + description: translate('tools.yaml-to-json-converter.description'), keywords: ['yaml', 'to', 'json'], component: () => import('./yaml-to-json.vue'), icon: AlignJustified, diff --git a/src/tools/yaml-to-json-converter/locales/en.yml b/src/tools/yaml-to-json-converter/locales/en.yml new file mode 100644 index 000000000..2a42303f1 --- /dev/null +++ b/src/tools/yaml-to-json-converter/locales/en.yml @@ -0,0 +1,4 @@ +tools: + yaml-to-json-converter: + title: YAML to JSON converter + description: Simply convert YAML to JSON with this live online converter. diff --git a/src/tools/yaml-to-toml/index.ts b/src/tools/yaml-to-toml/index.ts index b6a7077f6..d788887e7 100644 --- a/src/tools/yaml-to-toml/index.ts +++ b/src/tools/yaml-to-toml/index.ts @@ -1,10 +1,11 @@ import { AlignJustified } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'YAML to TOML', + name: translate('tools.yaml-to-toml.title'), path: '/yaml-to-toml', - description: 'Parse and convert YAML to TOML.', + description: translate('tools.yaml-to-toml.description'), keywords: ['yaml', 'to', 'toml', 'convert', 'transform'], component: () => import('./yaml-to-toml.vue'), icon: AlignJustified, diff --git a/src/tools/yaml-to-toml/locales/en.yml b/src/tools/yaml-to-toml/locales/en.yml new file mode 100644 index 000000000..32fd92be4 --- /dev/null +++ b/src/tools/yaml-to-toml/locales/en.yml @@ -0,0 +1,4 @@ +tools: + yaml-to-toml: + title: YAML to TOML + description: Parse and convert YAML to TOML. diff --git a/src/tools/yaml-viewer/index.ts b/src/tools/yaml-viewer/index.ts index 4ba6ced36..f30432700 100644 --- a/src/tools/yaml-viewer/index.ts +++ b/src/tools/yaml-viewer/index.ts @@ -1,10 +1,11 @@ import { AlignJustified } from '@vicons/tabler'; import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; export const tool = defineTool({ - name: 'YAML prettify and format', + name: translate('tools.yaml-prettify.title'), path: '/yaml-prettify', - description: 'Prettify your YAML string to a human friendly readable format.', + description: translate('tools.yaml-prettify.description'), keywords: ['yaml', 'viewer', 'prettify', 'format'], component: () => import('./yaml-viewer.vue'), icon: AlignJustified, diff --git a/src/tools/yaml-viewer/locales/en.yml b/src/tools/yaml-viewer/locales/en.yml new file mode 100644 index 000000000..e03db0909 --- /dev/null +++ b/src/tools/yaml-viewer/locales/en.yml @@ -0,0 +1,4 @@ +tools: + yaml-prettify: + title: YAML prettify and format + description: Prettify your YAML string to a human friendly readable format. From 1334bff30a8ce3fbd269438de774b5569dbee6ef Mon Sep 17 00:00:00 2001 From: hieudt-2054 <55786352+hieudt-2054@users.noreply.github.com> Date: Thu, 1 Feb 2024 20:47:09 +0700 Subject: [PATCH 10/42] feat(i18n): added vietnamese language (#859) --- locales/vi.yml | 71 +++++++++++++++++++ .../i18n/components/locale-selector.vue | 1 + src/tools/text-to-unicode/text-to-unicode.vue | 4 +- 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 locales/vi.yml diff --git a/locales/vi.yml b/locales/vi.yml new file mode 100644 index 000000000..d3569353d --- /dev/null +++ b/locales/vi.yml @@ -0,0 +1,71 @@ +home: + categories: + newestTools: Công cụ mới nhất + favoriteTools: 'Công cụ yêu thích của bạn' + allTools: 'Tất cả công cụ' + subtitle: 'Công cụ tiện ích cho nhà phát triển' + toggleMenu: 'Chuyển đổi menu' + home: Trang chủ + uiLib: 'Thư viện UI' + support: 'Hỗ trợ phát triển IT Tools' + buyMeACoffee: 'Ủng hộ tác giả' + follow: + title: 'Bạn thích IT-tools?' + p1: 'Hãy cho chúng tôi một ngôi sao trên' + githubRepository: 'Kho GitHub IT-Tools' + p2: 'hoặc theo dõi chúng tôi trên' + twitterAccount: 'Tài khoản Twitter IT-Tools' + thankYou: 'Cảm ơn bạn!' + nav: + github: 'Kho GitHub' + githubRepository: 'Kho GitHub IT-Tools' + twitter: 'Tài khoản Twitter' + twitterAccount: 'Tài khoản Twitter IT Tools' + about: 'Về IT-Tools' + aboutLabel: 'Giới thiệu' + darkMode: 'Chế độ tối' + lightMode: 'Chế độ sáng' + mode: 'Chuyển đổi chế độ tối/sáng' +about: + content: > + # Về IT-Tools + + Website tuyệt vời này, được tạo ra bằng ❤ bởi [Corentin Thomasset](https://github.com/CorentinTh), tổng hợp các công cụ hữu ích cho nhà phát triển và những người làm việc trong lĩnh vực IT. Nếu bạn thấy nó hữu ích, xin đừng ngần ngại chia sẻ cho những người mà bạn nghĩ sẽ thấy nó hữu ích và đừng quên đánh dấu nó trong thanh lối tắt của bạn! + + IT Tools là mã nguồn mở (dưới giấy phép MIT) và miễn phí, và sẽ luôn như vậy, nhưng tôi phải trả tiền để lưu trữ và gia hạn tên miền. Nếu bạn muốn hỗ trợ công việc của tôi, và khích lệ tôi thêm nhiều công cụ hơn, hãy xem xét hỗ trợ bằng cách [tài trợ cho tôi](https://www.buymeacoffee.com/cthmsst). + + ## Công nghệ + + IT Tools được tạo ra bằng Vue.js (Vue 3) với thư viện thành phần Naive UI và được lưu trữ và triển khai liên tục bởi Vercel. Các thư viện mã nguồn mở của bên thứ ba được sử dụng trong một số công cụ, bạn có thể tìm danh sách đầy đủ trong file [package.json](https://github.com/CorentinTh/it-tools/blob/main/package.json) của kho lưu trữ. + + ## Phát hiện lỗi? Một công cụ bị thiếu? + + Nếu bạn cần một công cụ hiện không có ở đây, và bạn nghĩ rằng nó có thể hữu ích, bạn được chào đón để gửi một yêu cầu tính năng trong [phần vấn đề](https://github.com/CorentinTh/it-tools/issues/new/choose) trong kho GitHub. + + Và nếu bạn phát hiện ra một lỗi, hoặc điều gì đó không hoạt động như mong đợi, xin vui lòng gửi báo cáo lỗi trong [phần vấn đề](https://github.com/CorentinTh/it-tools/issues/new/choose) trong kho GitHub. + +404: + notFound: '404 Không Tìm Thấy' + sorry: 'Xin lỗi, trang này dường như không tồn tại' + maybe: 'Có thể bộ nhớ đệm đang làm những điều kỳ lạ, thử làm mới cưỡng bức?' + backHome: 'Quay về trang chủ' +favoriteButton: + remove: 'Xóa khỏi mục yêu thích' + add: 'Thêm vào mục yêu thích' +toolCard: + new: Mới +search: + label: Tìm kiếm +tools: + categories: + favorite-tools: 'Công cụ yêu thích của bạn' + crypto: Crypto + converter: Chuyển đổi + web: Web + images and videos: 'Hình ảnh & Video' + development: Phát triển + network: Mạng + math: Toán học + measurement: Đo lường + text: Văn bản + data: Dữ liệu diff --git a/src/modules/i18n/components/locale-selector.vue b/src/modules/i18n/components/locale-selector.vue index 76b76e63d..3f0c461cb 100644 --- a/src/modules/i18n/components/locale-selector.vue +++ b/src/modules/i18n/components/locale-selector.vue @@ -9,6 +9,7 @@ const localesLong: Record = { ru: 'Русский', uk: 'Українська', zh: '中文', + vi: 'Tiếng Việt', }; const localeOptions = computed(() => diff --git a/src/tools/text-to-unicode/text-to-unicode.vue b/src/tools/text-to-unicode/text-to-unicode.vue index ae4c6982a..be9bed865 100644 --- a/src/tools/text-to-unicode/text-to-unicode.vue +++ b/src/tools/text-to-unicode/text-to-unicode.vue @@ -13,11 +13,11 @@ const { copy: copyText } = useCopy({ source: textFromUnicode });