i18n AEM6.0中的覆盖问题

i18n AEM6.0中的覆盖问题,aem,Aem,我们有一些网站,例如: /apps/site1 |----i18n |---data |---keys |---languages |---translator /apps/site2 |----i18n |---data |---keys |---lan

我们有一些网站,例如:

/apps/site1
        |----i18n
               |---data
               |---keys
               |---languages
               |---translator

/apps/site2
        |----i18n
               |---data
               |---keys
               |---languages
               |---translator
现在,当我们访问该站点时,我们可以看到调用
libs/cq/i18n/dict.xx-xx.json
。理想情况下,该调用应该来自
/apps
/etc
。我怎样才能做到这一点

OOTB servlet:

@Component
@Service({Servlet.class})
@Properties({@Property(
    name = "service.description",
    value = {"ResourceBundle Renderer Servlet"}
), @Property(
    name = "sling.servlet.paths",
    value = {"/libs/cq/i18n/dict"}
)})
public class ResourceBundleExportServlet extends SlingSafeMethodsServlet {

这是不可能的,因为在aem 6.3(以及更早的版本)中,几乎所有使用路径的地方都是硬编码的。要使用自定义路径,您必须-

  • 在/apps/cq/i18n/dict.xx-xx.json(或您选择的路径)注册自定义servlet以返回i18n值
  • 将使用硬编码路径的AEM ootb代码更改为使用自定义路径

  • 顺便说一下,我用的是6.0。但是仍然在返回json的servlet
    ResourceBundleExportServlet
    中。路径是硬编码的。那么我需要定制I18N的OOTB功能吗?更新了OOTB servlet的问题。我认为这是您需要做的。我们以前有过这个用例,希望为每个站点使用自定义词典,但最终放弃了这种方法。看起来太麻烦了。