Localizando tu sitio web de Remix

Rate this content
Bookmark
Github

El contenido localizado te ayuda a conectarte con tu audiencia en su idioma preferido. No solo te ayuda a hacer crecer tu negocio, sino que también ayuda a tu audiencia a comprender mejor tus ofertas. En este masterclass, obtendrás una introducción a la localización y aprenderás cómo implementar la localización en tu sitio web de Remix alimentado por Contentful.


Tabla de contenidos:

- Introducción a la localización

- Introducción a Contentful

- Localización en Contentful

- Introducción a Remix

- Configuración de un nuevo proyecto de Remix

- Renderización de contenido en el sitio web

- Implementación de la localización en el sitio web de Remix

- Recapitulación

- Próximos pasos

This workshop has been presented at React Summit 2023, check out the latest edition of this React Conference.

FAQ

Contentful es una plataforma de contenido componible con una arquitectura API-first. Permite orquestar contenido desde múltiples plataformas y publicarlo en cualquier canal digital. Ofrece varias APIs, incluyendo la API de Gestión de Contenido, la API de Activos, la API de Entrega de Contenido, la API de Vista Previa y la API de GraphQL.

En Contentful, la localización se puede implementar a nivel de campo, entrada o tipo de contenido/espacio. La localización a nivel de campo permite localizar campos individuales, mientras que a nivel de entrada permite crear entradas diferentes para cada idioma. La localización a nivel de tipo de contenido implica crear tipos de contenido diferentes según el idioma.

Para agregar una nueva localización en Contentful, ve a configuración, luego a Localizaciones y haz clic en Agregar Localización. Selecciona la localización que deseas agregar, configura un idioma de respaldo y habilita la edición. Según tu plan, puede haber limitaciones en la cantidad de localizaciones que puedes tener.

Para implementar texto enriquecido en Contentful, es necesario usar bibliotecas como rich text react renderer. Esta biblioteca maneja cómo se renderiza el texto enriquecido en React, permitiendo convertirlo a HTML, Markdown o cualquier otro formato según las necesidades del proyecto.

La internacionalización implica preparar una aplicación para adaptarse a diferentes idiomas y regiones, mientras que la localización se concentra en ajustar el contenido específico y los elementos de la aplicación para cumplir con los requisitos culturales y lingüísticos de un público objetivo particular.

En Remix, la localización se puede implementar utilizando bibliotecas de i18n y manejo de rutas dinámicas. Esto incluye detectar el idioma del usuario, cargar contenido localizado y actualizar dinámicamente la UI según el idioma seleccionado por el usuario.

Las rutas dinámicas en Remix se gestionan utilizando el signo de dólar ($) seguido del nombre del parámetro en la ruta. Para la localización, se puede utilizar el gancho useLocation para obtener el nombre de la ruta actual y modificar el contenido según el idioma seleccionado.

Harshil Agrawal
Harshil Agrawal
154 min
16 May, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
El masterclass cubrió varios temas como la introducción a la localización y Remix, configuración del proyecto, creación de componentes, implementación de contenido e internacionalización, diferencias entre Remix y Next.js, configuración de la internacionalización, actualización de títulos y navegación, introducción a Contentful, modelo de contenido y localización, y enrutamiento dinámico. Los puntos clave incluyen la importancia de la localización para las regiones objetivo, las capacidades de Remix como framework, el proceso de configuración de un proyecto de Remix y la internacionalización, el uso de Contentful para gestionar contenido y la implementación de enrutamiento dinámico en Remix.
Available in English: Localizing Your Remix Website

1. Introducción a la Localización

Short description:

Para darles una idea de lo que vamos a construir hoy, es una aplicación web de recetas muy simple. Vamos a aprenderlo desde cero. Los requisitos previos son Node.js, un buen editor de código y una cuenta de Contentful. También es importante tener conocimientos básicos de JavaScript y GraphQL. Sigamos adelante y hablemos de la localización. La localización consiste en hacer que tu aplicación esté disponible en diferentes idiomas y asegurarse de que se vea y se sienta apropiada para la región objetivo. McDonald's en India es un ejemplo de una exitosa localización, centrándose en opciones vegetarianas. La localización es más que simplemente traducción.

Para darles una idea de lo que vamos a construir hoy, es una aplicación web de recetas muy simple. Como pueden ver, en este momento solo tengo tres recetas diferentes. Estas son algunas de mis recetas favoritas. y hay un selector de idioma aquí. Puedo cambiar el idioma y verán que cambia el nombre. También actualiza los valores aquí y el contenido también. Puedo abrir esa receta y obtener esa información también. Si lo cambio a inglés, nuevamente se traduce o me da el contenido localizado en inglés nuevamente. Entonces esto es algo que vamos a construir y también lo vamos a aprender desde cero.

Para darte una breve introducción sobre mí, mi nombre es Harshal Agrawal, y trabajo como defensor del desarrollador en Contentful, que es algo en lo que vamos a profundizar más. Me encanta experimentar con diferentes tecnologías. En mi experimento más reciente, he estado jugando con la API de WebHID. Si no estás familiarizado con la API de WebHID, es una API fantástica que te permite conectar tus dispositivos HID a tus aplicaciones web. Y un proyecto divertido en el que he estado trabajando es conectar mi controlador de PS5 a un juego basado en web. Y si quieres saber más sobre mí, solo contáctame. Puedes ir a ese sitio web donde encontrarás todos los enlaces a mis redes sociales y leer más sobre mí y mi trabajo también.

Muy bien. Volviendo a esto, los requisitos previos son, necesitas tener Node.js instalado en tu máquina. Puedes usar plataformas como Gitpod o algo así, pero voy a ejecutarlo localmente en mi máquina. Entonces, si encuentras errores en esas plataformas en la nube, es posible que no pueda ayudarte completamente con eso. Así que espero que lo estés ejecutando localmente en tu máquina y que tengas node.js instalado. Necesitamos un buen editor de código porque facilita la vida. Si quieres usar, ¿cómo se llamaba? Texto, no sé. El editor de código predeterminado que proporciona Windows. Si quieres usar el bloc de notas, está bien. Adelante y úsalo. Como mencioné, vamos a usar Contentful. Así que tener una cuenta en Contentful será muy útil. Si no tienes una cuenta en Contentful, puedes crear una rápidamente. Solo ve a contentful.com y crea una cuenta. No necesitas una tarjeta de crédito. Puedes comenzar sin necesidad de ingresar tu tarjeta de crédito allí. Y tenemos conocimientos básicos de JavaScript y también es importante tener conocimientos básicos de React. No vamos a usar mucho React aquí porque estamos usando Remix. que es maravilloso. Pero vamos a usar mucho JavaScript. Y una idea básica de GraphQL también sería muy útil porque vamos a usar la API de GraphQL aquí.

Muy bien. Lo que voy a hacer es tomar un par de minutos aquí, ver si hay alguna pregunta hasta ahora sobre los requisitos previos o cualquier otro requisito o cualquiera de esas cosas de las que acabo de hablar. Si no hay preguntas, solo denme un pulgar hacia arriba para que sepa que todo está claro hasta ahora y que puedo seguir adelante, muy bien, está bien, súper, sigamos adelante y hablemos de la localización como mencioné quiero que esto sea más interactivo, así que tengo curiosidad por saber qué significa la localización para ustedes nuevamente siéntanse libres de desactivar el silencio y simplemente hablar sobre lo que significa para ustedes. O si prefieren, si prefieren escribirlo en el chat, adelante y escríbanlo en el chat. Pero tengo curiosidad por saber qué es la localización para ustedes. Y aquí no hay respuestas incorrectas. Así que no se preocupen por, ya saben, preocuparse por dar una respuesta que pueda no ser correcta. así que la localización consiste en hacer que tu aplicación esté disponible en diferentes idiomas cierto, cierto, eso es absolutamente correcto muy bien, voy a construir sobre eso y voy a decir que también se asegura de que no solo sea el idioma, sino también la forma en que tu aplicación se ve y se siente en esa región en particular, ¿verdad? Algunos ejemplos maravillosos sobre la localización que puedo pensar son marcas como McDonald's. India es un país donde la mayoría de la población es vegetariana. así que si piensas en McDonald's, ofrecen hamburguesas, ¿verdad? Y las hamburguesas en su mayoría contienen tienen esas hamburguesas que no son aptas para vegetarianos, por lo que para tener éxito en India McDonald's adoptó su estrategia y sacó opciones que se centraban principalmente en vegetarianos, por lo que todas sus hamburguesas se centraron principalmente en vegetarianos y así es como es un ejemplo de localización, así que nuevamente, para hablar de una definición adecuada de localización, básicamente es una adaptación del producto, la aplicación o el contenido del documento para cumplir con el idioma nuevamente, no solo el idioma, sino también los requisitos culturales y otros requisitos de un mercado objetivo específico y no se trata solo de traducción, es más que eso Tenemos a Emanuel. Espero estar pronunciando tu nombre correctamente, uniéndose. Hola, gracias por unirte. Acabamos de comenzar el masterclass y hablamos sobre qué es la localización.

2. Introducción a la Localización y Remix

Short description:

Si no estás en Discord, te animo encarecidamente a unirte al servidor de Discord. Hemos cubierto los requisitos previos para el masterclass. Discutimos la diferencia entre localización e internacionalización. La internacionalización es el proceso de preparar tus aplicaciones para la localización. Desde el punto de vista de la implementación del proyecto, tanto la localización como la internacionalización son procesos diferentes. Luego presentamos Remix como el framework que utilizaremos. Remix no es solo un framework de React, es un compilador, un controlador HTTP del lado del servidor, un framework del lado del servidor y un framework del navegador. Compila tu código, genera código tanto del lado del servidor como del lado del cliente, y te permite crear APIs. Remix tiene envoltorios integrados para frameworks existentes como Express, lo que facilita su implementación en cualquier plataforma. También es un framework del lado del servidor, lo que significa que puedes construir toda tu API utilizando Remix. Es como la vista y el controlador en el framework MVC.

Si no estás en Discord, te animo encarecidamente a unirte al servidor de Discord. Ya he compartido mi repositorio de GitHub que vamos a utilizar en este masterclass Y solo un breve resumen de los requisitos previos, necesitas tener Node.js, instalar un editor de código, algunos conocimientos básicos de JavaScript, React y GraphQL serían muy útiles para ti en este masterclass.

Muy bien, así que hablamos de la localización. La siguiente parte que a menudo escucho a la gente cuando hablo de la localización es este término llamado internacionalización. Y la gente se confunde cuando hablan de localización o internacionalización a menudo usan estas palabras indistintamente, lo cual no es realmente cierto porque mientras que la localización es adaptar tu producto a una región específica, la internacionalización es el proceso de llegar allí si miramos la definición de internacionalización es diseño y desarrollo de un producto, aplicación o contenido de un documento que permite una fácil localización para un público objetivo nuevamente, este público puede variar en cultura, región e idioma también, ¿verdad? Para resumir esto, la internacionalización es el proceso de uh internacionalización es el proceso de implementar o preparar tus aplicaciones para la localización. ¿Tiene sentido, y aclara la diferencia entre la localización y la internacionalización? Veo un pulgar hacia arriba. Dos pulgares hacia arriba. Vale, siento que puede haber una pregunta aquí. No, vale. Muy bien, eso es perfecto. Voy a esperar un minuto más porque Fez también se está uniendo. Solo quiero asegurarme de que antes de pasar a la siguiente parte, pueda escuchar lo que hemos cubierto y luego podemos seguir rápidamente.

¿Puedo hacer una pregunta mientras tanto? Claro. Desde el punto de vista de la implementación, por supuesto, la definición es diferente para la localización y la internacionalización. Desde el punto de vista de la implementación del proyecto, la forma en que funciona es que a menudo las personas usan estas palabras indistintamente lo cual no es cierto siempre debes si has investigado sobre la localización antes, es posible que hayas encontrado bibliotecas como i18n pero si lo piensas bien, no se trata de localización se trata de internacionalización, ¿verdad? porque ese es el proceso de implementar la localización Entonces, cuando estás trabajando en un proyecto, habilitas que se pueda localizar, aunque es posible que no necesites eso en el futuro. Entonces, básicamente, estás adoptando los principios que están definidos por la intención, uh, por, para la internacionalización porque eso facilita la implementación de la localización. Ahora, uh, la forma en que me gusta pensar en esto es, y creo que tendrás una mejor idea sobre esto cuando comencemos a trabajar en la aplicación es, si vuelvo al ejemplo aquí. Ahora, sé que una cierta parte de mi texto va a cambiar en la aplicación, ¿verdad? Ya he comenzado a trabajar en la implementación de esa parte y sé que, por ejemplo, el mensaje de bienvenida aquí es diferente en alemán. La forma en que creé esto es teniendo en cuenta que esta palabra en particular va a cambiar, pero todo este mensaje en particular va a cambiar. Porque ya sabía qué cosas quería hacer. ¿Eso te da una idea? ¿Eso responde tu pregunta? Sí. Sí, lo hace. Entonces, ¿podemos decir que la internacionalización es un subconjunto de la localización? No lo diría así porque para mí, ambos son dos procesos diferentes. porque la forma en que lo pienso es que la internacionalización te permite preparar tu producto para la localización, ¿verdad? Ahora, es posible que desees luego localizar ese producto solo para una región, pero aún así debes pasar por el proceso de internacionalización y asegurarte de que tu producto esté listo para hacer eso. Más adelante, puedes decidir que quieres ampliarlo a una nueva región, ¿verdad? porque ya has implementado la internacionalización, todo lo que tienes que hacer es preparar ese contenido localizado, hacer que ese contenido esté disponible en ese idioma localizado y luego simplemente publicarlo. Para mí, son dos pasos diferentes, dos procesos diferentes, y no es un subconjunto de otro. Vale, tiene sentido. Gracias. Muy bien. Faz, creo que acabas de unirte. Así que hablamos de la localización. Hablamos de la internacionalización. Y pasamos a la siguiente parte del masterclass. Y veo que ya estás en los servidores de Discord. Ya tienes el repositorio de GitHub, lo cual es fantástico. Entonces, avanzando, vamos a hablar un poco sobre Remix porque ese es el framework que vamos a usar hoy. ahora, ¿cuántos de ustedes han escrito código con Remix antes o han escuchado sobre Remix antes ¿puedo ver un pulgar hacia arriba o nuevamente siéntanse libres de activar el sonido ustedes mismos solo escriban en el chat, está bien Muy bien así que puedo decir que la mayoría de ustedes han escuchado sobre Remix pero uh una persona no lo ha hecho, eso está completamente bien, vamos a verlo uh cuando comencé a explorar Remix cuando comencé a jugar con Remix siempre pensé que era uh otro meta framework que se construye sobre react pero al leer la documentación al trabajar con Remix aprendí que no es solo otro framework un framework de react más, es más que eso porque cuando hablan de Remix como un compilador, en realidad compila tu código y te da código del lado del cliente y del lado del servidor. También genera un archivo de manifestación de activos, que te da un gráfico de dependencias y permite que el código se mapee a la pieza de código específica correctamente. Entonces, básicamente, simplemente compila tu código y te da código tanto del lado del servidor como del lado del cliente. Y me encanta esta parte de Remix que es un controlador HTTP del lado del servidor, lo que significa que simplemente puedes usar Remix como un servidor. Puedes crear APIs utilizando Remix. No necesitas usar ningún otro framework para eso. Porque hace uso de la web, la API de búsqueda web en el fondo, lo que facilita su implementación en cualquier tipo de plataforma realmente, no importa si estás usando Node.js o Deno. En el fondo, te permite hacer eso. Y la forma en que Remix te permite hacer eso es que tiene envoltorios integrados alrededor de los frameworks existentes como Express. Ya tiene esos envoltorios construidos sobre esos frameworks así que ahora no tienes que preocuparte por aprender Express o aprender cómo funcionan los trabajadores de Cloudflare o cómo gestionar servidores en Vielhel o Netlify y cosas así. Y también es un framework del lado del servidor, lo que significa que puedes construir toda tu API solo usando Remix. Y no necesitas proporcionar ninguna salida del cliente o no necesitas tener un front-end para eso. Remix puede manejar todo el proceso. Entonces, la forma en que me gusta pensar en Remix aquí es la vista y el controlador en el framework MVC.

Watch more workshops on topic

React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced 2021React Advanced 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetsov
Mikhail Kuznetsov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
No resuelvas problemas, elimínalos
React Advanced 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.