2 rem Copyright (C) 2004-2008 the TortoiseSVN team
\r
3 rem This file is distributed under the same license as TortoiseSVN
\r
6 rem $Author: luebbe $
\r
7 rem $Date: 2008-09-29 19:22:31 +0800 (Mon, 29 Sep 2008) $
\r
10 rem Script to calculate the GUI and DOC translation status report for TortoiseSVN
\r
12 SETLOCAL ENABLEDELAYEDEXPANSION
\r
14 rem Trunk and branch location.
\r
15 rem Without slash, because they're not only used for directories
\r
17 set Brnch=branches\1.5.x
\r
19 rem Paths & working directories
\r
20 set ScriptPath=%~dp0
\r
21 set RootDir=..\..\..\..\
\r
22 set LanguageList=%RootDir%%Trunk%\Languages\Languages.txt
\r
24 rem Some blanks for formatting
\r
26 set Sep75============================================================================
\r
28 rem Get current revision of working copy
\r
29 for /F "usebackq" %%p in (`svnversion`) do set WCRev=%%p
\r
31 rem ----------------------------------------
\r
32 rem Set parameters for gui translation
\r
33 rem ----------------------------------------
\r
34 set WDirTrunk=%RootDir%%Trunk%\Languages
\r
35 set WDirBrnch=%RootDir%%Brnch%\Languages
\r
36 set LogFile=%ScriptPath%\gui_translation.txt
\r
39 echo TortoiseSVN GUI translation status for revision !WCRev:~0,5!^ >> %LogFile%
\r
42 call :CheckTranslation Tortoise TortoiseGUI
\r
45 rem ----------------------------------------
\r
46 rem Set parameters for doc translation
\r
47 rem ----------------------------------------
\r
48 set WDirTrunk=%RootDir%%Trunk%\doc\po
\r
49 set WDirBrnch=%RootDir%%Brnch%\doc\po
\r
50 set LogFile=%ScriptPath%\doc_translation.txt
\r
53 echo TortoiseSVN DOC translation status for revision !WCRev:~0,5!^ >> %LogFile%
\r
56 call :CheckTranslation TortoiseSVN TortoiseSVN
\r
60 call :CheckTranslation TortoiseMerge TortoiseMerge
\r
65 rem ########################################
\r
69 rem ----------------------------------------------------------------------
\r
70 rem Subroutine to check the translation status
\r
71 rem %1 = Name of po/pot files
\r
72 rem %2 = Caption for log file
\r
73 rem ----------------------------------------------------------------------
\r
75 call :Prepare %WDirTrunk% %1 trunk
\r
76 set TotalTrunk=%Errorlevel%
\r
77 call :Prepare %WDirBrnch% %1 branch
\r
78 set TotalBrnch=%Errorlevel%
\r
82 echo !Cap! >> %LogFile%
\r
84 rem Write log file header
\r
85 echo : Developer Version : Current Release >> %LogFile%
\r
86 echo Location : %Trunk% : %Brnch% >> %LogFile%
\r
87 echo Total strings : %TotalTrunk% : %TotalBrnch% >> %LogFile%
\r
88 echo Language : Status (fu/un/ma) : Status (fu/un/ma) >> %LogFile%
\r
89 echo =========================================================================== >> %LogFile%
\r
91 rem Let's loop through all trunk translations.
\r
92 rem Don't care if there's a language more on the release branch (dead language anyway)
\r
94 rem !!! There is a real TAB key inside "delims= ;"
\r
95 rem !!! Please leave it there
\r
97 for /F "eol=# delims= ; tokens=1,5" %%i in (%LanguageList%) do (
\r
98 set PoFile=%1_%%i.po
\r
99 set LangName=%%j ^(%%i^)%Blanks30:~1,30%
\r
100 set LangName=!LangName:~0,30!
\r
102 if exist trunk\!PoFile! (
\r
103 echo Computing Status for !LANGNAME!
\r
104 for /F "usebackq delims=#" %%p in (`Check_Status.bat trunk !PoFile! !TotalTrunk!`) do set StatusTrunk=%%p
\r
105 for /F "usebackq delims=#" %%p in (`Check_Status.bat branch !PoFile! !TotalBrnch!`) do set StatusBrnch=%%p
\r
106 echo !LANGNAME! : !StatusTrunk! : !StatusBrnch! >> %Logfile%
\r
110 rem Write log file footer
\r
111 echo =========================================================================== >> %LogFile%
\r
112 echo Status: fu=fuzzy - un=untranslated - ma=missing accelerator keys >> %LogFile%
\r
113 echo =========================================================================== >> %LogFile%
\r
115 call :Cleanup %1 trunk
\r
116 call :Cleanup %1 branch
\r
119 rem End:CheckTranslation
\r
120 rem ----------------------------------------------------------------------
\r
124 rem ----------------------------------------------------------------------
\r
125 rem Subroutine to prepare the working directory for the check
\r
126 rem %1 = Source dir
\r
127 rem %2 = File name(s) to copy
\r
129 rem Return number of strings in errorlevel
\r
130 rem ----------------------------------------------------------------------
\r
132 echo Preparing working directory %2 %3
\r
133 echo ----------------------------------------------------------------------
\r
135 copy %1\%2*.po %3 /Y 1>NUL
\r
136 copy %1\%2.pot %3 /Y 1>NUL
\r
140 FOR /F "usebackq" %%p IN (`%ScriptPath%\Check_Attrib.bat %2.pot`) DO SET StringsTotal=%%p
\r
142 FOR %%i in (%2*.po) DO (
\r
144 msgmerge --no-wrap --quiet --no-fuzzy-matching -s %%i %2.pot -o %%i 2> NUL
\r
148 exit /b !StringsTotal!
\r
150 rem ----------------------------------------------------------------------
\r
154 rem ----------------------------------------------------------------------
\r
155 rem Subroutine to clean up the working directory after the check
\r
156 rem %1 = File name(s) to delete
\r
158 rem ----------------------------------------------------------------------
\r
159 echo Cleaning up working directory %1 %2
\r
161 del %1*.po /Q 2>Nul
\r
162 del %1.pot /Q 2>Nul
\r
163 del %1*.mo /Q 2>Nul
\r
167 rem ----------------------------------------------------------------------
\r