diff --git a/components/pochecker/graphstat.pp b/components/pochecker/graphstat.pp index cc0587fa09..d3eb8f54d6 100644 --- a/components/pochecker/graphstat.pp +++ b/components/pochecker/graphstat.pp @@ -99,7 +99,7 @@ begin AStat := FPoFamilyStats.Items[Index]; ListView.Hint := Format(sStatHint,[AStat.NrTranslated, AStat.PercTranslated, AStat.NrUnTranslated, AStat.PercUnTranslated, - AStat.NrFuzzy, AStat.PercFuzzy]); + AStat.NrFuzzy, AStat.PercFuzzy, AStat.NrErrors]); end else begin @@ -174,10 +174,12 @@ end; function TGraphStatForm.CreateBitmap(AStat: TStat): TBitmap; const FullCircle = 16 * 360; + QMark = ' ? '; var Bmp: TBitmap; Translated16Angle, UnTranslated16Angle, Fuzzy16Angle: Integer; PieRect: TRect; + TextSize: TSize; begin Bmp := TBitmap.Create; Bmp.SetSize(BmpWH,BmpWH); @@ -220,6 +222,17 @@ begin else Canvas.RadialPie(PieRect.Left,PieRect.Top,PieRect.Right,PieRect.Bottom,Translated16Angle+UnTranslated16Angle,Fuzzy16Angle); end; + if AStat.NrErrors <> 0 then begin + Bmp.Canvas.Font := Font; + Canvas.Font.Size := BmpWH div 6; + Canvas.Font.Style:= [fsBold]; + Canvas.Font.Color:= clRed; + TextSize := Bmp.Canvas.TextExtent(QMark); + Canvas.Brush.Color:= clBlack; + Canvas.Rectangle(0,PieRect.Bottom-TextSize.cy-4,TextSize.cx+4,PieRect.Bottom); + Canvas.Brush.Color:= clYellow; + Canvas.TextOut(2,PieRect.Bottom-TextSize.cy-2,QMark); + end; end; Result := Bmp; end; diff --git a/components/pochecker/languages/pocheckerconsts.cs.po b/components/pochecker/languages/pocheckerconsts.cs.po index a0fe1fbe13..1abe56b50c 100644 --- a/components/pochecker/languages/pocheckerconsts.cs.po +++ b/components/pochecker/languages/pocheckerconsts.cs.po @@ -251,6 +251,7 @@ msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" #: pocheckerconsts.stotalerrors diff --git a/components/pochecker/languages/pocheckerconsts.de.po b/components/pochecker/languages/pocheckerconsts.de.po index b648ce2918..ec46d2942b 100644 --- a/components/pochecker/languages/pocheckerconsts.de.po +++ b/components/pochecker/languages/pocheckerconsts.de.po @@ -251,10 +251,14 @@ msgstr "Zeige Statistik-Graphik" #| "%3d Translated (%3.1f%%)\n" #| "%3d UnTranslated (%3.1f%%)\n" #| "%3d Fuzzy (%3.1f%%)\n" +#| "%3d Translated (%3.1f%%)\n" +#| "%3d UnTranslated (%3.1f%%)\n" +#| "%3d Fuzzy (%3.1f%%)\n" msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" "%3d übersetzt (%3.1f%%)\n" "%3d nicht übersetzt (%3.1f%%)\n" diff --git a/components/pochecker/languages/pocheckerconsts.es.po b/components/pochecker/languages/pocheckerconsts.es.po index 791ba48837..992828711f 100644 --- a/components/pochecker/languages/pocheckerconsts.es.po +++ b/components/pochecker/languages/pocheckerconsts.es.po @@ -242,6 +242,7 @@ msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" #: pocheckerconsts.stotalerrors diff --git a/components/pochecker/languages/pocheckerconsts.hu.po b/components/pochecker/languages/pocheckerconsts.hu.po index 8abebbf85c..556a98eed0 100644 --- a/components/pochecker/languages/pocheckerconsts.hu.po +++ b/components/pochecker/languages/pocheckerconsts.hu.po @@ -247,6 +247,7 @@ msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" #: pocheckerconsts.stotalerrors diff --git a/components/pochecker/languages/pocheckerconsts.it.po b/components/pochecker/languages/pocheckerconsts.it.po index 90bfe69bd7..47d5bfaccb 100644 --- a/components/pochecker/languages/pocheckerconsts.it.po +++ b/components/pochecker/languages/pocheckerconsts.it.po @@ -244,6 +244,7 @@ msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" #: pocheckerconsts.stotalerrors diff --git a/components/pochecker/languages/pocheckerconsts.ja.po b/components/pochecker/languages/pocheckerconsts.ja.po index 16f91acb76..86bcce93d3 100644 --- a/components/pochecker/languages/pocheckerconsts.ja.po +++ b/components/pochecker/languages/pocheckerconsts.ja.po @@ -248,6 +248,7 @@ msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" #: pocheckerconsts.stotalerrors diff --git a/components/pochecker/languages/pocheckerconsts.lt.po b/components/pochecker/languages/pocheckerconsts.lt.po index ae4fa7a460..de9096a22e 100644 --- a/components/pochecker/languages/pocheckerconsts.lt.po +++ b/components/pochecker/languages/pocheckerconsts.lt.po @@ -242,6 +242,7 @@ msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" #: pocheckerconsts.stotalerrors diff --git a/components/pochecker/languages/pocheckerconsts.po b/components/pochecker/languages/pocheckerconsts.po index b7e52e3f80..c4386dd045 100644 --- a/components/pochecker/languages/pocheckerconsts.po +++ b/components/pochecker/languages/pocheckerconsts.po @@ -216,6 +216,7 @@ msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" #: pocheckerconsts.stotalerrors diff --git a/components/pochecker/languages/pocheckerconsts.pt_BR.po b/components/pochecker/languages/pocheckerconsts.pt_BR.po index 0aa28f6681..5b7ec4b905 100644 --- a/components/pochecker/languages/pocheckerconsts.pt_BR.po +++ b/components/pochecker/languages/pocheckerconsts.pt_BR.po @@ -242,6 +242,7 @@ msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" #: pocheckerconsts.stotalerrors diff --git a/components/pochecker/languages/pocheckerconsts.ru.po b/components/pochecker/languages/pocheckerconsts.ru.po index 65379520ce..742948d2ad 100644 --- a/components/pochecker/languages/pocheckerconsts.ru.po +++ b/components/pochecker/languages/pocheckerconsts.ru.po @@ -254,10 +254,14 @@ msgstr "Показать графическую сводку" #| "%3d Translated (%3.1f%%)\n" #| "%3d UnTranslated (%3.1f%%)\n" #| "%3d Fuzzy (%3.1f%%)\n" +#| "%3d Translated (%3.1f%%)\n" +#| "%3d UnTranslated (%3.1f%%)\n" +#| "%3d Fuzzy (%3.1f%%)\n" msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" "%3.1f%% переведённых строк\n" "%3.1f%% непереведённых строк\n" diff --git a/components/pochecker/languages/pocheckerconsts.uk.po b/components/pochecker/languages/pocheckerconsts.uk.po index 59713da62f..c9a102d303 100644 --- a/components/pochecker/languages/pocheckerconsts.uk.po +++ b/components/pochecker/languages/pocheckerconsts.uk.po @@ -239,6 +239,7 @@ msgid "" "%3d Translated (%3.1f%%)\n" "%3d UnTranslated (%3.1f%%)\n" "%3d Fuzzy (%3.1f%%)\n" +"%d Error(s) in Selected Tests\n" msgstr "" #: pocheckerconsts.stotalerrors diff --git a/components/pochecker/pocheckerconsts.pas b/components/pochecker/pocheckerconsts.pas index 086ac412ba..685db5d182 100644 --- a/components/pochecker/pocheckerconsts.pas +++ b/components/pochecker/pocheckerconsts.pas @@ -42,7 +42,8 @@ resourcestring sFuzzy = 'Fuzzy'; sStatHint = '%3d Translated (%3.1f%%)' + LineEnding + '%3d UnTranslated (%3.1f%%)' + LineEnding + - '%3d Fuzzy (%3.1f%%)'; + '%3d Fuzzy (%3.1f%%)' + LineEnding + + '%d Error(s) in Selected Tests'; sOpenFile = 'Open file %s in Ide Editor?'; SOpenFail = 'Unable to open file %s'; diff --git a/components/pochecker/pofamilies.pp b/components/pochecker/pofamilies.pp index 01643ac163..1901ae20ea 100644 --- a/components/pochecker/pofamilies.pp +++ b/components/pochecker/pofamilies.pp @@ -68,7 +68,7 @@ Type procedure CheckMissingIdentifiers(out ErrorCount: Integer; ErrorLog: TStrings); procedure CheckMismatchedOriginals(out ErrorCount: Integer; ErrorLog: TStrings); procedure CheckDuplicateOriginals(out WarningCount: Integer; ErrorLog: TStrings); - procedure CheckStatistics; + procedure CheckStatistics(ErrorCnt: Integer); public procedure RunTests(const TestTypes: TPoTestTypes; const TestOptions: TPoTestOptions; @@ -96,14 +96,16 @@ Type FNrTranslated: Integer; FNrUnTranslated: Integer; FNrFuzzy: Integer; + FNrErrors: Integer; public - constructor Create(APoName: String; ANrTotal, ANrTranslated, ANrUntranslated, ANrFuzzy: Integer); + constructor Create(APoName: String; ANrTotal, ANrTranslated, ANrUntranslated, ANrFuzzy, ANrErrors: Integer); function ShortPoName: String; property PoName: string read FPoName; property NrTotal: Integer read FNrTotal; property NrTranslated: Integer read FNrTranslated; property NrUnTranslated: Integer read FNrUnTranslated; property NrFuzzy: Integer read FNrFuzzy; + property NrErrors: Integer read FNrErrors; function PercTranslated: Double; inline; function PercUnTranslated: Double; inline; function PercFuzzy: Double; inline; @@ -119,7 +121,7 @@ Type function GetItems(Index: Integer): TStat; public procedure Clear; - procedure Add(AName: String; ANrTotal, ANrTranslated, ANrUnTranslated, ANrFuzzy: Integer); + procedure Add(AName: String; ANrTotal, ANrTranslated, ANrUnTranslated, ANrFuzzy, ANrErrors: Integer); constructor Create; destructor Destroy; override; procedure AddStatisticsToLog(ALog: TStrings); @@ -320,13 +322,14 @@ end; { TStat } -constructor TStat.Create(APoName: String; ANrTotal, ANrTranslated, ANrUntranslated, ANrFuzzy: Integer); +constructor TStat.Create(APoName: String; ANrTotal, ANrTranslated, ANrUntranslated, ANrFuzzy, ANrErrors: Integer); begin FPoName := APoName; FNrTotal := ANrTotal; FNrTranslated := ANrTranslated; FNrUntranslated := ANrUntranslated; FNrFuzzy := ANrFuzzy; + FNrErrors := ANrErrors; end; function TStat.ShortPoName: String; @@ -381,9 +384,9 @@ begin FList.Clear; end; -procedure TPoFamilyStats.Add(AName: String; ANrTotal, ANrTranslated, ANrUnTranslated, ANrFuzzy: Integer); +procedure TPoFamilyStats.Add(AName: String; ANrTotal, ANrTranslated, ANrUnTranslated, ANrFuzzy, ANrErrors: Integer); begin - FList.Add(TStat.Create(AName, ANrTotal, ANrTranslated, ANrUntranslated, ANrFuzzy)); + FList.Add(TStat.Create(AName, ANrTotal, ANrTranslated, ANrUntranslated, ANrFuzzy, ANrErrors)); end; constructor TPoFamilyStats.Create; @@ -758,7 +761,7 @@ begin //debugln('TPoFamily.CheckDuplicateOriginals: ',Dbgs(WarningCount),' Errors'); end; -procedure TPoFamily.CheckStatistics; +procedure TPoFamily.CheckStatistics(ErrorCnt: Integer); var i: Integer; CPoItem: TPOFileItem; @@ -791,7 +794,7 @@ begin NrTotal := NrTranslated + NrUntranslated + NrFuzzy; if (NrTotal > 0) then begin - FPoFamilyStats.Add(ChildName, NrTotal, NrTranslated, NrUntranslated, NrFuzzy); + FPoFamilyStats.Add(ChildName, NrTotal, NrTranslated, NrUntranslated, NrFuzzy, ErrorCnt); end; DoTestEnd(PoTestTypeNames[pttCheckFormatArgs], 0); //debugln('TPoFamily.CheckIncompatibleFormatArgs: ',Dbgs(ErrorCount),' Errors'); @@ -807,7 +810,7 @@ procedure TPoFamily.RunTests(const TestTypes: TPoTestTypes; const TestOptions: out ErrorCount, WarningCount: Integer; ErrorLog: TStrings); var SL: TStringList; - CurrErrCnt, CurrWarnCnt: Integer; + CurrErrCnt, CurrWarnCnt, ThisErrCnt: Integer; i: Integer; CurrChildName: String; S: String; @@ -897,6 +900,7 @@ begin //then iterate all Children for i := 0 to SL.Count - 1 do begin + ThisErrCnt:= 0; CurrChildName := SL.Strings[i]; //debugln('TPoFamily.RunTests: setting ChildName to ',CurrChildName); SetChildName(CurrChildName); @@ -905,12 +909,14 @@ begin begin CheckNrOfItems(CurrErrCnt, ErrorLog); ErrorCount := CurrErrCnt + ErrorCount; + ThisErrCnt := ThisErrCnt + CurrErrCnt; end; if (pttCheckFormatArgs in TestTypes) then begin CheckFormatArgs(CurrErrCnt, ErrorLog, (ptoIgnoreFuzzyStrings in TestOptions)); ErrorCount := CurrErrCnt + ErrorCount; + ThisErrCnt := ThisErrCnt + CurrErrCnt; end; @@ -918,19 +924,21 @@ begin begin CheckMissingIdentifiers(CurrErrCnt, ErrorLog); ErrorCount := CurrErrCnt + ErrorCount; + ThisErrCnt := ThisErrCnt + CurrErrCnt; end; if (pttCheckMismatchedOriginals in TestTypes) then begin CheckMismatchedOriginals(CurrErrCnt, ErrorLog); ErrorCount := CurrErrCnt + ErrorCount; + ThisErrCnt := ThisErrCnt + CurrErrCnt; end; //Always run this as the last test please if (pttCheckStatistics in TestTypes) then begin - CheckStatistics; + CheckStatistics(ThisErrCnt); end; { if (ptt in TestTypes) then