【发布时间】:2021-08-02 19:07:19
【问题描述】:
所以,我不确定以前是否已经这样做过。我刚刚在我的服务器上安装了一个 PHP 应用程序,我想翻译这个网站。
应用程序为每种语言使用 language_name.php 文件。每个语言文件都包含一个多维数组$_LANG。
$_LANG 键范围为一级,$_LANG['l1'] = "string";
大约5级,$_LANG['l1']['l2']['l3']['l4']['l5'] = "string";
我想尝试什么
创建嵌套的 foreach 循环以循环并回显 $key - $value 对。
之后我将编写一个翻译函数来翻译回显之前的值..
问题
-
原始文件包含超过 3,750 行。
-
我的回声版本只包含 3,387 个。
<?php
$_LANG['lang']['vars']['go'];
$_LANG['at']['the'];
$_LANG['top'];,
foreach ($_LANG as $key => $value) {
if (is_array($value)) {
foreach ($value as $key1 => $value1) {
if (is_array($value1)) {
foreach ($value1 as $key2 => $value2) {
if (is_array($value2)) {
foreach ($value2 as $key3 => $value3) {
if (is_array($value3)) {
foreach ($value3 as $key4 => $value4) {
if (is_array($value4)) {
foreach ($value4 as $key5 => $value5) {
echo '$_LANG[\''.$key.'\'][\''.$key1.'\'][\''.$key2.'\'][\''.$key3.'\'][\''.$key4.'\'][\''.$key5.'\'] = "'.$value5.'";'.'<br>';
}
}
else {
echo '$_LANG[\''.$key.'\'][\''.$key1.'\'][\''.$key2.'\'][\''.$key3.'\'][\''.$key4.'\'] = "'.$value4.'";'.'<br>';
}
}
}
else {
echo '$_LANG[\''.$key.'\'][\''.$key1.'\'][\''.$key2.'\'][\''.$key3.'\'] = "'.$value3.'";'.'<br>';
}
}
}
else {
echo '$_LANG[\''.$key.'\'][\''.$key1.'\'][\''.$key2.'\'] = "'.$value2.'";'.'<br>';
}
}
}
else {
echo '$_LANG[\''.$key.'\'][\''.$key1.'\'] = "'.$value1.'";'.'<br>';
}
}
}
else {
echo '$_LANG[\''.$key.'\'] = "'.$value.'";'.'<br>';
}
}
?>
【问题讨论】:
-
尝试使用递归函数迭代子数组深度:stackoverflow.com/a/48431850/4248328
标签: php foreach localization