Skip to content

Commit 4262af4

Browse files
KEN0421claude
andcommitted
i18n: ko/es translations for 6 utility/text tools (batch 4)
base64-encoder, case-converter, color-converter, json-formatter, hash-generator, lorem-ipsum-generator. Status: ko 39/104, es 32/104. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 3030f7e commit 4262af4

12 files changed

Lines changed: 668 additions & 0 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"title": "Codificador / Decodificador Base64 (UTF-8 y URL-safe)",
3+
"shortDescription": "Codifica cualquier texto UTF-8 a Base64 o decodifícalo de vuelta. Activa la codificación URL-safe para uso en URLs y JWTs.",
4+
"description": "Escribe cualquier texto o pega una cadena Base64 para convertir en cualquier dirección. Maneja UTF-8 (incluyendo emoji y CJK) y soporta la variante URL-safe usada en JWT y OAuth.",
5+
"metaDescription": "Codificador y decodificador Base64 gratis con soporte UTF-8 y URL-safe. Convierte texto a Base64 o decodifica cadenas estilo JWT al instante en tu navegador.",
6+
"keywords": ["codificador base64", "decodificador base64", "url safe base64", "base64 utf8", "codificar texto"],
7+
"input": { "plain": "Texto plano", "encoded": "Cadena Base64" },
8+
"output": { "encoded": "Resultado codificado", "plain": "Resultado decodificado" },
9+
"mode": { "encode": "Codificar", "decode": "Decodificar" },
10+
"urlSafe": "URL-safe (-, _, sin padding)",
11+
"copy": "Copiar",
12+
"copied": "Copiado",
13+
"invalidInput": "Entrada Base64 no válida.",
14+
"article": {
15+
"sections": [
16+
{
17+
"heading": "Qué es y qué no es Base64",
18+
"paragraphs": [
19+
"Base64 codifica bytes arbitrarios usando un alfabeto de 64 caracteres (A-Z, a-z, 0-9, +, /, con relleno =). Es la forma estándar de incrustar datos binarios — bytes de imagen, blobs cifrados, tokens firmados — en formatos de solo texto como JSON, HTML o cabeceras de email. La salida es ~33% más grande que la entrada.",
20+
"Base64 es codificación, no cifrado. Cualquiera puede decodificar una cadena Base64 a sus bytes originales. No lo uses para ocultar secretos — usa un algoritmo de cifrado real si necesitas confidencialidad."
21+
]
22+
},
23+
{
24+
"heading": "URL-safe vs estándar",
25+
"paragraphs": [
26+
"Base64 estándar incluye '+' y '/', que tienen significados especiales en URLs y necesitan ser codificados con porcentaje. Base64 URL-safe (RFC 4648 §5) sustituye '+' por '-', '/' por '_', y elimina el relleno '=' final. JWTs, tokens OAuth y muchas APIs web usan la forma URL-safe.",
27+
"Si decodificas un JWT o token a mano, activa URL-safe. Si trabajas con email clásico o datos PDF incrustados, déjalo apagado. El decodificador acepta ambas formas cuando URL-safe está activo, ya que el alfabeto estándar es un superconjunto menos el par especial."
28+
]
29+
},
30+
{
31+
"heading": "Manejo UTF-8",
32+
"paragraphs": [
33+
"El antiguo btoa() del navegador solo maneja ASCII. Esta herramienta usa TextEncoder para convertir tu entrada a bytes UTF-8 primero, luego codifica esos bytes en Base64. Eso significa que emoji, caracteres CJK, latín con acentos y cualquier otro Unicode codifican y dan ida y vuelta correctamente. El enfoque bytes-luego-base64 es el mismo que usan las bibliotecas JWT y la mayoría de frameworks modernos."
34+
]
35+
}
36+
],
37+
"howTo": [
38+
{ "name": "Elige codificar o decodificar", "text": "Alterna el modo arriba." },
39+
{ "name": "Activa URL-safe si lo necesitas", "text": "Encendido para JWTs y tokens OAuth; apagado para todo lo demás." },
40+
{ "name": "Pega tu entrada", "text": "Texto plano para codificar, cadena Base64 para decodificar." },
41+
{ "name": "Copia el resultado", "text": "Haz clic en 'Copiar' junto a la salida." }
42+
]
43+
},
44+
"faq": [
45+
{ "q": "¿Base64 es cifrado?", "a": "No. Es una forma de codificar binario como texto ASCII. Cualquiera puede decodificarlo. Usa cifrado real (AES, RSA, etc.) para secretos." },
46+
{ "q": "¿Por qué URL-safe es diferente?", "a": "Base64 estándar usa '+' y '/' que tienen significado especial en URLs y necesitan codificación porcentual. URL-safe Base64 sustituye '-' y '_' para evitar eso." },
47+
{ "q": "¿Puedo decodificar la firma JWT?", "a": "Decodificar la firma te da los bytes brutos de la firma, pero están destinados a verificación, no a lectura humana. Decodifica el header y payload del JWT (los dos primeros segmentos) para ver los datos." },
48+
{ "q": "¿Funciona para archivos binarios?", "a": "No directamente — pega solo texto. Para archivos, usa una herramienta consciente de binarios. (La mayoría de navegadores tienen un par atob/btoa integrado en DevTools para archivos pequeños.)" },
49+
{ "q": "¿Por qué mi texto decodificado está deformado?", "a": "O la entrada no era Base64 válido, o codificó bytes no UTF-8 (p.ej., un archivo Latin-1). Verifica la codificación original. Las herramientas que decodifican 'como texto' asumen UTF-8." },
50+
{ "q": "¿Los datos se envían a algún sitio?", "a": "No. Codificación y decodificación corren enteramente en tu navegador." },
51+
{ "q": "¿Cuánto es el sobrecoste de tamaño?", "a": "~33% más grande que los bytes fuente (cada 3 bytes de entrada se vuelven 4 caracteres de salida). URL-safe sin padding tiene el mismo sobrecoste." },
52+
{ "q": "¿Por qué importa el padding?", "a": "Base64 estándar rellena el final con '=' para que la longitud sea múltiplo de 4. Las versiones URL-safe a menudo lo omiten ya que no es necesario para decodificar." }
53+
]
54+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"title": "Base64 인코더 / 디코더 (UTF-8 및 URL-safe)",
3+
"shortDescription": "어떤 UTF-8 텍스트든 Base64로 인코딩 또는 다시 디코딩. URL과 JWT 사용을 위한 URL-safe 인코딩 토글.",
4+
"description": "텍스트나 Base64 문자열을 입력하면 양방향 변환. UTF-8(이모지와 CJK 포함) 처리 및 JWT와 OAuth에서 사용되는 URL-safe 변형 지원.",
5+
"metaDescription": "UTF-8과 URL-safe 지원 무료 Base64 인코더/디코더. 텍스트를 Base64로 변환 또는 JWT 스타일 문자열을 브라우저에서 즉시 디코딩.",
6+
"keywords": ["base64 인코더", "base64 디코더", "url safe base64", "base64 utf8", "텍스트 인코딩"],
7+
"input": { "plain": "일반 텍스트", "encoded": "Base64 문자열" },
8+
"output": { "encoded": "인코딩 결과", "plain": "디코딩 결과" },
9+
"mode": { "encode": "인코딩", "decode": "디코딩" },
10+
"urlSafe": "URL-safe (-, _, 패딩 없음)",
11+
"copy": "복사",
12+
"copied": "복사됨",
13+
"invalidInput": "유효하지 않은 Base64 입력.",
14+
"article": {
15+
"sections": [
16+
{
17+
"heading": "Base64가 무엇이고 무엇이 아닌지",
18+
"paragraphs": [
19+
"Base64는 64자 알파벳(A-Z, a-z, 0-9, +, / 및 = 패딩) 사용해 임의 바이트 인코딩. JSON, HTML, 이메일 헤더 같은 텍스트 전용 형식에 이진 데이터 — 이미지 바이트, 암호화된 블롭, 서명된 토큰 — 임베딩하는 표준 방식. 출력은 입력보다 약 33% 큼.",
20+
"Base64는 인코딩이지 암호화 아님. 누구나 Base64 문자열을 원래 바이트로 디코딩 가능. 비밀 숨기기에 사용 금지 — 기밀이 필요하면 실제 암호 알고리즘 사용."
21+
]
22+
},
23+
{
24+
"heading": "URL-safe vs 표준",
25+
"paragraphs": [
26+
"표준 Base64는 '+'와 '/' 포함, URL에서 특별한 의미 가지므로 퍼센트 인코딩 필요. URL-safe Base64(RFC 4648 §5)는 '+'를 '-'로, '/'를 '_'로 대체하고 후행 '=' 패딩 제거. JWT, OAuth 토큰, 많은 웹 API가 URL-safe 형식 사용.",
27+
"JWT나 토큰을 수동 디코딩하면 URL-safe ON. 클래식 이메일이나 PDF 임베디드 데이터 작업이면 OFF. 디코더는 URL-safe ON일 때 양 형식 수용 — 표준 알파벳이 특별 쌍 빼고 슈퍼셋이기 때문."
28+
]
29+
},
30+
{
31+
"heading": "UTF-8 처리",
32+
"paragraphs": [
33+
"옛 브라우저 btoa()는 ASCII만 처리 가능. 본 도구는 TextEncoder로 입력을 먼저 UTF-8 바이트로 변환 후 그 바이트를 Base64 인코딩. 이로써 이모지, CJK 문자, 강세 라틴, 기타 유니코드 모두 올바르게 인코딩 및 왕복. 바이트-그-다음-base64 접근은 JWT 라이브러리와 대부분 현대 프레임워크와 동일."
34+
]
35+
}
36+
],
37+
"howTo": [
38+
{ "name": "인코딩 또는 디코딩 선택", "text": "상단 모드 토글." },
39+
{ "name": "필요시 URL-safe 설정", "text": "JWT와 OAuth 토큰은 ON; 다른 모든 것은 OFF." },
40+
{ "name": "입력 붙여넣기", "text": "인코딩에 일반 텍스트, 디코딩에 Base64 문자열." },
41+
{ "name": "결과 복사", "text": "출력 옆 '복사' 클릭." }
42+
]
43+
},
44+
"faq": [
45+
{ "q": "Base64는 암호화?", "a": "아니오. 이진을 ASCII 텍스트로 인코딩하는 방식. 누구나 디코딩 가능. 비밀에는 실제 암호화(AES, RSA 등) 사용." },
46+
{ "q": "왜 URL-safe 다름?", "a": "표준 Base64는 URL에서 특별 의미 가져 퍼센트 인코딩 필요한 '+'와 '/' 사용. URL-safe Base64는 '-'와 '_' 대체로 회피." },
47+
{ "q": "JWT 서명 디코딩 가능?", "a": "서명 디코딩은 서명의 원시 바이트 제공, 그러나 검증용으로 의도, 사람 읽기 아님. JWT의 헤더와 페이로드(처음 두 세그먼트) 디코딩해 데이터 확인." },
48+
{ "q": "이진 파일에 작동?", "a": "직접 안 됨 — 텍스트만 붙여넣기. 파일은 이진 인식 도구 사용. (대부분 브라우저는 작은 파일에 DevTools 사용 가능한 atob/btoa 쌍 내장.)" },
49+
{ "q": "왜 디코딩된 텍스트가 깨짐?", "a": "입력이 유효 Base64 아니거나 UTF-8 아닌 바이트 인코딩(예: Latin-1 파일). 원래 인코딩 검증. '텍스트로' 디코딩 도구는 UTF-8 가정." },
50+
{ "q": "데이터가 전송되나요?", "a": "전송되지 않습니다. 인코딩과 디코딩이 완전히 브라우저에서 실행." },
51+
{ "q": "크기 오버헤드?", "a": "원본 바이트보다 약 33% 큼(입력 3 바이트마다 출력 4 문자). 패딩 없는 URL-safe도 같은 오버헤드." },
52+
{ "q": "왜 패딩 중요?", "a": "표준 Base64는 길이가 4의 배수 되도록 끝에 '=' 패딩. URL-safe 버전은 디코딩에 필요 없어 종종 생략." }
53+
]
54+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"title": "Convertidor de mayúsculas (camel, snake, kebab, Title)",
3+
"shortDescription": "Convierte texto a 10 estilos: UPPER, lower, Title, Sentence, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE e invertido.",
4+
"description": "Escribe texto y ve diez transformaciones de estilo lado a lado, cada una con botón de copia. Útil para renombrar variables, nombres de archivo, encabezados, slugs y limpieza de datasets.",
5+
"metaDescription": "Convertidor de mayúsculas gratis para camelCase, snake_case, kebab-case, PascalCase, Title Case y más. Diez estilos a la vez con copia de un clic.",
6+
"keywords": ["convertidor mayúsculas", "camel case", "snake case", "kebab case", "title case"],
7+
"input": { "text": "Texto fuente" },
8+
"copy": "Copiar",
9+
"copied": "Copiado",
10+
"case": {
11+
"lower": "minúsculas",
12+
"upper": "MAYÚSCULAS",
13+
"title": "Title Case",
14+
"sentence": "Estilo oración",
15+
"camel": "camelCase",
16+
"pascal": "PascalCase",
17+
"snake": "snake_case",
18+
"kebab": "kebab-case",
19+
"constant": "CONSTANT_CASE",
20+
"invert": "InVeRtIdO"
21+
},
22+
"article": {
23+
"sections": [
24+
{
25+
"heading": "Dónde se usa cada estilo",
26+
"paragraphs": [
27+
"camelCase: identificadores JavaScript y Java (myVariableName). PascalCase: clases y componentes React (UserProfile). snake_case: variables Python y Ruby (user_profile). kebab-case: URLs y clases CSS (user-profile). CONSTANT_CASE: variables de entorno y constantes (USER_PROFILE).",
28+
"Title Case: títulos de libros y artículos, encabezados. Sentence case: la mayoría de etiquetas y encabezados modernos — más fácil de leer que Title Case en cadenas largas. MAYÚSCULAS: énfasis, abreviaturas. minúsculas: tags, etiquetas, nombres de archivo case-insensitive."
29+
]
30+
},
31+
{
32+
"heading": "Cómo el convertidor parsea las palabras",
33+
"paragraphs": [
34+
"Dividimos por espacios, guiones, guiones bajos, barras y puntos. También dividimos en el límite entre minúscula y mayúscula (así 'helloWorld' se divide en ['hello', 'World']) y entre letra y dígito. Esto maneja la mayoría de casos cotidianos incluyendo código pegado, slugs y rutas de archivo.",
35+
"Casos límite: acrónimos en mayúsculas ('XMLHTTPRequest') no dividen limpiamente sin contexto, así que tratamos letras mayúsculas consecutivas como un bloque de palabra y confiamos en el usuario para limpiar si es necesario. Para texto cotidiano — frases, títulos, nombres de columna de dataset — el parser produce el resultado esperado."
36+
]
37+
},
38+
{
39+
"heading": "Consejos para revisión y refactor",
40+
"paragraphs": [
41+
"Al migrar entre lenguajes, pega una lista de identificadores y copia la versión convertida. snake-a-camel es el límite más común JavaScript-a-Python; kebab-a-snake es común al refactorizar atributos HTML a objetos JS.",
42+
"Para slugs SEO, kebab-case es el estándar — legible en URLs y Google trata guiones como separadores de palabra (los guiones bajos no). 'product-name' es preferible a 'product_name' para cualquier ruta URL visible al usuario."
43+
]
44+
}
45+
],
46+
"howTo": [
47+
{ "name": "Escribe o pega texto", "text": "Cualquier cosa — frases, identificadores de código, nombres de archivo." },
48+
{ "name": "Lee las 10 conversiones", "text": "Cada caso aparece en su propio bloque etiquetado." },
49+
{ "name": "Copia el que necesitas", "text": "Haz clic en 'Copiar' junto a cualquier bloque." }
50+
]
51+
},
52+
"faq": [
53+
{ "q": "¿Qué pasa con acrónimos como 'XML'?", "a": "Las letras mayúsculas consecutivas se tratan como un solo bloque. 'XMLParser' se divide en 'XML' y 'Parser'. Funciona para la mayoría del código; revisa y ajusta a mano para casos límite." },
54+
{ "q": "¿Por qué los slugs URL son siempre kebab-case?", "a": "Los guiones se tratan como límites de palabra por el parser de URL de Google; los guiones bajos no. Las URLs en kebab-case se indexan más fiablemente para SEO." },
55+
{ "q": "¿Diferencia entre Title y Sentence case?", "a": "Title Case capitaliza la mayoría de palabras ('The Quick Brown Fox'). Sentence case solo capitaliza la primera palabra y nombres propios ('The quick brown fox'). La UI moderna tiende a preferir sentence case." },
56+
{ "q": "¿Soporta Unicode?", "a": "Sí — toLowerCase/toUpperCase de JavaScript son conscientes de Unicode. Los diacríticos y escrituras no latinas pasan correctamente." },
57+
{ "q": "¿Puedo convertir de vuelta?", "a": "Sí — pega cualquier salida convertida y usa una conversión diferente. La ida y vuelta camelCase ↔ snake_case es sin pérdida." },
58+
{ "q": "¿Por qué camelCase no preserva acrónimos en mayúsculas?", "a": "Convencionalmente, camelCase capitaliza solo la primera letra de cada palabra subsiguiente. 'XmlHttpRequest' se prefiere sobre 'XMLHTTPRequest' en guías de estilo modernas." },
59+
{ "q": "¿Los datos salen del navegador?", "a": "No. Todas las transformaciones corren localmente." },
60+
{ "q": "¿Hay forma de convertir una lista en lote?", "a": "Pega tu lista entera de una vez. Cada línea se trata como una entrada separada dentro del mismo estilo — convierte y luego divide líneas según necesites." }
61+
]
62+
}

0 commit comments

Comments
 (0)