internationalization - 使用多个路由器的优势?

标签 internationalization backbone.js

我开始逐步构建我的 Web 应用程序,向路由器添加路由和其他路由。该应用程序不是单页应用程序,因为它提供了相对独立的功能。

例如,如果您必须构建一个包含 wiki、仪表板(和设置)以及使用 wiki 数据的游戏的应用程序,您是否应该只使用一个具有许多路由的路由器?还是应该将应用程序拆分为具有自己的 Controller 的小子应用程序?

在这两种情况下,如何处理i18n的问题?并加载引导模型(在单个路由器的情况下)?

最佳答案

最初,我会说这取决于您的应用程序架构/功能以及您将要做的网站规模......

单个路由文件的优点

  • 符合规则:简单总是更好 ,所以如果你真的不需要多个路由文件,就不要。
  • 多个文件可能会导致冲突问题,而这些问题可能很难解决。
  • 我个人的经验是,在自己开发了一个自制的网络应用程序之后,我在应用程序的目录中只保留了一个文件。

  • 但是多路由文件呢?

    但是,如果您有不同的插件来处理内容类型(wiki、仪表板、画廊...),并且如果它们自动实现路由(不会从一个网站更改为另一个网站),则您可以找到多个路由文件的合法用法.

    在这种情况下,您可以专门为每个插件使用小文件,这些插件将自动合并到应用程序路由文件中(注意:正如我之前提到的,通过这样做,您可能会遇到文件之间的路由冲突)。
    在我自制的应用程序中,我使用这个解决方案来处理后端(管理)面板,我“解决”了冲突问题,通过为后端保留“/admin/”路由,然后所有插件的路由都以它为前缀。

    PHP 框架 Symfony 示例

    不要将以下内容视为“您应该这样做”,但您可以在此处查看 Symfony 中它是如何完成的:http://www.symfony-project.org/book/1_2/09-Links-and-the-Routing-System
    # default rules
    homepage:
      url:   /
      param: { module: default, action: index }
    
    default_symfony:
      url:   /symfony/:action/*
      param: { module: default }
    
    default_index:
      url:   /:module
      param: { action: index }
    
    default:
      url:   /:module/:action/*
    

    18n

    你愿意翻译网址吗?
    如果是,请记住我的简单就是更好的声明。你真的需要吗?我知道它可能会给你一些 SEO 提升,但我认为这不值得挤压。
    在这种情况下,您可以为每个应用程序使用每种语言的 1 个文件。

    PS:“引导模型(在单个路由器的情况下)”是什么意思?

    关于internationalization - 使用多个路由器的优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7046636/

    相关文章:

    java - 如何用Java构建短语语言翻译引擎

    javascript - ReferenceError : Intl is not defined in Node. js

    backbone.js - Backbone Marionette - 切换 View 时添加视觉效果

    javascript - jquery中如何从另一个函数调用父类的函数

    javascript - _.result 用例示例

    java - 韩文字符在 JTextField 上显示为空框

    java - 总重量。 UiBinder 中的国际化如何运作?

    java - 关于java native2ascii工具的困惑

    javascript - 窗口的主干范围而不是这个

    javascript - 如何在 Google Chrome 扩展中构建 HUD?