salto original linea data html css unicode internationalization browser-bugs

html - original - Cambio de línea tailandés: cómo romper efectivamente el texto tailandés



salto de linea en title html (2)

La situación con el texto tailandés en el sitio de un cliente es que no podemos controlar dónde exactamente se dividirán las palabras / oraciones entre las líneas (cómo lo manejará el navegador web) . A menudo, los revisores locales indican que la apariencia del contenido es incorrecta.

La solución a esto es que el redactor debe entregar el contenido tailandés con la división ​ y sin interrupción  caracteres de espacio de ancho cero incluidos.

En la práctica, en lugar de:
ของเพื่อนๆ ที่ออนไลน์อยู่
deberíamos usar algo tan feo como:
ของเพื่อนๆ​ที่​ออนไลน์อยู่

Lo anterior es solo un ejemplo, realmente no sé dónde se permiten exactamente los puntos de interrupción.
De hecho, los espacios cero que no se rompan por sí solos también podrían hacer el truco ... es más estricto y correcto usar también los que se rompen para una mejor precisión.

Y aunque definitivamente es factible de esta manera, también es una solución lenta y no muy efectiva para una administración de contenido de sitio grande. Simplemente dicho, el esfuerzo puesto en él no coincide con el efecto necesario.

La investigación hasta el momento ha llevado a la solución mencionada, buscando una mejor manera de manejar esto. Incluso el W3C aún no tiene una solución y solo está discutiendo si debería ser parte de la especificación CSS3.

El idioma tailandés utiliza espacios muy raramente, principalmente para distinguir entre oraciones, etc. Por lo tanto, la apariencia común de una oración tailandesa es una cadena looong. Dónde se divide una cadena de caracteres cuando se combinan más líneas de texto está determinada por la identificación de palabras particulares. Para la identificación de palabras se usan diccionarios locales que probablemente sean parte del sistema operativo o navegador web, no estoy del todo seguro acerca de estos.

Aparentemente, ¡cuantos más navegadores web / sistemas operativos controle, más resultados obtendrá! Además, no hay mucho que pueda hacer al respecto, ya que es impulsado por el sistema y no hay configuraciones disponibles para "dónde romper el tailandés".

Usando <wbr/> , <wbr/> o <wbr/> indicar dónde están realmente los puntos de interrupción no evitará que el navegador web piense (aunque sea incorrecto) que algunos cortes también son posibles en lugares donde no los ha definido, por ejemplo, en medio de una palabra que podría ser gramaticalmente incorrecta.

Si dicha palabra se coloca al final de una línea (depende de la resolución de la pantalla, la duración de la copia, las reglas de CSS definidas) y el navegador aplica su regla de línea errónea entonces usted terminaría con un problema de interrupción de línea tailandés, sin importar que ha definido otros puntos de interrupción antes, después o en cualquier otro lugar de la palabra: el navegador siempre usará un punto de interrupción que considere más cercano a EOL, no solo los que ha sugerido suavemente al insertar uno de los caracteres mencionados en su marcado.

Es por eso que realmente necesita enfocarse en dónde no romper su texto (espacio de ancho cero sin ruptura) , no donde está permitido. Y eso es lo que nos lleva de vuelta al ejemplo de marcado feo y largo en la sección anterior "Solución". De esta forma, un salto de línea solo puede ocurrir estrictamente donde usted lo permitió, pero es desordenado.

Se agradecería cualquier otra solución sobre cómo manejar esto de manera más efectiva ... y quién sabe, incluso podría ayudar al W3C en su implementación.

¡GRACIAS!


Las bibliotecas ICU e ICU4J tienen un repetidor de salto de palabras basado en diccionario para tailandés que puede usar en el lado del servidor para inyectar espacios de ancho cero cuando corresponda.

O bien, podría usar esto para crear una utilidad que pueda ejecutarse en tiempo de compilación o en la entrega de traducciones, si conoce los requisitos de espaciado con mucha anticipación.

ver ICU Boundary Analysis para más información. Estas bibliotecas están disponibles para C, C ++ y Java.


Sé que este tema fue bastante largo, pero tengo algo que decir como nativo tailandés. Leo muchas páginas web tailandesas todos los días y siento que la calidad de la línea tailandesa que rompe con los modernos navegadores web hoy en día es perfectamente aceptable.

Como sé, el navegador Google Chrome usa ICU4C, Internet Explorer usa la API Uniscribe, y Firefox usa libthai para dividir las oraciones tailandesas en palabras. Para los tailandeses que conozco, la forma en que estos navegadores manejan los saltos de línea en tailandés es perfectamente aceptable para ellos. (De hecho, solíamos tener este problema con la versión muy temprana de Firefox (1.x) pero eso se resuelve ahora).

A diferencia de las lenguas occidentales, el rompimiento de líneas y la ruptura de palabras en tailandés todavía se considera un problema no resuelto y muchos investigadores de la lingüística aún lo abordan activamente. Actualmente no existe una implementación que pueda romper perfectamente una oración en palabras tailandesas. La página IBM ICU Boundary Analysis contiene algunos análisis sobre este problema.

Muchas veces, tiene algo que ver con el contexto. Por ejemplo, la frase "ตากลม" se puede dividir correctamente en "ตากลม," กลม " o " ตาก "," ลม " . Cada forma dice algo totalmente diferente, pero los lectores tailandeses aún pueden entender perfectamente el significado deseado, dado el contexto.

Dado que sus revisores locales ya están familiarizados con la lectura de sitios web tailandeses, creo que tal vez sean demasiado agresivos con usted para resolver este problema. Este es un problema común sin solución para todos los sitios web tailandeses, navegadores web e incluso Microsoft Word.

Lo mejor es esperar (o contribuir con la ICU de IBM) hasta que la implementación de la oración en tailandés mejore. Permita que los navegadores web manejen esto. No creo que intentar solucionar este problema valga su valioso tiempo. Por lo que sé, incluso los editores de sitios web tailandeses aquí simplemente no se preocupan por tener esta correcta.

Si necesita publicar un documento con una línea / palabra perfecta, puede considerar otro medio, como un documento PDF, en el que debe tener más control sobre los saltos de línea.

Espero que esto ayude :)