Tenemos una aplicación Java que hace que el texto Localizado en la sesión de explorador del usuario basada en navegador de configuración de idioma. La aplicación lee la configuración de idioma del explorador [set dentro de la cabecera que viene como en la solicitud de app] y prepara el texto localizado.
Pero recientemente nos hemos enfrentado problemas para Mozilla 5.0 versión del navegador. Nota nuestro código funciona bien en IE. Tomando un ejemplo de ‘ja’ lenguaje estamos a la espera de navegador para enviar lenguaje aceptado como ‘ja-JP’ [que IE hace] – pero por desgracia Mozilla (FF) no sólo envía navegador lenguaje aceptado como ‘ja’. Así que la tierra en la generación de contenido por defecto utilizando el lenguaje.

Ya que estamos proporcionando una solución para el mismo, básicamente, algo así como el mapa [idioma código idioma código de País] como – ‘ja’ a ‘ja-JP» y, a continuación, crear una nueva configuración regional [sólo si 2 dígitos de código de idioma está presente después de la solicitud] – mi pregunta es para otros navegadores como

Chrome

Safari

etc

¿Cuáles son los formatos de idioma enviar dentro de los encabezados?

Así que tener una matriz decir como esta

ja-JP = ja-JP

ja = ja-JP

y el navegador de asignación de idioma a idioma-país código ayudaría a resolver el problema. Pero, ¿hay alguna restricción específica que necesitamos abordar – dicen que hay idiomas que se hablan en varios lugares – si es así, entonces, ¿cómo podemos lidiar con él?

Cualquier otra cosa que tenemos que prestar atención a?

Gracias de antemano.

  • cambio Lcoales para las configuraciones regionales
InformationsquelleAutor Manoj | 2011-02-18

3 Comentarios

  1. 2

    Vistazo a la java.util.ResourceBundle clase, principalmente la getBundle() método. (Usted puede usar esto, o implementar un mecanismo similar por sí mismo.)

    En principio, tiene una jerarquía de lugares, y cada vez que un sitio no es especialmente compatible, usted se cae de nuevo a los padres de la configuración regional. En su caso, "ja_JP" (en Java notation) tiene el padre de la configuración regional "ja", que a su vez tiene el padre de la configuración regional "".

    Como la mayoría de los Japoneses páginas no son específicos de Japón, que normalmente tendría toda la traducción al Japonés hecho por ja, y sólo cuando algo especial sólo sería válida para los usuarios japoneses en Japón, además de tener ja_JP. Entonces usted también no tiene ningún problema si algún usuario envía jp_US ya que él es el uso de los Japoneses en los estados UNIDOS.


    Si querías usar el Java un resourcebundle mecanismo sólo para el modulo para que las localizaciones tenemos datos, se puede crear (por ejemplo) estos (vacío) archivos:

    • MyLocale.propiedades – corresponde a la» configuración Regional
    • MyLocale_de.propiedades – corresponde a «de» configuración Regional (alemán)
    • MyLocale_en.propiedades – corresponde a «en» configuración Regional (en inglés)
    • MyLocale_ja.propiedades – corresponde a un «ja» de la configuración Regional (japonés)

    Luego en su programa que iba a escribir

    Locale rLocale = request.getLocale();
    ResourceBundle bundle = ResourceBundle.getBundle("MyLocale", rLocale);
    Locale selectedLocale = bundle.getLocale();

    Ahora selectedLocale es, sin duda, uno de los «», «de», «es», «jp», no importa qué configuración regional rLocale fue. Por ejemplo, «es», «es_es», «es_es» en todos los casos, «es», se seleccionará «ja» y «ja_JP» sería el resultado en «ja», mientras que «es_es» y «de_AT» sería el resultado «de», y «it_IT», «eo» y la mayoría de otros lugares resultaría en «».


    El «derecho de Java camino» para hacer esto:
    No pregúntele a su paquete sobre su configuración Regional, pero basta con utilizar el paquete como un resourcebundle, teniendo los recursos localizados a partir de ella. Así que, cuando usted necesita un poco de texto, hacer

     String text = bundle.getText("greeting.hello");

    y, a continuación, la salida del texto. A veces, usted podría usar un MessageFormat a formato de texto con los valores insertados (o un Formateador). (Luego de su propiedad archivos no sería vacía, por supuesto, pero contienen líneas como estas:

     greeting.hello = Hello World!

    (en el fichero en inglés)

     greeting.hello = Hallo Welt!

    (en el archivo de alemán)


    Tenga en cuenta que a menudo el Navegador envía no sólo un código de configuración Regional, pero una lista de preferidos. Así que en realidad deberían hacer esto «paquete-de búsqueda» para cada uno de estos códigos y tome la primera a la que no devuelven algo de «», y se vuelve a «» sólo cuando no hay idioma solicitado a los partidos. (Por ejemplo, mi navegador envía «eo», «es_es», «de», «en». Dado que la mayoría de Sitios web no admiten el Esperanto, se caen de nuevo a alemania (si está disponible y la selección se realiza correctamente), o para el idioma por defecto (si se ven sólo en la primera entrada)).

    • Sólo para la confirmación es el siguiente código correcto en términos de aplicación: Cadena de cLang = solicitud.getLocale().getLanguage(); //petición http del navegador, configuración Regional cLocale = new Locale(sonido metálico); un resourcebundle rb = un resourcebundle.getBundle(«MyLocale», cLocale ); String lang = rb.getString(«lengua»); String país = rb.getstring(«país»); configuración Regional ULocale = new Locale (idioma , país ); ………. posterior procesamiento …………
    • Ah, esto es demasiado complicado. Usted podría utilizar un resourcebundle directamente para la búsqueda (o implementar un mecanismo similar a la descrita allí). O usted puede tratar de rb.getLocale() para obtener la configuración Regional de la agrupación.
    • Lo siento soy nuevo en Java tech y no es capaz de comprender los detalles mencionados por usted. ¿Mencionó algo como esto: Locale ULocale = un resourcebundle.getBundle(«MyLocale», petición.getLocale()).getLocale() — pero, entonces ¿cuál sería el texto en decir MyLocale_ja_JP de recursos bundle — locale=ja_JP — por favor aclarar
  2. 0

    http://www.tutorialspoint.com/jsp/jsp_internationalization.htm

    y más información acerca de una solicitud:
    http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-Request-Headers.html

    • Básicamente Locale Locale = solicitud.getLocale( ); devuelve ‘ja’ sólo por lo que este no va a resolver nuestro problema
    • Mi petición es que no tenemos información detallada de lo que en lenguaje aceptado todas navegador envía al menos en chrome, moziall, IE, Safari, etc para comparar y mapa de valores. ¿Cuál es la forma correcta de solucionar este problema?
    • lo siento.., no se puede obtener información acerca de ‘el país de solicitud, vamos a ver algo más.

Dejar respuesta

Please enter your comment!
Please enter your name here