From dc7a76d8887fc3b570877d6c95411dfe30992700 Mon Sep 17 00:00:00 2001 From: Duncan Ogilvie Date: Fri, 17 May 2024 09:59:49 +0200 Subject: [PATCH] Error on empty translations and simplify command line --- TranslationChecker.exe | Bin 28160 -> 28160 bytes .../TranslationChecker/Program.cs | 28 +++++++++++++----- .../TranslationChecker.csproj | 3 +- crowdin-sync.bat | 2 +- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/TranslationChecker.exe b/TranslationChecker.exe index 3bb22315db08d5a0a12ee0d3d40bb6e85a5f6671..ba0bd25f77774314d4418317451deca6e26c74fd 100644 GIT binary patch delta 4168 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 delta 3999 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 AY5)KL diff --git a/TranslationChecker/TranslationChecker/Program.cs b/TranslationChecker/TranslationChecker/Program.cs index c7930aa..13baa40 100644 --- a/TranslationChecker/TranslationChecker/Program.cs +++ b/TranslationChecker/TranslationChecker/Program.cs @@ -186,7 +186,15 @@ namespace TranslationChecker void ReportError(Message message, string translation) { var location = message.Locations.First(); - Console.WriteLine($" Format string error ({location.Filename}:{location.Line})\n Source:\n '{message.Source}'\n Translation:\n '{translation}'"); + if (string.IsNullOrEmpty(translation)) + { + Console.WriteLine($" Empty translation ({location.Filename}:{location.Line})\n Source:\n '{message.Source}'"); + } + else + { + Console.WriteLine($" Format string error ({location.Filename}:{location.Line})\n Source:\n '{message.Source}'\n Translation:\n '{translation}'"); + + } success = false; ErrorCount++; } @@ -224,7 +232,13 @@ namespace TranslationChecker else { var translation = message.Translation.Text; - if (!CheckTranslation(original, translation)) + if (string.IsNullOrEmpty(translation)) + { + ReportError(message, translation); + if (fix) + message.Translation.Text = original; + } + else if (!CheckTranslation(original, translation)) { ReportError(message, translation); if (fix) @@ -266,19 +280,17 @@ namespace TranslationChecker } var fix = false; - var folder = false; for (var i = 1; i < args.Length; i++) { if (args[i] == "--fix") fix = true; - else if (args[i] == "--folder") - folder = true; } var success = true; - if (folder) + var path = args[0]; + if (File.GetAttributes(path).HasFlag(FileAttributes.Directory)) { - foreach (var tsFile in Directory.EnumerateFiles(args[0], "*.ts", SearchOption.AllDirectories)) + foreach (var tsFile in Directory.EnumerateFiles(path, "*.ts", SearchOption.AllDirectories)) { if (!CheckFile(tsFile, fix)) success = false; @@ -286,7 +298,7 @@ namespace TranslationChecker } else { - success = CheckFile(args[0], fix); + success = CheckFile(path, fix); } Console.WriteLine($"\nTotal errors: {ErrorCount}"); diff --git a/TranslationChecker/TranslationChecker/TranslationChecker.csproj b/TranslationChecker/TranslationChecker/TranslationChecker.csproj index 37a031d..c81e316 100644 --- a/TranslationChecker/TranslationChecker/TranslationChecker.csproj +++ b/TranslationChecker/TranslationChecker/TranslationChecker.csproj @@ -25,12 +25,13 @@ AnyCPU - pdbonly + full true bin\Release\ TRACE prompt 4 + true diff --git a/crowdin-sync.bat b/crowdin-sync.bat index ae05a1b..4a60b82 100644 --- a/crowdin-sync.bat +++ b/crowdin-sync.bat @@ -10,7 +10,7 @@ java -jar crowdin-cli.jar download if not %ERRORLEVEL%==0 exit /b echo Checking translations... -TranslationChecker.exe translations --folder --fix +TranslationChecker.exe translations --fix set CHECKER_ERRORLEVEL=%ERRORLEVEL% echo Generating Qt translations...