Ir al artículo
Aniq-UI

KinoraIdiomas

Idiomas

Cómo funciona Kinora en inglés y en árabe, cómo cambiar cualquier texto y qué cambiar para añadir un idioma.

Para el paquete Full Stack

Los idiomas incluidos

Inglés y árabe, en las dos aplicaciones. El árabe muestra todo el panel de derecha a izquierda, con su propia fuente.

AplicaciónInglésÁrabe
Panel/en/…/ar/…
APIAccept-Language: enAccept-Language: ar

El inglés es el idioma predeterminado. El contenido de los catálogos (ejercicios, entrenamientos, programas, platos, grupos, eventos, retos, insignias) se guarda con su nombre y su descripción en los dos idiomas, que se introducen uno al lado del otro en las pantallas de Content.

Cómo se elige el idioma

  • El idioma es la primera parte de la dirección. Una ruta sin idioma va a /en; no se detecta el idioma del navegador.
  • El selector de idioma cambia esa parte de la dirección y mantiene la página.
  • La dirección se fija antes del primer pintado, así que una página en árabe nunca aparece un instante de izquierda a derecha.
  • El panel envía el idioma de la página a la API en Accept-Language, así que sus mensajes vuelven en el mismo idioma.

Cambia un texto

Cada palabra visible está en messages/<namespace>/en.json y ar.json, en la carpeta del panel. Cambia el valor, mantén la clave y cámbialo en los dos archivos.

NamespaceQué contiene
ai-assistantLa página del asistente
authPáginas de inicio de sesión, registro y contraseña
commonLas palabras de los componentes compartidos: tablas, filtros, subidas, la búsqueda
dashboardCada página del panel y las notificaciones, con una carpeta por sección (activity, workouts, nutrition, clients, content, settings y las demás)
demo-credentialsEl panel de la demostración pública donde un visitante añade su propia clave de IA
layoutsLa barra de navegación, el marco de la barra lateral y el aviso de datos de ejemplo
  • Una clave que falta en ar.json aparece como un error de mensaje ausente en la parte árabe, así que mantén los dos archivos coordinados.
  • Las etiquetas de la barra lateral son la excepción: están escritas en inglés y en árabe en src/layouts/dashboard/sidebar/config/navigationData.ts, que también alimenta la búsqueda.
  • El texto entre llaves {curly} lo rellena la aplicación, como {count} o {name}. Deja esas palabras tal cual en los dos idiomas.
  • Las notificaciones se guardan como lo que ocurrió, nunca como una frase, y el panel escribe las palabras a partir de sus propios archivos de mensajes. Un idioma nuevo para ellas es una traducción, no un cambio en la API.

Las etiquetas en árabe del propio panel

Cuando escribas sobre Kinora en árabe, usa las etiquetas que muestran sus pantallas:

InglésÁrabeQuién lo ve
Dashboardلوحة التحكمTodos
AI Assistantالمساعد الذكيTodos
ActivityالنشاطMiembros
WorkoutsالتمارينMiembros
Exercise Libraryمكتبة التمارينMiembros
NutritionالتغذيةMiembros
Meal Plannerمخطط الوجباتMiembros
SleepالنومMiembros
HealthالصحةMiembros
ProgressالتقدمMiembros
Progress Photosصور التقدمMiembros
CommunityالمجتمعMiembros
My ClientsعملائيHead Coach y Personal Trainer
GymالناديPersonal
ContentالمحتوىPersonal
CoachesالمدربونPersonal
Coach Rolesأدوار المدربينPersonal
SettingsالإعداداتTodos
Sign Inتسجيل الدخولLa página de inicio de sesión

Qué traduce la API

  • Los mensajes de error y el message de una escritura correcta vuelven en el idioma de la cabecera Accept-Language. ar-SA cuenta como árabe; cualquier idioma que la API no tenga recurre al inglés.
  • Sus textos son archivos JSON en back-end/src/i18n/translations/en/ y ar/, uno por área: auth, coach, common, roles, settings, users.
  • El contenido guardado en los dos idiomas vuelve como { "en": "…", "ar": "…" }, y el panel elige uno.

Añade un idioma al panel

Los dos idiomas están escritos en varios archivos, así que añadir un tercero toca cada uno de ellos. Las rutas están dentro de dashboard/.

  1. Añade el código del idioma

    Añádelo a las listas de idiomas de src/config/i18n.ts, src/proxy.ts, src/app/[locale]/layout.tsx y src/components/LanguageSwitcher.tsx.

  2. Traduce los mensajes

    Añade un <code>.json junto a cada en.json dentro de messages/, incluidas las carpetas de messages/dashboard/.

  3. Traduce la barra lateral y la marca

    Añade tu idioma a cada etiqueta de src/layouts/dashboard/sidebar/config/navigationData.ts, y a los textos de src/config/brand.config.ts.

  4. Configura la dirección del texto

    Para un idioma de derecha a izquierda, añádelo a RTL_LOCALES en src/app/layout.tsx y a src/hooks/locale/useDirection.ts.

El contenido de los catálogos se guarda solo en inglés y en árabe. Un tercer idioma también necesita que los campos de contenido de la API y los formularios de Content lo incluyan.

Añade un idioma a la API

  1. Añade el código del idioma

    Añádelo a supportedLocales en back-end/src/i18n/i18n.service.ts.

  2. Traduce los mensajes

    Copia back-end/src/i18n/translations/en/ a una carpeta con el nombre del código y traduce los valores. Una clave que omitas recurre al inglés.

¿Te atascaste en un paso?

Busca una solución antes de empezar de nuevo.

Solución de problemas

Preferencias de Cookies

Utilizamos cookies para mejorar tu experiencia de navegación, analizar el tráfico del sitio y personalizar el contenido. Al hacer clic en "Aceptar Todo", consientes nuestro uso de cookies para análisis y publicidad personalizada.