Cómo no ser deshonrado con la localización e internacionalización

Sobre el tema de este artículo, me inspiró una historia de un pasado muy reciente. Fui a la página del producto llamada Supersite, la compañía We Will Not Poke Fingers LLC (pero la gente de la industria de los domainer lo reconocerá). Salí de mi acogedora oficina en Letonia y me sorprendió encontrar la siguiente imagen:


Y, para decirlo suavemente, estaba confundido por la moneda en la que se indicaba el costo de los servicios. De hecho, en el patio de la segunda mitad de 2018, y el lat letón dejó de existir oficialmente en enero de 2014 y fue reemplazado por el euro. Y durante 4 años, la empresa no mencionada anteriormente no se molestó en auditar los locales utilizados.

Debajo del corte, le diré qué recordar cuando internacionalice y localice su producto y dónde obtener datos para revisiones periódicas.

Definiciones


Será lógico comprender al principio qué es qué y acordar lo que llamaremos en el futuro. Entonces ...

  • Internacionalización (internacionalización, i18n) : preparación de un producto de software para trabajar con varios idiomas y diferencias locales sin la necesidad de finalizar un archivo durante su implementación. Muchas cartas, por lo tanto explicaré con ejemplos. Dibuje su sitio web para que, sin intervención adicional del archivo de diseño , funcione para la ortografía de izquierda a derecha y de derecha a izquierda: internacionalización. Reemplace todo el código duro del texto con variables de idioma: es lo mismo. Enseñar a un producto a formatear fechas es nuevamente lo mismo. Por cierto, el número 18 en i18n significa solo el número de letras entre la primera y la última en la palabra internacionalización. Soy perezoso. Por conveniencia, continuaré usando i18n.
  • Localización (localización, L10n) : adaptación del software internacionalizado a los estándares de una región específica (locale). Es decir cuando proporciona una lista de variables de idioma para traducir al inglés de Bushman y especifica el formato de número para indios, esto es L10n.
  • La configuración regional es un conjunto de parámetros que define el idioma y la configuración específica de la interfaz de usuario que corresponde a los hábitos de los usuarios de una determinada región.

¿Por qué necesitas esto?


Buena pregunta Muchos lenguajes de programación modernos contienen algoritmos integrados para la localización básica (fechas de formato, números, monedas). Y si no le importa, está completamente listo para confiar en la tecnología que ha elegido, y no le importan los usuarios, su visión de i18n para su producto no va más allá de esto, la única razón posible es la curiosidad ociosa y el desarrollo general.

Sin embargo, el diablo está en los detalles. Y estas pequeñas cosas a veces no prestan atención, lo que puede ser muy molesto para los usuarios. Si ya tiene una sólida experiencia con i18n, lo más probable es que encuentre poco en este artículo (quizás algunos ejemplos de la vida). En este caso, estaré agradecido si agrega comentarios de su experiencia (y me corrige si cometí un error en algo). El resto, espero, encontrará algo para pensar.

¿Qué aspectos incluye el entorno local?


A menudo, la configuración regional se especifica como la combinación de idioma y país. Estos parámetros son suficientes para establecer la combinación de matices de lenguaje y otros parámetros utilizados en la región. Para algunas tareas específicas, puede ser necesaria una división más complicada (por ejemplo, jurisdicciones fiscales de algunos países). En este caso, todavía se establece un tercer parámetro: una variación (por ejemplo, para una región específica, sistema operativo, etc.). Además, mucho depende de lo cerca que desee estar de su usuario (por ejemplo, en Filipinas hay 12 lenguas indígenas con más de un millón de hablantes, estarían encantados).

Entonces, ¿qué incluye la configuración regional?

Popular y obvio


Formatear la mayoría de los parámetros de este grupo proporciona, quizás, los lenguajes de programación más modernos. Aunque es mejor cuidarlos un poco por si acaso. O al menos a tiempo para actualizar las versiones de las bibliotecas correspondientes.

  • Traducción : aquí todo está claro, ningún lenguaje de programación lo hará por usted. Al preparar un producto para la traducción, recuerde una regla simple: la unidad mínima deseada para una variable de lenguaje es una oración (en la medida de lo posible). Una mejor frase en su conjunto. Esto puede no ser obvio si el arquitecto del sistema solo conoce uno o dos idiomas gramaticalmente cercanos (tuve que lidiar con esas experiencias personales y, como resultado, los desarrolladores tuvieron que rehacer y reescribir una gran cantidad de mensajes de texto en su código). Pero el lenguaje en sentido amplio es un reflejo del estilo de vida y las características culturales de ciertas personas.

    Por ejemplo, todos (o muchos) saben que en inglés hay un orden estricto de las partes del discurso. Por lo que sé, también en chino, por cierto. Pero en ruso, el orden de las palabras puede no tener ningún significado o cambiar el significado ("eres muy inteligente" suena como un elogio, y "eres muy inteligente" es como una amenaza). En árabe, existen diferencias en la comunicación con hombres y mujeres, en japonés, entre grupos sociales. Dependiendo de cuán importante sea este o aquel público para usted, debe estudiar estas sutilezas en detalle junto con un hablante nativo o ignorarlo.
  • La fecha y la hora en su mayoría difieren precisamente en el formato de la fecha. La diferencia en el formato de hora es principalmente un formato de 12 o 24 horas. Pero con la fecha de opciones mucho más. Los formatos de fecha a menudo se supone que son múltiples. Día y mes; día, mes, año en formato numérico; día, mes, año en formato extendido. Y luego, el número de opciones está creciendo rápidamente. En algún lugar, el separador es un punto, en algún lugar: una barra diagonal, en algún lugar en formatos abreviados, el primero es el día, en algún lugar del mes. Más diversión con el formato extendido. Tome por ejemplo la fecha de mi nacimiento (soy modesto, sí). Entonces, el 5 de septiembre de 1986, nació un hombre que estaba sucio con esta obra. Vamos a los lugares. Dos países de habla inglesa para empezar.
    • Estados Unidos - 5 de septiembre de 1986.
    • Reino Unido - 5 de septiembre de 1986.

    Y esto es solo el comienzo. No hay casos en inglés, pero incluso al comienzo de nuestro viaje, en_US y en_UK son diferentes. ¿Echar un vistazo más de cerca a los idiomas de los países?
    • Rusia - 5 de septiembre de 1986. Así han aparecido los casos. Y aquí pueden comenzar las sorpresas, porque Las herramientas de formato de fecha estándar en su lenguaje de programación pueden no ser conscientes de los casos nominativos y genitivos.
    • Letonia : ¿solo quieres nombrar la fecha o decir que algo sucedió en esa fecha? En ruso (hoy) 5 de septiembre y (nacido) 5 de septiembre, todo es genitivo. Pero en letón, el nombre simple de la fecha es 1986 gada 5.septembris. Y si "nací" - 1986 gada 5.septembrī. El año es primero, el número está en el caso local (la traducción aproximada es "el 5 de septiembre"). Y después de todos los números ordinales en letón, se pone un punto.

    ¿Apuntar al mundo entero? Piensa en qué formatos de fecha usar. Quizás sea mejor no meterse con los avanzados, es poco probable que las funciones de formato incorporadas tengan en cuenta todas las sutilezas mencionadas anteriormente. Y pasé por solo 4 de los 195 países: miembros y observadores de la ONU.
  • El formato de número también contiene mucha confusión. Solo conozco el separador de las partes enteras y fraccionarias (generalmente un punto o coma) y los separadores dentro de la parte entera (acabo de conocer las opciones "sin separador", coma, espacio, también permito el uso de puntos y apóstrofes). El papel también lo juegan las posiciones donde se colocan los delimitadores. Digamos que nosotros (y no solo) estamos acostumbrados a establecer divisores cada 3 posiciones (miles, millones, etc.). Pero aquí los habitantes de la India y los países vecinos mencionados anteriormente viven sus propias vidas. El primer separador en la parte entera (contando desde el decimal) viene después de 3 posiciones (miles), y luego cada dos: lakh (100 mil), crore (10 millones) y así sucesivamente. Por lo tanto, nuestros 42,000,000 en el sistema de grabación indio se verán como 4,20,00,000 . Y a menudo miden el salario anual en miles de rupias allí. Sin embargo, en el tema de formatear números con un alto grado de confiabilidad, puede confiar en el lenguaje de programación.
  • Un formato de moneda es esencialmente un número formateado, aromatizado con un prefijo o sufijo para un símbolo o código de moneda. Lo principal aquí es asegurarse de que no haya aventuras, como al principio del artículo. Por el momento, se aplica especialmente a los países de la UE, como algunos pueden unirse a la zona de rotación del euro.
  • La dirección de la escritura en realidad cubre un poco más que simplemente escribir todo el texto al revés en algunos idiomas. Este es un trabajo para un diseñador de diseño o diseñador de interfaz de usuario. Al localizar una interfaz creada para idiomas "de izquierda a derecha", a menudo se refleja por completo para los idiomas "de derecha a izquierda" (por ejemplo, el logotipo y la barra lateral con el menú del sitio estarán a la derecha).

Menos obvio


Algunos datos relacionados con i18n se usan con bastante frecuencia, pero a veces con ligeras omisiones. Aquí, el lenguaje de programación no te ayuda, tienes que trabajar con bolígrafos.

  • Código postal ¿Adivina cuántos países no usan el código postal? Según un artículo sobre el Grande y omnisciente , ¡66! Para ser justos, noto que 3 de ellos usan un sistema similar al código postal, que le permite codificar hasta la calle / grupo de casas / casas. Pero quedan 63 más, en los cuales el código postal no se usa en absoluto, o su implementación fue planeada o está planeada. Y esto es casi un tercio de los países del mundo. Ahora recuerde cuántos sitios ha conocido, ¿dónde es el código postal un campo obligatorio? Y no se puede hacer nada al respecto. Aunque el enfoque correcto sería hacerlo obligatorio solo para aquellos países donde existe. Además, si lo desea, puede verificar la entrada a los estándares del país seleccionado por los usuarios. Afortunadamente, esta información está disponible (incluido el enlace de arriba).
  • Región Como opciones: estado, región ... Otro campo que les gusta hacer obligatorio, sin tener en cuenta la situación real con el envío postal en el país. Sí, incluso en los países más pequeños hay algún tipo de división administrativa ( detalles en la misma wiki ), pero no siempre vale la pena hacer que el campo sea obligatorio.
  • Número de teléfono Consiste en un código de país y un identificador nacional. Y si no es un problema obtener una lista de códigos de países, pueden surgir matices con la validación de un identificador nacional. Por ejemplo, ¿cuál es la longitud mínima del número cosida en su verificación? Pero la longitud mínima real del número es de 4 dígitos. Sí, esto se aplica solo a dos territorios en miniatura, uno de los cuales es el quinto al final en términos de población, el otro también está cerca en algún lugar. Pero aquí quiero centrarme más en la validez que en la posibilidad de obtener uno de los aproximadamente 1600-1700 residentes de Niue como usuario. Por referencia, puede hacerse una idea de la longitud de los identificadores nacionales por país.
  • Nombre y apelación (título). Aquí basta un promedio normal. Campos para nombre y apellido más trato respetuoso. Al igual que con los otros puntos en esta sección, todo depende de cuán “tu” quieras ser. Si en términos generales, el nombre y el apellido son obligatorios (aunque en casos raros la ley puede establecer solo uno de estos). Para mayor comodidad, puede crear campos para circulación, otros nombres y un sufijo (todos estos son "junior", "tercero"). Si entras en particular, las reglas de escritura pueden variar mucho de una cultura a otra, de un idioma a otro.
    • Rusia : todos sabemos que un nombre completo consiste en un apellido, nombre y patronímico. En el idioma, como en el propio país, el orden es muy condicional, por lo tanto, en la dirección, el apellido puede estar en primer o último lugar, y el segundo nombre puede omitirse. Opcional se puede agregar al comienzo de la apelación Sr. / Sra. (Sr. / Sra.).
    • EE.UU .: el nombre completo a menudo consiste en el nombre en sí (nombre, "nombre"), un nombre o nombres intermedios (segundo nombre), o inicial y apellido. Está escrito como estándar en este orden, se pueden omitir los nombres intermedios. Opcionalmente, se puede agregar una apelación (la más popular: Mr, Ms, Mrs, Dr).
    • Letonia : el nombre completo consiste en el nombre y el apellido, siempre en ese orden. Patronímico como tal existe solo en el certificado de nacimiento, no se utiliza en otros documentos. Hay una forma de tratamiento amable kungs / kundze (análogo del caballero / amante ruso), que se coloca después del apellido (es decir, al final, y no al principio, como en las versiones anteriores). El apellido se registra en el pago genitivo.
    • China : en el registro chino original, el apellido siempre va primero, luego el nombre. Hay una forma cortés de apelación que une el apellido (se fusiona con él y no con una sola palabra). Mi apellido Vasiliskov en el registro chino se verá como 瓦西里斯科夫. Y la contraparte china, "Sr. Basilisk" es 瓦西里斯科夫 先生.
      Mimar con chino
      No es relevante para el tema del artículo, pero puede traer mucho lulz. Si toma la palabra, traduce el traductor de Google al chino y divide el resultado en 1-2 jeroglíficos y traduce de nuevo, puede pasar un momento muy emocionante. Digamos, 瓦西 里 se traduce como "Basilio", 斯科夫 como "bahía", 科夫 como "Cracovia". Pero el significado secreto del conocimiento antiguo se puede revelar en palabras ordinarias. Digamos que el teléfono se traduce a 电话. En este caso, 电 - "electricidad", 话 - "palabras". Otras palabras con electricidad: 电池 - batería (池 - piscina), 电脑 - computadora (脑 - cerebro), 电影 - película (影 - sombra). No verifiqué con chino real en esta parte, pero el tiempo se puede pasar de esta manera muy bien. En general, un lenguaje interesante. Después del letón y el polaco habría que hacer ...
    • Filipinas : aquí los sistemas de ortografía de nombres estadounidenses y españoles se han mezclado históricamente. Tomado de los días de la colonización española, la tradición de deletrear los nombres de la madre y el padre se mezcló con la estadounidense para dar nombres intermedios. En la versión actual, el nombre dado al nacer se registra en la columna "nombre", el nombre del niño se convierte en el apellido del padre y el segundo nombre es el apellido de soltera de la madre.

    Como puede ver, adaptar el sistema a todas las opciones de grabación posibles puede hacer que sea demasiado complicado. Pero si uno de los mercados importantes para su producto se encuentra en un determinado país, tendrá que intentarlo.

Opciones más raras


Es improbable que la mayoría de ustedes necesite los aspectos de esta categoría. Pero aún puede ser útil tenerlos en cuenta.

  • Sistema de unidades. ¿Están sus usuarios acostumbrados a metros, kilogramos, litros y grados Celsius? ¿O pies, libras, galones y grados Kelvin? Yo mismo aún no he estado en los Estados Unidos, pero aquellos que han estado allí me han dicho que al llegar allí te encuentras en Narnia, el maravilloso mundo de las unidades "no sistemáticas". Y después de pasar cierto tiempo allí, comienzas a olvidar los del sistema.
  • Tamaño de papel Está en parte relacionado con el anterior y es muy útil si genera algunas facturas, formularios en papel y algo más que podría imprimirse y guardarse en una carpeta para grabar o entregar a alguien. La mayoría de los países están acostumbrados al formato A4. Pero los Estados Unidos, por ejemplo, utilizan ampliamente los formatos Carta (8 1⁄2 x 11 pulgadas, 216 x 279 mm) y Legal (8 1⁄2 x 14 pulgadas, 216 x 356 mm).
  • Reglas combinadas de cuerdas. Uno de los aspectos que a menudo puede ser útil, y que es difícil de implementar. Por las reglas de cadenas combinadas, me refiero a aquellos casos en los que necesita formar un fragmento de texto, y no solo producir una variable de lenguaje. Los ejemplos incluyen, pero no se limitan a:
    • declinación de palabras relacionadas con el número (en su cesta 3 productos / 5 productos);
    • formación del nombre completo del ejemplo anterior;
    • el uso correcto del género gramatical en los idiomas donde existe (Estimado Sr. Ivanov / Estimada Sra. Ivanova), etc.

    ¿Qué hacer con ellos? Si apunta a un número limitado de entornos locales o se expande gradualmente, puede pensar en la arquitectura para esos lugares resbaladizos. Pero sería ideal eludirlos cuidadosa y neutralmente.

¿Dónde obtener información?


En el texto del artículo proporcioné enlaces a Wikipedia, pero todos sabemos que es mejor no usarlo como una fuente seria de conocimiento. Afortunadamente, hay un proyecto de depósito de datos de configuración regional común respaldado por el Consorcio Unicode . No solo contiene una increíble cantidad de aspectos y parámetros de configuraciones regionales, sino que la comunidad lo actualiza regularmente, sino que los datos están disponibles para su descarga gratuita en formato XML, lo que permite que los estándares regulares se actualicen sin problemas con la arquitectura correcta.

Toqué solo los aspectos básicos en mi opinión. Si crees que me perdí algo, escribe en los comentarios, agregaré. Comparta su experiencia con productos localizados al mismo tiempo.

Gracias por quedarte con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más materiales interesantes? Apóyenos haciendo un pedido o recomendándolo a sus amigos, un descuento del 30% para los usuarios de Habr en un análogo único de servidores de nivel de entrada que inventamos para usted: toda la verdad sobre VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps de $ 20 o cómo dividir el servidor? (las opciones están disponibles con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps hasta diciembre de forma gratuita al pagar por un período de seis meses, puede ordenar aquí .

Dell R730xd 2 veces más barato? ¡Solo tenemos 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV desde $ 249 en los Países Bajos y los Estados Unidos! Lea sobre Cómo construir un edificio de infraestructura. clase utilizando servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?

Source: https://habr.com/ru/post/es427641/


All Articles