2012-11-20 126 views
3

我需要一些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標記中包含連字符的文本編輯工具的建議。

此外,我還沒有找到連字詞列表的好來源。

+0

你隨機添加連字符? – 2012-11-20 19:25:54

+0

*你是..... :) – OldCurmudgeon

+0

Dagon,其實這只是一個例子,它可能看起來取決於語言的連字規則。在某些語言中,至少有幾個方向可以繼續如何做適當的連字符。 隨着語言的正確列表,它當然會看起來更準確。 – MiB

回答

4

CSS3定義client-side hyphenation

這意味着,在支持瀏覽器¹時,您只需指定文本的語言和自動連字的要求,並且會自動連字符,而不需要您做任何工作。顯然這意味着連字點由瀏覽器的語言資源控制。

對於手動控制,您可以在您希望使用的每個連字點處放置自由連字符,並指示瀏覽器僅使用那些連字符。

實際上,要找到連字點並插入任意連字符,最好的方法可能是使用古老的,其中指定分層連字符或無連字點的子字詞模式與連字符字匹配。這些模式現在已被廣泛使用(包括OpenOffice,LibreOffice和Adobe InDesign),並且適用於大多數語言。

實現算法只需要幾行代碼。更重要的是,有多種語言的現成實現:諸如phpHyphenator之類的PHP實現,諸如TeXHyphenator-JHyphenation之類的Java實現以及用於libhyphen的C++實現(如jhyphen)的Java綁定。

¹目前,Firefox,Safari和IE都支持自動匹配,Chrome和Opera不支持。

2

連字實際上是非常困難的。那裏沒有真正的單詞列表。如果您使用PHP,您可能可以製作Perl library TeX::Hyphen。我不知道任何Java解決方案。

有關詳細信息,read this Wikipedia article.

+1

durron597,在我看來,很多情況下非常需要軟連接來獲得良好的版式。Adobe Indesign會自動連字符並且必須將其算法基於某些東西。 OpenOffice有連字詞典,我認爲它們也許可以使用。 TeX是一個有趣的提示。我會檢查出來的。謝謝。 – MiB

+1

我在adobe InDesign上看到一個鏈接,同時在這個問題上尋找答案,整個線程就像是「是的,我們不知道它是如何工作的,除了詞不需要是英語」 – durron597