【问题标题】:Thai line breaking: how to break Thai text effectively泰语换行:如何有效地打破泰语文本
【发布时间】:2012-01-19 12:51:39
【问题描述】:

标签: html css unicode internationalization browser-bugs


【解决方案1】:

我知道这个帖子已经有一段时间了,但作为一个土生土长的泰国人,我有话要说。我每天阅读很多泰语网页,我觉得现在现代网络浏览器的泰语换行质量完全可以接受。

据我所知,Google Chrome 浏览器使用 ICU4C,Internet Explorer 使用 Uniscribe API,Firefox 使用 libthai 将泰语句子分解成单词。对于我认识的泰国人来说,这些网络浏览器如何处理泰语中的换行符对他们来说是完全可以接受的。 (实际上我们曾经在非常早期的 Firefox (1.x) 版本中遇到过这个问题,但现在已经解决了。)

与西方语言不同,泰语换行和分词仍然被认为是一个未解决的问题,并且仍然被许多语言学研究人员积极解决。目前还没有实现可以完美地将句子分解为泰语单词。 IBM ICU Boundary Analysis 页面包含对此问题的一些分析。

很多时候,它与上下文有关。例如,短语 "ตากลม" 可以正确分解为 "ตา","กลม""ตาก","ลม"。每种方式都说完全不同的东西,但泰国读者仍然可以完全理解预期的含义,考虑到上下文。

鉴于您当地的评论者已经熟悉阅读泰国网站,我认为他们可能过于急于解决这个问题。这是所有泰国网站、网络浏览器甚至 Microsoft Word 的常见无法解决问题。

最好等到(或为 IBM ICU 做出贡献),直到泰语断句实施变得更好。让网络浏览器处理这个问题。我认为尝试解决此问题不值得您花费宝贵的时间。据我所知,即使是这里的泰国网站发布商也不在乎把这个做好。

如果您需要发布具有完美换行/分词的文档,您可以考虑其他媒体,例如您应该对换行有更多控制的 PDF 文档。

希望这会有所帮助:)

【讨论】:

  • 这个总结再好不过了!感谢@m3rLinEz 的精彩回复!我的结论是:如果可以 - 贡献ICU,如果你不能 - 等待:-)
  • 这个答案是否有新的解决方案或更新,或者这仍然是一个研究问题?
  • @sjkm 我明白了。所以这是游戏内的自定义绘图。没错,它仍然是可读的,尽管它会惹恼你的读者。感觉就像阅读,例如,“你好 wo\nrld。这是在单独的\nrate 行上”。也许你最清楚这是否可以。
  • @Gant 谢谢你的比较 :) 很难想象......但很有趣。我想我们必须走这条路,因为没有其他选择,对吧?
  • 正如我所指出的,ICU 现在是 Unicode 的一部分。注票如ssl.icu-project.org/trac/ticket/11775
【解决方案2】:

ICU 和 ICU4J 库有一个基于字典的泰语分词迭代器,您可以在服务器端使用它在适当的情况下注入零宽度空格。

或者,如果您提前知道间距要求,您可以使用它来构建一个可以在构建时或交付翻译时运行的实用程序。

请参阅ICU Boundary Analysis 了解更多信息。这些库可用于 C、C++ 和 Java。

【讨论】:

  • 感谢@J.Spiral 的 ICU 建议。我已经要求客户让他们的泰语评论员先看看它,以确保字典实际上正确匹配了断词。如果是这种情况,那么我们可能会尝试开发一个基于 ICU 的脚本/工具。如果可行,我会让你们都知道 :-) 谢谢
  • stackoverflow.com/questions/8492763/…查看我的其他答案
猜你喜欢
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多