【发布时间】:2015-05-28 21:42:54
【问题描述】:
首先,ui-router 确实是对任何假装灵活且结构良好的 AngularJS 应用程序的巨大改进。感谢您的努力!
在我正在开发的应用程序中,我们需要提供其路径的 i18n。
由于它的性质,我们需要处理一个端点,将可用语言带到应用程序上。
所以,用户进入应用,我们有以下几种可能:
- 没有语言环境:
http://www.app.com(/); - 使用有效的语言环境:
http://www.app.com/:i18n(/); - 使用无效的语言环境字符串:
http://www.app.com/articles(/)-:i18n路径参数被解释为articles; - 具有有效的区域设置但不可用:
http://www.app.com/ru(/)-:i18n路径参数是不可用的区域设置;
我需要能够:
- 加载提供可用语言的 API 端点;
- 解析提供的URL,必要时更改,如果是,替换它;
- 在应用程序运行时,可以通过按钮之类的方式更改 i18n 参数,并且:
- 继承当前参数,替换 i18n 参数;
- 触发需要了解 i18n 更改的元素(可以是解析、抽象路由,甚至是当前;
- 使用 ii,可以在不重新加载整个应用程序的情况下处理此问题(只能更改视图上使用的数据;我将使用反馈来通知新数据);
有一点是,例如,如果用户将区域设置更改为没有所需语言内容的区域,则应用需要重定向到通知用户的状态。我想,如果有可能触发 i18n 更改的元素,并且状态上有解决方案,拒绝一个,它可以发送 $stateChangeError 或其他东西。
最终,如果我正在处理一些可以更简单的事情,请告诉我...使用服务器配置(此应用程序的最终服务器将是 Apache),这不可能吗? ,因为可用的语言环境来自 API,所以我想 .htaccess 没什么可处理的,不是吗?
谢谢!
【问题讨论】:
-
Ui 路由器具有默认值的可选参数。为顶级状态的 Lang 定义一个,使用解析加载语言,如果没有找到则拒绝。
标签: angularjs html internationalization angular-ui-router angular-translate