我以前使用一個下拉選擇框的選項使用post方法,以便更改保存在網頁上的語言單獨的文件。我現在試圖創建類似的東西,但需要幫助。現在我正在嘗試僅使用2種語言的網頁,並且在使用一種語言查看網頁時,會出現切換到另一種語言的選項。本質上是讓觀衆選擇將會話語言更改爲英語或西班牙語,只需在所有頁面上顯示相反的語言作爲超鏈接。我的語言文件是基本如下:需要幫助創建php和/或JavaScript使用超鏈接來更改網頁上的語言
<?php
$lang = array(
'EN' => array(
'ABOUT' => 'About',
'HOME' => 'Home'
),
'SP' => array(
'ABOUT' => 'Acerca',
'HOME' => 'Casa'
)
)
?>
,我已經在這裏顯示的是更廣泛的,但我這是怎麼設置的東西,在另一個文件寫的幾行代碼,以便能夠改變語言此PHP代碼。在我的主網頁我有簡短的代碼段聲明的HTML文檔之前,這是如下:
<?php
require("lang.php");
session_start();
$_SESSION['LANG'] = "EN";
if(@$_POST['lang-chooser']){
$_SESSION['LANG'] = $_POST['lang-chooser'];
}
?>
我試圖讓在那裏我有超鏈接位於該頁面的部分文件的標題或正文。我目前是選擇語言的選項的代碼如下:
<form method="post" action="" id="lang-form">
<select id="lang-chooser" class="lang-chooser" name="lang-chooser" onchange="window.lang(this);">
<option value="EN"<?php if($_SESSION['LANG'] == "EN") {?> selected="selected"<?php }?>>English</option>
<option value="SP"<?php if($_SESSION['LANG'] == "SP") {?> selected="selected"<?php }?>>Spanish</option>
</select>
</form>
底下我頁腳但仍處於主體部分我也有腳本的少量如下:
<script type="text/javascript">
function lang(element){
var lang_name = element.value;
var e_form = document.getElementById("lang-form");
e_form.submit();
console.log(element);
}
window.lang = lang;
</script>
通過所有這些代碼部分,我可以成功地使用下拉選擇框更改語言,同時保留在當前頁面上。我會用具有可變文本的代碼將如下所示:
<?php echo ($lang[$_SESSION['LANG']]['ABOUT']); ?>
現在我希望有再次但是沒有下拉選擇框更改頁面上的會話語言的選項。我希望這樣,當頁面是英文的時候,它自動訪問該網站時會有一個名爲的超鏈接Espanol,它允許瀏覽者更改爲西班牙語,一旦頁面顯示爲西班牙語,超鏈接將改變說英文它允許觀衆改變爲英文。從網上查找我導致我相信我仍然需要介紹PHP代碼和JavaScript,但不再需要「表單」或「方法」部分來更改會話語言。我相信所有的,我現在需要更換的「形式」和「發帖法」的情況如下:
<a href="index.php?LANG=SP"> <?php echo($lang[$_SESSION['LANG']]['SPANISH']); ?> </a>
我相信我的代碼仍然缺乏,這就是爲什麼我仍然無法得到它的工作。基本上,我將需要超鏈接來根據會話更改文本,還可以用來從西班牙文或英文更改會話語言。我有點難過,非常感謝任何幫助。感謝您花時間閱讀這個問題。
這確實有很大的幫助,但我仍然有點困惑,我仍然無法讓它正常運行。我基本上只有大約3段代碼需要到位,以便鏈接文件,設置語言和更改語言。有一部分位於聲明html文檔之前,這是超鏈接的一部分,該鏈接可以很好地與if語句配合使用,以允許查看者更改會話語言,同時更改超鏈接文本。 –
我知道javascript可能不是必需的,我喜歡你提到的不包括?lang =的方式,但是你可以更具體地瞭解一下這個工作需要特別需要什麼,以及代碼片段需要的地方位於? –
@CarlosRodriguez我已經編輯了上面的內容來顯示代碼片段的位置。第三個片段只是第一個片段的編輯,如果使用標題,確保它們放置在任何HTML呈現之前,否則它將無法工作。頁面頂部或模板之前包含的頁面是放置它們的最佳位置。 –