Internacionalización: ¿en qué pensar?

8

Estaba escuchando la charla de Jon Skeet en los últimos StackOverflow Dev Days y despertó mi curiosidad con respecto a la internacionalización.

Supongamos que tengo un programa para hacer gofres, ya sea completo o en progreso, y quiero distribuirlo a otros países. ¿De qué tipo de cosas debo preocuparme con respecto a la internacionalización? ¿Cuáles son algunas trampas no obvias pero fáciles?

rlb.usa
fuente
Perdón por las 3 ediciones, pero por alguna razón, eliminar una etiqueta reemplazó a otra con "java".
ChrisF
Personalmente, pensé que la etiqueta jon-skeet era divertida.
rlb.usa
1
Puede ser divertido, pero no es particularmente útil
ChrisF

Respuestas:

15

Lo más obvio que me viene a la mente es que sus etiquetas probablemente tendrán una longitud diferente a la versión en inglés. Esto podría causar estragos en su diseño.

Podrías terminar con acres de espacio en blanco o etiquetas llenas e incluso desbordar el espacio disponible.

Debe hacer que su diseño sea flexible y fluido, independientemente del tamaño de los contenidos. Tener un diseño que pueda hacer frente a diferentes resoluciones de pantalla será de gran ayuda para resolver este problema.

El otro gran problema es el soporte de idiomas de derecha a izquierda. Esto requerirá nuevamente que su diseño sea flexible.

No son solo los menús y cuadros de diálogo los que deben traducirse. También incluye toda la documentación de soporte, archivos de ayuda, consejos sobre herramientas y títulos de ventanas. Por lo general, hay mucho más texto del que cree en una aplicación y siempre habrá algunas cadenas que se agregaron directamente en lugar de como recursos.

ChrisF
fuente
Sin lugar a dudas, la longitud de las palabras es la parte más difícil de la internacionalización. Las palabras técnicas alemanas tienden a ser aproximadamente 2,5 veces más largas que su equivalente en inglés.
Dave Nay
por ejemplo, la palabra inglesa "note" se puede traducir a "Aufzeichnungen" en alemán. Como empleador anterior, utilizamos diferentes diseños de CSS según el idioma que se mostraba. Echa un vistazo a las cuadrículas CSS como YUI Grids o BlueprintCSS.
Adrian J. Moreno
¡POR FAVOR, no olvide traducir los mensajes de error también!
Andy Canfield
@Andy: eso está implícito en el bit de "diálogo", pero sí vale la pena mencionarlo.
ChrisF
10

Zonas horarias y formato de fecha! Cuando se trata de aplicaciones donde se programan fechas y horas en diferentes zonas horarias, asegúrese de hacer las cosas bien.

Persista TODOS los valores de fecha y hora como marcas de tiempo, ya que representan un solo punto en el tiempo. Realice un seguimiento de las zonas horarias, ya que necesitará la información de la zona horaria para mostrar correctamente la marca de tiempo en el formato correcto para el usuario.

Estoy trabajando en una aplicación en este momento donde un usuario en Japón podría programar una fecha y hora para un usuario que ejecuta una aplicación cliente en Idaho. Asegurarse de que cuando el usuario vea 3:00PMque sabe de qué 3:00PMestá hablando todo el mundo.

maple_shaft
fuente
9

Recuerde que el hecho de que una persona se encuentre en un país en particular no significa que sepa ese idioma. El idioma y la ubicación son dos cuestiones diferentes.

Andy Canfield
fuente
1
Esos backends de lenguaje de ubicación geográfica que son tan populares en estos días son una mala idea. Intenta ser un noruego que vive en un área de habla francesa de un país predominantemente de habla alemana (Ginebra, Suiza). ¡El encabezado Accept-Language está ahí por una razón!
l0b0
8

Números. La mayor parte de Europa, América del Sur usa una coma (10,23) como separador decimal, mientras que el resto (Reino Unido, EE. UU., Etc.) usa el período (10,23).

Lukasz Madon
fuente
44
Sé que este es un enlace a Stack Overflow, pero sigue siendo una buena práctica resumir el contenido en su respuesta.
ChrisF
3

No siempre es tan fácil ... Hay muchas cosas a considerar, dependiendo de la complejidad del software que está desarrollando y de dónde lo va a enviar. De hecho, podría terminar en casi cualquier lugar, por lo que lo importante es qué lugares vas a admitir oficialmente.

  • Obviamente, está el lenguaje de las interfaces. Todo el texto que use debería ser relativamente fácil de cambiar por su equivalente en otro idioma. Como alguien ya señaló, la longitud de las etiquetas variará. Algo escrito en chino no tendrá el mismo ancho que algo escrito en alemán, por ejemplo. Agreguemos que no solo la interfaz básica es traducir, sino todas las burbujas de información, archivos de ayuda si los hay, mensajes de error, tal vez no archivos de registro, pero depende de la aplicación, supongo. Si su aplicación admite idiomas, es posible que su sitio web también quiera ponerse al día.
  • Codificación de caracteres. Es bueno proporcionar muchos idiomas, pero ¿cómo vas a hacer eso? Si todo está programado con una codificación de caracteres estrecha / básica, tendrá problemas con algunos acentos y la mayoría de los idiomas que no utilizan nuestros caracteres. Piensa en coreano o árabe. Supongo que alguien tendría que usar Unicode tanto como sea posible.
  • Disposición del widget / orientación de la ventana. Si elige admitir árabe, por ejemplo, tendrá que pensar en una forma de voltear más o menos sus interfaces. Están leyendo de derecha a izquierda, por lo que sería normal tener etiquetas en el lado derecho del elemento que describen (cuadro de texto para la entrada, por ejemplo).
  • Formateo de números. En algunos entornos locales, hay una coma en lugar de un punto para separar la parte fraccionaria de la parte entera en un número. Esa es bastante obvia, pero dependiendo del dominio de la aplicación, puede haber muchas otras cosas a considerar. ¿Hay números negativos entre paréntesis o con un '-' delante de ellos? ¿Están miles separados o no, con un espacio o con una coma? ¿La separación de los dígitos es siempre por 3, o es solo el primer grupo por 3 y el resto por 2? ¿Estás usando números arábigos o indios u otros?
  • Formato de fecha. Es casi tan complicado. Es posible que deba almacenar los nombres completos de los días de la semana, de los meses del año, y todos ellos resumidos también. ¿Qué orden están utilizando (día, mes, año? Mes, día, año? Año, mes, día, etc., etc.).
  • Formato de hora. 24 horas o 12? ':' o 'h'? ':' o '.' por los segundos? No sé mucho sobre el formato del tiempo, pero supongo que hay muchas formas desconocidas para mostrar el tiempo.
  • ¡Gráficos! Si tiene íconos ... Deseará verificar no solo que las letras o palabras en ellas sigan siendo significativas para todas las configuraciones regionales, sino que los símbolos que use también sean significativos y estén correctamente orientados. Si una flecha apunta a la izquierda en la versión en inglés, tiene posibilidades de que apunte a la derecha en la versión en árabe (¡pero no necesariamente!). Si coloca una señal de alto como un octágono rojo en su icono, las personas en algunos lugares no tendrán idea de para qué sirve, o peor, estarán convencidos de que debería estar haciendo otras cosas además de lo que pretendía y programó. .
  • Si tiene que lidiar con direcciones en su sistema, también se vuelven incómodas en algunos lugares. Grandes dolores de cabeza si tienes que validarlos.
  • Etc.

Afortunadamente, hay bibliotecas en muchos idiomas para ocuparse de una buena parte del trabajo. Cuando no tenga una buena biblioteca para hacer eso, probablemente desee definir parámetros para todas sus configuraciones regionales y definirlos en detalle utilizando archivos XML u otros tipos de archivos de configuración (o en una base de datos si envía uno con el software , o si no le importa agregar una pequeña huella).

Joanis
fuente
2

Depende mucho de la plataforma que esté utilizando. .NET admite archivos de recursos que pueden cambiarse dentro y fuera dependiendo de la compilación del cliente.

Otros problemas que pueden o no ser compatibles con su plataforma incluyen la capacidad de invertir el orden de las etiquetas y los cuadros de texto (algunas culturas prefieren que las etiquetas estén a la derecha). Estas mismas culturas pueden querer que todos los bloques de texto se lean de derecha a izquierda.

Britt Wescott
fuente
2

¡No te olvides de los valores en las tablas de búsqueda! Nombres de estado de pedidos, descripciones de tipos, et al.

si tiene descripciones y nombres en las tablas de búsqueda, por ejemplo, {OrderStatusId, OrderStatusName, OrderStatusDescription}, también deberán traducirse.

Steven A. Lowe
fuente
0

Además de lo anterior, considere formatos de fecha, ortografía y control de orientación de pantalla. En los informes donde los idiomas se leen de derecha a izquierda, debe preocuparse por la dirección de sangría. Los fines de semana varían según los países. Si está mostrando calendarios, debe asegurarse de que los fines de semana se muestren correctamente. Si no está utilizando MS-Windows, verifique las características en el sistema operativo del cliente con respecto al manejo de secuencias de clasificación para la clasificación y cómo funciona el sistema operativo. Los mensajes de error deben traducirse a los usuarios cuando el modo no es inglés. En el codigo. Para el lado de la base de datos, debe seleccionar los códigos de caracteres correctos. Esto varía de una base de datos a otra y puede afectar las comparaciones de fechas.

Ninguna posibilidad
fuente