【问题标题】:Tapestry internationalization - removing locale prefixTapestry 国际化 - 删除语言环境前缀
【发布时间】:2011-12-28 09:54:34
【问题描述】:

Tapestry 在语言环境之间切换时会自动为 URL 添加一个语言环境前缀:

http://host/en/home
http://host/es/home
http://host/fr/home

等等。 如何避免它;我在 Tapestry APi 中发现您应该向 AppModule 类添加额外的配置:

configuration.add(SymbolConstants.ENCODE_LOCALE_INTO_PATH, "false");

并自行使用 LinkCreationListener2 或 LinkCreationListener(对于 Tapestry

【问题讨论】:

    标签: internationalization tapestry


    【解决方案1】:

    这取决于您在跟踪语言环境方面想要做什么。 Tapestry 5.0 使用 cookie 来跟踪语言环境; Tapestry 5.1 切换到将其编码到路径中。我认为路径是正确的......毕竟,如果用户为页面的法语版本添加书签,他们应该在一个月后使用书签时看到页面的法语版本。

    计划:

    • 将符号覆盖为“false”
    • 将 RequestFilter 贡献给 RequestHandler 管道,该管道读取 cookie 以设置值
    • 覆盖 PersistentLocale 服务以存储 cookie

    【讨论】:

    • 您好霍华德,感谢您的回复。不幸的是,我在 Tapestry 用户指南/教程和文档中都找不到如何实现您的建议;即 - 将 RequestFilter 贡献给 RequestHandler 管道,该管道读取 cookie 以设置值并覆盖 PersistentLocale 服务以存储 cookie。任何提示将不胜感激:);谢谢。
    • 所有关于贡献过滤器的东西都在 Tapestry IoC 文档中。 tapestry.apache.org/tapestry-ioc-configuration.html 假设您了解 IoC 如何处理配置和覆盖:Tapestry 中有一种方法,然后所有风格的所有服务都可以以相同的方式做事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 2013-05-24
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    相关资源
    最近更新 更多