Skip to content

Commit 364e3e5

Browse files
committed
feat: react component in message
1 parent 60f4b69 commit 364e3e5

2 files changed

Lines changed: 64 additions & 0 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{
2+
"SIMPLE": "Frase simple",
3+
"HELLO": "Hola, {username}!",
4+
"TIP": "Esto es <span style='color:red'>HTML</span>",
5+
"TIP_VAR": "Esto es <span style='color:red'>{message}</span>",
6+
"RICH_LINK": "Consulta la <link>documentación</link> para obtener más detalles.",
7+
"RICH_MULTIPLE_CHUNKS": "<user>{username}</user> tiene un vuelo <status>retrasado</status>, pero recibió <gift>{service} gratis</gift>.",
8+
"EXAMPLE_TITLE_PLAIN": "Plain string messages",
9+
"EXAMPLE_TITLE_RICH_GET": "Rich React components con intl.get",
10+
"EXAMPLE_TITLE_DEPRECATED_GETHTML": "Workaround deprecated de rich text con intl.getHTML",
11+
"EXAMPLE_TOC_TITLE": "Contenido",
12+
"EXAMPLE_SECTION_INTL": "Uso de react-intl-universal",
13+
"EXAMPLE_SECTION_SKILL": "Agent Skill para internacionalización",
14+
"EXAMPLE_SECTION_EXTRACT": "Extraer defaults a locale files",
15+
"EXAMPLE_TITLE_OUTSIDE_REACT": "Messages fuera de React components",
16+
"EXAMPLE_TITLE_PLURAL": "Plural messages",
17+
"EXAMPLE_TITLE_DATE_TIME": "Date and time formatting",
18+
"EXAMPLE_TITLE_NUMBER_CURRENCY": "Number formatting",
19+
"EXAMPLE_NOTE_PLAIN": "Usa ICU variables con los valores pasados a <code>intl.get</code>. Mantén <code>.d()</code> como default message y source text para la extracción. Consulta <formatjs>FormatJS ICU syntax</formatjs> para más detalles.",
20+
"EXAMPLE_NOTE_PLURAL": "Los plural messages usan las reglas ICU <code>plural</code>. El placeholder <code>#</code> se formatea con el locale activo, así que los números grandes usan separadores adecuados al idioma. Más detalles en la <icu>ICU MessageFormat guide</icu>.",
21+
"EXAMPLE_NOTE_DATE_TIME": "Formatea valores JavaScript Date con intl.formatDate, intl.formatTime o intl.formatDateTime, y luego pasa el resultado a intl.get. Estos helpers usan defaults estables: YYYY-MM-DD, HH:mm:ss y YYYY-MM-DD HH:mm:ss. Los locale messages conservan placeholders simples como '{start}'.",
22+
"EXAMPLE_NOTE_NUMBER_CURRENCY": "Formatea números simples con <code>intl.formatNumber</code> y luego pasa el resultado a <code>intl.get</code>. Los locale messages conservan placeholders simples como <code>{count}</code>.",
23+
"EXAMPLE_NOTE_RICH_GET": "Desde <package>react-intl-universal</package>@2.14+, intl.get no solo devuelve plain strings: también puede renderizar Rich React components. Usa <code>get</code> como unified API para plain text, HTML-like markup y React UI.",
24+
"EXAMPLE_NOTE_DEPRECATED_GETHTML": "intl.getHTML está deprecated. Usa <code>get</code> como unified API para messages. Para renderizar Rich React components con <code>get</code>, actualiza a <package>react-intl-universal</package>@2.14+. Los getHTML examples de abajo dividen una frase en varios messages, lo que dificulta una traducción natural.",
25+
"EXAMPLE_NOTE_SKILL": "Usa el skill <skill>use-react-intl-universal</skill> para dar a los agents un workflow i18n práctico, no solo pistas de API.",
26+
"EXAMPLE_SKILL_BENEFITS_TITLE": "Ayuda a los agents a:",
27+
"EXAMPLE_SKILL_BENEFIT_COPY": "redactar localized copy de alta calidad que conserve el significado real del producto, sin traducciones palabra por palabra;",
28+
"EXAMPLE_SKILL_BENEFIT_TERMS": "mantener términos de producto y textos de UI consistentes entre módulos;",
29+
"EXAMPLE_SKILL_BENEFIT_UI": "evitar problemas de localized UI como truncation, overflow, overlap o misalignment;",
30+
"EXAMPLE_SKILL_BENEFIT_CONTRACT": "mantener alineados ICU variables, rich tags, default messages y locale files;",
31+
"EXAMPLE_SKILL_BENEFIT_MQM": "revisar la calidad de traducción con <mqm>Multidimensional Quality Metrics (MQM)</mqm>, uno de los frameworks de evaluación de calidad de traducción más profesionales y completos reconocidos en la industria de localización;",
32+
"EXAMPLE_SKILL_BENEFIT_INSPECTION": "inspeccionar páginas localized en ejecución por URL, hacer clic en interacciones, capturar screenshots y generar un process-and-findings report;",
33+
"EXAMPLE_SKILL_BENEFIT_REVIEWABLE": "producir locale changes más pequeños y fáciles de revisar.",
34+
"EXAMPLE_SKILL_PROJECT_GUIDANCE": "Al trabajar en internacionalización con react-intl-universal, sigue la guía del skill use-react-intl-universal.",
35+
"EXAMPLE_SKILL_AGENT_PROMPT": "Añade un mensaje de bienvenida con la variable username.",
36+
"EXAMPLE_SKILL_INSPECTION_PROMPT": "Inspecciona https://example.com/settings en alemán y reporta problemas de localized UI con screenshots.",
37+
"EXAMPLE_SKILL_INSPECTION_REPORT": "El agent hace clic en interacciones seguras, revisa dialogs, captura screenshots y escribe un report con el proceso completo de inspección y todos los findings.",
38+
"EXAMPLE_NOTE_EXTRACT": "<package>react-intl-universal-extract</package> lee los default messages de <code>.d()</code> en el código fuente y los escribe en un locale JSON file. Mantén <code>.d()</code> como source text y usa el archivo generado como base para la traducción.",
39+
"EXAMPLE_LABEL_SOURCE_CODE": "Código fuente",
40+
"EXAMPLE_LABEL_LOCALE_OUTPUT": "Locale file generado",
41+
"EXAMPLE_LABEL_PACKAGE_SCRIPT": "package.json script",
42+
"EXAMPLE_LABEL_RUN_COMMAND": "Comando",
43+
"LEGACY_LINK_BEFORE": "Consulta la ",
44+
"LEGACY_LINK_TEXT": "documentación",
45+
"LEGACY_LINK_AFTER": " para obtener más detalles.",
46+
"LEGACY_BADGE_BEFORE": "<strong>{username}</strong> tiene un vuelo ",
47+
"LEGACY_BADGE_STATUS": "retrasado",
48+
"LEGACY_BADGE_BETWEEN": ", pero recibió ",
49+
"LEGACY_BADGE_GIFT": "{service} gratis",
50+
"LEGACY_BADGE_AFTER": ".",
51+
"SALE_START": "La venta empieza el {start}",
52+
"SALE_END": "La venta termina el {end}",
53+
"COUPON": "El cupón caduca a las {expires}",
54+
"VIEW_COUNT": "{count} vistas",
55+
"AVERAGE_SCORE": "Puntuación media: {score}",
56+
"PHOTO": "Tienes {photoNum, plural, =0 {ninguna foto.} =1 {una foto.} other {# fotos.}}",
57+
"MESSAGE_NOT_IN_COMPONENT": "react-intl-universal también puede internacionalizar mensajes fuera de React.Component"
58+
}

packages/react-intl-universal/examples/nextjs-example/pages/index.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import zhCN from 'locales/zh-CN.json';
66
import zhTW from 'locales/zh-TW.json';
77
import frFr from 'locales/fr-FR.json';
88
import deDE from 'locales/de-DE.json';
9+
import esES from 'locales/es-ES.json';
910
import koKR from 'locales/ko-KR.json';
1011
import jaJP from 'locales/ja-JP.json';
1112

@@ -39,6 +40,10 @@ const LOCALES_LIST = [
3940
label: "Deutsch",
4041
value: "de-DE"
4142
},
43+
{
44+
label: "Español",
45+
value: "es-ES"
46+
},
4247
{
4348
label: "한국어",
4449
value: "ko-KR"
@@ -55,6 +60,7 @@ const LOCALE_DATA = {
5560
"zh-TW": zhTW,
5661
"fr-FR": frFr,
5762
"de-DE": deDE,
63+
"es-ES": esES,
5864
"ko-KR": koKR,
5965
"ja-JP": jaJP,
6066
}

0 commit comments

Comments
 (0)