我有一個網站,我想創建其他語言版本。 我不想爲每種語言創建文件夾。我想知道它 它可以添加一個組合框在每個頁面或主要的一個 ,以便用戶可以設置語言,然後使用PHP我會 檢查選項並顯示正確的版本。任何建議 到達?PHP更改語言版本
1
A
回答
0
你的意思是沿着
if ($_GET['language']) {
include $_GET['language'] . ".php";
}
,然後線的東西保存在一個PHP文件的語言與存在的名稱,或功能取決於你想用它
0
做什麼哎爲語言版本。 在組合框中有語言。 在會話中維護您當前的語言。 當你改變語言調用ajax調用更改更改語言進入會話並重新加載頁面。
顯示關於會話存儲語言的頁面視圖。
完蛋了........
3
如果你有一個組合框,當用戶提交後,存儲在會話(session_start();
必須調用)與$_SESSION['lang'] = $_POST['lang'];
的語言。我建議你將白名單這樣的語言列爲白名單:
session_start();
// define language whitelist
$allowedLangs = array('en', 'de');
// only store the new user language if it's an allowed one
if (isset($_POST['lang']) && in_array($_POST['lang'], $allowedLangs)) {
$_SESSION['lang'] = $_POST['lang'];
}
// define the user language based on session data or use 'en' as default if not available
$userLang = isset($_SESSION['lang']) ? $_SESSION['lang'] : 'en';
// parse some language file according to the language
$translations = // TODO load some file with $userLang here
當然,你應該調整它以適應你自己的項目和環境。對於翻譯文件,您可以使用返回類似這樣的陣列純PHP文件:如果包括文件
<?php
// en.php
return array(
'some.key' => 'Translation',
);
然後的返回值包括是數組,所以在上面的代碼中你可以更多信息:
$translations = include 'translations/'.$userLang.'.php';
你就必須輸出通過這個$translations
變量的所有文字,像echo $translations['some.key']
。
1
如果您想要使用cookies ......在lang文件中,您將包括一系列要使用的單詞或內容。
<?php
if($_GET['language']){
$lang = (string)$_GET['language'];
setcookie("lang", $lang, time()+3600);
header('Location: '.$_SERVER['PHP_SELF']);
die();
}elseif(!isset($_COOKIE['lang'])){
$lang='en';
}else{$lang=$_COOKIE['lang'];}
switch($lang){
case "en":
include('./lang/en.php');
break;
case "fr":
include('./lang/fr.php');
break;
case "pol":
include('./lang/pol.php');
break;
default:
include('./lang/en.php');
break;
}
?>
相關問題
- 1. 更改應用語言更改的文本框輸入語言
- 2. 更改語言
- 3. 更改語言
- 4. 語言版本化PHP框架
- 5. 默認語言環境更改,版本5.0.1 - > 5.1
- 6. 根據語言偏好更改網站版本
- 7. 使用html按鈕更改網站的語言版本
- 8. Ajax更改語言
- 9. FolderBrowserDialog更改語言
- 10. 更改語言5
- 11. Yii2 - 更改語言
- 12. 更改Behat語言
- 13. Android更改語言
- 14. Django:i18n - 更改語言
- 15. 如何將ios「更多」按鈕的文本更改爲我的語言版本?
- 16. Android - 更改應用程序本身的語言環境語言
- 17. 的Outlook版本語言
- 18. 更改jupyter筆記本警告語言
- 19. 更改MessageBox按鈕文本的語言
- 20. 作爲設備語言更改更改應用程序語言
- 21. 防止語言環境更改後的應用語言更改
- 22. 更改PHP版本的Plesk到PHP 7
- 23. Android版多種語言的版本
- 24. 更改LaTeX標題語言
- 25. 更改前端語言wordpress
- 26. android更改語言日期
- 27. zf2動態更改語言
- 28. 在J2ME中更改語言
- 29. 語言更改選項?
- 30. 更改語言在C#
酷,我得到的,包括我自己喜歡的任何文件: – 2011-06-08 08:52:50
我不會用這個例子作爲'由於is'任何文件可以包含 – 2011-06-08 08:55:01
也可以使用後反而使它升技更安全的是更多的psevdo代碼然後複製粘貼 – Touchpad 2011-06-08 08:58:47