我目前有一个Web应用程序,根据用户为该语言选择的内容,选择要使用的正确语言文件。
此语言文件包含许多已定义的常量。这是一个片段:
define("SHOP_LBL_PRODUCTS", "Products");
define("SHOP_LBL_ABOUTUS", "About us");
define("SHOP_LBL_CONTACT", "Contact");
这可以按预期工作。虽然,如果我想为此创建一个UI,那么通过普通的html表单,您可以生成整个文件;我需要:
1) extract the name and values from the current file
2) write a file with php code (and replace the current file)
我怎样才能做到以上两点?是可能还是纯粹的头痛?
还有其他办法吗?我这样做,因为翻译者不应该使用php文件和所有的define()调用。
答案 0 :(得分:1)
当遇到类似问题时,我决定使用MySQL数据库使用不同的方法。这样,存储,查看和编辑语言文本变得非常简单。使用标准方法可以轻松完成更改和添加。 您的表格设计可能如下所示:
表1:'text_label'
text_id | text_label
表2-n:'language_en'
text_id | content
使用JOIN查询,您可以根据text_label轻松获取所需内容。
对于acces,您可以使用静态函数,并且脚本中的包含可能如下所示:
<?php echo Translater::get('Sample_text', 'en'); ?>
我知道,这与你质疑的档案理念不同,我只是想把它作为一个想法或想法。
答案 1 :(得分:0)
为什么不使用与Symfony2翻译系统类似的东西?
http://symfony.com/doc/current/book/translation.html
恕我直言,YAML文件是翻译文件的最佳选择。