我最近加入了一个团队,以前是一个单人秀,以维护和开发公司的PHP-mysql网站。
当前的本地化方法是,对于站点的每个部分,都存在一个以_en.php和_fr.php结尾的文件,其中包含具有相应语言文本的相同命名变量的长列表。在每个内容页面的顶部,确定用户语言,然后加载适当的“词典”文件。
我试图推广另一种方法是使用像(id,code,en,fr)这样的数据库表和一个函数来查找当前页面中的正确翻译。
我的老板告诉我,第一种方法的好处是:为每个翻译创建一个上下文,并在源代码控制下进行翻译
他对我提议的方法的担忧是缺乏这些东西,并且不喜欢在网站上有两个翻译系统的想法。
我担心的是,这是代码文件中的数据,我被教导为一个坏主意。要搜索字符串,您必须使用ide搜索工具,因此我没有看到无程序员如何轻松编辑这些工具。
那么,他的方法更好吗?我的更好但是只是勉强而不值得摇摇欲坠吗?当前的系统是一个等待发生的灾难,我不应该放手吗?
答案 0 :(得分:2)
我认为对于界面事物(名称,姓氏,按钮中的文本等等)使用资源文件更自然。在.NET中我们使用.resx,在PHP中,包含文件就足够了。
要使用包含的存档不耗费资源,它将解析XML。
如果我们在谈论大文本,我会将它们放在一个带有不同代码的数据库中,仅仅因为通常我会有一个后台修改这些内容,而不是性能问题。
请记住,Db访问也在消耗,这取决于用户数量。