翻译文件的设计模式

时间:2014-05-16 17:43:45

标签: zend-framework design-patterns translation

我正在开发一个基于PHP ZendFramework 1.12的国际网站,
我将使用Zend_Translate来管理我的翻译。

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

<?php
return array( 
    'key'   =>  'translation',
    'key2'   =>  'translation2',
);


我的问题是:

管理密钥到这些文件的最佳方法是什么?

我的意见是:

第一手,我可以使用默认语言作为键。类似的东西:

'Submit'  => 'Valider',
'Share'   => 'Partager',
//...

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

'label_loginForm_login'     =>  'Login',
'button_mixed_submit'   =>  'Submit',
'links_mixed_share'     =>  'Share',
//...

但是在这个选项中,我可以用于键的最佳树是什么? 多少级别(&#39;类型&#39; /&#39;展示位置&#39; /&#39;行动&#39; ...)

对于每个级别,有多少项?

等级&#39;类型&#39;

的示例
  • 标签:用于标准文字
  • text:用于带有多个sentances的长标签
  • links:用于链接标签
  • 按钮:用于按钮标签
  • 混合:用于少数事物
    ...

有关信息,我将制作一个模块来帮助翻译 它将使用数据库完成,并且将自动为perf问题创建PHP数组。

1 个答案:

答案 0 :(得分:2)

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

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

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

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'
);

您可以很容易地注意到,第一个示例比第二个示例更具可读性。

希望我的意见足够清楚。

由于