POChecker:

1) Report duplicate originals search results in separate tab of Results dialog, made this output more compact.
2) Improved captions.
3) Regenerated translations and updated Russian translation.

git-svn-id: trunk@57667 -
This commit is contained in:
maxim 2018-04-18 22:56:50 +00:00
parent ef46036398
commit dfa7c11365
19 changed files with 832 additions and 63 deletions

View File

@ -128,7 +128,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "" msgstr ""
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "Zkontrolovat výskyt duplicitních nepřeložených hodnot" msgstr "Zkontrolovat výskyt duplicitních nepřeložených hodnot"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -136,7 +138,9 @@ msgid "Check for incompatible format arguments"
msgstr "Zkontrolovat výskyt nekompatibilních argumentů funkce format" msgstr "Zkontrolovat výskyt nekompatibilních argumentů funkce format"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "Zkontrolovat výskyt chyb v nepřeložených řetězcích" msgstr "Zkontrolovat výskyt chyb v nepřeložených řetězcích"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -168,9 +172,15 @@ msgid "[Line %d] %s"
msgstr "[Řádek %d] %s" msgstr "[Řádek %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "(Nepřeložený) řetězec \"%s\" je využitý na více než jednom místě:" msgstr "(Nepřeložený) řetězec \"%s\" je využitý na více než jednom místě:"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -193,6 +203,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "Chyby / varování nahlášené %s pro:" msgstr "Chyby / varování nahlášené %s pro:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -124,7 +124,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "Kann Datei%s%s%s%snicht schreiben. Sie können auf \"Wiederholen\" klicken, um diese Übersetzungsfamilie erneut zu aktualisieren und fortzusetzen." msgstr "Kann Datei%s%s%s%snicht schreiben. Sie können auf \"Wiederholen\" klicken, um diese Übersetzungsfamilie erneut zu aktualisieren und fortzusetzen."
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "Prüfung auf mehrfache, nicht übersetzte Werte" msgstr "Prüfung auf mehrfache, nicht übersetzte Werte"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -132,7 +134,9 @@ msgid "Check for incompatible format arguments"
msgstr "Prüfung auf inkompatible Format-Argumente" msgstr "Prüfung auf inkompatible Format-Argumente"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "Prüfung auf Diskrepanzen in nicht übersetzten Werten" msgstr "Prüfung auf Diskrepanzen in nicht übersetzten Werten"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -164,9 +168,15 @@ msgid "[Line %d] %s"
msgstr "[Zeile %d] %s" msgstr "[Zeile %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "Der (nicht übersetzte) Wert \"%s\" wird für mehr als 1 Eintrag verwendet:" msgstr "Der (nicht übersetzte) Wert \"%s\" wird für mehr als 1 Eintrag verwendet:"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -189,6 +199,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "Fehler / Warnungen gemeldet von %s für:" msgstr "Fehler / Warnungen gemeldet von %s für:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -124,7 +124,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "" msgstr ""
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "Compruebe valores duplicados sin traducir" msgstr "Compruebe valores duplicados sin traducir"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -132,7 +134,9 @@ msgid "Check for incompatible format arguments"
msgstr "Compruebe argumentos de formato incompatible" msgstr "Compruebe argumentos de formato incompatible"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "Compruebe discrepancias en las cadenas sin traducir" msgstr "Compruebe discrepancias en las cadenas sin traducir"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -164,9 +168,15 @@ msgid "[Line %d] %s"
msgstr "[Línea %d] %s" msgstr "[Línea %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "El valor (sin traducir) \"%s \" se utiliza para más de 1 entrada:" msgstr "El valor (sin traducir) \"%s \" se utiliza para más de 1 entrada:"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -189,6 +199,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "Errores / advertencias reportadas por %s para:" msgstr "Errores / advertencias reportadas por %s para:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -124,7 +124,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "Impossible décrire fichier%s%s%s%sVous pouvez appuyer sur « Recommencer » pour réactualiser cette famille de traduction et continuer." msgstr "Impossible décrire fichier%s%s%s%sVous pouvez appuyer sur « Recommencer » pour réactualiser cette famille de traduction et continuer."
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "Vérifier les doublons de valeurs non traduites" msgstr "Vérifier les doublons de valeurs non traduites"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -132,7 +134,9 @@ msgid "Check for incompatible format arguments"
msgstr "Vérifier les arguments de format incompatibles" msgstr "Vérifier les arguments de format incompatibles"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "Vérifier les discordances dans les chaînes non traduites" msgstr "Vérifier les discordances dans les chaînes non traduites"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -164,9 +168,15 @@ msgid "[Line %d] %s"
msgstr "[Ligne %d] %s" msgstr "[Ligne %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "La valeur \"%s\" (non traduite) est utilisée par plus d'une entrée :" msgstr "La valeur \"%s\" (non traduite) est utilisée par plus d'une entrée :"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -189,6 +199,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "Erreurs / avertissements rapportés par %s pour :" msgstr "Erreurs / avertissements rapportés par %s pour :"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -124,7 +124,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "Nem lehet írni a fájlt:%s%s%s%sAz \"Újra\" gombot megnyomva ismét frissítheti ezt a fordításcsaládot és folytathatja." msgstr "Nem lehet írni a fájlt:%s%s%s%sAz \"Újra\" gombot megnyomva ismét frissítheti ezt a fordításcsaládot és folytathatja."
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "Lefordítatlan szövegek ismétlődésének ellenőrzése" msgstr "Lefordítatlan szövegek ismétlődésének ellenőrzése"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -132,7 +134,9 @@ msgid "Check for incompatible format arguments"
msgstr "Nem megfelelő format() paraméterek ellenőrzése" msgstr "Nem megfelelő format() paraméterek ellenőrzése"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "Eltérések keresése a lefordítatlan szövegekben" msgstr "Eltérések keresése a lefordítatlan szövegekben"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -164,9 +168,15 @@ msgid "[Line %d] %s"
msgstr "[Sor: %d] %s" msgstr "[Sor: %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "A lefordítatlan \"%s\" érték egynél többször van bejegyezve:" msgstr "A lefordítatlan \"%s\" érték egynél többször van bejegyezve:"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -189,6 +199,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "A(z) %s hibákat / figyelmeztetéseket jelzett ezzel kapcsolatban:" msgstr "A(z) %s hibákat / figyelmeztetéseket jelzett ezzel kapcsolatban:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -128,7 +128,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "" msgstr ""
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "Verifica valori duplicati non tradotti" msgstr "Verifica valori duplicati non tradotti"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -136,7 +138,9 @@ msgid "Check for incompatible format arguments"
msgstr "Verifica argomenti con format incompatibile" msgstr "Verifica argomenti con format incompatibile"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "Verifica mancate corrispondenze in stringhe non tradotte" msgstr "Verifica mancate corrispondenze in stringhe non tradotte"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -168,9 +172,15 @@ msgid "[Line %d] %s"
msgstr "[Riga %d] %s" msgstr "[Riga %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "Il valore (non tradotto) \"%s\" è usato per più di 1 voce:" msgstr "Il valore (non tradotto) \"%s\" è usato per più di 1 voce:"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -193,6 +203,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "Errori / avvertimenti riportati da %s per:" msgstr "Errori / avvertimenti riportati da %s per:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -126,7 +126,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "" msgstr ""
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "原文のままで翻訳されていない項目の検査" msgstr "原文のままで翻訳されていない項目の検査"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -134,7 +136,9 @@ msgid "Check for incompatible format arguments"
msgstr "互換性のない書式引数の検査" msgstr "互換性のない書式引数の検査"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "原文の不一致検査" msgstr "原文の不一致検査"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -166,9 +170,15 @@ msgid "[Line %d] %s"
msgstr "[行 %d] %s" msgstr "[行 %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "原文のままで翻訳されていない項目 \"%s\" が1ヶ所以上存在します" msgstr "原文のままで翻訳されていない項目 \"%s\" が1ヶ所以上存在します"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -191,6 +201,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "以下のファイルに対する %s によるエラー/警告の結果:" msgstr "以下のファイルに対する %s によるエラー/警告の結果:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -125,7 +125,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "Nepavyksta rašyti į failą%s%s%s%sPaspaudus „Kartoti“ bus naujintas ši vertimų šeima ir tęsiama toliau." msgstr "Nepavyksta rašyti į failą%s%s%s%sPaspaudus „Kartoti“ bus naujintas ši vertimų šeima ir tęsiama toliau."
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "Ieškoti neverstų besidubliuojančių verčių" msgstr "Ieškoti neverstų besidubliuojančių verčių"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -133,7 +135,9 @@ msgid "Check for incompatible format arguments"
msgstr "Ieškoti nesuderinamų formato argumentų" msgstr "Ieškoti nesuderinamų formato argumentų"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "Ieškoti neatitikčių neišverstose eilutėse" msgstr "Ieškoti neatitikčių neišverstose eilutėse"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -165,9 +169,15 @@ msgid "[Line %d] %s"
msgstr "[Eilutė %d] %s" msgstr "[Eilutė %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "Vertė (neversta) „%s“ panaudota daugiau nei viename įraše:" msgstr "Vertė (neversta) „%s“ panaudota daugiau nei viename įraše:"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -190,6 +200,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "%s praneštos klaidos/perspėjimai apie:" msgstr "%s praneštos klaidos/perspėjimai apie:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -114,7 +114,7 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "" msgstr ""
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" msgid "Check for duplicate originals"
msgstr "" msgstr ""
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -122,7 +122,7 @@ msgid "Check for incompatible format arguments"
msgstr "" msgstr ""
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" msgid "Check for mismatches of originals"
msgstr "" msgstr ""
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -154,7 +154,11 @@ msgid "[Line %d] %s"
msgstr "" msgstr ""
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr ""
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr "" msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
@ -174,6 +178,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "" msgstr ""
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -124,7 +124,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "Impossível gravar arquivo%s%s%s%sVocê pode \"tentar novamente\" para atualizar novamente esta família de tradução e continuar." msgstr "Impossível gravar arquivo%s%s%s%sVocê pode \"tentar novamente\" para atualizar novamente esta família de tradução e continuar."
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "Verificar valores não traduzidos duplicados" msgstr "Verificar valores não traduzidos duplicados"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -132,7 +134,9 @@ msgid "Check for incompatible format arguments"
msgstr "Verificar formato de argumentos incompatíveis" msgstr "Verificar formato de argumentos incompatíveis"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "Verificar inconsistências em strings não traduzidas" msgstr "Verificar inconsistências em strings não traduzidas"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -164,9 +168,15 @@ msgid "[Line %d] %s"
msgstr "[Linha %d] %s" msgstr "[Linha %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "O valor (não traduzido) \"%s\" é usado em mais de 1 entrada:" msgstr "O valor (não traduzido) \"%s\" é usado em mais de 1 entrada:"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -189,6 +199,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "Erros / avisos reportados por %s para:" msgstr "Erros / avisos reportados por %s para:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -124,7 +124,7 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "Невозможно записать файл%s%s%s%sВы можете нажать \"Повтор\", чтобы снова попытаться обновить это семейство переводов и продолжить далее." msgstr "Невозможно записать файл%s%s%s%sВы можете нажать \"Повтор\", чтобы снова попытаться обновить это семейство переводов и продолжить далее."
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" msgid "Check for duplicate originals"
msgstr "Поиск дублирующихся исходных строк" msgstr "Поиск дублирующихся исходных строк"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -132,7 +132,7 @@ msgid "Check for incompatible format arguments"
msgstr "Поиск несовместимых аргументов форматирования" msgstr "Поиск несовместимых аргументов форматирования"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" msgid "Check for mismatches of originals"
msgstr "Поиск несоответствий исходных строк" msgstr "Поиск несоответствий исходных строк"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -164,9 +164,13 @@ msgid "[Line %d] %s"
msgstr "[Строка %d] %s" msgstr "[Строка %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "Исходное значение \"%s\" имеется в нескольких элементах:" msgstr "Исходное значение \"%s\" имеется в нескольких элементах:"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr "Дублирующиеся исходные строки"
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -189,6 +193,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "Ошибки и предупреждения, найденные %s для:" msgstr "Ошибки и предупреждения, найденные %s для:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr "Файл %s"
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -125,7 +125,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "Неможливо записати файл%s%s%s%sВи можете натиснути \"Повтор\", щоб знову спробувати оновити цю родину перекладів і продовжити." msgstr "Неможливо записати файл%s%s%s%sВи можете натиснути \"Повтор\", щоб знову спробувати оновити цю родину перекладів і продовжити."
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "Перевірити на повторні неперекладені записи" msgstr "Перевірити на повторні неперекладені записи"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -133,7 +135,9 @@ msgid "Check for incompatible format arguments"
msgstr "Перевірити на несумісні аргументи формату" msgstr "Перевірити на несумісні аргументи формату"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "Перевірити на неузгодженості в неперекладених рядках" msgstr "Перевірити на неузгодженості в неперекладених рядках"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -165,9 +169,15 @@ msgid "[Line %d] %s"
msgstr "[Рядок %d] %s" msgstr "[Рядок %d] %s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "(Неперекладене) значення \"%s\" використовується більше як для 1 запису:" msgstr "(Неперекладене) значення \"%s\" використовується більше як для 1 запису:"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -190,6 +200,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "Помилки / попередження звітовані %s для:" msgstr "Помилки / попередження звітовані %s для:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -127,7 +127,9 @@ msgid "Cannot write file%s%s%s%sYou can press \"Retry\" to refresh this translat
msgstr "" msgstr ""
#: pocheckerconsts.scheckforduplicateuntranslatedvalues #: pocheckerconsts.scheckforduplicateuntranslatedvalues
msgid "Check for duplicate untranslated values" #, fuzzy
#| msgid "Check for duplicate untranslated values"
msgid "Check for duplicate originals"
msgstr "检查完全一样的未翻译的值" msgstr "检查完全一样的未翻译的值"
#: pocheckerconsts.scheckforincompatibleformatarguments #: pocheckerconsts.scheckforincompatibleformatarguments
@ -135,7 +137,9 @@ msgid "Check for incompatible format arguments"
msgstr "检查不兼容格式参数" msgstr "检查不兼容格式参数"
#: pocheckerconsts.scheckformismatchesinuntranslatedstrings #: pocheckerconsts.scheckformismatchesinuntranslatedstrings
msgid "Check for mismatches in untranslated strings" #, fuzzy
#| msgid "Check for mismatches in untranslated strings"
msgid "Check for mismatches of originals"
msgstr "检查不匹配在未翻译的字符串" msgstr "检查不匹配在未翻译的字符串"
#: pocheckerconsts.scheckmissingidentifiers #: pocheckerconsts.scheckmissingidentifiers
@ -168,9 +172,15 @@ msgid "[Line %d] %s"
msgstr "[行: %d]%s" msgstr "[行: %d]%s"
#: pocheckerconsts.sduplicateoriginals #: pocheckerconsts.sduplicateoriginals
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:" #, fuzzy
#| msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
msgid "Original value \"%s\" is used for more than 1 entry:"
msgstr "该(未翻译)值\"%s\" 被用于超过1个记录:" msgstr "该(未翻译)值\"%s\" 被用于超过1个记录:"
#: pocheckerconsts.sduplicateoriginalstab
msgid "Duplicate Originals"
msgstr ""
#: pocheckerconsts.serroroncleanup #: pocheckerconsts.serroroncleanup
msgid "" msgid ""
"An unrecoverable error occurred\n" "An unrecoverable error occurred\n"
@ -193,6 +203,10 @@ msgstr ""
msgid "Errors / warnings reported by %s for:" msgid "Errors / warnings reported by %s for:"
msgstr "错误/警告被报告由%s关于:" msgstr "错误/警告被报告由%s关于:"
#: pocheckerconsts.sfile
msgid "File %s"
msgstr ""
#: pocheckerconsts.sfilesnotfoundandremoved #: pocheckerconsts.sfilesnotfoundandremoved
msgid "" msgid ""
"The following non-existent files were removed from the list:\n" "The following non-existent files were removed from the list:\n"

View File

@ -44,6 +44,7 @@ resourcestring
sShowStatGraph = 'Show statistics graph'; sShowStatGraph = 'Show statistics graph';
sGeneralInfo = 'General Info'; sGeneralInfo = 'General Info';
sTranslationStatistics = 'Translation Statistics'; sTranslationStatistics = 'Translation Statistics';
sDuplicateOriginalsTab = 'Duplicate Originals';
sCopy = '&Copy'; sCopy = '&Copy';
sSaveAs ='Save &As ...'; sSaveAs ='Save &As ...';
@ -75,14 +76,13 @@ resourcestring
sOriginal = 'Original'; sOriginal = 'Original';
sTranslation = 'Translation'; sTranslation = 'Translation';
sErrorsByTest = 'Errors / warnings reported by %s for:'; sErrorsByTest = 'Errors / warnings reported by %s for:';
sFile = 'File %s';
sCheckNumberOfItems = 'Check number of items'; sCheckNumberOfItems = 'Check number of items';
sCheckForIncompatibleFormatArguments = 'Check for incompatible format ' sCheckForIncompatibleFormatArguments = 'Check for incompatible format '
+'arguments'; +'arguments';
sCheckMissingIdentifiers = 'Check missing identifiers'; sCheckMissingIdentifiers = 'Check missing identifiers';
sCheckForMismatchesInUntranslatedStrings = 'Check for mismatches in ' sCheckForMismatchesInUntranslatedStrings = 'Check for mismatches of originals';
+'untranslated strings'; sCheckForDuplicateUntranslatedValues = 'Check for duplicate originals';
sCheckForDuplicateUntranslatedValues = 'Check for duplicate untranslated '
+'values';
sIncompatibleFormatArgs = '[Line: %d] Incompatible and/or invalid format() arguments for:' ; sIncompatibleFormatArgs = '[Line: %d] Incompatible and/or invalid format() arguments for:' ;
sNrErrorsFound = 'Found %d errors.'; sNrErrorsFound = 'Found %d errors.';
@ -97,7 +97,7 @@ resourcestring
sNrOfItemsMisMatch = 'Mismatch in number of items for master and child'; sNrOfItemsMisMatch = 'Mismatch in number of items for master and child';
sNrOfItemsMismatchD = '%s: %d items'; sNrOfItemsMismatchD = '%s: %d items';
sDuplicateOriginals = 'The (untranslated) value "%s" is used for more than 1 entry:'; sDuplicateOriginals = 'Original value "%s" is used for more than 1 entry:';
sDuplicateLineNrWithValue = '[Line %d] %s'; sDuplicateLineNrWithValue = '[Line %d] %s';
sPercTranslated = '%s: %5.1f%% translated strings.'; sPercTranslated = '%s: %5.1f%% translated strings.';

View File

@ -75,7 +75,7 @@ type
procedure ShowError(const Msg: string); procedure ShowError(const Msg: string);
procedure ScanDirectory(ADir: String); procedure ScanDirectory(ADir: String);
function TryCreatepoFamilyList(var MasterList, SL: TStringList; const LangID: TLangID): Boolean; function TryCreatepoFamilyList(var MasterList, SL: TStringList; const LangID: TLangID): Boolean;
procedure RunSelectedTests(var SL, StatL: TStringList); procedure RunSelectedTests(var SL, StatL, DupL: TStringList);
procedure ClearStatusBar; procedure ClearStatusBar;
procedure UpdateGUI(HasSelection: Boolean); procedure UpdateGUI(HasSelection: Boolean);
function GetSelectedMasterFiles: TStringList; function GetSelectedMasterFiles: TStringList;
@ -245,7 +245,7 @@ end;
procedure TPoCheckerForm.RunToolButtonClick(Sender: TObject); procedure TPoCheckerForm.RunToolButtonClick(Sender: TObject);
var var
AMasterList, SL, StatL: TStringList; AMasterList, SL, StatL, DupL: TStringList;
LangIdx: Integer; LangIdx: Integer;
ALangID: TLangID; ALangID: TLangID;
begin begin
@ -253,10 +253,11 @@ begin
ALangID := LangFilterIndexToLangID(LangIdx); ALangID := LangFilterIndexToLangID(LangIdx);
SL := TStringList.Create; SL := TStringList.Create;
StatL := TStringList.Create; StatL := TStringList.Create;
DupL := TStringList.Create;
AMasterList := GetSelectedMasterFiles; AMasterList := GetSelectedMasterFiles;
try try
if TryCreatePoFamilyList(AMasterList, SL, ALangID) then if TryCreatePoFamilyList(AMasterList, SL, ALangID) then
RunSelectedTests(SL, StatL) RunSelectedTests(SL, StatL, DupL)
else else
begin begin
if Assigned(PoFamilyList) then FreeAndNil(PoFamilyList); if Assigned(PoFamilyList) then FreeAndNil(PoFamilyList);
@ -264,6 +265,7 @@ begin
finally finally
SL.Free; SL.Free;
StatL.Free; StatL.Free;
DupL.Free;
AMasterList.Free; AMasterList.Free;
end; end;
end; end;
@ -511,7 +513,7 @@ begin
end; end;
procedure TPoCheckerForm.RunSelectedTests(var SL, StatL: TStringList); procedure TPoCheckerForm.RunSelectedTests(var SL, StatL, DupL: TStringList);
var var
TestTypes: TPoTestTypes; TestTypes: TPoTestTypes;
TestOptions: TPoTestOptions; TestOptions: TPoTestOptions;
@ -534,7 +536,7 @@ begin
PoFamilyList.TestTypes := TestTypes; PoFamilyList.TestTypes := TestTypes;
PoFamilyList.TestOptions := TestOptions; PoFamilyList.TestOptions := TestOptions;
PoFamilyList.RunTests(ErrorCount, NonFuzzyErrorCount, WarningCount, TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount, SL, StatL); PoFamilyList.RunTests(ErrorCount, NonFuzzyErrorCount, WarningCount, TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount, SL, StatL, DupL);
//debugln('RunSelectedTests: ', Format(sTotalErrors, [ErrorCount])); //debugln('RunSelectedTests: ', Format(sTotalErrors, [ErrorCount]));
//debugln(' ', Format(sTotalWarnings, [WarningCount])); //debugln(' ', Format(sTotalWarnings, [WarningCount]));
TotalPercTranslated := 100 * TotalTranslatedCount / (TotalTranslatedCount + TotalUntranslatedCount + TotalFuzzyCount); TotalPercTranslated := 100 * TotalTranslatedCount / (TotalTranslatedCount + TotalUntranslatedCount + TotalFuzzyCount);
@ -550,7 +552,6 @@ begin
SL.Add(Format(sTotalErrorsNonFuzzy, [ErrorCount, NonFuzzyErrorCount])) SL.Add(Format(sTotalErrorsNonFuzzy, [ErrorCount, NonFuzzyErrorCount]))
else else
SL.Add(Format(sTotalErrors, [ErrorCount])); SL.Add(Format(sTotalErrors, [ErrorCount]));
SL.Add(Format(sTotalWarnings, [WarningCount]));
SL.Add(Format(sTotalUntranslatedStrings, [IntToStr(TotalUntranslatedCount)])); SL.Add(Format(sTotalUntranslatedStrings, [IntToStr(TotalUntranslatedCount)]));
SL.Add(Format(sTotalFuzzyStrings, [IntToStr(TotalFuzzyCount)])); SL.Add(Format(sTotalFuzzyStrings, [IntToStr(TotalFuzzyCount)]));
SL.Add(''); SL.Add('');
@ -561,6 +562,8 @@ begin
StatL.Add(''); StatL.Add('');
StatL.Add(Format(sTotalTranslatedStrings, [IntToStr(TotalTranslatedCount), TotalPercTranslated])); StatL.Add(Format(sTotalTranslatedStrings, [IntToStr(TotalTranslatedCount), TotalPercTranslated]));
DupL.Add(Format(sTotalWarnings, [WarningCount]));
ResultDlg := TResultDlgForm.Create(nil); ResultDlg := TResultDlgForm.Create(nil);
try try
ResultDlg.FTotalTranslated := TotalTranslatedCount; ResultDlg.FTotalTranslated := TotalTranslatedCount;
@ -569,6 +572,10 @@ begin
ResultDlg.FTotalPercTranslated := TotalPercTranslated; ResultDlg.FTotalPercTranslated := TotalPercTranslated;
ResultDlg.Log.Assign(SL); ResultDlg.Log.Assign(SL);
ResultDlg.StatLog.Assign(StatL); ResultDlg.StatLog.Assign(StatL);
ResultDlg.ResultPageControl.Pages[2].TabVisible := pttCheckDuplicateOriginals in TestTypes;
ResultDlg.DupLog.Assign(DupL);
ResultDlg.PoFamilyList := PoFamilyList; ResultDlg.PoFamilyList := PoFamilyList;
ResultDlg.PoFamilyStats := PoFamilyList.PoFamilyStats; ResultDlg.PoFamilyStats := PoFamilyList.PoFamilyStats;
ResultDlg.Settings := FPoCheckerSettings; ResultDlg.Settings := FPoCheckerSettings;

View File

@ -77,8 +77,7 @@ Type
public public
procedure RunTests(out ErrorCount, NonFuzzyErrorCount, WarningCount, procedure RunTests(out ErrorCount, NonFuzzyErrorCount, WarningCount,
TranslatedCount, UntranslatedCount, FuzzyCount: Integer; ErrorLog, StatLog TranslatedCount, UntranslatedCount, FuzzyCount: Integer; ErrorLog, StatLog, DupLog: TStringList);
: TStringList);
property Master: TPOFile read FMaster; property Master: TPOFile read FMaster;
property Child: TPOFile read FChild; property Child: TPOFile read FChild;
@ -173,7 +172,6 @@ const
sShortCheckNrOfItems = 'CheckNrOfItems'; sShortCheckNrOfItems = 'CheckNrOfItems';
sShortCheckMissingIdentifiers = 'CheckMissingIdentifiers'; sShortCheckMissingIdentifiers = 'CheckMissingIdentifiers';
sShortCheckMismatchedOriginals = 'CheckMismatchedOriginals'; sShortCheckMismatchedOriginals = 'CheckMismatchedOriginals';
sShortCheckDuplicateOriginals = 'CheckDuplicateOriginals';
//Helper functions //Helper functions
@ -745,10 +743,7 @@ begin
CurHash := DupItemsList.List[i]^.HashValue; CurHash := DupItemsList.List[i]^.HashValue;
if (WarningCount = 0) then if (WarningCount = 0) then
begin begin
ErrorLog.Add(Divider); ErrorLog.Add(Format(sFile, [ShortMasterName]));
ErrorLog.Add(Format(sErrorsByTest,[sShortCheckDuplicateOriginals]));
ErrorLog.Add(ShortMasterName);
ErrorLog.Add(Divider);
ErrorLog.Add(''); ErrorLog.Add('');
end; end;
if (CurHash <> LastHash) then if (CurHash <> LastHash) then
@ -770,7 +765,6 @@ begin
ErrorLog.Add(Format(sNrWarningsFound,[WarningCount])); ErrorLog.Add(Format(sNrWarningsFound,[WarningCount]));
ErrorLog.Add(Divider); ErrorLog.Add(Divider);
ErrorLog.Add(''); ErrorLog.Add('');
ErrorLog.Add('');
end; end;
DupItemsList.Free; DupItemsList.Free;
@ -801,7 +795,9 @@ Pre conditions:
* Master and a matching Child must be assigned at start ot testing * Master and a matching Child must be assigned at start ot testing
* If a Child is assigned it must be child of Master * If a Child is assigned it must be child of Master
} }
procedure TPoFamily.RunTests(out ErrorCount, NonFuzzyErrorCount, WarningCount, TranslatedCount, UntranslatedCount, FuzzyCount: Integer; ErrorLog, StatLog: TStringList); procedure TPoFamily.RunTests(out ErrorCount, NonFuzzyErrorCount, WarningCount,
TranslatedCount, UntranslatedCount, FuzzyCount: Integer; ErrorLog, StatLog,
DupLog: TStringList);
var var
SL: TStringList; SL: TStringList;
CurrErrCnt, CurrNonFuzzyErrCnt, CurrWarnCnt, ThisErrCnt: Integer; CurrErrCnt, CurrNonFuzzyErrCnt, CurrWarnCnt, ThisErrCnt: Integer;
@ -876,7 +872,7 @@ begin
//First run checks that are Master-only //First run checks that are Master-only
if (pttCheckDuplicateOriginals in FTestTypes) then if (pttCheckDuplicateOriginals in FTestTypes) then
begin begin
CheckDuplicateOriginals(CurrWarnCnt, ErrorLog); CheckDuplicateOriginals(CurrWarnCnt, DupLog);
WarningCount := CurrWarnCnt + WarningCount; WarningCount := CurrWarnCnt + WarningCount;
end; end;

View File

@ -38,7 +38,7 @@ type
function Count: Integer; function Count: Integer;
procedure RunTests(out ErrorCount, NonFuzzyErrorCount, WarningCount, procedure RunTests(out ErrorCount, NonFuzzyErrorCount, WarningCount,
TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount: Integer; TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount: Integer;
ErrorLog, StatLog: TStringList); ErrorLog, StatLog, DupLog: TStringList);
property Items[Index: Integer]: TPoFamily read GetItem; // write SetItem; property Items[Index: Integer]: TPoFamily read GetItem; // write SetItem;
property PoFamilyStats: TPoFamilyStats read FPoFamilyStats; property PoFamilyStats: TPoFamilyStats read FPoFamilyStats;
property TestTypes: TPoTestTypes read FTestTypes write FTestTypes; property TestTypes: TPoTestTypes read FTestTypes write FTestTypes;
@ -119,7 +119,7 @@ begin
end; end;
procedure TPoFamilyList.RunTests(out ErrorCount, NonFuzzyErrorCount, WarningCount, TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount: Integer; procedure TPoFamilyList.RunTests(out ErrorCount, NonFuzzyErrorCount, WarningCount, TotalTranslatedCount, TotalUntranslatedCount, TotalFuzzyCount: Integer;
ErrorLog, StatLog: TStringList); ErrorLog, StatLog, DupLog: TStringList);
var var
Index, ThisErrorCount, ThisNonFuzzyErrorCount, ThisWarningCount: Integer; Index, ThisErrorCount, ThisNonFuzzyErrorCount, ThisWarningCount: Integer;
ThisTranslatedCount, ThisUntranslatedCount, ThisFuzzyCount: Integer; ThisTranslatedCount, ThisUntranslatedCount, ThisFuzzyCount: Integer;
@ -143,7 +143,7 @@ begin
PoFamily.OnTestEnd := FOnTestEnd; PoFamily.OnTestEnd := FOnTestEnd;
PoFamily.TestTypes := FTesttypes; PoFamily.TestTypes := FTesttypes;
PoFamily.TestOptions := FTestOptions; PoFamily.TestOptions := FTestOptions;
PoFamily.RunTests(ThisErrorCount, ThisNonFuzzyErrorCount, ThisWarningCount, ThisTranslatedCount, ThisUntranslatedCount, ThisFuzzyCount, ErrorLog, StatLog); PoFamily.RunTests(ThisErrorCount, ThisNonFuzzyErrorCount, ThisWarningCount, ThisTranslatedCount, ThisUntranslatedCount, ThisFuzzyCount, ErrorLog, StatLog, DupLog);
PoFamily.PoFamilyStats.AddItemsTo(FPoFamilyStats); PoFamily.PoFamilyStats.AddItemsTo(FPoFamilyStats);
ErrorCount := ErrorCount + ThisErrorCount; ErrorCount := ErrorCount + ThisErrorCount;
NonFuzzyErrorCount := NonFuzzyErrorCount + ThisNonFuzzyErrorCount; NonFuzzyErrorCount := NonFuzzyErrorCount + ThisNonFuzzyErrorCount;

View File

@ -1282,6 +1282,590 @@ object ResultDlgForm: TResultDlgForm
end end
end end
end end
object DuplicatesTabSheet: TTabSheet
Caption = 'Duplicate Originals'
ClientHeight = 545
ClientWidth = 722
inline DupMemo: TSynEdit
AnchorSideLeft.Control = DuplicatesTabSheet
AnchorSideTop.Control = DuplicatesTabSheet
AnchorSideRight.Control = DuplicatesTabSheet
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = DuplicatesTabSheet
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 = (
'DupMemo'
)
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 end
object SaveDialog: TSaveDialog object SaveDialog: TSaveDialog
Filter = 'Text files|*.txt|All files|*' Filter = 'Text files|*.txt|All files|*'

View File

@ -26,9 +26,12 @@ type
SaveDialog: TSaveDialog; SaveDialog: TSaveDialog;
FLog: TStringList; FLog: TStringList;
FStatLog: TStringList; FStatLog: TStringList;
FDupLog: TStringList;
LogMemo: TSynEdit; LogMemo: TSynEdit;
GeneralTabSheet: TTabSheet; GeneralTabSheet: TTabSheet;
StatisticsTabSheet: TTabSheet; StatisticsTabSheet: TTabSheet;
DuplicatesTabSheet: TTabSheet;
DupMemo: TSynEdit;
procedure CopyMenuItemClick(Sender: TObject); procedure CopyMenuItemClick(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
@ -54,6 +57,7 @@ type
FTotalPercTranslated: Double; FTotalPercTranslated: Double;
property Log: TStringList read FLog write FLog; property Log: TStringList read FLog write FLog;
property StatLog: TStringList read FStatLog write FStatLog; property StatLog: TStringList read FStatLog write FStatLog;
property DupLog: TStringList read FDupLog write FDupLog;
property PoFamilyList: TPoFamilyList read FPoFamilyList write FPoFamilyList; property PoFamilyList: TPoFamilyList read FPoFamilyList write FPoFamilyList;
property PoFamilyStats: TPoFamilyStats read FPoFamilyStats write FPoFamilyStats; property PoFamilyStats: TPoFamilyStats read FPoFamilyStats write FPoFamilyStats;
property Settings: TPoCheckerSettings read FSettings write FSettings; property Settings: TPoCheckerSettings read FSettings write FSettings;
@ -70,6 +74,7 @@ begin
Caption := sResults; Caption := sResults;
GeneralTabSheet.Caption := sGeneralInfo; GeneralTabSheet.Caption := sGeneralInfo;
StatisticsTabSheet.Caption := sTranslationStatistics; StatisticsTabSheet.Caption := sTranslationStatistics;
DuplicatesTabSheet.Caption := sDuplicateOriginalsTab;
CopyMenuItem.Caption := sCopy; CopyMenuItem.Caption := sCopy;
SaveAsMenuItem.Caption := sSaveAs; SaveAsMenuItem.Caption := sSaveAs;
@ -77,6 +82,7 @@ begin
StatMemo.Lines.Clear; StatMemo.Lines.Clear;
FLog := TStringList.Create; FLog := TStringList.Create;
FStatLog := TStringList.Create; FStatLog := TStringList.Create;
FDupLog := TStringList.Create;
PoHL := TSynPoSyn.Create(Self); PoHL := TSynPoSyn.Create(Self);
LogMemo.Highlighter := PoHL; LogMemo.Highlighter := PoHL;
GraphStatBtn.Caption := sShowStatGraph; GraphStatBtn.Caption := sShowStatGraph;
@ -90,6 +96,7 @@ procedure TResultDlgForm.FormClose(Sender: TObject;
begin begin
FLog.Clear; FLog.Clear;
FStatLog.Clear; FStatLog.Clear;
FDupLog.Clear;
end; end;
procedure TResultDlgForm.CopyMenuItemClick(Sender: TObject); procedure TResultDlgForm.CopyMenuItemClick(Sender: TObject);
@ -105,6 +112,7 @@ procedure TResultDlgForm.FormDestroy(Sender: TObject);
begin begin
FLog.Free; FLog.Free;
FStatLog.Free; FStatLog.Free;
FDupLog.Free;
SaveConfig; SaveConfig;
end; end;
@ -127,6 +135,7 @@ procedure TResultDlgForm.FormShow(Sender: TObject);
begin begin
LogMemo.Lines.Assign(FLog); LogMemo.Lines.Assign(FLog);
StatMemo.Lines.Assign(FStatLog); StatMemo.Lines.Assign(FStatLog);
DupMemo.Lines.Assign(FDupLog);
GraphStatBtn.Visible := (PoFamilyStats <> nil) and (PoFamilyStats.Count > 0); GraphStatBtn.Visible := (PoFamilyStats <> nil) and (PoFamilyStats.Count > 0);
LoadConfig; LoadConfig;
WindowState := Settings.ResultsFormWindowState; WindowState := Settings.ResultsFormWindowState;
@ -176,6 +185,7 @@ begin
case ResultPageControl.PageIndex of case ResultPageControl.PageIndex of
0: CurrentMemo := LogMemo; 0: CurrentMemo := LogMemo;
1: CurrentMemo := StatMemo; 1: CurrentMemo := StatMemo;
2: CurrentMemo := DupMemo;
else else
CurrentMemo := nil; CurrentMemo := nil;
end; end;
@ -197,11 +207,13 @@ begin
begin begin
LogMemo.Font.Quality := fqNonAntialiased; LogMemo.Font.Quality := fqNonAntialiased;
StatMemo.Font.Quality := fqNonAntialiased; StatMemo.Font.Quality := fqNonAntialiased;
DupMemo.Font.Quality := fqNonAntialiased;
end end
else else
begin begin
LogMemo.Font.Quality := fqDefault; LogMemo.Font.Quality := fqDefault;
StatMemo.Font.Quality := fqDefault; StatMemo.Font.Quality := fqDefault;
DupMemo.Font.Quality := fqDefault;
end; end;
end; end;