Finom
@Finom

JSDoc и документация на двух языках (Рус, Англ). Как реализовать?

Всем привет.
Есть задача написания двух версий документации для кода: на английском и на русском. Ведение двух версий проекта и их синхронизация затруднительна. Я знаю, что такого нет из коробки в JSDoc, но, возможно, у кого-то есть идеи для хаков. Я представляю себе "язык", как дополнительный кастомный тег:
...
/**
@doclang rus
@method f
@desc Крутой метод 

@doclang eng
@method f
@desc Awesome method
*/
f: function() { /* ... */},
...


Спасибо.

UPD

Я не зацикливаюсь на JSDoc, меня волнует только одно: как сделать документацию на двух языках, но не прописывать её в статичных HTML файлах, чтоб можно было легко изменить шаблон вывода: HTML, JSON или в другую форму. Дошло до того, что я задумался написать собственный движок документирования вне JS файлов.

<method name="f" class="ClassName" lang="en">
	<sum>
		This method is very cool
	</sum>
	<desc>
		Big description
	</desc>
	<arguments>
		<argument name="x" optional="optional" default="12">
			Cool argument 1
		</argument>
		<argument name="y" repeatable="repeatable">
			Cool argument 2
		</argument>
	</arguments>
	<examples>
		<example caption="Basic usage">
			alert( new ClassName().f() )
		</example>
	</examples>
</method>

<method name="f" class="ClassName" lang="ru">
	<sum>
		Крутой метод
	</sum>
	<desc>
		Большое описание
	</desc>
	<arguments>
		<argument name="x" optional="optional" default="12">
			Крутой аргумент 1
		</argument>
		<argument name="y" repeatable="repeatable">
			Крутой аргумент 2
		</argument>
	</arguments>
	<examples>
		<example caption="Базовое использование">
			alert( new ClassName().f() )
		</example>
	</examples>
</method>

Но XML очень избыточный язык, а JSON - бедный. Что делать, хз пока.
  • Вопрос задан
  • 3126 просмотров
Пригласить эксперта
Ответы на вопрос 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
А потом кто-то откроет этот модуль в NetBeans, или WebStorm и будет долго крыть матом разработчиков.

Делай отдельный файл (или файлы) локализации, в котором английским текстам исходной документации ставятся в соответствие русские тексты.

Т.е. что-то вроде:
lang['Awesome method']='Крутой метод';
Или какой-то свой формат, удобный для обработки. Но именно отдельно, а не в коде.

Еще один вариант - писать оба текста в одном теге, но с указанием языка. Например, так:

@method f
@desc [eng|Awesome method][rus|Крутой метод]

Подобный подход используется в wordpress-плагине для создания мультиязычных сайтов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы