Active locale: {{ locale }}
``` Lee `locale.value` en expresiones de script normales. Los componentes, los valores calculados y los efectos de renderizado que leen la referencia se actualizan cuando finaliza un cambio reactivo de configuración regional. ## Crea un selector de idioma [#switcher] [`useSetLocale()`](/docs/vue/reference/composables/use-set-locale) devuelve un setter asíncrono. Usa `await` para que la interfaz pueda mostrar una carga pendiente o gestionar un error: ```vue title="src/components/LocaleSwitcher.vue" ``` Con un plugin [`createGT()`](/docs/vue/reference/functions/create-gt), el setter carga un catálogo que no está en caché antes de cambiar la configuración regional. Los resultados satisfactorios se almacenan en caché. Si las solicitudes se superponen, solo la solicitud más reciente cambia la configuración regional activa. Un catálogo vacío cuenta como una carga satisfactoria: la configuración regional cambia y el contenido de origen se renderiza como contenido alternativo. Si el loader falla, la configuración regional activa y su cookie no cambian. ## Conserva la configuración regional [#persistence] En el navegador, la configuración regional activa se almacena en una cookie de sesión válida para toda la ruta llamada `generaltranslation.locale`. Cuando se omite `locale` en [`createGT()`](/docs/vue/reference/functions/create-gt), esa cookie tiene prioridad sobre `defaultLocale`. Establece `localeCookieName` cuando la aplicación deba compartir otra cookie con un enrutador o el servidor: ```ts createGT({ defaultLocale: 'en', localeCookieName: 'my-app.locale', loadTranslations, }); ``` Usa [`useSetLocale()`](/docs/vue/reference/composables/use-set-locale) en lugar de escribir directamente en la cookie. Los navegadores no emiten un evento reactivo cuando cambian las cookies, por lo que una escritura externa no desencadena por sí sola un renderizado de Vue. ## Elige entre el cambio reactivo y el basado en recarga [#runtime-mode] El modo de inicialización determina qué ocurre después de que cambia la cookie: * [`createGT()`](/docs/vue/reference/functions/create-gt) carga el catálogo y actualiza los consumidores reactivos sin recargar la página. * [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa) escribe la cookie y recarga el documento para que las llamadas a [`t()`](/docs/vue/reference/functions/t) en el nivel de módulo se ejecuten de nuevo tras precargar la nueva configuración regional. El inicializador de SPA acepta `locales` y usa `defaultLocale` como alternativa cuando una configuración regional guardada o solicitada no es compatible. Consulta [Desarrollo con traducción para SPA](/docs/vue/guides/developing-spa-translations) cuando la traducción en el nivel de módulo requiera este comportamiento. Para el renderizado del lado del servidor, resuelve la configuración regional de la solicitud en el servidor y pásala explícitamente a [`createGT()`](/docs/vue/reference/functions/create-gt). El valor explícito reemplaza una cookie obsoleta del navegador y mantiene alineadas la configuración regional del renderizado en el servidor y la de la hidratación. ## Next steps - /docs/vue/guides/configuring - /docs/vue/guides/storing-translations - /docs/vue/guides/developing-spa-translations - /docs/vue/guides/translating-content