OSDN Git Service

Fix Issue 85: Installer: warns of downgrade when running 0.6.2.0 on top of 0.6.1.0
[tortoisegit/TortoiseGitJp.git] / contrib / other / translation-status / TranslationStatus.bat
1 @echo off\r
2 rem Copyright (C) 2004-2008 the TortoiseSVN team\r
3 rem This file is distributed under the same license as TortoiseSVN\r
4 \r
5 rem Last commit by:\r
6 rem $Author: luebbe $\r
7 rem $Date: 2008-09-29 19:22:31 +0800 (Mon, 29 Sep 2008) $\r
8 rem $Rev: 14138 $\r
9 \r
10 rem Script to calculate the GUI and DOC translation status report for TortoiseSVN\r
11 \r
12 SETLOCAL ENABLEDELAYEDEXPANSION\r
13 \r
14 rem Trunk and branch location. \r
15 rem Without slash, because they're not only used for directories\r
16 set Trunk=trunk\r
17 set Brnch=branches\1.5.x\r
18 \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
23 \r
24 rem Some blanks for formatting\r
25 set Blanks30="                              "\r
26 set Sep75============================================================================\r
27 \r
28 rem Get current revision of working copy\r
29 for /F "usebackq" %%p in (`svnversion`) do set WCRev=%%p\r
30 \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
37 \r
38 echo.> %LogFile%\r
39 echo TortoiseSVN GUI translation status for revision !WCRev:~0,5!^ >> %LogFile%\r
40 \r
41 echo.>> %LogFile%\r
42 call :CheckTranslation Tortoise TortoiseGUI\r
43 \r
44 \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
51 \r
52 echo.> %LogFile%\r
53 echo TortoiseSVN DOC translation status for revision !WCRev:~0,5!^ >> %LogFile%\r
54 \r
55 echo.>> %LogFile%\r
56 call :CheckTranslation TortoiseSVN TortoiseSVN\r
57 \r
58 echo.>> %LogFile%\r
59 echo.>> %LogFile%\r
60 call :CheckTranslation TortoiseMerge TortoiseMerge\r
61 \r
62 ENDLOCAL\r
63 Exit /b 0\r
64 rem End of Program\r
65 rem ########################################\r
66 \r
67 \r
68 :CheckTranslation\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
74 \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
79 \r
80 set Cap=%2 %Sep75%\r
81 set Cap=!Cap:~0,75!\r
82 echo !Cap! >> %LogFile%\r
83 \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
90 \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
93 rem !!! ATTENTION \r
94 rem !!! There is a real TAB key inside "delims= ;"\r
95 rem !!! Please leave it there\r
96 \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
101 \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
107   )\r
108 )\r
109 \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
114 \r
115 call :Cleanup %1 trunk\r
116 call :Cleanup %1 branch\r
117 \r
118 exit /b 0\r
119 rem End:CheckTranslation\r
120 rem ----------------------------------------------------------------------\r
121 \r
122 \r
123 :Prepare\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
128 rem %3 = Dest dir\r
129 rem Return number of strings in errorlevel\r
130 rem ----------------------------------------------------------------------\r
131 echo.\r
132 echo Preparing working directory %2 %3\r
133 echo ----------------------------------------------------------------------\r
134 \r
135 copy %1\%2*.po %3 /Y 1>NUL\r
136 copy %1\%2.pot %3 /Y 1>NUL\r
137 \r
138 pushd %3\r
139 \r
140 FOR /F "usebackq" %%p IN (`%ScriptPath%\Check_Attrib.bat %2.pot`) DO SET StringsTotal=%%p\r
141 \r
142 FOR %%i in (%2*.po) DO (\r
143   echo %%i\r
144   msgmerge --no-wrap --quiet --no-fuzzy-matching -s %%i %2.pot -o %%i 2> NUL\r
145 )\r
146 popd\r
147 \r
148 exit /b !StringsTotal!\r
149 rem End:Prepare\r
150 rem ----------------------------------------------------------------------\r
151 \r
152 \r
153 :Cleanup\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
157 rem %2 = Directory\r
158 rem ----------------------------------------------------------------------\r
159 echo Cleaning up working directory %1 %2\r
160 pushd %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
164 popd\r
165 exit /b 0\r
166 rem End:Cleanup\r
167 rem ----------------------------------------------------------------------\r