當前位置:首頁 » 編程語言 » php多語言

php多語言

發布時間: 2022-06-28 00:54:38

php如何實現一個網站多種語言

你好,做個語言包就好了,選擇英語就調用英文的語言包

希望能解決你的問題,望採納

⑵ 怎樣做php的多語言網站啊 跪求思想

建議你找一個支持多語言的框架來做,這樣簡單一些。多語言的思路很簡單,但是實際處理的時候很多具體的問題,因此不建議新手自己做。


思路參考以下示例

<?php
session_start();
if (isset($_SESSION['language']))
$language = $_SESSION['language'];
else
$language = 'zh'
$messages = array(
'zh' => array(
'str1' => '測試',
),
'en' => array(
'str1' => 'test',
),
);
?>
<html>
<body>
<h2><?php echo $messages[$language]['str1']?></h2>
</body>
</html>


不管多復雜的多語言程序,其核心都是這個,只不過翻譯內容一般是存放在文件或者資料庫中,並緩存起來,但是最終使用的時候還是會先形成如上的數組,然後輸出的。


以下是一個js版本的多語言函數,供參考

LANGUAGE = 'zh'
Languages = {'zh': {'str1': '測試', 'str2': '用戶 %name% 你好'}};
function translate(messageId, parameters) {
if (messageId === null) {
messageId = "FLAG_NULL";
}
var language = LANGUAGE;
if (Languages[language] && Languages[language][messageId]) {
messageId = Languages[language][messageId];
}
if (parameters) {
for ( var i in parameters) {
messageId = messageId.replace(eval('/%' + i + '%/g'), parameters[i]);
}
}
return messageId;
}
alert(translate('str2', {name: '張三'}));

⑶ thinkphp實現多語言切換時,資料庫數據如何也實現多語言

有兩種情況,分析如下:
1、需要中英文切換內容較少
假設我們現在正在操作的是文章表,需要根據用戶的語言環境輸出中文或英文的文章內容。
在文章表中多添加一個欄位用於存儲英文的內容,發布文章的頁面,同時上傳中英文內容即可,然後服務端通過thinkphp的多語言標識來決定讀取中文內容或者英文內容。也可以在前端模板中進行識別。
2、需要中英文切換內容較多
如果某個數據表的多個欄位或者多個數據表都需要做中英文切換,顯然在數據表裡添加多個欄位的方式就不太合適了,那將導致數據表欄位太多,不方便管理,可以採用多數據表的方式,將內容完整的分為兩份。就是把涉及到中英文切換的數據表多拷貝一份而已,裡面的數據是英文的
。管理員後台,可以同時存儲中英文內容,也可以分開存儲,你自己決定就好,讀取時同樣使用thinkphp的多語言標識判斷用戶的語言環境,來決定查詢中文表還是英文表。
另外,如果整站都需要中英文切換,也可以做分布式資料庫!
一切根據實際需求決定!

⑷ php 多語言切換

語言切換如果考慮用戶體驗的話就相對有點麻煩,分離語言模塊保存在資料庫或者指定文件中然後用php調用指定的語言是比較常用的,但是你要知道每種語言都有差異,這樣會導致樣式不一致,所以如果想要更好的用戶體驗最好也替換一下對應的css樣式。

⑸ php建站怎麼實現支持多種語言急啊,!!

最簡單的方法
用 php 的 define 實現,用全局變數也可以。

語言1.php
<?php
define('HELLO', '你好');
...

語言2.php
<?php
define('HELLO', 'hello');
...

語言3.php
<?php
define('HELLO', 'こんにちは');
...

根據選擇的語言 include 或者 require 以上文件之一即可。

PHP 代碼:
<?php echo HELLO; ?>

比較正宗的做法是用 gettext,過程相對復雜,要用專門的po編輯器編輯語言文件。

補充:
用 gettext 實現多語言的典型案例是 wordpress,你可以看看它是怎麼實現的。

⑹ 如何phpcms v9 多語言

因為phpcms v9的功能非常豐富,我們可以使用多種途徑來實現多語言,這里以實現一個中英雙語站為例來說下思路:

方法一、使用phpcms中的語言包動態切換中英文語言包實現多語言,想要什麼語言就創建什麼語言包即可,關鍵是要知道在做模板界面時裡面的文字不能直接寫死了而是使用L函數來調用對應的詞彙,比如「用戶中心」我們可以寫成「{L('member_center')}」;
方法二、使用phpcms的多站點功能來在後台創建兩個站點,並分別綁定對應的域名或目錄。然後一個使用英文模板一個使用中文模板即可;
位置:後台-設置-站點管理-添加站點。
方法三、安裝兩個phpcms系統但是使用一個phpsso模塊來實現用戶互通(在安裝系統時大概第三步有個選項是選擇「安裝全新的phpcms系統」還是「已有phpsso模塊」,第二次安裝時選擇後者即可),兩個系統分別是英文站點和中文站點。

PS:
1.語言包位置:/phpcms/languages/... 語言包以數組形式保存。
2.使用語言包來實現多語言與後兩種辦法相比只需要一套模板,但是限制是只能用於動態訪問,如果是要生成靜態頁還是使用後兩種辦法吧。

⑺ php 實現多語言切換的原理!

創建不同的語言包(文件),這里可以設置成數組。使用時包涵指定的語言包,輸出時用語言數組變數來輸出。

⑻ thinkphp3.0如何實現多語言切換

ThinkPHP內置多語言支持,如果你的應用涉及到國際化的支持,那麼可以定義相關的語言包文件。任何字元串形式的輸出,都可以定義語言常量。要啟用多語言功能,需要配置開啟多語言行為(確保你下載的是完整版本,如果不是需要單獨下載多語言檢測行為擴展),在項目的配置目錄下面的行為定義文件tags.php中,添加:

return array(

// 添加下面一行定義即可

'app_begin'=>array('CheckLang')

);

表示在app_begin標簽位置執行多語言檢測行為。

可以為項目定義不同的語言文件,框架的系統語言包目錄在系統框架的Lang目錄下面,每個語言都對應一個語言包文件,系統默認只有簡體中文語言包文件zh-cn.php ,如果要增加繁體中文 zh-tw或者英文en,只要增加相應的文件。

語言包的使用由系統自動判斷當前用戶的瀏覽器支持語言來定位,如果找不到相關的語言包文件,會使用默認的語言。如果瀏覽器支持多種語言,那麼取第一種支持語言。

ThinkPHP的多語言支持已經相當完善了,可以滿足應用的多語言需求。這里是指的是模板多語言支持,數據的多語言轉換(翻譯)不在這個范疇之內。ThinkPHP具備語言包定義、自動識別、動態定義語言參數的功能。並且可以自動識別用戶瀏覽器的語言,從而選擇相應的語言包(如果有定義)。例如:

throw_exception('新增用戶失敗!');

我們在語言包裡面增加了ADD_USER_ERROR 語言配置變數的話,在程序中的寫法就要改為:

throw_exception(L('ADD_USER_ERROR'));

也就是說,字元串信息要改成L方法和語言定義來表示。

項目語言包文件位於項目的Lang目錄下面,並且按照語言類別分子目錄存放,在執行的時候系統會自動載入,無需手動載入。

具體的語言包文件命名規范如下:

項目公共語言包
語言目錄/common.php

項目分組語言包
語言目錄/分組名.php

項目模塊語言包
不存在分組情況:語言目錄/模塊名(小寫).php

存在分組的情況:語言目錄/分組名_模塊名(小寫).php

語言子目錄採用瀏覽器的語言命名(全部小寫)定義,例如English (United States) 可以使用en-us作為目錄名。如果項目比較小,整個項目只有一個語言包文件,那可以定義common.php文件,而無需按照模塊分開定義。

語言包文件可以按照模塊來定義,每個模塊單獨定義語言包文件,文件名和模塊名稱相同,例如:

Lang/zh-cn/user.php 表示給User模塊定義簡體中文語言包文件

Lang/zh-tw/user.php 表示給User模塊定義繁體中文語言包文件

語言文件定義

ThinkPHP語言文件定義採用返回數組方式:

return array(

'lan_define'=>'歡迎使用ThinkPHP',

);

要在程序裡面設置語言定義的值,使用下面的方式:

L('define2','語言定義');

$value = L('define2');

上面的語言包是指項目的語言包,如果在提示信息的時候使用了框架底層的提示,那麼還需要定義系統的語言包,系統語言包目錄位於ThinkPHP目錄下面的Lang目錄。

通常多語言的使用是在Action控制器裡面,但是模型類的自動驗證功能裡面會用到提示信息,這個部分也可以使用多語言的特性。例如:

原來的方式是把提示信息直接寫在模型裡面定義

array('title','require','標題必須!',1),

如果使用了多語言功能的話(假設,我們在當前語言包裡面定義了' lang_var'=>'標題必須!')

還可以這樣定義模型的自動驗證

array('title','require','{%lang_var}',1),

如果要在模板中輸出語言變數不需要在Action中賦值,可以直接使用模板引擎特殊標簽來直接輸出語言定義的值:

{$Think.lang.lang_var}

可以輸出當前選擇的語言包裡面定義的 lang_var 語言定義

熱點內容
安卓哪個國家免費用 發布:2025-02-04 22:39:54 瀏覽:59
電腦配置低但想玩小偷模擬器怎麼辦 發布:2025-02-04 22:39:03 瀏覽:233
最快腳本語言 發布:2025-02-04 22:27:23 瀏覽:527
安卓的人臉識別在哪裡 發布:2025-02-04 22:16:45 瀏覽:674
悠然伺服器的ip是什麼 發布:2025-02-04 22:10:17 瀏覽:65
3des源碼 發布:2025-02-04 22:09:16 瀏覽:809
如何備份資料庫表 發布:2025-02-04 22:09:07 瀏覽:294
如何刪除下載的鬧鍾鈴聲安卓 發布:2025-02-04 22:03:35 瀏覽:659
死神腳本 發布:2025-02-04 21:57:03 瀏覽:168
phpposthtml 發布:2025-02-04 21:37:46 瀏覽:89