Атрибуты и комментарии локализации

Примечания локализации Windows Presentation Foundation (WPF) — это свойства в исходном коде XAML, предоставляемые разработчиками для предоставления правил и подсказок для локализации. Примечания локализации WPF содержат два набора сведений: атрибуты локализации и комментарии локализации свободной формы. Атрибуты локализации используются API локализации WPF для указания локализации ресурсов. Комментарии произвольной формы представляют собой любые сведения, которые автор приложения хочет указать.

Добавление комментариев локализации

Если авторы приложения разметки имеют особые требования для определенных элементов в XAML, например ограничения длины текста, семейства шрифтов или размера шрифта, они могут передать эту информацию локализаторам с помощью комментариев в коде XAML. Процесс добавления комментариев к исходному коду выглядит следующим образом.

  1. Разработчик приложения добавляет комментарии локализации в исходный код XAML.

  2. Во время процесса построения разработчик может указать в PROJ-файле, следует ли оставить комментарии произвольной локализации в сборке либо вынести за пределы файла часть комментариев или все комментарии. Вынесенные комментарии помещаются в отдельный файл. Параметр указывается с помощью тега LocalizationDirectivesToLocFile, например:

    <LocalizationDirectivesToLocFile>значение</LocalizationDirectivesToLocFile>

  3. Могут быть назначены следующие значения:

    • None — комментарии и атрибуты остаются внутри сборки, отдельный файл не создается.

    • CommentsOnly — из сборки выносятся только комментарии и помещаются в отдельном файле LocFile.

    • All — из сборки выносятся комментарии и атрибуты, которые помещаются в отдельный файл LocFile.

  4. При извлечении локализуемых ресурсов из BAML атрибуты локализуемости учитываются API локализации BAML.

  5. Файлы локализации комментариев, содержащие только комментарии в произвольной форме, включаются в процесс локализации на более поздней стадии.

В следующем примере показано добавление комментариев локализации в файл XAML.

<TextBlock x:Id = "text01"

FontFamily = "Microsoft Sans Serif"

FontSize = "12"

Localization.Attributes = "$Content (Unmodifiable Readable Text)

FontFamily (Unmodifiable Readable)"

Localization.Comments = "$Content (Trademark)

FontSize (Trademark font size)" >

Microsoft

</TextBlock>

В предыдущем примере раздел Localization.Attributes содержит атрибуты локализации, а раздел Localization.Comments — произвольные комментарии. В следующей таблице показаны атрибуты, комментарии и их значения для локализатора.

Атрибуты локализации Значение
$Content (Unmodifiable Readable Text) Содержимое элемента TextBlock не может быть изменено. Локализаторы не могут изменить слово Microsoft. Содержимое является видимым (доступным для чтения) локализатору. Категория содержимого — текст.
FontFamily (Unmodifiable Readable) Свойство семейства шрифтов элемента TextBlock не может быть изменено, но является видимым для локализатора.
Произвольные комментарии локализации Значение
$Content (Trademark) Автор приложения сообщает локализатору, что содержимое в элементе TextBlock является товарным знаком.
FontSize (Trademark font size) Автор приложения указывает, что свойство font size должно соответствовать стандартному размеру товарного знака.

Атрибуты локализуемости

Информация атрибутов локализуемости содержит список пар, состоящих из имени целевого значения и связанных значений локализуемости. Целевое имя может быть именем свойства или специальным именем $Content. Если это имя свойства, целевое значение является значением свойства. Если это $Content, то целевое значение является содержимым элемента.

Существует три типа атрибутов.

  • Категория. Этот параметр определяет, должно ли значение изменяться из средства локализатора. См. раздел Category.

  • Удобочитаемость. Этот параметр определяет, должно ли средство локализатора читать (и отображать) значение. См. раздел Readability.

  • Изменяемость. Этот параметр определяет, разрешает ли средство локализатора изменять значение. См. раздел Modifiability.

Эти атрибуты можно указать в любом порядке через пробел. В случае указания дублированных атрибутов последний атрибут переопределяет предыдущие. Например, Localization.Attributes = "Unmodifiable Modifiable" устанавливает параметр Modifiability в значение Modifiable, так как это последнее значение.

Параметры Modifiability (изменяемость) и Readability (читаемость) понятны без объяснений. Атрибут Category (категория) предоставляет стандартные категории, которые помогают локализатору при переводе текста. Такие категории, как Text, Label и Title, предоставляют локализатору сведения о том, как следует переводить текст. Существуют также специальные категории: None, Inherit, Ignore и NeverLocalize.

В следующей таблице показаны значения специальных категорий.

Категория Значение
None Целевое значение не имеет определенной категории.
Наследовать Целевое значение наследует свои категории от родительского.
Пропустить Целевое значение не обрабатывается в процессе локализации. Не обрабатывается только текущее значение. Параметр не влияет на дочерние узлы.
NeverLocalize Текущее значение не локализуется. Эта категория наследуется потомками элемента.

Комментарии локализации

Localization.Comments содержит произвольные строки, касающиеся целевого значения. Разработчики приложения могут добавлять сведения для предоставления подсказок локализаторов о том, как следует переводить текст приложений. Форматом комментариев может быть любая строка, заключенная в круглые скобки "()". Используйте символ '\' для создания escape-символов.

См. также