繁体   English   中英

带有内容变量的多语言 PHP 应用程序

[英]Multilingual PHP Application w/ Variables in Content

长期潜伏者,第一次发帖(请对我放轻松)。

背景:我为一家金融机构编写了一个相当大、复杂的内部(在公司防火墙后面)应用程序。 我们现在正在考虑部署到世界各地的办事处,这将需要翻译内容。

特定问题:大部分内容在内容中都有变量,这对应用程序来说是相当基础的。

我探索过的解决方案:

1.) 存储在数据库中的内容 - 易于管理、易于搜索,并且易于将单个内容块应用于多个页面/使用。 无法[轻松] 在内容中存储变量。

2.) 准备好的 SQL 语句中的变量 - 不幸的是,准备好的变量只能在查询的 WHERE 部分中。 我希望将“某些内容:prepared_variable”存储在数据库中并以这种方式处理它,但没有运气。

3.) XML/JSON/.ini 中的内容 - 与数据库相同的问题,变量不会被解析/填充。

4.) eval() - 每个人都说它是邪恶的。 这可能是可以或必须使用它的情况吗? 我可以创建一个单独的 .sqlite 数据库,应用程序从不写入内容存储,从而减少执行随机代码的可能性。 实际上,如果有人进入并修改我们的数据库,我们就会遇到更大的问题,尽管我确实看到了风险并且非常犹豫要不要走这条路。 我还担心,如果我走这条路,应用程序可能无法通过任何潜在的审核。

我可以想到一些过于复杂的解决方案,但不想使用它们:

1.) 处理所有逻辑,然后从模板文件加载语言。

2.) 必要时在变量的任一端连接语言。

3.) 从数据库加载内容并运行 str_replace 以插入变量。

我的具体问题,有没有人处理过多语言应用程序? 你是如何处理内容中的变量的? 有没有我错过的选项?

这取决于涉及多少文本、您需要支持多少种语言、本地化是否是一个问题以及您有什么样的预算。 最快的解决方案可能是为每种语言创建单独的实例,这将是维护的噩梦。

如果代码不是太多,我建议你考虑选择一个支持国际化和本地化的框架,把你的代码翻译成它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM