问题标签 [angular-translate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
400 浏览

angularjs - translateLoadingSuccess 永远不会被称为 angular-translate

我使用 angular-translate 进行翻译并试图避免 FOUC。

我试图在我的一个 html 中做到这一点

但我仍然看到 FOUC 的行为。任何想法或建议。当我调试脚本时,我看到事件 $translateLoadingSuccess 永远不会被调用,因此即使在页面加载后我的所有元素都是不可见的。

0 投票
1 回答
1397 浏览

angularjs - 角度翻译在具有另一个组件的按钮中不起作用

angular-translate 适用于使用格式的多个 p、h 和标签

这很棒。但是我不能让它在那个按钮上有另一个 Angular 组件的按钮上工作,特别是 angular-dropdowns。事实上,当我将 translate 放在 > 的末尾时,它会在页面加载时破坏整个页面,并且没有 Javascript 工作。在控制台中,我得到 Error: [$compile:multidir] http://errors.angularjs.org/1.2.20/ $compile/multidir (etc., etc.)

HTML是

该按钮的 Angular 控制器是

下拉按钮起作用,选择语言并进行翻译。myApp 具有 angular-translate 文档中的配置内容 - $translateProvider.translations() 之类的东西。同样,问题是当按钮上的翻译属性/指令时,它会在页面加载时破坏整个页面。我尝试将 $translate 带入上述控制器,但无法使其正常工作。有什么需要改变的?

0 投票
1 回答
3710 浏览

angularjs - angular-gettext:动态更改语言?

我在我的应用程序中使用了角度 gettext。到目前为止,我有两种语言,并希望根据用户偏好在 UI 中切换语言。我有一个用于两种语言的按钮——DE 和 EN。

在控制器方法中,我设置了语言:

这样做时,UI 中的语言似乎没有改变。使用角度 gettext 在 UI 中动态更改语言的正确方法是什么?

提前致谢。

0 投票
1 回答
214 浏览

javascript - 使用角度平移进行定位

我正在使用 Angular-Translate 库在 angularJS 中进行本地化。

我的要求是我想保留单个模块/控制器并从页数中调用方法/控制器方法。项目由以下标准目录结构组成:

  • 语言
    • zh-CN
      • 主页.json
      • 联系人.json
    • FR-FR
      • 主页.json
      • 联系人.json

这些所有 .json 文件也有各自的 html 和部分 html。另外,我不想提供硬编码路径;根据呈现的 html(view) 和选择的语言,它应该选择 .json 文件。

那么,应该采取什么方法呢?

0 投票
6 回答
104577 浏览

javascript - 使用 ui 路由器公开当前状态名称

我正在尝试实现一个语言切换器,如果用户从“en”端的任何给定页面单击“de”,它会将他们带到“de”端的那个页面。如果我 console.dir 使用 $state 参数,它会使用给定 $state 的“当前”属性公开我想要的值。如果我尝试 console.dir $state.current 来关注我想要的值,它只会给出父状态属性(我当前的视图是嵌套的)。

我目前的想法是,我在 url/en/content 上,然后我可以动态地让我的 lang 导航将适当的目标点动态加载到某种数据属性中,使用自定义指令来选择那些我会启动的“转到”并为每个角度翻译设置我的首选语言值。

目前的关键问题是暴露 $state 名称 - 同样,当简单地浏览 $state 时,当前对象会给出我想要的值,但 $current.state 直接只给出父状态。

如果有人对如何做到这一点有更好的建议(以角度方式 - 没有自定义 cookie 垃圾),我很乐意接受建议。

谢谢!

更新!代码示例:

我的状态的对象参考:

我的州:

控制器:

最后,我在 dom 中看到的输出:

使用 this.state = $state;

使用 this.state = $state.current

0 投票
1 回答
2657 浏览

angular-translate - angular-translate 未使用加载的静态文件进行翻译

我正在使用以下角度文件进行翻译:

  • 角度翻译.min.js (v2.2.0)
  • angular-translate-loader-static-files.min.js (v2.2.0)
  • 角翻译存储cookie.min.js(v2.2.0)
  • 角度翻译-存储-local.min.js (v2.2.0)
  • angular-cookies.min.js (v1.2.22)

当我执行以下操作时,角度翻译有效:

但不是当我尝试使用静态文件时......

我的 HTML:

我的 app.js:

我的获取响应(Content-Type 设置为:application/json):

呈现的 HTML 页面显示:label.test

此外,我的控制台中没有错误。我也尝试将密钥重命名为 TEST,但这也不起作用。

有任何想法吗?

谢谢。

0 投票
4 回答
11314 浏览

angularjs - 如何在指令的单元测试中模拟角度翻译过滤器

在我的指令模板中,我需要像这样使用角度翻译过滤器:

然后在我对该指令的单元测试中,我得到了错误:

未知提供者: translateFilterProvider <- translateFilter

我尝试过注入$filter$translate通过$translate = $filter('translate');它不能解决问题 - 这真的是为了测试过滤器

我可以注入模块pascalprecht.translate,但这很重手。我如何最好地模拟过滤器?

0 投票
1 回答
2069 浏览

angularjs - 为什么我在尝试初始化 angular-translate 时收到此错误?

我已将 angular-translate.min 包含到我的应用程序中,并且我知道它正在找到它,因为我没有收到 404 错误。但是当我尝试使用它时,我遇到了一个错误,我不知道为什么,有什么想法吗?我想我可以只包含 .js 文件并开始使用它。谢谢

https://docs.angularjs.org/error/$injector/modulerr?p0=UserAdminApp&p1=Error:%20%5B$injector:modulerr%5D%20http:%2F%2Ferrors.angularjs.org%2F1.2.20%2F$injector%2Fmodulerr%3Fp0%3DngTranslate%26p1%3DEr

https://docs.angularjs.org/error/$injector/modulerr?p0=ngTranslate&p1=Er

0 投票
1 回答
1546 浏览

javascript - AngularJS角度翻译按钮文本丢失

我正在使用带有角度翻译(pascalprecht)的AngularJS。我遇到了一个问题,按钮元素上的翻译文本不会显示,直到我将按钮滚动出当前视图并回滚或以其他方式重绘页面(如切换显示:无)。翻译后的文本虽然到位(通过检查器检查 - chrome 开发工具)。

这发生在 Chrome 上,我无法在 Firefox 上复制它。翻译通过 staticFileLoader(本地文件)加载。元素上的翻译以这种方式添加:

我尝试将按钮元素与锚('a')元素交换,但错误仍然存​​在。

0 投票
2 回答
552 浏览

javascript - Angular-Translate:将冒号/字符添加到翻译的字符串

我使用angular-translate并且我有例如这个翻译:

我可以通过以下方式将其包含到我的模板中:

所以我会得到这样的结果:

但我想要的是翻译后跟一个冒号:

那么我该怎么做呢?如何将字符添加到已翻译的字符串?我不想在翻译中添加冒号,因为我认为它不应该在那里,所以我会更灵活,我可以不带或不带冒号使用它。

我当然可以做某事。像这样

但由于性能原因,我想避免使用大括号的版本,如果它没有加载/评估但你会看到一秒钟{{'INFO_TEXT | translate'}},那就不好了。