Internationalization 使用多路由器的优势?

Internationalization 使用多路由器的优势?,internationalization,backbone.js,Internationalization,Backbone.js,我开始逐步构建我的web应用程序,向路由器添加路由和其他路由。该应用程序不是单页应用程序,因为它提供了相对独立的功能 例如,如果您必须使用wiki的数据构建一个包含wiki、仪表板(和设置)以及游戏的应用程序,您是否应该只使用一个路由器和多条路由?或者应该将应用程序拆分为具有自己控制器的小个子应用程序 在这两种情况下,如何处理i18n的问题?和加载的引导模型(如果是单个路由器)?最初,我会说这取决于您的应用程序架构/功能以及您将要做的网站的规模 单个路由文件的优点 遵守规则:越简单越好,所以如

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

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


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

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

单个路由文件的优点
  • 遵守规则:越简单越好,所以如果您真的不需要多个路由文件,就不要这样做
  • 多个文件可能会导致冲突问题,这可能是一个难以解决的问题
  • 我个人的经验是,在自己开发了一个自制的web应用程序之后,我在应用程序的目录中只保留了一个文件
但是多个路由文件呢? 但是,如果您有不同的插件来处理内容类型(wiki、仪表板、gallery…),并且它们自动实现路由(不会从一个网站更改到另一个网站),那么您可以找到多个路由文件的合法用法

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

PHP框架Symfony示例 不要将以下内容视为“你应该这样做”,但你可以在这里查看Symfony中是如何做到的:

I18n 你愿意翻译网址吗? 如果是,请记住我说的越简单越好。你真的需要它吗?我知道这可能会给你一些搜索引擎优化的提升,但我不认为这是值得的挤压。 在这种情况下,每个语言、每个应用程序可以使用1个文件

PS:你所说的“自举模型(在单路由器的情况下)”是什么意思

# 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/*