POChecker:

1) Made Results form multitabbed.
2) Detailed translation statistics are now always written to separate tab in Results form; corresponding item in test selection checklistbox is removed.
3) Detailed translation statistics are written in more compact form (less lines per element).
4) "Copy to clipboard"/"Save to file" buttons in Results form are replaced with context menu.
5) Regenerated translations and updated Russian translation.

git-svn-id: trunk@57599 -
This commit is contained in:
maxim 2018-04-03 22:15:51 +00:00
parent aef943e544
commit cb77def736
21 changed files with 1576 additions and 914 deletions

View File

@ -147,17 +147,13 @@ msgstr "Kontrola chybějících identifikátorů"
msgid "Check number of items"
msgstr "Zkontrolovat počet položek"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "Spočítat procentuální zastoupení (ne)přeložených a nepřesných řetězců"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr ""
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "Kopírovat do schránky"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -207,6 +203,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr ""
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr ""
@ -227,6 +227,14 @@ msgstr ""
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[Řádek %d] Nekompatibilní/vadné argumenty funkce format():"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[Řádek %d] v %s:"
@ -343,9 +351,9 @@ msgstr "Výsledky"
msgid "&Run Selected Tests"
msgstr "&Spustit vybrané testy"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "Uložit do souboru"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -432,10 +440,8 @@ msgid "Translation"
msgstr "Překlad"
#: pocheckerconsts.stranslationstatistics
#, fuzzy
#| msgid "Translation statistics for:"
msgid "Translation statistics per language:"
msgstr "Statistiky překladu pro:"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -143,17 +143,13 @@ msgstr "Prüfung auf fehlende Bezeichner"
msgid "Check number of items"
msgstr "Überprüfung der Anzahl der Einträge"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "Zeige Prozente (nicht) übersetzter und ungeklärter Zeichenketten"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr "Leeren"
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "In Zwischenablage kopieren"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -205,6 +201,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr "Ungeklärte Zeichenketten (insgesamt: %s)"
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr "Graphischer Überblick"
@ -225,6 +225,14 @@ msgstr "Als \"ungeklärt\" markierte Zeichenketten ignorieren"
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[Zeile: %d] Inkompatible und/oder ungültige Format()-Argumente für:"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[Zeile %d] in %s:"
@ -341,9 +349,9 @@ msgstr "Ergebnisse"
msgid "&Run Selected Tests"
msgstr "Gewählte Tests sta&rten"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "In Datei speichern"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -430,8 +438,8 @@ msgid "Translation"
msgstr "Übersetzung"
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgstr "Übersetzungsstatistik pro Sprache:"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -143,17 +143,13 @@ msgstr "Compruebe identificadores faltantes"
msgid "Check number of items"
msgstr "Compruebe el número de elementos"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "Comprobar porcentaje de cadenas traducidas/no traducidas y confusas (fuzzy)"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr "Limpiar"
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "Copiar en el portapapeles"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -205,6 +201,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr ""
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr "Resumen gráfico"
@ -225,6 +225,14 @@ msgstr "Ignorar cadenas traducidas que están marcadas como \"fuzzy\" (confusas)
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[Línea: %d] Formato de argumentos format() Incompatible y/o no válidos para:"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[Línea %d] en %s:"
@ -347,9 +355,9 @@ msgstr "Resultados"
msgid "&Run Selected Tests"
msgstr "&Ejecutar las Pruebas Seleccionadas"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "Guardar en archivo"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -442,8 +450,8 @@ msgid "Translation"
msgstr "Traducción"
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgstr "Estadísticas de traducción por lenguaje"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -143,17 +143,13 @@ msgstr "Vérifier les identificateurs manquants"
msgid "Check number of items"
msgstr "Vérifier le nombre d'éléments"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "Vérifier le pourcentage de chaînes floues et traduites ou non"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr "Nettoyer"
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "Copier vers le presse-papier"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -205,6 +201,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr "Chaînes floues (total : %s)"
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr "Résumé graphique"
@ -225,6 +225,14 @@ msgstr "Ignorer les chaînes traduites marquées comme \"floues\""
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[Ligne : %d] Arguments de format () incompatibles et/ou incorrects pour :"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[Ligne %d] dans %s :"
@ -341,9 +349,9 @@ msgstr "Résultats"
msgid "&Run Selected Tests"
msgstr "&Exécuter les tests choisis"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "Enregistrer dans un fichier"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -430,8 +438,8 @@ msgid "Translation"
msgstr "Traduction"
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgstr "Statistiques de traduction par langue :"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -143,17 +143,13 @@ msgstr "Hiányzó azonosítók elenőrzése"
msgid "Check number of items"
msgstr "Elemek számának ellenőrzése"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "A lefordított és bizonytalan szövegek százalékának ellenőrzése"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr "Kiürítés"
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "Másolás vágólapra"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -205,6 +201,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr "Bizonytalan szövegek (összesen: %s)"
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr "Grafikus összefoglalás"
@ -225,6 +225,14 @@ msgstr "A \"bizonytalan\"-nak jelölt fordítások kihagyása"
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[Sor: %d] Nem megfelelő és/vagy érvénytelen format() paraméterek a következőben:"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[Sor %d] ebben: %s:"
@ -341,9 +349,9 @@ msgstr "Eredmények"
msgid "&Run Selected Tests"
msgstr "Kijelölt tesztek futtatása"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "Mentés fájlba"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -430,8 +438,8 @@ msgid "Translation"
msgstr "Fordítás"
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgstr "Fordítási statisztika nyelvenként:"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -147,17 +147,13 @@ msgstr "Verifica identificatori mancanti"
msgid "Check number of items"
msgstr "Verifica il numero di voci"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "Verifica le percentuali di stringhe tradotte o incerte"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr "Azzera"
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "Copia negli appunti"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -209,6 +205,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr ""
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr "Riassunto grafico"
@ -229,6 +229,14 @@ msgstr "Ignora le stringhe tradotte marcate come \"incerte\""
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[Riga: %d] Argomenti di format()Incompatibili e/o non validi per:"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[Riga %d] in %s:"
@ -351,9 +359,9 @@ msgstr "Risultati"
msgid "&Run Selected Tests"
msgstr "A&vvia la verifica"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "Salva in un file"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -446,8 +454,8 @@ msgid "Translation"
msgstr "Traduzione"
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgstr "Statistiche di traduzione per lingua:"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -145,17 +145,13 @@ msgstr "欠けている識別子を検査"
msgid "Check number of items"
msgstr "項目数の検査"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "翻訳/未翻訳、未確定文字列の割合を検査"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr ""
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "クリップボードへコピー"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -205,6 +201,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr ""
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr ""
@ -225,6 +225,14 @@ msgstr ""
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[行:%d] 互換性のないもしくは無効な format() の引数:"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[行 %d] (%s 内)"
@ -341,9 +349,9 @@ msgstr "結果"
msgid "&Run Selected Tests"
msgstr "選択したテストを実行(&R)"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "ファイルへ保存"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -430,10 +438,8 @@ msgid "Translation"
msgstr "訳文"
#: pocheckerconsts.stranslationstatistics
#, fuzzy
#| msgid "Translation statistics for:"
msgid "Translation statistics per language:"
msgstr "翻訳状況:"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -144,17 +144,13 @@ msgstr "Tikrinti ar netrūksta identifikatorių"
msgid "Check number of items"
msgstr "Tikrinti ar tinkamas elementų kiekis"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "Tikrinti kiek procentų yra (ne-)verstų ir neaiškių vertimų"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr "Valyti"
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "Kopijuoti į iškarpinę"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -206,6 +202,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr "Neaiškūs vertimai (viso: %s)"
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr "Grafinis apibendrinimas"
@ -226,6 +226,14 @@ msgstr "Įgnoruoti vertimus, kurie pažymėti „fuzzy“ žyme"
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[Eilutė: %d] Nesuderinamų ir/arba klaidingų „format()“ argumentų turi:"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[Eilutė: %d] faile %s:"
@ -342,9 +350,9 @@ msgstr "Rezultatai"
msgid "&Run Selected Tests"
msgstr "&Vykdyti parinktus testavimus"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "Įrašyti faile"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -431,8 +439,8 @@ msgid "Translation"
msgstr "Vertimas"
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgstr "Vertimo statistika kiekvienai kalbai:"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -133,16 +133,12 @@ msgstr ""
msgid "Check number of items"
msgstr ""
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr ""
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr ""
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
@ -188,6 +184,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr ""
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr ""
@ -208,6 +208,14 @@ msgstr ""
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr ""
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr ""
@ -318,8 +326,8 @@ msgstr ""
msgid "&Run Selected Tests"
msgstr ""
#: pocheckerconsts.ssavecaption
msgid "Save to file"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
@ -401,7 +409,7 @@ msgid "Translation"
msgstr ""
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles

View File

@ -143,17 +143,13 @@ msgstr "Verificar identificadores perdidos"
msgid "Check number of items"
msgstr "Verificar número de itens"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "Verificar percentual de strings (não)traduzidas e incertas"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr "Limpar"
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "Copiar para área de transferência"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -205,6 +201,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr "Strings incertas (total: %s)"
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr "Sumário gráfico"
@ -225,6 +225,14 @@ msgstr "Ignorar strings traduzidas marcadas como \"incertas\""
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[Linha: %d] argumentos de format() incompatíveis ou inválidos para:"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[Linha %d] em %s:"
@ -341,9 +349,9 @@ msgstr "Resultados"
msgid "&Run Selected Tests"
msgstr "&Executar testes selecionados"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "Salvar para aquivo"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -430,8 +438,8 @@ msgid "Translation"
msgstr "Tradução"
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgstr "Estatísticas de tradução por língua:"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -125,7 +125,7 @@ msgstr "Невозможно записать файл%s%s%s%sВы можете
#: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values"
msgstr "Поиск дублирующихся непереведённых строк"
msgstr "Поиск дублирующихся исходных строк"
#: pocheckerconsts.scheckforincompatibleformatarguments
msgid "Check for incompatible format arguments"
@ -133,7 +133,7 @@ msgstr "Поиск несовместимых аргументов формат
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings"
msgstr "Поиск несоответствий непереведённых строк"
msgstr "Поиск несоответствий исходных строк"
#: pocheckerconsts.scheckmissingidentifiers
msgid "Check missing identifiers"
@ -143,17 +143,13 @@ msgstr "Поиск отсутствующих идентификаторов"
msgid "Check number of items"
msgstr "Проверка числа строк"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "Вывод статистики по (не)переведённым и неточным строкам"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr "Очистить"
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "Копировать в буфер обмена"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr "&Копировать"
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -205,6 +201,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr "Неточные переводы (всего: %s)"
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr "Общие сведения"
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr "Сводка в графическом виде"
@ -225,6 +225,14 @@ msgstr "Не учитывать \"неточные\" строки перевод
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[Строка: %d] Несовместимые и/или неверные аргументы для Format() в:"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr "Язык:"
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr "Последний путь поиска:"
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[Строка %d] в %s:"
@ -341,9 +349,9 @@ msgstr "Результаты"
msgid "&Run Selected Tests"
msgstr "&Запустить выбранные тесты"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "Сохранить в файл"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr "Сохранить &как ..."
#: pocheckerconsts.ssaveerror
msgid ""
@ -430,8 +438,8 @@ msgid "Translation"
msgstr "Перевод"
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgstr "Статистика переводов по языкам:"
msgid "Translation Statistics"
msgstr "Статистика переводов"
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -144,17 +144,13 @@ msgstr "Перевірити відсутні ідентифікатори"
msgid "Check number of items"
msgstr "Перевірити кількість елементів"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "Перевірити відсоток (не)перекладених і неточних рядків"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr "Очистити"
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "Копіювати в буфер"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
msgid "Creating icon nr. %d of %d"
@ -206,6 +202,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr "Неповні рядки (всього: %s)"
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr "Графічний підсумок"
@ -226,6 +226,14 @@ msgstr "Знехтувати перекладені рядки, позначен
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[Рядок: %d] Несумісні і/або неправильні аргументи format() для:"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[Рядок %d] в %s:"
@ -342,9 +350,9 @@ msgstr "Результати"
msgid "&Run Selected Tests"
msgstr "&Запустити вибрані тести"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "Зберегти в файл"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -431,8 +439,8 @@ msgid "Translation"
msgstr "Переклад"
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgstr "Статистика перекладу для мови:"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -146,17 +146,13 @@ msgstr "检查缺少标识符"
msgid "Check number of items"
msgstr "检查项目数量"
#: pocheckerconsts.scheckstatistics
msgid "Check percentage of (un)translated and fuzzy strings"
msgstr "检查翻译/未翻译和模糊字符串的比例"
#: pocheckerconsts.sclearlistbox
msgid "Clear"
msgstr "清除"
#: pocheckerconsts.scopycaption
msgid "Copy to clipboard"
msgstr "复制到剪切板"
#: pocheckerconsts.scopy
msgid "&Copy"
msgstr ""
#: pocheckerconsts.screatingiconxofy
#, fuzzy,badformat
@ -209,6 +205,10 @@ msgstr ""
msgid "Fuzzy strings (total: %s)"
msgstr ""
#: pocheckerconsts.sgeneralinfo
msgid "General Info"
msgstr ""
#: pocheckerconsts.sgrapstatformcaption
msgid "Graphical summary"
msgstr "图形化概要"
@ -229,6 +229,14 @@ msgstr "忽略翻译的被标记为“模糊不清”字符串"
msgid "[Line: %d] Incompatible and/or invalid format() arguments for:"
msgstr "[行: %d]不兼容 和/或 无效format()参数对于:"
#: pocheckerconsts.slanguage
msgid "Language:"
msgstr ""
#: pocheckerconsts.slastsearchpath
msgid "Last search path:"
msgstr ""
#: pocheckerconsts.slineinfilename
msgid "[Line %d] in %s:"
msgstr "[行: %d]在%s:"
@ -351,9 +359,9 @@ msgstr "结果"
msgid "&Run Selected Tests"
msgstr "运行选择的测试(&R)"
#: pocheckerconsts.ssavecaption
msgid "Save to file"
msgstr "保存到文件"
#: pocheckerconsts.ssaveas
msgid "Save &As ..."
msgstr ""
#: pocheckerconsts.ssaveerror
msgid ""
@ -446,8 +454,8 @@ msgid "Translation"
msgstr "翻译"
#: pocheckerconsts.stranslationstatistics
msgid "Translation statistics per language:"
msgstr "翻译统计每种语言"
msgid "Translation Statistics"
msgstr ""
#: pocheckerconsts.stroublesomefiles
msgid "Troublesome files"

View File

@ -26,6 +26,9 @@ resourcestring
sErrorOnCreate = 'Error creating an instance of TPoFamily:' + LineEnding + '%s';
sErrorOnCleanup = 'An unrecoverable error occurred' + LineEnding + '%s' + LineEnding + 'Please close the program';
sLastSearchPath = 'Last search path:';
sLanguage = 'Language:';
sTotalErrors = 'Total errors found: %d';
sTotalWarnings = 'Total warnings found: %d';
sTotalUntranslatedStrings = 'Total untranslated strings: %s';
@ -38,10 +41,12 @@ resourcestring
//Result form
sSaveError = 'Error saving file:' + LineEnding + '%s';
sSaveCaption = 'Save to file';
sResults = 'Results';
sCopyCaption = 'Copy to clipboard';
sShowStatGraph = 'Show statistics graph';
sGeneralInfo = 'General Info';
sTranslationStatistics = 'Translation Statistics';
sCopy = '&Copy';
sSaveAs ='Save &As ...';
//Graphical summary form
sGrapStatFormCaption = 'Graphical summary';
@ -71,7 +76,6 @@ resourcestring
sOriginal = 'Original';
sTranslation = 'Translation';
sErrorsByTest = 'Errors / warnings reported by %s for:';
sTranslationStatistics = 'Translation statistics per language:';
sCheckNumberOfItems = 'Check number of items';
sCheckForIncompatibleFormatArguments = 'Check for incompatible format '
+'arguments';
@ -80,8 +84,6 @@ resourcestring
+'untranslated strings';
sCheckForDuplicateUntranslatedValues = 'Check for duplicate untranslated '
+'values';
sCheckStatistics = 'Check percentage of (un)translated and fuzzy strings';
//sFindAllTranslatedPoFiles = 'Find all translated po-files';
sIgnoreFuzzyTranslations = 'Ignore translated strings marked as "fuzzy"';
sIncompatibleFormatArgs = '[Line: %d] Incompatible and/or invalid format() arguments for:' ;

View File

@ -14,7 +14,7 @@ object PoCheckerForm: TPoCheckerForm
OnDestroy = FormDestroy
OnShow = FormShow
ShowInTaskBar = stAlways
LCLVersion = '1.7'
LCLVersion = '1.9.0.0'
Visible = True
object TestListBox: TCheckListBox
AnchorSideLeft.Control = MasterPoListBox
@ -35,12 +35,11 @@ object PoCheckerForm: TPoCheckerForm
'sCheckMissingIdentifiers'
'sCheckForMismatchesInUntranslatedStrings'
'sCheckForDuplicateUntranslatedValues'
'sCheckStatistics'
)
ItemHeight = 17
TabOrder = 1
Data = {
06000000000000000000
050000000000000000
}
end
object SelectTestLabel: TLabel
@ -263,6 +262,7 @@ object PoCheckerForm: TPoCheckerForm
Width = 644
AutoSize = True
ButtonHeight = 50
ButtonWidth = 23
Caption = 'MainToolBar'
Images = TBImageList
ShowCaptions = True
@ -279,7 +279,6 @@ object PoCheckerForm: TPoCheckerForm
Left = 77
Height = 50
Top = 2
Width = 5
AutoSize = True
Caption = 'Div1ToolButton'
ShowCaption = False

View File

@ -168,7 +168,7 @@ var
i: integer;
begin
// Set / reset "basic" CheckListBox items.
for i := 0 to TestListBox.Count - 3 do
for i := 0 to TestListBox.Count - 2 do
TestListBox.Checked[i] := True;
end;
@ -521,6 +521,7 @@ var
TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount: Integer;
TotalPercTranslated: Double;
SL: TStrings;
StatL: TStrings;
ResultDlg: TResultDlgForm;
mr: TModalResult;
begin
@ -534,20 +535,36 @@ begin
NoErrLabel.Visible := False;
Application.ProcessMessages;
SL := TStringList.Create;
StatL := TStringList.Create;
mr := mrNone;
try
PoFamilyList.TestTypes := TestTypes;
PoFamilyList.TestOptions := TestOptions;
PoFamilyList.RunTests(ErrorCount, WarningCount, TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount, SL);
PoFamilyList.RunTests(ErrorCount, WarningCount, TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount, SL, StatL);
//debugln('RunSelectedTests: ', Format(sTotalErrors, [ErrorCount]));
//debugln(' ', Format(sTotalWarnings, [WarningCount]));
TotalPercTranslated := 100 * TotalTranslatedCount / (TotalTranslatedCount + TotalUntranslatedCount + TotalFuzzyCount);
SL.Insert(0, sLastSearchPath);
SL.Insert(1, SelectDirectoryDialog.FileName);
SL.Insert(2, '');
SL.Insert(3, sLanguage);
SL.Insert(4, LangFilter.Text);
SL.Insert(5, '');
SL.Add(Format(sTotalErrors, [ErrorCount]));
SL.Add(Format(sTotalWarnings, [WarningCount]));
SL.Add(Format(sTotalUntranslatedStrings, [IntToStr(TotalUntranslatedCount)]));
SL.Add(Format(sTotalFuzzyStrings, [IntToStr(TotalFuzzyCount)]));
SL.Add('');
SL.Add(Format(sTotalTranslatedStrings, [IntToStr(TotalTranslatedCount), TotalPercTranslated]));
StatL.Add(Format(sTotalUntranslatedStrings, [IntToStr(TotalUntranslatedCount)]));
StatL.Add(Format(sTotalFuzzyStrings, [IntToStr(TotalFuzzyCount)]));
StatL.Add('');
StatL.Add(Format(sTotalTranslatedStrings, [IntToStr(TotalTranslatedCount), TotalPercTranslated]));
ResultDlg := TResultDlgForm.Create(nil);
try
ResultDlg.FTotalTranslated := TotalTranslatedCount;
@ -555,7 +572,9 @@ begin
ResultDlg.FTotalFuzzy := TotalFuzzyCount;
ResultDlg.FTotalPercTranslated := TotalPercTranslated;
ResultDlg.Log.Assign(SL);
FreeAndNil(SL); //No need to keep 2 copies of this data
FreeAndNil(SL);
ResultDlg.StatLog.Assign(StatL);
FreeAndNil(StatL);
ResultDlg.PoFamilyList := PoFamilyList;
ResultDlg.PoFamilyStats := PoFamilyList.PoFamilyStats;
ResultDlg.Settings := FPoCheckerSettings;
@ -567,6 +586,8 @@ begin
finally
if Assigned(SL) then
SL.Free;
if Assigned(StatL) then
StatL.Free;
ClearStatusBar;
end;
if mr = mrOpenEditorFile then WindowState:= wsMinimized;

View File

@ -153,8 +153,7 @@ const
'CheckForIncompatibleFormatArguments',
'CheckMissingIdentifiers',
'CheckForMismatchesInUntranslatedStrings',
'CheckForDuplicateUntranslatedValues',
'CheckStatistics'
'CheckForDuplicateUntranslatedValues'
);
TestoptionNames: array[TPoTestOption] of String = (
'FindAllChildren',

View File

@ -18,7 +18,7 @@ uses
Type
TPoTestType = (pttCheckNrOfItems, pttCheckFormatArgs, pttCheckMissingIdentifiers,
pttCheckMismatchedOriginals, pttCheckDuplicateOriginals, pttCheckStatistics);
pttCheckMismatchedOriginals, pttCheckDuplicateOriginals);
TPoTestTypes = Set of TPoTestType;
TPoTestOption = (ptoFindAllChildren, ptoIgnoreFuzzyStrings);
@ -32,8 +32,7 @@ const
sCheckForIncompatibleFormatArguments,
sCheckMissingIdentifiers,
sCheckForMismatchesInUntranslatedStrings,
sCheckForDuplicateUntranslatedValues,
sCheckStatistics
sCheckForDuplicateUntranslatedValues
);
Type
@ -77,7 +76,8 @@ Type
procedure CheckStatistics(ErrorCnt: Integer);
public
procedure RunTests(out ErrorCount, WarningCount, TranslatedCount, UntranslatedCount, FuzzyCount: Integer; ErrorLog: TStrings);
procedure RunTests(out ErrorCount, WarningCount, TranslatedCount,
UntranslatedCount, FuzzyCount: Integer; ErrorLog, StatLog: TStrings);
property Master: TPOFile read FMaster;
property Child: TPOFile read FChild;
@ -272,7 +272,6 @@ begin
PoTestTypeNames[pttCheckMissingIdentifiers] := sCheckMissingIdentifiers;
PoTestTypeNames[pttCheckMismatchedOriginals] := sCheckForMismatchesInUntranslatedStrings;
PoTestTypeNames[pttCheckDuplicateOriginals] := sCheckForDuplicateUntranslatedValues;
PoTestTypeNames[pttCheckStatistics] := sCheckStatistics;
end;
@ -429,9 +428,6 @@ var
end;
begin
if (FList.Count = 0) then Exit;
ALog.Add(Divider);
ALog.Add(sTranslationStatistics);
ALog.Add('');
for i := 0 to FList.Count - 1 do
begin
Stat := TStat(FList.Items[i]);
@ -442,7 +438,6 @@ begin
ALog.Add('');
ALog.Add('');
end;
ALog.Add(Divider);
end;
{ TPoFamily }
@ -785,7 +780,6 @@ var
NrTranslated, NrUntranslated, NrFuzzy, NrTotal: Integer;
begin
//debugln('TPoFamily.CheckStatistics');
DoTestStart(sCheckStatistics, ShortChildName);
NrTranslated := FChild.NrTranslated;
NrUntranslated := FChild.NrUntranslated;
NrFuzzy := FChild.NrFuzzy;
@ -794,7 +788,6 @@ begin
begin
FPoFamilyStats.Add(ChildName, NrTotal, NrTranslated, NrUntranslated, NrFuzzy, ErrorCnt);
end;
DoTestEnd(PoTestTypeNames[pttCheckFormatArgs], 0);
//debugln('TPoFamily.CheckIncompatibleFormatArgs: ',Dbgs(ErrorCount),' Errors');
end;
@ -804,7 +797,7 @@ Pre conditions:
* Master and a matching Child must be assigned at start ot testing
* If a Child is assigned it must be child of Master
}
procedure TPoFamily.RunTests(out ErrorCount, WarningCount, TranslatedCount, UntranslatedCount, FuzzyCount: Integer; ErrorLog: TStrings);
procedure TPoFamily.RunTests(out ErrorCount, WarningCount, TranslatedCount, UntranslatedCount, FuzzyCount: Integer; ErrorLog, StatLog: TStrings);
var
SL: TStringList;
CurrErrCnt, CurrWarnCnt, ThisErrCnt: Integer;
@ -947,11 +940,9 @@ begin
end;
}
end;
//Add statistics at the end of the log
if (pttCheckStatistics in FTestTypes) and (FPoFamilyStats.Count > 0) then
begin
FPoFamilyStats.AddStatisticsToLog(ErrorLog);
end;
//Generate statistics
if FPoFamilyStats.Count > 0 then
FPoFamilyStats.AddStatisticsToLog(StatLog);
finally
SL.Free;
end;

View File

@ -36,7 +36,7 @@ type
destructor Destroy; override;
procedure Add(PoFamily: TPofamily);
function Count: Integer;
procedure RunTests(out ErrorCount, WarningCount, TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount: Integer; ErrorLog: TStrings);
procedure RunTests(out ErrorCount, WarningCount, TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount: Integer; ErrorLog, StatLog: TStrings);
property Items[Index: Integer]: TPoFamily read GetItem; // write SetItem;
property PoFamilyStats: TPoFamilyStats read FPoFamilyStats;
property TestTypes: TPoTestTypes read FTestTypes write FTestTypes;
@ -117,26 +117,24 @@ begin
end;
procedure TPoFamilyList.RunTests(out ErrorCount, WarningCount, TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount: Integer;
ErrorLog: TStrings);
ErrorLog, StatLog: TStrings);
var
Index, ThisErrorCount, ThisWarningCount: Integer;
ThisTranslatedCount, ThisUntranslatedCount, ThisFuzzyCount: Integer;
PoFamily: TPoFamily;
//ThisLog: TStringList;
begin
if (FLangID = lang_all) then
Include(FTestOptions,ptoFindAllChildren)
else
Exclude(FTestOptions,ptoFindAllChildren);
ErrorLog.Clear;
//ThisLog := TStringList.Create;
StatLog.Clear;
ErrorCount := NoError;
WarningCount := NoError;
TotalTranslatedCount := 0;
TotalUntranslatedCount := 0;
TotalFuzzyCount := 0;
FPoFamilyStats.Clear;
try
for Index := 0 to FList.Count - 1 do
begin
PoFamily := GetItem(Index);
@ -144,19 +142,13 @@ begin
PoFamily.OnTestEnd := FOnTestEnd;
PoFamily.TestTypes := FTesttypes;
PoFamily.TestOptions := FTestOptions;
PoFamily.RunTests(ThisErrorCount, ThisWarningCount, ThisTranslatedCount, ThisUntranslatedCount, ThisFuzzyCount, ErrorLog);
PoFamily.RunTests(ThisErrorCount, ThisWarningCount, ThisTranslatedCount, ThisUntranslatedCount, ThisFuzzyCount, ErrorLog, StatLog);
PoFamily.PoFamilyStats.AddItemsTo(FPoFamilyStats);
ErrorCount := ErrorCount + ThisErrorCount;
WarningCount := WarningCount + ThisWarningCount;
TotalTranslatedCount := TotalTranslatedCount + ThisTranslatedCount;
TotalUntranslatedCount := TotalUntranslatedCount + ThisUntranslatedCount;
TotalFuzzyCount := TotalFuzzyCount + ThisFuzzyCount;
//ThisLog.AddStrings(ErrorLog)
end;
finally
//ThisLog.Free;
end;
end;

View File

@ -13,7 +13,7 @@ object ResultDlgForm: TResultDlgForm
OnDestroy = FormDestroy
OnKeyDown = FormKeyDown
OnShow = FormShow
LCLVersion = '1.7'
LCLVersion = '1.9.0.0'
object Panel1: TPanel
Left = 0
Height = 50
@ -40,118 +40,14 @@ object ResultDlgForm: TResultDlgForm
DefaultCaption = True
Kind = bkClose
ModalResult = 11
TabOrder = 3
end
object SaveBtn: TBitBtn
AnchorSideTop.Control = CloseBtn
AnchorSideRight.Control = CloseBtn
AnchorSideBottom.Control = CloseBtn
AnchorSideBottom.Side = asrBottom
Left = 535
Height = 26
Top = 12
Width = 103
Anchors = [akTop, akRight, akBottom]
AutoSize = True
BorderSpacing.Right = 6
Caption = '&Save to file'
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000BA6A368FB969
35B5B86935EEB76835FFB56835FFB46734FFB26634FFB06533FFAE6433FFAC63
32FFAA6232FFA96132FFA86031FFA76031FEA66031F1A86131C4BA6A35DEEBC6
ADFFEAC5ADFFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB
F8FFFEFBF8FFFEFBF8FFFEFBF8FFC89A7CFFC79879FFA76031EDBA6B37FEEDCA
B3FFE0A27AFFFEFAF7FF62C088FF62C088FF62C088FF62C088FF62C088FF62C0
88FF62C088FF62C088FFFDF9F6FFCA8D65FFC99B7CFFA76031FEBB6C38FFEECC
B6FFE1A27AFFFEFAF7FFBFDCC2FFBFDCC2FFBFDCC2FFBFDCC2FFBFDCC2FFBFDC
C2FFBFDCC2FFBFDCC2FFFDF9F6FFCD9068FFCC9E81FFA86132FFBB6B38FFEFCE
B8FFE1A279FFFEFAF7FF62C088FF62C088FF62C088FF62C088FF62C088FF62C0
88FF62C088FF62C088FFFDF9F6FFCF936AFFCEA384FFAA6132FFBA6A36FFEFD0
BBFFE2A27AFFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB
F8FFFEFBF8FFFEFBF8FFFEFBF8FFD3966DFFD2A78AFFAB6232FFBB6A36FFF0D2
BEFFE2A37AFFE2A37AFFE1A37AFFE2A37BFFE1A37BFFE0A178FFDE9F77FFDD9F
76FFDC9D74FFD99B72FFD89971FFD69970FFD5AB8EFFAD6333FFBB6A36FFF2D5
C2FFE3A37AFFE3A37AFFE2A37BFFE2A37BFFE2A47BFFE1A279FFE0A178FFDEA0
77FFDE9E75FFDC9D74FFDA9B73FFD99B73FFDAB095FFAF6433FFBB6A36FFF2D8
C5FFE3A47BFFE3A37AFFE3A47AFFE2A47BFFE2A37BFFE1A37BFFE1A279FFDFA0
77FFDE9F76FFDD9E74FFDB9C72FFDC9D74FFDDB59AFFB16534FFBB6B36FFF4D9
C7FFE6A67DFFC88C64FFC98D65FFC98E67FFCB926CFFCB926DFFCA9069FFC88C
65FFC88C64FFC88C64FFC88C64FFDA9C74FFE1BA9FFFB36634FFBB6B36FEF4DC
C9FFE7A77DFFF9ECE1FFF9ECE1FFF9EDE3FFFCF4EEFFFDFAF7FFFDF7F3FFFAED
E5FFF7E7DBFFF7E5D9FFF6E5D8FFDEA077FFE4BEA4FFB46734FFBC6B36FAF5DD
CCFFE7A87EFFFAF0E8FFFAF0E8FFC98D66FFFAF0E9FFFDF8F3FFFEFAF8FFFCF4
EFFFF9E9DFFFF7E7DBFFF7E5D9FFE0A278FFE7C2A9FFB66835FFBC6B36F0F6DF
D0FFE8A87EFFFCF6F1FFFCF6F1FFC88C64FFFAF1E9FFFBF4EEFFFDFAF7FFFDF9
F6FFFAF0E8FFF8E8DDFFF7E6DBFFE1A37AFFEFD5C3FFB76935FEBC6B36D8F6DF
D1FFE9AA80FFFEFAF6FFFDFAF6FFC88C64FFFBF3EEFFFBF1EAFFFCF6F2FFFEFB
F8FFFCF6F1FFF9ECE2FFF8E7DBFFEED0BAFFECD0BDFFBB703EF8BC6B369BF6E0
D1FFF7E0D1FFFEFBF8FFFEFBF7FFFDF9F6FFFCF5F0FFFAF0EAFFFBF2EDFFFDF9
F6FFFDFAF7FFFBF1EBFFF8E9DFFEECD0BDFBC9895EECB5693563BC6B3671BC6B
3690BC6B36CCBC6B36EEBC6B36FABB6B36FEBB6B36FFBB6A36FFBB6A36FFBC6C
39FFBD6E3BFFBB6D3AFFBB6B38EFBB703ECBB6693554FFFFFF00
}
OnClick = SaveBtnClick
TabOrder = 2
end
object CopyBtn: TBitBtn
AnchorSideTop.Control = CloseBtn
AnchorSideRight.Control = SaveBtn
AnchorSideBottom.Control = CloseBtn
AnchorSideBottom.Side = asrBottom
Left = 388
Height = 26
Top = 12
Width = 141
Anchors = [akTop, akRight, akBottom]
AutoSize = True
BorderSpacing.Right = 6
Caption = 'Copy to clipboard'
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C57342C1C67545E6C87545FEC775
45F3C87545F3C77545F3C77545F3C87546F4C57444E8CA7F53F1FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C77949EDFCF3ECFFFAF1E8FFFAF0
E7FFFBF1E9FFFBF2EAFFFBF2EAFFFBF2EBFFFDF4EEFFCA8054F9FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CF8253FFEFF1E7FFFFE9D9FFFFEA
DBFFFFE9D9FFFFE7D7FFFFE5D2FFFFE2CBFFEFF2E8FFCE8156FFFFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CC8352FBFBF5EEFFFFE9D9FFFFEA
DBFFFFE9D9FFFFE7D7FFFFE5D2FFFFE2CBFFFBF6EFFFCC8355FEC7794AB9C879
4BCEC87545DDC77545D4C87545D4C77545D4CA8452FFFFF7F1FFFFE9D9FFFFEA
DBFFFFE9D9FFFFE7D7FFFFE5D2FFFFE2CBFFFFF7F1FFCB8555FEC87C4ED3FCF3
ECDEFAF1E8DEFAF0E7DEFBF1E9DEFBF2EADEE4BA91FFFFF7F0FFFFE7D5FFFDE7
D6FFFDE6D4FFFCE4D0FFFBE3CBFFFADCC2FFFEF3E8FFCC8656FECF8253DEEFF1
E7DEFFE9D9DEFFEADBDEFFE9D9DEFFE7D7DEE4BB91FFFFF7F2FFFEE7D5FFFEE7
D5FFFDE5D1FFFAE0CAFFF9DEC4FFF7D9BCFFFDF2E7FFCC8757FECC8352DBFBF5
EEDEFFE9D9DEFFEADBDEFFE9D9DEFFE7D7DEE4BB92FFFEF7F1FFFCE5D2FFFCE4
D1FFFBE2CCFFF9DDC4FFF6D7BBFFF3D1AFFFFAEFE4FFCC8758FECA8452DBFFF7
F1DEFFE9D9DEFFEADBDEFFE9D9DEFFE7D7DEE4BB92FFFEF6F0FFFCE2CDFFFCE3
CDFFFADFC8FFF7D9BCFFF5E9DDFFFAF3EBFFFBF8F3FFCA8353FECB8553DBFFF7
F0DEFFE7D5DEFDE7D6DEFDE6D4DEFCE4D0DEE4BB93FFFEF5EDFFFCDEC5FFFBE0
C7FFF9DCC2FFF5D3B4FFFEF9F3FFFAE2C4FFECC193FFC37D4893CB8654DBFFF7
F2DEFEE7D5DEFEE7D5DEFDE5D1DEFAE0CADEE5BE96FFFFFFFEFFFDF3E9FFFDF3
EAFFFCF2E8FFFAEFE3FFFAF2E7FFEABB88FFCF8555B3B4693D0CCB8655DBFEF7
F1DEFCE5D2DEFCE4D1DEFBE2CCDEF9DDC4DEEAC39DFFE6BF96FFE4BB92FFE4BB
92FFD1A06CF5D09E6DF6CC965FDAC479427EB2673C09FFFFFF00CB8655DBFEF6
F0DEFCE2CDDEFCE3CDDEFADFC8DEF7D9BCDEF5E9DDDEFAF3EBDEFBF8F3DECD95
65DCFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CB8656DAFEF5
EDDEFCDEC5DEFBE0C7DEF9DCC2DEF5D3B4DEFEF9F3DEFAE2C4DEECC193DEC37D
4880FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CA8554D0FFFF
FFDBFDF3E9DEFDF3EADEFCF2E8DEFAEFE3DEFAF2E7DEEABB88DECF85559CB469
3D0AFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C77947AACC86
55CECC8857DECB8856DBCC8856DBCB8757DBCA8350D0C479426EB2673C08FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
}
OnClick = CopyBtnClick
TabOrder = 1
end
object GraphStatBtn: TBitBtn
AnchorSideTop.Control = CloseBtn
AnchorSideRight.Control = CopyBtn
AnchorSideRight.Control = CloseBtn
AnchorSideBottom.Control = CloseBtn
AnchorSideBottom.Side = asrBottom
Left = 225
Left = 481
Height = 26
Top = 12
Width = 157
@ -199,17 +95,52 @@ object ResultDlgForm: TResultDlgForm
TabOrder = 0
end
end
object ResultPageControl: TPageControl
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Panel1
Left = 6
Height = 573
Top = 6
Width = 730
ActivePage = GeneralTabSheet
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
PopupMenu = MemoPopupMenu
TabIndex = 0
TabOrder = 0
object GeneralTabSheet: TTabSheet
Caption = 'General Info'
ClientHeight = 545
ClientWidth = 722
inline LogMemo: TSynEdit
Left = 98
Height = 150
Top = 120
Width = 200
AnchorSideLeft.Control = GeneralTabSheet
AnchorSideTop.Control = GeneralTabSheet
AnchorSideRight.Control = GeneralTabSheet
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = GeneralTabSheet
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 533
Top = 6
Width = 710
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
Anchors = [akTop, akLeft, akRight, akBottom]
Font.Height = -13
Font.Name = 'Courier New'
Font.Pitch = fpFixed
Font.Quality = fqNonAntialiased
ParentColor = False
ParentFont = False
PopupMenu = MemoPopupMenu
TabOrder = 0
Gutter.Width = 21
Gutter.MouseActions = <
@ -766,10 +697,608 @@ object ResultDlgForm: TResultDlgForm
end
end
end
end
object StatisticsTabSheet: TTabSheet
Caption = 'Translation Statistics'
ClientHeight = 545
ClientWidth = 722
inline StatMemo: TSynEdit
AnchorSideLeft.Control = StatisticsTabSheet
AnchorSideTop.Control = StatisticsTabSheet
AnchorSideRight.Control = StatisticsTabSheet
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = StatisticsTabSheet
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 533
Top = 6
Width = 710
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
Anchors = [akTop, akLeft, akRight, akBottom]
Font.Height = -13
Font.Name = 'Courier New'
Font.Pitch = fpFixed
Font.Quality = fqNonAntialiased
ParentColor = False
ParentFont = False
PopupMenu = MemoPopupMenu
TabOrder = 0
Gutter.Width = 21
Gutter.MouseActions = <
item
ClickCount = ccAny
ClickDir = cdDown
Command = emcOnMainGutterClick
end
item
Button = mbRight
Command = emcContextMenu
end>
RightGutter.Width = 0
RightGutter.MouseActions = <
item
ClickCount = ccAny
ClickDir = cdDown
Command = emcOnMainGutterClick
end
item
Button = mbRight
Command = emcContextMenu
end>
Keystrokes = <
item
Command = ecUp
ShortCut = 38
end
item
Command = ecSelUp
ShortCut = 8230
end
item
Command = ecScrollUp
ShortCut = 16422
end
item
Command = ecDown
ShortCut = 40
end
item
Command = ecSelDown
ShortCut = 8232
end
item
Command = ecScrollDown
ShortCut = 16424
end
item
Command = ecLeft
ShortCut = 37
end
item
Command = ecSelLeft
ShortCut = 8229
end
item
Command = ecWordLeft
ShortCut = 16421
end
item
Command = ecSelWordLeft
ShortCut = 24613
end
item
Command = ecRight
ShortCut = 39
end
item
Command = ecSelRight
ShortCut = 8231
end
item
Command = ecWordRight
ShortCut = 16423
end
item
Command = ecSelWordRight
ShortCut = 24615
end
item
Command = ecPageDown
ShortCut = 34
end
item
Command = ecSelPageDown
ShortCut = 8226
end
item
Command = ecPageBottom
ShortCut = 16418
end
item
Command = ecSelPageBottom
ShortCut = 24610
end
item
Command = ecPageUp
ShortCut = 33
end
item
Command = ecSelPageUp
ShortCut = 8225
end
item
Command = ecPageTop
ShortCut = 16417
end
item
Command = ecSelPageTop
ShortCut = 24609
end
item
Command = ecLineStart
ShortCut = 36
end
item
Command = ecSelLineStart
ShortCut = 8228
end
item
Command = ecEditorTop
ShortCut = 16420
end
item
Command = ecSelEditorTop
ShortCut = 24612
end
item
Command = ecLineEnd
ShortCut = 35
end
item
Command = ecSelLineEnd
ShortCut = 8227
end
item
Command = ecEditorBottom
ShortCut = 16419
end
item
Command = ecSelEditorBottom
ShortCut = 24611
end
item
Command = ecToggleMode
ShortCut = 45
end
item
Command = ecCopy
ShortCut = 16429
end
item
Command = ecPaste
ShortCut = 8237
end
item
Command = ecDeleteChar
ShortCut = 46
end
item
Command = ecCut
ShortCut = 8238
end
item
Command = ecDeleteLastChar
ShortCut = 8
end
item
Command = ecDeleteLastChar
ShortCut = 8200
end
item
Command = ecDeleteLastWord
ShortCut = 16392
end
item
Command = ecUndo
ShortCut = 32776
end
item
Command = ecRedo
ShortCut = 40968
end
item
Command = ecLineBreak
ShortCut = 13
end
item
Command = ecSelectAll
ShortCut = 16449
end
item
Command = ecCopy
ShortCut = 16451
end
item
Command = ecBlockIndent
ShortCut = 24649
end
item
Command = ecLineBreak
ShortCut = 16461
end
item
Command = ecInsertLine
ShortCut = 16462
end
item
Command = ecDeleteWord
ShortCut = 16468
end
item
Command = ecBlockUnindent
ShortCut = 24661
end
item
Command = ecPaste
ShortCut = 16470
end
item
Command = ecCut
ShortCut = 16472
end
item
Command = ecDeleteLine
ShortCut = 16473
end
item
Command = ecDeleteEOL
ShortCut = 24665
end
item
Command = ecUndo
ShortCut = 16474
end
item
Command = ecRedo
ShortCut = 24666
end
item
Command = ecGotoMarker0
ShortCut = 16432
end
item
Command = ecGotoMarker1
ShortCut = 16433
end
item
Command = ecGotoMarker2
ShortCut = 16434
end
item
Command = ecGotoMarker3
ShortCut = 16435
end
item
Command = ecGotoMarker4
ShortCut = 16436
end
item
Command = ecGotoMarker5
ShortCut = 16437
end
item
Command = ecGotoMarker6
ShortCut = 16438
end
item
Command = ecGotoMarker7
ShortCut = 16439
end
item
Command = ecGotoMarker8
ShortCut = 16440
end
item
Command = ecGotoMarker9
ShortCut = 16441
end
item
Command = ecSetMarker0
ShortCut = 24624
end
item
Command = ecSetMarker1
ShortCut = 24625
end
item
Command = ecSetMarker2
ShortCut = 24626
end
item
Command = ecSetMarker3
ShortCut = 24627
end
item
Command = ecSetMarker4
ShortCut = 24628
end
item
Command = ecSetMarker5
ShortCut = 24629
end
item
Command = ecSetMarker6
ShortCut = 24630
end
item
Command = ecSetMarker7
ShortCut = 24631
end
item
Command = ecSetMarker8
ShortCut = 24632
end
item
Command = ecSetMarker9
ShortCut = 24633
end
item
Command = EcFoldLevel1
ShortCut = 41009
end
item
Command = EcFoldLevel2
ShortCut = 41010
end
item
Command = EcFoldLevel1
ShortCut = 41011
end
item
Command = EcFoldLevel1
ShortCut = 41012
end
item
Command = EcFoldLevel1
ShortCut = 41013
end
item
Command = EcFoldLevel6
ShortCut = 41014
end
item
Command = EcFoldLevel7
ShortCut = 41015
end
item
Command = EcFoldLevel8
ShortCut = 41016
end
item
Command = EcFoldLevel9
ShortCut = 41017
end
item
Command = EcFoldLevel0
ShortCut = 41008
end
item
Command = EcFoldCurrent
ShortCut = 41005
end
item
Command = EcUnFoldCurrent
ShortCut = 41003
end
item
Command = EcToggleMarkupWord
ShortCut = 32845
end
item
Command = ecNormalSelect
ShortCut = 24654
end
item
Command = ecColumnSelect
ShortCut = 24643
end
item
Command = ecLineSelect
ShortCut = 24652
end
item
Command = ecTab
ShortCut = 9
end
item
Command = ecShiftTab
ShortCut = 8201
end
item
Command = ecMatchBracket
ShortCut = 24642
end
item
Command = ecColSelUp
ShortCut = 40998
end
item
Command = ecColSelDown
ShortCut = 41000
end
item
Command = ecColSelLeft
ShortCut = 40997
end
item
Command = ecColSelRight
ShortCut = 40999
end
item
Command = ecColSelPageDown
ShortCut = 40994
end
item
Command = ecColSelPageBottom
ShortCut = 57378
end
item
Command = ecColSelPageUp
ShortCut = 40993
end
item
Command = ecColSelPageTop
ShortCut = 57377
end
item
Command = ecColSelLineStart
ShortCut = 40996
end
item
Command = ecColSelLineEnd
ShortCut = 40995
end
item
Command = ecColSelEditorTop
ShortCut = 57380
end
item
Command = ecColSelEditorBottom
ShortCut = 57379
end>
MouseActions = <
item
ShiftMask = [ssShift, ssAlt]
ClickDir = cdDown
Command = emcStartSelections
MoveCaret = True
end
item
Shift = [ssShift]
ShiftMask = [ssShift, ssAlt]
ClickDir = cdDown
Command = emcStartSelections
MoveCaret = True
Option = 1
end
item
Shift = [ssAlt]
ShiftMask = [ssShift, ssAlt]
ClickDir = cdDown
Command = emcStartColumnSelections
MoveCaret = True
end
item
Shift = [ssShift, ssAlt]
ShiftMask = [ssShift, ssAlt]
ClickDir = cdDown
Command = emcStartColumnSelections
MoveCaret = True
Option = 1
end
item
Button = mbRight
Command = emcContextMenu
end
item
ClickCount = ccDouble
ClickDir = cdDown
Command = emcSelectWord
MoveCaret = True
end
item
ClickCount = ccTriple
ClickDir = cdDown
Command = emcSelectLine
MoveCaret = True
end
item
ClickCount = ccQuad
ClickDir = cdDown
Command = emcSelectPara
MoveCaret = True
end
item
Button = mbMiddle
ClickDir = cdDown
Command = emcPasteSelection
MoveCaret = True
end
item
Shift = [ssCtrl]
ShiftMask = [ssShift, ssAlt, ssCtrl]
Command = emcMouseLink
end>
MouseTextActions = <>
MouseSelActions = <
item
ClickDir = cdDown
Command = emcStartDragMove
end>
Lines.Strings = (
'StatMemo'
)
VisibleSpecialChars = [vscSpace, vscTabAtLast]
ReadOnly = True
ScrollBars = ssAutoBoth
SelectedColor.BackPriority = 50
SelectedColor.ForePriority = 50
SelectedColor.FramePriority = 50
SelectedColor.BoldPriority = 50
SelectedColor.ItalicPriority = 50
SelectedColor.UnderlinePriority = 50
SelectedColor.StrikeOutPriority = 50
BracketHighlightStyle = sbhsBoth
BracketMatchColor.Background = clNone
BracketMatchColor.Foreground = clNone
BracketMatchColor.Style = [fsBold]
FoldedCodeColor.Background = clNone
FoldedCodeColor.Foreground = clGray
FoldedCodeColor.FrameColor = clGray
MouseLinkColor.Background = clNone
MouseLinkColor.Foreground = clBlue
LineHighlightColor.Background = clNone
LineHighlightColor.Foreground = clNone
inline SynLeftGutterPartList1: TSynGutterPartList
object SynGutterLineNumber1: TSynGutterLineNumber
Width = 17
MouseActions = <>
MarkupInfo.Background = clBtnFace
MarkupInfo.Foreground = clNone
DigitCount = 2
ShowOnlyLineNumbersMultiplesOf = 1
ZeroStart = False
LeadingZeros = False
end
object SynGutterChanges1: TSynGutterChanges
Width = 4
MouseActions = <>
ModifiedColor = 59900
SavedColor = clGreen
end
end
end
end
end
object SaveDialog: TSaveDialog
Filter = 'Text files|*.txt|All files|*'
Options = [ofOverwritePrompt, ofEnableSizing, ofViewDetail]
left = 40
top = 320
left = 24
top = 584
end
object MemoPopupMenu: TPopupMenu
left = 120
top = 584
object CopyMenuItem: TMenuItem
Caption = 'Copy'
OnClick = CopyMenuItemClick
end
object SaveAsMenuItem: TMenuItem
Caption = 'Save As ...'
OnClick = SaveAsMenuItemClick
end
end
end

View File

@ -5,9 +5,10 @@ unit ResultDlg;
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
ExtCtrls, Buttons, ClipBrd, LCLType, LCLProc, SynEdit, SynHighlighterPo,
PoFamilies, PoFamilyLists, GraphStat, PoCheckerConsts, PoCheckerSettings;
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
Buttons, ClipBrd, LCLType, LCLProc, ComCtrls, Menus, SynEdit,
SynHighlighterPo, PoFamilies, PoFamilyLists, GraphStat, PoCheckerConsts,
PoCheckerSettings, Types;
type
@ -15,27 +16,33 @@ type
TResultDlgForm = class(TForm)
GraphStatBtn: TBitBtn;
CopyBtn: TBitBtn;
SaveBtn: TBitBtn;
CopyMenuItem: TMenuItem;
SaveAsMenuItem: TMenuItem;
MemoPopupMenu: TPopupMenu;
StatMemo: TSynEdit;
ResultPageControl: TPageControl;
CloseBtn: TBitBtn;
Panel1: TPanel;
SaveDialog: TSaveDialog;
FLog: TStringList;
FStatLog: TStringList;
LogMemo: TSynEdit;
procedure CopyBtnClick(Sender: TObject);
GeneralTabSheet: TTabSheet;
StatisticsTabSheet: TTabSheet;
procedure CopyMenuItemClick(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure FormShow(Sender: TObject);
procedure GraphStatBtnClick(Sender: TObject);
procedure SaveBtnClick(Sender: TObject);
procedure SaveAsMenuItemClick(Sender: TObject);
private
PoHL: TSynPoSyn;
FPoFamilyList: TPoFamilyList;
FPoFamilyStats: TPoFamilyStats;
FSettings: TPoCheckerSettings;
procedure SaveToFile;
procedure GetCurrentMemo(var CurrentMemo: TSynEdit);
procedure LoadConfig;
procedure SaveConfig;
public
@ -46,6 +53,7 @@ type
FTotalFuzzy: Integer;
FTotalPercTranslated: Double;
property Log: TStringList read FLog write FLog;
property StatLog: TStringList read FStatLog write FStatLog;
property PoFamilyList: TPoFamilyList read FPoFamilyList write FPoFamilyList;
property PoFamilyStats: TPoFamilyStats read FPoFamilyStats write FPoFamilyStats;
property Settings: TPoCheckerSettings read FSettings write FSettings;
@ -60,13 +68,17 @@ implementation
procedure TResultDlgForm.FormCreate(Sender: TObject);
begin
Caption := sResults;
GeneralTabSheet.Caption := sGeneralInfo;
StatisticsTabSheet.Caption := sTranslationStatistics;
CopyMenuItem.Caption := sCopy;
SaveAsMenuItem.Caption := sSaveAs;
LogMemo.Lines.Clear;
LogMemo.Align := alClient;
StatMemo.Lines.Clear;
FLog := TStringList.Create;
FStatLog := TStringList.Create;
PoHL := TSynPoSyn.Create(Self);
LogMemo.Highlighter := PoHL;
SaveBtn.Caption := sSaveCaption;
CopyBtn.Caption := sCopyCaption;
GraphStatBtn.Caption := sShowStatGraph;
FTotalTranslated := 0;
FTotalUntranslated := 0;
@ -77,26 +89,35 @@ procedure TResultDlgForm.FormClose(Sender: TObject;
var CloseAction: TCloseAction);
begin
FLog.Clear;
FStatLog.Clear;
end;
procedure TResultDlgForm.CopyBtnClick(Sender: TObject);
procedure TResultDlgForm.CopyMenuItemClick(Sender: TObject);
var
CurMemo: TSynEdit;
begin
ClipBoard.AsText := LogMemo.Text;
GetCurrentMemo(CurMemo);
if CurMemo <> nil then
ClipBoard.AsText := CurMemo.Text;
end;
procedure TResultDlgForm.FormDestroy(Sender: TObject);
begin
FLog.Free;
FStatLog.Free;
SaveConfig;
end;
procedure TResultDlgForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
CurMemo: TSynEdit;
begin
if (Key = VK_Tab) and (Shift = []) and LogMemo.Focused then
GetCurrentMemo(CurMemo);
if (Key = VK_Tab) and (Shift = []) and (Assigned(CurMemo) and CurMemo.Focused) then
begin
//Workaroud: cannot tab out of LogMemo
CopyBtn.SetFocus;
//Workaroud: cannot tab out of LogMemo/StatMemo
GraphStatBtn.SetFocus;
//debugln('Tab');
Key := 0;
end;
@ -105,6 +126,7 @@ end;
procedure TResultDlgForm.FormShow(Sender: TObject);
begin
LogMemo.Lines.Assign(FLog);
StatMemo.Lines.Assign(FStatLog);
GraphStatBtn.Visible := (PoFamilyStats <> nil) and (PoFamilyStats.Count > 0);
LoadConfig;
WindowState := Settings.ResultsFormWindowState;
@ -134,27 +156,28 @@ begin
end;
end;
procedure TResultDlgForm.SaveBtnClick(Sender: TObject);
procedure TResultDlgForm.SaveAsMenuItemClick(Sender: TObject);
var
CurMemo: TSynEdit;
begin
if SaveDialog.Execute then
GetCurrentMemo(CurMemo);
if (CurMemo <> nil) and (SaveDialog.Execute) then
begin
try
LogMemo.Lines.SaveToFile(SaveDialog.FileName);
CurMemo.Lines.SaveToFile(SaveDialog.FileName);
except
on E: EStreamError do MessageDlg('POChecker',Format(sSaveError,[SaveDialog.FileName]),mtError, [mbOk],0);
end;
end;
end;
procedure TResultDlgForm.SaveToFile;
procedure TResultDlgForm.GetCurrentMemo(var CurrentMemo: TSynEdit);
begin
if SaveDialog.Execute then
begin
try
LogMemo.Lines.SaveToFile(SaveDialog.FileName);
except
MessageDlg('POChecker',Format(sSaveError,[SaveDialog.FileName]), mtError, [mbOk], 0);
end;
case ResultPageControl.PageIndex of
0: CurrentMemo := LogMemo;
1: CurrentMemo := StatMemo;
else
CurrentMemo := nil;
end;
end;
@ -171,9 +194,15 @@ begin
BoundsRect := ARect;
end;
if Settings.DisableAntialiasing then
LogMemo.Font.Quality := fqNonAntialiased
begin
LogMemo.Font.Quality := fqNonAntialiased;
StatMemo.Font.Quality := fqNonAntialiased;
end
else
begin
LogMemo.Font.Quality := fqDefault;
StatMemo.Font.Quality := fqDefault;
end;
end;
procedure TResultDlgForm.SaveConfig;