2011-02-05 21 views

Respuesta

41

Espera, espera, espera. Chicos, estoy bastante seguro "-" es el estándar. Si ve "_" en algún lugar, es probable que haya sido ideado por algunas personas para que sea un identificador válido.

Personalmente iría con "-", solo para ser correcto.

http://en.wikipedia.org/wiki/IETF_language_tag

http://tools.ietf.org/html/rfc5646

+1

Sí, "-" es el estándar, incluso si uso Java, seguiré el estándar. (http://www.w3.org/TR/html401/struct/dirlang.html) – Howard

+5

@Howard Um, vas a necesitar los nombres de configuración regional en formato 'en_US' cada vez que crea una instancia de un objeto' Locale'. (Para formato de moneda, formato de fecha, etc.) Almacenar los datos en el formato 'en-US' y reemplazar guiones con guiones bajos cada vez que necesite usar los datos almacenados funcionará * absolutamente *, pero puede ser más inteligente (y ciertamente más simple) para almacenar los nombres de configuración regional en el formato que su aplicación realmente usa ... – dkarp

+6

@dkarp Usando [Locale # toLanguageTag()] (http://docs.oracle.com/javase/7/docs/api/java/util /Locale.html#toLanguageTag()) y [Locale # forLanguageTag()] (http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#forLanguageTag (java.lang. String)) hará el truco (en JDK 1.7, sin embargo). – viphe

6

en_US. This es una lectura muy útil.

+0

Lamentablemente, Oracle ha eliminado o movido ese artículo. –

+1

Sí, lo siento, votando a medida que el artículo se va. – ebruchez

+0

@ebruchez en lugar de votar abajo, solo puede dejar un comentario y puedo actualizar el enlace o eliminar la respuesta. Esta es una respuesta de 2 años y medio de edad. Gracias por atraparlo sin embargo. – CoolBeans

1

No creo que en-US sea un estándar para Java. (Si lo ves en alguna parte, podrías agregar un enlace).

Tan solo use en_US.

+0

Como se muestra, hay muchas variantes, pero la el estándar oficial es subrayado. Al realizar llamadas a marcos con diferentes convenciones, tiene un "pratfall" del codificador que necesita saber que se requiere una conversión. recomendamos usar la convención del marco desde el que llama. Cuando realiza llamadas a otro marco, proporcione "proxies" que realicen la conversión. ¿Por qué? elimina la necesidad de saber que el marco llamado usa una convención diferente. Los colaboradores SÓLO "verán" una convención usando eso evitará la pratfall. – DaBlick

17

Si está trabajando con Java, también puede usar Java locale format (en_US).

Los documentos BCP 47 realmente hacen especificar el formato en-US, y es tan común si no es más común que los nombres de configuración regional al estilo de Java. Pero en la práctica verás un poco la forma con la barra inferior. Por ejemplo, tanto Java como most POSIX-type platforms usan la barra inferior para su separador de idioma/región.

Así que no puedes equivocarte mucho con cualquiera de las opciones. Pero dado que está escribiendo en Java y probablemente apuntando a una plataforma Unix, en_US es probablemente el camino a seguir.

+0

Personalmente ni siquiera recuerdo haber visto la versión de guión bajo en uso. Aunque no trabajo mucho con Java. –

+1

Sí, pero tiene una etiqueta 'java' en su pregunta. Revisa los enlaces en mi respuesta, si quieres ... – dkarp

+0

Hum, bueno, tienes razón sobre las plataformas * nix al menos. Olvidé esos. –

8

En Java 7, hay un método nuevo Locale.forLanguageTag(String), que asume el guión como separador. Lo consideraría como normativo.

Consulte la documentación de Locale para obtener más información.

Cuestiones relacionadas