filter.xml | cq5 | vault
我有一个要求,我必须确保安装的软件包只覆盖英语翻译(即en.xml)的内容,而不覆盖其他翻译 我有下面的过滤器filter.xml | cq5 | vault,filter,aem,Filter,Aem,我有一个要求,我必须确保安装的软件包只覆盖英语翻译(即en.xml)的内容,而不覆盖其他翻译 我有下面的过滤器 <workspaceFilter version="1.0"> <filter root="/apps/project"> <exclude pattern="/apps/project/i18n/(.*)?" /> <include pattern="/apps/project/i18n/*en(.?
<workspaceFilter version="1.0">
<filter root="/apps/project">
<exclude pattern="/apps/project/i18n/(.*)?" />
<include pattern="/apps/project/i18n/*en(.?xml)" />
</filter>
</workspaceFilter>
我建议避免在单个筛选器中混合使用包含和排除规则。您可以将其分解为多个过滤器:
<workspaceFilter version="1.0">
<filter root="/apps/project/components" />
<filter root="/apps/project/core" />
<filter root="/apps/project/i18n/en/(.*)" />
</workspaceFilter>
或者尝试仅使用排除模式写入:
<workspaceFilter version="1.0">
<filter root="/apps/project">
<exclude pattern="/apps/project/i18n/es(.*)?" />
<exclude pattern="/apps/project/i18n/en_gb(.*)?" />
</filter>
</workspaceFilter>
或者编写多个include模式(我留给您的练习)
但是
include
和exclude
两种模式的组合在互相争斗,无法确定哪种模式优先。我认为这里的问题是广泛的过滤器“/apps/project”。它试图做的是,在安装软件包时,只需添加一个名为“apps”的节点,然后添加一个名为“apps/project”的节点,然后替换“/apps/project”下的所有内容。因此,您需要使过滤器更具体。例如,以下内容适用于您的情况:
<workspaceFilter version="1.0">
<filter root="/apps/project/i18n">
<exclude pattern="/apps/project/i18n(/.*)?"/>
<include pattern="/apps/project/i18n/en(/.*)?"/>
</filter>
</workspaceFilter>
也许我遗漏了什么,但是为什么您不能将过滤器设置为仅en
节点,并排除其他英语节点
<workspaceFilter version="1.0">
<filter root="/apps/project/i18n/en">
<exclude pattern="/apps/project/i18n/en_.*"/>
</filter>
</workspaceFilter>
如果您需要除en_gb
之外的所有其他语言,您可以明确地排除它。no#spock,这不会是一个问题,您可以在过滤器中看到排除和包括模式“/apps/project/i18n”已经被删除used@Rupesh,我指的是根目录中的宽筛选器。已更改的包括筛选器/apps/project/i18n/en(/.*)?
这对我很有效。我没有更改排除筛选器。
<workspaceFilter version="1.0">
<filter root="/apps/project/i18n/en">
<exclude pattern="/apps/project/i18n/en_.*"/>
</filter>
</workspaceFilter>