Zend framework 翻译文件的设计模式

Zend framework 翻译文件的设计模式,zend-framework,design-patterns,translation,Zend Framework,Design Patterns,Translation,我正在开发一个基于, 我将用它来管理我的翻译 我的翻译将被放入PHP数组key=>value中,如下所示:(每种语言一个文件) 另一方面,我可以使用特殊键直接找到该文本的显示位置,如下所示: 'label_loginForm_login' => 'Login', 'button_mixed_submit' => 'Submit', 'links_mixed_share' => 'Share', //... 但是在这个选项中,我可以使用什么样的树作为键

我正在开发一个基于,
我将用它来管理我的翻译

我的翻译将被放入PHP数组
key=>value
中,如下所示:(每种语言一个文件)

另一方面,我可以使用特殊键直接找到该文本的显示位置,如下所示:

'label_loginForm_login'     =>  'Login',
'button_mixed_submit'   =>  'Submit',
'links_mixed_share'     =>  'Share',
//...
但是在这个选项中,我可以使用什么样的树作为键?
有多少层('类型'/'位置'/'动作'…)

每个级别有多少个项目

级别“类型”的示例

  • 标签:用于标准文本
  • 文本:用于带有多个句子的长标签
  • 链接:用于链接标签
  • 按钮:用于按钮标签
  • 混合:用于少数事物
关于信息,我将制作一个模块来帮助翻译。

这将使用数据库完成,PHP数组将自动创建以供性能问题使用。

对于我来说,我更喜欢第二个选项,原因有两个

1-请记住,您将翻译验证器错误消息(以类似
regexNotMatch
的方式键入),您的第二个选项将与已设置的键相同

2-此外,使用此选项,您将避免使用
长短语作为键。例如:

return array(
    'confirmation_mail_sent' => 'Message here'
);

return array(
    'Your validation email has been sent. Please click on the link and ... bla bla bla bla' => 'Message here'
);
正如您很容易注意到的,第一个示例比第二个示例可读性好得多

希望我的意见足够清楚


谢谢

我会选择第一个选项。这样做可以消除重复的单词。如果其他人在你的项目上工作,那么第二个选择对他来说可能没有意义。我还建议将键、值对放入一个非数组和更可读的格式,如ini或txt,以便傻瓜可以轻松编辑。我编辑我的帖子就是为了回答你!谢谢你的回答,但是结构呢?如何选择每个键的名称?@JoDev没有确切的
“实现”
。由你来考虑这个问题。您需要为整个项目设置一种独特的方式。
'label_loginForm_login'     =>  'Login',
'button_mixed_submit'   =>  'Submit',
'links_mixed_share'     =>  'Share',
//...
return array(
    'confirmation_mail_sent' => 'Message here'
);

return array(
    'Your validation email has been sent. Please click on the link and ... bla bla bla bla' => 'Message here'
);