[教學]多國語言完全修正 (phpBB 2.0.2)

與 phpBB 2.0.x 相關主題。

版主: 版主管理群

Scorpion
竹貓好朋友
竹貓好朋友
文章: 104
註冊時間: 2001-11-23 18:17
聯繫:

[教學]多國語言完全修正 (phpBB 2.0.2)

文章 Scorpion »

這是以 phpBB 2.0.1 為修改底本,行數只是參考用的,可能有些不同,位置差不
多都在所標示的附近。

能看到的問題都修正了,包含發表內容、標題,預覽內容、標題,投票議題、選\r
項,私人訊息....等等。

懶得修改、或修改後有問題的,直接下載我修正過的檔案覆蓋

給 phpBB 2.0.2 用的
http://it.hihosting.hinet.net/dl/phpBB202_multilang.zip

給 phpBB 2.0.1 用的
http://it.hihosting.hinet.net/dl/phpBB201_multilang.zip

給 phpBB 2.0.0 用的
http://it.hihosting.hinet.net/dl/phpBB200_multilang.zip


以上修正檔只適用於全新安裝的 phpBB 、沒有加過任何 mods,或所加的 mods
沒有動到裡面提到的三個檔案。

除此之外,都必須手動照以下的方式修改,2.0.0 版同樣適用這個修改法,每一
個行數後面括號裡面標示的是 2.0.0 的行數。

functions_post.php

發表後文章內容 (包含預覽內容)

28 行 (2.0.0 38 行)

代碼: 選擇全部

$html_entities_match = array('#&#', '#<#', '#>#');
$html_entities_replace = array('&', '<', '>');
改為\r

代碼: 選擇全部

$html_entities_match = array('#<#', '#>#');
$html_entities_replace = array('<', '>');
發表後文章標題

149 行 (2.0.0 166 行)

代碼: 選擇全部

if ( !empty($subject) )
{
	$subject = htmlspecialchars(trim($subject));
}
改為\r

代碼: 選擇全部

if ( !empty($subject) )
{
	$subject = htmlspecialchars(trim($subject));
	$subject = ereg_replace("&","&",$subject);
}
發表後投票議題 (question)

177 行 ( 2.0.0 194 行)

代碼: 選擇全部

if ( !empty($poll_title) )
{
	$poll_title = htmlspecialchars(trim($poll_title));
}
改為\r

代碼: 選擇全部

if ( !empty($poll_title) )
{
	$poll_title = htmlspecialchars(trim($poll_title));
	$poll_title = ereg_replace("&","&",$poll_title);
}
posting.php

預覽的標題、預覽後輸入框文章內容及標題、投票議題

601 行 (2.0.0 587 行)

代碼: 選擇全部

$poll_options = array();
這行前面加上

代碼: 選擇全部

$subject = ereg_replace("&","&",$subject);
$message = ereg_replace("&","&",$message);
$poll_title = ereg_replace("&","&",$poll_title);
預覽之後的投票選項 (option)、增加選項之後的舊選項、更新選項

614 行 (2.0.0 600 行)

代碼: 選擇全部

else if ( !empty($option_text) ) 
{
	$poll_options[$option_id] = htmlspecialchars(trim(stripslashes($option_text)));
}
改為\r

代碼: 選擇全部

else if ( !empty($option_text) ) 
{
	$poll_options[$option_id] = htmlspecialchars(trim(stripslashes($option_text)));
	$poll_options[$option_id] = ereg_replace("&","&",$poll_options[$option_id]);
}
投票新增選項之後的新選項

622 行 (2.0.0 608 行)

代碼: 選擇全部

if ( isset($poll_add) && !empty($HTTP_POST_VARS['add_poll_option_text']) )
{
	$poll_options[] = htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['add_poll_option_text'])));
}
改為\r

代碼: 選擇全部

if ( isset($poll_add) && !empty($HTTP_POST_VARS['add_poll_option_text']) )
{
	$poll_options[] = ereg_replace("&","&",htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['add_poll_option_text']))));
}
私人訊息方面\r

privmsg.php

38 行 (2.0.0 38 行)

代碼: 選擇全部

$html_entities_match = array('#&#', '#<#', '#>#');
$html_entities_replace = array('&', '<', '>');
改為\r

代碼: 選擇全部

$html_entities_match = array('#<#', '#>#');
$html_entities_replace = array('<', '>');
最後由 Scorpion 於 2002-08-31 09:54 編輯,總共編輯了 2 次。
frank
星球公民
星球公民
文章: 170
註冊時間: 2001-11-20 09:48
來自: 跑跑好好玩
聯繫:

文章 frank »

2.0.0通用嗎??.......
我一直都沒成功過 ....嘿嘿 `
重出江湖
跑跑好好玩
http://runrun.tw
Rappelz-TW
第九封印
http://runrun.tw/Rappelz/phpBB3/index.php
Scorpion
竹貓好朋友
竹貓好朋友
文章: 104
註冊時間: 2001-11-23 18:17
聯繫:

文章 Scorpion »

不知道,你試試看,2.0.0 與 2.0.1 程式碼改了很多,但是牽涉到多國語言部份這方面沒什
麼變動,應該通用。
澳門男孩
竹貓好朋友
竹貓好朋友
文章: 102
註冊時間: 2002-06-08 00:40
來自: 澳門

文章 澳門男孩 »

報告大大
還是有問題
剛測試了一下
問題仍然存在\r
http://phpbb-tw.net/phpbb/viewtopic.php?t=7963
請看一下吧\r
我是架phpbb2 2.0.0 gold
Scorpion
竹貓好朋友
竹貓好朋友
文章: 104
註冊時間: 2001-11-23 18:17
聯繫:

文章 Scorpion »

應該不會有問題才對,好吧,我看一下 2.0.0!

對了,提醒一下,若是你已經使用「精華區」裡面的修改法,請改回原始的檔案,
或拿原版的檔案覆蓋回去再來重新修改,因為我的方法與精華區那篇有些差異,
但是殊途同歸,原理都是一樣的。

還有若是所加的 mod 有動到那些檔案,要注意一下。
頭像
godbless
竹貓忠實會員
竹貓忠實會員
文章: 647
註冊時間: 2002-05-17 06:02
來自: 台北市南京東路4段
聯繫:

文章 godbless »

澳門男孩 寫:報告大大
還是有問題
剛測試了一下
問題仍然存在\r
http://phpbb-tw.net/phpbb/viewtopic.php?t=7963
請看一下吧\r
我是架phpbb2 2.0.0 gold
這個不是弄2.0.1的嗎
版本不對喔 !
外掛問題區發問格式就在這裡,請務必一定照著格式來~!
你不照著規則來,就算是也搞不清楚你的問題在哪裡!
新手問問題不是罪惡
罪惡的是自己沒有先做好本分和功課,說話的口氣也不好,再加上態度有好像我們這群人欠你多少似的~~!!
竹貓星球發問規則:
http://phpbb-tw.net/phpbb/viewtopic.php?t=16149
發問比率最高的句子翻譯:
Please ensure both the install/ and contrib/ directories are deleted
請確認install和contrib資料夾已被刪除(奇怪,翻一下英漢字典有這麼困難嗎)
Scorpion
竹貓好朋友
竹貓好朋友
文章: 104
註冊時間: 2001-11-23 18:17
聯繫:

文章 Scorpion »

我已經看過 2.0.0 了,要修改的程式碼都一樣,這個 2.0.1 的修改法同樣適用 2.0.0,只是\r
行數稍微不同。

另外,OOO 的那篇修改文章,並沒有修正到預覽的標題及投票部份,所以除了這兩個地方\r
之外,其他應該都正常,但是為什麼那麼多人都有問題?例如發表之後的標題、預覽之後
訊息輸入框的標題及內容,還是一樣不能正常顯示。

經過仔細看過那篇文章之後,我知道問題出在哪裡,基本的修改原理都對,但是張貼出來
之後,phpBB 把一些程式碼解譯掉了,造成修改無效,亦即有改等於沒改。

例如:

代碼: 選擇全部

$subject = htmlspecialchars(trim($subject)); 
改成

代碼: 選擇全部

$subject = ereg_replace('&#', '&#', htmlspecialchars(trim($subject)));
應該是改成下面這樣才對

代碼: 選擇全部

$subject = ereg_replace('&#', '&#', htmlspecialchars(trim($subject)));
比較一下不同處 & 不是 &

*********

奇怪,記得當初在 OOO 那篇主題討論時,看到那篇修改文章都是正確的,有特別處理過
特殊的字串 [&] ,怎麼現在再看一次,又變樣了,是我記錯了還是其他原因。
Scorpion
竹貓好朋友
竹貓好朋友
文章: 104
註冊時間: 2001-11-23 18:17
聯繫:

文章 Scorpion »

代碼: 選擇全部

奇怪,記得當初在 OOO 那篇主題討論時,看到那篇修改文章都是正確的,有特別處理過 
特殊的字串 [&] ,怎麼現在再看一次,又變樣了,是我記錯了還是其他原因。
呵呵,我剛剛想要固定這個主題,找到原因了,以 OOO 對多國語言解決辦法的了解,不會
犯這個錯誤,我沒有記錯啦,是因為那個主題被固定之後造成的。

因為 phpBB 在主題討論串內沒有「置頂」的選項,必須以編輯主題文章的方式為\r
之,而重新編輯文章時,phpBB 沒有將那些特殊字串轉回原始的內容,以致編輯\r
之後,又被解譯一次,造成程式碼的錯誤。

有人知道我在說什麼嗎?不懂沒關係,算我自言自語 :)
WWWW
星球普通子民
星球普通子民
文章: 17
註冊時間: 2002-06-23 12:44

文章 WWWW »

Scorpion ,

你這篇很好 , 解決了我好多疑問 !!
連 Title & Pool 也解決了
~ 謝謝你 ~ ;)
頭像
Rabbit
星球普通子民
星球普通子民
文章: 13
註冊時間: 2002-06-29 16:48

文章 Rabbit »

顯示是正常,可是好像有字數限制,我打長一點

預覽時也看得到,但真的送出後,

後面的就顯示不出來了,大家有這種情形嗎???
Scorpion
竹貓好朋友
竹貓好朋友
文章: 104
註冊時間: 2001-11-23 18:17
聯繫:

文章 Scorpion »

你說的是標題對吧?!

因為非 Big5 碼的文字,如日文、簡體字都以多國語言的方式呈現,一個字實際佔用 8 個字
元,phpBB2 預設的標題長度上限是 60 字元,Big5 中文可以 30 個字,如果標題都是日文
或簡體字,最多只能 7 個字。
頭像
Rabbit
星球普通子民
星球普通子民
文章: 13
註冊時間: 2002-06-29 16:48

文章 Rabbit »

:-o 那是不是可以更改預設值來解決呢?
Scorpion
竹貓好朋友
竹貓好朋友
文章: 104
註冊時間: 2001-11-23 18:17
聯繫:

文章 Scorpion »

要分兩方面來改,一個是程式方面的限制,一個是資料表的限制

程式方面\r
posting_body.tpl 找 maxlength="60" 字串修改\r

資料表就要用 PhpMyAdmin 來修改:

phpbb_topics 找 topic_title 欄位修改,這是主題列表的標題
phpbb_posts_text 找 post_subject 欄位修改,這是每篇文章的標題

我沒試過,你自行踹踹看,可以的話回報一下,親愛的小白鼠 :)
頭像
Rabbit
星球普通子民
星球普通子民
文章: 13
註冊時間: 2002-06-29 16:48

文章 Rabbit »

照您所指示的去改,果然成功了,解決我長久

煩惱的問題,謝謝Scorpion!!! :-D
伯勞鳥
星球普通子民
星球普通子民
文章: 15
註冊時間: 2002-07-10 17:17
來自: Tainan

文章 伯勞鳥 »

THANKS
回覆文章

回到「2.0」