我有一个包含多种语言的webEdition项目,其中有人将法语内容填充到网站的(以前空的)瑞典语分支中。使用此路径中具有exampledomain.de/subpath1/se/subpath2/placeholder.php
路径的此类网址se
可访问这些网页。
在后端内,内容可以se
语言编辑。
现在我想通过网址中的fr
部分来访问法语分支,这样就可以访问了exampledomain.de/subpath1/fr/subpath2/placeholder.php
。fr
。
此外,我希望在后端使用se
语言编辑内容。
所以基本上我只想将瑞典分支转变为法语分支。 webEdition是否提供此类功能?
我尝试手动全局替换数据库中的所有fr
- 子串与se
(具有巨大正则表达式的大型操作,以免意外地替换se
的不需要的外观)并重命名从fr
到Package.getPackages()
后端的相应文档文件夹。然后重建整个项目。
这在很多方面都有效,因为我有所有法语网址都有适当的页面,我在后端的内容编辑器中有一个法语。
最大的问题是没有内容。所以我想没有设置数据库中的适当关系。由于我的方法有点容易出错,因为手动检查每个替换都是不可能的,我希望webEdition能够通过专用功能为我处理这个问题。
所以也许任何人都可以提供帮助。
答案 0 :(得分:0)
好的,我在这里提供答案。纠正输入错误后,数据库操作运行正常,以便我可以解决我的问题。
我发现可能涉及以下20个表,因此应该进行处理(其他表格为空或者包含不应修改的用户数据):
we6_tblCategory,we6_tblConten,we6_tblexpor,we6_tblInde,we6_tblLin,we6_tblnavigation,we6_tblObjec,we6_tblObjectFiles(ZWEIEinträge在路径,we6_tblObject_1,we6_tblObject_2,we6_tblObject_3,we6_tblObject_4,we6_tblObject_5,we6_tblObject_6,we6_tblObject_7,we6_tblsearchtool,we6_tblTemplates,we6_tblTemporaryDoc,we6_tblversions,we6_tblWebAdmin
我将所有sv-SE
替换为fr-FR
,将每content__se
替换为content__fr
。
然后我在php
中使用preg_replace_callback应用了以下正则表达式~('(se)\b|'(se)'|\b(se)'|_(se)\b|_(se)_|\b(se)_|/(se)\b|(?<!\.)\b(se)/|/(se)/|\"(se)\b|\b(se)\"|\"(se)\"|(?<=willbrandt)\.(se)\b)~si
这个表达式确保只有想要出现的'se'才会被转换为'fr'。回调中的一小段代码确保不区分大小写的正则表达式的匹配被正确的大小写替换(se->fr
,Se->Fr
,SE->FR
)。
处理完表后,我将它们导回到webEdition的数据库,并在后端将se
的相应文档文件夹重命名为fr
。
您的项目可能会有所不同,但如果遇到类似的问题,至少正则表达式和一般过程应该有效。