Управление маркированным текстом с пользовательскими идентификаторами¶
28.02.2022
Экстрактор Angular генерирует файл с записью единицы перевода в каждом из следующих случаев.
- Каждый атрибут
i18n
в шаблоне компонента - Каждая
$localize
помеченная строка сообщения в коде компонента.
Как описано в How meanings control text extraction and merges, Angular присваивает каждой единице перевода уникальный идентификатор.
В следующем примере отображаются единицы перевода с уникальными идентификаторами.
1 |
|
Когда вы изменяете переводимый текст, экстрактор генерирует новый идентификатор для этой единицы перевода. В большинстве случаев изменения в исходном тексте требуют изменений и в переводе.
Поэтому использование нового идентификатора позволяет синхронизировать изменение текста с переводом.
Однако некоторые системы перевода требуют особой формы или синтаксиса для идентификатора. Чтобы удовлетворить это требование, используйте пользовательский идентификатор для маркировки текста.
Большинству разработчиков нет необходимости использовать пользовательский идентификатор.
Если вы хотите использовать уникальный синтаксис для передачи дополнительных метаданных, используйте пользовательский идентификатор.
Дополнительные метаданные могут включать библиотеку, компонент или область приложения, в которой появляется текст.
Чтобы указать пользовательский ID в атрибуте i18n
или $localize
тегированной строки сообщения, используйте префикс @@
. Следующий пример определяет пользовательский идентификатор introductionHeader
в элементе заголовка.
1 |
|
Следующий пример определяет пользовательский идентификатор introductionHeader
для переменной.
1 |
|
Когда вы указываете пользовательский идентификатор, экстрактор генерирует единицу перевода с пользовательским идентификатором.
1 |
|
Если вы измените текст, экстрактор не изменит идентификатор. В результате вам не придется делать дополнительный шаг для обновления перевода.
Недостатком использования пользовательских идентификаторов является то, что при изменении текста перевод может не синхронизироваться с новым измененным исходным текстом.
Использование пользовательского идентификатора с описанием¶
Используйте пользовательский идентификатор в сочетании с описанием и значением, чтобы еще больше помочь переводчику.
Следующий пример включает описание, за которым следует пользовательский идентификатор.
1 2 3 4 5 |
|
Следующий пример определяет пользовательский идентификатор introductionHeader
и описание для переменной.
1 |
|
В следующем примере добавляется значение.
1 2 3 4 5 |
|
Следующий пример определяет пользовательский идентификатор introductionHeader
для переменной.
1 |
|
Определите уникальные пользовательские идентификаторы¶
Обязательно задавайте уникальные пользовательские идентификаторы. Если вы используете один и тот же идентификатор для двух разных текстовых элементов, инструмент извлечения извлечет только первый, а Angular использует перевод вместо обоих исходных текстовых элементов.
Например, в следующем фрагменте кода один и тот же пользовательский идентификатор myId
определен для двух разных текстовых элементов.
1 2 3 |
|
Ниже показан перевод на французский язык.
1 2 3 4 |
|
Оба элемента теперь используют один и тот же перевод (Bonjour
), потому что оба были определены с одним и тем же пользовательским идентификатором.
1 2 3 |
|