问题标签 [ng2-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.
angular - ng2-translate 组件文件
我在我的 ionic2 应用程序上使用 ng2-translate,我让它在 html 上的静态文本上运行良好,例如:
我翻译了这个标题,但是当我尝试翻译这个时:
我无法使用翻译管道作为离子标题翻译 p.title。我只能通过以下方式做到这一点:
但我不想订阅我要翻译的每个 ngfor 或数组。还有另一种方法可以使这项工作吗?
我对 app.module 的配置:
angular - 使用 ng2-translate 翻译文本
我曾经ng2-translate
在我的angular2
网络应用程序中翻译标题和文本。但是当我试图翻译从.ts
文件中传递的文本时,我现在很困惑。
例如,我可以翻译 html 文件中的文本,如下所示。
但是,如果我有.ts
如下文件文本。然后我如何翻译这些文本。
在上面的例子中,我想翻译文本
'请选择一个位置'、'选项 1'、'选项 2'、'确定'...
如果有人有解决这个问题的想法,请帮助我。谢谢。
unit-testing - 如何在 Angular2 中使用 karma-jasmine 对 ng2-translate 进行单元测试
我正在尝试使用 ng2-translate 翻译带有德语和英语选项的页面。
navbar.component.html
navbar.component.spec.ts
翻译正在进行,{{ 'PAGE.GENERAL' | translate}}被正确翻译。因此在规范中,TranslateService 的 getTranslation() 是从 Json 文件(en.json 和 de.json)中获取数据。我在 TranslateServiceMock 中嘲笑这项服务。我该如何测试这个?有什么帮助吗?
angular - 如何在延迟加载的 ngModule 中通过 shared.module 加载服务,仅通过 forRoot() 实例化一次
如何通过 SharedModule 将服务加载为延迟加载的 ngModule 中的单例?
如何在延迟加载的 ngModule 中将服务加载为单例?
我确实有一个提供 i18n 和 API 等服务的 SharedModule。这些服务是自己的 ngModules,它们提供自己的 forRoot 功能。现在我想使用 forRoot 在一个花边加载的模块中从 SharedModule 加载服务,这样就不会通过依赖注入创建新实例。
我尝试了以下类似的方法,但似乎没有任何效果
shared.module.ts
app.module.ts
进入模块和 forRoot / for child 的好资源是http://blog.angular-university.io/angular2-ngmodule/
angular - ionic2 ng2-translate 在模态下不起作用
我在将 ng2-translate 与 ionic2 中的模态结合使用时遇到问题。正常页面中的翻译工作正常。
这是我的app.module.ts文件:
例如,在我的仪表板中,我可以使用以下 HTML 代码并获得正确的翻译:
<h2>{{'general.tasks' | translate}}</h2>
但是,当我现在通过以下代码使用 ionic-angular 的 ModalController 打开一个新模式时:
在新的 TaskCancelPage 中具有相同的 HTML 代码
<h2>{{'general.tasks' | translate}}</h2>
但在这里我只得到general.tasks而不是翻译后的值。
angular - ng2-translate 指令在管道运行时不起作用
Ng2-translate directive
给我带来了一些问题,但如果我做错了什么或者它是一个错误,我不明白。
在同一个组件的html
模板上,翻译pipe
工作正常,而翻译工作directive
不工作。
尤其是:
见https://github.com/ocombe/ng2-translate#4-use-the-service-the-pipe-or-the-directive
我错过了什么还是应该工作?
编辑
变量feature.linkTxt
指向string
LEARNMORE
,它对应于以下json
字符串:
如果我使用相同的变量从指令切换到管道,则会显示翻译后的文本。
该feature.linkTxt
变量由以下*ngFor
语句生成:
angular - 在 HTML 模板中制作简单的 ng2-translate 翻译工作
我刚刚将ng2-translate (5.0.0) 添加到我们的 angular (2.4.1) + typescript (2.0.3) + webpack (2.1.0-beta.25) 项目中。在构建的早期,我正在通过内存中的一些字典手动定义翻译。setTranslation
当我TranslateService
在组件代码中使用时,一切正常。现在,我无法为 HTML 模板中的指令和管道找到正确的语法。
一组翻译有,例如:
1) 管道
当模板具有:
应用程序在运行时中断,在很早的阶段,platformBrowserDynamic().bootstrapModule(AppModule)
在
引导应用程序时出错。语法错误
2) 指令+内容
当模板具有:
应用程序不会中断,但页面只显示未翻译的键,loginTitle
.
3) 指令
当模板具有:
应用程序没有中断,但页面没有显示任何应该显示的文本,DOM 节点不包含任何文本。
正如文档中所建议的那样,我已经TranslateModule
在应用模块级别(使用forRoot
)以及共享模块中进行了导入,而共享模块又被其他区域模块导入。
我还尝试了其他变体,有嵌套翻译,没有单引号等等,但没有运气。我究竟做错了什么?
编辑在场景 #1 中,我能够记录有关初始错误的更多信息:
错误:模板解析错误:找不到管道“翻译”
但这应该已经是 ng2-translate 的一部分
javascript - Angular 2在使用多个模块时保持ng2-translate DRY
我是使用 Angular 2 的新手,并且有一个关于在使用多个模块时保持代码干燥的问题。
我有一个共享模块,我在其中导入和导出其他模块的常用功能。
其中一个进口是 ng2-translate。
但是当我将它SharedModule
导入一个新模块时,我需要再次导入和配置TranslateModule
from ng2-translate,以便能够配置它。
如果我应该使用多个模块,这给了我一个我不喜欢的模式。
那么我将如何保持此代码干燥并保持最佳实践呢?
应用模块
这是我的基本结构,如果我添加一个新模块,我将不得不导入SharedModule
,TranslateModule
并重新设置默认语言TranslateService
。
如何防止这种模式?
angular - 使用管道获取 ng2-translate 中两个键的翻译
我有这种情况,我插入包含动态值的错误变量。
每次出现任何类型的错误时,我都会为 errorMsg 提供一个键。喜欢
这些是我的键,由管道翻译,效果很好。
但我想同时翻译两个键。我怎么做?就像是:
这应该导致
en-US.json 中的键值对是:
这是可行的吗?
angular - 更新 ng2-translate 指令中的 translateParams
给定一个翻译字符串,例如:
是否有可能以value
这样的方式绑定,ng2-translate
当底层参数发生变化时它会触发更新翻译的字符串?
上面的组件将Timeout in 10 seconds.
静态显示,但第二个跨度(和控制台)将显示值递减,如您所料。
我解决这个问题的方法(如上所示)是使用TranslationService
来在间隔的每个刻度上获取翻译的字符串,并更新message
模板内组件上的绑定属性。