2010-05-13 113 views
-1

我正在合并两个不同版本的翻译数组。最近的版本有数千行代码有很多变化。回声变量构造而不是内容

为此,我加载并评估了新文件(使用相同的结构和键名称),然后加载并计算旧版本,使用我们已经翻译的值覆盖数组中的新未转换值。

到目前为止好!

但是,我希望能够将这个新的合并数组的构造函数回显出来,这样我就可以将其剪切并粘贴到新的翻译文件中,并完成任务(除了完成其余翻译之外..) 。

的代码看起来是这样的(很多不同的密钥,而不仅仅是指数):

$lang["index"]["chart1_label1"] = "Subscribed"; 
$lang["index"]["chart1_label2"] = "Unsubscribed"; 

和老..

$lang["index"]["chart1_label1"] = "Subscrito"; 
$lang["index"]["chart1_label2"] = "Não subscrito"; 

加载这两个文件后,我结束了一个合并的$ lang数组,然后我想以相同的形式回显出来,所以它可以被项目使用。

然而,当我做这样的事情..

foreach ($lang as $key => $value) { 
    if (is_array($value)) { 
     foreach ($value as $key2 => $value2) { 
      echo "$lang['".$key."']"; // ... etc etc 
     } 
    } 
} 

..obviously我得到 “ArrayIndex” 等等等等,而不是 “$郎”。如何在未经评估的情况下回显$ lang?一旦这个工作,可以添加其他的括号等(我意识到他们缺少),但只是想让这部分工作第一。

如果有更好的方法来做到这一点,所有的耳朵!

谢谢。

编辑:

我真的找对了this

“注:特殊字符不像其他三个语法,变量和转义序列,当他们出现在会不能扩大单引号字符串“。

所以没有必要甚至逃脱。可能有一天专门为某人...关于合并数组,在array_merge()的PHP手册页上有一个很好的递归数组合并函数,它也派上用场。

感谢谁downvoted!我也爱你。

回答

1

要么逃避$:"\$lang"或使用单引号:'$lang'

注意,你真的不需要张贴背景故事的整个页面,如果你的整个问题只是归结为“我怎么输出美元符号PHP“

+1

知道这是简单的,谢谢。关于将问题置于语境中的一点是,它不仅仅关于“我是怎样的傻笑汉堡包”,但也许有人知道更好的技术来完成同样的事情。我认为讨论是论坛的重点。? ;) – dmp 2010-05-13 14:16:45

1

var_export()功能,但我不明白这个可怕的烂摊子的目的。
这都是...说明书

为什么不使用gettext - 多语言网站的行业标准?

或至少是其他一些格式,比普通PHP更可靠吗?
编程代码是而不是打算自动写入。

+0

Gettext很棒,直到你想让一个没有技术知识的人(即客户端)编辑它。然后你意识到自己陷入了深沉的困境。感谢var_export()提示,我会查找它。 – dmp 2010-05-13 14:39:15

+0

另外,这不是我的代码,我个人使用XML来处理这种东西...... – dmp 2010-05-13 14:41:21

+0

我不认为一堆PHP数组是比.po文件更安全的。 – 2010-05-13 15:26:57