0
我想补充的多语言支持,我的网站,像这样:PHP - 多语言支持
Language.php
:
class lang {
private $lang = null;
function __construct($lang) {
global $module;
$module['lang'] = true;
$this->lang = parse_ini_file("includes/languages/{$lang}.ini");
}
public function xlate($str) {
$arg_count = func_num_args();
if ($arg_count > 1) {
$params = func_get_args();
// strip first arg
array_shift($params);
} else {
$params = array();
}
$out_str = isset($this->lang[$str]) ? $this->lang[$str] : null;
if (!$out_str) {
throw new exception("Lang String Not Found: $str");
$this->lang = parse_ini_file("includes/languages/en_gb.ini");
}
return vsprintf($out_str, $params);
}
}
我则已经存储在ini文件我的语言变量:
en_gb.ini
:
Support = Support
Quick Menu = Quick Menu
HOME_MAIN_TITLE = You will Get Paid
然后我用它喜欢:
echo $lang->xlate("Support");
echo $lang->xlate("Quick Menu");
echo $lang->xlate("HOME_MAIN_TITLE");
哪个有效。但是,每当我在语言传递'
的性格,这是行不通的:
HOME_MAIN_TITLE = You'll Get Paid
呼应的文字,直到'
字符:
You
然后停止。
我该如何解决这个问题?
尝试在'''之前添加一个反斜杠,所以它变成'\''。这被称为转义字符https://en.wikipedia.org/wiki/Escape_character –
看看突出显示的文字。你的throw语句后面的行也不会被执行。 – Rangad
@KevinPei添加反斜杠不起作用。它只会打印:你\ – oliverbj