[問題]如何做一個可選擇多國語言的介面?

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
xavierlau
星球公民
星球公民
文章: 46
註冊時間: 2004-04-20 10:08
來自: HK
聯繫:

[建議]TO:messagebox

文章 xavierlau »

我想問問,如何將以上一大堆的php碼,做成那個下拉式選單?
如果可以自動識別用者的語系或記錄使用者的設定,如google的 進階搜尋
使用偏好 , 語言選項(http://www.google.com.hk/).
如果可以由用者自由配上不同版面的phpbb的版面,每個版面給不同類型的使用者,例如女生的可以選個多公仔多色彩的版面.
謝謝.
我有去個你的forum :-P
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

Re: [建議]TO:messagebox

文章 messagebox »

xavierlau 寫:我想問問,如何將以上一大堆的php碼,做成那個下拉式選單?
如果可以自動識別用者的語系或記錄使用者的設定,如google的 進階搜尋
使用偏好 , 語言選項(http://www.google.com.hk/).
如果可以由用者自由配上不同版面的phpbb的版面,每個版面給不同類型的使用者,例如女生的可以選個多公仔多色彩的版面.
謝謝.
我有去個你的forum :-P
不懂你的需求耶~~可否詳述一下~~~
Yanzi
星球公民
星球公民
文章: 205
註冊時間: 2003-02-08 20:38
來自: Singapore
聯繫:

文章 Yanzi »

他的意思是說可否讓phpbb變得跟Google一樣,我用什麼語言,phpbb就跟著變什麼語言(我用中文,它就顯示中文)。

剛好我現在也有這問題。
xavierlau
星球公民
星球公民
文章: 46
註冊時間: 2004-04-20 10:08
來自: HK
聯繫:

[閒聊]U are clever!

文章 xavierlau »

Yanzi 寫:他的意思是說可否讓phpbb變得跟Google一樣,我用什麼語言,phpbb就跟著變什麼語言(我用中文,它就顯示中文)。

剛好我現在也有這問題。
有人可教我做系統的個人頭像(可以給會員自選頭像的列表) (ro16) ?
xavierlau
星球公民
星球公民
文章: 46
註冊時間: 2004-04-20 10:08
來自: HK
聯繫:

[風格]關於icons的大小問題?

文章 xavierlau »

常見問題 文章搜尋 瘋狂大冒險 會員列表 會員群組
個人資料 私人訊息 登出

以上的選項,左邊都有其icons的,我想問怎樣將它們resize(放大或縮小)?
我copy and replace 其他不同大小的icons都沒用!
高手出手吧~~~ :mrgreen:
Yanzi
星球公民
星球公民
文章: 205
註冊時間: 2003-02-08 20:38
來自: Singapore
聯繫:

文章 Yanzi »

messagebox 寫:[php]<?php
##########################################################
## ##
## 沒有名字的外掛 by 包子 <sysop@onlyou.org> (04-04-23) ##
## ##
##########################################################
#
#-----[ OPEN ]------------------------------------------
#
./includes/functions.php

#
#-----[FIND]------------------------------------------
#
if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx)) )

#
#-----[ADD BEFORE]------------------------------------------
#
//點子(標記用)
$board_config['default_lang'] = ($_COOKIE['lang']) ? $_COOKIE['lang'] : $board_config['default_lang'];
$board_config['default_lang'] = ($_GET['lang']) ? $_GET['lang'] : $board_config['default_lang'];
$board_config['default_lang'] = ($_POST['lang']) ? $_POST['lang'] : $board_config['default_lang'];
setcookie("lang",$board_config['default_lang']);
//點子(標記用)

#
#-----[FIND]------------------------------------------
#
if ( $theme = setup_style($userdata['user_style']) )
{
return;
}

#
#-----[ADD BEFORE]------------------------------------------
#
//點子(標記用)
$userdata['user_style'] = ($_COOKIE['style']) ? $_COOKIE['style'] : $userdata['user_style'];
$userdata['user_style'] = ($_GET['style']) ? $_GET['style'] : $userdata['user_style'];
$userdata['user_style'] = ($_POST['style']) ? $_POST['style'] : $userdata['user_style'];
setcookie("style",$userdata['user_style']);
//點子(標記用)

#
#-----[FIND]------------------------------------------
#
$theme = setup_style($board_config['default_style']);

//
// Mozilla navigation bar
// Default items that should be valid on all pages.
// Defined here to correctly assign the Language Variables
// and be able to change the variables within code.
//

#
#-----[ADD BEFORE]------------------------------------------
#
//點子(標記用)
$board_config['default_style'] = ($_COOKIE['style']) ? $_COOKIE['style'] : $board_config['default_style'];
$board_config['default_style'] = ($_GET['style']) ? $_GET['style'] : $board_config['default_style'];
$board_config['default_style'] = ($_POST['style']) ? $_POST['style'] : $board_config['default_style'];
setcookie("style",$board_config['default_style']);
//點子(標記用)

#
#-----[ OPEN ]------------------------------------------
#
./includes/page_header.php

#
#-----[FIND]------------------------------------------
#
$template->assign_vars(array(
'SITENAME' => $board_config['sitename'],

#
#-----[ADD BEFORE]------------------------------------------
#

//點子(標記用)
//LANG
$get_lang = array();

$dir=opendir('./language');

while ( $file = readdir($dir) ){
if (preg_match('#^lang_#i', $file) && !is_file(@phpbb_realpath('./language/' . $file)) && !is_link(@phpbb_realpath('./language/' . $file)))
{
$filename = trim(str_replace("lang_", "", $file));
$displayname = preg_replace("/^(.*?)_(.*)$/", "\\\1 [ \\\2 ]", $filename);
$displayname = preg_replace("/\[(.*?)_(.*)\]/", "[ \\\1 - \\\2 ]", $displayname);
$get_lang[$displayname] = $filename;
}
}
closedir($dir);

@asort($lang);
@reset($lang);

$lang_select = '<form name="idea_lang" method="POST" action="'.$_SERVER["REQUEST_URI"].'"><select name="lang" onchange="document.idea_lang.submit();">';
while ( list($displayname, $filename) = @each($get_lang) ){
$selected = ( strtolower($board_config['default_lang']) == strtolower($filename) ) ? ' selected="selected"' : '';
$lang_select .= '<option value="' . $filename . '"' . $selected . '>' . ucwords($displayname) . '</option>';
}
$lang_select .= '</select></form>';

//STYLE
$chk_style = ($userdata['user_style'])? $userdata['user_style'] : $board_config['default_style'];
$chk_style = ($_COOKIE['style']) ? $_COOKIE['style'] : $chk_style;
$chk_style = ($_GET['style']) ? $_GET['style'] : $chk_style;
$chk_style = ($_POST['style']) ? $_POST['style'] : $chk_style;
$sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " ORDER BY template_name, themes_id";
if ( !($result = $db->sql_query($sql)) ){message_die(GENERAL_ERROR, "Couldn't query themes table", "", __LINE__, __FILE__, $sql);}

$style_select = '<form name="idea_style" method="POST" action="'.$_SERVER["REQUEST_URI"].'"><select name="style" onchange="document.idea_style.submit();">>';
while ( $row = $db->sql_fetchrow($result) ){
$selected = ( $row['themes_id'] == $chk_style ) ? ' selected="selected"' : '';
$style_select .= '<option value="' . $row['themes_id'] . '"' . $selected . '>' . $row['style_name'] . '</option>';
}

$style_select .= "</select></form>";
//點子(標記用)

#
#-----[FIND]------------------------------------------
#
'L_USERNAME' => $lang['Username'],
'L_PASSWORD' => $lang['Password'],

#
#-----[ADD BEFORE]------------------------------------------
#
//點子
'LANGUAGE_SELECT' => $lang_select,
'STYLE_SELECT' => $style_select,
//點子

#
#-----[ OPEN ]------------------------------------------
#
./templates/subSilver/overall_header.tpl

#
#-----[FIND]------------------------------------------
#
<td height="25" align="center" valign="top" nowrap="nowrap"><span class="mainmenu"> <a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a>   <a href="{U_PRIVATEMSGS}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_message.gif" width="12" height="13" border="0" alt="{PRIVATE_MESSAGE_INFO}" hspace="3" />{PRIVATE_MESSAGE_INFO}</a>   <a href="{U_LOGIN_LOGOUT}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_login.gif" width="12" height="13" border="0" alt="{L_LOGIN_LOGOUT}" hspace="3" />{L_LOGIN_LOGOUT}</a> </span>

#
#-----[ADD AFTER]------------------------------------------
#

{LANGUAGE_SELECT}{STYLE_SELECT}


?>[/php]

最後面那個看你喜歡放在哪就放在哪吧~~~
我是亂找位置放的~~~

附帶一點~~~我覺得~~沒有把語系檔用UTF-8
感覺上~~~
好像也沒用耶~~~

測試網址
http://onlyou.org/bbs/

剛剛做了一點小修正~~~04-04-23 00:53:04
之前安裝了一下,發現更改網站預設語系的功能失效了,而且自己的個人資料語系也無法更改了(卡在中文)。
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

Yanzi 寫:他的意思是說可否讓phpbb變得跟Google一樣,我用什麼語言,phpbb就跟著變什麼語言(我用中文,它就顯示中文)。

剛好我現在也有這問題。
拿這個變數的資料~~~$_SERVER["HTTP_ACCEPT_LANGUAGE"]

>>之前安裝了一下,發現更改網站預設語系的功能失效了,而且自己的個人資料語系也無法更改了(卡在中文)。

因為當初寫的時候~~~是將使用者選擇的項目放在COOKIE~~
且程式判定上~~~會以COOKIE的資料為準~~~

其他問題跟主題離題~~~不關我的事
xavierlau
星球公民
星球公民
文章: 46
註冊時間: 2004-04-20 10:08
來自: HK
聯繫:

Re: [問題]我好想做這個,怎做?

文章 xavierlau »

http://onlyou.org/bbs/ 的首頁,有兩個下拉式選單(專語系,同版面風格),請問如何做?
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

Re: [問題]我好想做這個,怎做?

文章 messagebox »

xavierlau 寫:http://onlyou.org/bbs/ 的首頁,有兩個下拉式選單(專語系,同版面風格),請問如何做?
你都不看文章只發問的嗎~~
我之前不是貼過了~~~而且就是在這個主題
http://phpbb-tw.net/phpbb/viewtopic.php?p=144848#144848
xavierlau
星球公民
星球公民
文章: 46
註冊時間: 2004-04-20 10:08
來自: HK
聯繫:

Re: 問題是你都沒有說明,不知道你表達什麼...

文章 xavierlau »

messagebox 寫:
xavierlau 寫:http://onlyou.org/bbs/ 的首頁,有兩個下拉式選單(專語系,同版面風格),請問如何做?
你都不看文章只發問的嗎~~
我之前不是貼過了~~~而且就是在這個主題
http://phpbb-tw.net/phpbb/viewtopic.php?p=144848#144848
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

別把回答丟在標題啦~~~
誰會注意到那邊~~~

那你希望我怎樣說明~~~

[php]
<?php
##########################################################
## ##
## 沒有名字的外掛 by 包子 <sysop@onlyou.org> (04-04-23) ##
## ##
##########################################################
#
#-----[ OPEN ]--[開啟檔案,下面字串就是要開啟的檔案名稱位置]----------------------------------------
#
./includes/functions.php

#
#-----[FIND]--[尋找下面字串]----------------------------------------
#
if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx)) )

#
#-----[ADD BEFORE]--[在尋找到的地方之前加入下列字串]----------------------------------------
#
//點子(標記用)
$board_config['default_lang'] = ($_COOKIE['lang']) ? $_COOKIE['lang'] : $board_config['default_lang'];//假如有傳來名稱為lang這個COOKIE~則將$board_config['default_lang']指定為$_COOKIE['lang'],反之則為$board_config['default_lang']
$board_config['default_lang'] = ($_GET['lang']) ? $_GET['lang'] : $board_config['default_lang']; //假如有傳來名稱為lang這個GET傳值~則將$board_config['default_lang']指定為$_GET['lang'],反之則為$board_config['default_lang']
$board_config['default_lang'] = ($_POST['lang']) ? $_POST['lang'] : $board_config['default_lang']; //假如有傳來名稱為lang這個POST傳值~則將$board_config['default_lang']指定為$_POST['lang'],反之則為$board_config['default_lang']
setcookie("lang",$board_config['default_lang']); //將新的語言選擇寫入使用者的COOKIE
//點子(標記用)

#
#-----[FIND]--[尋找下列字串]----------------------------------------
#
if ( $theme = setup_style($userdata['user_style']) )
{
return;
}

#
#-----[ADD BEFORE]--[在尋找到的地方之前加入下列字串]----------------------------------------
#
//點子(標記用)
$userdata['user_style'] = ($_COOKIE['style']) ? $_COOKIE['style'] : $userdata['user_style']; //假如有傳來名稱為style這個COOKIE~則將$userdata['user_style']指定為$_COOKIE['style'],反之則為$userdata['user_style']

$userdata['user_style'] = ($_GET['style']) ? $_GET['style'] : $userdata['user_style']; //假如有傳來名稱為style這個GET傳值~則將$userdata['user_style']指定為$_GET['style'],反之則為$userdata['user_style']
$userdata['user_style'] = ($_POST['style']) ? $_POST['style'] : $userdata['user_style']; //假如有傳來名稱為style這個POST傳值~則將$userdata['user_style']指定為$_POST['style'],反之則為$userdata['user_style']
setcookie("style",$userdata['user_style']); //將新的樣式選擇寫入使用者的COOKIE
//點子(標記用)

#
#-----[FIND]--[尋找下列字串]----------------------------------------
#
$theme = setup_style($board_config['default_style']);

//
// Mozilla navigation bar
// Default items that should be valid on all pages.
// Defined here to correctly assign the Language Variables
// and be able to change the variables within code.
//

#
#-----[ADD BEFORE]--[在尋找到的地方之前加入下列字串]----------------------------------------
#
//點子(標記用)
$board_config['default_style'] = ($_COOKIE['style']) ? $_COOKIE['style'] : $board_config['default_style'];
$board_config['default_style'] = ($_GET['style']) ? $_GET['style'] : $board_config['default_style'];
$board_config['default_style'] = ($_POST['style']) ? $_POST['style'] : $board_config['default_style'];
setcookie("style",$board_config['default_style']);
//點子(標記用) 這段解釋跟上面一樣~不想打字了

#
#-----[ OPEN ]--[開啟檔案,下面字串就是要開啟的檔案名稱位置]----------------------------------------
#
./includes/page_header.php

#
#-----[FIND]--[尋找下列字串]----------------------------------------
#
$template->assign_vars(array(
'SITENAME' => $board_config['sitename'],

#
#-----[ADD BEFORE]--[在尋找到的地方之前加入下列字串]----------------------------------------
#

//點子(標記用)
//LANG
$get_lang = array(); //將$get_lang這變數設為陣列型態變數\r

$dir=opendir('./language'); //開啟目錄,傳回的整數是可供其它目錄函式操作的 handle

while ( $file = readdir($dir) ){ //將整個目錄資料讀出\r
if (preg_match('#^lang_#i', $file) && !is_file(@phpbb_realpath('./language/' . $file)) && !is_link(@phpbb_realpath('./language/' . $file))) //假如檔名符合開頭為lang_且不算是檔案(就是說它一定要是目錄)
{
$filename = trim(str_replace("lang_", "", $file)); //去除字串尾部的空白字元
$displayname = preg_replace("/^(.*?)_(.*)$/", "\\\1 [ \\\2 ]", $filename);
$displayname = preg_replace("/\[(.*?)_(.*)\]/", "[ \\\1 - \\\2 ]", $displayname);
//這兩個是用來抓要顯示的字串\r
$get_lang[$displayname] = $filename; //將陣列$get_lang['語系簡稱']指定其值為$filename
}
}
closedir($dir); //關閉目錄 handle

@asort($lang); //將陣列的值由小到大排序
@reset($lang); //將陣列的指標指到陣列第一個元素
//接這是顯示HTML輸出的部分,不詳述,請自行研究HTML規格\r
$lang_select = '<form name="idea_lang" method="POST" action="'.$_SERVER["REQUEST_URI"].'"><select name="lang" onchange="document.idea_lang.submit();">';
while ( list($displayname, $filename) = @each($get_lang) ){
$selected = ( strtolower($board_config['default_lang']) == strtolower($filename) ) ? ' selected="selected"' : '';
$lang_select .= '<option value="' . $filename . '"' . $selected . '>' . ucwords($displayname) . '</option>';
}
$lang_select .= '</select></form>';

//STYLE
$chk_style = ($userdata['user_style'])? $userdata['user_style'] : $board_config['default_style']; //假如$userdata['user_style']不等於空則將$chk_style變數的值指定為$userdata['user_style'],反之則為$board_config['default_style']
$chk_style = ($_COOKIE['style']) ? $_COOKIE['style'] : $chk_style;
$chk_style = ($_GET['style']) ? $_GET['style'] : $chk_style;
$chk_style = ($_POST['style']) ? $_POST['style'] : $chk_style;
//上面3行之前說明過,自行理解\r

$sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " ORDER BY template_name, themes_id"; //SQL語法,不知道請參閱MYSQL官方說明文件\r
if ( !($result = $db->sql_query($sql)) ){message_die(GENERAL_ERROR, "Couldn't query themes table", "", __LINE__, __FILE__, $sql);} //假如無法對SQL SERVER送出命令,則顯示錯誤訊息。
//接這是顯示HTML輸出的部分,不詳述,請自行研究HTML規格\r
$style_select = '<form name="idea_style" method="POST" action="'.$_SERVER["REQUEST_URI"].'"><select name="style" onchange="document.idea_style.submit();">>';
while ( $row = $db->sql_fetchrow($result) ){
$selected = ( $row['themes_id'] == $chk_style ) ? ' selected="selected"' : '';
$style_select .= '<option value="' . $row['themes_id'] . '"' . $selected . '>' . $row['style_name'] . '</option>';
}

$style_select .= "</select></form>";
//點子(標記用)

#
#-----[FIND]--[尋找下列字串]----------------------------------------
#
'L_USERNAME' => $lang['Username'],
'L_PASSWORD' => $lang['Password'],

#
#-----[ADD BEFORE]--[在尋找到的地方之前加入下列字串]----------------------------------------
#
//點子
'LANGUAGE_SELECT' => $lang_select, //將樣式檔案的{LANGUAGE_SELECT}指定為$lang_select
'STYLE_SELECT' => $style_select, //將樣式檔案的{STYLE_SELECT}指定為$style_select
//點子

#
#-----[ OPEN ]--[開啟檔案,下面字串就是要開啟的檔案名稱位置]----------------------------------------
#
./templates/subSilver/overall_header.tpl

#
#-----[FIND]--[尋找下列字串]----------------------------------------
#
<td height="25" align="center" valign="top" nowrap="nowrap"><span class="mainmenu"> <a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a> <a href="{U_PRIVATEMSGS}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_message.gif" width="12" height="13" border="0" alt="{PRIVATE_MESSAGE_INFO}" hspace="3" />{PRIVATE_MESSAGE_INFO}</a> <a href="{U_LOGIN_LOGOUT}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_login.gif" width="12" height="13" border="0" alt="{L_LOGIN_LOGOUT}" hspace="3" />{L_LOGIN_LOGOUT}</a> </span>

#
#-----[ADD AFTER]--[在尋找到的地方之後加入下列字串]----------------------------------------
#

{LANGUAGE_SELECT}{STYLE_SELECT}

?>[/php]

不知道這樣的"說明"你滿不滿意~~~

打死我都不相信這樣會看比較清楚~~~
xavierlau
星球公民
星球公民
文章: 46
註冊時間: 2004-04-20 10:08
來自: HK
聯繫:

[閒聊]算吧唔問

文章 xavierlau »

messagebox 寫:別把回答丟在標題啦~~~
誰會注意到那邊~~~

那你希望我怎樣說明~~~
\n
[php]
<?php
##########################################################
## ##
## 沒有名字的外掛 by 包子 <sysop@onlyou.org> (04-04-23) ##
## ##
##########################################################
#
#-----[ OPEN ]--[開啟檔案,下面字串就是要開啟的檔案名稱位置]----------------------------------------
#
./includes/functions.php

#
#-----[FIND]--[尋找下面字串]----------------------------------------
#
if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx)) )

#
#-----[ADD BEFORE]--[在尋找到的地方之前加入下列字串]----------------------------------------
#
//點子(標記用)
$board_config['default_lang'] = ($_COOKIE['lang']) ? $_COOKIE['lang'] : $board_config['default_lang'];//假如有傳來名稱為lang這個COOKIE~則將$board_config['default_lang']指定為$_COOKIE['lang'],反之則為$board_config['default_lang']
$board_config['default_lang'] = ($_GET['lang']) ? $_GET['lang'] : $board_config['default_lang']; //假如有傳來名稱為lang這個GET傳值~則將$board_config['default_lang']指定為$_GET['lang'],反之則為$board_config['default_lang']
$board_config['default_lang'] = ($_POST['lang']) ? $_POST['lang'] : $board_config['default_lang']; //假如有傳來名稱為lang這個POST傳值~則將$board_config['default_lang']指定為$_POST['lang'],反之則為$board_config['default_lang']
setcookie("lang",$board_config['default_lang']); //將新的語言選擇寫入使用者的COOKIE
//點子(標記用)

#
#-----[FIND]--[尋找下列字串]----------------------------------------
#
if ( $theme = setup_style($userdata['user_style']) )
{
return;
}

#
#-----[ADD BEFORE]--[在尋找到的地方之前加入下列字串]----------------------------------------
#
//點子(標記用)
$userdata['user_style'] = ($_COOKIE['style']) ? $_COOKIE['style'] : $userdata['user_style']; //假如有傳來名稱為style這個COOKIE~則將$userdata['user_style']指定為$_COOKIE['style'],反之則為$userdata['user_style']

$userdata['user_style'] = ($_GET['style']) ? $_GET['style'] : $userdata['user_style']; //假如有傳來名稱為style這個GET傳值~則將$userdata['user_style']指定為$_GET['style'],反之則為$userdata['user_style']
$userdata['user_style'] = ($_POST['style']) ? $_POST['style'] : $userdata['user_style']; //假如有傳來名稱為style這個POST傳值~則將$userdata['user_style']指定為$_POST['style'],反之則為$userdata['user_style']
setcookie("style",$userdata['user_style']); //將新的樣式選擇寫入使用者的COOKIE
//點子(標記用)

#
#-----[FIND]--[尋找下列字串]----------------------------------------
#
$theme = setup_style($board_config['default_style']);

//
// Mozilla navigation bar
// Default items that should be valid on all pages.
// Defined here to correctly assign the Language Variables
// and be able to change the variables within code.
//

#
#-----[ADD BEFORE]--[在尋找到的地方之前加入下列字串]----------------------------------------
#
//點子(標記用)
$board_config['default_style'] = ($_COOKIE['style']) ? $_COOKIE['style'] : $board_config['default_style'];
$board_config['default_style'] = ($_GET['style']) ? $_GET['style'] : $board_config['default_style'];
$board_config['default_style'] = ($_POST['style']) ? $_POST['style'] : $board_config['default_style'];
setcookie("style",$board_config['default_style']);
//點子(標記用) 這段解釋跟上面一樣~不想打字了

#
#-----[ OPEN ]--[開啟檔案,下面字串就是要開啟的檔案名稱位置]----------------------------------------
#
./includes/page_header.php

#
#-----[FIND]--[尋找下列字串]----------------------------------------
#
$template->assign_vars(array(
'SITENAME' => $board_config['sitename'],

#
#-----[ADD BEFORE]--[在尋找到的地方之前加入下列字串]----------------------------------------
#

//點子(標記用)
//LANG
$get_lang = array(); //將$get_lang這變數設為陣列型態變數\r

$dir=opendir('./language'); //開啟目錄,傳回的整數是可供其它目錄函式操作的 handle

while ( $file = readdir($dir) ){ //將整個目錄資料讀出\r
if (preg_match('#^lang_#i', $file) && !is_file(@phpbb_realpath('./language/' . $file)) && !is_link(@phpbb_realpath('./language/' . $file))) //假如檔名符合開頭為lang_且不算是檔案(就是說它一定要是目錄)
{
$filename = trim(str_replace("lang_", "", $file)); //去除字串尾部的空白字元
$displayname = preg_replace("/^(.*?)_(.*)$/", "\\\1 [ \\\2 ]", $filename);
$displayname = preg_replace("/\[(.*?)_(.*)\]/", "[ \\\1 - \\\2 ]", $displayname);
//這兩個是用來抓要顯示的字串\r
$get_lang[$displayname] = $filename; //將陣列$get_lang['語系簡稱']指定其值為$filename
}
}
closedir($dir); //關閉目錄 handle

@asort($lang); //將陣列的值由小到大排序
@reset($lang); //將陣列的指標指到陣列第一個元素
//接這是顯示HTML輸出的部分,不詳述,請自行研究HTML規格\r
$lang_select = '<form name="idea_lang" method="POST" action="'.$_SERVER["REQUEST_URI"].'"><select name="lang" onchange="document.idea_lang.submit();">';
while ( list($displayname, $filename) = @each($get_lang) ){
$selected = ( strtolower($board_config['default_lang']) == strtolower($filename) ) ? ' selected="selected"' : '';
$lang_select .= '<option value="' . $filename . '"' . $selected . '>' . ucwords($displayname) . '</option>';
}
$lang_select .= '</select></form>';

//STYLE
$chk_style = ($userdata['user_style'])? $userdata['user_style'] : $board_config['default_style']; //假如$userdata['user_style']不等於空則將$chk_style變數的值指定為$userdata['user_style'],反之則為$board_config['default_style']
$chk_style = ($_COOKIE['style']) ? $_COOKIE['style'] : $chk_style;
$chk_style = ($_GET['style']) ? $_GET['style'] : $chk_style;
$chk_style = ($_POST['style']) ? $_POST['style'] : $chk_style;
//上面3行之前說明過,自行理解\r

$sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " ORDER BY template_name, themes_id"; //SQL語法,不知道請參閱MYSQL官方說明文件\r
if ( !($result = $db->sql_query($sql)) ){message_die(GENERAL_ERROR, "Couldn't query themes table", "", __LINE__, __FILE__, $sql);} //假如無法對SQL SERVER送出命令,則顯示錯誤訊息。
//接這是顯示HTML輸出的部分,不詳述,請自行研究HTML規格\r
$style_select = '<form name="idea_style" method="POST" action="'.$_SERVER["REQUEST_URI"].'"><select name="style" onchange="document.idea_style.submit();">>';
while ( $row = $db->sql_fetchrow($result) ){
$selected = ( $row['themes_id'] == $chk_style ) ? ' selected="selected"' : '';
$style_select .= '<option value="' . $row['themes_id'] . '"' . $selected . '>' . $row['style_name'] . '</option>';
}

$style_select .= "</select></form>";
//點子(標記用)

#
#-----[FIND]--[尋找下列字串]----------------------------------------
#
'L_USERNAME' => $lang['Username'],
'L_PASSWORD' => $lang['Password'],

#
#-----[ADD BEFORE]--[在尋找到的地方之前加入下列字串]----------------------------------------
#
//點子
'LANGUAGE_SELECT' => $lang_select, //將樣式檔案的{LANGUAGE_SELECT}指定為$lang_select
'STYLE_SELECT' => $style_select, //將樣式檔案的{STYLE_SELECT}指定為$style_select
//點子

#
#-----[ OPEN ]--[開啟檔案,下面字串就是要開啟的檔案名稱位置]----------------------------------------
#
./templates/subSilver/overall_header.tpl

#
#-----[FIND]--[尋找下列字串]----------------------------------------
#
<td height="25" align="center" valign="top" nowrap="nowrap"><span class="mainmenu"> <a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a> <a href="{U_PRIVATEMSGS}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_message.gif" width="12" height="13" border="0" alt="{PRIVATE_MESSAGE_INFO}" hspace="3" />{PRIVATE_MESSAGE_INFO}</a> <a href="{U_LOGIN_LOGOUT}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_login.gif" width="12" height="13" border="0" alt="{L_LOGIN_LOGOUT}" hspace="3" />{L_LOGIN_LOGOUT}</a> </span>

#
#-----[ADD AFTER]--[在尋找到的地方之後加入下列字串]----------------------------------------
#

{LANGUAGE_SELECT}{STYLE_SELECT}

?>[/php]

不知道這樣的"說明"你滿不滿意~~~

打死我都不相信這樣會看比較清楚~~~
myJack
星球普通子民
星球普通子民
文章: 4
註冊時間: 2004-05-04 14:57

[問題]多國語系 For 2.0.8

文章 myJack »

messagebox:
  能否請問一下,我去您的網站看過後,
有個疑問,就是你多國語系主要是怎麼樣弄?
我目前是新安裝完phpbb2的,
是把所有語系檔用UTF-8嗎?如果是的話,
請問是用哪一套軟體呢?
因為我找不到,有日文->UTF8 and 韓文->UTF8的轉碼軟體,
,不知我這樣描述對嗎?
簡單的說,就是一個全新的網站要實現像您的多國語言,
除了要做本篇文章所說的事,那在這之前,還要做什麼步驟呢??
麻煩您了!
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

我是用FrontPage來轉換的~~~

把你喜歡的語系下載~~
把裡面的檔案(除了index.htm)~全部轉換成UTF-8

將檔案內原本的編碼方式改為utf-8
EX.
所有MAIL的開頭\r
Charset: big5
改為\r
Charset: utf-8

lang_main.php的
$lang['ENCODING'] = 'big5';
改為\r
$lang['ENCODING'] = 'utf-8';

礙於著作權的問題~~~所以不打算將轉好的檔案提供下載~~~
轉碼這部分就請自己動手囉~~
myJack
星球普通子民
星球普通子民
文章: 4
註冊時間: 2004-05-04 14:57

文章 myJack »

<<把你喜歡的語系下載~~
把裡面的檔案(除了index.htm)~全部轉換成UTF-8>>

請問一下,您說的轉換成utf-8,是怎麼樣轉?
我在FrontPage裏面,沒有看到這個功能耶!
能否描述一下步驟。
謝謝您!
主題已鎖定

回到「phpBB 2 安裝與使用」