Интернационализация тега описания в pom.xml

Я делаю maven-сайт для проекта и хочу его интернационализировать. Хорошо, что генерация сайта выполняется плагином Maven Site и плагином Project Info Reports уже полностью интернационализирована. Плагин сайта Maven использует тег project.description из pom, чтобы заполнить страницу индекса, и мне было интересно, есть ли "хороший" способ интернационализации этого тега.

Спасибо!

1 ответ

Я не уверен, что мое решение особенно хорошо, но, по крайней мере, оно работает для меня;-) AFAIK, вы не можете напрямую интернационализировать метаданные проекта Maven, но вы можете использовать средство профиля Maven, чтобы имитировать это. Действуйте так: создайте свойство Maven, например i18n.project.description с переводом по умолчанию для описания вашего проекта. Используйте это свойство для project.description, Затем добавьте профиль для каждого языка, который вы хотите поддерживать (например, профили с идентификатором SWE а также GER). В каждом профиле переопределите свойство description с соответствующим переводом. Затем вы можете использовать эти различные профили для создания интернационализированных сайтов следующим образом:

$mvn -P GER site # строит немецкий сайт

$mvn -P SWE site # строит шведский сайт

Вы можете смешать эти профили с вашими существующими профилями, если у вас есть, например,

$mvn -P GER,development site

В итоге соответствующие части вашего pom.xml могут быть определены следующим образом:

<project>
    <description>${i18n.project.description}</description>

    <properties>
        <i18n.project.description>Some project description</i18n.project.description>
    </properties>

    ...

    <profiles>
        <profile>
            <id>SWE</id>
            <properties>
                <i18n.project.description>En projektbeskrivning</i18n.project.description>
            </properties>
        </profile>
        <profile>
            <id>GER</id>
            <properties>
                <i18n.project.description>Irgend eine Projektbeschreibung</i18n.project.description>
            </properties>
        </profile>
    </profiles>
</project>
Другие вопросы по тегам