Перевод AngularJS: создание динамической строки

Я использую модуль angular-translate для перевода, я хотел бы создать динамическую строку, как показано ниже. .

Ключ перевода:

"MY_TRANS_KEY": "Answer should include all of the following: {{limit}}"

HTML:

<span
    class="warningStyle padding-0"
    translate="{{limit.myKey}}"
    translate-value-limit="{{limit.valueTrans | translate}}
  >

limit.myKey -> имеет значение ключа перевода в этом случае "MY_TRANS_KEY"

limit.valueTrans -> — это объект с переводами, как показано ниже.

    {
da: "En {{JOINWORD_ANY}} To",
en: "One {{JOINWORD_ANY}} Two",
}

Мой вопрос: как я могу получить перевод выше {{JOINWOD_ANY}}? В настоящее время он отображается только в виде строки.

Надеюсь, это объясняет.


person Geshem W    schedule 07.05.2020    source источник


Ответы (1)


Если я вас правильно понял, вы хотите связаться с переведенным текстом с каким-то номером.

Так что, возможно, используйте <p>{{data.key_with_limit |translate}}</p>

вместо авторства перевести: <p translate="{{data.key_with_limit}}"></p>

Итак, вы можете написать:

<p>{{data.key|translate}} {{limit}}</p>

какой-то пример:

Надеюсь, это поможет вам:

var en_translations = {
    MY_TRANS_KEY: "EN "
      }

  var sp_translations = {
     MY_TRANS_KEY: "SP "
  }

$translateProvider.translations('en',en_translations);

$translateProvider.translations('sp',sp_translations);

$translateProvider.preferredLanguage('en');

$scope.data = {
     key: 'MY_TRANS_KEY'
   };

$scope.numericLimit = 80;

и HTML:

 <p translate="{{data.key}}"></p>     
 <p>{{data.key|translate}} {{numericLimit}}</p>

Демо


ИЗМЕНИТЬ

языковые ключи представляют собой файл JSON:

 {
  da: "En {{JOINWORD_ANY}} To",
  en: "One {{JOINWORD_ANY}} Two",
 }

Вы не можете его скомпилировать, {{JOINWORD_ANY}} всегда будет строкой.

Используйте разные ключи и динамические значения, которые вы можете объединять/управлять в контроллеры/компоненты/директивы.

person Maxim Shoustin    schedule 07.05.2020
comment
Я обновил свой вопрос, надеюсь, это объясняет. любое предложение высоко ценится. - person Geshem W; 07.05.2020
comment
Спасибо за ответ! Если это возможно, пожалуйста, пришлите мне код, чтобы сделать это. - person Geshem W; 07.05.2020
comment
Кажется, я ответил. SO - это не место, где кто-то делает за вас домашнюю работу :). Я также разместил демо. Это хорошая отправная точка. - person Maxim Shoustin; 08.05.2020