2009-07-30 17 views
23

Sé que esta pregunta ha sido answered before, pero la respuesta no es la historia completa:¿Cómo obtener la configuración de idioma de Firefox? (Realmente)

entré en Firefox Opciones-> Contenido y quitó todos los idiomas excepto Alemania Alemán/y navigator.language hasn' ha cambiado, todavía está en GB (estoy en el Reino Unido).

Me han dicho que si tuviera la alemana Firefox instalarlo va a funcionar, pero no debería tener que hacer eso, ¿verdad?

La cadena useragent todavía contiene en-GB; pero el idioma de aceptación en los encabezados HTTP está configurado correctamente. Así que esto parece ser un error en Firefox, pasé un poco de tiempo vadeando su bugzilla, pero no puedo ver este error exacto registrado, aunque para mí parece un gran descuido.

Respuesta

9

Recomendaría utilizar un complemento de Firefox para esta tarea. Simple Locale Switcher, Locale Switcher o Quick Locale Switcher etc. (* Atención, algunos de estos complementos pueden contener ad ware o pueden no funcionar si acabas de actualizar Firefox).

* Otra solución es descargar una versión antigua de Firefox diferente utilizando el lenguaje/locale. (Precaución) Usted necesita e instalarlo en una carpeta diferente para que no sobrescriba su versión existente. Download here Estoy usando firefox 28 en español. Inhabilité las actualizaciones y rechacé usarlo como mi navegador predeterminado. Solo una versión de Firefox debería ejecutarse al mismo tiempo si haces esto.

+0

Gracias por su sugerencia, probablemente funcionaría con el error en esa versión de Firefox, pero cuando volví a probar esto, parece que ya lo arreglaron (versión 12.0). Eliminar el add-on y cambiar el idioma SÍ funciona ahora como se esperaba. Aceptaré tu respuesta porque hubiera sido útil si el problema no hubiera desaparecido. –

+0

Tenga cuidado, la última versión contiene adware/bloatware – SyntaxRules

+0

no funciona en Firefox ≥57 –

2

Supongo que navigator.language devuelve es idioma de la interfaz (que supongo que es GB Inglés), no uno que se quiere en los documentos. Cadena de agente de usuario también informar de que se ha descargado la versión de Firefox.

Aceptar idioma es lo que debe verificar el servidor de destino.

considero este comportamiento de su muy correcta (suponiendo que se trata de la interfaz (menús y tal) están realmente en GB Inglés).

+0

No entiendo por qué es bueno cambiar uno (el accept_language en los encabezados) y nada más relacionado con la configuración regional. –

+1

@Ian: si entiendo su pregunta correctamente, la respuesta es que el idioma y el idioma de la interfaz de usuario que desea ver en sus sitios web pueden ser diferentes. Ejemplo: si estoy en un cibercafé en Alemania, lo más probable es que esté instalada la versión alemana de Firefox.Probablemente no puedo instalar otro navegador, pero quiero que mis sitios web se muestren en inglés. Cambio el idioma de aceptación y ahora puedo ver sitios web en el idioma que prefiera aunque la interfaz de usuario esté en otro idioma. –

+1

@Grant: Exactamente. Ese es exactamente el problema que tenemos. El usuario solo puede cambiar 'accept-language' si está en un Firefox que no está localizado en el idioma que quiere usar. Y no puedes acceder a eso en javascript desde Firefox (puedes desde IE). –

0

Si desea que el valor Accept-Language, no se puede recuperar si se utiliza JavaScript del lado cliente. Tendrás que obtenerlo de tu servidor.

Si realmente quiere este valor en JavaScript del lado cliente, luego leerlo en el servidor y escribirlo de nuevo al cliente:

<script type="text/javascript"> 
// setting the accept language HTTP header value 
// in client-side JavaScript from PHP 
var acceptLanguage = '<?php echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>'; 
</script> 
+2

Lo sé. Esta es nuestra solución actual (usando ASP.NET): System.Web.HttpContext.Current.Request.UserLangauges. Esto puede sonar un poco "religioso", ¡pero no creo que debamos hacer eso! –

14

Tanto navigator.language y la cabecera HTTP User-Agent utiliza el valor de la preferencia "general.useragent.locale", que está codificada en intl.properties a la configuración regional de la construcción que ha descargado Firefox: http://mxr.mozilla.org/mozilla-central/source/toolkit/locales/en-US/chrome/global/intl.properties#8

O para su construcción es-eS: http://hg.mozilla.org/l10n-central/en-GB/file/88dd673c01f1/toolkit/chrome/global/intl.properties#l8

Si desea cambiarlo para su compilación, simplemente cargue about: config, busque general.useragent.locale, haga doble clic en él y cambie el valor.

+1

@Ted: 'navigator.language' puede usar' general.useragent.locale' (no lo he probado), pero 'Accept-Language' no parece usar el valor' general.useragent.locale' aquí. Parece usar 'intl.accept_languages'. Cambié manualmente 'intl.accept_languages' (es decir, no a través de Herramientas> Opciones ...> Contenido> Idiomas) y los encabezados de HTTP vivo muestran Firefox utilizando el nuevo valor. –

+0

@Ted: 'phpinfo()' también informa el nuevo valor de 'intl.accept_languages' en el encabezado HTTP' Accept-Language', por lo que no es un fenómeno local extraño. –

+0

Oh, vaya, me refiero al encabezado "User-Agent" allí, pero creo que me confundí al ver tu respuesta anterior. ¡Lo siento! –

-1

en firefore, about: config, modifique el valor de "intl.accept_languages", para su configuración regional es necesario, digamos que de-DE va ​​a hacer.

+0

Lo siento, pero una vez que un usuario final ha modificado esta configuración en la interfaz de usuario, ¿cómo debería mi JavaScript llegar a ella? - respuesta simple: no puede. –

+0

Creo que JS debería poder obtener esta información de la solicitud del usuario. accept_language es uno de los parámetros de solicitud estándar. – lwpro2

Cuestiones relacionadas