连字预处理

时间:2012-11-20 19:18:19

标签: java php preprocessor hyphenation

我需要一些用于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源文件的情况也是受欢迎的。

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

2 个答案:

答案 0 :(得分:4)

CSS3定义client-side hyphenation

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

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

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

实现算法只需几行代码。更重要的是,有许多语言的现成实现:PHP实现,如phpHyphenator,Java实现,如TeXHyphenator-JHyphenation和Java绑定,用于libhyphen的C ++实现,如{{3} }。

¹目前,Firefox,Safari和IE都支持自动连接,而Chrome和Opera则不支持。

答案 1 :(得分:2)

连字确实非常困难。那里没有任何单词列表。如果您使用的是PHP,则可以创建Perl library TeX::Hyphen。我不知道任何Java解决方案。

有关详细信息,请read this Wikipedia article.