4

我需要一些关于 PHP 和/或 java(目前是 Spring + Hibernate)中的工具的线索,以用于内容的连字符。我在包含的文件中有一些文本内容,在数据库中有一些。所有文本都是 utf-8 编码的,我需要软连字符,因为对它的支持在大多数浏览器中都很常见。

所以这个存储的原件:

<p> These words need hyphenation</p>

会出现这样的事情

<p> The&shy;se wor&shy;ds need hyp&shy;he&shy;na&shy;tion</p>

在最终加载的网页的源代码中。

任何想法如何实现这一目标?

在没有使用任何服务器端代码且只有纯 HTML 源文件的情况下,也欢迎在 HTML 标记中包含连字符的文本编辑工具的建议。

此外,我还没有找到断字词列表的好来源。

4

2 回答 2

5

CSS3 定义了客户端连字符

这意味着在支持浏览器时¹,您只需要指定文本的语言和您对自动断字的渴望,它将自动断字,无需您做任何工作。显然,这意味着连字符点由浏览器的语言资源控制。

对于手动控制,您可以在您希望使用的每个连字符点放置任意连字符,并指示浏览器仅使用这些连字符。

在实践中,要找到断字点并插入任意连字符,最好的方法可能是使用古老的TeX 风格的断字方法,其中指定分层断字或无断字点的子词模式与要断字的单词匹配。这些模式现在被广泛使用(包括 OpenOffice、LibreOffice 和 Adob​​e InDesign),并且可用于大多数语言。

实现该算法只需要几行代码。更重要的是,有多种语言的现成实现:PHP 实现,如phpHyphenator,Java 实现,如TeXHyphenator-J连字符,以及用于 libhyphen 的 C++ 实现的 Java 绑定,如jhyphen

¹ 目前,Firefox、Safari 和 IE 支持自动连字符,Chrome 和 Opera 不支持。

于 2013-07-31T09:56:37.537 回答
2

断字实际上是非常困难的。那里真的没有任何单词列表。如果您使用 PHP,您可以制作Perl 库 TeX::Hyphen。我不知道任何 Java 解决方案。

有关更多信息,请阅读此 Wikipedia 文章。

于 2012-11-20T19:48:10.677 回答