From b4f20f70abd663b3d8e5889e1fe582dfe980b7a2 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 20 Apr 2008 08:30:56 +0000 Subject: Release-1.5.5-20080420 --- INSTALL | 4 +- Makefile.in | 9 +- README | 4 +- addon/doxywizard/Makefile.in | 6 + configure | 14 +- doc/commands.doc | 15 +- doc/config.doc | 47 +- doc/doxywizard_usage.doc | 2 +- doc/language.doc | 8 +- doc/maintainers.txt | 2 +- doc/translator_report.txt | 142 +-- packages/rpm/doxygen-nodoxywizard.spec.in | 71 -- packages/rpm/doxygen.spec.in | 14 +- src/classdef.cpp | 22 +- src/classdef.h | 1 + src/config.l | 88 +- src/defargs.l | 2 +- src/defgen.cpp | 2 +- src/diagram.cpp | 4 +- src/docparser.cpp | 7 +- src/dot.cpp | 1 + src/doxygen.cpp | 24 +- src/filedef.cpp | 2 +- src/formula.cpp | 5 +- src/groupdef.cpp | 51 - src/index.cpp | 1 - src/language.cpp | 2 +- src/memberdef.cpp | 14 +- src/membergroup.cpp | 29 +- src/perlmodgen.cpp | 2 +- src/scanner.l | 36 +- src/translator_fi.h | 1959 ++++++++++++++++++++++++----- src/translator_fr.h | 2 +- src/util.cpp | 4 + src/vhdldocgen.cpp | 4 +- src/vhdlscanner.l | 24 +- src/xmlgen.cpp | 2 +- 37 files changed, 1931 insertions(+), 695 deletions(-) delete mode 100644 packages/rpm/doxygen-nodoxywizard.spec.in diff --git a/INSTALL b/INSTALL index a0cee86..41e76c7 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.5.5-20080325 +DOXYGEN Version 1.5.5-20080420 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (25 March 2008) +Dimitri van Heesch (20 April 2008) diff --git a/Makefile.in b/Makefile.in index 3d299c3..8f472c1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -63,9 +63,6 @@ install: doxywizard_install cat doc/doxytag.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > doxytag.1 $(INSTTOOL) -m 644 doxytag.1 $(INSTALL)/$(MAN1DIR)/doxytag.1 rm doxytag.1 - cat doc/doxywizard.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > doxywizard.1 - $(INSTTOOL) -m 644 doxywizard.1 $(INSTALL)/$(MAN1DIR)/doxywizard.1 - rm doxywizard.1 install_docs: $(INSTTOOL) -d $(DOCDIR) @@ -118,7 +115,7 @@ rpm: dist tar -rvf $(DISTDIR).src.tar $(DISTDIR)/packages/rpm/doxygen.spec rm -rf $(DISTDIR) gzip -9v $(DISTDIR).src.tar - rpmbuild -ta $(DISTDIR).src.tar.gz + rpmbuild -ta %%WITHDOXYWIZARD%% $(DISTDIR).src.tar.gz rpmsrc: dist gzip -df $(DISTDIR).src.tar.gz @@ -129,7 +126,7 @@ rpmsrc: dist tar -rvf $(DISTDIR).src.tar $(DISTDIR)/packages/rpm/doxygen.spec rm -rf $(DISTDIR) gzip -9v $(DISTDIR).src.tar - rpmbuild -ts $(DISTDIR).src.tar.gz + rpmbuild -ts %%WITHDOXYWIZARD%% $(DISTDIR).src.tar.gz rpmbinary: dist gzip -df $(DISTDIR).src.tar.gz @@ -140,7 +137,7 @@ rpmbinary: dist tar -rvf $(DISTDIR).src.tar $(DISTDIR)/packages/rpm/doxygen.spec rm -rf $(DISTDIR) gzip -9v $(DISTDIR).src.tar - rpmbuild -tb $(DISTDIR).src.tar.gz + rpmbuild -tb %%WITHDOXYWIZARD%% $(DISTDIR).src.tar.gz ctags: diff --git a/README b/README index 148a35e..05034c9 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.5.5_20080325 +DOXYGEN Version 1.5.5_20080420 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) (25 March 2008) +Dimitri van Heesch (dimitri@stack.nl) (20 April 2008) diff --git a/addon/doxywizard/Makefile.in b/addon/doxywizard/Makefile.in index d63fad6..3861d09 100644 --- a/addon/doxywizard/Makefile.in +++ b/addon/doxywizard/Makefile.in @@ -41,8 +41,14 @@ clean: Makefile.doxywizard distclean: clean $(RM) Makefile.doxywizard version.cpp config.l config.h portable.h portable.cpp +MAN1DIR = man/man1 + install: $(INSTTOOL) -d $(INSTALL)/bin $(INSTTOOL) -m 755 ../../bin/doxywizard $(INSTALL)/bin + $(INSTTOOL) -d $(INSTALL)/$(MAN1DIR) + cat ../../doc/doxywizard.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > doxywizard.1 + $(INSTTOOL) -m 644 doxywizard.1 $(INSTALL)/$(MAN1DIR)/doxywizard.1 + rm doxywizard.1 FORCE: diff --git a/configure b/configure index 42f697f..409cb36 100755 --- a/configure +++ b/configure @@ -20,7 +20,7 @@ doxygen_version_minor=5 doxygen_version_revision=5 #NOTE: Setting version_mmn to "NO" will omit mmn info from the package. -doxygen_version_mmn=20080325 +doxygen_version_mmn=20080420 bin_dirs=`echo $PATH | sed -e "s/:/ /g"` @@ -537,11 +537,7 @@ fi mkdir -p packages mkdir -p packages/rpm -if test "$f_wizard" = YES; then - cat spec.tmp ./packages/rpm/doxygen.spec.in > ./packages/rpm/doxygen.spec -else - cat spec.tmp ./packages/rpm/doxygen-nodoxywizard.spec.in > ./packages/rpm/doxygen.spec -fi +cat spec.tmp ./packages/rpm/doxygen.spec.in > ./packages/rpm/doxygen.spec rm -f spec.tmp @@ -633,7 +629,11 @@ EOF fi echo "" >> $DST fi - cat $SRC >> $DST + if test $f_wizard = YES; then + sed -e "s/%%WITHDOXYWIZARD%% /--with doxywizard /g" $SRC >> $DST + else + sed -e "s/%%WITHDOXYWIZARD%% //g" $SRC >> $DST + fi echo " Created $DST from $SRC..." done diff --git a/doc/commands.doc b/doc/commands.doc index e241e13..f61022a 100644 --- a/doc/commands.doc +++ b/doc/commands.doc @@ -54,7 +54,7 @@ documentation: \refitem cmdcode \\code \refitem cmdcond \\cond \refitem cmdcopybrief \\copybrief -\refitem cmdcopydefails \\copydetails +\refitem cmdcopydetails \\copydetails \refitem cmdcopydoc \\copydoc \refitem cmddate \\date \refitem cmddef \\def @@ -152,6 +152,7 @@ documentation: \refitem cmdtest \\test \refitem cmdthrow \\throw \refitem cmdtodo \\todo +\refitem cmdtparam \\tparam \refitem cmdtypedef \\typedef \refitem cmdunion \\union \refitem cmduntil \\until @@ -1087,7 +1088,7 @@ ALIASES = "english=\if english" \ \addindex \\param Starts a parameter description for a function parameter with name - \. Followed by a description of the parameter. + \, followed by a description of the parameter. The existence of the parameter is checked and a warning is given if the documentation of this (or any other) parameter is missing or not present in the function declaration or definition. @@ -1117,6 +1118,16 @@ void memcpy(void *dest, const void *src, size_t n); example.
+\section cmdtparam \\tparam { description } + + \addindex \\tparam + Starts a template parameters for a class or function template parameter + with name \, followed by a description of the + template parameter. + + Otherwise similar to \ref cmdparam "\\cmdparam". + +
\section cmdpost \\post { description of the postcondition } \addindex \\post diff --git a/doc/config.doc b/doc/config.doc index 2e4f063..c47e7bb 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -113,6 +113,7 @@ followed by the descriptions of the tags grouped by category. \refitem cfg_file_version_filter FILE_VERSION_FILTER \refitem cfg_filter_patterns FILTER_PATTERNS \refitem cfg_filter_source_files FILTER_SOURCE_FILES +\refitem cfg_formula_fontsize FORMULA_FONTSIZE \refitem cfg_full_path_names FULL_PATH_NAMES \refitem cfg_generate_autogen_def GENERATE_AUTOGEN_DEF \refitem cfg_generate_buglist GENERATE_BUGLIST @@ -147,6 +148,7 @@ followed by the descriptions of the tags grouped by category. \refitem cfg_html_header HTML_HEADER \refitem cfg_html_output HTML_OUTPUT \refitem cfg_html_stylesheet HTML_STYLESHEET +\refitem cfg_idl_property_support IDL_PROPERTY_SUPPORT \refitem cfg_ignore_prefix IGNORE_PREFIX \refitem cfg_image_path IMAGE_PATH \refitem cfg_include_graph INCLUDE_GRAPH @@ -445,6 +447,16 @@ followed by the descriptions of the tags grouped by category. 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_idl_property_support +
\c IDL_PROPERTY_SUPPORT
+ \addindex IDL_PROPERTY_SUPPORT + For Microsoft's IDL there are propget and propput attributes to indicate getter + and setter methods for a property. Setting this option to \c YES (the default) + will make doxygen to replace the get and set methods by a property in the + documentation. This will only work if the methods are indeed getting or + setting a simple type. If this is not the case, or you want to show the + methods anyway, you should set this option to \c NO. + \anchor cfg_distribute_group_doc
\c DISTRIBUTE_GROUP_DOC
\addindex DISTRIBUTE_GROUP_DOC @@ -1038,14 +1050,14 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn" \anchor cfg_referenced_by_relation
\c REFERENCED_BY_RELATION
\addindex REFERENCED_BY_RELATION - If the \c REFERENCED_BY_RELATION tag is set to \c YES (the default) + If the \c REFERENCED_BY_RELATION tag is set to \c YES then for each documented function all documented functions referencing it will be listed. \anchor cfg_references_relation
\c REFERENCES_RELATION
\addindex REFERENCES_RELATION - If the \c REFERENCES_RELATION tag is set to \c YES (the default) + If the \c REFERENCES_RELATION tag is set to \c YES then for each documented function all documented entities called/used by that function will be listed. @@ -1353,6 +1365,15 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn" used to set the initial width (in pixels) of the frame in which the tree is shown. +\anchor cfg_formula_fontsize +
\c FORMULA_FONTSIZE
+ \addindex FORMULA_FONTSIZE + Use this tag to change the font size of Latex formulas included + as images in the HTML documentation. The default is 10. + when you change the font size after a successful doxygen run you need + to manually remove any form_*.png images from the HTML + output directory to force them to be regenerated. + \section latex_output LaTeX related options \anchor cfg_generate_latex @@ -1815,6 +1836,26 @@ TAGFILES = file1=loc1 "file2 = loc2" ... Graphviz, a graph visualization toolkit from AT\&T and Lucent Bell Labs. The other options in this section have no effect if this option is set to \c NO (the default) + +\anchor cfg_dot_fontname +
\c DOT_FONTNAME
+ \addindex DOT_FONTNAME + By default doxygen will write a font called \c FreeSans.ttf to the output + directory and reference it in all dot files that doxygen generates. This + font does not include all possible unicode characters however, so when you need + these (or just want a differently looking font) you can specify the font name + using \c DOT_FONTNAME. You need need to make sure dot is able to find the font, + which can be done by putting it in a standard location or by setting the + \c DOTFONTPATH environment variable or by setting \c DOT_FONTPATH to the directory + containing the font. + +\anchor cfg_dot_fontpath +
\c DOT_FONTPATH
+ \addindex DOT_FONTPATH + By default doxygen will tell dot to use the output directory to look for the + \c FreeSans.ttf font (which doxygen will put there itself). If you specify a + different font using \c DOT_FONTNAME you can set the path where dot + can find it using this tag.
\c DOT_FONTNAME
\addindex DOT_FONTNAME @@ -1927,7 +1968,7 @@ TAGFILES = file1=loc1 "file2 = loc2" ... \anchor cfg_dot_graph_max_nodes
\c DOT_GRAPH_MAX_NODES
\addindex DOT_GRAPH_MAX_NODES - The \c MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of + The \c DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes that will be shown in the graph. If the number of nodes in a graph becomes larger than this value, doxygen will truncate the graph, which is visualized by representing a node as a red box. Note that doxygen if the number diff --git a/doc/doxywizard_usage.doc b/doc/doxywizard_usage.doc index 1980bb5..13bbfb1 100644 --- a/doc/doxywizard_usage.doc +++ b/doc/doxywizard_usage.doc @@ -81,7 +81,7 @@ produce. For HTML and LaTeX there are additional options. Doxygen can produce a number of diagrams. Using the diagrams tab you can select which ones to generate. For most diagrams the dot tool of the GraphViz package -is needed (if you use the binary packages for Mac or Windows this +is needed (if you use the binary packages for MacOSX this tool is already included).

Expert dialog

diff --git a/doc/language.doc b/doc/language.doc index 8a16c32..9526b0b 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -119,9 +119,9 @@ when the translator was updated. Finnish - Olli Korhonen - olli.korhonen lost at cyberspace - obsolete + Antti Laine + antti.a.laine at tut dot fi + up-to-date French @@ -307,7 +307,7 @@ when the translator was updated. \hline English & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\ \hline - Finnish & Olli Korhonen & {\tt\tiny olli.korhonen lost@cyberspace} & obsolete \\ + Finnish & Antti Laine & {\tt\tiny antti.a.laine@tut.fi} & up-to-date \\ \hline French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.5.4 \\ \hline diff --git a/doc/maintainers.txt b/doc/maintainers.txt index dff66d7..b90bd8e 100644 --- a/doc/maintainers.txt +++ b/doc/maintainers.txt @@ -46,7 +46,7 @@ TranslatorEnglish Dimitri van Heesch: dimitri@stack.nl TranslatorFinnish -Olli Korhonen: olli.korhonen lost@cyberspace +Antti Laine: antti.a.laine@tut.fi TranslatorFrench Xavier Outhier: xouthier@yahoo.fr diff --git a/doc/translator_report.txt b/doc/translator_report.txt index ebbe39a..1e0c1b9 100644 --- a/doc/translator_report.txt +++ b/doc/translator_report.txt @@ -9,7 +9,7 @@ German, Greek, Hungarian, Indonesian, Italian, Japanese (+En), Korean Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. -Of them, 12 translators are up-to-date, 22 translators are based on +Of them, 13 translators are up-to-date, 21 translators are based on some adapter class, and 2 are English based. ---------------------------------------------------------------------- @@ -25,6 +25,7 @@ still may be some details listed even for them: TranslatorCzech TranslatorDutch TranslatorEnglish + TranslatorFinnish TranslatorGerman TranslatorItalian TranslatorKorean @@ -60,7 +61,6 @@ must be implemented to become up-to-date: TranslatorRomanian 1.4.1 24 methods to implement TranslatorPortuguese 1.3.3 35 methods to implement TranslatorSlovak 1.2.18 44 methods to implement - TranslatorFinnish obsolete 118 methods to implement ---------------------------------------------------------------------- The following translator classes derive directly from the @@ -215,144 +215,6 @@ TranslatorDanish (TranslatorAdapter_1_5_4) 22 methods to implement virtual QCString trSubprogramDocumentation() -TranslatorFinnish (TranslatorEnglish) 118 methods to implement ------------------ - - Implements 98 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trPublicAttribs() - virtual QCString trPropertyDocumentation() - virtual QCString trMember(bool first_capital, bool singular) - virtual QCString trPageIndex() - virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) - virtual QCString trOverloadText() - virtual QCString trSince() - virtual QCString trEventDocumentation() - virtual QCString trDirIndex() - virtual QCString trRemarks() - virtual QCString trProtectedTypes() - virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single) - virtual QCString trFile(bool first_capital, bool singular) - virtual QCString trPackages() - virtual QCString trInclByDepGraph() - virtual QCString trRTFansicp() - virtual QCString trImplementedFromList(int numEntries) - virtual QCString trSubprograms() - virtual QCString trCollaborationDiagram(const char * clName) - virtual QCString trPackageListDescription() - virtual QCString trDefineValue() - virtual QCString trPackageMembers() - virtual QCString trStaticPackageMembers() - virtual QCString trModulesListDescription(bool extractAll) - virtual QCString trModulesList() - virtual QCString trDirDocumentation() - virtual QCString trPackage(const char * name) - virtual QCString trPublicTypes() - virtual QCString trSearchResultsTitle() - virtual QCString trDirectories() - virtual QCString trTest() - virtual QCString trTypeConstraints() - virtual QCString trInvariant() - virtual QCString trDeprecatedList() - virtual QCString trGraphicalHierarchy() - virtual QCString trPostcondition() - virtual QCString trGotoGraphicalHierarchy() - virtual QCString trPageAbbreviation() - virtual QCString trMemberFunctionDocumentationFortran() - virtual QCString trDirDescription() - virtual QCString trGotoSourceCode() - virtual QCString trStaticPackageAttribs() - virtual QCString trCompoundListDescriptionFortran() - virtual QCString trCallGraph() - virtual QCString trStaticPublicAttribs() - virtual QCString trCode() - virtual QCString trTodo() - virtual QCString trTypeDocumentation() - virtual QCString trModuleReference(const char * namespaceName) - virtual QCString trModulesMemberDescription(bool extractAll) - virtual QCString trRTFCharSet() - virtual QCString trModulesMembers() - virtual QCString trInitialValue() - virtual QCString trAlphabeticalList() - virtual QCString trBug() - virtual QCString trNote() - virtual QCString trStaticPrivateAttribs() - virtual QCString trAttention() - virtual QCString trGotoTextualHierarchy() - virtual QCString trModulesIndex() - virtual QCString trPackageTypes() - virtual QCString trMainPage() - virtual QCString trDeprecated() - virtual QCString trCompoundListFortran() - virtual QCString trClass(bool first_capital, bool singular) - virtual QCString trImplementedInList(int numEntries) - virtual QCString trPrivateTypes() - virtual QCString trDataTypes() - virtual QCString trInclDepGraph(const char * fName) - virtual QCString trSearchResults(int numDocuments) - virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool single) - virtual QCString trNamespaces() - virtual QCString trPrivateAttribs() - virtual QCString idLanguageCharset() - virtual QCString trDefinedInSourceFile() - virtual QCString trConstructorDocumentation() - virtual QCString trLegend() - virtual QCString trPackageAttribs() - virtual QCString trSearchMatches() - virtual QCString trClasses() - virtual QCString trProtectedAttribs() - virtual QCString trLegendTitle() - virtual QCString trCompoundIndexFortran() - virtual QCString trSubprogram(bool first_capital, bool singular) - virtual QCString trEvents() - virtual QCString trGlobal(bool first_capital, bool singular) - virtual QCString trDCOPMethods() - virtual QCString latexLanguageSupportCommand() - virtual QCString trBugList() - virtual QCString trRTFGeneralIndex() - virtual QCString trCallerGraph() - virtual QCString trNamespace(bool first_capital, bool singular) - virtual QCString trTestList() - virtual QCString trPrecondition() - virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate) - virtual QCString trReturnValues() - virtual QCString trReferences() - virtual QCString trType(bool first_capital, bool singular) - virtual QCString trAuthor(bool first_capital, bool singular) - virtual QCString trLegendDocs() - virtual QCString trModule(bool first_capital, bool singular) - virtual QCString trPackageList() - virtual QCString trTodoList() - virtual QCString trPage(bool first_capital, bool singular) - virtual QCString trCompoundMembersFortran() - virtual QCString trSourceFile(QCString & filename) - virtual QCString trGotoDocumentation() - virtual QCString trDefinedAtLineInSourceFile() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - virtual QCString trSearchForIndex() - virtual QCString trAll() - virtual QCString trSubprogramDocumentation() - virtual QCString trRTFTableOfContents() - virtual QCString trGroup(bool first_capital, bool singular) - virtual QCString trReferencedBy() - virtual QCString trStaticProtectedAttribs() - virtual QCString trProperties() - - Obsolete methods (should be removed, never used): - - QCString trHeaderFilesDescription() - QCString trReimplementedForInternalReasons() - QCString trFiles() - virtual QCString updateNeededMessage() - QCString trHeaderFiles() - QCString trAuthors() - QCString trBugsAndLimitations() - QCString trNoDescriptionAvailable() - - TranslatorFrench (TranslatorAdapter_1_5_4) 22 methods to implement ---------------- diff --git a/packages/rpm/doxygen-nodoxywizard.spec.in b/packages/rpm/doxygen-nodoxywizard.spec.in deleted file mode 100644 index 79a36bc..0000000 --- a/packages/rpm/doxygen-nodoxywizard.spec.in +++ /dev/null @@ -1,71 +0,0 @@ -%define name doxygen - -%define contentdir /var/www -%define suexec_caller doxygen -%define buildroot /var/tmp/%{name}-%{version}-%{revision}root - -Summary: A documentation system for C/C++. -Name: doxygen -Version: %{version} -Release: %{revision} -URL: http://www.stack.nl/~dimitri/doxygen/index.html -Vendor: Dimitri van Heesch -License: GNU General Public License -Group: Development/Tools -Source: %{name}-%{version}_%{revision}.src.tar.gz -BuildRoot: %{buildroot} -BuildPrereq: libstdc++-devel >= 2.96, /usr/bin/perl, /usr/bin/latex, /usr/bin/dvips -Prereq: /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv, libstdc++ >= 2.96 -Provides: doxygen = %{mmn} - -%description -Doxygen can generate an online class browser (in HTML) and/or a -reference manual (in LaTeX) from a set of documented source files. The -documentation is extracted directly from the sources. Doxygen can -also be configured to extract the code structure from undocumented -source files. - -%prep -%setup -q -n %{name}-%{version}_%{revision} -./configure --prefix $RPM_BUILD_ROOT/usr - -%build -make %{?_smp_mflags} -make %{?_smp_mflags} pdf - -%install -rm -rf $RPM_BUILD_ROOT -make install - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) - -%doc README LICENSE LANGUAGE.HOWTO examples ./latex/*.pdf -%doc /usr/man/man1/doxygen.1.gz -%doc /usr/man/man1/doxytag.1.gz - -%{_bindir}/doxygen -%{_bindir}/doxytag - -%changelog -* Sun Nov 18 2007 Kevin McBride 1.5.4 -- consolidated manual package in lieu of --excludedocs flag for rpm --install - -* Fri Oct 21 2005 Kevin McBride 1.4.5 -- made .spec file compatible with tmake - -* Mon Oct 10 2005 Kevin McBride 1.4.5 -- fixed versioning bugs. - -* Tue Oct 4 2005 Kevin McBride 1.4.5 -- added obsoletes and proides sections. - -* Sun Sep 20 2005 Kevin McBride 1.4.4 -- modified rpm spec file for Fedora Core acceptance criteria. - -* Sun Aug 7 2005 Kevin McBride 1.4.4 -- created initial rpm spec file for doxygen-1.4.4 - diff --git a/packages/rpm/doxygen.spec.in b/packages/rpm/doxygen.spec.in index 4fb50e1..39edc42 100644 --- a/packages/rpm/doxygen.spec.in +++ b/packages/rpm/doxygen.spec.in @@ -1,5 +1,7 @@ %define name doxygen +# optionally pass --with-doxywizard to rpmbuild + %define contentdir /var/www %define suexec_caller doxygen %define buildroot /var/tmp/%{name}-%{version}-%{revision}root @@ -14,7 +16,7 @@ License: GNU General Public License Group: Development/Tools Source: %{name}-%{version}_%{revision}.src.tar.gz BuildRoot: %{buildroot} -BuildPrereq: libstdc++-devel >= 2.96, /usr/bin/perl, /usr/bin/latex, /usr/bin/dvips +BuildPrereq: libstdc++-devel >= 2.96, /usr/bin/perl, /usr/bin/latex, /usr/bin/dvips, /usr/bin/gs Prereq: /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv, libstdc++ >= 2.96 Provides: doxygen = %{mmn} @@ -25,6 +27,7 @@ documentation is extracted directly from the sources. Doxygen can also be configured to extract the code structure from undocumented source files. +%if %{?_with_doxywizard:1}%{!?_with_doxywizard:0} %package doxywizard Group: Development/Libraries Summary: GUI Interface for doxygen. @@ -42,10 +45,11 @@ source files. This is the GUI interface for doxygen. It requires qt and X11 to install. +%endif %prep %setup -q -n %{name}-%{version}_%{revision} -./configure --with-doxywizard --prefix $RPM_BUILD_ROOT/usr +./configure %{?_with_doxywizard} --prefix $RPM_BUILD_ROOT/usr %build make %{?_smp_mflags} @@ -68,12 +72,18 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/doxygen %{_bindir}/doxytag +%if %{?_with_doxywizard:1}%{!?_with_doxywizard:0} %files doxywizard %defattr(-,root,root) %{_bindir}/doxywizard %doc /usr/man/man1/doxywizard.1.gz +%endif %changelog +* Fri Apr 18 2008 Kenneth Porter 1.5.5-1 +- consolidate with and without doxywizard spec files with rpm macro +- add gs BuildPrereq + * Sun Nov 18 2007 Kevin McBride 1.5.4 - consolidated manual package in lieu of --excludedocs flag for rpm --install diff --git a/src/classdef.cpp b/src/classdef.cpp index f2edcda..5f4f391 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -1075,6 +1075,12 @@ void ClassDef::writeClassDiagrams(OutputList &ol) if (ok && bcd) { ClassDef *cd=bcd->classDef; + + // use the class name but with the template arguments as given + // in the inheritance relation + QCString displayName = insertTemplateSpecifierInScope( + cd->name(),bcd->templSpecifiers); + if (cd->isLinkable()) { if (!Config_getString("GENERATE_TAGFILE").isEmpty()) @@ -1098,11 +1104,11 @@ void ClassDef::writeClassDiagrams(OutputList &ol) ol.writeObjectLink(cd->getReference(), cd->getOutputFileBase(), 0, - cd->displayName()+bcd->templSpecifiers); + displayName); } else { - ol.docify(cd->displayName()); + ol.docify(displayName); } } else @@ -3384,3 +3390,15 @@ bool ClassDef::isUsedOnly() const return m_impl->usedOnly; } +void ClassDef::reclassifyMember(MemberDef *md,MemberDef::MemberType t) +{ + md->setMemberType(t); + MemberList *ml = m_impl->memberLists.first(); + while (ml) + { + ml->remove(md); + ml = m_impl->memberLists.next(); + } + insertMember(md); +} + diff --git a/src/classdef.h b/src/classdef.h index fbac227..69e7368 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -314,6 +314,7 @@ class ClassDef : public Definition void writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup); void writeDetailedDescription(OutputList &ol,const QCString &pageType,bool exampleFlag); void writeQuickMemberLinks(OutputList &ol,MemberDef *md) const; + void reclassifyMember(MemberDef *md,MemberDef::MemberType t); bool visited; diff --git a/src/config.l b/src/config.l index 7f116c2..7d30e6f 100644 --- a/src/config.l +++ b/src/config.l @@ -961,7 +961,7 @@ void Config::check() //} QCString &warnFormat = Config_getString("WARN_FORMAT"); - if (warnFormat.isEmpty()) + if (warnFormat.stripWhiteSpace().isEmpty()) { warnFormat="$file:$line $text"; } @@ -969,18 +969,15 @@ void Config::check() { if (warnFormat.find("$file")==-1) { - config_err("Error: warning format does not contain a $file tag!\n"); - exit(1); + config_err("Warning: warning format does not contain a $file tag!\n"); } if (warnFormat.find("$line")==-1) { - config_err("Error: warning format does not contain a $line tag!\n"); - exit(1); + config_err("Warning: warning format does not contain a $line tag!\n"); } if (warnFormat.find("$text")==-1) { - config_err("Error: wanring format foes not contain a $text tag!\n"); - exit(1); + config_err("Warning: warning format foes not contain a $text tag!\n"); } } @@ -1248,6 +1245,28 @@ void Config::check() examplePatternList.append("*"); } + // if no output format is enabled, warn the user + if (!Config_getBool("GENERATE_HTML") && + !Config_getBool("GENERATE_LATEX") && + !Config_getBool("GENERATE_MAN") && + !Config_getBool("GENERATE_RTF") && + !Config_getBool("GENERATE_XML") && + !Config_getBool("GENERATE_PERLMOD") && + !Config_getBool("GENERATE_RTF") && + !Config_getBool("GENERATE_AUTOGEN_DEF") && + Config_getString("GENERATE_TAGFILE").isEmpty() + ) + { + config_err("Warning: No output formats selected! Set at least one of the main GENERATE_* options to YES.\n"); + } + + // you can't generate HTMLHELP without HTML enabled! + if (!Config_getBool("GENERATE_HTML") && + Config_getBool("GENERATE_HTMLHELP")) + { + config_err("Warning: GENERATE_HTMLHELP=YES requires GENERATE_HTML=YES.\n"); + } + if (Config_getBool("HAVE_DOT")) { QCString curFontPath = Config_getString("DOT_FONTPATH"); @@ -1299,28 +1318,6 @@ void Config::check() annotationFromBrief.append("the"); } -#if 0 - if (Config_getBool("CALL_GRAPH") && - (!Config_getBool("SOURCE_BROWSER") || !Config_getBool("REFERENCES_RELATION")) - ) - { - config_err("Warning: turning on CALL_GRAPH requires turning " - "SOURCE_BROWSER and\nREFERENCES_RELATION on as well!\n" - "Assuming SOURCE_BROWSER=YES and REFERENCES_RELATION=YES\n"); - Config_getBool("SOURCE_BROWSER")=TRUE; - Config_getBool("REFERENCES_RELATION")=TRUE; - } - if (Config_getBool("CALLER_GRAPH") && - (!Config_getBool("SOURCE_BROWSER") || !Config_getBool("REFERENCED_BY_RELATION")) - ) - { - config_err("Warning: turning on CALLER_GRAPH requires turning " - "SOURCE_BROWSER and\nREFERENCEDBY_RELATION on as well!\n" - "Assuming SOURCE_BROWSER=YES and REFERENCED_BY_RELATION=YES\n"); - Config_getBool("SOURCE_BROWSER")=TRUE; - Config_getBool("REFERENCED_BY_RELATION")=TRUE; - } -#endif // some default settings for vhdl if (Config_getBool("OPTIMIZE_OUTPUT_VHDL") && (Config_getBool("INLINE_INHERITED_MEMB") || @@ -1743,6 +1740,15 @@ void Config::create() "instead of private inheritance when no explicit protection keyword is present. \n", FALSE ); + cb = addBool( "IDL_PROPERTY_SUPPORT", + "For Microsoft's IDL there are propget and propput attributes to indicate getter \n" + "and setter methods for a property. Setting this option to YES (the default) \n" + "will make doxygen to replace the get and set methods by a property in the \n" + "documentation. This will only work if the methods are indeed getting or \n" + "setting a simple type. If this is not the case, or you want to show the \n" + "methods anyway, you should set this option to NO. \n", + TRUE + ); cb = addBool( "DISTRIBUTE_GROUP_DOC", "If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC \n" @@ -2209,13 +2215,13 @@ void Config::create() TRUE ); cb = addBool( "REFERENCED_BY_RELATION", - "If the REFERENCED_BY_RELATION tag is set to YES (the default) \n" + "If the REFERENCED_BY_RELATION tag is set to YES \n" "then for each documented function all documented \n" "functions referencing it will be listed. \n", FALSE ); cb = addBool( "REFERENCES_RELATION", - "If the REFERENCES_RELATION tag is set to YES (the default) \n" + "If the REFERENCES_RELATION tag is set to YES \n" "then for each documented function all documented entities \n" "called/used by that function will be listed. \n", FALSE @@ -2339,8 +2345,8 @@ void Config::create() "of the generated HTML documentation. \n", FALSE ); - cb = addBool( - "GENERATE_DOCSET", + cb->addDependency("GENERATE_HTML"); + cb = addBool( "GENERATE_DOCSET", "If the GENERATE_DOCSET tag is set to YES, additional index files \n" "will be generated that can be used as input for Apple's Xcode 3 \n" "integrated development environment, introduced with OSX 10.5 (Leopard). \n" @@ -2360,7 +2366,7 @@ void Config::create() "can be grouped. \n" ); cs->setDefaultValue("Doxygen generated docs"); - cb->addDependency("GENERATE_DOCSET"); + cs->addDependency("GENERATE_DOCSET"); cs = addString( "DOCSET_BUNDLE_ID", "When GENERATE_DOCSET tag is set to YES, this tag specifies a string that \n" @@ -2369,7 +2375,7 @@ void Config::create() "will append .docset to the name. \n" ); cs->setDefaultValue("org.doxygen.Project"); - cb->addDependency("GENERATE_DOCSET"); + cs->addDependency("GENERATE_DOCSET"); cb = addBool( "HTML_DYNAMIC_SECTIONS", @@ -2468,6 +2474,16 @@ void Config::create() 0,1500,250 ); ci->addDependency("GENERATE_HTML"); + ci = addInt( + "FORMULA_FONTSIZE", + "Use this tag to change the font size of Latex formulas included \n" + "as images in the HTML documentation. The default is 10. Note that \n" + "when you change the font size after a successful doxygen run you need \n" + "to manually remove any form_*.png images from the HTML output directory \n" + "to force them to be regenerated. \n", + 8,50,10 + ); + ci->addDependency("GENERATE_HTML"); //----------------------------------------------------------------------------------------------- addInfo( "LaTeX","configuration options related to the LaTeX output"); @@ -3080,7 +3096,7 @@ void Config::create() cl->addDependency("HAVE_DOT"); ci = addInt( "DOT_GRAPH_MAX_NODES", - "The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of \n" + "The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of \n" "nodes that will be shown in the graph. If the number of nodes in a graph \n" "becomes larger than this value, doxygen will truncate the graph, which is \n" "visualized by representing a node as a red box. Note that doxygen if the \n" diff --git a/src/defargs.l b/src/defargs.l index 81832a9..9fe6372 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -317,7 +317,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* a->array = a->array.mid(1,alen-2); if (i>0 && a->name.isEmpty()) { - a->name = a->array.left(i); + a->name = a->array.left(i).stripWhiteSpace(); a->array = a->array.mid(i); } } diff --git a/src/defgen.cpp b/src/defgen.cpp index 2fd358e..4c52150 100644 --- a/src/defgen.cpp +++ b/src/defgen.cpp @@ -479,7 +479,7 @@ void generateDEFSection(Definition *d, MemberList *ml, const char *kind) { - if (ml->count()>0) + if (ml && ml->count()>0) { t << " " << kind << " = {" << endl; MemberListIterator mli(*ml); diff --git a/src/diagram.cpp b/src/diagram.cpp index 53c062b..7374622 100644 --- a/src/diagram.cpp +++ b/src/diagram.cpp @@ -208,7 +208,9 @@ QCString DiagramItem::label() const QCString result; if (!templSpec.isEmpty()) { - result=insertTemplateSpecifierInScope(classDef->displayName(),templSpec); + // we use classDef->name() here and not diplayName() in order + // to get the name used in the inheritance relation. + result=insertTemplateSpecifierInScope(classDef->name(),templSpec); } else { diff --git a/src/docparser.cpp b/src/docparser.cpp index 77def03..f24b916 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -339,6 +339,7 @@ static void checkArgumentName(const QString &name,bool isParam) for (ali.toFirst();(a=ali.current());++ali) { QString argName = g_memberDef->isDefine() ? a->type : a->name; + argName=argName.stripWhiteSpace(); //printf("argName=`%s'\n",argName.data()); if (argName.right(3)=="...") argName=argName.left(argName.length()-3); if (aName==argName) @@ -368,7 +369,7 @@ static void checkArgumentName(const QString &name,bool isParam) } warn_doc_error(docFile,docLine, - "Warning: argument `%s' of command @param " + "Warning: argument '%s' of command @param " "is not found in the argument list of %s%s%s%s", aName.data(),scope.data(),g_memberDef->name().data(), argListToString(al.pointer()).data(),inheritedFrom.data()); @@ -397,6 +398,7 @@ static void checkUndocumentedParams() for (ali.toFirst();(a=ali.current());++ali) { QString argName = g_memberDef->isDefine() ? a->type : a->name; + argName=argName.stripWhiteSpace(); if (argName.right(3)=="...") argName=argName.left(argName.length()-3); if (!argName.isEmpty() && g_paramsFound.find(argName)==0 && a->docs.isEmpty()) { @@ -415,6 +417,7 @@ static void checkUndocumentedParams() for (ali.toFirst();(a=ali.current());++ali) { QString argName = g_memberDef->isDefine() ? a->type : a->name; + argName=argName.stripWhiteSpace(); if (!argName.isEmpty() && g_paramsFound.find(argName)==0) { if (!first) @@ -425,7 +428,7 @@ static void checkUndocumentedParams() { first=FALSE; } - errMsg+=" parameter "+argName; + errMsg+=" parameter '"+argName+"'"; } } if (g_memberDef->inheritsDocsFrom()) diff --git a/src/dot.cpp b/src/dot.cpp index 0b736b1..51a2506 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -617,6 +617,7 @@ void DotNode::writeBox(QTextStream &t, t << "\\n|"; writeBoxMemberList(t,'+',m_classDef->getMemberList(MemberList::pubAttribs),m_classDef); writeBoxMemberList(t,'+',m_classDef->getMemberList(MemberList::pubStaticAttribs),m_classDef); + writeBoxMemberList(t,'+',m_classDef->getMemberList(MemberList::properties),m_classDef); writeBoxMemberList(t,'~',m_classDef->getMemberList(MemberList::pacAttribs),m_classDef); writeBoxMemberList(t,'~',m_classDef->getMemberList(MemberList::pacStaticAttribs),m_classDef); writeBoxMemberList(t,'#',m_classDef->getMemberList(MemberList::proAttribs),m_classDef); diff --git a/src/doxygen.cpp b/src/doxygen.cpp index f759c98..3c878b8 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -1938,15 +1938,27 @@ static MemberDef *addVariableToClass( MemberDef *md; for (mni.toFirst();(md=mni.current());++mni) { - if (md->getClassDef()==cd && root->type==md->typeString()) + //printf("md->getClassDef()=%p cd=%p type=[%s] md->typeString()=[%s]\n", + // md->getClassDef(),cd,root->type.data(),md->typeString()); + if (md->getClassDef()==cd && + removeRedundantWhiteSpace(root->type)==md->typeString()) // member already in the scope { + + if (root->objc && + root->mtype==Property && + md->memberType()==MemberDef::Variable) + { // Objective-C 2.0 property + // turn variable into a property + cd->reclassifyMember(md,MemberDef::Property); + } addMemberDocs(rootNav,md,def,0,FALSE); //printf(" Member already found!\n"); return md; } } } + // new member variable, typedef or enum value MemberDef *md=new MemberDef( root->fileName,root->startLine, @@ -1985,7 +1997,7 @@ static MemberDef *addVariableToClass( // md->setBodyDef(rootNav->fileDef()); - //printf("Adding member=%s\n",md->name().data()); + //printf(" Adding member=%s\n",md->name().data()); // add the member to the global list if (mn) { @@ -2104,6 +2116,7 @@ static MemberDef *addVariableToFile( || (nd!=0 && md->getNamespaceDef()==nd) // both in same namespace ) && !md->isDefine() // function style #define's can be "overloaded" by typedefs or variables + && !md->isEnumerate() // in C# an enum value and enum can have the same name ) // variable already in the scope { @@ -6510,7 +6523,7 @@ static void addEnumValuesToEnums(EntryNav *rootNav) e->loadEntry(g_storage); MemberDef *fmd = addVariableToFile(e,MemberDef::EnumValue, md->getOuterScope() ? md->getOuterScope()->name() : QCString(), - e->name(),TRUE,0); + e->name(),FALSE,0); md->insertEnumField(fmd); fmd->setEnumScope(md); e->releaseEntry(); @@ -9832,6 +9845,7 @@ void parseInput() //} classEntries.clear(); + msg("Add enum values to enums...\n"); addEnumValuesToEnums(rootNav); findEnumDocumentation(rootNav); @@ -10166,7 +10180,9 @@ void generateOutput() msg("Generating Perl module output...\n"); generatePerlMod(); } - if (Config_getBool("GENERATE_HTMLHELP") && !Config_getString("HHC_LOCATION").isEmpty()) + if (Config_getBool("GENERATE_HTML") && + Config_getBool("GENERATE_HTMLHELP") && + !Config_getString("HHC_LOCATION").isEmpty()) { msg("Running html help compiler...\n"); QString oldDir = QDir::currentDirPath(); diff --git a/src/filedef.cpp b/src/filedef.cpp index 5ba3094..053c1a5 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -662,7 +662,7 @@ void FileDef::writeSource(OutputList &ol) startFile(ol,getSourceFileBase(),0,pageTitle,HLI_FileVisible,TRUE); getDirDef()->writeNavigationPath(ol); ol.endQuickIndices(); - ol.endContents(); + ol.startContents(); startTitle(ol,getOutputFileBase()); ol.parseText(name()); endTitle(ol,getOutputFileBase(),title); diff --git a/src/formula.cpp b/src/formula.cpp index 037ce9d..0599c5d 100644 --- a/src/formula.cpp +++ b/src/formula.cpp @@ -166,7 +166,10 @@ void FormulaList::generateBitmaps(const char *path) } // scale the image so that it is four times larger than needed. // and the sizes are a multiple of four. - const double scaleFactor = 16.0/3.0; + double scaleFactor = 16.0/3.0; + int zoomFactor = Config_getInt("FORMULA_FONTSIZE"); + if (zoomFactor<8 || zoomFactor>50) zoomFactor=10; + scaleFactor *= zoomFactor/10.0; int gx = (((int)((x2-x1)*scaleFactor))+3)&~2; int gy = (((int)((y2-y1)*scaleFactor))+3)&~2; // Then we run ghostscript to convert the postscript to a pixmap diff --git a/src/groupdef.cpp b/src/groupdef.cpp index af0e83b..e193a17 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -60,24 +60,6 @@ GroupDef::GroupDef(const char *df,int dl,const char *na,const char *t, memberGroupSDict->setAutoDelete(TRUE); allMemberList = new MemberList(MemberList::allMembersList); -#if 0 - - decDefineMembers.setInGroup(TRUE); - decProtoMembers.setInGroup(TRUE); - decTypedefMembers.setInGroup(TRUE); - decEnumMembers.setInGroup(TRUE); - decEnumValMembers.setInGroup(TRUE); - decFuncMembers.setInGroup(TRUE); - decVarMembers.setInGroup(TRUE); - - docDefineMembers.setInGroup(TRUE); - docProtoMembers.setInGroup(TRUE); - docTypedefMembers.setInGroup(TRUE); - docEnumMembers.setInGroup(TRUE); - docEnumValMembers.setInGroup(TRUE); - docFuncMembers.setInGroup(TRUE); - docVarMembers.setInGroup(TRUE); -#endif visited = 0; groupScope = 0; @@ -142,14 +124,6 @@ void GroupDef::findSectionsInDocumentation() ml->findSectionsInDocumentation(); } } -#if 0 - decDefineMembers.findSectionsInDocumentation(); - decProtoMembers.findSectionsInDocumentation(); - decTypedefMembers.findSectionsInDocumentation(); - decEnumMembers.findSectionsInDocumentation(); - decFuncMembers.findSectionsInDocumentation(); - decVarMembers.findSectionsInDocumentation(); -#endif } void GroupDef::addFile(const FileDef *def) @@ -224,15 +198,6 @@ void GroupDef::addMembersToMemberGroup() ::addMembersToMemberGroup(ml,&memberGroupSDict,this); } } -#if 0 - ::addMembersToMemberGroup(&decDefineMembers,&memberGroupSDict,this); - ::addMembersToMemberGroup(&decProtoMembers,&memberGroupSDict,this); - ::addMembersToMemberGroup(&decTypedefMembers,&memberGroupSDict,this); - ::addMembersToMemberGroup(&decEnumMembers,&memberGroupSDict,this); - ::addMembersToMemberGroup(&decEnumValMembers,&memberGroupSDict,this); - ::addMembersToMemberGroup(&decFuncMembers,&memberGroupSDict,this); - ::addMembersToMemberGroup(&decVarMembers,&memberGroupSDict,this); -#endif //printf("GroupDef::addMembersToMemberGroup() memberGroupList=%d\n",memberGroupList->count()); MemberGroupSDict::Iterator mgli(*memberGroupSDict); @@ -872,14 +837,6 @@ void GroupDef::writeMemberPages(OutputList &ol) ml->writeDocumentationPage(ol,name(),this); } } -#if 0 - docDefineMembers.writeDocumentationPage(ol,name(),this); - docProtoMembers.writeDocumentationPage(ol,name(),this); - docTypedefMembers.writeDocumentationPage(ol,name(),this); - docEnumMembers.writeDocumentationPage(ol,name(),this); - docFuncMembers.writeDocumentationPage(ol,name(),this); - docVarMembers.writeDocumentationPage(ol,name(),this); -#endif ol.popGeneratorState(); } @@ -1154,14 +1111,6 @@ void GroupDef::addListReferences() ml->addListReferences(this); } } -#if 0 - docDefineMembers.addListReferences(this); - docProtoMembers.addListReferences(this); - docTypedefMembers.addListReferences(this); - docEnumMembers.addListReferences(this); - docFuncMembers.addListReferences(this); - docVarMembers.addListReferences(this); -#endif } MemberList *GroupDef::createMemberList(MemberList::ListType lt) diff --git a/src/index.cpp b/src/index.cpp index e2b7750..2b4c895 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -1736,7 +1736,6 @@ void writeQuickMemberIndex(OutputList &ol, } } endQuickIndexList(ol); - ol.newParagraph(); } //---------------------------------------------------------------------------- diff --git a/src/language.cpp b/src/language.cpp index 727eea9..aa5de7b 100644 --- a/src/language.cpp +++ b/src/language.cpp @@ -54,7 +54,7 @@ #include "translator_es.h" #endif #ifdef LANG_FI -//#include "translator_fi.h" +#include "translator_fi.h" #endif #ifdef LANG_RU #include "translator_ru.h" diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 8a5a887..2180bb9 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -533,8 +533,8 @@ void MemberDefImpl::init(Definition *def, { declArgList = new ArgumentList; stringToArgumentList(args,declArgList,&extraTypeChars); - //printf("setDeclArgList %s to %p const=%d\n",args.data(), - // declArgList,declArgList->constSpecifier); + //printf("setDeclArgList %s to %s const=%d\n",args.data(), + // argListToString(declArgList).data(),declArgList->constSpecifier); } else { @@ -766,7 +766,10 @@ QCString MemberDef::anchor() const QCString result=m_impl->anc; if (m_impl->groupAlias) return m_impl->groupAlias->anchor(); if (m_impl->templateMaster) return m_impl->templateMaster->anchor(); - if (m_impl->enumScope) result.prepend(m_impl->enumScope->anchor()); + if (m_impl->enumScope && m_impl->enumScope!=this) // avoid recursion for C#'s public enum E { E, F } + { + result.prepend(m_impl->enumScope->anchor()); + } if (m_impl->group) { if (m_impl->groupMember) @@ -1047,9 +1050,10 @@ bool MemberDef::isBriefSectionVisible() const //printf("visibleIfStatic=%d visibleIfDocumented=%d visibleIfEnabled=%d " // "visibleIfPrivate=%d visibltIfNotDefaultCDTor=%d " - // "visibleIfFriendCompound=%d\n",visibleIfStatic,visibleIfDocumented, + // "visibleIfFriendCompound=%d !annScope=%d\n", + // visibleIfStatic,visibleIfDocumented, // visibleIfEnabled,visibleIfPrivate,visibleIfNotDefaultCDTor, - // visibleIfFriendCompound); + // visibleIfFriendCompound,!m_impl->annScope); bool visible = visibleIfStatic && visibleIfDocumented && visibleIfEnabled && visibleIfPrivate && diff --git a/src/membergroup.cpp b/src/membergroup.cpp index 3b9eb89..f20ae0f 100644 --- a/src/membergroup.cpp +++ b/src/membergroup.cpp @@ -165,17 +165,30 @@ void MemberGroup::distributeMemberGroupDocumentation() { //printf("MemberGroup::distributeMemberGroupDocumentation() %s\n",grpHeader.data()); MemberDef *md=memberList->first(); - if (md && !(md->documentation().isEmpty() && - md->briefDescription().isEmpty() && - md->inbodyDocumentation().isEmpty() - ) - ) + while (md) { - //printf("First member %s has documentation!\n",md->name().data()); - MemberDef *omd=memberList->next(); + //printf("checking md=%s\n",md->name().data()); + // find the first member of the group with documentation + if (!md->documentation().isEmpty() || + !md->briefDescription().isEmpty() || + !md->inbodyDocumentation().isEmpty() + ) + { + //printf("found it!\n"); + break; + } + md=memberList->next(); + } + if (md) // distribute docs of md to other members of the list + { + //printf("Member %s has documentation!\n",md->name().data()); + MemberDef *omd=memberList->first(); while (omd) { - if (omd->documentation().isEmpty() && omd->briefDescription().isEmpty() && omd->inbodyDocumentation().isEmpty()) + if (md!=omd && omd->documentation().isEmpty() && + omd->briefDescription().isEmpty() && + omd->inbodyDocumentation().isEmpty() + ) { //printf("Copying documentation to member %s\n",omd->name().data()); omd->setBriefDescription(md->briefDescription(),md->briefFile(),md->briefLine()); diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp index 9c7f033..0c6d6c1 100644 --- a/src/perlmodgen.cpp +++ b/src/perlmodgen.cpp @@ -546,7 +546,7 @@ void PerlModDocVisitor::visit(DocSymbol *sy) case DocSymbol::Rdquo: c = '"'; break; case DocSymbol::Ndash: c = '-'; break; case DocSymbol::Mdash: s = "--"; break; - case DocSymbol::Nbsp: c = ' '; break; + case DocSymbol::Nbsp: c = ' '; break; case DocSymbol::Uml: accent = "umlaut"; break; case DocSymbol::Acute: accent = "acute"; break; case DocSymbol::Grave: accent = "grave"; break; diff --git a/src/scanner.l b/src/scanner.l index 61e8d11..b42e115 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -644,6 +644,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) %x PackageName %x JavaImport %x CSAccessorDecl +%x CSGeneric %x PreLineCtrl %x DefinePHP %x DefinePHPEnd @@ -2725,11 +2726,17 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) } } "propput" { - current->mtype = Property; + if (Config_getBool("IDL_PROPERTY_SUPPORT")) + { + current->mtype = Property; + } current->spec |= Entry::Settable; } "propget" { - current->mtype = Property; + if (Config_getBool("IDL_PROPERTY_SUPPORT")) + { + current->mtype = Property; + } current->spec |= Entry::Gettable; } . { @@ -2744,7 +2751,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) BEGIN( IDLProp ); } {BN}*"["[^\]]*"]"{BN}* { // attribute of a parameter - idlAttr += yytext; + idlAttr = yytext; + idlAttr=idlAttr.stripWhiteSpace(); } {ID} { // property type idlProp = yytext; @@ -2781,7 +2789,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) BEGIN( FindMembers ); } . { // spaces, *, or other stuff - idlProp+=yytext; + //idlProp+=yytext; } "]" { current->args += *yytext ; if (--squareCount<=0) @@ -4273,11 +4281,31 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) { BEGIN( ObjCProtocolList ); } + else if (insideCS) // C# generic class + { + BEGIN( CSGeneric ); + } else // C++ template specialization { BEGIN( ClassTemplSpec ); } } +"<" { + if (current->tArgLists==0) + { + current->tArgLists = new QList; + current->tArgLists->setAutoDelete(TRUE); + } + ArgumentList *al = new ArgumentList; + current->spec |= Entry::Template; + current->tArgLists->append(al); + currentArgumentList = al; + templateStr="<"; + fullArgString = templateStr; + copyArgString = &templateStr; + currentArgumentContext = CompoundName; + BEGIN( ReadTempArgs ); + } "<" { insideProtocolList=TRUE; BEGIN( Bases ); diff --git a/src/translator_fi.h b/src/translator_fi.h index 43813e6..eb4cf19 100644 --- a/src/translator_fi.h +++ b/src/translator_fi.h @@ -17,7 +17,8 @@ /* ================================================================================== Suomenkielinen käännös: -Olli Korhonen +Olli Korhonen ( -> 0.49-990425) +Antti Laine (0.49-990425 -> ) ================================================================================== 1999/10/19 * Alustava käännös valmis. @@ -26,28 +27,31 @@ Olli Korhonen kaikissa tapauksissa hyvä ratkaisu, ja parempikin termi voi olla vakiintuneessa käytössä. +2008/04/08 +* Käännetty versioon 1.5.5 asti. + * Tehtävää: - Termien kokoaminen listaksi ja suomennosten järkevyyden tarkastelu. (lista on jo melko kattava) Author = Tekijä Class = Luokka - Compound = Kooste ? + Compound = Kooste Data = Data Documentation = Dokumentaatio - Defines = Määrittelyt ? + Defines = Määrittelyt Description = Selite Detailed = Yksityiskohtainen - diagram = kaavio - Enum = Enumeraatio ? + Diagram = Kaavio + Enum = Enumeraatio / Luettelotyyppi Exceptions = Poikkeukset File = Tiedosto - Friends = Ystävät ? + Friends = Ystävät Functions = Funktiot Hierarchical = Hierarkinen Index = Indeksi Inherits = Perii Member = Jäsen Module = Moduli - Namespace = Nimiavaruus ? + Namespace = Nimiavaruus Parameters = Parametrit Private = Yksityinen Protected = Suojattu @@ -56,12 +60,12 @@ Olli Korhonen Reference Manual= Käsikirja Reimplemented = Uudelleen toteutettu Related = Liittyvä - Signals = Signaali - Slots = ? + Signals = Signaalit + Slots = Vastineet Static = Staattinen - Struct = ? + Struct = Tietue Typedef = Tyyppimäärittely - Union = ? + Union = Yhdiste Variables = Muuttujat - Taivutusmuotojen virheettömyyden tarkastelu prepositioiden korvauskohdissa. - Sanasta sanaan käännöskohtien mielekkyyden tarkastelu valmiista dokumentista. @@ -74,443 +78,654 @@ positiiviset kommentit otetaan ilolla vastaan. #ifndef TRANSLATOR_FI_H #define TRANSLATOR_FI_H -class TranslatorFinnish : public TranslatorEnglish +class TranslatorFinnish : public Translator { public: /*! This method is used to generate a warning message to signal * the user that the translation of his/her language of choice * needs updating. */ - virtual QCString updateNeededMessage() + /*virtual QCString updateNeededMessage() { return "Warning: The Finnish translator is really obsolete.\n" "It was not updated since version 1.0.0. As a result,\n" "some sentences may appear in English.\n\n"; + }*/ + + // --- Language control methods ------------------- + + /*! Used for identification of the language. The identification + * should not be translated. It should be replaced by the name + * of the language in English using lower-case characters only + * (e.g. "czech", "japanese", "russian", etc.). It should be equal to + * the identification used in language.cpp. + */ + virtual QCString idLanguage() + { return "finnish"; } + + /*! Used to get the LaTeX command(s) for the language support. + * This method should return string with commands that switch + * LaTeX to the desired language. For example + *
"\\usepackage[german]{babel}\n"
+     *  
+ * or + *
"\\usepackage{polski}\n"
+     *  "\\usepackage[latin2]{inputenc}\n"
+     *  "\\usepackage[T1]{fontenc}\n"
+     *  
+ * + * The English LaTeX does not use such commands. Because of this + * the empty string is returned in this implementation. + */ + virtual QCString latexLanguageSupportCommand() + { + return "\\usepackage[finnish]{babel}\n"; } - QCString idLanguage() - { return "finnish"; } + /*! return the language charset. This will be used for the HTML output */ + virtual QCString idLanguageCharset() + { + return "iso-8859-1"; + } + + // --- Language translation methods ------------------- - QCString trRelatedFunctions() - // used in the compound documentation before a list of related functions. - { return "Liittyvät Funktiot"; } // "Related Functions"; + /*! used in the compound documentation before a list of related functions. */ + virtual QCString trRelatedFunctions() + { return "Liittyvät funktiot"; } // "Related Functions"; - QCString trRelatedSubscript() - // subscript for the related functions. + /*! subscript for the related functions. */ + virtual QCString trRelatedSubscript() { return "(Huomaa, että nämä eivät ole jäsenfunktioita.)"; } // "(Note that these are not member functions.)" - QCString trDetailedDescription() - // header that is put before the detailed description of files, classes and namespaces. - { return "Yksityiskohtainen Selite"; } // "Detailed Description" + /*! header that is put before the detailed description of files, classes and namespaces. */ + virtual QCString trDetailedDescription() + { return "Yksityiskohtainen selite"; } // "Detailed Description" - QCString trMemberTypedefDocumentation() + /*! header that is put before the list of typedefs. */ + virtual QCString trMemberTypedefDocumentation() // header that is put before the list of typedefs. - { return "Jäsen Tyyppimäärittelyiden Dokumentaatio"; } // "Member Typedef Documentation" + { return "Jäsentyyppimäärittelyiden dokumentaatio"; } // "Member Typedef Documentation" - QCString trMemberEnumerationDocumentation() - // header that is put before the list of enumerations. - { return "Jäsen Enumeraatioiden Dokumentaatio"; } // "Member Enumeration Documentation" + /*! header that is put before the list of enumerations. */ + virtual QCString trMemberEnumerationDocumentation() + { return "Jäsenenumeraatioiden dokumentaatio"; } // "Member Enumeration Documentation" - QCString trEnumerationValueDocumentation() - { return "Enumeraatioarvojen Dokumentaatio"; } + /*! header that is put before the list of member functions. */ + virtual QCString trMemberFunctionDocumentation() + { return "Jäsenfunktioiden dokumentaatio"; } // "Member Function Documentation" - QCString trMemberFunctionDocumentation() - // header that is put before the list of member functions. - { return "Jäsen Funktioiden Dokumentaatio"; } // "Member Function Documentation" - QCString trMemberDataDocumentation() - // header that is put before the list of member attributes. - { return "Jäsen Datan Dokumentaatio"; } // "Member Data Documentation" + /*! header that is put before the list of member attributes. */ + virtual QCString trMemberDataDocumentation() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Kenttien dokumentaatio"; // "Field Documentation"; + } + else + { + return "Jäsendatan dokumentaatio"; // "Member Data Documentation" + } + } - QCString trMore() - // this is the text of a link put after brief descriptions. + /*! this is the text of a link put after brief descriptions. */ + virtual QCString trMore() { return "Lisää..."; } // "More..." - QCString trListOfAllMembers() - // put in the class documentation + /*! put in the class documentation */ + virtual QCString trListOfAllMembers() { return "Lista kaikista jäsenistä."; } // "List of all members." - QCString trMemberList() + virtual QCString trMemberList() - // used as the title of the "list of all members" page of a class - { return "Jäsen Lista"; } // "Member List" + /*! used as the title of the "list of all members" page of a class */ + { return "Jäsenlista"; } // "Member List" - QCString trThisIsTheListOfAllMembers() - // this is the first part of a sentence that is followed by a class name + /*! this is the first part of a sentence that is followed by a class name */ + virtual QCString trThisIsTheListOfAllMembers() { return "Tämä on lista kaikista jäsenistä"; } // "This is the complete list of members for " - QCString trIncludingInheritedMembers() - // this is the remainder of the sentence after the class name - { return ", sisältää kaikki perityt jäsenet."; } // ", including all inherited members." - - QCString trGeneratedAutomatically(const char *s) - // this is put at the author sections at the bottom of man pages. - // parameter s is name of the project name. - { QCString result="Automaattisesti generoitu Doxygen:lla "; // "Generated automatically by Doxygen" + + /*! this is the remainder of the sentence after the class name */ + virtual QCString trIncludingInheritedMembers() + { return ", sisältäen kaikki perityt jäsenet."; } // ", including all inherited members." + + /*! 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=(QCString)"Automaattisesti generoitu Doxygenilla " + "lähdekoodista projektille "+s; // "Generated automatically by Doxygen" ... "for" ... "from the sourcecode" //if (s) result+=(QCString)" voor "+s; // tässä on ongelma, kuinka taivuttaa parametria, esim. "Jcad"+"in"; "IFC2VRML konversio"+"n" // mutta ratkaistaan ongelma kätevästi kaksoispisteellä -> "Jcad:n" / "IFC2VRML konversio:n" // lopputulos on vähemmän kökkö ja täysin luettava, mutta ei kuitenkaan täydellinen. - if (s) result+=(QCString)s+":n "; - result+="lähdekoodista."; // " from the source code." + // + // kierretään ongelma taivuttamalla sanaa projekti :) return result; } - QCString trEnumName() - // put after an enum name in the list of all members + /*! put after an enum name in the list of all members */ + virtual QCString trEnumName() { return "enumeraation nimi"; } // "enum name" - QCString trEnumValue() - // put after an enum value in the list of all members + /*! put after an enum value in the list of all members */ + virtual QCString trEnumValue() { return "enumeraation arvo"; } // "enum value" - QCString trDefinedIn() - // put after an undocumented member in the list of all members + /*! put after an undocumented member in the list of all members */ + virtual QCString trDefinedIn() { return "määritelty"; } // "defined in" // quick reference sections - QCString trModules() - // This is put above each page as a link to the list of all groups of - // compounds or files (see the \group command). - { return "Modulit"; } // "Modules" - QCString trClassHierarchy() - // This is put above each page as a link to the class hierarchy - { return "Luokka Hierarkia"; } // "Class Hierarchy" - QCString trCompoundList() - // This is put above each page as a link to the list of annotated classes - { return "Kooste Lista"; } // "Compound List" - QCString trFileList() - // This is put above each page as a link to the list of documented files - { return "Tiedosto Lista"; } // "File List" - QCString trHeaderFiles() - // This is put above each page as a link to the list of all verbatim headers - { return "Header Tiedostot"; } // "Header Files" - QCString trCompoundMembers() - // This is put above each page as a link to all members of compounds. - { return "Koosteen Jäsenet"; } // "Compound Members" - QCString trFileMembers() - // This is put above each page as a link to all members of files. - { return "Tiedosto Jäsenet"; } // "File Members" - QCString trRelatedPages() - // This is put above each page as a link to all related pages. - { return "Liittyvät Sivut"; } // "Related Pages" - QCString trExamples() - // This is put above each page as a link to all examples. + + /*! This is put above each page as a link to the list of all groups of + * compounds or files (see the \\group command). + */ + virtual QCString trModules() + { return "Moduulit"; } // "Modules" + + /*! This is put above each page as a link to the class hierarchy */ + virtual QCString trClassHierarchy() + { return "Luokkahierarkia"; } // "Class Hierarchy" + + /*! This is put above each page as a link to the list of annotated classes */ + virtual QCString trCompoundList() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Tietueet"; // "Data Structures" + } + else + { + return "Luokkalista"; // "Class List" + } + } + + /*! This is put above each page as a link to the list of documented files */ + virtual QCString trFileList() + { return "Tiedostolista"; } // "File List" + + /*! This is put above each page as a link to all members of compounds. */ + virtual QCString trCompoundMembers() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Tietueen kentät"; // "Data Fields" + } + else + { + return "Luokan jäsenet"; // "Class Members" + } + } + + /*! 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 "Globaalit"; // "Globals" + } + else + { + return "Tiedoston jäsenet"; // "File Members" + } + } + + /*! This is put above each page as a link to all related pages. */ + virtual QCString trRelatedPages() + { return "Liittyvät sivut"; } // "Related Pages" + + /*! This is put above each page as a link to all examples. */ + virtual QCString trExamples() { return "Esimerkit"; } // "Examples" - QCString trSearch() - // This is put above each page as a link to the search engine. + + /*! This is put above each page as a link to the search engine. */ + virtual QCString trSearch() { return "Etsi"; } // "Search" - QCString trClassHierarchyDescription() - // This is an introduction to the class hierarchy. + + /*! This is an introduction to the class hierarchy. */ + virtual QCString trClassHierarchyDescription() { return "Tämä periytymislista on päätasoltaan aakkostettu " // "This inheritance list is sorted roughly, " "mutta alijäsenet on aakkostettu itsenäisesti:"; // "but not completely, alphabetically:"; } - QCString trFileListDescription(bool extractAll) - // This is an introduction to the list with all files. + + /*! This is an introduction to the list with all files. */ + virtual QCString trFileListDescription(bool extractAll) { - QCString result="Täällä on lista kaikista "; + QCString result="Tässä on lista kaikista "; if (!extractAll) result+="dokumentoiduista "; // "documented " result+="tiedostoista lyhyen selitteen kera:"; // "files with brief descriptions:" return result; } - QCString trCompoundListDescription() - // This is an introduction to the annotated compound list - { return "Täällä on luokat, struktuurit ja " // "Here are the classes, structs and " - "unionit lyhyen selitteen kera:"; // "unions with brief descriptions:" + + /*! This is an introduction to the annotated compound list. */ + virtual QCString trCompoundListDescription() + { + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Tällä ovat tietueet lyhyen selitteen kera:"; // "Here are the data structures with brief descriptions:" + } + else + { + return "Tässä ovat luokat, tietueet ja " // "Here are the classes, structs and " + "yhdisteet lyhyen selitteen kera:"; // "unions with brief descriptions:" + } } - QCString trCompoundMembersDescription(bool extractAll) - // This is an introduction to the page with all class members + + /*! This is an introduction to the page with all class members. */ + virtual QCString trCompoundMembersDescription(bool extractAll) { - QCString result="Täällä on lista kaikista "; // "Here is a list of all " - if (!extractAll) result+="dokumentoiduista "; // "documented " - result+="luokan jäsenistä linkitettynä "; // "class members with links to " + QCString result="Tässä on lista kaikista "; // "Here is a list of all " + if (!extractAll) + { + result+="dokumentoiduista "; // "documented " + } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="tietuiden ja yhdisteiden kentistä"; // "struct and union fields" + } + else + { + result+="luokkien jäsenistä"; // "class members" + } + result+=" linkitettyinä "; // " with links to " if (!extractAll) - result+="jokaisen jäsenen luokkadokumentaatioon:"; // "the class documentation for each member:" + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="jokaisen kentän tietueen/yhdisteen dokumentaatioon:"; // "the struct/union documentation for each field:" + } + else + { + result+="jokaisen jäsenen luokkadokumentaatioon:"; // "the class documentation for each member:" + } + } else - result+="luokkaan johon ne kuuluvat:"; // "the classes they belong to:" + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+= "tietueisiin/yhdisteisiin, joihin ne kuuluvat:"; // "the structures/unions they belong to:" + } + else + { + result+="luokkiin, joihin ne kuuluvat"; //"the classes they belong to:" + } + } return result; } - QCString trFileMembersDescription(bool extractAll) - // This is an introduction to the page with all file members + + /*! This is an introduction to the page with all file members. */ + virtual QCString trFileMembersDescription(bool extractAll) { - QCString result="Täällä on lista kaikista "; // "Here is a list of all " - if (!extractAll) result+="dokumentoiduista "; // "documented "; - result+="tiedosto jäsenistä linkitettynä "; // "file members with links to " + QCString result="Tässä on lista kaikista "; // "Here is a list of all " + if (!extractAll) result+="dokumentoiduista "; // "documented " + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="funktioista, muuttujista, määrittelyistä, luetteloista ja tyyppimäärittelyistä"; // "functions, variables, defines, enums, and typedefs" + } + else + { + result+="tiedoston jäsenistä"; // "file members" + } + result+=" linkitettyinä "; // " with links to " if (extractAll) - result+="kunkin jäsenen tiedosto dokumentaatioon:"; // "the file documentation for each member:" + result+="tiedostoon, johon ne kuuluvat:"; // "the files they belong to:" else - result+="tiedostoon johon ne kuuluvat:"; // "the files they belong to:" + result+="dokumentaatioon:"; // "the documentation:" return result; } - QCString trHeaderFilesDescription() - // This is an introduction to the page with the list of all header files - { return "Täällä on kaikki header tiedostot jotka muodostavat API:n:"; } // "Here are the header files that make up the API:" - QCString trExamplesDescription() - // This is an introduction to the page with the list of all examples - { return "Täällä on lista kaikista esimerkeistä:"; } // "Here is a list of all examples:" - QCString trRelatedPagesDescription() - // This is an introduction to the page with the list of related pages - { return "Täällä on lista kaikista liittyvistä dokumentaatiosivuista:"; } // "Here is a list of all related documentation pages:" - QCString trModulesDescription() - // This is an introduction to the page with the list of class/file groups - { return "Täällä on lista kaikista moduleista:"; } // "Here is a list of all modules:" - QCString trNoDescriptionAvailable() - // This sentences is used in the annotated class/file lists if no brief - // description is given. - { return "Selitettä ei ole saatavilla"; } // "No description available" - + + /*! This is an introduction to the page with the list of all examples */ + virtual QCString trExamplesDescription() + { return "Tässä on lista kaikista esimerkeistä:"; } // "Here is a list of all examples:" + + /*! This is an introduction to the page with the list of related pages */ + virtual QCString trRelatedPagesDescription() + { return "Tässä on lista kaikista liittyvistä dokumentaatiosivuista:"; } // "Here is a list of all related documentation pages:" + + /*! This is an introduction to the page with the list of class/file groups */ + virtual QCString trModulesDescription() + { return "Tässä on lista kaikista moduleista:"; } // "Here is a list of all modules:" + // index titles (the project name is prepended for these) - QCString trDocumentation() - // This is used in HTML as the title of index.html. + + /*! This is used in HTML as the title of index.html. */ + virtual QCString trDocumentation() { return "Dokumentaatio"; } // "Documentation" - QCString trModuleIndex() - // This is used in LaTeX as the title of the chapter with the - // index of all groups. - { return "Moduli Indeksi"; } // "Module Index" - QCString trHierarchicalIndex() - // This is used in LaTeX as the title of the chapter with the - // class hierarchy. - { return "Hierarkinen Indeksi"; } // "Hierarchical Index" - QCString trCompoundIndex() - // This is used in LaTeX as the title of the chapter with the - // annotated compound index - { return "Koosteiden Indeksi"; } // "Compound Index" - QCString trFileIndex() - // This is used in LaTeX as the title of the chapter with the - // list of all files. - { return "Tiedosto Indeksi"; } // "File Index" - QCString trModuleDocumentation() - // This is used in LaTeX as the title of the chapter containing - // the documentation of all groups. - { return "Moduli Dokumentaatio"; } // "Module Documentation" - QCString trClassDocumentation() - // This is used in LaTeX as the title of the chapter containing - // the documentation of all classes, structs and unions. - { return "Luokka Dokumentaatio"; } // "Class Documentation" - QCString trFileDocumentation() - // This is used in LaTeX as the title of the chapter containing - // the documentation of all files. - { return "Tiedosto Dokumentaatio"; } // "File Documentation" - QCString trExampleDocumentation() - // This is used in LaTeX as the title of the chapter containing - // the documentation of all examples. - { return "Esimerkkien Dokumentaatio"; } // "Example Documentation" - QCString trPageDocumentation() - // This is used in LaTeX as the title of the chapter containing - // the documentation of all related pages. - { return "Sivujen Dokumentaatio"; } // "Page Documentation" - QCString trReferenceManual() - // This is used in LaTeX as the title of the document + + /*! This is used in LaTeX as the title of the chapter with the + * index of all groups. + */ + virtual QCString trModuleIndex() + { return "Moduuliluettelo"; } // "Module Index" + + /*! This is used in LaTeX as the title of the chapter with the + * class hierarchy. + */ + virtual QCString trHierarchicalIndex() + { return "Hierarkinen luettelo"; } // "Hierarchical Index" + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index. + */ + virtual QCString trCompoundIndex() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Tietueluettelo"; // "Data Structure Index" + } + else + { + return "Luokkaluettelo"; // "Class Index" + } + } + + /*! This is used in LaTeX as the title of the chapter with the + * list of all files. + */ + virtual QCString trFileIndex() + { return "Tiedostoluettelo"; } // "File Index" + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all groups. + */ + virtual QCString trModuleDocumentation() + { return "Moduulien dokumentaatio"; } // "Module Documentation" + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all classes, structs and unions. + */ + virtual QCString trClassDocumentation() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Tietueiden dokumentaatio"; // "Data Structure Documentation" + } + else + { + return "Luokkien dokumentaatio"; // "Class Documentation" + } + } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all files. + */ + virtual QCString trFileDocumentation() + { return "Tiedostojen dokumentaatio"; } // "File Documentation" + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all examples. + */ + virtual QCString trExampleDocumentation() + { return "Esimerkkien dokumentaatio"; } // "Example Documentation" + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all related pages. + */ + virtual QCString trPageDocumentation() + { return "Sivujen dokumentaatio"; } // "Page Documentation" + + /*! This is used in LaTeX as the title of the document */ + virtual QCString trReferenceManual() { return "Käsikirja"; } // "Reference Manual" - QCString trDefines() - // This is used in the documentation of a file as a header before the - // list of defines + /*! This is used in the documentation of a file as a header before the + * list of defines + */ + virtual QCString trDefines() { return "Määrittelyt"; } // "Defines" - QCString trFuncProtos() - // This is used in the documentation of a file as a header before the - // list of function prototypes - { return "Funktioiden Prototyypit"; } // "Function Prototypes" - QCString trTypedefs() - // This is used in the documentation of a file as a header before the - // list of typedefs + + /*! This is used in the documentation of a file as a header before the + * list of function prototypes + */ + virtual QCString trFuncProtos() + { return "Funktioiden prototyypit"; } // "Function Prototypes" + + /*! This is used in the documentation of a file as a header before the + * list of typedefs + */ + virtual QCString trTypedefs() { return "Tyyppimäärittelyt"; } // "Typedefs" - QCString trEnumerations() - // This is used in the documentation of a file as a header before the - // list of enumerations - { return "Enumeraatiot"; } // "Enumerations" - QCString trFunctions() - // This is used in the documentation of a file as a header before the - // list of (global) functions + + /*! This is used in the documentation of a file as a header before the + * list of enumerations + */ + virtual QCString trEnumerations() + { return "Luettelotyypit"; } // "Enumerations" + + /*! This is used in the documentation of a file as a header before the + * list of (global) functions + */ + virtual QCString trFunctions() { return "Funktiot"; } // "Functions" - QCString trVariables() - // This is used in the documentation of a file as a header before the - // list of (global) variables + + /*! This is used in the documentation of a file as a header before the + * list of (global) variables + */ + virtual QCString trVariables() { return "Muuttujat"; } // "Variables" - QCString trEnumerationValues() - // This is used in the documentation of a file as a header before the - // list of (global) variables - { return "Enumeraation arvot"; } // "Enumeration values" - - QCString trDefineDocumentation() - // This is used in the documentation of a file before the list of - // documentation blocks for defines + + /*! This is used in the documentation of a file as a header before the + * list of (global) variables + */ + virtual QCString trEnumerationValues() + { return "Luettelotyyppien arvot"; } // "Enumerator" + + /*! This is used in the documentation of a file before the list of + * documentation blocks for defines + */ + virtual QCString trDefineDocumentation() { return "Määritysten dokumentointi"; } // "Define Documentation" - QCString trFunctionPrototypeDocumentation() - // This is used in the documentation of a file/namespace before the list - // of documentation blocks for function prototypes - { return "Funktio Prototyyppien Dokumentaatio"; } // "Function Prototype Documentation" - QCString trTypedefDocumentation() - // This is used in the documentation of a file/namespace before the list - // of documentation blocks for typedefs - { return "Tyyppimääritysten Dokumentaatio"; } // "Typedef Documentation" - QCString trEnumerationTypeDocumentation() - // This is used in the documentation of a file/namespace before the list - // of documentation blocks for enumeration types - { return "Enumeraatio Tyyppien Dokumentaatio"; } // "Enumeration Type Documentation" - QCString trFunctionDocumentation() - // This is used in the documentation of a file/namespace before the list - // of documentation blocks for functions - { return "Funktioiden Dokumentaatio"; } // "Function Documentation" - QCString trVariableDocumentation() - // This is used in the documentation of a file/namespace before the list - // of documentation blocks for variables - { return "Muuttujien Dokumentaatio"; } // "Variable Documentation" - QCString trCompounds() - // This is used in the documentation of a file/namespace/group before - // the list of links to documented compounds - { return "Koosteet"; } // "Compounds" - QCString trFiles() - // This is used in the documentation of a group before the list of - // links to documented files - { return "Tiedostot"; } // "Files" - - QCString trGeneratedAt(const char *date,const char *projName) + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for function prototypes + */ + virtual QCString trFunctionPrototypeDocumentation() + { return "Funktioprototyyppien dokumentaatio"; } // "Function Prototype Documentation" + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for typedefs + */ + virtual QCString trTypedefDocumentation() + { return "Tyyppimääritysten dokumentaatio"; } // "Typedef Documentation" + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration types + */ + virtual QCString trEnumerationTypeDocumentation() + { return "Luettelotyyppien dokumentaatio"; } // "Enumeration Type Documentation" + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for functions + */ + virtual QCString trFunctionDocumentation() + { return "Funktioiden dokumentaatio"; } // "Function Documentation" + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for variables + */ + virtual QCString trVariableDocumentation() + { return "Muuttujien dokumentaatio"; } // "Variable Documentation" + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds + */ + virtual QCString trCompounds() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Tietueet"; // "Data Structures" + } + else + { + return "Luokat"; // "Classes" + } + } + + /*! This is used in the standard footer of each page and indicates when + * the page was generated + */ + virtual QCString trGeneratedAt(const char *date,const char *projName) { // funktio on hiukan vaikea kääntää prepositioihin sidotun rakenteen vuoksi. - QCString result=(QCString)"Generoitu "+date; // "Generated at " - if (projName) result+=(QCString)" projektille "+projName; // " for " - result+=(QCString)" tekijä: "; // " by" + // Muutetaan siis lauserakennetta suomalaisemmaksi + // Generated on $date for $project by: + // -> Generated for $project on $date by: + QCString result=(QCString)"Generoinut "; + if (projName) result+=(QCString)"projektille "+projName+" "; + result+=(QCString)date+" "; return result; } - QCString trWrittenBy() + /*! This is part of the sentence used in the standard footer of each page. + */ + virtual QCString trWrittenBy() { return "kirjoittanut"; // "written by" } - QCString trClassDiagram(const char *clName) - // this text is put before a class diagram + + /*! this text is put before a class diagram */ + virtual QCString trClassDiagram(const char *clName) { - return (QCString)clName+":n Luokkakaavio"; // "Class diagram for " + return "Luokan "+(QCString)clName+" luokkakaavio"; // "Inheritance diagram for " } - QCString trForInternalUseOnly() - // this text is generated when the \internal command is used. + /*! this text is generated when the \\internal command is used. */ + virtual QCString trForInternalUseOnly() { return "Vain sisäiseen käyttöön."; } // "For internal use only." - QCString trReimplementedForInternalReasons() - // this text is generated when the \reimp command is used. - { return "Uudelleen toteutettu sisäisistä syistä; API ei ole muuttunut."; } // "Reimplemented for internal reasons; the API is not affected." - QCString trWarning() - // this text is generated when the \warning command is used. + + /*! this text is generated when the \\warning command is used. */ + virtual QCString trWarning() { return "Varoitus"; } // "Warning" - // this text is generated when the \bug command is used. - QCString trBugsAndLimitations() - { return "Virheet ja rajoitukset"; } // "Bugs and limitations" - QCString trVersion() - // this text is generated when the \version command is used. + + /*! this text is generated when the \\version command is used. */ + virtual QCString trVersion() { return "Versio"; } // "Version" - QCString trDate() - // this text is generated when the \date command is used. + + /*! this text is generated when the \\date command is used. */ + virtual QCString trDate() { return "Päiväys"; } // "Date" - QCString trAuthors() - // this text is generated when the \author command is used. - { return "Tekijä(t)"; } // "Author(s)" - QCString trReturns() - // this text is generated when the \return command is used. + + /*! this text is generated when the \\return command is used. */ + virtual QCString trReturns() { return "Palauttaa"; } // "Returns" - QCString trSeeAlso() - // this text is generated when the \sa command is used. + + /*! this text is generated when the \\sa command is used. */ + virtual QCString trSeeAlso() { return "Katso myös"; } // "See also" - QCString trParameters() - // this text is generated when the \param command is used. + + /*! this text is generated when the \\param command is used. */ + virtual QCString trParameters() { return "Parametrit"; } // "Parameters" - QCString trExceptions() - // this text is generated when the \exception command is used. + + /*! this text is generated when the \\exception command is used. */ + virtual QCString trExceptions() { return "Poikkeukset"; } // "Exceptions" - QCString trGeneratedBy() - // this text is used in the title page of a LaTeX document. + + /*! this text is used in the title page of a LaTeX document. */ + virtual QCString trGeneratedBy() { return "Generoinut"; } // "Generated by" ////////////////////////////////////////////////////////////////////////// // new since 0.49-990307 ////////////////////////////////////////////////////////////////////////// - QCString trNamespaceList() - // used as the title of page containing all the index of all namespaces. + /*! used as the title of page containing all the index of all namespaces. */ + virtual QCString trNamespaceList() { return "Nimiavaruus Lista"; } // "Namespace List" - QCString trNamespaceListDescription(bool extractAll) - // used as an introduction to the namespace list + + /*! used as an introduction to the namespace list */ + virtual QCString trNamespaceListDescription(bool extractAll) { - QCString result="Täällä on lista kaikista "; // "Here is a list of all " - if (!extractAll) result+="dokumentoiduista "; // "Here is a list of all " + QCString result="Tässä on lista kaikista "; // "Here is a list of all " + if (!extractAll) result+="dokumentoiduista "; // "documented " result+="nimiavaruuksista lyhyen selitteen kera:"; // "namespaces with brief descriptions:" return result; } - QCString trFriends() - // used in the class documentation as a header before the list of all - // friends of a class + + /*! used in the class documentation as a header before the list of all + * friends of a class + */ + virtual QCString trFriends() { return "Ystävät"; } // "Friends" ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 ////////////////////////////////////////////////////////////////////////// - QCString trRelatedFunctionDocumentation() - // used in the class documentation as a header before the list of all - // related classes - { return "Ystävät ja niihin Liittyvien Funktioiden Dokumentaatio"; } // "Friends And Related Function Documentation" + /*! used in the class documentation as a header before the list of all + * related classes + */ + virtual QCString trRelatedFunctionDocumentation() + { return "Ystävät ja niihin liittyvien funktioiden dokumentaatio"; } // "Friends And Related Function Documentation" ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 ////////////////////////////////////////////////////////////////////////// + /*! used as the title of the HTML page of a class/struct/union */ virtual QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, - bool /*isTemplate*/) - // used as the title of the HTML page of a class/struct/union + bool isTemplate) { - QCString result=(QCString)clName+" "; + QCString result=(QCString)clName; switch(compType) { - case ClassDef::Class: result+=" Luokka"; break; // "Class" - case ClassDef::Struct: result+=" Struct"; break; // "Struct" - case ClassDef::Union: result+=" Union"; break; // "Union" - case ClassDef::Interface: result+=" Interface"; break; // "Interface" - case ClassDef::Protocol: result+=" Protocol"; break; // translate me! - case ClassDef::Category: result+=" Category"; break; // translate me! - case ClassDef::Exception: result+=" Exception"; break; // "Interface" + case ClassDef::Class: result+=" Luokka"; break; // " Class" + case ClassDef::Struct: result+=" Tietue"; break; // " Struct" + case ClassDef::Union: result+=" Yhdiste"; break; // " Union" + case ClassDef::Interface: result+=" Rajapinta"; break; // " Interface" + case ClassDef::Protocol: result+=" Protokolla"; break; // " Protocol" + case ClassDef::Category: result+=" Kategoria"; break; // " Category" + case ClassDef::Exception: result+=" Poikkeus"; break; // " Exception" } - result+=" Referenssi"; // " Reference" + if (isTemplate) result+="malli"; // " Template" + result+="referenssi"; // " Reference" return result; } + + /*! used as the title of the HTML page of a file */ virtual QCString trFileReference(const char *fileName) - // used as the title of the HTML page of a file { QCString result=fileName; - result+=" Tiedosto Referenssi"; // " File Reference" + result+=" Tiedostoreferenssi"; // " File Reference" return result; } + + /*! used as the title of the HTML page of a namespace */ virtual QCString trNamespaceReference(const char *namespaceName) - // used as the title of the HTML page of a namespace { QCString result=namespaceName; - result+=" Nimiavaruus Referenssi"; // " Namespace Reference" + result+=" Nimiavaruusreferenssi"; // " Namespace Reference" return result; } - // these are for the member sections of a class, struct or union virtual QCString trPublicMembers() - { return "Julkiset Jäsenet"; } // "Public Members" + { return "Julkiset jäsenfunktiot"; } // "Public Member Functions" virtual QCString trPublicSlots() - { return "Julkiset Slotit"; } // "Public Slots" + { return "Julkiset vastineet"; } // "Public Slots" virtual QCString trSignals() { return "Signaalit"; } // "Signals" virtual QCString trStaticPublicMembers() - { return "Staattiset Julkiset Jäsenet"; } // "Static Public Members" + { return "Staattiset julkiset jäsenfunktiot"; } // "Static Public Member Functions" virtual QCString trProtectedMembers() - { return "Suojatut Jäsenet"; } // "Protected Members" + { return "Suojatut jäsenfunktiot"; } // "Protected Member Functions" virtual QCString trProtectedSlots() - { return "Suojatut Slotit"; } // "Protected Slots" + { return "Suojatut vastineet"; } // "Protected Slots" virtual QCString trStaticProtectedMembers() - { return "Staattiset Suojatut Jäsenet"; } // "Static Protected Members" + { return "Staattiset suojatut jäsenfunktiot"; } // "Static Protected Member Functions" virtual QCString trPrivateMembers() - { return "Yksityiset Jäsenet"; } // "Private Members" + { return "Yksityiset jäsenfunktiot"; } // "Private Member Functions" virtual QCString trPrivateSlots() - { return "Yksityiset Slotit"; } // "Private Slots" + { return "Yksityiset vastineet"; } // "Private Slots" virtual QCString trStaticPrivateMembers() - { return "Staattiset Yksityiset Jäsenet"; } // "Static Private Members" - // end of member sections - + { return "Staattiset yksityiset jäsenfunktiot"; } // "Static Private Member Functions" + + /*! this function is used to produce a comma-separated list of items. + * use generateMarker(i) to indicate where item i should be put. + */ virtual QCString trWriteList(int numEntries) { - // this function is used to produce a comma-separated list of items. - // use generateMarker(i) to indicate where item i should be put. QCString result; int i; // the inherits list contain `numEntries' classes @@ -531,54 +746,1152 @@ class TranslatorFinnish : public TranslatorEnglish return result; } + /*! used in class documentation to produce a list of base classes, + * if class diagrams are disabled. + */ virtual QCString trInheritsList(int numEntries) - // used in class documentation to produce a list of base classes, - // if class diagrams are disabled. { return "Perijät "+trWriteList(numEntries)+"."; // "Inherits " } + + /*! used in class documentation to produce a list of super classes, + * if class diagrams are disabled. + */ virtual QCString trInheritedByList(int numEntries) - // used in class documentation to produce a list of super classes, - // if class diagrams are disabled. { return "Periytyy "+trWriteList(numEntries)+"."; // "Inherited by " } + + /*! used in member documentation blocks to produce a list of + * members that are hidden by this one. + */ virtual QCString trReimplementedFromList(int numEntries) - // used in member documentation blocks to produce a list of - // members that are hidden by this one. { - return "Uudelleen toteutettu "+trWriteList(numEntries)+"."; // "Reimplemented from " + return "Uudelleen toteutettaa "+trWriteList(numEntries)+"."; // "Reimplemented from " } + + /*! used in member documentation blocks to produce a list of + * all member that overwrite the implementation of this member. + */ virtual QCString trReimplementedInList(int numEntries) { - // used in member documentation blocks to produce a list of - // all member that overwrite the implementation of this member. return "Uudelleen toteutettu "+trWriteList(numEntries)+"."; // "Reimplemented in " } + /*! This is put above each page as a link to all members of namespaces. */ virtual QCString trNamespaceMembers() - // This is put above each page as a link to all members of namespaces. { return "Nimiavaruuden jäsenet"; } // "Namespace Members" + + /*! This is an introduction to the page with all namespace members */ virtual QCString trNamespaceMemberDescription(bool extractAll) - // This is an introduction to the page with all namespace members { - QCString result="Täällä on lista kaikista "; // "Here is a list of all " + QCString result="Tässä on lista kaikista "; // "Here is a list of all " if (!extractAll) result+="dokumentoiduista "; // "documented " result+="nimiavaruuden jäsenistä linkitettynä "; // "namespace members with links to " if (extractAll) result+="nimiavaruuden dokumentaatioon johon ne kuuluvat:"; // "the namespace documentation for each member:"; else - result+="nimiavaruuteen johon ne kuuluvat:"; // "the namespaces they belong to:" + result+="nimiavaruuksiin joihin ne kuuluvat:"; // "the namespaces they belong to:" return result; } + /*! This is used in LaTeX as the title of the chapter with the + * index of all namespaces. + */ virtual QCString trNamespaceIndex() - // This is used in LaTeX as the title of the chapter with the - // index of all namespaces. - { return "Nimiavaruuden Indeksi"; } // "Namespace Index" + { return "Nimiavaruuksien luettelo"; } // "Namespace Index" + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all namespaces. + */ virtual QCString trNamespaceDocumentation() - // This is used in LaTeX as the title of the chapter containing - // the documentation of all namespaces. - { return "Nimiavaruuden Dokumentaatio"; } // "Namespace Documentation" + { return "Nimiavaruuden dokumentaatio"; } // "Namespace Documentation" + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990522 +////////////////////////////////////////////////////////////////////////// + + /*! This is used in the documentation before the list of all + * namespaces in a file. + */ + virtual QCString trNamespaces() + { return "Nimiavaruudet"; } // "Namespaces"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990728 +////////////////////////////////////////////////////////////////////////// + + /*! This is put at the bottom of a class documentation page and is + * followed by a list of files that were used to generate the page. + */ + virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType, + bool single) + { // here s is one of " Class", " Struct" or " Union" + // single is true implies a single file + QCString result=(QCString)"Dokumentaatio tälle "; // "The documentation for this " + switch(compType) + { + case ClassDef::Class: result+="luokalle"; break; // "class" + case ClassDef::Struct: result+="tietueelle"; break; // "struct" + case ClassDef::Union: result+="yhdisteelle"; break; // "union" + case ClassDef::Interface: result+="rajapinnalle"; break; // "interface" + case ClassDef::Protocol: result+="protokollalle"; break; // "protocol" + case ClassDef::Category: result+="kategorialle"; break; // "category" + case ClassDef::Exception: result+="poikkeukselle"; break; // "exception" + } + if (single) result+=" generoitiin seuraavasta tiedostosta:"; // " was generated from the following file" + else result+=" generoitiin seuraavista tiedostoista:"; // ":" or "s:" + return result; + } + + /*! This is in the (quick) index as a link to the alphabetical compound + * list. + */ + virtual QCString trAlphabeticalList() + { return "Aakkosellinen lista"; } // "Alphabetical List" + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990901 +////////////////////////////////////////////////////////////////////////// + + /*! This is used as the heading text for the retval command. */ + virtual QCString trReturnValues() + { return "Paluuarvot"; } // "Return values" + + /*! This is in the (quick) index as a link to the main page (index.html) + */ + virtual QCString trMainPage() + { return "Pääsivu"; } // "Main Page" + + /*! This is used in references to page that are put in the LaTeX + * documentation. It should be an abbreviation of the word page. + */ + virtual QCString trPageAbbreviation() + { return "s."; } // "p." + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-991003 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trDefinedAtLineInSourceFile() + { + return "Määrittely tiedoston @1 rivillä @0."; // "Definition at line @0 of file @1." + } + virtual QCString trDefinedInSourceFile() + { + return "Määrittely tiedostossa @0."; // "Definition in file @0." + } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-991205 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trDeprecated() + { + return "Vanhentunut"; // "Deprecated" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.0.0 +////////////////////////////////////////////////////////////////////////// + + /*! this text is put before a collaboration diagram */ + virtual QCString trCollaborationDiagram(const char *clName) + { + return (QCString)"Yhteistyökaavio luokalle "+clName+":"; // "Collaboration diagram for "+clName+":" + } + /*! this text is put before an include dependency graph */ + virtual QCString trInclDepGraph(const char *fName) + { + return (QCString)"Sisällytysriippuvuuskaavio tiedostolle "+fName+":"; // "Include dependency graph for "+fName+":" + } + /*! header that is put before the list of constructor/destructors. */ + virtual QCString trConstructorDocumentation() + { + return "Rakentajien & purkajien dokumentaatio"; // "Constructor & Destructor Documentation"; + } + /*! Used in the file documentation to point to the corresponding sources. */ + virtual QCString trGotoSourceCode() + { + return "Siirry tämän tiedoston lähdekoodiin."; // "Go to the source code of this file." + } + /*! Used in the file sources to point to the corresponding documentation. */ + virtual QCString trGotoDocumentation() + { + return "Mene tämän tiedoston dokumentaatioon."; // "Go to the documentation of this file." + } + /*! Text for the \\pre command */ + virtual QCString trPrecondition() + { + return "Esiehto"; //"Precondition" + } + /*! Text for the \\post command */ + virtual QCString trPostcondition() + { + return "Jälkiehto"; // "Postcondition" + } + /*! Text for the \\invariant command */ + virtual QCString trInvariant() + { + return "Invariantti"; // vai "Pysyväisväittämä"? "Invariant" + } + /*! Text shown before a multi-line variable/enum initialization */ + virtual QCString trInitialValue() + { + return "Alkuarvo:"; // "Initial value:" + } + /*! Text used the source code in the file index */ + virtual QCString trCode() + { + return "koodi"; // "code" + } + virtual QCString trGraphicalHierarchy() + { + return "Graafinen luokkahierarkia"; // "Graphical Class Hierarchy" + } + virtual QCString trGotoGraphicalHierarchy() + { + return "Siirry graafiseen luokkahiearkiaan"; // "Go to the graphical class hierarchy" + } + virtual QCString trGotoTextualHierarchy() + { + return "Siirry tekstimuotoiseen luokkahierarkiaan"; // "Go to the textual class hierarchy" + } + virtual QCString trPageIndex() + { + return "Sivuhakemisto"; // "Page Index" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.1.0 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trNote() + { + // FIXME: Missähän merkityksessä tätä käytetään? + return "Huomautus"; // "Note" + } + virtual QCString trPublicTypes() + { + return "Julkiset tyypit"; // "Public Types" + } + virtual QCString trPublicAttribs() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Tietueen kentät"; // "Data Fields" + } + else + { + return "Julkiset attribuutit"; // "Public Attributes" + } + } + virtual QCString trStaticPublicAttribs() + { + return "Staattiset julkiset attribuutit"; // "Static Public Attributes" + } + virtual QCString trProtectedTypes() + { + return "Suojellut tyypit"; // "Protected Types" + } + virtual QCString trProtectedAttribs() + { + return "Suojellut attribuutit"; // "Protected Attributes" + } + virtual QCString trStaticProtectedAttribs() + { + return "Stattiset suojellut attribuutit"; // "Static Protected Attributes" + } + virtual QCString trPrivateTypes() + { + return "Yksityiset tyypit"; // "Private Types" + } + virtual QCString trPrivateAttribs() + { + return "Yksityiset attribuutit"; // "Private Attributes" + } + virtual QCString trStaticPrivateAttribs() + { + return "Staattiset yksityiset attribuutit"; // "Static Private Attributes" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.1.3 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a marker that is put before a \\todo item */ + virtual QCString trTodo() + { + return "Vielä tehtävä"; // "Todo" + } + /*! Used as the header of the todo list */ + virtual QCString trTodoList() + { + return "Tehtävälista"; // "Todo List" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.1.4 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trReferencedBy() + { + return "Viitattu"; // "Referenced by" + } + virtual QCString trRemarks() + { + return "Huomioita"; // "Remarks" + } + virtual QCString trAttention() + { + return "Huomio"; // "Attention" + } + virtual QCString trInclByDepGraph() + { + return "Tämä kaavio näyttää, mitkä tiedostot suorasti" + "tai epäsuorasti sisällyttävät tämän tiedoston"; + // "This graph shows which files directly or " + // "indirectly include this file:" + } + virtual QCString trSince() + { + // FIXME: Missä merkityksessä tätä käytetään? + return "Lähtien"; // "Since" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.1.5 +////////////////////////////////////////////////////////////////////////// + + /*! title of the graph legend page */ + virtual QCString trLegendTitle() + { + return "Kaavion selite"; // "Graph Legend" + } + /*! 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() + { + return + "Tämä sivu selittää, kuinka doxygenin generoimia kaavioita tulkitaan.

\n" + // "This page explains how to interpret the graphs that are generated " + // "by doxygen.

\n" + "Ajattele seuraavaa esimerkkiä:\n" + // "Consider the following example:\n" + "\\code\n" + "/*! Näkymätön luokka katkaisun vuoksi */\n" + // "/*! Invisible class because of truncation */\n" + "class Nakymaton { };\n\n" + // "class Invisible { };\n\n" + "/*! Katkaistu luokka, periytymissuhde on piilotettu */\n" + // "/*! Truncated class, inheritance relation is hidden */\n" + "class Katkaistu : public Nakymaton { };\n\n" + // "class Truncated : public Invisible { };\n\n" + "/* Luokkaa ei ole dokumentoitu doxygen-kommenteilla */\n" + // "/* Class not documented with doxygen comments */\n" + "class Dokumentoimaton { };\n\n" + // "class Undocumented { };\n\n" + "/*! Julkista periyttämistä käyttäen periytetty luokka */\n" + // "/*! Class that is inherited using public inheritance */\n" + "class JulkinenKanta : public Katkaistu { };\n\n" + // "class PublicBase : public Truncated { };\n\n" + "/*! Malliluokka */\n" + // "/*! A template class */\n" + "template class Malli { };\n\n" + // "template class Templ { };\n\n" + "/*! Suojeltua periytymistä käyttäen periytetty luokka */\n" + // "/*! Class that is inherited using protected inheritance */\n" + "class SuojeltuKanta { };\n\n" + // "class ProtectedBase { };\n\n" + "/*! Yksityistä periytymistä käyttäen periytetty luokka */\n" + // "/*! Class that is inherited using private inheritance */\n" + "class YksityisKanta { };\n\n" + // "class PrivateBase { };\n\n" + "/*! Luokka jota periytetty luokka käyttää */\n" + // "/*! Class that is used by the Inherited class */\n" + "class Kaytetty { };\n\n" + // "class Used { };\n\n" + "/*! Kantaluokka joka periytyy useasta muusta luokasta */\n" + // "/*! Super class that inherits a number of other classes */\n" + "class Periytetty : public JulkinenKanta,\n" + " : protected SuojeltuKanta,\n" + " : private YksityisKanta,\n" + " : public Dokumentoimaton,\n" + " : public Malli\n" + "{\n" + " private:\n" + " Kaytetty *m_kaytettyLuokka;\n" + "}\n"; + // "class Inherited : public PublicBase,\n" + // " protected ProtectedBase,\n" + // " private PrivateBase,\n" + // " public Undocumented,\n" + // " public Templ\n" + // "{\n" + // " private:\n" + // " Used *m_usedClass;\n" + // "};\n" + "\\endcode\n" + "Jos \\c MAX_DOT_GRAPH_HEIGHT-kenttä asetustiedostossa " + // "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " + "on asetettu arvoon 240, on tuloksena seuraavanlainen kaavio:" + // "is set to 240 this will result in the following graph:" + "

\"\"
\n" + "

\n" + "Ylläolevassa kaaviossa laatikoilla on seuraavat merkitykset\n:" + // "The boxes in the above graph have the following meaning:\n" + "

    \n" + "
  • Täytetty harmaa laatikko esittää tietuetta tai luokkaa, jolle " + // "
  • %A filled gray box represents the struct or class for which the " + "kaavio on generoitu.\n" + // "graph is generated.\n" + "
  • Mustareunainen laatikko merkitsee dokumentoitua tietuetta tai luokkaa.\n" + // "
  • %A box with a black border denotes a documented struct or class.\n" + "
  • Harmaareunainen laatikko merkitsee dokumentoimatonta tietuetta tai luokkaa.\n" + // "
  • %A box with a grey border denotes an undocumented struct or class.\n" + "
  • Punareunainen laatikko merkistee dokumentoitua luokkaa tai structia " + // "
  • %A box with a red border denotes a documented struct or class for" + "jolle ei näytetä kaikkia periytymis-/sisällyssuhteita. Kaavio " + // "which not all inheritance/containment relations are shown. %A graph is " + "katkaistaan, jos se ei mahdu määriteltyjen rajojen sisään.\n" + // "truncated if it does not fit within the specified boundaries.\n" + "
\n" + "Nuolilla on seuraavat merkitykset:\n" + // "The arrows have the following meaning:\n" + "
    \n" + "
  • Tummansinistä nuolta käytetään osoittamaan julkista periytymis" + // "
  • %A dark blue arrow is used to visualize a public inheritance " + "suhdetta kahden luokan välillä.\n" + // "relation between two classes.\n" + "
  • Tummanvihreää nuolta käytetään suojellussa periytymisessä.\n" + // "
  • %A dark green arrow is used for protected inheritance.\n" + "
  • Tummanpunaista nuolta käytetään yksityisessä periytymisessä.\n" + // "
  • %A dark red arrow is used for private inheritance.\n" + "
  • Purppuranväristä katkoviivaa käytetään, jos luokka sisältyy tai " + // "
  • %A purple dashed arrow is used if a class is contained or used " + "on toisen luokan käyttämä. Nuoli nimetään sillä muuttujalla/muuttujilla " + // "by another class. The arrow is labeled with the variable(s) " + "jonka läpi osoitettua luokkaa tai tietuetta käytetään.\n" + // "through which the pointed class or struct is accessible.\n" + "
  • Keltainen katkoviivalla piirretty nuoli merkitsee suhdetta mallin esiintymän ja " + // "
  • %A yellow dashed arrow denotes a relation between a template instance and " + "malliluokan välillä. Nuoli nimetään " + // "the template class it was instantiated from. The arrow is labeled with " + "mallin esiintymän malliparametrilla.\n" + // "the template parameters of the instance.\n" + "
\n"; + } + /*! text for the link to the legend page */ + virtual QCString trLegend() + { + return "selite"; // "legend" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.0 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a marker that is put before a test item */ + virtual QCString trTest() + { + return "Testi"; // "Test" + } + /*! Used as the header of the test list */ + virtual QCString trTestList() + { + return "Testilista"; // "Test List" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a section header for KDE-2 IDL methods */ + virtual QCString trDCOPMethods() + { + return "DCOP-jäsenfunktiot"; // "DCOP Member Functions" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.2 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a section header for IDL properties */ + virtual QCString trProperties() + { + return "Ominaisuudet"; // "Properties" + } + /*! Used as a section header for IDL property documentation */ + virtual QCString trPropertyDocumentation() + { + return "Ominaisuuksien dokumentaatio"; // "Property Documentation" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.4 +////////////////////////////////////////////////////////////////////////// + + /*! Used for Java classes in the summary section of Java packages */ + virtual QCString trClasses() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Tietueet"; // "Data Structures" + } + else + { + return "Luokat"; // "Classes" + } + } + /*! Used as the title of a Java package */ + virtual QCString trPackage(const char *name) + { + return (QCString)"Paketti "+name; // "Package " + } + /*! Title of the package index page */ + virtual QCString trPackageList() + { + return "Pakettilista"; // "Package List" + } + /*! The description of the package index page */ + virtual QCString trPackageListDescription() + { + return "Tässä ovat paketit lyhyiden selitysten kanssa (jos saatavilla):"; // "Here are the packages with brief descriptions (if available):" + } + /*! The link name in the Quick links header for each page */ + virtual QCString trPackages() + { + return "Paketit"; // "Packages" + } + /*! Text shown before a multi-line define */ + virtual QCString trDefineValue() + { + return "Arvo:"; // "Value:" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.5 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a marker that is put before a \\bug item */ + virtual QCString trBug() + { + return "Bugi"; // "Bug" + } + /*! Used as the header of the bug list */ + virtual QCString trBugList() + { + return "Bugilista"; // "Bug List" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.6 +////////////////////////////////////////////////////////////////////////// + + /*! Used as ansicpg for RTF file + * + * The following table shows the correlation of Charset name, Charset Value and + *
+     * Codepage number:
+     * Charset Name       Charset Value(hex)  Codepage number
+     * ------------------------------------------------------
+     * DEFAULT_CHARSET           1 (x01)
+     * SYMBOL_CHARSET            2 (x02)
+     * OEM_CHARSET             255 (xFF)
+     * ANSI_CHARSET              0 (x00)            1252
+     * RUSSIAN_CHARSET         204 (xCC)            1251
+     * EE_CHARSET              238 (xEE)            1250
+     * GREEK_CHARSET           161 (xA1)            1253
+     * TURKISH_CHARSET         162 (xA2)            1254
+     * BALTIC_CHARSET          186 (xBA)            1257
+     * HEBREW_CHARSET          177 (xB1)            1255
+     * ARABIC _CHARSET         178 (xB2)            1256
+     * SHIFTJIS_CHARSET        128 (x80)             932
+     * HANGEUL_CHARSET         129 (x81)             949
+     * GB2313_CHARSET          134 (x86)             936
+     * CHINESEBIG5_CHARSET     136 (x88)             950
+     * 
+ * + */ + virtual QCString trRTFansicp() + { + return "1252"; + } + + + /*! Used as ansicpg for RTF fcharset + * \see trRTFansicp() for a table of possible values. + */ + virtual QCString trRTFCharSet() + { + return "0"; + } + + /*! Used as header RTF general index */ + virtual QCString trRTFGeneralIndex() + { + return "Hakemisto"; // "Index" + } + + /*! 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 first_capital, bool singular) + { + QCString result((first_capital ? "Luokka" : "luokka")); // "Class" / "class" + if (!singular) result=(first_capital ? "Luokat" : "luokat"); // "+es" -> "Classes" / "classes" + 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 trFile(bool first_capital, bool singular) + { + QCString result((first_capital ? "Tiedosto" : "tiedosto")); // "File" / "file" + if (!singular) result+="t"; // "+s" -> "Files" / "files" + 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 trNamespace(bool first_capital, bool singular) + { + QCString result((first_capital ? "Nimiavaruus" : "nimiavaruus")); // "Namespace" / "namespace" + if (!singular) result=(first_capital ? "Nimiavaruudet" : "nimiavaruudet"); // "+s" + 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 first_capital, bool singular) + { + QCString result((first_capital ? "Ryhmä" : "ryhmä")); // "Group" / "group" + if (!singular) result+="t"; // "+s" + 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 trPage(bool first_capital, bool singular) + { + QCString result((first_capital ? "Sivu" : "sivu")); // "Page" / "page" + if (!singular) result+="t"; // "+s" + 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 trMember(bool first_capital, bool singular) + { + QCString result((first_capital ? "Jäsen" : "jäsen")); // "Member" / "member" + if (!singular) result+="et"; // "+s" + 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 trGlobal(bool first_capital, bool singular) + { + QCString result((first_capital ? "Globaali" : "globaali")); // "Global" / "global" + if (!singular) result+="t"; // "+s" + return result; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.7 +////////////////////////////////////////////////////////////////////////// + + /*! This text is generated when the \\author command is used and + * for the author section in man pages. */ + virtual QCString trAuthor(bool first_capital, bool singular) + { + QCString result((first_capital ? "Tekijä" : "tekijä")); // "Author" / "author" + if (!singular) result+="t"; // "+s" + return result; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.11 +////////////////////////////////////////////////////////////////////////// + + /*! This text is put before the list of members referenced by a member + */ + virtual QCString trReferences() + { + return "Viittaukset"; // "References" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.13 +////////////////////////////////////////////////////////////////////////// + + /*! used in member documentation blocks to produce a list of + * members that are implemented by this one. + */ + virtual QCString trImplementedFromList(int numEntries) + { + return "Toteuttaa "+trWriteList(numEntries)+"."; // "Implements " + } + + /*! used in member documentation blocks to produce a list of + * all members that implement this abstract member. + */ + virtual QCString trImplementedInList(int numEntries) + { + return "Toteutettu "+trWriteList(numEntries)+"."; // "Implemented in " + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Sisällysluettelo"; // "Table of Contents" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.17 +////////////////////////////////////////////////////////////////////////// + + /*! Used as the header of the list of item that have been + * flagged deprecated + */ + virtual QCString trDeprecatedList() + { + return "Vanhentuneiden lista"; // "Deprecated List" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.18 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a header for declaration section of the events found in + * a C# program + */ + virtual QCString trEvents() + { + return "Tapahtumat"; // "Events" + } + /*! Header used for the documentation section of a class' events. */ + virtual QCString trEventDocumentation() + { + return "Tapahtumien dokumentaatio"; // "Event Documentation" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a heading for a list of Java class types with package scope. + */ + virtual QCString trPackageTypes() + { + return "Paketin tyypit"; // "Package Types" + } + /*! Used as a heading for a list of Java class functions with package + * scope. + */ + virtual QCString trPackageMembers() + { + return "Paketin funktiot"; // "Package Functions" + } + /*! Used as a heading for a list of static Java class functions with + * package scope. + */ + virtual QCString trStaticPackageMembers() + { + return "Paketin staattiset funktiot"; // "Static Package Functions" + } + /*! Used as a heading for a list of Java class variables with package + * scope. + */ + virtual QCString trPackageAttribs() + { + return "Paketin attribuutit"; // "Package Attributes" + } + /*! Used as a heading for a list of static Java class variables with + * package scope. + */ + virtual QCString trStaticPackageAttribs() + { + return "Paketin staattiset attribuutit"; // "Static Package Attributes" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used in the quick index of a class/file/namespace member list page + * to link to the unfiltered list of all members. + */ + virtual QCString trAll() + { + return "Kaikki"; // "All" + } + /*! Put in front of the call graph for a function. */ + virtual QCString trCallGraph() + { + return "Tässä on kutsukaavio tälle funktiolle:"; // "Here is the call graph for this function:" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.3 +////////////////////////////////////////////////////////////////////////// + + /*! When the search engine is enabled this text is put in the header + * of each page before the field where one can enter the text to search + * for. + */ + virtual QCString trSearchForIndex() + { + return "Etsi"; // "Search for" + } + /*! This string is used as the title for the page listing the search + * results. + */ + virtual QCString trSearchResultsTitle() + { + return "Hakutulokset"; // "Search Results" + } + /*! This string is put just before listing the search results. The + * text can be different depending on the number of documents found. + * Inside the text you can put the special marker $num to insert + * the number representing the actual number of search results. + * The @a numDocuments parameter can be either 0, 1 or 2, where the + * value 2 represents 2 or more matches. HTML markup is allowed inside + * the returned string. + */ + virtual QCString trSearchResults(int numDocuments) + { + if (numDocuments==0) + { + return "Valitettavasti yksikään dokumentti ei vastannut hakuasi."; // "Sorry, no documents matching your query." + } + else if (numDocuments==1) + { + return "Löytyi 1 dokumentti, joka vastasi hakuasi."; // "Found 1 document matching your query."; + } + else + { + return "Löytyi $num dokumenttia, jotka vastasivat hakuasi. " // "Found $num documents matching your query. " + "Parhaat tulokset näytetään ensin."; // "Showing best matches first." + } + } + /*! This string is put before the list of matched words, for each search + * result. What follows is the list of words that matched the query. + */ + virtual QCString trSearchMatches() + { + return "Osumat:"; // "Matches:" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.8 +////////////////////////////////////////////////////////////////////////// + + /*! This is used in HTML as the title of page with source code for file filename + */ + virtual QCString trSourceFile(QCString& filename) + { + return filename + " lähdekooditiedosto"; // " Source File" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.9 +////////////////////////////////////////////////////////////////////////// + + /*! This is used as the name of the chapter containing the directory + * hierarchy. + */ + virtual QCString trDirIndex() + { return "Hakemistohierarkia"; } // "Directory Hierarchy" + + /*! This is used as the name of the chapter containing the documentation + * of the directories. + */ + virtual QCString trDirDocumentation() + { return "Hakemistojen dokumentaatio"; } // "Directory Documentation" + + /*! This is used as the title of the directory index and also in the + * Quick links of an HTML page, to link to the directory hierarchy. + */ + virtual QCString trDirectories() + { return "Hakemistot"; } // "Directories" + + /*! This returns a sentences that introduces the directory hierarchy. + * and the fact that it is sorted alphabetically per level + */ + virtual QCString trDirDescription() + { return "Tämä hakemistohierarkia on järjestetty aakkosellisesti tasoittain:"; + //This directory hierarchy is sorted roughly, " + // "but not completely, alphabetically:"; + } + + /*! This returns the title of a directory page. The name of the + * directory is passed via \a dirName. + */ + virtual QCString trDirReference(const char *dirName) + { QCString result=dirName; result+=" Hakemistoreferenssi"; return result; } + // " Directory Reference" + + /*! 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) + { + QCString result((first_capital ? "Hakemisto" : "hakemisto")); // "Director" / "director" + if (singular) result+=""; else result+="t"; // "+y" / "+ies" + return result; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.4.1 +////////////////////////////////////////////////////////////////////////// + + /*! This text is added to the documentation when the \\overload command + * is used for a overloaded function. + */ + virtual QCString trOverloadText() + { + return "Tämä on ylikuormitettu jäsenfunktio, ja se tarjotaan " + "käytön helpottamiseksi. Se eroaa ylläolevasta " + "funktiosta ainoastaan hyväksymiltä parametreiltaan."; + // "This is an overloaded member function, " + // "provided for convenience. It differs from the above " + // "function only in what argument(s) it accepts." + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.4.6 +////////////////////////////////////////////////////////////////////////// + + /*! This is used to introduce a caller (or called-by) graph */ + virtual QCString trCallerGraph() + { + return "Tässä on kutsukaavio tälle funktiolle:"; // "Here is the caller graph for this function:" + } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration values + */ + virtual QCString trEnumerationValueDocumentation() + { return "Luettelotyypin dokumentaatio"; } // "Enumerator Documentation" + +////////////////////////////////////////////////////////////////////////// +// new since 1.5.4 (mainly for Fortran) +////////////////////////////////////////////////////////////////////////// + + /*! header that is put before the list of member subprograms (Fortran). */ + virtual QCString trMemberFunctionDocumentationFortran() + { return "Jäsenfunktioiden/aliohjelmien dokumentaatio"; } // "Member Function/Subroutine Documentation" + + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + virtual QCString trCompoundListFortran() + { return "Tietotyyppien lista"; } // "Data Types List" + + /*! This is put above each page as a link to all members of compounds (Fortran). */ + virtual QCString trCompoundMembersFortran() + { return "Kentät"; } // "Data Fields"; + + /*! This is an introduction to the annotated compound list (Fortran). */ + virtual QCString trCompoundListDescriptionFortran() + { return "Tässä ovat tietotyypit lyhyillä selityksillä:"; } // "Here are the data types with brief descriptions:" + + /*! This is an introduction to the page with all data types (Fortran). */ + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + { + QCString result="Tässä on lista kaikista "; // "Here is a list of all " + if (!extractAll) + { + result+="dokumentoiduista "; // "documented " + } + result+="tietotyyppien jäsenistä"; // "data types members" + result+=", sekä linkit "; // " with links to " + if (!extractAll) + { + result+="tietueen dokumentaatioon jokaiselle jäsenelle"; // "the data structure documentation for each member" + } + else + { + result+="tietotyyppeihin, joihin ne kuuluvat:"; // "the data types they belong to:" + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index (Fortran). + */ + virtual QCString trCompoundIndexFortran() + { return "Tietotyyppien hakemisto"; } // "Data Type Index" + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all data types (Fortran). + */ + virtual QCString trTypeDocumentation() + { return "Tietotyyppien dokumentaatio"; } // "Data Type Documentation" + + /*! This is used in the documentation of a file as a header before the + * list of (global) subprograms (Fortran). + */ + virtual QCString trSubprograms() + { return "Funktiot/aliohjelmat"; } // "Functions/Subroutines" + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for subprograms (Fortran) + */ + virtual QCString trSubprogramDocumentation() + { return "Funktioiden/aliohjelmien dokumentaatio"; } // "Function/Subroutine Documentation" + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds (Fortran) + */ + virtual QCString trDataTypes() + { return "Tietotyypit"; } // "Data Types" + + /*! used as the title of page containing all the index of all modules (Fortran). */ + virtual QCString trModulesList() + { return "Moduulilista"; } // "Modules List" + + /*! used as an introduction to the modules list (Fortran) */ + virtual QCString trModulesListDescription(bool extractAll) + { + QCString result="Tässä on lista kaikista "; // "Here is a list of all " + if (!extractAll) result+="dokumentoiduista "; // "documented " + result+="moduuleista lyhillä selityksillä:"; // "modules with brief descriptions:" + return result; + } + + /*! used as the title of the HTML page of a module/type (Fortran) */ + virtual QCString trCompoundReferenceFortran(const char *clName, + ClassDef::CompoundType compType, + bool isTemplate) + { + QCString result=(QCString)clName; + switch(compType) + { + case ClassDef::Class: result+=" Moduuli"; break; // " Module" + case ClassDef::Struct: result+=" Tyyppi"; break; // " Type" + case ClassDef::Union: result+=" Yhdiste"; break; // " Union" + case ClassDef::Interface: result+=" Rajapinta"; break; // " Interface" + case ClassDef::Protocol: result+=" Protokolla"; break; // " Protocol" + case ClassDef::Category: result+=" Kategoria"; break; // " Category" + case ClassDef::Exception: result+=" Poikkeus"; break; // " Exception" + } + if (isTemplate) result+="malli"; // " Template" + result+="referenssi"; // " Reference" + return result; + } + /*! used as the title of the HTML page of a module (Fortran) */ + virtual QCString trModuleReference(const char *namespaceName) + { + QCString result=namespaceName; + result+=" Moduulin referenssi"; // " Module Reference" + return result; + } + + /*! This is put above each page as a link to all members of modules. (Fortran) */ + virtual QCString trModulesMembers() + { return "Moduulin jäsenet"; } // "Module Members" + + /*! This is an introduction to the page with all modules members (Fortran) */ + virtual QCString trModulesMemberDescription(bool extractAll) + { + QCString result="Tässä on lista moduulin kaikista "; // "Here is a list of all " + if (!extractAll) result+="dokumentoiduista"; // "documented " + result+="jäsenistä, sekä linkit "; // "module members with links to " + if (extractAll) + { + result+="moduulin dokumentaatioon jokaiselle jäsenelle:"; // "the module documentation for each member:" + } + else + { + result+="moduuleihin, joihin ne kuuluvat:"; // "the modules they belong to:" + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all modules (Fortran). + */ + virtual QCString trModulesIndex() + { return "Moduulien hakemisto"; } // "Modules Index" + + /*! 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 trModule(bool first_capital, bool singular) + { + QCString result((first_capital ? "Moduuli" : "moduuli")); // "Module" / "module" + if (!singular) result+="t"; // "+s" + return result; + } + /*! This is put at the bottom of a module documentation page and is + * followed by a list of files that were used to generate the page. + */ + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, + bool single) + { // here s is one of " Module", " Struct" or " Union" + // single is true implies a single file + QCString result=(QCString)"Dokumentaatio tälle "; // "The documentation for this " + switch(compType) + { + case ClassDef::Class: result+="moduulille"; break; // "module" + case ClassDef::Struct: result+="tyypille"; break; // "type" + case ClassDef::Union: result+="yhdisteelle"; break; // "union" + case ClassDef::Interface: result+="rajapinnalle"; break; // "interface" + case ClassDef::Protocol: result+="protokollalle"; break; // "protocol" + case ClassDef::Category: result+="kategorialle"; break; // "category" + case ClassDef::Exception: result+="poikkeukselle"; break; // "exception" + } + result+=" generoitiin "; // " was generated from the following file" + if (single) result+="seuraavasta tiedostosta:"; else result+="seuraavista tiedostoista:"; // ":" / "s:" + 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 trType(bool first_capital, bool singular) + { + QCString result((first_capital ? "Tyyppi" : "tyyppi")); // "Type" / "type" + if (!singular) result=(first_capital ? "Tyypit" : "tyypit"); // "+s" + 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 trSubprogram(bool first_capital, bool singular) + { + QCString result((first_capital ? "Aliohjelma" : "aliohjelma")); // "Subprogram" / "subprogram" + if (!singular) result+="t"; // "+s" + return result; + } + + /*! C# Type Constraint list */ + virtual QCString trTypeConstraints() + { + return "Tyyppien rajoitteet"; // "Type Constraints" + } + }; #endif diff --git a/src/translator_fr.h b/src/translator_fr.h index 45fec16..e7b66c8 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -158,7 +158,7 @@ class TranslatorFrench : public TranslatorAdapter_1_5_4 /*! header that is put before the list of typedefs. */ virtual QCString trMemberTypedefDocumentation() { - return "Documentation des définition de type membres"; } + return "Documentation des définitions de type membres"; } /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() diff --git a/src/util.cpp b/src/util.cpp index a1281f9..113105e 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1909,6 +1909,10 @@ QCString tempArgListToString(ArgumentList *al) { result+=a->type.right(a->type.length()-i-1); } + else // nothing found -> take whole name + { + result+=a->type; + } } a=al->next(); if (a) result+=", "; diff --git a/src/vhdldocgen.cpp b/src/vhdldocgen.cpp index 0fbd1b4..40f9af0 100644 --- a/src/vhdldocgen.cpp +++ b/src/vhdldocgen.cpp @@ -1153,7 +1153,7 @@ void VhdlDocGen::getFuncParams(QList& ql, const char* str) arg->attrib=s1.stripWhiteSpace(); arg->name=(tt.last()).stripWhiteSpace(); - // printf("--proto \n [%s] [%s] [%s] [%s] [%s]",ttype.data(),arg->type.data(),arg->attrib.data(),arg->name.data(),s1.data()); + // printf("--proto \n [%s] [%s] [%s] [%s] [%s]",ttype.data(),arg->type.data(),arg->attrib.data(),arg->name.data(),s1.data()); ql.append(arg); } kk--; @@ -1438,7 +1438,7 @@ void VhdlDocGen::writeProcedureProto(OutputList& ol,const ArgumentList* al,const ol.docify(" )"); -}// writePorcedure +} /*! * writes a function prototype to the output diff --git a/src/vhdlscanner.l b/src/vhdlscanner.l index 8fbd21b..784d395 100644 --- a/src/vhdlscanner.l +++ b/src/vhdlscanner.l @@ -83,6 +83,7 @@ static int scantype = 0; static int g_lastCommentContext = 0; static bool docBlockAutoBrief; static char docBlockTerm; +static int iDocLine = -1; //#define YY_A_INTERACTIVE 1 #define YY_NEVER_INTERACTIVE 1 @@ -122,8 +123,7 @@ static void addText (char *word, int llen) { while (llen>0) { - g_buf[iCounter]=*word; - *word++; + g_buf[iCounter]=*word++; iCounter++; llen--; } @@ -384,7 +384,7 @@ static void parseFunctionProto() { current->args+=","; } - Argument *arg=new Argument(); + Argument *arg=new Argument; Argument *hh=(Argument*)ql.at(k); arg->name=hh->name; arg->type=hh->type; @@ -437,6 +437,7 @@ void parserInit() lastEntity=0; bropen=0; openGroups=0; + iDocLine=-1; //isPrevDoc=FALSE; //prevDocEntry.reset(); qrl.clear(); @@ -446,10 +447,9 @@ void parserInit() VhdlDocGen::init(); } - uint SSIZE=inputFile.size()+1024; - if (g_buf==0) - g_buf=(char*)(calloc(SSIZE,sizeof(char))); + if (g_buf==0) free(g_buf); + g_buf=(char*)(calloc(SSIZE,sizeof(char))); if (g_buf==0) { @@ -1367,6 +1367,7 @@ ALLID [^;()\t ] */ <*>{BR}*"--!"[^{}\n][^\n]*\n/{B}*"--!" { // multi line comment + if (iDocLine==-1) iDocLine=yyLineNr; if (YY_START!=Comment) // Start of the comment block { iTextCounter=iCounter; @@ -1379,6 +1380,7 @@ ALLID [^;()\t ] } ^{B}*"--!"[^\n]* { + if (iDocLine==-1) iDocLine=yyLineNr; addText(vhdlscanYYtext,vhdlscanYYleng); lineCount(); } @@ -1395,6 +1397,7 @@ ALLID [^;()\t ] } <*>^{B}*"--!"[^\n]* { // one line comment + if (iDocLine==-1) iDocLine=yyLineNr; QCString qcs(yytext); int j=qcs.find("--!"); qcs=qcs.right(qcs.length()-3-j); @@ -1451,13 +1454,18 @@ static void handleCommentBlock(const QCString &doc,bool brief) int position=0; bool needsEntry=FALSE; Protection protection=Public; + if (brief) + current->briefLine = iDocLine; + else + current->docLine = iDocLine; + //printf("parseCommentBlock %p [%s]\n",current,doc.data()); while (parseCommentBlock( g_thisParser, current, doc, // text yyFileName, // file - brief ? current->briefLine : current->docLine, // line of block start + iDocLine, // line of block start brief, docBlockAutoBrief, FALSE, @@ -1480,6 +1488,7 @@ static void handleCommentBlock(const QCString &doc,bool brief) unput(docBlockTerm); docBlockTerm=0; } + iDocLine=-1; } #if 0 @@ -1668,6 +1677,7 @@ void VHDLLanguageScanner::parseInput(const char *fileName,const char *fileBuf,En current=0; groupLeaveFile(yyFileName,yyLineNr); + inputFile.close(); //mergeBrief(current_root); //mergeGrouping(current_root,0); diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index cb32b68..2906799 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -1238,7 +1238,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti) { t << convertToXML( insertTemplateSpecifierInScope( - bcd->classDef->displayName(),bcd->templSpecifiers) + bcd->classDef->name(),bcd->templSpecifiers) ); } else -- cgit v0.12