2017-10-10 31 views
2

Mon client m'a donné l'obligation inhabituelle (et non négociable) de leur fournir une documentation doxygen bilingue (anglais et polonais) à partir du code C++.Plusieurs langues dans docs doxygen (C++)

Ma première idée est d'utiliser la compilation conditionnelle des commentaires, comme:

#if DOXYGEN_ENGLISH 
/** 
* @brief Sample method 
*/ 
#elif DOXYGEN_POLISH 
/** 
* @brief Przykładowa metoda 
*/ 
#endif 
void foo(); 

Ensuite, exécutez deux fois Doxygen avec différents paramètres régionaux de base et constante prédéfinie ... et il fonctionne réellement. Mais c'est très lourd ...

Est-ce que quelqu'un a une idée comment puis-je améliorer cette solution? Ou le résoudre de manière différente?

+1

Cette solution semble déjà bonne, c'est ce que je ferais dans ce cas. –

+1

avez-vous regardé \ ~ [laguageid]? Il ne nécessite toujours que deux fois la génération mais utilise des commandes intégrées de doxygen. – albert

+0

@albert C'est génial! Pouvez-vous poster ceci comme réponse pour que je puisse l'accepter? – PiotrK

Répondre

3

Doxygen a la commande command \ ~ [langId] pour gérer différentes langues. L'exemple ci-dessus présenté la formule pourrait être:

/** 
* \~english @brief Sample method 
* \~polish @brief Przykladowa metoda 
*/ 
void foo(); 
  • aucune exigence directe utiliser une directive préprocesseur/préprocesseur/paramètres
  • un seul endroit dans le fichier de configuration doxygen à modifier (Doxyfile) lorsque changer de langue.