Angular国际化后静态文本怎么不更新? Prog.远香 提问于 2026-03-05 16:54:23 阅读 25 框架 我用 Angular 的 i18n 做了多语言切换,动态内容能正常翻译,但写死在模板里的静态文本比如 欢迎 切换语言后根本不变,还是原来的中文。是不是漏了什么步骤? 我试过重新构建项目,也加了 LOCALE_ID 提供者,但静态文本就是不动。难道每次切换语言都要重新编译整个应用?这体验也太差了吧…… 我的 angular.json 里配了多个 locale,构建命令是 ng build --configuration=production,fr 这种方式,但运行时没法动态加载对应的翻译文件。 Angular 我来解答 赞 3 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 百里光星 Lv1 你这个问题是Angular i18n的老毛病了,静态文本必须重新编译才能更新。想动态切换就得换方案,用ngx-translate吧,三行代码搞定: // 安装 npm install @ngx-translate/core @ngx-translate/http-loader // app.module.ts import { TranslateModule, TranslateLoader } from '@ngx-translate/core'; import { HttpClientModule, HttpClient } from '@angular/common/http'; @NgModule({ imports: [ HttpClientModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: HttpLoaderFactory, deps: [HttpClient] } }) ] }) export class AppModule { } export function HttpLoaderFactory(http: HttpClient) { return new TranslateHttpLoader(http); } 用这个就能热切换了,不用重新编译。Angular自带的i18n就是个坑,我们项目早换了。 回复 点赞 2026-03-05 17:06 加载更多 相关推荐 2 回答 59 浏览 Angular中使用WebSocket时视图未更新,NgZone.run无效怎么办? 我在Angular组件里用WebSocket接收数据,收到消息后手动更新了数组,但视图就是不刷新。尝试把回调代码用this.ngZone.run()包裹还是没用,这是什么情况? 具体场景是这样的:在n... 百里紫晨 框架 2026-02-07 08:48:33 2 回答 23 浏览 Angular中为什么第三方异步回调不触发变更检测? 我在用Angular开发时,用第三方库发起异步请求,数据返回后赋值给组件属性但视图没更新。尝试用NgZone.run()包裹也没效果,控制台没有任何报错,这是为什么? 比如这样调用:this.http... 萌新.淑宁 框架 2026-02-12 11:24:44 2 回答 76 浏览 Angular组件卸载后rxjs订阅没清理导致内存泄漏怎么办? 我在Angular项目里用Subject订阅了服务端数据,按官方教程在ngOnDestroy里调用了unsubscribe,但内存还是持续上涨。明明组件卸载了,为什么订阅没断开? 代码是这样写的:th... 公孙莉莉 优化 2026-02-03 20:01:35 1 回答 12 浏览 Angular 里 inject() 在组件外为啥报错? 我最近在 Angular 17 项目里尝试用 inject() 替代构造函数注入,但在一个工具函数里调用时直接报错说“inject() must be called from an injection... Designer°国红 框架 2026-03-01 08:05:24 1 回答 17 浏览 Angular里用HttpClient发请求为啥收不到响应数据? 我在Angular组件里用HttpClient调后端接口,请求能发出去,Network面板也看到返回了200和JSON数据,但subscribe里拿不到data,控制台还报错说“Cannot read... 欧阳胜洋 框架 2026-02-28 23:31:20 2 回答 14 浏览 Angular Universal SSR后客户端点击事件不触发? 我在用Angular Universal做SSR时遇到个奇怪问题,页面首屏渲染正常,但所有带(click)事件的按钮点击都没反应。比如这个登录按钮: <button (click)="... 诸葛怡平 框架 2026-02-18 11:42:31 2 回答 44 浏览 Angular HttpClient 设置请求头后为什么没生效? 在Angular项目里用HttpClient发送POST请求时设置了Authorization头,但后端一直返回401。检查代码没问题,重启服务也没用,是不是哪里漏掉了配置?求大神指点! 代码这样写的... 慕容奕同 框架 2026-02-17 09:11:47 2 回答 65 浏览 Angular路由守卫如何在导航到某个页面时动态设置标题? 我在用Angular的CanActivate守卫尝试动态设置页面标题时遇到了问题,按照文档写的代码运行后标题没变化。比如在守卫里用了TitleService,但控制台没报错就是没反应。 这是我的守卫代... Tr° 珍珍 框架 2026-02-05 08:42:32 2 回答 51 浏览 Angular组件中ngAfterViewInit为什么无法获取动态生成的DOM元素? 我在使用Angular时遇到了奇怪的问题。组件里通过ViewChild获取一个动态生成的DOM元素,但ngAfterViewInit里始终返回null。元素是通过*ngIf条件渲染的,当数据异步加载完... 纪娜 ☘︎ 框架 2026-02-04 17:07:27 2 回答 42 浏览 为什么OWASP ZAP无法拦截Angular应用的某些AJAX请求? 我在用OWASP ZAP测试Angular项目时发现,虽然设置了代理8080,大部分请求都能拦截,但文件上传和实时搜索的两个AJAX请求完全没反应。用F12看网络面板明明有这些请求,ZAP里却显示空白... 萌新.艳珂 安全 2026-02-03 21:34:30
用这个就能热切换了,不用重新编译。Angular自带的i18n就是个坑,我们项目早换了。