Commit f57b7d97 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.5.3-20070925

parent 8e4a092e
DOXYGEN Version 1.5.3-20070902
DOXYGEN Version 1.5.3-20070925
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (02 September 2007)
Dimitri van Heesch (25 September 2007)
DOXYGEN Version 1.5.3_20070902
DOXYGEN Version 1.5.3_20070925
Please read INSTALL for compilation instructions.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (02 September 2007)
Dimitri van Heesch (dimitri@stack.nl) (25 September 2007)
......@@ -20,7 +20,7 @@ doxygen_version_minor=5
doxygen_version_revision=3
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=20070902
doxygen_version_mmn=20070925
bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
......
......@@ -732,9 +732,9 @@ See section \ref memgroup for an example.
The paragraph will be indented.
The text of the paragraph has no special internal structure. All visual
enhancement commands may be used inside the paragraph.
Multiple adjacent \\author commands will be joined into a single paragraph
and separated by commas. Alternatively, one \\author command may mention
several authors. The \\author command ends when a blank line or some other
Multiple adjacent \\author commands will be joined into a single paragraph.
Each author description will start a new line. Alternatively, one \\author command
may mention several authors. The \\author command ends when a blank line or some other
sectioning command is encountered.
\par Example:
......
......@@ -200,6 +200,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_show_dirs SHOW_DIRECTORIES
\refitem cfg_show_include_files SHOW_INCLUDE_FILES
\refitem cfg_show_used_files SHOW_USED_FILES
\refitem cfg_sip_support SIP_SUPPORT
\refitem cfg_skip_function_macros SKIP_FUNCTION_MACROS
\refitem cfg_sort_brief_docs SORT_BRIEF_DOCS
\refitem cfg_sort_member_docs SORT_MEMBER_DOCS
......@@ -424,6 +425,14 @@ followed by the descriptions of the tags grouped by category.
If you use Microsoft's C++/CLI language, you should set this option to YES to
enable parsing support.
\anchor cfg_sip_support
<dt>\c SIP_SUPPORT <dd>
\addindex OPTIMIZE_OUTPUT_SIP
Set the SIP_SUPPORT tag to YES if your project consists
of <a href="http://www.riverbankcomputing.co.uk/sip/">sip</a> sources only.
Doxygen will parse them like normal C++ but will assume all classes use public
instead of private inheritance when no explicit protection keyword is present.
\anchor cfg_distribute_group_doc
<dt>\c DISTRIBUTE_GROUP_DOC <dd>
\addindex DISTRIBUTE_GROUP_DOC
......
......@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile).
Currently (version 1.5.2), 33 languages
Currently (version 1.5.3), 33 languages
are supported (sorted alphabetically):
Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
......
......@@ -74,6 +74,7 @@ Kenji Nagamatsu: naga@joyful.club.ne.jp
Iwasa Kazmi: iwasa@cosmo-system.jp
TranslatorKorean
Kim Taedong: fly1004@gmail.com
SooYoung Jung: jung5000@gmail.com
Richard Kim: ryk@dspwiz.com
......
(1.5.2)
(1.5.3)
Doxygen supports the following 33 languages (sorted alphabetically):
......@@ -19,7 +19,7 @@ still may be some details listed even for them:
TranslatorBrazilian -- The "translate me!" found in a comment.
TranslatorCatalan
TranslatorChinese -- The "translate me!" found in a comment.
TranslatorChinese
TranslatorCroatian -- The "translate me!" found in a comment.
TranslatorCzech
TranslatorDanish -- The "translate me!" found in a comment.
......@@ -111,12 +111,6 @@ TranslatorBrazilian (Translator)
Implements 194 of the required methods.
TranslatorChinese (Translator)
-----------------
Implements 194 of the required methods.
TranslatorChinesetraditional (TranslatorAdapter_1_4_6) 1 method to implement
----------------------------
......
......@@ -78,6 +78,7 @@ static QStack<int> g_scopeStack; //!< 1 if bracket starts a scope,
// 2 for internal blocks
static int g_anchorCount;
static FileDef * g_sourceFileDef;
static bool g_lineNumbers;
static Definition * g_currentDefinition;
static MemberDef * g_currentMemberDef;
static bool g_includeCodeFragment;
......@@ -449,14 +450,13 @@ static void setClassScope(const QCString &name)
static void startCodeLine()
{
//if (g_currentFontClass) { g_code->endFontClass(); }
if (g_sourceFileDef)
if (g_sourceFileDef && g_lineNumbers)
{
//QCString lineNumber,lineAnchor;
//lineNumber.sprintf("%05d",g_yyLineNr);
//lineAnchor.sprintf("l%05d",g_yyLineNr);
Definition *d = g_sourceFileDef->getSourceDefinition(g_yyLineNr);
//printf("startCodeLine %d d=%s\n", g_yyLineNr,d ? d->name().data() : "<null>");
if (!g_includeCodeFragment && d)
{
g_currentDefinition = d;
......@@ -1120,7 +1120,7 @@ static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName,
int vi;
QCString vn=varName;
QCString scope;
if ((vi=vn.findRev("::"))!=-1) // explicit scope A::b(), probably static member
if ((vi=vn.findRev("::"))!=-1 || (vi=vn.findRev('.'))!=-1) // explicit scope A::b(), probably static member
{
ClassDef *jcd = getClass(vn.left(vi));
vn=vn.right(vn.length()-vi-2);
......@@ -1182,11 +1182,13 @@ static void generateFunctionLink(CodeOutputInterface &ol,char *funcName)
QCString locScope=g_classScope.copy();
QCString locFunc=removeRedundantWhiteSpace(funcName);
//fprintf(stdout,"*** locScope=%s locFunc=%s\n",locScope.data(),locFunc.data());
int len=2;
int i=locFunc.findRev("::");
if (i==-1) i=locFunc.findRev("."),len=1;
if (i>0)
{
locScope=locFunc.left(i);
locFunc=locFunc.right(locFunc.length()-i-2).stripWhiteSpace();
locFunc=locFunc.right(locFunc.length()-i-len).stripWhiteSpace();
int ts=locScope.find('<'); // start of template
int te=locScope.findRev('>'); // end of template
//printf("ts=%d te=%d\n",ts,te);
......@@ -3285,6 +3287,7 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
g_exampleBlock = exBlock;
g_exampleName = exName;
g_sourceFileDef = fd;
g_lineNumbers = fd!=0;
if (exBlock && fd==0)
{
// create a dummy filedef for the example
......@@ -3306,6 +3309,7 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
g_exampleFile = convertNameToFile(g_exampleName+"-example");
}
g_includeCodeFragment = inlineFragment;
//printf("** exBlock=%d exName=%s include=%d\n",exBlock,exName,inlineFragment);
startCodeLine();
g_type.resize(0);
g_name.resize(0);
......@@ -3322,7 +3326,7 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
endFontClass();
g_code->endCodeLine();
}
if (exBlock && g_sourceFileDef)
if (exBlock && fd==0)
{
// delete the temporary file definition used for this example
delete g_sourceFileDef;
......
......@@ -1668,6 +1668,13 @@ void Config::create()
"enable parsing support.\n",
FALSE
);
cb = addBool(
"SIP_SUPPORT",
"Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. \n"
"Doxygen will parse them like normal C++ but will assume all classes use public \n"
"instead of private inheritance when no explicit protection keyword is present. \n",
FALSE
);
cb = addBool(
"DISTRIBUTE_GROUP_DOC",
"If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC \n"
......
......@@ -1387,6 +1387,7 @@ DocSymbol::SymType DocSymbol::decodeSymbol(const QString &symName,char *letter)
DBG(("decodeSymbol(%s) l=%d\n",symName.data(),l));
if (symName=="&copy;") return DocSymbol::Copy;
else if (symName=="&trade;") return DocSymbol::Tm;
else if (symName=="&tm;") return DocSymbol::Tm; // alias for &trace;
else if (symName=="&reg;") return DocSymbol::Reg;
else if (symName=="&lt;") return DocSymbol::Less;
else if (symName=="&gt;") return DocSymbol::Greater;
......@@ -2049,7 +2050,7 @@ void DocInternalRef::parse()
//---------------------------------------------------------------------------
DocRef::DocRef(DocNode *parent,const QString &target) :
DocRef::DocRef(DocNode *parent,const QString &target,const QString &context) :
m_parent(parent), m_refToSection(FALSE), m_refToAnchor(FALSE)
{
Definition *compound = 0;
......@@ -2071,7 +2072,7 @@ DocRef::DocRef(DocNode *parent,const QString &target) :
// m_text.data(),m_ref.data(),m_file.data(),m_refToAnchor);
return;
}
else if (resolveLink(g_context,target,TRUE,&compound,anchor))
else if (resolveLink(context,target,TRUE,&compound,anchor))
{
bool isFile = compound ?
(compound->definitionType()==Definition::TypeFile ? TRUE : FALSE) :
......@@ -2318,8 +2319,8 @@ endlink:
//---------------------------------------------------------------------------
DocDotFile::DocDotFile(DocNode *parent,const QString &name) :
m_parent(parent), m_name(name), m_relPath(g_relPath)
DocDotFile::DocDotFile(DocNode *parent,const QString &name,const QString &context) :
m_parent(parent), m_name(name), m_relPath(g_relPath), m_context(context)
{
}
......@@ -3235,7 +3236,7 @@ int DocHtmlDescTitle::parse()
}
else
{
DocRef *ref = new DocRef(this,g_token->name);
DocRef *ref = new DocRef(this,g_token->name,g_context);
m_children.append(ref);
ref->parse();
}
......@@ -4247,7 +4248,7 @@ void DocPara::handleDotFile(const QString &cmdName)
return;
}
QString name = g_token->name;
DocDotFile *df = new DocDotFile(this,name);
DocDotFile *df = new DocDotFile(this,name,g_context);
m_children.append(df);
df->parse();
}
......@@ -4298,7 +4299,7 @@ void DocPara::handleRef(const QString &cmdName)
tokToString(tok),cmdName.data());
goto endref;
}
ref = new DocRef(this,g_token->name);
ref = new DocRef(this,g_token->name,g_context);
m_children.append(ref);
ref->parse();
endref:
......
......@@ -614,7 +614,7 @@ class DocImage : public CompAccept<DocImage>, public DocNode
class DocDotFile : public CompAccept<DocDotFile>, public DocNode
{
public:
DocDotFile(DocNode *parent,const QString &name);
DocDotFile(DocNode *parent,const QString &name,const QString &context);
void parse();
Kind kind() const { return Kind_DotFile; }
QString name() const { return m_name; }
......@@ -624,6 +624,7 @@ class DocDotFile : public CompAccept<DocDotFile>, public DocNode
QString width() const { return m_width; }
QString height() const { return m_height; }
DocNode *parent() const { return m_parent; }
QString context() const { return m_context; }
void accept(DocVisitor *v) { CompAccept<DocDotFile>::accept(this,v); }
private:
DocNode *m_parent;
......@@ -632,6 +633,7 @@ class DocDotFile : public CompAccept<DocDotFile>, public DocNode
QString m_relPath;
QString m_width;
QString m_height;
QString m_context;
};
/*! @brief Node representing a link to some item */
......@@ -661,7 +663,7 @@ class DocLink : public CompAccept<DocLink>, public DocNode
class DocRef : public CompAccept<DocRef>, public DocNode
{
public:
DocRef(DocNode *parent,const QString &target);
DocRef(DocNode *parent,const QString &target,const QString &context);
void parse();
Kind kind() const { return Kind_Ref; }
QString file() const { return m_file; }
......
......@@ -317,7 +317,7 @@ SCOPEKEYS ":"({ID}":")*
SCOPECPP {SCOPEPRE}*(~)?{ID}("<"{TEMPCHAR}*">")?
SCOPEOBJC {SCOPEPRE}?{ID}{SCOPEKEYS}?
SCOPEMASK {SCOPECPP}|{SCOPEOBJC}
FUNCARG "("{FUNCCHAR}*")"({BLANK}*("volatile"|"const"))?
FUNCARG "("{FUNCCHAR}*")"({BLANK}*("volatile"|"const"){BLANK})?
OPNEW {BLANK}+"new"({BLANK}*"[]")?
OPDEL {BLANK}+"delete"({BLANK}*"[]")?
OPNORM {OPNEW}|{OPDEL}|"+"|"-"|"*"|"/"|"%"|"^"|"&"|"|"|"~"|"!"|"="|"<"|">"|"+="|"-="|"*="|"/="|"%="|"^="|"&="|"|="|"<<"|">>"|"<<="|">>="|"=="|"!="|"<="|">="|"&&"|"||"|"++"|"--"|","|"->*"|"->"|"[]"|"()"
......
......@@ -98,10 +98,13 @@ static void writeGraphFooter(QTextStream &t)
* (used in case CREATE_SUBDIRS is enabled).
* \param urlOnly if FALSE the url field in the map contains an external
* references followed by a $ and then the URL.
* \param context the context (file, class, or namespace) in which the
* map file was found
* \returns TRUE if succesful.
*/
static bool convertMapFile(QTextStream &t,const char *mapName,
const QCString relPath, bool urlOnly=FALSE)
const QCString relPath, bool urlOnly=FALSE,
const QString &context=QString())
{
QFile f(mapName);
if (!f.open(IO_ReadOnly))
......@@ -129,7 +132,7 @@ static bool convertMapFile(QTextStream &t,const char *mapName,
{
result="href=\"";
// fake ref node to resolve the url
DocRef *df = new DocRef( (DocNode*) 0, link.mid(5) );
DocRef *df = new DocRef( (DocNode*) 0, link.mid(5), context );
if (!df->ref().isEmpty())
{
if ((dest=Doxygen::tagDestinationDict[df->ref()]))
......@@ -1047,6 +1050,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
// compute md5 checksum of the graph were are about to generate
QString theGraph;
QTextStream md5stream(&theGraph,IO_WriteOnly);
md5stream.setEncoding(md5stream.UnicodeUTF8);
writeGraphHeader(md5stream);
md5stream << " rankdir=LR;" << endl;
for (dnli2.toFirst();(node=dnli2.current());++dnli2)
......@@ -1077,6 +1081,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
QFile f(dotName);
if (!f.open(IO_WriteOnly)) return;
QTextStream t(&f);
t.setEncoding(t.UnicodeUTF8);
t << theGraph;
f.close();
resetReNumbering();
......@@ -1677,6 +1682,7 @@ QCString computeMd5Signature(DotNode *root,
//printf("computeMd5Signature\n");
QString buf;
QTextStream md5stream(&buf,IO_WriteOnly);
md5stream.setEncoding(md5stream.UnicodeUTF8);
writeGraphHeader(md5stream);
if (lrRank)
{
......@@ -1753,6 +1759,7 @@ static bool updateDotGraph(DotNode *root,
if (f.open(IO_WriteOnly))
{
QTextStream t(&f);
t.setEncoding(t.UnicodeUTF8);
t << theGraph;
}
return TRUE;
......@@ -1894,6 +1901,7 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
out << "\"></center>" << endl;
QString tmpstr;
QTextOStream tmpout(&tmpstr);
tmpout.setEncoding(tmpout.UnicodeUTF8);
convertMapFile(tmpout,baseName+".map",relPath);
if (!tmpstr.isEmpty())
{
......@@ -2207,6 +2215,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
out << "</center>" << endl;
QString tmpstr;
QTextOStream tmpout(&tmpstr);
tmpout.setEncoding(tmpout.UnicodeUTF8);
convertMapFile(tmpout,baseName+".map",relPath);
if (!tmpstr.isEmpty())
{
......@@ -2499,6 +2508,7 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
out << "</center>" << endl;
QString tmpstr;
QTextOStream tmpout(&tmpstr);
tmpout.setEncoding(tmpout.UnicodeUTF8);
convertMapFile(tmpout,baseName+".map",relPath);
if (!tmpstr.isEmpty())
{
......@@ -2586,6 +2596,7 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
err("Cannot create file %s.dot for writing!\n",baseName.data());
}
QTextStream t(&f);
t.setEncoding(t.UnicodeUTF8);
m_dir->writeDepGraph(t);
f.close();
......@@ -2639,6 +2650,7 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
out << "</center>" << endl;
QString tmpstr;
QTextOStream tmpout(&tmpstr);
tmpout.setEncoding(tmpout.UnicodeUTF8);
convertMapFile(tmpout,baseName+".map",relPath,TRUE);
if (!tmpstr.isEmpty())
{
......@@ -2811,7 +2823,7 @@ error:
* \returns a string which is the HTML image map (without the \<map\>\</map\>)
*/
QString getDotImageMapFromFile(const QString& inFile, const QString& outDir,
const QCString &relPath)
const QCString &relPath,const QString &context)
{
QString outFile = inFile + ".map";
......@@ -2831,7 +2843,8 @@ QString getDotImageMapFromFile(const QString& inFile, const QString& outDir,
QString result;
QTextOStream tmpout(&result);
convertMapFile(tmpout, outFile, relPath ,TRUE);
tmpout.setEncoding(tmpout.UnicodeUTF8);
convertMapFile(tmpout, outFile, relPath ,TRUE, context);
QDir().remove(outFile);
// printf("result=%s\n",result.data());
......@@ -3072,6 +3085,7 @@ QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat fo
if (dotfile.open(IO_WriteOnly))
{
QTextStream tdot(&dotfile);
tdot.setEncoding(tdot.UnicodeUTF8);
writeGraphHeader(tdot);
// clean write flags
......
......@@ -335,7 +335,7 @@ void generateGraphLegend(const char *path);
void writeDotGraphFromFile(const char *inFile,const char *outDir,
const char *outFile,GraphOutputFormat format);
QString getDotImageMapFromFile(const QString& inFile, const QString& outDir,
const QCString& relPath);
const QCString& relPath,const QString &context);
#endif
......@@ -2605,7 +2605,7 @@ static void addMethodToClass(EntryNav *rootNav,ClassDef *cd,
FileDef *fd=rootNav->fileDef();
int l,i;
static QRegExp re("([a-z_A-Z0-9: ]*[ &*]*[ ]*");
static QRegExp re("([a-z_A-Z0-9: ]*[ &*]+[ ]*");
if (!root->type.isEmpty() && (i=re.match(root->type,0,&l))!=-1) // function variable
{
......@@ -2827,7 +2827,7 @@ static void buildFunctionList(EntryNav *rootNav)
}
static QRegExp re("([a-z_A-Z0-9: ]*[ &*]*[ ]*");
static QRegExp re("([a-z_A-Z0-9: ]*[ &*]+[ ]*");
if (!rootNav->parent()->name().isEmpty() &&
(rootNav->parent()->section() & Entry::COMPOUND_MASK) &&
cd &&
......@@ -4210,6 +4210,7 @@ static bool findClassRelation(
usedName=biName;
//printf("***** usedName=%s templSpec=%s\n",usedName.data(),templSpec.data());
}
if (Config_getBool("SIP_SUPPORT")) bi->prot=Public;
cd->insertBaseClass(baseClass,usedName,bi->prot,bi->virt,templSpec);
// add this class as super class to the base class
baseClass->insertSubClass(cd,bi->prot,bi->virt,templSpec);
......
......@@ -17,7 +17,7 @@
*/
/**
@TODO - continutation lines not always recognized
@todo - continutation lines not always recognized
- merging of use-statements with same module name and different only-names
- rename part of use-statement
- links to interface functions
......@@ -414,7 +414,7 @@ static bool getFortranDefs(const QCString &memberName, const QCString &moduleNam
/**
gets the link to a generic procedure which depends not on the name, but on the parameter list
@TODO implementation
@todo implementation
*/
static bool getGenericProcedureLink(const ClassDef *cd,
const char *memberText,
......@@ -618,7 +618,7 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE)
/*-------- ignore ------------------------------------------------------------*/
<Start>{IGNORE}/{BS}"("? { // do not search keywords, intrinsics... @TODO: complete list
<Start>{IGNORE}/{BS}"("? { // do not search keywords, intrinsics... TODO: complete list
codifyLines(yytext);
}
/*-------- inner construct ---------------------------------------------------*/
......
......@@ -594,7 +594,7 @@ void FTVHelp::generateTreeView()
#if QT_VERSION >= 200
t.setEncoding(QTextStream::Latin1);
#endif
t << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
t << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\">\n";
t << "<html><head>";
t << "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">\n";
t << "<title>";
......
......@@ -243,7 +243,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
file.close();
m_t << "<div align=\"center\">" << endl;
writeDotFile(fileName,s->relPath());
writeDotFile(fileName,s->relPath(),s->context());
m_t << "</div>" << endl;
if (Config_getBool("DOT_CLEANUP")) file.remove();
......@@ -270,7 +270,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
file.close();
m_t << "<div align=\"center\">" << endl;
writeMscFile(baseName,s->relPath());
writeMscFile(baseName,s->relPath(),s->context());
m_t << "</div>" << endl;
if (Config_getBool("DOT_CLEANUP")) file.remove();
......@@ -293,8 +293,16 @@ void HtmlDocVisitor::visit(DocInclude *inc)
case DocInclude::Include:
m_t << PREFRAG_START;
Doxygen::parserManager->getParser(inc->extension())
->parseCode(m_ci,inc->context(),inc->text().latin1(),
inc->isExample(),inc->exampleFile());
->parseCode(m_ci,
inc->context(),
inc->text().latin1(),
inc->isExample(),
inc->exampleFile(),
0, // fd
-1, // startLine
-1, // endLine
TRUE // inlineFragment
);
m_t << PREFRAG_END;
break;
case DocInclude::IncWithLines:
......@@ -303,7 +311,8 @@ void HtmlDocVisitor::visit(DocInclude *inc)
QFileInfo cfi( inc->file() );
FileDef fd( cfi.dirPath(), cfi.fileName() );
Doxygen::parserManager->getParser(inc->extension())
->parseCode(m_ci,inc->context(),
->parseCode(m_ci,
inc->context(),
inc->text().latin1(),
inc->isExample(),
inc->exampleFile(), &fd);
......@@ -814,7 +823,7 @@ void HtmlDocVisitor::visitPost(DocImage *img)
void HtmlDocVisitor::visitPre(DocDotFile *df)
{
if (m_hide) return;
writeDotFile(df->file(),df->relPath());
writeDotFile(df->file(),df->relPath(),df->context());
m_t << "<div align=\"center\">" << endl;
if (df->hasCaption())
{
......@@ -1148,7 +1157,8 @@ void HtmlDocVisitor::popEnabled()
delete v;
}
void HtmlDocVisitor::writeDotFile(const QString &fileName,const QString &relPath)
void HtmlDocVisitor::writeDotFile(const QString &fileName,const QString &relPath,
const QString &context)
{
QString baseName=fileName;
int i;
......@@ -1163,11 +1173,12 @@ void HtmlDocVisitor::writeDotFile(const QString &fileName,const QString &relPath
m_t << "<img src=\"" << relPath << baseName << "."
<< Config_getEnum("DOT_IMAGE_FORMAT") << "\" alt=\""
<< baseName << "\" border=\"0\" usemap=\"#" << mapName << "\">" << endl;
QString imap = getDotImageMapFromFile(fileName,outDir,relPath.data());
QString imap = getDotImageMapFromFile(fileName,outDir,relPath.data(),context);
m_t << "<map name=\"" << mapName << "\">" << imap << "</map>" << endl;
}
void HtmlDocVisitor::writeMscFile(const QString &fileName,const QString &relPath)
void HtmlDocVisitor::writeMscFile(const QString &fileName,const QString &relPath,
const QString &context)
{
QString baseName=fileName;
int i;
......@@ -1181,7 +1192,7 @@ void HtmlDocVisitor::writeMscFile(const QString &fileName,const QString &relPath
QString mapFile = fileName+".map";
m_t << "<img src=\"" << relPath << baseName << ".png\" alt=\""
<< baseName << "\" border=\"0\" usemap=\"#" << mapName << "\">" << endl;
QString imap = getMscImageMapFromFile(fileName,outDir,relPath.data());
QString imap = getMscImageMapFromFile(fileName,outDir,relPath.data(),context);
m_t << "<map name=\"" << mapName << "\">" << imap << "</map>" << endl;
}
......@@ -135,8 +135,8 @@ class HtmlDocVisitor : public DocVisitor
const QString &relPath,const QString &anchor,
const QString &tooltip = QString::null);
void endLink();
void writeDotFile(const QString &fileName,const QString &relPath);
void writeMscFile(const QString &fileName,const QString &relPath);
void writeDotFile(const QString &fileName,const QString &relPath,const QString &context);
void writeMscFile(const QString &fileName,const QString &relPath,const QString &context);
void pushEnabled();
void popEnabled();
......
......@@ -53,49 +53,6 @@
//}
static QCString escapeLabelName(LatexGenerator *g,const char *s)
{
QCString result;
const char *p=s;
char str[2];
str[1]=0;
char c;
while ((c=*p++))
{
switch (c)
{
case '%': result+="\\%"; break;
case '|': result+="\\tt{\"|}"; break;
case '!': result+="\"!"; break;
default: str[0]=c; g->docify(str); break;
}
}
return result;
}
static QCString escapeMakeIndexChars(LatexGenerator *g,QTextStream &t,const char *s)
{
QCString result;
const char *p=s;
char str[2];
str[1]=0;
char c;
while ((c=*p++))
{
switch (c)
{
case '!': t << "\"!"; break;
case '"': t << "\"\""; break;
case '@': t << "\"@"; break;
case '|': t << "\\tt{\"|}"; break;
case '[': t << "["; break;
case ']': t << "]"; break;
default: str[0]=c; g->docify(str); break;
}
}
return result;
}
LatexGenerator::LatexGenerator() : OutputGenerator()
{
......@@ -1070,9 +1027,10 @@ void LatexGenerator::endTitleHead(const char *fileName,const char *name)
t << "}" << endl;
if (name)
{
t << "\\label{" << fileName << "}\\index{"
<< escapeLabelName(this,name) << "@{";
escapeMakeIndexChars(this,t,name);
t << "\\label{" << fileName << "}\\index{";
escapeLabelName(name);
t << "@{";
escapeMakeIndexChars(name);
t << "}}" << endl;
}
if (Config_getBool("PDF_HYPERLINKS") && fileName)
......@@ -1141,16 +1099,20 @@ void LatexGenerator::startMemberDoc(const char *clname,
t << "\\index{";
if (clname)
{
t << escapeLabelName(this,clname) << "@{";
escapeMakeIndexChars(this,t,clname);
escapeLabelName(clname);
t << "@{";
escapeMakeIndexChars(clname);
t << "}!";
}
t << escapeLabelName(this,memname) << "@{";
escapeMakeIndexChars(this,t,memname);
escapeLabelName(memname);
t << "@{";
escapeMakeIndexChars(memname);
t << "}}" << endl;
t << "\\index{" << escapeLabelName(this,memname) << "@{";
escapeMakeIndexChars(this,t,memname);
t << "\\index{";
escapeLabelName(memname);
t << "@{";
escapeMakeIndexChars(memname);
t << "}";
if (clname)
{
......@@ -1223,13 +1185,17 @@ void LatexGenerator::addIndexItem(const char *s1,const char *s2)
{
if (s1)
{
t << "\\index{" << escapeLabelName(this,s1) << "@{";
escapeMakeIndexChars(this,t,s1);
t << "\\index{";
escapeLabelName(s1);
t << "@{";
escapeMakeIndexChars(s1);
t << "}";
if (s2)
{
t << "!" << escapeLabelName(this,s2) << "@{";
escapeMakeIndexChars(this,t,s2);
t << "!";
escapeLabelName(s2);
t << "@{";
escapeMakeIndexChars(s2);
t << "}";
}
t << "}";
......@@ -1651,5 +1617,43 @@ void LatexGenerator::endConstraintList()
t << "\\end{Desc}" << endl;
}
void LatexGenerator::escapeLabelName(const char *s)
{
const char *p=s;
char str[2];
str[1]=0;
char c;
while ((c=*p++))
{
switch (c)
{
case '%': t << "\\%"; break;
case '|': t << "\\tt{\"|}"; break;
case '!': t << "\"!"; break;
default: str[0]=c; docify(str); break;
}
}
}
void LatexGenerator::escapeMakeIndexChars(const char *s)
{
const char *p=s;
char str[2];
str[1]=0;
char c;
while ((c=*p++))
{
switch (c)
{
case '!': t << "\"!"; break;
case '"': t << "\"\""; break;
case '@': t << "\"@"; break;
case '|': t << "\\tt{\"|}"; break;
case '[': t << "["; break;
case ']': t << "]"; break;
default: str[0]=c; docify(str); break;
}
}
}
......@@ -230,6 +230,8 @@ class LatexGenerator : public OutputGenerator
private:
LatexGenerator(const LatexGenerator &);
LatexGenerator &operator=(const LatexGenerator &);
void escapeLabelName(const char *s);
void escapeMakeIndexChars(const char *s);
int col;
bool insideTabbing;
bool firstDescItem;
......
......@@ -85,10 +85,10 @@ static QCString addTemplateNames(const QCString &s,const QCString &n,const QCStr
static bool writeDefArgumentList(OutputList &ol,ClassDef *cd,
const QCString & /*scopeName*/,MemberDef *md)
{
LockingPtr<ArgumentList> defArgList=(md->isDocsForDefinition() && !md->isProperty()) ?
LockingPtr<ArgumentList> defArgList=(md->isDocsForDefinition()) ?
md->argumentList() : md->declArgumentList();
//printf("writeDefArgumentList `%s' isDocsForDefinition()=%d\n",md->name().data(),md->isDocsForDefinition());
if (defArgList==0)
if (defArgList==0 || md->isProperty())
{
return FALSE; // member has no function like argument list
}
......@@ -771,7 +771,7 @@ QCString MemberDef::anchor() const
{
result=m_impl->groupMember->anchor();
}
else
else if (getReference().isEmpty())
{
result.prepend("g");
}
......@@ -2693,6 +2693,7 @@ void MemberDef::writeEnumDeclaration(OutputList &typeDecl,
{
Doxygen::tagFile << " <member kind=\"enumeration\">" << endl;
Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl;
Doxygen::tagFile << " <anchorfile>" << convertToXML(getOutputFileBase()+Doxygen::htmlFileExtension) << "</anchorfile>" << endl;
Doxygen::tagFile << " <anchor>" << convertToXML(anchor()) << "</anchor>" << endl;
Doxygen::tagFile << " <arglist>" << convertToXML(argsString()) << "</arglist>" << endl;
Doxygen::tagFile << " </member>" << endl;
......@@ -2741,6 +2742,7 @@ void MemberDef::writeEnumDeclaration(OutputList &typeDecl,
{
Doxygen::tagFile << " <member kind=\"enumvalue\">" << endl;
Doxygen::tagFile << " <name>" << convertToXML(fmd->name()) << "</name>" << endl;
Doxygen::tagFile << " <anchorfile>" << convertToXML(getOutputFileBase()+Doxygen::htmlFileExtension) << "</anchorfile>" << endl;
Doxygen::tagFile << " <anchor>" << convertToXML(fmd->anchor()) << "</anchor>" << endl;
Doxygen::tagFile << " <arglist>" << convertToXML(fmd->argsString()) << "</arglist>" << endl;
Doxygen::tagFile << " </member>" << endl;
......
......@@ -26,7 +26,8 @@
static const int maxCmdLine = 40960;
static bool convertMapFile(QTextStream &t,const char *mapName,const QCString relPath)
static bool convertMapFile(QTextStream &t,const char *mapName,const QCString relPath,
const QString &context)
{
QFile f(mapName);
if (!f.open(IO_ReadOnly))
......@@ -66,7 +67,7 @@ static bool convertMapFile(QTextStream &t,const char *mapName,const QCString rel
{
// handle doxygen \ref tag URL reference
QCString *dest;
DocRef *df = new DocRef( (DocNode*) 0, url );
DocRef *df = new DocRef( (DocNode*) 0, url, context );
if (!df->ref().isEmpty())
{
if ((dest=Doxygen::tagDestinationDict[df->ref()])) t << *dest << "/";
......@@ -138,7 +139,7 @@ error:
}
QString getMscImageMapFromFile(const QString& inFile, const QString& outDir,
const QCString& relPath)
const QCString& relPath,const QString& context)
{
QString outFile = inFile + ".map";
......@@ -162,7 +163,7 @@ QString getMscImageMapFromFile(const QString& inFile, const QString& outDir,
QString result;
QTextOStream tmpout(&result);
convertMapFile(tmpout, outFile, relPath);
convertMapFile(tmpout, outFile, relPath, context);
QDir().remove(outFile);
QDir::setCurrent(oldDir);
......
......@@ -26,7 +26,7 @@ void writeMscGraphFromFile(const char *inFile,const char *outDir,
const char *outFile,MscOutputFormat format);
QString getMscImageMapFromFile(const QString& inFile, const QString& outDir,
const QCString& relPath);
const QCString& relPath,const QString& context);
#endif
......@@ -924,6 +924,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
addType( current );
current->name = yytext;
}
<CliPropertyType>"["{ID}"]" { // C++/CLI indexed property
current->args = yytext;
}
<CliPropertyType>"{" {
curlyCount=0;
//printf("event: '%s' '%s'\n",current->type.data(),current->name.data());
......
......@@ -10,31 +10,20 @@
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
* Brazilian Portuguese version by
* Fabio "FJTC" Jun Takada Chino <jun-chino at uol.com.br>
* Version: 1.4.6 (2006/06/26)
* Brazilian Portuguese translation version 20070914
* Maintainer: Fabio "FJTC" Jun Takada Chino <jun-chino at uol.com.br>
* Thanks to Jorge Ramos and others
*
* History:
* 20070914
* - "Translate me" fixed
* - Revision number changed from doxygen version to a date string.
* - History cleanup
* - Latex babel package fixed.
* 1.4.6
* - trCallerGraph() added.
* - trEnumerationValueDocumentation() added.
* 1.4.1
* - Method trOverloadText() added.
* 1.3.9
* - Updated to Doxygen 1.3.9
* 1.3.8
* - Updated to Doxygen 1.3.8
* 1.3.3:
* - Updated to Doxygen 1.3.3
* 1.3.2:
* - Updated to Doxygen 1.3.2
* 1.3:
* - Updated to Doxygen 1.3.x.
* 1.2.19:
* - Updated to Doxygen 1.2.19
* - Translation Review (Thanks to Jorge Ramos and others)
* - Small fixes in C output.
* - Latex generation support fixed (invalid package name).
* Previous history removed from this version.
*/
#ifndef TRANSLATOR_BR_H
#define TRANSLATOR_BR_H
......@@ -64,7 +53,7 @@ class TranslatorBrazilian : public Translator
*/
virtual QCString latexLanguageSupportCommand()
{
return "\\usepackage[spanish]{babel}";
return "\\usepackage[brazil]{babel}";
}
/*! return the language charset. This will be used for the HTML output */
......@@ -611,8 +600,8 @@ class TranslatorBrazilian : public Translator
case ClassDef::Struct: result+=" Estrutura "; break;
case ClassDef::Union: result+=" União "; break;
case ClassDef::Interface: result+=" Interface "; break;
case ClassDef::Protocol: result+=" Protocol "; break; // translate me!
case ClassDef::Category: result+=" Category "; break; // translate me!
case ClassDef::Protocol: result+=" Protocolo "; break;
case ClassDef::Category: result+=" Categoria "; break;
case ClassDef::Exception: result+=" Exceção "; break;
}
result+=(QCString)clName;
......@@ -769,8 +758,8 @@ class TranslatorBrazilian : public Translator
case ClassDef::Struct: result+="estrutura "; break;
case ClassDef::Union: result+="união "; break;
case ClassDef::Interface: result+="interface "; break;
case ClassDef::Protocol: result+="protocol "; break; // translate me!
case ClassDef::Category: result+="category "; break; // translate me!
case ClassDef::Protocol: result+="protocolo "; break;
case ClassDef::Category: result+="categoria "; break;
case ClassDef::Exception: result+="exceção "; break;
}
result+=" foi gerada a partir ";
......
......@@ -475,8 +475,8 @@ class TranslatorChinese : public Translator
case ClassDef::Struct: result+="结构"; break;
case ClassDef::Union: result+="联合"; break;
case ClassDef::Interface: result+="接口"; break;
case ClassDef::Protocol: result+="协议"; break; // translate me!
case ClassDef::Category: result+="分类"; break; // translate me!
case ClassDef::Protocol: result+="协议"; break;
case ClassDef::Category: result+="分类"; break;
case ClassDef::Exception: result+="异常"; break;
}
result+="参考";
......@@ -642,8 +642,8 @@ class TranslatorChinese : public Translator
case ClassDef::Struct: result+="结构"; break;
case ClassDef::Union: result+="联合"; break;
case ClassDef::Interface: result+="接口"; break;
case ClassDef::Protocol: result+="协议"; break; // translate me!
case ClassDef::Category: result+="分类"; break; // translate me!
case ClassDef::Protocol: result+="协议"; break;
case ClassDef::Category: result+="分类"; break;
case ClassDef::Exception: result+="异常"; break;
}
result+="的文档由以下文件生成:";
......
......@@ -18,6 +18,16 @@
#ifndef TRANSLATOR_KR_H
#define TRANSLATOR_KR_H
/* Korean translators
* doxygen-cvs
* * fly1004
* doxygen-1.5.3
* * Astromaker(http://ngps.net/)
* * gpgiki(http://www.gpgstudy.com/gpgiki/)
* doxygen-1.2.11
* * ryk */
/*!
When defining a translator class for the new language, follow
the description in the documentation. One of the steps says
......@@ -40,49 +50,11 @@
Translator class (by the local maintainer) when the localized
translator is made up-to-date again.
*/
/*
초기 작업자: ryk
TODO 주석을 보면 11/22/01, doxygen 버전 1.2.11까지 수고해 주신 것 같습니다.
최근 갱신자: Astromaker(http://ngps.net/)
gpgiki(http://www.gpgstudy.com/gpgiki/)
*/
//
// Update:
//
// 2004.12.22 (SooYoung Jung: jung5000 at gmail.com)
// - LaTex and RTF were not generated correctly.
// Corrected trRTFansicp and trRTFCharSet.
// It was wrong.
// - Adapting 1.3.9 and added "new since 1.3.9"
// - 해석이 잘못된 부분이 꾀나 있어 보임..
//
// 2005.02.11 (SooYoung Jung: jung5000 at gmail.com)
// - 실수로 추가되었던 decode 함수 삭제
//
// 2005.03.11 (SooYoung Jung: jung5000 at gmail.com)
// - Adapting 1.4.1 and checked using translator.py
// - 일부 번역안된 부분 수정 (Translated little bit of untranslated part)
// - Removed following
// Obsolete methods (should be removed, never used):
// virtual QCString trHeaderFilesDescription()
// virtual QCString trField(bool first_capital, bool singular)
// virtual QCString trPackageDocumentation()
// virtual QCString trSources()
// virtual QCString trReimplementedForInternalReasons()
// virtual QCString trInterfaces()
// virtual QCString trHeaderFiles()
// virtual QCString trBugsAndLimitations()
// virtual QCString trEnumerationValueDocumentation()
// virtual QCString trNoDescriptionAvailable()
// - Changed the base class to Translator from Translator_1_4_1
//
class TranslatorKorean : public TranslatorAdapter_1_4_6
class TranslatorKorean : public Translator
{
private:
protected:
friend class TranslatorAdapterBase;
virtual ~TranslatorKorean() {}
public:
......@@ -115,10 +87,8 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
{
// I'm not sure what this should be.
// When I figure it out, I'll update this.
//see http://www.ktug.or.kr/jsboard/read.php?table=operate&no=4422&page=1
return "\\usepackage{hfont}\n"
"\\usepackage{ucs}\n"
"\\usepackage[encapsulation]{CJK}\n";
// see http://www.ktug.or.kr/jsboard/read.php?table=operate&no=4422&page=1
return "\\usepackage{hfont}\n";
}
/*! return the language charset. This will be used for the HTML output */
......@@ -131,15 +101,15 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! used in the compound documentation before a list of related functions. */
virtual QCString trRelatedFunctions()
{ return "관련된 함수"; }
{ return "관련된 함수"; }
/*! subscript for the related functions. */
virtual QCString trRelatedSubscript()
{ return "관련주석"; }
{ return "(다음은 멤버 함수들이 아닙니다. 주의하십시오.)"; }
/*! header that is put before the detailed description of files, classes and namespaces. */
virtual QCString trDetailedDescription()
{ return "세부 사항"; }
{ return "상세한 설명"; }
/*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation()
......@@ -158,41 +128,41 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "멤버 변수 문서화";
return "필드 문서화";
}
else
{
return "멤버 변수 문서화";
return "멤버 데이타 문서화";
}
}
/*! this is the text of a link put after brief descriptions. */
virtual QCString trMore()
{ return "세부 사항 보기"; }
{ return "더 자세히 ..."; }
/*! put in the class documentation */
virtual QCString trListOfAllMembers()
{ return "전체 멤버 목록 보기"; }
{ return "모든 멤버 목록"; }
/*! used as the title of the "list of all members" page of a class */
virtual QCString trMemberList()
{ return "멤버(멤버함수, 멤버변수 등) 목록"; }
{ return "멤버 목록"; }
/*! this is the first part of a sentence that is followed by a class name */
virtual QCString trThisIsTheListOfAllMembers()
{ return "모든 멤버(멤버함수, 멤버변수 등) 목록 " ; }
{ return "다음에 대한 모든 멤버의 목록입니다 : "; }
/*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers()
{ return ", 상속받은 모든 멤버도 포함"; }
{ return " (모든 상속된 멤버들도 포함합니다.)"; }
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
virtual QCString trGeneratedAutomatically(const char *s)
{ QCString result="";
if (s) result+=(QCString)s+"에 ";
result += "소스 코드로 부터 Doxygen에 의해 자동으로 생성";
{ QCString result="소스 코드로부터 ";
if (s) result+=s+(QCString)"를 위해 ";
result+="Doxygen에 의해 자동으로 생성됨.";
return result;
}
......@@ -206,7 +176,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn()
{ return "에서 정의"; }
{ return "다음에서 정의됨 :"; }
// quick reference sections
......@@ -218,31 +188,50 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy()
{ return "클래스 계통도"; } // "클래스 조직" or "클래스 분류체계"
{ return "클래스 계통도"; }
/*! This is put above each page as a link to the list of annotated classes */
virtual QCString trCompoundList()
{
//Alternate text: "혼합 목록", "합성(집합) 명단(리스트)"
return "복합구조(클래스, 구조체, 공용체)";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "데이타 구조";
}
else
{
return "클래스 목록";
}
}
/*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList()
{ return "파일 목록"; } //"파일 목록", "파일 리스트"
{ return "파일 목록"; }
/*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers()
{
// Alternate text: "합성(집합) 명단(멤버들)"
return "복합구조(클래스, 구조체, 공용체) 멤버";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "데이타 필드";
}
else
{
return "클래스 멤버";
}
}
/*! This is put above each page as a link to all members of files. */
virtual QCString trFileMembers()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "전역";
}
else
{
return "파일 멤버";
}
}
/*! This is put above each page as a link to all related pages. */
virtual QCString trRelatedPages()
......@@ -258,66 +247,115 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription()
{ return "이 상속 목록은 알파벳 순으로 정렬되어있습니다. (완전하지는 않음)";}
{ return "이 상속 목록은 완전하진 않지만 알파벳순으로 대략적으로 정렬되어있습니다.:";
}
/*! This is an introduction to the list with all files. */
virtual QCString trFileListDescription(bool extractAll)
{
QCString result="다음은 간략한 설명을 가진 ";
QCString result="다음은 ";
if (!extractAll) result+="문서화된 ";
result+="모든 파일에 대한 목록입니다.";
result+="모든 파일에 대한 목록입니다. (간략한 설명만을 보여줍니다) :";
return result;
}
/*! This is an introduction to the annotated compound list. */
virtual QCString trCompoundListDescription()
{
return "다음은 간략한 설명을 가진 클래스, "
"구조체, 공용체, 인터페이스의 목록입니다.";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "다음은 데이타 구조들입니다. (간략한 설명만을 보여줍니다) :";
}
else
{
return "다음은 클래스, 구조체, 공용체 그리고 인터페이스들입니다. "
"(간략한 설명만을 보여줍니다) :";
}
}
/*! This is an introduction to the page with all class members. */
virtual QCString trCompoundMembersDescription(bool extractAll)
{
QCString result="다음은 문서화된 모든 클래스, 구조체, 공용체 멤버에 대한 목록입니다. ";
QCString result="다음은 ";
if (!extractAll)
{
result+="문서화된 ";
}
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="모든 구조체와 공용체의 필드들";
}
else
{
result+="모든 클래스 멤버들";
}
result+="의 목록입니다. ";
result+="링크 된 클래스 멤버는 ";
if (extractAll)
result+="그 멤버에 대한 클래스 문서화로 갑니다.";
if (!extractAll)
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="각 필드들은 해당 필드에 대한 구조체와 공용체의 "
"문서화 페이지의 링크를 가지고 있습니다. :";
}
else
{
result+="각 멤버들은 해당 멤버에 대한 클래스의 문서화 페이지의 "
"링크를 가지고 있습니다. :";
}
}
else
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="각 필드들은 해당 필드가 속해 있는 구조체와 공용체에 "
"대한 링크를 가지고 있습니다. :";
}
else
result+="이하로 속한 클래스:";
{
result+="각 멤버들은 해당 멤버가 속해 있는 클래스에 대한 "
"링크를 가지고 있습니다. :";
}
}
return result;
}
/*! This is an introduction to the page with all file members. */
virtual QCString trFileMembersDescription(bool extractAll)
{
QCString result="다음은 문서화된 모든 파일에 대한 목록입니다. ";
QCString result="다음은 ";
if (!extractAll) result+="문서화된 ";
result+="링크 된 파일 멤버는 ";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="모든 함수, 변수, 매크로, 열거형, 타입정의들";
}
else
{
result+="파일 멤버들";
}
result+="의 목록입니다. ";
result+="각 항목은 ";
if (extractAll)
result+="그 멤버에 대한 파일 문서화로 갑니다.";
result+="그들이 속한 파일 페이지의 링크를 가지고 있습니다. :";
else
result+="그들이 속해있는 파일로 갑니다.";
result+="그들에 대한 문서화 페이지의 링크를 가지고 있습니다. :";
return result;
}
/*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription()
{ return "다음은 모든 예제의 목록입니다."; }
{ return "다음은 모든 예제들의 목록입니다.:"; }
/*! This is an introduction to the page with the list of related pages */
virtual QCString trRelatedPagesDescription()
{ return "다음은 모든 관련된 문서화 페이지의 목록입니다."; }
{ return "다음은 관련된 모든 문서화 페이지들의 목록입니다.:"; }
/*! This is an introduction to the page with the list of class/file groups */
virtual QCString trModulesDescription()
{ return "다음은 모든 모듈의 목록입니다."; }
{ return "다음은 모든 모듈들의 목록입니다.:"; }
// index titles (the project name is prepended for these)
......@@ -335,13 +373,22 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* class hierarchy.
*/
virtual QCString trHierarchicalIndex()
{ return "분류체계 색인"; }
{ return "계통도 색인"; }
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
*/
virtual QCString trCompoundIndex()
{ return "복합구조(클래스, 구조체, 공용체) 색인"; }
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "데이타 구조 색인";
}
else
{
return "클래스 색인";
}
}
/*! This is used in LaTeX as the title of the chapter with the
* list of all files.
......@@ -359,7 +406,16 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* the documentation of all classes, structs and unions.
*/
virtual QCString trClassDocumentation()
{ return "클래스 문서화"; }
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "데이타 구조 문서화";
}
else
{
return "클래스 문서화";
}
}
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all files.
......@@ -381,13 +437,13 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
{ return "참고서"; }
{ return "참조 매뉴얼"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
*/
virtual QCString trDefines()
{ return "매크로, #define"; }
{ return "매크로"; }
/*! This is used in the documentation of a file as a header before the
* list of function prototypes
......@@ -399,13 +455,13 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* list of typedefs
*/
virtual QCString trTypedefs()
{ return "타입 정의"; }
{ return "타입정의"; }
/*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
virtual QCString trEnumerations()
{ return "열거형"; }
{ return "열거형 타입"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) functions
......@@ -423,13 +479,13 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* list of (global) variables
*/
virtual QCString trEnumerationValues()
{ return "열거형 "; }
{ return "열거형 멤버"; }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
virtual QCString trDefineDocumentation()
{ return "#define 문서화"; }
{ return "매크로 문서화"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes
......@@ -441,7 +497,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* of documentation blocks for typedefs
*/
virtual QCString trTypedefDocumentation()
{ return "타입 정의 문서화"; }
{ return "타입정의 문서화"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
......@@ -468,7 +524,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "데이 구조";
return "데이 구조";
}
else
{
......@@ -481,27 +537,27 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trGeneratedAt(const char *date,const char *projName)
{
QCString result="";
if (projName) result+=(QCString)projName+" 문서화. ";
result += "생성일시 : " +(QCString)date;
QCString result=(QCString)"생성시간 : "+date;
if (projName) result+=(QCString)", 프로젝트명 : "+projName;
result+=(QCString)", 생성자 : ";
return result;
}
/*! This is part of the sentence used in the standard footer of each page.
*/
virtual QCString trWrittenBy()
{
return "작성자: ";
return "작성자 : ";
}
/*! this text is put before a class diagram */
virtual QCString trClassDiagram(const char *clName)
{
return (QCString)clName+"에 대한 상속 도표";
return (QCString)clName+"에 대한 상속 다이어그램 : ";
}
/*! this text is generated when the \\internal command is used. */
virtual QCString trForInternalUseOnly()
{ return "내부 사용만을 위해"; }
{ return "내부적적으로만 사용하기 위해."; }
/*! this text is generated when the \\warning command is used. */
virtual QCString trWarning()
......@@ -521,7 +577,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! this text is generated when the \\sa command is used. */
virtual QCString trSeeAlso()
{ return "참"; }
{ return "참"; }
/*! this text is generated when the \\param command is used. */
virtual QCString trParameters()
......@@ -533,7 +589,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy()
{ return "에 의해 생성된"; }
{ return "다음에 의해 생성됨 : "; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990307
......@@ -541,14 +597,14 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList()
{ return "namespace 목록"; }
{ return "네임스페이스 목록"; }
/*! used as an introduction to the namespace list */
virtual QCString trNamespaceListDescription(bool extractAll)
{
QCString result="다음은 간략한 설명을 가진 ";
QCString result="다음은 ";
if (!extractAll) result+="문서화된 ";
result+="namespace의 목록입니다.";
result+="모든 네임스페이스에 대한 목록입니다. (간략한 설명만을 보여줍니다) :";
return result;
}
......@@ -566,7 +622,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
{ return "friend, 그리고 관련된 함수 문서화"; }
{ return "Friend, 그리고 관련된 함수 문서화"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
......@@ -577,8 +633,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
ClassDef::CompoundType compType,
bool isTemplate)
{
QCString result=(QCString)clName+" ";
if (isTemplate) result+=" 템플릿";
QCString result=(QCString)clName;
switch(compType)
{
case ClassDef::Class: result+=" 클래스"; break;
......@@ -606,30 +661,30 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
virtual QCString trNamespaceReference(const char *namespaceName)
{
QCString result=namespaceName;
result+=" namespace 참조";
result+=" 네임스페이스 참조";
return result;
}
virtual QCString trPublicMembers()
{ return "public 메소드"; }
{ return "Public 멤버 함수"; }
virtual QCString trPublicSlots()
{ return "public slots"; }
{ return "Public Slots"; }
virtual QCString trSignals()
{ return "신호"; }
{ return "Signals"; }
virtual QCString trStaticPublicMembers()
{ return "static public 메소드"; }
{ return "정적 Public 멤버 함수"; }
virtual QCString trProtectedMembers()
{ return "protected 메소드"; }
{ return "Protected 멤버 함수"; }
virtual QCString trProtectedSlots()
{ return "protected slots"; }
{ return "Protected Slots"; }
virtual QCString trStaticProtectedMembers()
{ return "static protected 메소드"; }
{ return "정적 Protected 멤버 함수"; }
virtual QCString trPrivateMembers()
{ return "private 메소드"; }
{ return "Private 멤버 함수"; }
virtual QCString trPrivateSlots()
{ return "private slots"; }
{ return "Private Slots"; }
virtual QCString trStaticPrivateMembers()
{ return "static private 메소드"; }
{ return "정적 Private 멤버 함수"; }
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
......@@ -650,7 +705,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
if (i<numEntries-2) // not the fore last entry
result+=", ";
else // the fore last entry
result+=", ";
result+=", ";
}
}
return result;
......@@ -661,7 +716,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trInheritsList(int numEntries)
{
return trWriteList(numEntries)+" 들을 상속하다.";
return trWriteList(numEntries)+"를(을) 상속했습니다.";
}
/*! used in class documentation to produce a list of super classes,
......@@ -677,7 +732,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trReimplementedFromList(int numEntries)
{
return trWriteList(numEntries)+"로부터 재구현되었습니다.";
return trWriteList(numEntries)+"(으)로부터 재구현되었습니다.";
}
/*! used in member documentation blocks to produce a list of
......@@ -690,32 +745,31 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! This is put above each page as a link to all members of namespaces. */
virtual QCString trNamespaceMembers()
{ return "namespace 멤버"; }
{ return "네임스페이스 멤버"; }
/*! This is an introduction to the page with all namespace members */
virtual QCString trNamespaceMemberDescription(bool extractAll)
{
QCString result="다음은 모든 ";
QCString result="다음은 ";
if (!extractAll) result+="문서화된 ";
result+="namespace 멤버의 목록입니다. ";
result+="모든 네임스페이스 멤버들의 목록입니다. ";
if (extractAll)
result+="각 멤버에 대한 문서화의 ";
result+="각 멤버들은 해당 멤버의 네임스페이스 문서화 페이지의 링크를 가지고 있습니다. :";
else
result+="속해있는 namespace의 ";
result+="링크도 있습니다.";
result+="각 멤버들은 해당 멤버가 속한 네임스페이스 페이지의 링크를 가지고 있습니다. :";
return result;
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
virtual QCString trNamespaceIndex()
{ return "namespace 색인"; }
{ return "네임스페이스 색인"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
virtual QCString trNamespaceDocumentation()
{ return "namespace 문서화"; }
{ return "네임스페이스 문서화"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
......@@ -725,7 +779,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* namespaces in a file.
*/
virtual QCString trNamespaces()
{ return "Namespaces"; }
{ return "네임스페이스"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
......@@ -749,9 +803,9 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
case ClassDef::Category: result+="카테고리"; break;
case ClassDef::Exception: result+="예외"; break;
}
result+="을 위한 문서화는 다음의 파일";
result+="에 대한 문서화 페이지는 다음의 파일";
if (!single) result+="들";
result+="로부터 생성되었습니다.";
result+="로부터 생성되었습니다.:";
return result;
}
......@@ -786,11 +840,11 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
virtual QCString trDefinedAtLineInSourceFile()
{
return "@1 파일의 @0 번째 라인에서 정의";
return "@1 파일의 @0 번째 라인에서 정의되었습니다.";
}
virtual QCString trDefinedInSourceFile()
{
return "@0 파일에서 정의";
return "@0 파일에서 정의되었습니다.";
}
//////////////////////////////////////////////////////////////////////////
......@@ -799,7 +853,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
virtual QCString trDeprecated()
{
return "Deprecated";
return "잘못된 코드";
}
//////////////////////////////////////////////////////////////////////////
......@@ -809,7 +863,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! this text is put before a collaboration diagram */
virtual QCString trCollaborationDiagram(const char *clName)
{
return (QCString)clName+"에 대한 협력 도표:";
return (QCString)clName+"에 대한 협력 다이어그램:";
}
/*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName)
......@@ -824,22 +878,22 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode()
{
return "이 파일에 대한 소스 코드 보기";
return "이 파일의 소스 코드 페이지로 가기";
}
/*! Used in the file sources to point to the corresponding documentation. */
virtual QCString trGotoDocumentation()
{
return "이 파일의 문서화 기";
return "이 파일의 문서화 페이지로 가기";
}
/*! Text for the \\pre command */
virtual QCString trPrecondition()
{
return "전제 조건";
return "전제조건";
}
/*! Text for the \\post command */
virtual QCString trPostcondition()
{
return "후미 조건"; //Alternate: "후치조건"
return "후미조건";
}
/*! Text for the \\invariant command */
virtual QCString trInvariant()
......@@ -849,7 +903,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! Text shown before a multi-line variable/enum initialization */
virtual QCString trInitialValue()
{
return "초기값";
return "초기값:";
}
/*! Text used the source code in the file index */
virtual QCString trCode()
......@@ -858,15 +912,15 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
}
virtual QCString trGraphicalHierarchy()
{
return "도표로된 클래스 분류체계"; // "도표의 클래스 조직"
return "그래픽컬한 클래스 계통도";
}
virtual QCString trGotoGraphicalHierarchy()
{
return "도표로된 클래스 분류체계 보기"; // "도표의 클래스 조직으로 가시오"
return "그래픽컬한 클래스 계통도 페이지로 가기";
}
virtual QCString trGotoTextualHierarchy()
{
return "문자로된 클래스 분류체계 보기"; // "문자의 클래스 조직으로 가시오"
return "텍스트 형식의 클래스 계통도 페이지로 가기";
}
virtual QCString trPageIndex()
{
......@@ -879,11 +933,11 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
virtual QCString trNote()
{
return "노트";
return "주의";
}
virtual QCString trPublicTypes()
{
return "public 타입";
return "Public 타입";
}
virtual QCString trPublicAttribs()
{
......@@ -893,36 +947,36 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
}
else
{
return "public 속성";
return "Public 속성";
}
}
virtual QCString trStaticPublicAttribs()
{
return "static public 속성";
return "정적 Public 속성";
}
virtual QCString trProtectedTypes()
{
return "protected 타입";
return "Protected 타입";
}
virtual QCString trProtectedAttribs()
{
return "protected 속성";
return "Protected 속성";
}
virtual QCString trStaticProtectedAttribs()
{
return "static protected 속성";
return "정적 Protected 속성";
}
virtual QCString trPrivateTypes()
{
return "private 타입";
return "Private 타입";
}
virtual QCString trPrivateAttribs()
{
return "private 속성";
return "Private 속성";
}
virtual QCString trStaticPrivateAttribs()
{
return "static private 속성";
return "정적 Private 속성";
}
//////////////////////////////////////////////////////////////////////////
......@@ -932,12 +986,12 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! Used as a marker that is put before a \\todo item */
virtual QCString trTodo()
{
return "Todo";
return "할일";
}
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
return "Todo 목록";
return "할일 목록";
}
//////////////////////////////////////////////////////////////////////////
......@@ -946,11 +1000,11 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
virtual QCString trReferencedBy()
{
return "참조하는 곳";
return "다음에 의해서 참조됨 : ";
}
virtual QCString trRemarks()
{
return "설명";
return "Remarks";
}
virtual QCString trAttention()
{
......@@ -958,12 +1012,11 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
}
virtual QCString trInclByDepGraph()
{
return " 이 그래프는 이 파일을 직접 또는 간접적으로"
"포함(include)함을 나타낸다:";
return "이 그래프는 이 파일을 직/간접적으로 include 하는 파일들을 보여줍니다.:";
}
virtual QCString trSince()
{
return "언제부터: "; // TODO: Need to be translated. -ryk11/22/01.
return "Since";
}
//////////////////////////////////////////////////////////////////////////
......@@ -973,38 +1026,34 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! title of the graph legend page */
virtual QCString trLegendTitle()
{
return "범례";
return "그래프 범례";
}
/*! page explaining how the dot graph's should be interpreted
* The %A in the text below are to prevent link to classes called "A".
*/
virtual QCString trLegendDocs()
{
// TODO: Need to be translated. -ryk11/22/01.
return
"Doxygen에 의해 생성된 도표를 보기위한 설명입니다.<p>\n"
//"This page explains how to interpret the graphs that are generated "
//"by doxygen.<p>\n"
"다음의 예제를 참고하세요.\n"
//"Consider the following example:\n"
"이 페이지는 doxygen에 의해 생성된 그래프들을 이해하는 방법을 설명합니다.<p>\n"
"다음의 예제를 참고하십시오.:\n"
"\\code\n"
"/*! Invisible class because of truncation */\n"
"/*! 생략되었기 때문에 보이지 않는 클래스 */\n"
"class Invisible { };\n\n"
"/*! Truncated class, inheritance relation is hidden */\n"
"/*! Truncated 클래스, 상속관계가 숨겨짐 */\n"
"class Truncated : public Invisible { };\n\n"
"/* Class not documented with doxygen comments */\n"
"/* doxygen 주석에 의해서 문서화되지 않는 클래스 */\n"
"class Undocumented { };\n\n"
"/*! Class that is inherited using public inheritance */\n"
"/*! public 상속을 통해서 상속된 클래스 */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! A template class */\n"
"/*! 템플릿 클래스 */\n"
"template<class T> class Templ { };\n\n"
"/*! Class that is inherited using protected inheritance */\n"
"/*! protected 상속을 통해서 상속된 클래스 */\n"
"class ProtectedBase { };\n\n"
"/*! Class that is inherited using private inheritance */\n"
"/*! private 상속을 통해서 상속된 클래스 */\n"
"class PrivateBase { };\n\n"
"/*! Class that is used by the Inherited class */\n"
"/*! 상속되어진 클래스에 의해 (멤버로) 사용되어지는 클래스 */\n"
"class Used { };\n\n"
"/*! Super class that inherits a number of other classes */\n"
"/*! 다른 클래스들을 상속하는 슈퍼 클래스 */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
......@@ -1015,47 +1064,28 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
"설정 파일의 MAX_DOT_GRAPH_HEIGHT 플래그가 240으로 설정되었다면 다음의 그래프가 나올 것이다."
//"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file "
//"is set to 240 this will result in the following graph:"
"<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"만약 설정파일에서 \\c MAX_DOT_GRAPH_HEIGHT 태그가 "
"240으로 설정되었다면, 다음과 같은 그래프가 출력될 것입니다. :"
"<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n"
"상자들은 다음을 뜻한다.\n"
//"The boxes in the above graph have the following meaning:\n"
"위 그래프의 박스들은 다음과 같은 의미를 가집니다. :\n"
"<ul>\n"
"<li>%검은 상자는 그래프를 산출한 구조체나 클래스를 말한다.\n"
//"<li>%A filled black box represents the struct or class for which the "
//"graph is generated.\n"
"<li>%검은선으로된 상자는 문서화된 구조체나 클래스를 표시한다.\n"
//"<li>%A box with a black border denotes a documented struct or class.\n"
"<li>%회색선으로된 상자는 문서화되지 않은 구조체나 클래스를 표시한다.\n"
//"<li>%A box with a grey border denotes an undocumented struct or class.\n"
"<li>%빨간선으로된 상자는 모든 상속/containment 관계를 보이지 않은 문서화된 구조체나 클래스를 나타낸다. "
"지정된 경계안에 들어가지 않으면 그래프는 짤려진다.\n"
//"<li>%A box with a red border denotes a documented struct or class for"
//"which not all inheritance/containment relations are shown. %A graph is "
//"truncated if it does not fit within the specified boundaries.\n"
"<li>%A 회색으로 채워진 박스는 이 그래프를 생성해 낸 구조체나 클래스를 의미합니다.\n"
"<li>%A 검은색 테두리의 박스는 문서화된 구조체나 클래스를 의미합니다.\n"
"<li>%A 회색 테두리의 박스는 문서화되지 않은 구조체나 클래스를 의미합니다.\n"
"<li>%A 빨간색 테두리의 박스는 모든 상속이나 포함관계가 보여지지 않는 "
"구조체나 클래스를 의미합니다."
"%A 만약 그래프가 지정된 경계내에 맞지 않으면, 그래프가 잘려집니다.\n"
"</ul>\n"
"화살표는 다음을 뜻한다.\n"
//"The arrows have the following meaning:\n"
"화살표들은 다음과 같은 의미를 가집니다. :\n"
"<ul>\n"
"<li>%어두운 파란 화살표는 두 클래스간의 public 상속관계를 나타낸다.\n"
//"<li>%A dark blue arrow is used to visualize a public inheritance "
//"relation between two classes.\n"
"<li>%어두운 녹색 화살표는 protected 상속관계를 나타낸다.\n"
//"<li>%A dark green arrow is used for protected inheritance.\n"
"<li>%어두운 빨강 화살표는 private 상속관계를 나타낸다.\n"
//"<li>%A dark red arrow is used for private inheritance.\n"
"<li>%밝은 자주색 화살표는 클래스에 의해 포함되더나 사용된 클래스를 나타낸다. "
"이 화살표의 라벨은 접근 가능한 변수명을 나타낸다.\n"
//"<li>%A purple dashed arrow is used if a class is contained or used "
//"by another class. The arrow is labeled with the variable(s) "
//"through which the pointed class or struct is accessible.\n"
"<li>%밝은 노랑색 화살표는 템플릿 인스턴스와 템플릿 클래스를 나타낸다. "
"이 화살표의 라벨은 그 인스턴스의 템플릿 매개변수를 나타낸다.\n"
//"<li>%A yellow dashed arrow denotes a relation between a template instance and "
//"the template class it was instantiated from. The arrow is labeled with "
//"the template parameters of the instance.\n"
"<li>%A 어두운 파랑색 화살표는 두 클래스들 간에 public 상속이 있음을 의미합니다.\n"
"<li>%A 어두운 연두색 화살표는 protected 상속이 있음을 의미합니다.\n"
"<li>%A 어두운 빨간색 화살표는 private 상속이 있음을 의미합니다.\n"
"<li>%A 보라색 점선 화살표는 다른 클래스에 의해 포함되거나 사용되어짐을 의미합니다. "
"화살표의 라벨은 화살표가 가리키는 클래스나 구조체로 접근하는 변수명(들)으로 붙습니다.\n"
"<li>%A 노란색 점선 화살표는 템플릿 인스턴스와 템프릿 클래스에 대한 관계를 의미합니다. "
"화살표의 라벨은 인스턴스의 템플릿 파라메터로 붙습니다.\n"
"</ul>\n";
}
/*! text for the link to the legend page */
......@@ -1086,7 +1116,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! Used as a section header for KDE-2 IDL methods */
virtual QCString trDCOPMethods()
{
return "DCOP 메소드"; // TODO: Need to be translated. -ryk11/22/01.
return "DCOP 멤버 함수";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1113,7 +1143,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "데이터 구조";
return "데이타 구조";
}
else
{
......@@ -1123,7 +1153,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! Used as the title of a Java package */
virtual QCString trPackage(const char *name)
{
return (QCString)"패키지 "+name;
return name+(QCString)" 패키지";
}
/*! Title of the package index page */
virtual QCString trPackageList()
......@@ -1133,7 +1163,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! The description of the package index page */
virtual QCString trPackageListDescription()
{
return "다음은 간략한 설명을 가진 패키지이다.";
return "다음은 패키지들입니다. (가능한한 간략한 설명만을 보여줍니다) :";
}
/*! The link name in the Quick links header for each page */
virtual QCString trPackages()
......@@ -1207,16 +1237,16 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! Used as header RTF general index */
virtual QCString trRTFGeneralIndex()
{
return "인덱스";
return "색인";
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trClass(bool, bool singular)
virtual QCString trClass(bool first_capital, bool singular)
{
QCString result("클래스");
QCString result((first_capital ? "클래스" : "클래스"));
if (!singular) result+="들";
return result;
}
......@@ -1225,9 +1255,9 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trFile(bool, bool singular)
virtual QCString trFile(bool first_capital, bool singular)
{
QCString result("파일");
QCString result((first_capital ? "파일" : "파일"));
if (!singular) result+="들";
return result;
}
......@@ -1238,18 +1268,18 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trNamespace(bool first_capital, bool singular)
{
QCString result((first_capital ? "Namespace" : "namespace"));
if (!singular) result+="s";
return result; // TODO: Need to be translated. -ryk11/22/01.
QCString result((first_capital ? "네임스페이스" : "네임스페이스"));
if (!singular) result+="";
return result;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trGroup(bool, bool singular)
virtual QCString trGroup(bool first_capital, bool singular)
{
QCString result("그룹");
QCString result((first_capital ? "그룹" : "그룹"));
if (!singular) result+="들";
return result;
}
......@@ -1258,9 +1288,9 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trPage(bool, bool singular)
virtual QCString trPage(bool first_capital, bool singular)
{
QCString result("페이지");
QCString result((first_capital ? "페이지" : "페이지"));
if (!singular) result+="들";
return result;
}
......@@ -1282,8 +1312,8 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trGlobal(bool first_capital, bool singular)
{
QCString result((first_capital ? "Global" : "global"));
if (!singular) result+="s";
QCString result((first_capital ? "전역" : "전역"));
if (!singular) result+="";
return result;
}
......@@ -1293,9 +1323,9 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! This text is generated when the \\author command is used and
* for the author section in man pages. */
virtual QCString trAuthor(bool, bool singular)
virtual QCString trAuthor(bool first_capital, bool singular)
{
QCString result("작성자");
QCString result((first_capital ? "작성자" : "작성자"));
if (!singular) result+="들";
return result;
}
......@@ -1308,7 +1338,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trReferences()
{
return "참조";
return "다음을 참조함 : ";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1320,7 +1350,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trImplementedFromList(int numEntries)
{
return trWriteList(numEntries)+" 구현.";
return trWriteList(numEntries)+" 구현.";
}
/*! used in member documentation blocks to produce a list of
......@@ -1328,7 +1358,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trImplementedInList(int numEntries)
{
return trWriteList(numEntries)+"에 구현되었다.";
return trWriteList(numEntries)+"에서 구현되었습니다.";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1352,7 +1382,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trDeprecatedList()
{
return "Deprecated 목록";
return "잘못된 코드 목록";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1380,35 +1410,35 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trPackageTypes()
{
return "패키지 타입";
return "패키지 타입";
}
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
virtual QCString trPackageMembers()
{
return "패키지 함수";
return "패키지 함수";
}
/*! Used as a heading for a list of static Java class functions with
* package scope.
*/
virtual QCString trStaticPackageMembers()
{
return "정적 패키지 함수";
return "정적 패키지 함수";
}
/*! Used as a heading for a list of Java class variables with package
* scope.
*/
virtual QCString trPackageAttribs()
{
return "패키지 속성";
return "패키지 속성";
}
/*! Used as a heading for a list of static Java class variables with
* package scope.
*/
virtual QCString trStaticPackageAttribs()
{
return "정적 패키지 속성";
return "정적 패키지 속성";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1425,7 +1455,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! Put in front of the call graph for a function. */
virtual QCString trCallGraph()
{
return "다음은 이 함수에 대한 호출 그래프입니다:";
return "이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1438,14 +1468,14 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trSearchForIndex()
{
return "검색: "; //"Search for";
return "검색";
}
/*! This string is used as the title for the page listing the search
* results.
*/
virtual QCString trSearchResultsTitle()
{
return "검색 결과";//"Search Results";
return "검색 결과";
}
/*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found.
......@@ -1459,20 +1489,16 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
{
if (numDocuments==0)
{
//return "Sorry, no documents matching your query.";
return "죄송합니다. 질의와 일치하는 문서가 없습니다.";
return "죄송합니다. 질의에 일치하는 문서가 없습니다.";
}
else if (numDocuments==1)
{
//return "Found <b>1</b> document matching your query.";
return "질의와 일치하는 <b>1</b>개의 문서를 찾았습니다.";
return "질의에 일치하는 <b>1</b> 개의 문서를 찾았습니다.";
}
else
{
//return "Found <b>$num</b> documents matching your query. "
// "Showing best matches first.";
return "질의와 일치하는 <b>$num</b>개의 문서들을 찾았습니다. "
"처음에 나오는 것이 가장 일치하는 문서입니다.";
return "질의에 일치하는 <b>$num</b> 개의 문서를 찾았습니다. "
"가장 많이 일치하는 문서를 가장 먼저 보여줍니다.";
}
}
/*! This string is put before the list of matched words, for each search
......@@ -1502,16 +1528,16 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* hierarchy.
*/
virtual QCString trDirIndex()
{ return "디렉토리 계도"; }
{ return "디렉토리 계도"; }
/*! This is used as the name of the chapter containing the documentation
* of the directories.
*/
virtual QCString trDirDocumentation()
{ return "디렉토리 문서"; }
{ return "디렉토리 문서"; }
/*! This is used as the title of the directory index and also in the
* Quick links of a HTML page, to link to the directory hierarchy.
* Quick links of an HTML page, to link to the directory hierarchy.
*/
virtual QCString trDirectories()
{ return "디렉토리"; }
......@@ -1520,9 +1546,7 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
* and the fact that it is sorted alphabetically per level
*/
virtual QCString trDirDescription()
{ return "이 디렉토리 계층은 알파벳 순으로 정렬되어있습니다. (완전하지는 않음)";
{ return "이 디렉토리 목록은 완전하진 않지만, (대략적으로) 알파벳순으로 정렬되어있습니다.:";
}
/*! This returns the title of a directory page. The name of the
......@@ -1534,12 +1558,13 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
/*! This returns the word directory with or without starting capital
* (\a first_capital) and in sigular or plural form (\a singular).
*/
virtual QCString trDir(bool /*first_capital*/, bool /*singular*/)
virtual QCString trDir(bool first_capital, bool singular)
{
return "디렉터";
QCString result((first_capital ? "디렉토리" : "디렉토리"));
if (singular) result+=""; else result+="들";
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.4.1
//////////////////////////////////////////////////////////////////////////
......@@ -1549,14 +1574,27 @@ class TranslatorKorean : public TranslatorAdapter_1_4_6
*/
virtual QCString trOverloadText()
{
return "이것은 편리를 위해 제공되는 오버로드 멤버 함수이다, "
"어떤 아규먼트(argument)가 그것을 수용할때 위 함수는 다르다.";
return "이 함수는 편의 제공하기 위해 오버로드된 멤버 함수입니다. "
"위의 함수와 틀린 점은 단지 받아들이는 아규먼트(argument)가 다르다는 것입니다.";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.4.6
//////////////////////////////////////////////////////////////////////////
/*! This is used to introduce a caller (or called-by) graph */
virtual QCString trCallerGraph()
{
return "이 함수를 호출하는 함수들에 대한 그래프입니다.:";
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
virtual QCString trEnumerationValueDocumentation()
{ return "열거형 문서화"; }
};
#endif
......@@ -826,11 +826,17 @@ int isAccessibleFrom(Definition *scope,FileDef *fileScope,Definition *item)
Definition *itemScope=item->getOuterScope();
if (itemScope==scope ||
(item->definitionType()==Definition::TypeMember &&
itemScope && itemScope->definitionType()==Definition::TypeClass &&
scope->definitionType()==Definition::TypeClass &&
((ClassDef*)scope)->isAccessibleMember((MemberDef *)item)
if (
itemScope==scope || // same thing
(item->definitionType()==Definition::TypeMember && // a member
itemScope && itemScope->definitionType()==Definition::TypeClass && // of a class
scope->definitionType()==Definition::TypeClass && // accessible
((ClassDef*)scope)->isAccessibleMember((MemberDef *)item) // from scope
) ||
(item->definitionType()==Definition::TypeClass && // a nested class
itemScope && itemScope->definitionType()==Definition::TypeClass && // inside a base
scope->definitionType()==Definition::TypeClass && // class of scope
((ClassDef*)scope)->isBaseClass((ClassDef*)itemScope,TRUE)
)
)
{
......@@ -915,7 +921,11 @@ int isAccessibleFromWithExpScope(Definition *scope,FileDef *fileScope,
QCString key(40+explicitScopePart.length());
key.sprintf("%p:%p:%p:%s",scope,fileScope,item,explicitScopePart.data());
static QDict<void> visitedDict;
if (visitedDict.find(key)) return -1; // already looked at this
if (visitedDict.find(key))
{
//printf("Already visited!\n");
return -1; // already looked at this
}
visitedDict.insert(key,(void *)0x8);
//printf(" <isAccessibleFromWithExpScope(%s,%s,%s)\n",scope?scope->name().data():"<global>",
......
......@@ -875,7 +875,7 @@ void XmlDocVisitor::visitPost(DocInternalRef *)
void XmlDocVisitor::visitPre(DocCopy *c)
{
if (m_hide) return;
m_t << "<copydoc link=\"" << c->link() << "\">";
m_t << "<copydoc link=\"" << convertToXML(c->link()) << "\">";
}
void XmlDocVisitor::visitPost(DocCopy *)
......
......@@ -539,6 +539,7 @@ static void stripQualifiers(QCString &typeStr)
if (typeStr.stripPrefix("static "));
else if (typeStr.stripPrefix("virtual "));
else if (typeStr.stripPrefix("volatile "));
else if (typeStr=="virtual") typeStr="";
else done=TRUE;
}
}
......@@ -563,6 +564,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
// enum values are written as part of the enum
if (md->memberType()==MemberDef::EnumValue) return;
if (md->isHidden()) return;
if (md->name().at(0)=='@') return; // anonymous member
// group members are only visible in their group
//if (def->definitionType()!=Definition::TypeGroup && md->getGroupDef()) return;
......@@ -1012,6 +1014,8 @@ static void writeListOfAllMembers(ClassDef *cd,QTextStream &t)
for (mii.toFirst();(mi=mii.current());++mii)
{
MemberDef *md=mi->memberDef;
if (md->name().at(0)!='@') // skip anonymous members
{
Protection prot = mi->prot;
Specifier virt=md->virtualness();
t << " <member refid=\"" << md->getOutputFileBase() << "_1" <<
......@@ -1040,6 +1044,7 @@ static void writeListOfAllMembers(ClassDef *cd,QTextStream &t)
}
}
}
}
t << " </listofallmembers>" << endl;
}
......
......@@ -53,7 +53,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="$(QTDIR)\include;..\src;."
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;LIBICONV_STATIC"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;LIBICONV_STATIC;NODEBUG"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
......@@ -73,7 +73,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(QTDIR)\lib\qt-mt336.lib $(QTDIR)\lib\qtmain.lib iconv.lib"
AdditionalDependencies="$(QTDIR)\lib\qt-mt.lib $(QTDIR)\lib\qtmain.lib iconv.lib ws2_32.lib winmm.lib imm32.lib"
OutputFile="..\bin\Debug\doxywizard.exe"
LinkIncremental="2"
GenerateManifest="false"
......@@ -139,7 +139,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="$(QTDIR)\include;..\src;."
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;LIBICONV_STATIC"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;LIBICONV_STATIC;NODEBUG"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
......@@ -158,7 +158,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(QTDIR)\lib\qt-mt336.lib $(QTDIR)\lib\qtmain.lib iconv.lib"
AdditionalDependencies="$(QTDIR)\lib\qt-mt.lib $(QTDIR)\lib\qtmain.lib iconv.lib ws2_32.lib winmm.lib imm32.lib"
OutputFile="..\bin\doxywizard.exe"
LinkIncremental="1"
GenerateManifest="false"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment