我正在本地化我建立的网站。我通过读取 .lang 文件并根据所选语言将每一行(语法:key=string)放在一个变量中来做到这一点。
然后使用该数组将字符串放置在正确的位置。
我遇到的问题是某些字符串需要在它们中间有超链接,例如我把我的名字链接到我的联系页面的地方。或者网站的许多读数需要在字符串中。
为了解决这个问题,我定义了一个包含 html + Forecaster + html 的变量,并且本地化文件在字符串中包含 $Forecaster 变量。
我很快发现的问题是它顽固地拒绝解析文件中字符串中的内联变量。
相反,它会按照在文件中的样子打印字符串和变量名。
而且我还没有找到让它解析变量的方法。
例如,“加热花费了 $str_time”将完全像这样打印在页面上,而不是输入先前定义的 $str_time 值。
我目前使用 fopen() 和 fgets() 打开和阅读这些行。然后我分解它们以分离键和字符串,然后将它们放入数组中。
有没有办法让它解析变量,或者是否有另一种方法可以读取允许解析内联变量的行?
获取该行并将其转换为数组的代码如下所示:
(它显然是循环的)
#list($key, $string) = explode('=', $line);
$key = strtok($line, '=');
$string = strtok('=');
$local[$key] = $string;
$counter++;
echo $local[$key] . "<br>";
计数器未使用,回显用于测试。
.lang 文件中的一行如下所示:
fuel.results.heatup.timeused=Heating up took $str_time
我会在我想要这样的字符串的地方调用数组:
$local['fuel.results.heatup.timeused']
如您所见,我已经尝试过explode 和strtok,但没有任何区别。