You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在ngx-translate中融合多翻译与动态文本实现方案?

Combine Multi-Key Translation with Dynamic Values in ngx-translate

Got it, let's break down how to merge both multi-key translation fetching and dynamic placeholder replacement in ngx-translate—this is a common use case when you need multiple translated strings, some (or all) with dynamic values.

Core Solution Code

Here's the clean way to do it in one call:

this.translate.get(
  {
    HOME: { value: 'test_HOME' },
    MY_ACCOUNT: { username: 'JaneSmith' },
    CHANGE_PASSWORD: { minLength: 8 }
  }
).subscribe(translations => {
  showToast(translations.HOME, translations.MY_ACCOUNT, translations.CHANGE_PASSWORD);
});

How This Works

  • Instead of passing a simple array of keys, we pass an object where each key matches your translation file's keys, and the value is the placeholder data for that specific translation.
  • For context, let's say your en.json translation file looks like this:
    {
      "HOME": "Welcome to your {{value}} dashboard!",
      "MY_ACCOUNT": "Hi, {{username}}! Your account is active.",
      "CHANGE_PASSWORD": "New password must be at least {{minLength}} characters."
    }
    
    The get() method will automatically replace each {{placeholder}} with the corresponding value you provided, then return a fully translated object.

Mix Static and Dynamic Keys

If some of your translation keys don't need dynamic values, you can skip the placeholder object for those—just pass null or omit the value (though null makes it explicit):

this.translate.get(
  {
    HOME: { value: 'test_HOME' },
    MY_ACCOUNT: null, // No dynamic placeholders needed here
    CHANGE_PASSWORD: { minLength: 8 }
  }
).subscribe(translations => {
  showToast(translations.HOME, translations.MY_ACCOUNT, translations.CHANGE_PASSWORD);
});

Quick Tips

  • Double-check that your placeholder names in the translation files match exactly with the keys in your placeholder objects (case-sensitive!).
  • The subscription callback gives you a structured object, so you can easily access each translated string by its original key.

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

火山引擎 最新活动