Pregunta de nivel muy básico de nuevo. En app.yml, tengo fi como idioma predeterminado. ¿Pero hace algo más que simplemente establecer valores predeterminados para todo y para todos?
Y si es así, ¿verá un usuario todo en ese idioma predeterminado, ahora fi, hasta que se cambie Allow user locale?
Pero, ¿qué pasa con Set locale from accept language header? Si alguien tiene en_US, ¿se ofrece la versión en inglés? ¿Y eso significa que el idioma predeterminado es solo una sugerencia y se anulará si Accept-Language es algo más?
Y la razón por la que estoy preguntando esto es mi nuevo sitio, que está fuertemente dirigido a los EE. UU., y necesita un foro. Pero no creo que atraiga tanta atención como para que valga la pena hacer todo el trabajo que requiere iniciar un foro. Así que estaba considerando una solución en la que guío a esos visitantes de EE. UU./globales a una categoría diseñada para un propósito específico.
Pero mi foro es, por lo demás, todo en finlandés, y si Accept-Language no cambia el idioma predeterminado, eso no funcionará.
(Y en parte espero que la cosa del traductor funcione algún día ).
Sé que esta no es una pregunta de soporte genuina, pero estoy tratando de evitar General…
Esto no es algo que sepa mucho, pero en ausencia de otras respuestas hasta ahora…
Creo que agregar la configuración regional predeterminada a tu app.yml anula lo que sea que hayas establecido para configuración regional predeterminada en la configuración de tu sitio (y también la elimina de la página de configuración). Pero esa solo sería la predeterminada, y puedes permitir que las personas elijan (o dejen que sus navegadores elijan) una alternativa más adecuada para ellas.
Espero que eso sea relevante, si no, esto puede ser simplemente un empujón útil para ver si podemos conseguir una respuesta más informada.
Hay dos ramas de lógica en ApplicationController#with_resolved_locale: usuarios conectados y usuarios desconectados.
Usuarios desconectados (1) establecen el idioma a partir de la solicitud, luego (2) utilizan la configuración del sitio ‘idioma predeterminado’ si no se detectó ninguno.
La prioridad es ?lang= en la URL, luego la cookie locale, luego Accept-Language si cada configuración de sitio respectiva está habilitada.
La lógica para usuarios conectados es más simple: preferencia del usuario, luego ‘idioma predeterminado’ si la preferencia del usuario está prohibida.
En todos los casos, si el idioma resuelto se ha descargado del servidor Discourse, se utiliza en. (Esto ocurre principalmente durante las pruebas unitarias y de integración, si mal no recuerdo).
locale = SiteSettings::DefaultsProvider::DEFAULT_LOCALE if !I18n.locale_available?(locale)
Entonces, en resumen, lo que hace:
Es el idioma para solicitudes anónimas sin encabezado Accept-Language.
Incluyendo, en particular, el proceso de registro de cuentas.
Es el idioma que siempre se utilizará si no ha permitido que los usuarios elijan su propio idioma, o si el usuario no ha establecido un idioma preferido.