Skip to content

Commit 2c93029

Browse files
authored
Merge branch 'main' into feat/docker-compose-to-docker-run
2 parents 7ebbddd + 85b50bb commit 2c93029

File tree

15 files changed

+443
-3
lines changed

15 files changed

+443
-3
lines changed

components.d.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ declare module '@vue/runtime-core' {
9393
'IconMdi:contentCopy': typeof import('~icons/mdi/content-copy')['default']
9494
'IconMdi:kettleSteamOutline': typeof import('~icons/mdi/kettle-steam-outline')['default']
9595
IconMdiArrowDown: typeof import('~icons/mdi/arrow-down')['default']
96-
IconMdiArrowRight: typeof import('~icons/mdi/arrow-right')['default']
9796
IconMdiArrowRightBottom: typeof import('~icons/mdi/arrow-right-bottom')['default']
9897
IconMdiCamera: typeof import('~icons/mdi/camera')['default']
9998
IconMdiChevronDown: typeof import('~icons/mdi/chevron-down')['default']
@@ -173,8 +172,6 @@ declare module '@vue/runtime-core' {
173172
NTable: typeof import('naive-ui')['NTable']
174173
NTag: typeof import('naive-ui')['NTag']
175174
NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default']
176-
NUpload: typeof import('naive-ui')['NUpload']
177-
NUploadDragger: typeof import('naive-ui')['NUploadDragger']
178175
OtpCodeGeneratorAndValidator: typeof import('./src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue')['default']
179176
PasswordStrengthAnalyser: typeof import('./src/tools/password-strength-analyser/password-strength-analyser.vue')['default']
180177
PdfSignatureChecker: typeof import('./src/tools/pdf-signature-checker/pdf-signature-checker.vue')['default']
@@ -199,6 +196,7 @@ declare module '@vue/runtime-core' {
199196
TextStatistics: typeof import('./src/tools/text-statistics/text-statistics.vue')['default']
200197
TextToBinary: typeof import('./src/tools/text-to-binary/text-to-binary.vue')['default']
201198
TextToNatoAlphabet: typeof import('./src/tools/text-to-nato-alphabet/text-to-nato-alphabet.vue')['default']
199+
TextToUnicode: typeof import('./src/tools/text-to-unicode/text-to-unicode.vue')['default']
202200
TokenDisplay: typeof import('./src/tools/otp-code-generator-and-validator/token-display.vue')['default']
203201
'TokenGenerator.tool': typeof import('./src/tools/token-generator/token-generator.tool.vue')['default']
204202
TomlToJson: typeof import('./src/tools/toml-to-json/toml-to-json.vue')['default']
@@ -215,5 +213,6 @@ declare module '@vue/runtime-core' {
215213
XmlFormatter: typeof import('./src/tools/xml-formatter/xml-formatter.vue')['default']
216214
YamlToJson: typeof import('./src/tools/yaml-to-json-converter/yaml-to-json.vue')['default']
217215
YamlToToml: typeof import('./src/tools/yaml-to-toml/yaml-to-toml.vue')['default']
216+
YamlViewer: typeof import('./src/tools/yaml-viewer/yaml-viewer.vue')['default']
218217
}
219218
}

locales/es.yaml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
home:
2+
categories:
3+
newestTools: Nuevas herramientas
4+
favoriteTools: 'Tus herramientas favoritas'
5+
allTools: 'Todas las herramientas'
6+
subtitle: 'Herramientas practicas para desarrolladores'
7+
toggleMenu: 'Toggle menu'
8+
home: Home
9+
uiLib: 'UI Lib'
10+
support: 'Apoyar el desarrollo de IT-Tools'
11+
buyMeACoffee: 'Buy me a coffee'
12+
follow:
13+
title: 'Te gustan las it-tools?'
14+
p1: 'Danos una estrella en'
15+
githubRepository: 'Repositorio de IT-Tools en GitHub'
16+
p2: 'o síguenos en'
17+
twitterAccount: 'Cuenta de twitter de IT-Tools'
18+
thankYou: 'Muchas gracias!'
19+
nav:
20+
github: 'Repositorio en github'
21+
githubRepository: 'IT-Tools GitHub repository'
22+
twitter: 'Cuenta de Twitter'
23+
twitterAccount: 'Cuenta de twitter de IT Tools'
24+
about: 'Sobre IT-Tools'
25+
aboutLabel: 'Sobre'
26+
darkMode: 'Modo obscuro'
27+
lightMode: 'Modo claro'
28+
mode: 'Alternar modo oscuro/claro'
29+
about:
30+
content: >
31+
# Sobre IT-Tools
32+
33+
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!
34+
35+
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).
36+
37+
## Tecnologías
38+
39+
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.
40+
41+
## ¿Encontraste un error? ¿Falta una herramienta?
42+
43+
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.
44+
45+
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.
46+
47+
404:
48+
notFound: '404 Not Found'
49+
sorry: 'Lo sentimos, esta página no parece existir'
50+
maybe: 'Tal vez el caché esté haciendo cosas raras, ¿probamos a refrescar forzosamente?'
51+
backHome: 'Back home'
52+
favoriteButton:
53+
remove: 'Quitar de favoritos'
54+
add: 'Añadir a favoritos'
55+
toolCard:
56+
new: Nuevo
57+
search:
58+
label: Buscar
59+
tools:
60+
categories:
61+
favorite-tools: 'Tus herramientas favoritas'
62+
crypto: Crypto
63+
converter: Converter
64+
web: Web
65+
images and videos: 'Images & Videos'
66+
development: Development
67+
network: Network
68+
math: Math
69+
measurement: Measurement
70+
text: Text
71+
data: Data

locales/pt.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
home:
2+
categories:
3+
newestTools: 'Novas ferramentas'
4+
favoriteTools: 'Suas ferramentas favoritas'
5+
allTools: 'Todas as ferramentas'
6+
subtitle: 'Ferraentas úteis para desenvolvedores'
7+
toggleMenu: 'Menu'
8+
home: 'Início'
9+
uiLib: 'Biblioteca de UI'
10+
support: 'Apoie o desenvolvimento do IT Tools'
11+
buyMeACoffee: 'Pague-me um café'
12+
follow:
13+
title: 'Gostou do it-tools?'
14+
p1: 'Dê uma estrela no'
15+
githubRepository: 'repositório do IT-Tools no GitHub'
16+
p2: 'ou siga nossa'
17+
twitterAccount: 'conta IT-Tools no Twitter'
18+
thankYou: 'Obrigado !'
19+
nav:
20+
github: 'Repositório no GitHub'
21+
githubRepository: 'repositório do IT-Tools no GitHub'
22+
twitter: 'Conta no Twitter'
23+
twitterAccount: 'conta do IT Tools no Twitter'
24+
about: 'Sobre o IT-Tools'
25+
aboutLabel: 'Sobre'
26+
darkMode: 'Modo Escuro'
27+
lightMode: 'Modo Claro'
28+
mode: 'Trocar modo escuro/claro'
29+
about:
30+
content: >
31+
# Sobre o IT-Tools
32+
33+
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!
34+
35+
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).
36+
37+
## Tecnologias
38+
39+
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.
40+
41+
## Achou um bug? Está faltando uma ferramenta?
42+
43+
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.
44+
45+
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.
46+
47+
404:
48+
notFound: '404 Não Encontrado'
49+
sorry: 'Desculpe, parece que essa página não existe'
50+
maybe: 'Talvez o cache esteja fazendo bobagem, que tal tentar forçar a atualização?'
51+
backHome: 'Voltar para o início'
52+
favoriteButton:
53+
remove: 'Remover dos favoritos'
54+
add: 'Adicionar aos favoritos'
55+
toolCard:
56+
new: 'Novo'
57+
search:
58+
label: 'Pesquisar'
59+
tools:
60+
categories:
61+
favorite-tools: 'Suas ferramentas favoritas'
62+
crypto: 'Cripto'
63+
converter: 'Conversores'
64+
web: 'Web'
65+
images and videos: 'Imagens & Vídeos'
66+
development: 'Desenvolvimento'
67+
network: 'Rede'
68+
math: 'Matemática'
69+
measurement: 'Medidas'
70+
text: 'Texto'
71+
data: 'Dados'

locales/uk.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
home:
2+
categories:
3+
newestTools: Найновіші інструменти
4+
favoriteTools: 'Ваші улюблені інструменти'
5+
allTools: 'Усі інструменти'
6+
subtitle: 'Зручні інструменти для розробників'
7+
toggleMenu: 'Перемикання меню'
8+
home: Головна
9+
uiLib: 'UI Бібліотека'
10+
support: 'Підтримка розробки IT Tools'
11+
buyMeACoffee: 'Купи мені каву'
12+
follow:
13+
title: 'Вам подобаються інструменти IT?'
14+
p1: 'Додайте нам зірку на'
15+
githubRepository: 'GitHub-репозиторій IT-Tools'
16+
p2: 'або слідкуйте за нами на'
17+
twitterAccount: 'Твіттер-акаунт IT-Tools'
18+
thankYou: 'Дякуємо!'
19+
nav:
20+
github: 'GitHub-репозиторій'
21+
githubRepository: 'GitHub-репозиторій IT-Tools'
22+
twitter: 'Твіттер'
23+
twitterAccount: 'Твіттер-акаунт IT-Tools'
24+
about: 'Про IT-Tools'
25+
aboutLabel: 'Про нас'
26+
darkMode: 'Темний режим'
27+
lightMode: 'Світлий режим'
28+
mode: 'Перемикання темного/світлого режиму'
29+
about:
30+
content: >
31+
# Про IT-Tools
32+
33+
Цей чудовий вебсайт, створений з ❤ [Corentin Thomasset](https://github.com/CorentinTh), агрегує корисні інструменти для розробників і людей, які працюють в сфері IT. Якщо вам це корисно, будь ласка, поділіться цим з людьми, які, на вашу думку, також можуть знайти його корисним, і не забудьте додати його до закладок у вашій панелі швидкого доступу!
34+
35+
IT Tools є відкритим програмним забезпеченням (під ліцензією MIT) і безкоштовним, і завжди буде таким, але мені коштує гроші для хостингу і продовження доменного імені. Якщо ви хочете підтримати мою роботу і підтримати мене у додаванні нових інструментів, розгляньте можливість підтримки, [спонсоруючи мене](https://www.buymeacoffee.com/cthmsst).
36+
37+
## Технології
38+
39+
IT Tools виконаний на Vue.js (Vue 3) з використанням бібліотеки компонентів Naive UI і розгортаний за допомогою Vercel. У деяких інструментах використовуються сторонні відкриті бібліотеки, повний список яких ви можете знайти в файлі [package.json](https://github.com/CorentinTh/it-tools/blob/main/package.json) репозиторію.
40+
41+
## Знайшли баг? Відсутній інструмент?
42+
43+
Якщо вам потрібен інструмент, якого наразі немає тут, і ви вважаєте, що він може бути корисним, ви можете подати запит на додавання функції в [розділі проблем](https://github.com/CorentinTh/it-tools/issues/new/choose) у репозиторії GitHub.
44+
45+
А якщо ви знайшли баг або щось не працює, як очікувалося, будь ласка, подайте звіт про баг в [розділі проблем](https://github.com/CorentinTh/it-tools/issues/new/choose) у репозиторії GitHub.
46+
47+
404:
48+
notFound: '404 Сторінка не знайдена'
49+
sorry: 'Вибачте, ця сторінка, схоже, не існує'
50+
maybe: 'Можливо, кеш робить хитрощі, спробуйте примусово оновити сторінку?'
51+
backHome: 'Повернутися на головну'
52+
favoriteButton:
53+
remove: 'Вилучити з обраних'
54+
add: 'Додати до обраних'
55+
toolCard:
56+
new: Новий
57+
search:
58+
label: Пошук
59+
tools:
60+
categories:
61+
favorite-tools: 'Ваші улюблені інструменти'
62+
crypto: Крипта
63+
converter: Конвертер
64+
web: Веб
65+
images and videos: 'Зображення та відео'
66+
development: Розробка
67+
network: Мережа
68+
math: Математика
69+
measurement: Вимірювання
70+
text: Текст
71+
data: Дані

src/modules/i18n/components/locale-selector.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const localesLong: Record<string, string> = {
77
fr: 'Français',
88
pt: 'Português',
99
ru: 'Русский',
10+
uk: 'Українська',
1011
zh: '中文',
1112
};
1213

src/tools/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { tool as base64FileConverter } from './base64-file-converter';
22
import { tool as base64StringConverter } from './base64-string-converter';
33
import { tool as basicAuthGenerator } from './basic-auth-generator';
4+
import { tool as textToUnicode } from './text-to-unicode';
45
import { tool as pdfSignatureChecker } from './pdf-signature-checker';
56
import { tool as numeronymGenerator } from './numeronym-generator';
67
import { tool as macAddressGenerator } from './mac-address-generator';
@@ -76,6 +77,7 @@ import { tool as uuidGenerator } from './uuid-generator';
7677
import { tool as macAddressLookup } from './mac-address-lookup';
7778
import { tool as xmlFormatter } from './xml-formatter';
7879
import { tool as dockerComposeToDockerRunConverter } from './docker-compose-to-docker-run-converter';
80+
import { tool as yamlViewer } from './yaml-viewer';
7981

8082
export const toolsByCategory: ToolCategory[] = [
8183
{
@@ -94,6 +96,7 @@ export const toolsByCategory: ToolCategory[] = [
9496
caseConverter,
9597
textToNatoAlphabet,
9698
textToBinary,
99+
textToUnicode,
97100
yamlToJson,
98101
yamlToToml,
99102
jsonToYaml,
@@ -141,6 +144,7 @@ export const toolsByCategory: ToolCategory[] = [
141144
dockerRunToDockerComposeConverter,
142145
dockerComposeToDockerRunConverter,
143146
xmlFormatter,
147+
yamlViewer,
144148
],
145149
},
146150
{

src/tools/text-to-unicode/index.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { TextWrap } from '@vicons/tabler';
2+
import { defineTool } from '../tool';
3+
4+
export const tool = defineTool({
5+
name: 'Text to Unicode',
6+
path: '/text-to-unicode',
7+
description: 'Parse and convert text to unicode and vice-versa',
8+
keywords: ['text', 'to', 'unicode'],
9+
component: () => import('./text-to-unicode.vue'),
10+
icon: TextWrap,
11+
createdAt: new Date('2024-01-31'),
12+
});
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { expect, test } from '@playwright/test';
2+
3+
test.describe('Tool - Text to Unicode', () => {
4+
test.beforeEach(async ({ page }) => {
5+
await page.goto('/text-to-unicode');
6+
});
7+
8+
test('Has correct title', async ({ page }) => {
9+
await expect(page).toHaveTitle('Text to Unicode - IT Tools');
10+
});
11+
12+
test('Text to unicode conversion', async ({ page }) => {
13+
await page.getByTestId('text-to-unicode-input').fill('it-tools');
14+
const unicode = await page.getByTestId('text-to-unicode-output').inputValue();
15+
16+
expect(unicode).toEqual('&#105;&#116;&#45;&#116;&#111;&#111;&#108;&#115;');
17+
});
18+
19+
test('Unicode to text conversion', async ({ page }) => {
20+
await page.getByTestId('unicode-to-text-input').fill('&#105;&#116;&#45;&#116;&#111;&#111;&#108;&#115;');
21+
const text = await page.getByTestId('unicode-to-text-output').inputValue();
22+
23+
expect(text).toEqual('it-tools');
24+
});
25+
});
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { describe, expect, it } from 'vitest';
2+
import { convertTextToUnicode, convertUnicodeToText } from './text-to-unicode.service';
3+
4+
describe('text-to-unicode', () => {
5+
describe('convertTextToUnicode', () => {
6+
it('a text string is converted to unicode representation', () => {
7+
expect(convertTextToUnicode('A')).toBe('&#65;');
8+
expect(convertTextToUnicode('linke the string convert to unicode')).toBe('&#108;&#105;&#110;&#107;&#101;&#32;&#116;&#104;&#101;&#32;&#115;&#116;&#114;&#105;&#110;&#103;&#32;&#99;&#111;&#110;&#118;&#101;&#114;&#116;&#32;&#116;&#111;&#32;&#117;&#110;&#105;&#99;&#111;&#100;&#101;');
9+
expect(convertTextToUnicode('')).toBe('');
10+
});
11+
});
12+
13+
describe('convertUnicodeToText', () => {
14+
it('an unicode string is converted to its text representation', () => {
15+
expect(convertUnicodeToText('&#65;')).toBe('A');
16+
expect(convertUnicodeToText('&#108;&#105;&#110;&#107;&#101;&#32;&#116;&#104;&#101;&#32;&#115;&#116;&#114;&#105;&#110;&#103;&#32;&#99;&#111;&#110;&#118;&#101;&#114;&#116;&#32;&#116;&#111;&#32;&#117;&#110;&#105;&#99;&#111;&#100;&#101;')).toBe('linke the string convert to unicode');
17+
expect(convertUnicodeToText('')).toBe('');
18+
});
19+
});
20+
});
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function convertTextToUnicode(text: string): string {
2+
return text.split('').map(value => `&#${value.charCodeAt(0)};`).join('');
3+
}
4+
5+
function convertUnicodeToText(unicodeStr: string): string {
6+
return unicodeStr.replace(/&#(\d+);/g, (match, dec) => String.fromCharCode(dec));
7+
}
8+
9+
export { convertTextToUnicode, convertUnicodeToText };

0 commit comments

Comments
 (0)