Как создать многоязычные JavaDocs?

Существует JavaDoc обычного Java API с английским изданием и китайским изданием, но, похоже, для каждого издания требуется отдельный исходный код. Есть ли более удобный способ сделать это?

Ответ 1

Нет, по существу нет способа сделать это.

Единственное, что приходит в голову, относится к сгенерированным страницам HTML: вы можете окружать JavaDocs в блочных элементах, которые переключают между языками с помощью CSS. Рассмотрим:

/**
 * <div class="en">Documentation in English</div>
 * <div class="nl">Documentatie in Nederlands</div>
 */
public void myFunction() {}

Впоследствии отредактируйте CSS файлы JavaDocs, чтобы пользователь мог переключать языки, например:

div.en { display:none; }
div.nl { display:block; }

Ответ 2

Короткий ответ - нет. Существующие комментарии и инструменты javadoc не поддерживают это.

Я не думаю, что было бы неплохо добавить поддержку для встраивания нескольких переводов комментариев javadoc в исходный код. Это не было бы масштабируемым решением:

  • По мере добавления каждого нового перевода файлы исходного кода становятся больше.
  • Многоязычные описания будут очень трудными для управления.

Учтите, что я разработчик API, который не читает/не пишет по-китайски. Когда я обновляю английские javadocs, как я могу отметить, что китайские комментарии javadoc необходимо обновить? Что мы делаем с проблемой, что потенциально большое количество переводчиков должно обновлять файлы исходного кода и может случайно ввести регрессии в фактический код? Как менеджер релиза гарантирует, что все переводы выполняются до выпуска "золотой"?

Я думаю, что лучшее (гипотетическое) решение состоит в том, чтобы иметь модифицированный инструмент javadoc, который извлекает комментарии javadoc в базу данных версий. Затем напишите инструмент, который замечает, когда первичный (например, английский) комментарий javadoc изменяется в базах данных и предлагает техническим писателям/переводчикам внести соответствующие изменения в китайские, голландские и т.д. Переводы javadoc.