【问题标题】:Is possible to use ui-router to i18n/localize my app?是否可以使用 ui-router 来 i18n/本地化我的应用程序?
【发布时间】:2015-05-28 21:42:54
【问题描述】:

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

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

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

所以,用户进入应用,我们有以下几种可能:

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

我需要能够:

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

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

最终,如果我正在处理一些可以更简单的事情,请告诉我...使用服务器配置(此应用程序的最终服务器将是 Apache),这不可能吗? ,因为可用的语言环境来自 API,所以我想 .htaccess 没什么可处理的,不是吗?

谢谢!

【问题讨论】:

  • Ui 路由器具有默认值的可选参数。为顶级状态的 Lang 定义一个,使用解析加载语言,如果没有找到则拒绝。

标签: angularjs html internationalization angular-ui-router angular-translate


【解决方案1】:

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

那是我的应用程序 porte.com.br/en

我发现了一个错误,没有语言环境就无法工作

我向 vizo 发送了一个拉取请求,但目前我没有收到任何反馈。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 2011-09-28
    相关资源
    最近更新 更多