You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular $localize:如何在属性中使用占位符?

Angular i18n:属性中设置翻译占位符的实现方式

一、文本内容的占位符写法(你找到的方案说明)

你提到的ng-container写法是可行的,它通过注释标记占位符,让i18n工具识别并保留占位符用于后续替换:

<ng-container i18n="@@ID">{{ 'CUSTOM PLACEHOLDER VALUE' // i18n(ph="PH") }}</ng-container>

这里的// i18n(ph="PH")是给i18n提取工具的标记,将CUSTOM PLACEHOLDER VALUE定义为占位符PH的默认值,翻译时可以针对不同语言替换该占位符对应的内容。

二、属性(如placeholder)的占位符实现

针对input的placeholder这类属性,需要在i18n-*指令中直接定义占位符参数,同时在属性值中设置默认内容,具体写法如下:

1. 静态占位符定义

<input
  i18n-placeholder="@@searchInputPlaceholder;{ph:'请输入关键词'}"
  placeholder="请输入关键词"
/>
  • @@searchInputPlaceholder是翻译ID,用于关联翻译文件中的对应条目;
  • {ph:'请输入关键词'}定义了占位符ph及其默认值,提取翻译时工具会识别这个参数,生成的翻译文件中可以替换占位符内容。

2. 运行时动态替换占位符

如果需要在运行时动态修改占位符的实际值,可以结合组件变量绑定:
组件类中定义变量:

dynamicPlaceholder = '动态搜索关键词';

HTML中绑定并关联占位符:

<input
  i18n-placeholder="@@searchInputPlaceholder;{ph:dynamicPlaceholder}"
  [placeholder]="dynamicPlaceholder"
/>

或者使用$localize直接处理翻译与占位符替换:

<input
  [placeholder]="$localize`:@@searchInputPlaceholder:${dynamicPlaceholder}`"
/>

内容的提问来源于stack exchange,提问作者user2622344

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 13:52:17