wiki test: show language counters

git-svn-id: trunk@35816 -
This commit is contained in:
mattias 2012-03-08 03:01:25 +00:00
parent 1e0d735c2c
commit f64b8a27d7
6 changed files with 130 additions and 12 deletions

1
.gitattributes vendored
View File

@ -2865,6 +2865,7 @@ components/wiki/lazwiki/wiki2xhtmlconvert.pas svneol=native#text/plain
components/wiki/lazwiki/wikiformat.pas svneol=native#text/plain
components/wiki/lazwiki/wikihtmlindexer.pas svneol=native#text/plain
components/wiki/lazwiki/wikiparser.pas svneol=native#text/plain
components/wiki/lazwiki/wikistrconsts.pas svneol=native#text/plain
components/wiki/myfphttpclient.pp svneol=native#text/plain
components/wiki/parsewikipage.lpi svneol=native#text/plain
components/wiki/parsewikipage.lpr svneol=native#text/plain

View File

@ -19,7 +19,7 @@
<Description Value="Parsing wiki exports, converters for fpdoc and html."/>
<License Value="GPL-2"/>
<Version Major="1" Release="1"/>
<Files Count="7">
<Files Count="8">
<Item1>
<Filename Value="wiki2fpdocconvert.pas"/>
<UnitName Value="Wiki2FPDocConvert"/>
@ -48,6 +48,10 @@
<Filename Value="wikihtmlindexer.pas"/>
<UnitName Value="wikihtmlindexer"/>
</Item7>
<Item8>
<Filename Value="wikistrconsts.pas"/>
<UnitName Value="wikistrconsts"/>
</Item8>
</Files>
<Type Value="RunAndDesignTime"/>
<RequiredPkgs Count="3">

View File

@ -8,7 +8,8 @@ interface
uses
Wiki2FPDocConvert, WikiFormat, Wiki2XHTMLConvert, Wiki2CHMConvert,
WikiParser, Wiki2HTMLConvert, wikihtmlindexer, LazarusPackageIntf;
WikiParser, Wiki2HTMLConvert, wikihtmlindexer, WikiStrConsts,
LazarusPackageIntf;
implementation

View File

@ -0,0 +1,40 @@
unit WikiStrConsts;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
resourcestring
rsLanguageEnglishOriginal = 'English or Original';
rsLanguageAfrikaans = 'Afrikaans';
rsLanguageArabic = 'Arabic';
rsLanguageCatalan = 'Catalan';
rsLanguageChinese = 'Chinese';
rsLanguageCzech = 'Czech';
rsLanguageDutch = 'Dutch';
rsLanguageEnglish = 'English';
rsLanguageFinnish = 'Finnish';
rsLanguageFrench = 'French';
rsLanguageGerman = 'German';
rsLanguageHebrew = 'Hebrew';
rsLanguageHungarian = 'Hungarian';
rsLanguageIndonesian = 'Indonesian';
rsLanguageItalian = 'Italian';
rsLanguageJapanese = 'Japanese';
rsLanguageLithuanian = 'Lithuanian';
rsLanguagePolish = 'Polish';
rsLanguagePortuguese = 'Portuguese';
rsLanguagePortugueseBr = 'Brazilian Portuguese';
rsLanguageRussian = 'Russian';
rsLanguageSlovak = 'Slovak';
rsLanguageSpanish = 'Spanish';
rsLanguageTurkish = 'Turkish';
rsLanguageUkrainian = 'Ukrainian';
implementation
end.

View File

@ -29,8 +29,8 @@ interface
uses
Classes, SysUtils, math, LazFileUtils, LazLogger, LazDbgLog, LazUTF8,
laz2_DOM, CodeToolsStructs, BasicCodeTools, KeywordFuncLists,
Wiki2HTMLConvert, Wiki2XHTMLConvert, WikiFormat, WikiParser, MTProcs;
laz2_DOM, CodeToolsStructs, BasicCodeTools, KeywordFuncLists, MTProcs,
Wiki2HTMLConvert, Wiki2XHTMLConvert, WikiFormat, WikiParser, WikiStrConsts;
type
TWikiHelp = class;
@ -235,7 +235,7 @@ type
// languages
function CollectAllLanguages(AsCaption: boolean): TStrings;
function LangCodeToCaption(LangCode: string): string;
function LangCodeToCaption(ID: string): string;
function LangCaptionToCode(Caption: string): string;
// search
@ -1542,14 +1542,63 @@ begin
end;
end;
function TWikiHelp.LangCodeToCaption(LangCode: string): string;
function TWikiHelp.LangCodeToCaption(ID: string): string;
begin
Result:=LangCode;
if ID='' then Result:='English, original'
else if CompareText(ID,'af')=0 then Result:=rsLanguageAfrikaans
else if CompareText(ID,'ar')=0 then Result:=rsLanguageArabic
else if CompareText(ID,'ca')=0 then Result:=rsLanguageCatalan
else if CompareText(ID,'cs')=0 then Result:=rsLanguageCzech
else if CompareText(ID,'de')=0 then Result:=rsLanguageGerman
else if CompareText(ID,'en')=0 then Result:=rsLanguageEnglish
else if CompareText(ID,'es')=0 then Result:=rsLanguageSpanish
else if CompareText(ID,'fi')=0 then Result:=rsLanguageFinnish
else if CompareText(ID,'fr')=0 then Result:=rsLanguageFrench
else if CompareText(ID,'he')=0 then Result:=rsLanguageHebrew
else if CompareText(ID,'hu')=0 then Result:=rsLanguageHungarian
else if CompareText(ID,'id')=0 then Result:=rsLanguageIndonesian
else if CompareText(ID,'it')=0 then Result:=rsLanguageItalian
else if CompareText(ID,'ja')=0 then Result:=rsLanguageJapanese
else if CompareText(ID,'lt')=0 then Result:=rsLanguageLithuanian
else if CompareText(ID,'nl')=0 then Result:=rsLanguageDutch
else if CompareText(ID,'pl')=0 then Result:=rsLanguagePolish
else if CompareText(ID,'pt')=0 then Result:=rsLanguagePortuguese
else if CompareText(ID,'pt_BR')=0 then Result:=rsLanguagePortugueseBr
else if CompareText(ID,'ru')=0 then Result:=rsLanguageRussian
else if CompareText(ID,'sk')=0 then Result:=rsLanguageSlovak
else if CompareText(ID,'tr')=0 then Result:=rsLanguageTurkish
else if CompareText(ID,'uk')=0 then Result:=rsLanguageUkrainian
else if CompareText(ID,'zh_CN')=0 then Result:=rsLanguageChinese
else Result:=ID;
end;
function TWikiHelp.LangCaptionToCode(Caption: string): string;
begin
Result:=Caption;
Result:='';
if Caption=rsLanguageEnglish then Result:='en'
else if Caption=rsLanguageAfrikaans then Result:='af'
else if Caption=rsLanguageArabic then Result:='ar'
else if Caption=rsLanguageCatalan then Result:='ca'
else if Caption=rsLanguageChinese then Result:='zh_CN'
else if Caption=rsLanguageCzech then Result:='cs'
else if Caption=rsLanguageDutch then Result:='nl'
else if Caption=rsLanguageFinnish then Result:='fi'
else if Caption=rsLanguageFrench then Result:='fr'
else if Caption=rsLanguageGerman then Result:='de'
else if Caption=rsLanguageHebrew then Result:='he'
else if Caption=rsLanguageHungarian then Result:='hu'
else if Caption=rsLanguageIndonesian then Result:='id'
else if Caption=rsLanguageItalian then Result:='it'
else if Caption=rsLanguageJapanese then Result:='ja'
else if Caption=rsLanguageLithuanian then Result:='lt'
else if Caption=rsLanguagePolish then Result:='pl'
else if Caption=rsLanguagePortuguese then Result:='pt'
else if Caption=rsLanguagePortugueseBr then Result:='pt_BR'
else if Caption=rsLanguageRussian then Result:='ru'
else if Caption=rsLanguageSlovak then Result:='sk'
else if Caption=rsLanguageSpanish then Result:='es'
else if Caption=rsLanguageTurkish then Result:='tk'
else if Caption=rsLanguageUkrainian then Result:='uk'
end;
function TWikiHelp.GetProgressCaption: string;

View File

@ -25,8 +25,8 @@ unit WikiSearchOptions;
interface
uses
Classes, SysUtils, FileUtil, WikiHelpManager, Forms, Controls, Graphics,
Dialogs, ExtCtrls, StdCtrls, ComCtrls;
Classes, SysUtils, FileUtil, AvgLvlTree, WikiHelpManager, WikiFormat, Forms,
Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, ComCtrls;
type
@ -69,11 +69,34 @@ end;
procedure TWikiSearchOptsWnd.UpdateAvailableLanguages;
var
Langs: TStrings;
Langs: TStringList;
i: Integer;
TVNode: TTreeNode;
LangToCount: TStringToPointerTree;
Lang: String;
S2PItem: PStringToPointerItem;
begin
Langs:=WikiHelp.CollectAllLanguages(true);
// collect all languages and count them
Langs:=TStringList.Create;
if WikiHelp.LoadComplete then begin
LangToCount:=TStringToPointerTree.Create(true);
try
for i:=0 to WikiHelp.Converter.Count-1 do begin
Lang:=GetWikiPageLanguage(WikiHelp.Converter[i].WikiDocumentName);
LangToCount[Lang]:=LangToCount[Lang]+1;
end;
for S2PItem in LangToCount do
if S2PItem^.Name<>'' then
Langs.Add(WikiHelp.LangCodeToCaption(S2PItem^.Name)+' ('+IntToStr({%H-}PtrUInt(S2PItem^.Value))+')');
Langs.Sort;
Langs.Insert(0,WikiHelp.LangCodeToCaption('')+' ('+IntToStr({%H-}PtrUInt(LangToCount['']))+')');
finally
LangToCount.Free;
end;
end else begin
Langs.Add(WikiHelp.LangCodeToCaption(''));
end;
LanguagesTreeView.BeginUpdate;
try
for i:=0 to Langs.Count-1 do begin