[問題] 在URL選擇語言...可以嗎?

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

主題已鎖定
foonchan
星球普通子民
星球普通子民
文章: 2
註冊時間: 2006-05-16 02:57

[問題] 在URL選擇語言...可以嗎?

文章 foonchan »

想以不同URL string, 來選擇將要載入phpBB的語言


index.php?lang=english --> English
index.php?lang=chinese_traditional --> 繁體中文

可以嗎?
jwxinst
竹貓忠實會員
竹貓忠實會員
文章: 945
註冊時間: 2006-03-31 10:07
來自: New York, USA     學業狀況: 當天才...       個人狀況: 臭蛋
聯繫:

文章 jwxinst »

首先這個方法會很麻煩
英文字碼和中文字碼是不一樣的
你要裝應該是utf-8
這樣子從中文英文才不會有問題



而且我建議你裝crlin大的外掛
他有寫這類型的外掛
目前狀態圖檔
GoKo Music進度: 10%

問個問題不要緊可是沒有發文格式、問題不夠詳細情況,難道要用猜嗎?
新手必讀
[教學] 基本認識、學習、隨我架設phpBB的新手通 -更新至2.0.22
問問題的技巧
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=44340
MOD安裝教學及轉碼
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=22832
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

Re: [問題] 在URL選擇語言...可以嗎?

文章 chiouss »

foonchan 寫:想以不同URL string, 來選擇將要載入phpBB的語言


index.php?lang=english --> English
index.php?lang=chinese_traditional --> 繁體中文

可以嗎?
不會不行,但是一來這樣做會很麻煩 (使用者要輸入的 URL 會變長),二來修改的技巧和內容是屬於 MOD 的範圍...
ethan
星球公民
星球公民
文章: 218
註冊時間: 2002-06-01 09:48
聯繫:

文章 ethan »

其實這個問題沒想像的複雜的,修改的幅度也很小
function.php
searching in function init_userprefs()

代碼: 選擇全部

	if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx)) )
	{
		$board_config['default_lang'] = 'english';
	}
在之前插入一行

代碼: 選擇全部

	$board_config['default_lang'] = (!empty($_GET['lang'])) ? $_GET['lang'] : $board_config['default_lang'];

這樣就可以達到你的第一步需求
當然如果你想"保留"這個選項,或許你會想把 $_GET['lang'] 丟到 cookie or session
如果只是單頁的功能,那就可以省掉了

至於 jwxinst 所提的字碼問題
在不考慮轉碼的前提下,簡單的將其他的語系的編碼改一下就可以了

例如 lang_english/lang_main.php 中的

$lang['ENCODING'] = 'iso-8859-1';

改為

$lang['ENCODING'] = 'big5';

如果你的原始編碼是 big5 的話,或是也套用於其他的編碼
只不過這只對沒有特殊字元的語系有用

若已是 utf8 編碼或是考慮做額外的轉碼動作,那麼這些都不在考慮範圍內了
jwxinst
竹貓忠實會員
竹貓忠實會員
文章: 945
註冊時間: 2006-03-31 10:07
來自: New York, USA     學業狀況: 當天才...       個人狀況: 臭蛋
聯繫:

文章 jwxinst »

喔ethan大, 不是說直接從英文顯示big5的中文會有亂碼嗎@@ :oops:
(沒有啦, 只是想問一下 :mrgreen: )
目前狀態圖檔
GoKo Music進度: 10%

問個問題不要緊可是沒有發文格式、問題不夠詳細情況,難道要用猜嗎?
新手必讀
[教學] 基本認識、學習、隨我架設phpBB的新手通 -更新至2.0.22
問問題的技巧
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=44340
MOD安裝教學及轉碼
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=22832
ethan
星球公民
星球公民
文章: 218
註冊時間: 2002-06-01 09:48
聯繫:

文章 ethan »

亂碼只是瀏灠器指定的編碼與資料的實際編碼不對應造成
所以即使用英文語系,但是將編碼指定跟資料相同的就不會有問題
這就你把中文語系的內容,重打成英文是一樣的

英文語系最單純,只有 26 個英文字,不管哪種字型都會有這些字
所以即使不始語系檔做轉碼,也不會有問題

如果像西文、俄文、韓文、日文這種有特殊字元或雙位元語系的
當然如果只這樣指定的話,語系統的內容就會有亂碼產生了
這樣就會需要將語系檔先行轉換編碼,但是再遇到的便是掉字的問題
所以這就是選擇 utf8 用處之一囉 ;-)

丟個 demo (utf8)
http://www.creativecrap.com/bbs/
http://www.creativecrap.com/bbs/?lang=english
foonchan
星球普通子民
星球普通子民
文章: 2
註冊時間: 2006-05-16 02:57

文章 foonchan »

成功了
謝謝ethan大
harryhsw
星球普通子民
星球普通子民
文章: 4
註冊時間: 2006-07-11 12:01

[外掛] 我想问一下

文章 harryhsw »

ethan说到
丟個 demo (utf8)
http://www.creativecrap.com/bbs/
http://www.creativecrap.com/bbs/?lang=english



但是我都点了一下,怎么好像看不到语言的转换
ethan
星球公民
星球公民
文章: 218
註冊時間: 2002-06-01 09:48
聯繫:

文章 ethan »

sorry 之前升級的時候想說這個主題已經結束了,就直接改掉了

2.0.21 這部份有點變更
同樣是改 function.php
searching in function init_userprefs()

代碼: 選擇全部

		}
	}
 	else
 	{
 		$default_lang = phpbb_ltrim(basename(phpbb_rtrim($board_config['default_lang'])), "'");
 	}
在後面新增

代碼: 選擇全部

 	$default_lang = (!empty($_GET['lang'])) ? $_GET['lang'] : $default_lang; 
demo 的位置同上
harryhsw
星球普通子民
星球普通子民
文章: 4
註冊時間: 2006-07-11 12:01

[外掛] 我再想问一下

文章 harryhsw »

我在一个simple_chinese页面使用了?lang_english,但是到其他页面的时候,还是显示原来的simple_chinese
可以在其他页面也一样是english吗?

以下语句:
if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx)) )
{
$board_config['default_lang'] = 'english';
}
在function.php中有两个地方,是不是两个地方都需要改动呢?
主題已鎖定

回到「外掛問題討論」