我有一个语言选择器脚本。代码如下:
index.php
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '4.2'
end
end
end
en.php
<?php
session_start();
$allowed_lang = array('en','de');
if (isset($_GET['lang']) === true && in_array($_GET['lang'], $allowed_lang) === true) {
$_SESSION['lang'] = $_GET['lang'];
} else if (isset($_SESSION['lang']) === false) {
$_SESSION['lang'] = 'en';
}
include ''. $_SESSION['lang'] .'.php';
echo $lang['hello'] , '!';
?>
<ul>
<li><a href="?lang=en">English</a></li>
<li><a href="?lang=de">Deutsch</a></li>
</ul>
de.php
<?php
$lang = array(
'hello' => 'Hello',
);
?>
默认语言当然是英语,如果我选择其他语言(例如德语),那么在更改语言后,URL为<?php
$lang = array(
'hello' => 'Hallo',
);
?>
。切换为英语后,网址为index.php?lang=de
。
如何从网址中删除或隐藏index.php?lang=en
或?lang=en
,因此,如果我单击“ deutsch”链接,该语言将切换但不向当前URL附加任何内容(例如{{ 1}})?
预先感谢您的回答!
答案 0 :(得分:0)
您可以使用GET
参数来代替使用POST
参数进行语言选择。因此,您必须将语言选择器设为调用文档本身的form
(即不为action
属性,但带有method="post"
),然后发送并接收语言选择作为POST
变量,即不可见。
在那之后(即用户切换到以下页面),您可以使用会话变量,cookie或本地存储来保存和调用所选语言。