diff --git a/package.json b/package.json index 77d35d60..0ebbac53 100644 --- a/package.json +++ b/package.json @@ -37,10 +37,14 @@ "@elysiajs/swagger": "^1.2.2", "@vueuse/core": "^12.7.0", "better-sqlite3": "^11.8.1", + "change-case": "^5.4.4", + "chroma-js": "^3.1.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "codemirror": "^5.65.18", "codemirror-textmate": "^1.1.0", + "color-name-list": "^11.22.0", + "crypto-js": "^4.2.0", "date-fns": "^4.1.0", "dom-to-image": "^2.6.0", "electron-store": "^8.2.0", @@ -49,17 +53,22 @@ "i18next": "^24.2.2", "i18next-fs-backend": "^2.6.0", "interactjs": "^1.10.27", + "js-yaml": "^4.1.0", "ky": "^1.7.5", "lucide-vue-next": "^0.476.0", "marked": "^15.0.8", "markmap-lib": "^0.18.11", "markmap-view": "^0.18.10", "mermaid": "^11.6.0", + "nearest-color": "^0.4.4", "onigasm": "^2.2.5", "prettier": "^3.5.3", "radix-vue": "^1.9.17", "sanitize-html": "^2.15.0", + "slugify": "^1.6.6", "tailwind-merge": "^3.0.2", + "toml": "^3.0.0", + "uuid": "^11.1.0", "vue-sonner": "^1.3.0", "vue3-perfect-scrollbar": "^2.0.0" }, @@ -71,9 +80,12 @@ "@tailwindcss/postcss": "^4.0.9", "@tailwindcss/vite": "^4.0.9", "@types/better-sqlite3": "^7.6.12", + "@types/chroma-js": "^3.1.1", "@types/codemirror": "^5.60.15", + "@types/crypto-js": "^4.2.2", "@types/dom-to-image": "^2.6.7", "@types/fs-extra": "^11.0.4", + "@types/js-yaml": "^4.0.9", "@types/node": "^22.10.8", "@types/sanitize-html": "^2.15.0", "@vitejs/plugin-vue": "^5.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c7da8719..ee80af0d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,12 @@ importers: better-sqlite3: specifier: ^11.8.1 version: 11.8.1 + change-case: + specifier: ^5.4.4 + version: 5.4.4 + chroma-js: + specifier: ^3.1.2 + version: 3.1.2 class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -35,6 +41,12 @@ importers: codemirror-textmate: specifier: ^1.1.0 version: 1.1.0(codemirror@5.65.18)(onigasm@2.2.5) + color-name-list: + specifier: ^11.22.0 + version: 11.22.0 + crypto-js: + specifier: ^4.2.0 + version: 4.2.0 date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -59,6 +71,9 @@ importers: interactjs: specifier: ^1.10.27 version: 1.10.27 + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 ky: specifier: ^1.7.5 version: 1.7.5 @@ -77,6 +92,9 @@ importers: mermaid: specifier: ^11.6.0 version: 11.6.0 + nearest-color: + specifier: ^0.4.4 + version: 0.4.4 onigasm: specifier: ^2.2.5 version: 2.2.5 @@ -89,9 +107,18 @@ importers: sanitize-html: specifier: ^2.15.0 version: 2.15.0 + slugify: + specifier: ^1.6.6 + version: 1.6.6 tailwind-merge: specifier: ^3.0.2 version: 3.0.2 + toml: + specifier: ^3.0.0 + version: 3.0.0 + uuid: + specifier: ^11.1.0 + version: 11.1.0 vue-sonner: specifier: ^1.3.0 version: 1.3.0 @@ -120,15 +147,24 @@ importers: '@types/better-sqlite3': specifier: ^7.6.12 version: 7.6.12 + '@types/chroma-js': + specifier: ^3.1.1 + version: 3.1.1 '@types/codemirror': specifier: ^5.60.15 version: 5.60.15 + '@types/crypto-js': + specifier: ^4.2.2 + version: 4.2.2 '@types/dom-to-image': specifier: ^2.6.7 version: 2.6.7 '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 + '@types/js-yaml': + specifier: ^4.0.9 + version: 4.0.9 '@types/node': specifier: ^22.10.8 version: 22.13.1 @@ -1071,12 +1107,18 @@ packages: '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + '@types/chroma-js@3.1.1': + resolution: {integrity: sha512-SFCr4edNkZ1bGaLzGz7rgR1bRzVX4MmMxwsIa3/Bh6ose8v+hRpneoizHv0KChdjxaXyjRtaMq7sCuZSzPomQA==} + '@types/codemirror@5.60.15': resolution: {integrity: sha512-dTOvwEQ+ouKJ/rE9LT1Ue2hmP6H1mZv5+CCnNWu2qtiOe2LQa9lCprEY20HxiDmV/Bxh+dXjywmy5aKvoGjULA==} '@types/conventional-commits-parser@5.0.1': resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} + '@types/crypto-js@4.2.2': + resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} + '@types/d3-array@3.2.1': resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} @@ -1197,6 +1239,9 @@ packages: '@types/http-cache-semantics@4.0.4': resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1649,6 +1694,9 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} @@ -1682,6 +1730,9 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chroma-js@3.1.2: + resolution: {integrity: sha512-IJnETTalXbsLx1eKEgx19d5L6SRM7cH4vINw/99p/M11HCuXGRWL+6YmCm7FWFGIo6dtWuQoQi1dc5yQ7ESIHg==} + chromium-pickle-js@0.2.0: resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} @@ -1755,6 +1806,10 @@ packages: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-name-list@11.22.0: + resolution: {integrity: sha512-kIAXZqpAZ61aepiCaDxIsM7iQM9hZgY3i9T5OAU0lsm2PSircn6nOJFOE3WdtN8qbd7UMPNFepzebvxwu20CPg==} + engines: {node: '>=20.11.0', npm: '>=10.2.0'} + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1895,6 +1950,9 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} @@ -3645,6 +3703,9 @@ packages: resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} engines: {node: '>=18'} + nearest-color@0.4.4: + resolution: {integrity: sha512-orhcaIORC10tf41Ld2wwlcC+FaAavHG87JHWB3eHH5p7v2k9Tzym2XNEZzLAm5YJwGv6Q38WWc7SOb+Qfu/4NQ==} + negotiator@0.6.4: resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} @@ -4322,6 +4383,10 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} + slugify@1.6.6: + resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + engines: {node: '>=8.0.0'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -4518,6 +4583,9 @@ packages: resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + toml@3.0.0: + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} + touch@3.1.1: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true @@ -5781,6 +5849,8 @@ snapshots: '@types/node': 22.13.1 '@types/responselike': 1.0.3 + '@types/chroma-js@3.1.1': {} + '@types/codemirror@5.60.15': dependencies: '@types/tern': 0.23.9 @@ -5789,6 +5859,8 @@ snapshots: dependencies: '@types/node': 22.13.1 + '@types/crypto-js@4.2.2': {} + '@types/d3-array@3.2.1': {} '@types/d3-axis@3.0.6': @@ -5934,6 +6006,8 @@ snapshots: '@types/http-cache-semantics@4.0.4': {} + '@types/js-yaml@4.0.9': {} + '@types/json-schema@7.0.15': {} '@types/jsonfile@6.1.4': @@ -6556,6 +6630,8 @@ snapshots: chalk@5.4.1: {} + change-case@5.4.4: {} + character-entities@2.0.2: {} cheerio-select@2.1.0: @@ -6615,6 +6691,8 @@ snapshots: chownr@2.0.0: {} + chroma-js@3.1.2: {} + chromium-pickle-js@0.2.0: {} ci-info@3.9.0: {} @@ -6684,6 +6762,8 @@ snapshots: dependencies: color-name: 1.1.4 + color-name-list@11.22.0: {} + color-name@1.1.4: {} color-support@1.1.3: {} @@ -6826,6 +6906,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crypto-js@4.2.0: {} + css-select@5.1.0: dependencies: boolbase: 1.0.0 @@ -8930,6 +9012,8 @@ snapshots: natural-orderby@5.0.0: {} + nearest-color@0.4.4: {} + negotiator@0.6.4: {} node-abi@3.74.0: @@ -9588,6 +9672,8 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 + slugify@1.6.6: {} + smart-buffer@4.2.0: {} socks-proxy-agent@7.0.0: @@ -9791,6 +9877,8 @@ snapshots: dependencies: eslint-visitor-keys: 3.4.3 + toml@3.0.0: {} + touch@3.1.1: {} tree-kill@1.2.2: {} diff --git a/src/main/i18n/locales/cs_CZ/devtools.json b/src/main/i18n/locales/cs_CZ/devtools.json index dc602f22..56037834 100644 --- a/src/main/i18n/locales/cs_CZ/devtools.json +++ b/src/main/i18n/locales/cs_CZ/devtools.json @@ -1,31 +1,123 @@ { "label": "Vývojářské nástroje", - "textTools": { - "label": "Textové nástroje", - "caseConverter": "Převodník velikosti písmen", - "urlParser": "URL Parser", - "slugGenerator": "Generátor slugů", - "sortLines": "Seřadit řádky" + "converters": { + "label": "Převodníky", + "caseConverter": { + "label": "Převodník velikosti písmen", + "description": "Transformace textu do různých velikostí písmen", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Text na Unicode", + "description": "Převod textu na Unicode a naopak", + "modes": { + "textToUnicode": "Text → Unicode", + "unicodeToText": "Unicode → Text" + } + }, + "textToAscii": { + "label": "Text na ASCII Binary", + "description": "Převod textu na ASCII binary a naopak", + "modes": { + "textToAscii": "Text → ASCII", + "asciiToText": "ASCII → Text" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Kódování nebo dekódování textu do Base64", + "modes": { + "textToBase64": "Text → Base64", + "base64ToText": "Base64 → Text" + } + }, + "jsonToYaml": { + "label": "JSON na YAML", + "description": "Převod JSON na YAML a naopak", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON na TOML", + "description": "Převod JSON na TOML a naopak", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON na XML", + "description": "Převod JSON na XML a naopak", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Převodník barev", + "description": "Převod barev mezi různými formáty" + } }, "crypto": { "label": "Kryptografie / Bezpečnost", - "hashGenerator": "Generátor hashů", - "hmacGenerator": "HMAC Generátor", - "passGenerator": "Generátor hesel", - "uuidGenerator": "UUID Generátor" + "hash": { + "label": "Generátor hash", + "description": "Generování hashů z textu" + }, + "hmac": { + "label": "Generátor HMAC", + "description": "Generování autentizačního kódu zprávy založeného na hash (HMAC) složeného z klíče a zprávy" + }, + "password": { + "label": "Generátor hesel", + "description": "Generování bezpečného hesla" + }, + "uuid": { + "label": "Generátor UUID", + "description": "Generování univerzálního jedinečného identifikátoru (UUID)" + } }, - "encodeDecode": { - "label": "Kodéry / Dekodéry", - "url": "URL Kodér / Dekodér", - "base64": "Base64 Kodér / Dekodér" + "web": { + "label": "Web", + "urlParser": { + "label": "Parser URL", + "description": "Parsování URL na komponenty" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "Kódování nebo dekódování URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Převod textu na URL-přátelský slug" + } }, "form": { + "input": "Vstup", + "output": "Výstup", "inputString": "Vstupní řetězec", "outputString": "Výstupní řetězec", "inputUrl": "Vstupní URL", "outputUrl": "Výstupní URL", - "parsedUrl": "Parsované URL", - "splitQueryString": "Rozdělený dotazovací řetězec", + "parsedUrl": "Parsovaná URL", + "splitQueryString": "Rozdělit Query String", "key": "Klíč", "value": "Hodnota", "component": "Komponenta", @@ -40,6 +132,12 @@ "numbers": "Čísla", "symbols": "Symboly", "lowercase": "Malá písmena", - "uppercase": "Velká písmena" + "uppercase": "Velká písmena", + "placeholder": { + "text": "Zadejte text", + "value": "Zadejte hodnotu", + "secretKey": "Zadejte tajný klíč", + "url": "Zadejte URL" + } } } diff --git a/src/main/i18n/locales/cs_CZ/menu.json b/src/main/i18n/locales/cs_CZ/menu.json index aac38b2c..05a22266 100644 --- a/src/main/i18n/locales/cs_CZ/menu.json +++ b/src/main/i18n/locales/cs_CZ/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Předvolby", + "devtools": "Vývojářské nástroje", "update": "Zkontrolovat aktualizace...", "quit": "Ukončit massCode", "about": "O aplikaci massCode", diff --git a/src/main/i18n/locales/de_DE/devtools.json b/src/main/i18n/locales/de_DE/devtools.json index 1fdeecd1..70aa3d3e 100644 --- a/src/main/i18n/locales/de_DE/devtools.json +++ b/src/main/i18n/locales/de_DE/devtools.json @@ -1,31 +1,123 @@ { - "label": "Entwicklerwerkzeuge", - "textTools": { - "label": "Text-Werkzeuge", - "caseConverter": "Groß-/Kleinschreibung Konverter", - "urlParser": "URL Parser", - "slugGenerator": "Slug Generator", - "sortLines": "Zeilen sortieren" + "label": "Entwicklertools", + "converters": { + "label": "Konverter", + "caseConverter": { + "label": "Case Converter", + "description": "Text in verschiedene Schreibweisen umwandeln", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Text zu Unicode", + "description": "Text zu Unicode konvertieren und umgekehrt", + "modes": { + "textToUnicode": "Text → Unicode", + "unicodeToText": "Unicode → Text" + } + }, + "textToAscii": { + "label": "Text zu ASCII Binary", + "description": "Text zu ASCII Binary konvertieren und umgekehrt", + "modes": { + "textToAscii": "Text → ASCII", + "asciiToText": "ASCII → Text" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Text zu Base64 kodieren oder dekodieren", + "modes": { + "textToBase64": "Text → Base64", + "base64ToText": "Base64 → Text" + } + }, + "jsonToYaml": { + "label": "JSON zu YAML", + "description": "JSON zu YAML konvertieren und umgekehrt", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON zu TOML", + "description": "JSON zu TOML konvertieren und umgekehrt", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON zu XML", + "description": "JSON zu XML konvertieren und umgekehrt", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Farbkonverter", + "description": "Farben zwischen verschiedenen Formaten konvertieren" + } }, "crypto": { "label": "Kryptographie / Sicherheit", - "hashGenerator": "Hash Generator", - "hmacGenerator": "HMAC Generator", - "passGenerator": "Passwort Generator", - "uuidGenerator": "UUID Generator" + "hash": { + "label": "Hash Generator", + "description": "Hashes aus Text generieren" + }, + "hmac": { + "label": "HMAC Generator", + "description": "Hash-basierten Nachrichtenauthentifizierungscode (HMAC) aus Schlüssel und Nachricht generieren" + }, + "password": { + "label": "Passwort Generator", + "description": "Sicheres Passwort generieren" + }, + "uuid": { + "label": "UUID Generator", + "description": "Universell eindeutige Kennung (UUID) generieren" + } }, - "encodeDecode": { - "label": "Encoder / Decoder", - "url": "URL Encoder / Decoder", - "base64": "Base64 Encoder / Decoder" + "web": { + "label": "Web", + "urlParser": { + "label": "URL Parser", + "description": "URL in ihre Komponenten zerlegen" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "URL kodieren oder dekodieren", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Text in URL-freundlichen Slug umwandeln" + } }, "form": { - "inputString": "Eingabetext", - "outputString": "Ausgabetext", + "input": "Eingabe", + "output": "Ausgabe", + "inputString": "Eingabestring", + "outputString": "Ausgabestring", "inputUrl": "Eingabe-URL", "outputUrl": "Ausgabe-URL", "parsedUrl": "Geparste URL", - "splitQueryString": "Query-String aufteilen", + "splitQueryString": "Query String aufteilen", "key": "Schlüssel", "value": "Wert", "component": "Komponente", @@ -40,6 +132,12 @@ "numbers": "Zahlen", "symbols": "Symbole", "lowercase": "Kleinbuchstaben", - "uppercase": "Großbuchstaben" + "uppercase": "Großbuchstaben", + "placeholder": { + "text": "Text eingeben", + "value": "Wert eingeben", + "secretKey": "Geheimen Schlüssel eingeben", + "url": "URL eingeben" + } } } diff --git a/src/main/i18n/locales/de_DE/menu.json b/src/main/i18n/locales/de_DE/menu.json index e6363cc0..dceb276b 100644 --- a/src/main/i18n/locales/de_DE/menu.json +++ b/src/main/i18n/locales/de_DE/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Einstellungen", + "devtools": "Entwicklerwerkzeuge", "update": "Nach Updates suchen...", "quit": "massCode beenden", "about": "Über massCode", diff --git a/src/main/i18n/locales/el_GR/devtools.json b/src/main/i18n/locales/el_GR/devtools.json index d5c33927..0b5cf062 100644 --- a/src/main/i18n/locales/el_GR/devtools.json +++ b/src/main/i18n/locales/el_GR/devtools.json @@ -1,27 +1,119 @@ { "label": "Εργαλεία Προγραμματιστή", - "textTools": { - "label": "Εργαλεία Κειμένου", - "caseConverter": "Μετατροπέας Πεζών/Κεφαλαίων", - "urlParser": "URL Parser", - "slugGenerator": "Δημιουργία Slug", - "sortLines": "Ταξινόμηση Γραμμών" + "converters": { + "label": "Μετατροπείς", + "caseConverter": { + "label": "Μετατροπέας Κεφαλαίων", + "description": "Μετατροπή κειμένου σε διαφορετικές μορφές κεφαλαίων", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Κείμενο σε Unicode", + "description": "Μετατροπή κειμένου σε Unicode και αντίστροφα", + "modes": { + "textToUnicode": "Κείμενο → Unicode", + "unicodeToText": "Unicode → Κείμενο" + } + }, + "textToAscii": { + "label": "Κείμενο σε ASCII Binary", + "description": "Μετατροπή κειμένου σε ASCII binary και αντίστροφα", + "modes": { + "textToAscii": "Κείμενο → ASCII", + "asciiToText": "ASCII → Κείμενο" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Κωδικοποίηση ή αποκωδικοποίηση κειμένου σε Base64", + "modes": { + "textToBase64": "Κείμενο → Base64", + "base64ToText": "Base64 → Κείμενο" + } + }, + "jsonToYaml": { + "label": "JSON σε YAML", + "description": "Μετατροπή JSON σε YAML και αντίστροφα", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON σε TOML", + "description": "Μετατροπή JSON σε TOML και αντίστροφα", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON σε XML", + "description": "Μετατροπή JSON σε XML και αντίστροφα", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Μετατροπέας Χρωμάτων", + "description": "Μετατροπή χρωμάτων μεταξύ διαφορετικών μορφών" + } }, "crypto": { "label": "Κρυπτογραφία / Ασφάλεια", - "hashGenerator": "Δημιουργία Hash", - "hmacGenerator": "Δημιουργία HMAC", - "passGenerator": "Δημιουργία Password", - "uuidGenerator": "Δημιουργία UUID" + "hash": { + "label": "Γεννήτρια Hash", + "description": "Δημιουργία hash από κείμενο" + }, + "hmac": { + "label": "Γεννήτρια HMAC", + "description": "Δημιουργία κώδικα πιστοποίησης μηνύματος βασισμένου σε hash (HMAC) που αποτελείται από κλειδί και μήνυμα" + }, + "password": { + "label": "Γεννήτρια Κωδικών", + "description": "Δημιουργία ασφαλούς κωδικού" + }, + "uuid": { + "label": "Γεννήτρια UUID", + "description": "Δημιουργία παγκόσμιου μοναδικού αναγνωριστικού (UUID)" + } }, - "encodeDecode": { - "label": "Κωδικοποιητές / Αποκωδικοποιητές", - "url": "Κωδικοποίηση / Αποκωδικοποίηση URL", - "base64": "Κωδικοποίηση / Αποκωδικοποίηση Base64" + "web": { + "label": "Ιστός", + "urlParser": { + "label": "Αναλυτής URL", + "description": "Ανάλυση URL στα στοιχεία του" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "Κωδικοποίηση ή αποκωδικοποίηση URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Μετατροπή κειμένου σε φιλικό προς URL slug" + } }, "form": { - "inputString": "Κείμενο Εισόδου", - "outputString": "Κείμενο Εξόδου", + "input": "Είσοδος", + "output": "Έξοδος", + "inputString": "Συμβολοσειρά Εισόδου", + "outputString": "Συμβολοσειρά Εξόδου", "inputUrl": "URL Εισόδου", "outputUrl": "URL Εξόδου", "parsedUrl": "Αναλυμένο URL", @@ -40,6 +132,12 @@ "numbers": "Αριθμοί", "symbols": "Σύμβολα", "lowercase": "Πεζά", - "uppercase": "Κεφαλαία" + "uppercase": "Κεφαλαία", + "placeholder": { + "text": "Εισάγετε κείμενο", + "value": "Εισάγετε τιμή", + "secretKey": "Εισάγετε μυστικό κλειδί", + "url": "Εισάγετε URL" + } } } diff --git a/src/main/i18n/locales/el_GR/menu.json b/src/main/i18n/locales/el_GR/menu.json index f0c238fd..f8a8d1ae 100644 --- a/src/main/i18n/locales/el_GR/menu.json +++ b/src/main/i18n/locales/el_GR/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Προτιμήσεις", + "devtools": "Developer Tools", "update": "Έλεγχος για Ενημερώσεις...", "quit": "Έξοδος από το massCode", "about": "Σχετικά με το massCode", diff --git a/src/main/i18n/locales/en_US/devtools.json b/src/main/i18n/locales/en_US/devtools.json index f0ac1cc4..cf3ef682 100644 --- a/src/main/i18n/locales/en_US/devtools.json +++ b/src/main/i18n/locales/en_US/devtools.json @@ -1,25 +1,117 @@ { "label": "Developer Tools", - "textTools": { - "label": "Text Tools", - "caseConverter": "Case Converter", - "urlParser": "URL Parser", - "slugGenerator": "Slug Generator", - "sortLines": "Sort Lines" + "converters": { + "label": "Converters", + "caseConverter": { + "label": "Case Converter", + "description": "Transform text to different cases", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Text to Unicode", + "description": "Convert text to Unicode and vice versa", + "modes": { + "textToUnicode": "Text → Unicode", + "unicodeToText": "Unicode → Text" + } + }, + "textToAscii": { + "label": "Text to ASCII Binary", + "description": "Convert text to ASCII binary and vice versa", + "modes": { + "textToAscii": "Text → ASCII", + "asciiToText": "ASCII → Text" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Encode or decode text to Base64", + "modes": { + "textToBase64": "Text → Base64", + "base64ToText": "Base64 → Text" + } + }, + "jsonToYaml": { + "label": "JSON to YAML", + "description": "Convert JSON to YAML and vice versa", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON to TOML", + "description": "Convert JSON to TOML and vice versa", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON to XML", + "description": "Convert JSON to XML and vice versa", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Color Converter", + "description": "Convert color between different formats" + } }, "crypto": { "label": "Cryptography / Security", - "hashGenerator": "Hash Generator", - "hmacGenerator": "HMAC Generator", - "passGenerator": "Password Generator", - "uuidGenerator": "UUID Generator" + "hash": { + "label": "Hash Generator", + "description": "Generate hashes from text" + }, + "hmac": { + "label": "HMAC Generator", + "description": "Generate hash-based message authentication code (HMAC) composed of a key and a message" + }, + "password": { + "label": "Password Generator", + "description": "Generate a secure password" + }, + "uuid": { + "label": "UUID Generator", + "description": "Generate a universal unique identifier (UUID)" + } }, - "encodeDecode": { - "label": "Encoders / Decoders", - "url": "URL Encoder / Decoder", - "base64": "Base64 Encoder / Decoder" + "web": { + "label": "Web", + "urlParser": { + "label": "URL Parser", + "description": "Parse a URL into its components" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "Encode or decode URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Convert text to a URL-friendly slug" + } }, "form": { + "input": "Input", + "output": "Output", "inputString": "Input String", "outputString": "Output String", "inputUrl": "Input URL", @@ -40,7 +132,12 @@ "numbers": "Numbers", "symbols": "Symbols", "lowercase": "Lowercase", - "uppercase": "Uppercase" + "uppercase": "Uppercase", + "placeholder": { + "text": "Enter a text", + "value": "Enter a value", + "secretKey": "Enter a secret key", + "url": "Enter a URL" + } } - } diff --git a/src/main/i18n/locales/en_US/menu.json b/src/main/i18n/locales/en_US/menu.json index 3cf1495f..1b07fa39 100644 --- a/src/main/i18n/locales/en_US/menu.json +++ b/src/main/i18n/locales/en_US/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Preferences", + "devtools": "Developer Tools", "update": "Check for Updates...", "quit": "Quit massCode", "about": "About massCode", diff --git a/src/main/i18n/locales/es_ES/devtools.json b/src/main/i18n/locales/es_ES/devtools.json index 1f0c6026..cf4ad0f3 100644 --- a/src/main/i18n/locales/es_ES/devtools.json +++ b/src/main/i18n/locales/es_ES/devtools.json @@ -1,36 +1,128 @@ { - "label": "Herramientas de Desarrollo", - "textTools": { - "label": "Herramientas de Texto", - "caseConverter": "Conversor de Mayúsculas/Minúsculas", - "urlParser": "Analizador de URL", - "slugGenerator": "Generador de Slug", - "sortLines": "Ordenar Líneas" + "label": "Herramientas de desarrollo", + "converters": { + "label": "Convertidores", + "caseConverter": { + "label": "Convertidor de mayúsculas", + "description": "Transformar texto a diferentes casos", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Texto a Unicode", + "description": "Convertir texto a Unicode y viceversa", + "modes": { + "textToUnicode": "Texto → Unicode", + "unicodeToText": "Unicode → Texto" + } + }, + "textToAscii": { + "label": "Texto a ASCII Binary", + "description": "Convertir texto a ASCII binary y viceversa", + "modes": { + "textToAscii": "Texto → ASCII", + "asciiToText": "ASCII → Texto" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Codificar o decodificar texto a Base64", + "modes": { + "textToBase64": "Texto → Base64", + "base64ToText": "Base64 → Texto" + } + }, + "jsonToYaml": { + "label": "JSON a YAML", + "description": "Convertir JSON a YAML y viceversa", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON a TOML", + "description": "Convertir JSON a TOML y viceversa", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON a XML", + "description": "Convertir JSON a XML y viceversa", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Convertidor de colores", + "description": "Convertir colores entre diferentes formatos" + } }, "crypto": { "label": "Criptografía / Seguridad", - "hashGenerator": "Generador de Hash", - "hmacGenerator": "Generador de HMAC", - "passGenerator": "Generador de Contraseñas", - "uuidGenerator": "Generador de UUID" + "hash": { + "label": "Generador de hash", + "description": "Generar hashes a partir de texto" + }, + "hmac": { + "label": "Generador HMAC", + "description": "Generar código de autenticación de mensaje basado en hash (HMAC) compuesto por una clave y un mensaje" + }, + "password": { + "label": "Generador de contraseñas", + "description": "Generar una contraseña segura" + }, + "uuid": { + "label": "Generador UUID", + "description": "Generar un identificador único universal (UUID)" + } }, - "encodeDecode": { - "label": "Codificadores / Decodificadores", - "url": "Codificador / Decodificador URL", - "base64": "Codificador / Decodificador Base64" + "web": { + "label": "Web", + "urlParser": { + "label": "Analizador URL", + "description": "Analizar una URL en sus componentes" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "Codificar o decodificar URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Convertir texto a un slug compatible con URL" + } }, "form": { - "inputString": "Cadena de Entrada", - "outputString": "Cadena de Salida", - "inputUrl": "URL de Entrada", - "outputUrl": "URL de Salida", - "parsedUrl": "URL Analizada", - "splitQueryString": "Dividir Cadena de Consulta", + "input": "Entrada", + "output": "Salida", + "inputString": "Cadena de entrada", + "outputString": "Cadena de salida", + "inputUrl": "URL de entrada", + "outputUrl": "URL de salida", + "parsedUrl": "URL analizada", + "splitQueryString": "Dividir Query String", "key": "Clave", "value": "Valor", "component": "Componente", "result": "Resultado", - "secretKey": "Clave Secreta", + "secretKey": "Clave secreta", "algorithm": "Algoritmo", "version": "Versión", "amount": "Cantidad", @@ -40,6 +132,12 @@ "numbers": "Números", "symbols": "Símbolos", "lowercase": "Minúsculas", - "uppercase": "Mayúsculas" + "uppercase": "Mayúsculas", + "placeholder": { + "text": "Ingrese un texto", + "value": "Ingrese un valor", + "secretKey": "Ingrese una clave secreta", + "url": "Ingrese una URL" + } } } diff --git a/src/main/i18n/locales/es_ES/menu.json b/src/main/i18n/locales/es_ES/menu.json index d3efce93..73fda595 100644 --- a/src/main/i18n/locales/es_ES/menu.json +++ b/src/main/i18n/locales/es_ES/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Preferencias", + "devtools": "Herramientas de Desarrollo", "update": "Buscar Actualizaciones...", "quit": "Salir de massCode", "about": "Acerca de massCode", diff --git a/src/main/i18n/locales/fa_IR/devtools.json b/src/main/i18n/locales/fa_IR/devtools.json index 288459e4..ca30fcfa 100644 --- a/src/main/i18n/locales/fa_IR/devtools.json +++ b/src/main/i18n/locales/fa_IR/devtools.json @@ -1,45 +1,143 @@ { - "label": "ابزارهای توسعه", - "textTools": { - "label": "ابزارهای متن", - "caseConverter": "تبدیل حروف", - "urlParser": "تجزیه‌کننده URL", - "slugGenerator": "تولیدکننده Slug", - "sortLines": "مرتب‌سازی خطوط" + "label": "ابزارهای توسعه‌دهنده", + "converters": { + "label": "مبدل‌ها", + "caseConverter": { + "label": "مبدل حروف بزرگ و کوچک", + "description": "تبدیل متن به فرمت‌های مختلف حروف", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "متن به Unicode", + "description": "تبدیل متن به Unicode و برعکس", + "modes": { + "textToUnicode": "متن ← Unicode", + "unicodeToText": "Unicode ← متن" + } + }, + "textToAscii": { + "label": "متن به ASCII Binary", + "description": "تبدیل متن به ASCII binary و برعکس", + "modes": { + "textToAscii": "متن ← ASCII", + "asciiToText": "ASCII ← متن" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "رمزگذاری یا رمزگشایی متن به Base64", + "modes": { + "textToBase64": "متن ← Base64", + "base64ToText": "Base64 ← متن" + } + }, + "jsonToYaml": { + "label": "JSON به YAML", + "description": "تبدیل JSON به YAML و برعکس", + "modes": { + "jsonToYaml": "JSON ← YAML", + "yamlToJson": "YAML ← JSON" + } + }, + "jsonToToml": { + "label": "JSON به TOML", + "description": "تبدیل JSON به TOML و برعکس", + "modes": { + "jsonToToml": "JSON ← TOML", + "tomlToJson": "TOML ← JSON" + } + }, + "jsonToXml": { + "label": "JSON به XML", + "description": "تبدیل JSON به XML و برعکس", + "modes": { + "jsonToXml": "JSON ← XML", + "xmlToJson": "XML ← JSON" + } + }, + "colorConverter": { + "label": "مبدل رنگ", + "description": "تبدیل رنگ‌ها بین فرمت‌های مختلف" + } }, "crypto": { "label": "رمزنگاری / امنیت", - "hashGenerator": "تولیدکننده Hash", - "hmacGenerator": "تولیدکننده HMAC", - "passGenerator": "تولیدکننده رمز عبور", - "uuidGenerator": "تولیدکننده UUID" + "hash": { + "label": "تولیدکننده Hash", + "description": "تولید hash از متن" + }, + "hmac": { + "label": "تولیدکننده HMAC", + "description": "تولید کد احراز هویت پیام مبتنی بر hash (HMAC) متشکل از کلید و پیام" + }, + "password": { + "label": "تولیدکننده رمز عبور", + "description": "تولید رمز عبور امن" + }, + "uuid": { + "label": "تولیدکننده UUID", + "description": "تولید شناسه منحصر به فرد جهانی (UUID)" + } }, - "encodeDecode": { - "label": "رمزگذار / رمزگشا", - "url": "رمزگذار / رمزگشای URL", - "base64": "رمزگذار / رمزگشای Base64" + "web": { + "label": "وب", + "urlParser": { + "label": "تجزیه‌کننده URL", + "description": "تجزیه URL به اجزای آن" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "رمزگذاری یا رمزگشایی URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "تبدیل متن به slug سازگار با URL" + } }, "form": { + "input": "ورودی", + "output": "خروجی", "inputString": "رشته ورودی", "outputString": "رشته خروجی", "inputUrl": "URL ورودی", "outputUrl": "URL خروجی", "parsedUrl": "URL تجزیه شده", - "splitQueryString": "تقسیم رشته پرس‌وجو", + "splitQueryString": "تقسیم Query String", "key": "کلید", "value": "مقدار", - "component": "مؤلفه", + "component": "جزء", "result": "نتیجه", "secretKey": "کلید مخفی", "algorithm": "الگوریتم", "version": "نسخه", - "amount": "تعداد", + "amount": "مقدار", "type": "نوع", "length": "طول", "options": "گزینه‌ها", "numbers": "اعداد", "symbols": "نمادها", "lowercase": "حروف کوچک", - "uppercase": "حروف بزرگ" + "uppercase": "حروف بزرگ", + "placeholder": { + "text": "متن وارد کنید", + "value": "مقدار وارد کنید", + "secretKey": "کلید مخفی وارد کنید", + "url": "URL وارد کنید" + } } } diff --git a/src/main/i18n/locales/fa_IR/menu.json b/src/main/i18n/locales/fa_IR/menu.json index a927556b..9d9755bb 100644 --- a/src/main/i18n/locales/fa_IR/menu.json +++ b/src/main/i18n/locales/fa_IR/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "تنظیمات", + "devtools": "ابزارهای توسعه", "update": "بررسی به‌روزرسانی‌ها...", "quit": "خروج از massCode", "about": "درباره massCode", diff --git a/src/main/i18n/locales/fr_FR/devtools.json b/src/main/i18n/locales/fr_FR/devtools.json index 34327efc..c4880316 100644 --- a/src/main/i18n/locales/fr_FR/devtools.json +++ b/src/main/i18n/locales/fr_FR/devtools.json @@ -1,31 +1,123 @@ { "label": "Outils de développement", - "textTools": { - "label": "Outils de texte", - "caseConverter": "Convertisseur de casse", - "urlParser": "Analyseur d'URL", - "slugGenerator": "Générateur de slug", - "sortLines": "Trier les lignes" + "converters": { + "label": "Convertisseurs", + "caseConverter": { + "label": "Convertisseur de casse", + "description": "Transformer le texte en différentes casses", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Texte vers Unicode", + "description": "Convertir le texte en Unicode et vice versa", + "modes": { + "textToUnicode": "Texte → Unicode", + "unicodeToText": "Unicode → Texte" + } + }, + "textToAscii": { + "label": "Texte vers ASCII Binary", + "description": "Convertir le texte en ASCII binary et vice versa", + "modes": { + "textToAscii": "Texte → ASCII", + "asciiToText": "ASCII → Texte" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Encoder ou décoder le texte en Base64", + "modes": { + "textToBase64": "Texte → Base64", + "base64ToText": "Base64 → Texte" + } + }, + "jsonToYaml": { + "label": "JSON vers YAML", + "description": "Convertir JSON en YAML et vice versa", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON vers TOML", + "description": "Convertir JSON en TOML et vice versa", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON vers XML", + "description": "Convertir JSON en XML et vice versa", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Convertisseur de couleurs", + "description": "Convertir les couleurs entre différents formats" + } }, "crypto": { "label": "Cryptographie / Sécurité", - "hashGenerator": "Générateur de hachage", - "hmacGenerator": "Générateur HMAC", - "passGenerator": "Générateur de mot de passe", - "uuidGenerator": "Générateur UUID" + "hash": { + "label": "Générateur de hash", + "description": "Générer des hashes à partir de texte" + }, + "hmac": { + "label": "Générateur HMAC", + "description": "Générer un code d'authentification de message basé sur le hash (HMAC) composé d'une clé et d'un message" + }, + "password": { + "label": "Générateur de mot de passe", + "description": "Générer un mot de passe sécurisé" + }, + "uuid": { + "label": "Générateur UUID", + "description": "Générer un identifiant unique universel (UUID)" + } }, - "encodeDecode": { - "label": "Encodeurs / Décodeurs", - "url": "Encodeur / Décodeur URL", - "base64": "Encodeur / Décodeur Base64" + "web": { + "label": "Web", + "urlParser": { + "label": "Analyseur URL", + "description": "Analyser une URL en ses composants" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "Encoder ou décoder une URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Convertir le texte en slug compatible URL" + } }, "form": { + "input": "Entrée", + "output": "Sortie", "inputString": "Chaîne d'entrée", "outputString": "Chaîne de sortie", "inputUrl": "URL d'entrée", "outputUrl": "URL de sortie", "parsedUrl": "URL analysée", - "splitQueryString": "Diviser la chaîne de requête", + "splitQueryString": "Diviser Query String", "key": "Clé", "value": "Valeur", "component": "Composant", @@ -40,6 +132,12 @@ "numbers": "Chiffres", "symbols": "Symboles", "lowercase": "Minuscules", - "uppercase": "Majuscules" + "uppercase": "Majuscules", + "placeholder": { + "text": "Entrez un texte", + "value": "Entrez une valeur", + "secretKey": "Entrez une clé secrète", + "url": "Entrez une URL" + } } } diff --git a/src/main/i18n/locales/fr_FR/menu.json b/src/main/i18n/locales/fr_FR/menu.json index 19064a8b..d2744fa9 100644 --- a/src/main/i18n/locales/fr_FR/menu.json +++ b/src/main/i18n/locales/fr_FR/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Préférences", + "devtools": "Outils de développement", "update": "Rechercher des mises à jour...", "quit": "Quitter massCode", "about": "À propos de massCode", diff --git a/src/main/i18n/locales/ja_JP/devtools.json b/src/main/i18n/locales/ja_JP/devtools.json index 778c59eb..1cf01b36 100644 --- a/src/main/i18n/locales/ja_JP/devtools.json +++ b/src/main/i18n/locales/ja_JP/devtools.json @@ -1,36 +1,128 @@ { "label": "開発者ツール", - "textTools": { - "label": "テキストツール", - "caseConverter": "大文字小文字変換", - "urlParser": "URLパーサー", - "slugGenerator": "スラッグジェネレーター", - "sortLines": "行の並べ替え" + "converters": { + "label": "コンバーター", + "caseConverter": { + "label": "ケースコンバーター", + "description": "テキストを異なるケースに変換", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "テキストからUnicode", + "description": "テキストをUnicodeに変換、またはその逆", + "modes": { + "textToUnicode": "テキスト → Unicode", + "unicodeToText": "Unicode → テキスト" + } + }, + "textToAscii": { + "label": "テキストからASCII Binary", + "description": "テキストをASCII binaryに変換、またはその逆", + "modes": { + "textToAscii": "テキスト → ASCII", + "asciiToText": "ASCII → テキスト" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "テキストをBase64にエンコード、またはデコード", + "modes": { + "textToBase64": "テキスト → Base64", + "base64ToText": "Base64 → テキスト" + } + }, + "jsonToYaml": { + "label": "JSONからYAML", + "description": "JSONをYAMLに変換、またはその逆", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSONからTOML", + "description": "JSONをTOMLに変換、またはその逆", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSONからXML", + "description": "JSONをXMLに変換、またはその逆", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "カラーコンバーター", + "description": "色を異なるフォーマット間で変換" + } }, "crypto": { - "label": "暗号化/セキュリティ", - "hashGenerator": "ハッシュジェネレーター", - "hmacGenerator": "HMACジェネレーター", - "passGenerator": "パスワードジェネレーター", - "uuidGenerator": "UUIDジェネレーター" + "label": "暗号化 / セキュリティ", + "hash": { + "label": "ハッシュジェネレーター", + "description": "テキストからハッシュを生成" + }, + "hmac": { + "label": "HMACジェネレーター", + "description": "キーとメッセージから構成されるハッシュベースメッセージ認証コード(HMAC)を生成" + }, + "password": { + "label": "パスワードジェネレーター", + "description": "安全なパスワードを生成" + }, + "uuid": { + "label": "UUIDジェネレーター", + "description": "汎用一意識別子(UUID)を生成" + } }, - "encodeDecode": { - "label": "エンコーダー/デコーダー", - "url": "URLエンコーダー/デコーダー", - "base64": "Base64エンコーダー/デコーダー" + "web": { + "label": "ウェブ", + "urlParser": { + "label": "URLパーサー", + "description": "URLをコンポーネントに解析" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "URLをエンコード、またはデコード", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "テキストをURL対応のslugに変換" + } }, "form": { + "input": "入力", + "output": "出力", "inputString": "入力文字列", "outputString": "出力文字列", "inputUrl": "入力URL", "outputUrl": "出力URL", - "parsedUrl": "解析済みURL", - "splitQueryString": "クエリ文字列の分割", + "parsedUrl": "解析されたURL", + "splitQueryString": "Query Stringを分割", "key": "キー", "value": "値", "component": "コンポーネント", "result": "結果", - "secretKey": "シークレットキー", + "secretKey": "秘密キー", "algorithm": "アルゴリズム", "version": "バージョン", "amount": "数量", @@ -40,6 +132,12 @@ "numbers": "数字", "symbols": "記号", "lowercase": "小文字", - "uppercase": "大文字" + "uppercase": "大文字", + "placeholder": { + "text": "テキストを入力", + "value": "値を入力", + "secretKey": "秘密キーを入力", + "url": "URLを入力" + } } } diff --git a/src/main/i18n/locales/ja_JP/menu.json b/src/main/i18n/locales/ja_JP/menu.json index af1084c4..56e50077 100644 --- a/src/main/i18n/locales/ja_JP/menu.json +++ b/src/main/i18n/locales/ja_JP/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "環境設定", + "devtools": "開発者ツール", "update": "アップデートを確認...", "quit": "massCodeを終了", "about": "massCodeについて", diff --git a/src/main/i18n/locales/pl_PL/devtools.json b/src/main/i18n/locales/pl_PL/devtools.json index fe054bec..73daf368 100644 --- a/src/main/i18n/locales/pl_PL/devtools.json +++ b/src/main/i18n/locales/pl_PL/devtools.json @@ -1,31 +1,123 @@ { "label": "Narzędzia deweloperskie", - "textTools": { - "label": "Narzędzia tekstowe", - "caseConverter": "Konwerter wielkości liter", - "urlParser": "Parser URL", - "slugGenerator": "Generator slugów", - "sortLines": "Sortowanie linii" + "converters": { + "label": "Konwertery", + "caseConverter": { + "label": "Konwerter wielkości liter", + "description": "Przekształcanie tekstu do różnych formatów", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Tekst na Unicode", + "description": "Konwertowanie tekstu na Unicode i odwrotnie", + "modes": { + "textToUnicode": "Tekst → Unicode", + "unicodeToText": "Unicode → Tekst" + } + }, + "textToAscii": { + "label": "Tekst na ASCII Binary", + "description": "Konwertowanie tekstu na ASCII binary i odwrotnie", + "modes": { + "textToAscii": "Tekst → ASCII", + "asciiToText": "ASCII → Tekst" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Kodowanie lub dekodowanie tekstu do Base64", + "modes": { + "textToBase64": "Tekst → Base64", + "base64ToText": "Base64 → Tekst" + } + }, + "jsonToYaml": { + "label": "JSON na YAML", + "description": "Konwertowanie JSON na YAML i odwrotnie", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON na TOML", + "description": "Konwertowanie JSON na TOML i odwrotnie", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON na XML", + "description": "Konwertowanie JSON na XML i odwrotnie", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Konwerter kolorów", + "description": "Konwertowanie kolorów między różnymi formatami" + } }, "crypto": { "label": "Kryptografia / Bezpieczeństwo", - "hashGenerator": "Generator hashy", - "hmacGenerator": "Generator HMAC", - "passGenerator": "Generator haseł", - "uuidGenerator": "Generator UUID" + "hash": { + "label": "Generator hash", + "description": "Generowanie hashy z tekstu" + }, + "hmac": { + "label": "Generator HMAC", + "description": "Generowanie kodu uwierzytelniania wiadomości opartego na hash (HMAC) złożonego z klucza i wiadomości" + }, + "password": { + "label": "Generator haseł", + "description": "Generowanie bezpiecznego hasła" + }, + "uuid": { + "label": "Generator UUID", + "description": "Generowanie uniwersalnego unikalnego identyfikatora (UUID)" + } }, - "encodeDecode": { - "label": "Kodery / Dekodery", - "url": "Koder / Dekoder URL", - "base64": "Koder / Dekoder Base64" + "web": { + "label": "Web", + "urlParser": { + "label": "Parser URL", + "description": "Parsowanie URL na komponenty" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "Kodowanie lub dekodowanie URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Konwertowanie tekstu na slug przyjazny URL" + } }, "form": { - "inputString": "Tekst wejściowy", - "outputString": "Tekst wyjściowy", + "input": "Wejście", + "output": "Wyjście", + "inputString": "Ciąg wejściowy", + "outputString": "Ciąg wyjściowy", "inputUrl": "URL wejściowy", "outputUrl": "URL wyjściowy", - "parsedUrl": "Przetworzony URL", - "splitQueryString": "Podziel ciąg zapytania", + "parsedUrl": "Sparsowany URL", + "splitQueryString": "Podziel Query String", "key": "Klucz", "value": "Wartość", "component": "Komponent", @@ -40,6 +132,12 @@ "numbers": "Cyfry", "symbols": "Symbole", "lowercase": "Małe litery", - "uppercase": "Wielkie litery" + "uppercase": "Wielkie litery", + "placeholder": { + "text": "Wprowadź tekst", + "value": "Wprowadź wartość", + "secretKey": "Wprowadź klucz tajny", + "url": "Wprowadź URL" + } } } diff --git a/src/main/i18n/locales/pl_PL/menu.json b/src/main/i18n/locales/pl_PL/menu.json index 305617ce..642a9fbb 100644 --- a/src/main/i18n/locales/pl_PL/menu.json +++ b/src/main/i18n/locales/pl_PL/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Preferencje", + "devtools": "Narzędzia deweloperskie", "update": "Sprawdź aktualizacje...", "quit": "Zakończ massCode", "about": "O massCode", diff --git a/src/main/i18n/locales/pt_BR/devtools.json b/src/main/i18n/locales/pt_BR/devtools.json index efa2094d..2b39d164 100644 --- a/src/main/i18n/locales/pt_BR/devtools.json +++ b/src/main/i18n/locales/pt_BR/devtools.json @@ -1,25 +1,117 @@ { - "label": "Ferramentas de Desenvolvedor", - "textTools": { - "label": "Ferramentas de Texto", - "caseConverter": "Conversor de Maiúsculas/Minúsculas", - "urlParser": "URL Parser", - "slugGenerator": "Gerador de Slug", - "sortLines": "Ordenar Linhas" + "label": "Ferramentas de Desenvolvimento", + "converters": { + "label": "Conversores", + "caseConverter": { + "label": "Conversor de Maiúsculas", + "description": "Transformar texto em diferentes casos", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Texto para Unicode", + "description": "Converter texto para Unicode e vice-versa", + "modes": { + "textToUnicode": "Texto → Unicode", + "unicodeToText": "Unicode → Texto" + } + }, + "textToAscii": { + "label": "Texto para ASCII Binary", + "description": "Converter texto para ASCII binary e vice-versa", + "modes": { + "textToAscii": "Texto → ASCII", + "asciiToText": "ASCII → Texto" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Codificar ou decodificar texto para Base64", + "modes": { + "textToBase64": "Texto → Base64", + "base64ToText": "Base64 → Texto" + } + }, + "jsonToYaml": { + "label": "JSON para YAML", + "description": "Converter JSON para YAML e vice-versa", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON para TOML", + "description": "Converter JSON para TOML e vice-versa", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON para XML", + "description": "Converter JSON para XML e vice-versa", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Conversor de Cores", + "description": "Converter cores entre diferentes formatos" + } }, "crypto": { "label": "Criptografia / Segurança", - "hashGenerator": "Gerador de Hash", - "hmacGenerator": "Gerador de HMAC", - "passGenerator": "Gerador de Senha", - "uuidGenerator": "Gerador de UUID" + "hash": { + "label": "Gerador de Hash", + "description": "Gerar hashes a partir de texto" + }, + "hmac": { + "label": "Gerador HMAC", + "description": "Gerar código de autenticação de mensagem baseado em hash (HMAC) composto por uma chave e uma mensagem" + }, + "password": { + "label": "Gerador de Senhas", + "description": "Gerar uma senha segura" + }, + "uuid": { + "label": "Gerador UUID", + "description": "Gerar um identificador único universal (UUID)" + } }, - "encodeDecode": { - "label": "Codificadores / Decodificadores", - "url": "Codificador / Decodificador de URL", - "base64": "Codificador / Decodificador Base64" + "web": { + "label": "Web", + "urlParser": { + "label": "Analisador de URL", + "description": "Analisar uma URL em seus componentes" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "Codificar ou decodificar URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Converter texto em um slug amigável para URL" + } }, "form": { + "input": "Entrada", + "output": "Saída", "inputString": "String de Entrada", "outputString": "String de Saída", "inputUrl": "URL de Entrada", @@ -40,6 +132,12 @@ "numbers": "Números", "symbols": "Símbolos", "lowercase": "Minúsculas", - "uppercase": "Maiúsculas" + "uppercase": "Maiúsculas", + "placeholder": { + "text": "Digite um texto", + "value": "Digite um valor", + "secretKey": "Digite uma chave secreta", + "url": "Digite uma URL" + } } } diff --git a/src/main/i18n/locales/pt_BR/menu.json b/src/main/i18n/locales/pt_BR/menu.json index 1ecfb0dc..4a48a201 100644 --- a/src/main/i18n/locales/pt_BR/menu.json +++ b/src/main/i18n/locales/pt_BR/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Preferências", + "devtools": "Ferramentas de Desenvolvedor", "update": "Verificar Atualizações...", "quit": "Sair do massCode", "about": "Sobre o massCode", diff --git a/src/main/i18n/locales/ro_RO/devtools.json b/src/main/i18n/locales/ro_RO/devtools.json index feba38a0..5e022d3d 100644 --- a/src/main/i18n/locales/ro_RO/devtools.json +++ b/src/main/i18n/locales/ro_RO/devtools.json @@ -1,27 +1,119 @@ { "label": "Instrumente pentru Dezvoltatori", - "textTools": { - "label": "Instrumente Text", - "caseConverter": "Convertor Majuscule/Minuscule", - "urlParser": "URL Parser", - "slugGenerator": "Generator Slug", - "sortLines": "Sortare Linii" + "converters": { + "label": "Convertoare", + "caseConverter": { + "label": "Convertor de Majuscule", + "description": "Transformă textul în diferite formate de majuscule", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Text în Unicode", + "description": "Convertește textul în Unicode și invers", + "modes": { + "textToUnicode": "Text → Unicode", + "unicodeToText": "Unicode → Text" + } + }, + "textToAscii": { + "label": "Text în ASCII Binary", + "description": "Convertește textul în ASCII binary și invers", + "modes": { + "textToAscii": "Text → ASCII", + "asciiToText": "ASCII → Text" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Codifică sau decodifică textul în Base64", + "modes": { + "textToBase64": "Text → Base64", + "base64ToText": "Base64 → Text" + } + }, + "jsonToYaml": { + "label": "JSON în YAML", + "description": "Convertește JSON în YAML și invers", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON în TOML", + "description": "Convertește JSON în TOML și invers", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON în XML", + "description": "Convertește JSON în XML și invers", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Convertor de Culori", + "description": "Convertește culorile între diferite formate" + } }, "crypto": { "label": "Criptografie / Securitate", - "hashGenerator": "Generator Hash", - "hmacGenerator": "Generator HMAC", - "passGenerator": "Generator Parole", - "uuidGenerator": "Generator UUID" + "hash": { + "label": "Generator Hash", + "description": "Generează hash-uri din text" + }, + "hmac": { + "label": "Generator HMAC", + "description": "Generează cod de autentificare a mesajului bazat pe hash (HMAC) compus dintr-o cheie și un mesaj" + }, + "password": { + "label": "Generator de Parole", + "description": "Generează o parolă sigură" + }, + "uuid": { + "label": "Generator UUID", + "description": "Generează un identificator unic universal (UUID)" + } }, - "encodeDecode": { - "label": "Codificatori / Decodificatori", - "url": "Codificator / Decodificator URL", - "base64": "Codificator / Decodificator Base64" + "web": { + "label": "Web", + "urlParser": { + "label": "Analizor URL", + "description": "Analizează un URL în componentele sale" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "Codifică sau decodifică URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Convertește textul într-un slug prietenos cu URL" + } }, "form": { - "inputString": "String de Intrare", - "outputString": "String de Ieșire", + "input": "Intrare", + "output": "Ieșire", + "inputString": "Șir de Intrare", + "outputString": "Șir de Ieșire", "inputUrl": "URL de Intrare", "outputUrl": "URL de Ieșire", "parsedUrl": "URL Analizat", @@ -40,6 +132,12 @@ "numbers": "Numere", "symbols": "Simboluri", "lowercase": "Minuscule", - "uppercase": "Majuscule" + "uppercase": "Majuscule", + "placeholder": { + "text": "Introduceți un text", + "value": "Introduceți o valoare", + "secretKey": "Introduceți o cheie secretă", + "url": "Introduceți un URL" + } } } diff --git a/src/main/i18n/locales/ro_RO/menu.json b/src/main/i18n/locales/ro_RO/menu.json index 59e66e09..50d47d6c 100644 --- a/src/main/i18n/locales/ro_RO/menu.json +++ b/src/main/i18n/locales/ro_RO/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Preferințe", + "devtools": "Instrumente pentru Dezvoltatori", "update": "Verifică Actualizări...", "quit": "Închide massCode", "about": "Despre massCode", diff --git a/src/main/i18n/locales/ru_RU/devtools.json b/src/main/i18n/locales/ru_RU/devtools.json index 0c91b1c0..47229069 100644 --- a/src/main/i18n/locales/ru_RU/devtools.json +++ b/src/main/i18n/locales/ru_RU/devtools.json @@ -1,31 +1,123 @@ { "label": "Инструменты разработчика", - "textTools": { - "label": "Текстовые инструменты", - "caseConverter": "Конвертер регистра", - "urlParser": "Парсер URL", - "slugGenerator": "Генератор slug", - "sortLines": "Сортировка строк" + "converters": { + "label": "Конвертеры", + "caseConverter": { + "label": "Конвертер регистра", + "description": "Преобразование текста в различные регистры", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Текст в Unicode", + "description": "Конвертация текста в Unicode и обратно", + "modes": { + "textToUnicode": "Текст → Unicode", + "unicodeToText": "Unicode → Текст" + } + }, + "textToAscii": { + "label": "Текст в ASCII Binary", + "description": "Конвертация текста в ASCII binary и обратно", + "modes": { + "textToAscii": "Текст → ASCII", + "asciiToText": "ASCII → Текст" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Кодирование или декодирование текста в Base64", + "modes": { + "textToBase64": "Текст → Base64", + "base64ToText": "Base64 → Текст" + } + }, + "jsonToYaml": { + "label": "JSON в YAML", + "description": "Конвертация JSON в YAML и обратно", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON в TOML", + "description": "Конвертация JSON в TOML и обратно", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON в XML", + "description": "Конвертация JSON в XML и обратно", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Конвертер цветов", + "description": "Конвертация цветов между различными форматами" + } }, "crypto": { "label": "Криптография / Безопасность", - "hashGenerator": "Генератор Hash", - "hmacGenerator": "Генератор HMAC", - "passGenerator": "Генератор паролей", - "uuidGenerator": "Генератор UUID" + "hash": { + "label": "Генератор хешей", + "description": "Генерация хешей из текста" + }, + "hmac": { + "label": "HMAC Генератор", + "description": "Генерация кода аутентификации сообщений на основе хеша (HMAC) из ключа и сообщения" + }, + "password": { + "label": "Генератор паролей", + "description": "Генерация безопасного пароля" + }, + "uuid": { + "label": "UUID Генератор", + "description": "Генерация универсального уникального идентификатора (UUID)" + } }, - "encodeDecode": { - "label": "Кодировщики / Декодеры", - "url": "URL кодировщик / декодер", - "base64": "Base64 кодировщик / декодер" + "web": { + "label": "Веб", + "urlParser": { + "label": "URL Парсер", + "description": "Разбор URL на компоненты" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "Кодирование или декодирование URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Преобразование текста в URL-совместимый slug" + } }, "form": { + "input": "Ввод", + "output": "Вывод", "inputString": "Входная строка", "outputString": "Выходная строка", "inputUrl": "Входной URL", "outputUrl": "Выходной URL", "parsedUrl": "Разобранный URL", - "splitQueryString": "Разделенная строка запроса", + "splitQueryString": "Разделить Query String", "key": "Ключ", "value": "Значение", "component": "Компонент", @@ -37,9 +129,15 @@ "type": "Тип", "length": "Длина", "options": "Опции", - "numbers": "Цифры", + "numbers": "Числа", "symbols": "Символы", - "lowercase": "Нижний регистр", - "uppercase": "Верхний регистр" + "lowercase": "Строчные", + "uppercase": "Заглавные", + "placeholder": { + "text": "Введите текст", + "value": "Введите значение", + "secretKey": "Введите секретный ключ", + "url": "Введите URL" + } } } diff --git a/src/main/i18n/locales/ru_RU/menu.json b/src/main/i18n/locales/ru_RU/menu.json index 4a3878c3..c0f8e338 100644 --- a/src/main/i18n/locales/ru_RU/menu.json +++ b/src/main/i18n/locales/ru_RU/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Настройки", + "devtools": "Инструменты разработчика", "update": "Проверить обновления...", "quit": "Выйти из massCode", "about": "О massCode", diff --git a/src/main/i18n/locales/tr_TR/devtools.json b/src/main/i18n/locales/tr_TR/devtools.json index b62c581e..8c62119d 100644 --- a/src/main/i18n/locales/tr_TR/devtools.json +++ b/src/main/i18n/locales/tr_TR/devtools.json @@ -1,45 +1,143 @@ { "label": "Geliştirici Araçları", - "textTools": { - "label": "Metin Araçları", - "caseConverter": "Büyük/Küçük Harf Dönüştürücü", - "urlParser": "URL Parser", - "slugGenerator": "Slug Oluşturucu", - "sortLines": "Satırları Sırala" + "converters": { + "label": "Dönüştürücüler", + "caseConverter": { + "label": "Büyük/Küçük Harf Dönüştürücü", + "description": "Metni farklı büyük/küçük harf biçimlerine dönüştür", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Metin Unicode'a", + "description": "Metni Unicode'a dönüştür ve tersi", + "modes": { + "textToUnicode": "Metin → Unicode", + "unicodeToText": "Unicode → Metin" + } + }, + "textToAscii": { + "label": "Metin ASCII Binary'ye", + "description": "Metni ASCII binary'ye dönüştür ve tersi", + "modes": { + "textToAscii": "Metin → ASCII", + "asciiToText": "ASCII → Metin" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Metni Base64'e kodla veya çöz", + "modes": { + "textToBase64": "Metin → Base64", + "base64ToText": "Base64 → Metin" + } + }, + "jsonToYaml": { + "label": "JSON'dan YAML'a", + "description": "JSON'u YAML'a dönüştür ve tersi", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON'dan TOML'a", + "description": "JSON'u TOML'a dönüştür ve tersi", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON'dan XML'e", + "description": "JSON'u XML'e dönüştür ve tersi", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Renk Dönüştürücü", + "description": "Renkleri farklı formatlar arasında dönüştür" + } }, "crypto": { "label": "Kriptografi / Güvenlik", - "hashGenerator": "Hash Oluşturucu", - "hmacGenerator": "HMAC Oluşturucu", - "passGenerator": "Şifre Oluşturucu", - "uuidGenerator": "UUID Oluşturucu" + "hash": { + "label": "Hash Üretici", + "description": "Metinden hash üret" + }, + "hmac": { + "label": "HMAC Üretici", + "description": "Anahtar ve mesajdan oluşan hash tabanlı mesaj kimlik doğrulama kodu (HMAC) üret" + }, + "password": { + "label": "Şifre Üretici", + "description": "Güvenli şifre üret" + }, + "uuid": { + "label": "UUID Üretici", + "description": "Evrensel benzersiz tanımlayıcı (UUID) üret" + } }, - "encodeDecode": { - "label": "Kodlayıcılar / Kod Çözücüler", - "url": "URL Kodlayıcı / Kod Çözücü", - "base64": "Base64 Kodlayıcı / Kod Çözücü" + "web": { + "label": "Web", + "urlParser": { + "label": "URL Ayrıştırıcı", + "description": "URL'yi bileşenlerine ayrıştır" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "URL'yi kodla veya çöz", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Metni URL dostu slug'a dönüştür" + } }, "form": { - "inputString": "Giriş Metni", - "outputString": "Çıkış Metni", - "inputUrl": "Giriş URL'i", - "outputUrl": "Çıkış URL'i", + "input": "Giriş", + "output": "Çıkış", + "inputString": "Giriş Dizesi", + "outputString": "Çıkış Dizesi", + "inputUrl": "Giriş URL", + "outputUrl": "Çıkış URL", "parsedUrl": "Ayrıştırılmış URL", - "splitQueryString": "Sorgu Dizesini Böl", + "splitQueryString": "Query String'i Böl", "key": "Anahtar", "value": "Değer", "component": "Bileşen", "result": "Sonuç", "secretKey": "Gizli Anahtar", "algorithm": "Algoritma", - "version": "Versiyon", + "version": "Sürüm", "amount": "Miktar", "type": "Tür", "length": "Uzunluk", "options": "Seçenekler", "numbers": "Sayılar", "symbols": "Semboller", - "lowercase": "Küçük Harf", - "uppercase": "Büyük Harf" + "lowercase": "Küçük harf", + "uppercase": "Büyük harf", + "placeholder": { + "text": "Metin girin", + "value": "Değer girin", + "secretKey": "Gizli anahtar girin", + "url": "URL girin" + } } } diff --git a/src/main/i18n/locales/tr_TR/menu.json b/src/main/i18n/locales/tr_TR/menu.json index 5dc37e05..dc3ae5a1 100644 --- a/src/main/i18n/locales/tr_TR/menu.json +++ b/src/main/i18n/locales/tr_TR/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Tercihler", + "devtools": "Geliştirici Araçları", "update": "Güncellemeleri Kontrol Et...", "quit": "massCode'dan Çık", "about": "massCode Hakkında", diff --git a/src/main/i18n/locales/uk_UA/devtools.json b/src/main/i18n/locales/uk_UA/devtools.json index dd8321fb..ae4ac63d 100644 --- a/src/main/i18n/locales/uk_UA/devtools.json +++ b/src/main/i18n/locales/uk_UA/devtools.json @@ -1,31 +1,123 @@ { "label": "Інструменти розробника", - "textTools": { - "label": "Текстові інструменти", - "caseConverter": "Конвертер регістру", - "urlParser": "URL Parser", - "slugGenerator": "Генератор slug", - "sortLines": "Сортування рядків" + "converters": { + "label": "Конвертери", + "caseConverter": { + "label": "Конвертер регістру", + "description": "Перетворення тексту в різні регістри", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "Текст в Unicode", + "description": "Конвертація тексту в Unicode і навпаки", + "modes": { + "textToUnicode": "Текст → Unicode", + "unicodeToText": "Unicode → Текст" + } + }, + "textToAscii": { + "label": "Текст в ASCII Binary", + "description": "Конвертація тексту в ASCII binary і навпаки", + "modes": { + "textToAscii": "Текст → ASCII", + "asciiToText": "ASCII → Текст" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "Кодування або декодування тексту в Base64", + "modes": { + "textToBase64": "Текст → Base64", + "base64ToText": "Base64 → Текст" + } + }, + "jsonToYaml": { + "label": "JSON в YAML", + "description": "Конвертація JSON в YAML і навпаки", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON в TOML", + "description": "Конвертація JSON в TOML і навпаки", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON в XML", + "description": "Конвертація JSON в XML і навпаки", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "Конвертер кольорів", + "description": "Конвертація кольорів між різними форматами" + } }, "crypto": { "label": "Криптографія / Безпека", - "hashGenerator": "Генератор хешів", - "hmacGenerator": "Генератор HMAC", - "passGenerator": "Генератор паролів", - "uuidGenerator": "Генератор UUID" + "hash": { + "label": "Генератор хешів", + "description": "Генерація хешів з тексту" + }, + "hmac": { + "label": "HMAC Генератор", + "description": "Генерація коду автентифікації повідомлень на основі хешу (HMAC) з ключа та повідомлення" + }, + "password": { + "label": "Генератор паролів", + "description": "Генерація безпечного пароля" + }, + "uuid": { + "label": "UUID Генератор", + "description": "Генерація універсального унікального ідентифікатора (UUID)" + } }, - "encodeDecode": { - "label": "Кодування / Декодування", - "url": "Кодування / Декодування URL", - "base64": "Кодування / Декодування Base64" + "web": { + "label": "Веб", + "urlParser": { + "label": "URL Парсер", + "description": "Розбір URL на компоненти" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "Кодування або декодування URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "Перетворення тексту в URL-сумісний slug" + } }, "form": { + "input": "Введення", + "output": "Виведення", "inputString": "Вхідний рядок", "outputString": "Вихідний рядок", "inputUrl": "Вхідний URL", "outputUrl": "Вихідний URL", "parsedUrl": "Розібраний URL", - "splitQueryString": "Розділити рядок запиту", + "splitQueryString": "Розділити Query String", "key": "Ключ", "value": "Значення", "component": "Компонент", @@ -39,7 +131,13 @@ "options": "Опції", "numbers": "Цифри", "symbols": "Символи", - "lowercase": "Нижній регістр", - "uppercase": "Верхній регістр" + "lowercase": "Малі літери", + "uppercase": "Великі літери", + "placeholder": { + "text": "Введіть текст", + "value": "Введіть значення", + "secretKey": "Введіть секретний ключ", + "url": "Введіть URL" + } } } diff --git a/src/main/i18n/locales/uk_UA/menu.json b/src/main/i18n/locales/uk_UA/menu.json index 55849300..38874418 100644 --- a/src/main/i18n/locales/uk_UA/menu.json +++ b/src/main/i18n/locales/uk_UA/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "Налаштування", + "devtools": "Інструменти розробника", "update": "Перевірити оновлення...", "quit": "Вийти з massCode", "about": "Про massCode", diff --git a/src/main/i18n/locales/zh_CN/devtools.json b/src/main/i18n/locales/zh_CN/devtools.json index 495927b2..ff9748b8 100644 --- a/src/main/i18n/locales/zh_CN/devtools.json +++ b/src/main/i18n/locales/zh_CN/devtools.json @@ -1,31 +1,123 @@ { "label": "开发者工具", - "textTools": { - "label": "文本工具", - "caseConverter": "大小写转换", - "urlParser": "URL 解析器", - "slugGenerator": "Slug 生成器", - "sortLines": "行排序" + "converters": { + "label": "转换器", + "caseConverter": { + "label": "大小写转换器", + "description": "将文本转换为不同的大小写格式", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "文本转Unicode", + "description": "将文本转换为Unicode,反之亦然", + "modes": { + "textToUnicode": "文本 → Unicode", + "unicodeToText": "Unicode → 文本" + } + }, + "textToAscii": { + "label": "文本转ASCII Binary", + "description": "将文本转换为ASCII binary,反之亦然", + "modes": { + "textToAscii": "文本 → ASCII", + "asciiToText": "ASCII → 文本" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "将文本编码或解码为Base64", + "modes": { + "textToBase64": "文本 → Base64", + "base64ToText": "Base64 → 文本" + } + }, + "jsonToYaml": { + "label": "JSON转YAML", + "description": "将JSON转换为YAML,反之亦然", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON转TOML", + "description": "将JSON转换为TOML,反之亦然", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON转XML", + "description": "将JSON转换为XML,反之亦然", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "颜色转换器", + "description": "在不同格式之间转换颜色" + } }, "crypto": { - "label": "加密/安全", - "hashGenerator": "哈希生成器", - "hmacGenerator": "HMAC 生成器", - "passGenerator": "密码生成器", - "uuidGenerator": "UUID 生成器" + "label": "加密 / 安全", + "hash": { + "label": "哈希生成器", + "description": "从文本生成哈希值" + }, + "hmac": { + "label": "HMAC生成器", + "description": "生成由密钥和消息组成的基于哈希的消息认证码(HMAC)" + }, + "password": { + "label": "密码生成器", + "description": "生成安全密码" + }, + "uuid": { + "label": "UUID生成器", + "description": "生成通用唯一标识符(UUID)" + } }, - "encodeDecode": { - "label": "编码/解码器", - "url": "URL 编码/解码器", - "base64": "Base64 编码/解码器" + "web": { + "label": "网络", + "urlParser": { + "label": "URL解析器", + "description": "将URL解析为其组件" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "编码或解码URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "将文本转换为URL友好的slug" + } }, "form": { + "input": "输入", + "output": "输出", "inputString": "输入字符串", "outputString": "输出字符串", - "inputUrl": "输入 URL", - "outputUrl": "输出 URL", - "parsedUrl": "已解析的 URL", - "splitQueryString": "拆分查询字符串", + "inputUrl": "输入URL", + "outputUrl": "输出URL", + "parsedUrl": "解析的URL", + "splitQueryString": "分割Query String", "key": "键", "value": "值", "component": "组件", @@ -40,6 +132,12 @@ "numbers": "数字", "symbols": "符号", "lowercase": "小写", - "uppercase": "大写" + "uppercase": "大写", + "placeholder": { + "text": "输入文本", + "value": "输入值", + "secretKey": "输入密钥", + "url": "输入URL" + } } } diff --git a/src/main/i18n/locales/zh_CN/menu.json b/src/main/i18n/locales/zh_CN/menu.json index 385db360..1cefb9ea 100644 --- a/src/main/i18n/locales/zh_CN/menu.json +++ b/src/main/i18n/locales/zh_CN/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "首选项", + "devtools": "开发者工具", "update": "检查更新...", "quit": "退出 massCode", "about": "关于 massCode", diff --git a/src/main/i18n/locales/zh_HK/devtools.json b/src/main/i18n/locales/zh_HK/devtools.json index 432bde69..042f4790 100644 --- a/src/main/i18n/locales/zh_HK/devtools.json +++ b/src/main/i18n/locales/zh_HK/devtools.json @@ -1,37 +1,129 @@ { "label": "開發者工具", - "textTools": { - "label": "文本工具", - "caseConverter": "大小寫轉換", - "urlParser": "URL 解析器", - "slugGenerator": "Slug 生成器", - "sortLines": "行排序" + "converters": { + "label": "轉換器", + "caseConverter": { + "label": "大小寫轉換器", + "description": "將文字轉換為不同的大小寫格式", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "文字轉Unicode", + "description": "將文字轉換為Unicode,反之亦然", + "modes": { + "textToUnicode": "文字 → Unicode", + "unicodeToText": "Unicode → 文字" + } + }, + "textToAscii": { + "label": "文字轉ASCII Binary", + "description": "將文字轉換為ASCII binary,反之亦然", + "modes": { + "textToAscii": "文字 → ASCII", + "asciiToText": "ASCII → 文字" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "將文字編碼或解碼為Base64", + "modes": { + "textToBase64": "文字 → Base64", + "base64ToText": "Base64 → 文字" + } + }, + "jsonToYaml": { + "label": "JSON轉YAML", + "description": "將JSON轉換為YAML,反之亦然", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON轉TOML", + "description": "將JSON轉換為TOML,反之亦然", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON轉XML", + "description": "將JSON轉換為XML,反之亦然", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "顏色轉換器", + "description": "在不同格式之間轉換顏色" + } }, "crypto": { - "label": "加密/安全", - "hashGenerator": "哈希生成器", - "hmacGenerator": "HMAC 生成器", - "passGenerator": "密碼生成器", - "uuidGenerator": "UUID 生成器" + "label": "加密 / 安全", + "hash": { + "label": "雜湊產生器", + "description": "從文字產生雜湊值" + }, + "hmac": { + "label": "HMAC產生器", + "description": "產生由金鑰和訊息組成的基於雜湊的訊息認證碼(HMAC)" + }, + "password": { + "label": "密碼產生器", + "description": "產生安全密碼" + }, + "uuid": { + "label": "UUID產生器", + "description": "產生通用唯一識別碼(UUID)" + } }, - "encodeDecode": { - "label": "編碼/解碼器", - "url": "URL 編碼/解碼器", - "base64": "Base64 編碼/解碼器" + "web": { + "label": "網絡", + "urlParser": { + "label": "URL解析器", + "description": "將URL解析為其組件" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "編碼或解碼URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "將文字轉換為URL友好的slug" + } }, "form": { - "inputString": "輸入字符串", - "outputString": "輸出字符串", - "inputUrl": "輸入 URL", - "outputUrl": "輸出 URL", - "parsedUrl": "已解析的 URL", - "splitQueryString": "拆分查詢字符串", - "key": "鍵", + "input": "輸入", + "output": "輸出", + "inputString": "輸入字串", + "outputString": "輸出字串", + "inputUrl": "輸入URL", + "outputUrl": "輸出URL", + "parsedUrl": "解析的URL", + "splitQueryString": "分割Query String", + "key": "金鑰", "value": "值", "component": "組件", "result": "結果", - "secretKey": "密鑰", - "algorithm": "算法", + "secretKey": "秘密金鑰", + "algorithm": "演算法", "version": "版本", "amount": "數量", "type": "類型", @@ -40,6 +132,12 @@ "numbers": "數字", "symbols": "符號", "lowercase": "小寫", - "uppercase": "大寫" + "uppercase": "大寫", + "placeholder": { + "text": "輸入文字", + "value": "輸入值", + "secretKey": "輸入秘密金鑰", + "url": "輸入URL" + } } } diff --git a/src/main/i18n/locales/zh_HK/menu.json b/src/main/i18n/locales/zh_HK/menu.json index ab540519..28a538f0 100644 --- a/src/main/i18n/locales/zh_HK/menu.json +++ b/src/main/i18n/locales/zh_HK/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "偏好設置", + "devtools": "開發者工具", "update": "檢查更新...", "quit": "退出 massCode", "about": "關於 massCode", diff --git a/src/main/i18n/locales/zh_TW/devtools.json b/src/main/i18n/locales/zh_TW/devtools.json index 46f39e96..29e436c2 100644 --- a/src/main/i18n/locales/zh_TW/devtools.json +++ b/src/main/i18n/locales/zh_TW/devtools.json @@ -1,36 +1,128 @@ { "label": "開發者工具", - "textTools": { - "label": "文字工具", - "caseConverter": "大小寫轉換", - "urlParser": "URL 解析器", - "slugGenerator": "Slug 生成器", - "sortLines": "行排序" + "converters": { + "label": "轉換器", + "caseConverter": { + "label": "大小寫轉換器", + "description": "將文字轉換為不同的大小寫格式", + "caseType": { + "uppercase": "Uppercase", + "lowercase": "Lowercase", + "camelcase": "Camelcase", + "capitalize": "Capitalize", + "constantcase": "Constantcase", + "snakecase": "Snakecase", + "kebabcase": "Kebabcase", + "pascalcase": "Pascalcase", + "dotcase": "Dotcase", + "pathcase": "Pathcase" + } + }, + "textToUnicode": { + "label": "文字轉Unicode", + "description": "將文字轉換為Unicode,反之亦然", + "modes": { + "textToUnicode": "文字 → Unicode", + "unicodeToText": "Unicode → 文字" + } + }, + "textToAscii": { + "label": "文字轉ASCII Binary", + "description": "將文字轉換為ASCII binary,反之亦然", + "modes": { + "textToAscii": "文字 → ASCII", + "asciiToText": "ASCII → 文字" + } + }, + "base64": { + "label": "Base64 Encoder / Decoder", + "description": "將文字編碼或解碼為Base64", + "modes": { + "textToBase64": "文字 → Base64", + "base64ToText": "Base64 → 文字" + } + }, + "jsonToYaml": { + "label": "JSON轉YAML", + "description": "將JSON轉換為YAML,反之亦然", + "modes": { + "jsonToYaml": "JSON → YAML", + "yamlToJson": "YAML → JSON" + } + }, + "jsonToToml": { + "label": "JSON轉TOML", + "description": "將JSON轉換為TOML,反之亦然", + "modes": { + "jsonToToml": "JSON → TOML", + "tomlToJson": "TOML → JSON" + } + }, + "jsonToXml": { + "label": "JSON轉XML", + "description": "將JSON轉換為XML,反之亦然", + "modes": { + "jsonToXml": "JSON → XML", + "xmlToJson": "XML → JSON" + } + }, + "colorConverter": { + "label": "顏色轉換器", + "description": "在不同格式之間轉換顏色" + } }, "crypto": { "label": "加密 / 安全", - "hashGenerator": "雜湊生成器", - "hmacGenerator": "HMAC 生成器", - "passGenerator": "密碼生成器", - "uuidGenerator": "UUID 生成器" + "hash": { + "label": "雜湊產生器", + "description": "從文字產生雜湊值" + }, + "hmac": { + "label": "HMAC產生器", + "description": "產生由金鑰和訊息組成的基於雜湊的訊息認證碼(HMAC)" + }, + "password": { + "label": "密碼產生器", + "description": "產生安全密碼" + }, + "uuid": { + "label": "UUID產生器", + "description": "產生通用唯一識別碼(UUID)" + } }, - "encodeDecode": { - "label": "編碼 / 解碼", - "url": "URL 編碼 / 解碼", - "base64": "Base64 編碼 / 解碼" + "web": { + "label": "網路", + "urlParser": { + "label": "URL解析器", + "description": "將URL解析為其組件" + }, + "urlEncoder": { + "label": "URL Encoder / Decoder", + "description": "編碼或解碼URL", + "modes": { + "urlEncode": "URL Encode", + "urlDecode": "URL Decode" + } + }, + "slugify": { + "label": "Slugify", + "description": "將文字轉換為URL友好的slug" + } }, "form": { + "input": "輸入", + "output": "輸出", "inputString": "輸入字串", "outputString": "輸出字串", - "inputUrl": "輸入 URL", - "outputUrl": "輸出 URL", - "parsedUrl": "已解析 URL", - "splitQueryString": "分割查詢字串", - "key": "鍵", + "inputUrl": "輸入URL", + "outputUrl": "輸出URL", + "parsedUrl": "解析的URL", + "splitQueryString": "分割Query String", + "key": "金鑰", "value": "值", "component": "組件", "result": "結果", - "secretKey": "密鑰", + "secretKey": "秘密金鑰", "algorithm": "演算法", "version": "版本", "amount": "數量", @@ -40,6 +132,12 @@ "numbers": "數字", "symbols": "符號", "lowercase": "小寫", - "uppercase": "大寫" + "uppercase": "大寫", + "placeholder": { + "text": "輸入文字", + "value": "輸入值", + "secretKey": "輸入秘密金鑰", + "url": "輸入URL" + } } } diff --git a/src/main/i18n/locales/zh_TW/menu.json b/src/main/i18n/locales/zh_TW/menu.json index c6ada15d..bd390704 100644 --- a/src/main/i18n/locales/zh_TW/menu.json +++ b/src/main/i18n/locales/zh_TW/menu.json @@ -2,6 +2,7 @@ "app": { "label": "massCode", "preferences": "偏好設定", + "devtools": "開發者工具", "update": "檢查更新...", "quit": "退出 massCode", "about": "關於 massCode", diff --git a/src/main/menu/main.ts b/src/main/menu/main.ts index c35f8675..40f59d30 100644 --- a/src/main/menu/main.ts +++ b/src/main/menu/main.ts @@ -50,6 +50,15 @@ const appMenuItems: MenuConfig[] = [ type: 'separator' as any, platforms: ['darwin'], }, + { + id: 'devtools', + label: i18n.t('menu:app.devtools'), + accelerator: 'CommandOrControl+.', + click: () => send('main-menu:goto-devtools'), + }, + { + type: 'separator' as any, + }, { label: i18n.t('menu:app.hide'), platforms: ['darwin'], diff --git a/src/main/types/ipc.ts b/src/main/types/ipc.ts index 54e8ecfc..48c78cd0 100644 --- a/src/main/types/ipc.ts +++ b/src/main/types/ipc.ts @@ -11,6 +11,7 @@ type MainMenuAction = | 'font-size-reset' | 'format' | 'goto-preferences' + | 'goto-devtools' | 'new-folder' | 'new-fragment' | 'new-snippet' diff --git a/src/renderer/components/devtools/converters/Base64Converter.vue b/src/renderer/components/devtools/converters/Base64Converter.vue new file mode 100644 index 00000000..4dc45dbf --- /dev/null +++ b/src/renderer/components/devtools/converters/Base64Converter.vue @@ -0,0 +1,101 @@ + + + diff --git a/src/renderer/components/devtools/converters/CaseConverter.vue b/src/renderer/components/devtools/converters/CaseConverter.vue new file mode 100644 index 00000000..90bbf881 --- /dev/null +++ b/src/renderer/components/devtools/converters/CaseConverter.vue @@ -0,0 +1,126 @@ + + + diff --git a/src/renderer/components/devtools/converters/ColorConverter.vue b/src/renderer/components/devtools/converters/ColorConverter.vue new file mode 100644 index 00000000..2829e9f4 --- /dev/null +++ b/src/renderer/components/devtools/converters/ColorConverter.vue @@ -0,0 +1,386 @@ + + + diff --git a/src/renderer/components/devtools/converters/JsonToToml.vue b/src/renderer/components/devtools/converters/JsonToToml.vue new file mode 100644 index 00000000..ca90f5a2 --- /dev/null +++ b/src/renderer/components/devtools/converters/JsonToToml.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/renderer/components/devtools/converters/JsonToXml.vue b/src/renderer/components/devtools/converters/JsonToXml.vue new file mode 100644 index 00000000..c02d05de --- /dev/null +++ b/src/renderer/components/devtools/converters/JsonToXml.vue @@ -0,0 +1,207 @@ + + + diff --git a/src/renderer/components/devtools/converters/JsonToYaml.vue b/src/renderer/components/devtools/converters/JsonToYaml.vue new file mode 100644 index 00000000..14d0f838 --- /dev/null +++ b/src/renderer/components/devtools/converters/JsonToYaml.vue @@ -0,0 +1,112 @@ + + + diff --git a/src/renderer/components/devtools/converters/TextToAsciiBinary.vue b/src/renderer/components/devtools/converters/TextToAsciiBinary.vue new file mode 100644 index 00000000..2b9d2361 --- /dev/null +++ b/src/renderer/components/devtools/converters/TextToAsciiBinary.vue @@ -0,0 +1,117 @@ + + + diff --git a/src/renderer/components/devtools/converters/TextToUnicode.vue b/src/renderer/components/devtools/converters/TextToUnicode.vue new file mode 100644 index 00000000..66bbd0f0 --- /dev/null +++ b/src/renderer/components/devtools/converters/TextToUnicode.vue @@ -0,0 +1,108 @@ + + + diff --git a/src/renderer/components/devtools/crypto/Hash.vue b/src/renderer/components/devtools/crypto/Hash.vue new file mode 100644 index 00000000..7dc77701 --- /dev/null +++ b/src/renderer/components/devtools/crypto/Hash.vue @@ -0,0 +1,115 @@ + + + diff --git a/src/renderer/components/devtools/crypto/Hmac.vue b/src/renderer/components/devtools/crypto/Hmac.vue new file mode 100644 index 00000000..9e5f044c --- /dev/null +++ b/src/renderer/components/devtools/crypto/Hmac.vue @@ -0,0 +1,125 @@ + + + diff --git a/src/renderer/components/devtools/crypto/Password.vue b/src/renderer/components/devtools/crypto/Password.vue new file mode 100644 index 00000000..260d3de0 --- /dev/null +++ b/src/renderer/components/devtools/crypto/Password.vue @@ -0,0 +1,173 @@ + + + diff --git a/src/renderer/components/devtools/crypto/Uuid.vue b/src/renderer/components/devtools/crypto/Uuid.vue new file mode 100644 index 00000000..5a919c49 --- /dev/null +++ b/src/renderer/components/devtools/crypto/Uuid.vue @@ -0,0 +1,109 @@ + + + diff --git a/src/renderer/components/devtools/web/Slugify.vue b/src/renderer/components/devtools/web/Slugify.vue new file mode 100644 index 00000000..24c9625c --- /dev/null +++ b/src/renderer/components/devtools/web/Slugify.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/renderer/components/devtools/web/UrlEncoder.vue b/src/renderer/components/devtools/web/UrlEncoder.vue new file mode 100644 index 00000000..45b17e14 --- /dev/null +++ b/src/renderer/components/devtools/web/UrlEncoder.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/renderer/components/devtools/web/UrlParser.vue b/src/renderer/components/devtools/web/UrlParser.vue new file mode 100644 index 00000000..4d601138 --- /dev/null +++ b/src/renderer/components/devtools/web/UrlParser.vue @@ -0,0 +1,165 @@ + + + diff --git a/src/renderer/components/ui/color-picker/ColorPicker.vue b/src/renderer/components/ui/color-picker/ColorPicker.vue new file mode 100644 index 00000000..0f41ce6f --- /dev/null +++ b/src/renderer/components/ui/color-picker/ColorPicker.vue @@ -0,0 +1,421 @@ + + + diff --git a/src/renderer/components/ui/heading/Heading.vue b/src/renderer/components/ui/heading/Heading.vue new file mode 100644 index 00000000..81032615 --- /dev/null +++ b/src/renderer/components/ui/heading/Heading.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/renderer/components/ui/input/Input.vue b/src/renderer/components/ui/input/Input.vue index 53bf8fb0..1466cd35 100644 --- a/src/renderer/components/ui/input/Input.vue +++ b/src/renderer/components/ui/input/Input.vue @@ -9,10 +9,14 @@ interface Props { class?: string placeholder?: string clearable?: boolean - type?: 'text' | 'number' + type?: 'text' | 'textarea' | 'number' focus?: boolean select?: boolean disabled?: boolean + readonly?: boolean + rows?: number + error?: string + description?: string } defineOptions({ @@ -51,28 +55,60 @@ watchEffect(() => {