我有示例语言文件en.php
<?php
$language = array(
"language_code" => "en",
"language_name" => "English",
);
Run Code Online (Sandbox Code Playgroud)
这些语言文件替换模板文件中的某些内容以支持多语言.
有没有办法使用PHP将内容添加到数组中?
所以我在设置中做了一些事情,例如添加一个新的语言值,PHP将其添加到文件en.php并保存.
我想知道这是否可行,因为我猜它可能会非常复杂.如果可能的话,可以提出这样的建议.我没有太多编辑PHP文件的经验.
如果它会更好,我可以将语言格式更改为XML,如果这样可以更容易.
谢谢
不要将数据存储在PHP代码(或XML)中,而是使用JSON.加载数据:
$json = file_get_contents('en.json');
if ($json === false) throw new Exception('Cannot read file!');
$language = json_decode($json, true); // true tells json_decode to export as array ;)
Run Code Online (Sandbox Code Playgroud)
并存储它:
$json = json_encode($language);
if (file_put_contents('en.json', $json) === false) {
throw new Exception('Can not store language');
}
Run Code Online (Sandbox Code Playgroud)
如果您真的坚持将数据存储为php程序,请使用以下var_export
函数:
$phpCode = "<?php\n\n" . '$language = ' . var_export($language, true) . ';';
if (file_put_contents('en.php', $phpCode) === false) {
throw new Exception('Can not store language');
}
Run Code Online (Sandbox Code Playgroud)
没有必要使用XML,因为它比JSON更慢,更复杂.此外,您通常不应将翻译存储在(关系)数据库中,因为往返时间和重复查询解析和评估可能会降低您的应用程序速度.