我有一个多语言项目,
该项目与 HE/EN 语言完全兼容。
在一种情况下,它将作为一个大型以色列项目的子文件夹上传,
在另一种情况下,它将被用作它自己的.com 英文域上的完整站点。
我目前为以色列项目设置了 SVN,
我还没有为 .com 创建一个 SVN,这是正确的方法吗,为此保留 2 个 depo?然后我必须确保在以色列项目上编写的代码总是手动复制到 .com 文件夹,
这可以更有效地管理吗?
是的,这绝对可以更有效地管理。这里的这个陈述是主要问题:
然后,我必须确保始终将在以色列项目上编写的代码手动复制到 .com 文件夹中。
该过程不仅效率低下,而且极易出错。而且它绝对不会扩展。基本上,您将开发/测试/部署/等加倍。努力。如果您需要部署应用程序的另一个实例,您将付出三倍的努力。等等。
您要做的是隔离应用程序实例之间不同的组件。仅仅是语言内容吗?是整个用户界面吗?如果是整个 UI,那么您会希望该 UI 尽可能轻薄。(好吧,无论如何你都想要那个。)那么你所要做的就是 UI 工作。其余逻辑(业务逻辑、数据访问、服务等)可以在应用程序的所有实例中保持不变。
如果它只是文本内容,那么也许您可以重新分解要从数据库中提取的文本。每一个标签,每一篇文章,每一个菜单项,等等。有一些 CMS 系统可以很好地做到这一点,尽管我没有具体的建议。但总体思路是让 UI 成为一个由特定于该应用程序实例的数据填充的空包装器。然后每个实例将通过简单地管理该数据来控制它的“语言”(它的一般内容)。
您绝对不希望为此使用多个代码存储库。毕竟,如果您有两个代码存储库,哪一个是正确的?如果在一个存储库中进行了更改,但在另一个存储库中没有更改,那么哪一个是正确的?你的代码应该有一个单一的“事实来源”。多个真相来源意味着没有真相。