This repository has been archived by the owner on Nov 11, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Internationalization.cmd
145 lines (121 loc) · 3.6 KB
/
Internationalization.cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
:: ==================================================================================
:: NAME: Internationalization Project.
:: DESCRIPTION: Example of Internationalization.
:: AUTHOR: Manuel Gil.
:: VERSION: 1.0.0.0001
:: ==================================================================================
:: Set console.
:: void mode();
:: /************************************************************************************/
:mode
echo off
setlocal enabledelayedexpansion
title Internationalization
color 2F
cls
goto getValues
goto :eof
:: /************************************************************************************/
:: Get Text.
:: @param - folder = the local folder (%~1).
:: @param - file = the language file (%~2).
:: @param - key = the key to print (%~3).
:: @return - value = text result (%~4).
:: void getText(string folder, string file, int key);
:: /*************************************************************************************/
:getText
for /f "tokens=2 delims=|" %%a in ('findstr "%~3" "%~1lang\%~2.lng"') do (
set %~4=%%a
)
goto :eof
:: /*************************************************************************************/
:: Print Text.
:: @param - key = the key to print (%~1).
:: void print(string file, int key);
:: /*************************************************************************************/
:print
call :getText %~dp0 %lang% %~1 text
echo.%text%
goto :eof
:: /*************************************************************************************/
:: Load the language files.
:: void getValues();
:: /************************************************************************************/
:getValues
set count=0
for /f "tokens=*" %%a in ('dir /b "%~dp0lang\"') do (
set /a count+=1
set lang[!count!]=%%~na
)
goto menu
goto :eof
:: /************************************************************************************/
:: Menu of tool.
:: void menu();
:: /*************************************************************************************/
:menu
cls
echo.
echo. Internationalization
echo.
echo.************************************************************************
echo.
for /l %%i in (1,1,%count%) do (
echo %%i !lang[%%i]!
)
echo.
echo. 0. Close.
echo.
set /p option=Select an option:
if %option% EQU 0 (
goto close
) else if %option% GEQ 1 (
if %option% LEQ %count% (
call :show %option%
) else (
echo.
echo.Invalid option.
echo.
echo.Press any key to continue . . .
pause>nul
)
) else (
echo.
echo.Invalid option.
echo.
echo.Press any key to continue . . .
pause>nul
)
goto menu
goto :eof
:: /*************************************************************************************/
:: Show the example.
:: @param - file = the language file (%~1).
:: void show(string file);
:: /*************************************************************************************/
:show
call set lang=%%lang[%~1]%%
cls
echo.
echo. Internationalization
echo.
echo.************************************************************************
echo.
call :print 1001
call :print 1002
echo.
call :print 1003
call :print 1004
echo.
echo.
echo.Press any key to continue . . .
pause>nul
goto :eof
:: /*************************************************************************************/
:: End tool.
:: void close();
:: /*************************************************************************************/
:close
exit
goto :eof
:: /*************************************************************************************/