簡繁轉換程式交流

edited 十月 2013 in 原創軟體分享區
原本是使用下載區的 "深藍UTF-8正體簡體轉換函數" ,在 dbcconv() 裡面的迴圈需要做個修正:
for ($i = 0; $i < $textLength; $i++) {
		if ($i + 3 > $textLength) {
			$tmp .= substr($text, $i, 1);
		} else {
			$str = substr($text, $i, 3);
			if (dbcconv_isChinese($str)) {
				$tmp .= $data[dbcconv_id($str)];
				$i = $i + 2;
			} else {
				$tmp .= substr($text, $i, 1);
			}
		}
	}

否則轉換字串最後一個碼不是中文的時候會變成亂碼。由於它只有做到字的轉換,所以還是去找包括詞的轉換方案,也就是 mediawiki 裡面的 includes/ZhConversion.php ,它是用 includes/zhtable/ 裡面的指令製作出來,但是那個 makefile 已經年久失修,今天試著修正它之後上傳到官方網站:
https://bugzilla.wikimedia.org/show_bug.cgi?id=34034#c1

可惜還有點問題,我對 shell script 沒有那麼熟悉...

它的用法很簡單, include 到程式之後,透過 $translated = strtr($val, $zh2Hant); 就可以將 $val 從簡體字轉為繁體字,再一個 $translated = strtr($translated, $zh2TW); 就可以進行 簡體 -> 繁體 的用詞轉換。

還有很多外部工具可以使用,因為需要在 PHP 裡把它解決,所以測試了一陣子,也許有更好的解法?

另外,透過 strtr() 執行的速度比 深藍UTF-8正體簡體轉換函數 快很多 ;)

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=7001

評論

Sign In or Register to comment.