Determinar programáticamente si un lenguaje es LTR ó RTL

LTR= Left To Right y RTL = Right To Left.

Dado un LCID en particular, ¿cómo podríamos saber dado un lenguaje determinado si se escribe de izquierda a derecha o de derecha a izquierda?

Una primera cosa que se nos podría ocurrir  es "hard-codear" la lista de los lenguajes que se escriben de derecha a izquierda, y si el lenguaje que nos interesa no está en la lista asumir que se escribe de izquierda a derecha. Esta técnica es muy frágil, ya que Windows va añadiendo soporte a nuevos lenguajes de forma regular, y si uno de esos es de derecha a izquierda, nuestra tabla se quedará desactualizada. Y además, hay lenguajes que no se escriben de ninguna de esas maneras. Por ejemplo, el chino y el japonés se escriben de arriba abajo.

Para saber programáticamente en qué direccion se escribe un lenguaje, llamamos a GetLocaleInfoEx con LOCALE_IREADINGLAYOUT.

Y ahora sólo toca esperar a que a nadie se le ocurra crear un lenguaje a base de palíndromos ;).

Juan María Laó Ramos.