可以使用ui-router来i18n/本地化我的应用



首先,ui-router确实是任何一个假装灵活和结构良好的AngularJS应用程序的巨大改进。谢谢你的努力!

在我正在开发的一个应用程序中,我们需要提供i18n个路径。

由于它的性质,我们需要处理一个端点,将可用的语言带到应用程序中。

因此,用户进入应用程序,我们有以下可能性:

  1. 没有区域设置:http://www.app.com(/);
  2. 使用有效的语言环境:http://www.app.com/:i18n(/);
  3. 使用无效的语言环境字符串:http://www.app.com/articles(/) - :i18n路径参数被解释为articles;http://www.app.com/ru(/) - :i18n路径参数是一个不可用的区域设置;

我需要能够:

  1. 加载提供可用语言的API端点;
  2. 解析提供的URL,必要时更改,如果是,替换它;
  3. 在应用运行时,可以通过按钮等方式改变i18n参数:
    1. 继承当前参数,替换i18n参数;
    2. 触发需要知道i18n变化的元素(可以被解析,在抽象路由上,甚至是当前);
    3. 使用ii,可以在不重新加载整个应用程序的情况下处理此问题(只能更改视图上使用的数据;我将使用反馈来通知新数据的加载);

有一点是,例如,如果用户将区域设置更改为没有所需语言内容的区域设置,则应用程序需要重定向到通知用户的状态。我想,如果有可能触发i18n上的元素变化,并且有对状态的解析,在拒绝一个时,它可以调度$stateChangeError或其他东西。

最后,如果我正在处理一些可以简单得多的事情,请让我知道…使用服务器配置(这个应用程序的最终服务器将是Apache),是不是可能的,因为可用的区域设置来自API,我想没有太多的.htaccess处理,不是吗?

谢谢!

我在我的应用程序中使用https://github.com/vizo/angular-ui-router-i18n,并且工作。

这是我的应用程序port.com.br/zh

我发现一个错误,没有区域设置不能工作

我向vizo发送了一个pull request,但是,目前,我没有收到任何反馈。

但是在我的fork是工作的,试试

最新更新