【发布时间】:2012-01-19 12:51:39
【问题描述】:
标签: html css unicode internationalization browser-bugs
标签: html css unicode internationalization browser-bugs
我知道这个帖子已经有一段时间了,但作为一个土生土长的泰国人,我有话要说。我每天阅读很多泰语网页,我觉得现在现代网络浏览器的泰语换行质量完全可以接受。
据我所知,Google Chrome 浏览器使用 ICU4C,Internet Explorer 使用 Uniscribe API,Firefox 使用 libthai 将泰语句子分解成单词。对于我认识的泰国人来说,这些网络浏览器如何处理泰语中的换行符对他们来说是完全可以接受的。 (实际上我们曾经在非常早期的 Firefox (1.x) 版本中遇到过这个问题,但现在已经解决了。)
与西方语言不同,泰语换行和分词仍然被认为是一个未解决的问题,并且仍然被许多语言学研究人员积极解决。目前还没有实现可以完美地将句子分解为泰语单词。 IBM ICU Boundary Analysis 页面包含对此问题的一些分析。
很多时候,它与上下文有关。例如,短语 "ตากลม" 可以正确分解为 "ตา","กลม" 或 "ตาก","ลม"。每种方式都说完全不同的东西,但泰国读者仍然可以完全理解预期的含义,考虑到上下文。
鉴于您当地的评论者已经熟悉阅读泰国网站,我认为他们可能过于急于解决这个问题。这是所有泰国网站、网络浏览器甚至 Microsoft Word 的常见无法解决问题。
最好等到(或为 IBM ICU 做出贡献),直到泰语断句实施变得更好。让网络浏览器处理这个问题。我认为尝试解决此问题不值得您花费宝贵的时间。据我所知,即使是这里的泰国网站发布商也不在乎把这个做好。
如果您需要发布具有完美换行/分词的文档,您可以考虑其他媒体,例如您应该对换行有更多控制的 PDF 文档。
希望这会有所帮助:)
【讨论】:
ICU 和 ICU4J 库有一个基于字典的泰语分词迭代器,您可以在服务器端使用它在适当的情况下注入零宽度空格。
或者,如果您提前知道间距要求,您可以使用它来构建一个可以在构建时或交付翻译时运行的实用程序。
请参阅ICU Boundary Analysis 了解更多信息。这些库可用于 C、C++ 和 Java。
【讨论】: