-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdemo.sh
More file actions
executable file
·272 lines (238 loc) · 9.06 KB
/
demo.sh
File metadata and controls
executable file
·272 lines (238 loc) · 9.06 KB
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
#!/bin/bash
# Demo script for Localization Resource Manager (LRM)
# Record with: asciinema rec lrm-demo.cast -c ./demo.sh
# Convert with: agg lrm-demo.cast lrm-demo.gif --speed 1.5
# Configuration
LRM="./publish/linux-x64/lrm"
RESX_PATH="./LocalizationManager.Tests/TestData"
JSON_PATH="./LocalizationManager.Tests/TestData/JsonResources"
RESX_KEY="WelcomeMessage"
JSON_KEY="WelcomeMessage"
NESTED_KEY="Validation.Required"
SLEEP_SHORT=1
SLEEP_MEDIUM=2
SLEEP_LONG=3
# Check if binary exists
if [ ! -f "$LRM" ]; then
echo "Error: LRM binary not found at $LRM"
echo "Please run ./build.sh first to build the project"
exit 1
fi
# Backup test data before demo
echo "Backing up test data..."
cp -r "$RESX_PATH" "${RESX_PATH}.backup"
cp -r "$JSON_PATH" "${JSON_PATH}.backup"
# Cleanup function to restore test data
cleanup() {
echo ""
echo "Restoring test data..."
rm -rf "$RESX_PATH"
mv "${RESX_PATH}.backup" "$RESX_PATH"
rm -rf "$JSON_PATH"
mv "${JSON_PATH}.backup" "$JSON_PATH"
echo "Test data restored."
}
# Register cleanup function to run on exit
trap cleanup EXIT
# Colors for demo
BLUE='\033[0;34m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Function to show command
show_command() {
echo -e "${BLUE}$ $1${NC}"
sleep 0.5
}
# Function to show section header
show_section() {
echo -e "${YELLOW}━━━ $1 ━━━${NC}"
}
# Function to pause with message
pause() {
echo ""
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
sleep $1
}
clear
echo "╔════════════════════════════════════════════════════════════════╗"
echo "║ Localization Resource Manager (LRM) - Feature Demo ║"
echo "║ ║"
echo "║ Showcasing: RESX and JSON Support ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
sleep $SLEEP_MEDIUM
# 1. Show main help
clear
echo "=== 1. Main Help ==="
echo ""
show_command "lrm --help"
$LRM --help | head -30
pause $SLEEP_LONG
# ═══════════════════════════════════════════════════════════════════
# RESX FORMAT DEMONSTRATIONS
# ═══════════════════════════════════════════════════════════════════
clear
show_section "RESX Format (.resx files)"
echo ""
sleep $SLEEP_SHORT
# 2. RESX: Validation
clear
echo "=== 2. RESX: Validate Resources ==="
echo ""
show_command "lrm validate --path $RESX_PATH"
$LRM validate --path $RESX_PATH
pause $SLEEP_LONG
# 3. RESX: Statistics
clear
echo "=== 3. RESX: Translation Statistics ==="
echo ""
show_command "lrm stats --path $RESX_PATH"
$LRM stats --path $RESX_PATH
pause $SLEEP_LONG
# 4. RESX: View specific key
clear
echo "=== 4. RESX: View Key Details ==="
echo ""
show_command "lrm view $RESX_KEY --path $RESX_PATH"
$LRM view $RESX_KEY --path $RESX_PATH
pause $SLEEP_MEDIUM
# 5. RESX: Add a test key
clear
echo "=== 5. RESX: Add New Key ==="
echo ""
show_command "lrm add ResxDemo --lang default:\"Test Value\" --lang el:\"Τιμή Δοκιμής\" --path $RESX_PATH --no-backup"
$LRM add ResxDemo --lang default:"Test Value" --lang el:"Τιμή Δοκιμής" --path $RESX_PATH --no-backup
pause $SLEEP_MEDIUM
# 6. RESX: Update key
clear
echo "=== 6. RESX: Update Key ==="
echo ""
show_command "lrm update ResxDemo --lang default:\"Updated Value\" --path $RESX_PATH --no-backup -y"
$LRM update ResxDemo --lang default:"Updated Value" --path $RESX_PATH --no-backup -y
pause $SLEEP_MEDIUM
# 7. RESX: Delete test key
clear
echo "=== 7. RESX: Delete Key ==="
echo ""
show_command "lrm delete ResxDemo --path $RESX_PATH --no-backup -y"
$LRM delete ResxDemo --path $RESX_PATH --no-backup -y
pause $SLEEP_SHORT
# ═══════════════════════════════════════════════════════════════════
# JSON FORMAT DEMONSTRATIONS
# ═══════════════════════════════════════════════════════════════════
clear
show_section "JSON Format (JSON resource files)"
echo ""
sleep $SLEEP_SHORT
# 8. JSON: Statistics
clear
echo "=== 8. JSON: Translation Statistics ==="
echo ""
show_command "lrm stats --path $JSON_PATH"
$LRM stats --path $JSON_PATH
pause $SLEEP_LONG
# 9. JSON: View simple key
clear
echo "=== 9. JSON: View Simple Key ==="
echo ""
show_command "lrm view $JSON_KEY --path $JSON_PATH"
$LRM view $JSON_KEY --path $JSON_PATH
pause $SLEEP_MEDIUM
# 10. JSON: View nested key
clear
echo "=== 10. JSON: View Nested Key ==="
echo ""
show_command "lrm view $NESTED_KEY --path $JSON_PATH"
$LRM view $NESTED_KEY --path $JSON_PATH
pause $SLEEP_LONG
# 11. JSON: View in JSON format
clear
echo "=== 11. JSON: Output in JSON Format ==="
echo ""
show_command "lrm view $NESTED_KEY --path $JSON_PATH --format json"
$LRM view $NESTED_KEY --path $JSON_PATH --format json
pause $SLEEP_MEDIUM
# 12. JSON: Add simple key
clear
echo "=== 12. JSON: Add Simple Key ==="
echo ""
show_command "lrm add jsonDemo --lang default:\"Demo Value\" --lang el:\"Τιμή Επίδειξης\" --path $JSON_PATH --no-backup"
$LRM add jsonDemo --lang default:"Demo Value" --lang el:"Τιμή Επίδειξης" --path $JSON_PATH --no-backup
pause $SLEEP_MEDIUM
# 13. JSON: View the added key
clear
echo "=== 13. JSON: View Added Key ==="
echo ""
show_command "lrm view jsonDemo --path $JSON_PATH"
$LRM view jsonDemo --path $JSON_PATH
pause $SLEEP_MEDIUM
# 14. JSON: Delete test key
clear
echo "=== 14. JSON: Delete Key ==="
echo ""
show_command "lrm delete jsonDemo --path $JSON_PATH --no-backup -y"
$LRM delete jsonDemo --path $JSON_PATH --no-backup -y
pause $SLEEP_SHORT
# ═══════════════════════════════════════════════════════════════════
# ADDITIONAL FEATURES
# ═══════════════════════════════════════════════════════════════════
clear
show_section "Additional Features"
echo ""
sleep $SLEEP_SHORT
# 15. Export to CSV (RESX)
clear
echo "=== 15. Export to CSV ==="
echo ""
show_command "lrm export --path $RESX_PATH -o demo-export.csv"
$LRM export --path $RESX_PATH -o demo-export.csv
echo ""
echo "Preview of exported CSV:"
head -5 demo-export.csv
rm -f demo-export.csv 2>/dev/null
pause $SLEEP_MEDIUM
# 16. List languages
clear
echo "=== 16. List Available Languages ==="
echo ""
show_command "lrm list-languages --path $RESX_PATH"
$LRM list-languages --path $RESX_PATH
pause $SLEEP_MEDIUM
# 17. Interactive TUI Editor
clear
echo "=== 17. Interactive TUI Editor ==="
echo ""
show_command "lrm edit --path $RESX_PATH"
echo ""
echo "Features:"
echo " • Real-time search and filtering"
echo " • Multi-column table view (all languages side-by-side)"
echo " • Edit, Add, Delete keys"
echo " • Support for RESX and JSON formats"
echo " • Support for nested keys (dot notation)"
echo " • In-app machine translation (Ctrl+T)"
echo " • Keyboard shortcuts (F1 for help)"
echo " • Press Ctrl+Q to exit"
echo ""
sleep $SLEEP_MEDIUM
echo "Launching editor..."
sleep 1
$LRM edit --path $RESX_PATH
# Finale
clear
echo ""
echo "╔════════════════════════════════════════════════════════════════╗"
echo "║ Thank you for watching the demo! ║"
echo "║ ║"
echo "║ Features demonstrated: ║"
echo "║ ✓ RESX file support (.resx) ║"
echo "║ ✓ JSON file support with nested keys ║"
echo "║ ✓ Validation, statistics, and key management ║"
echo "║ ✓ Interactive TUI with multi-language editing ║"
echo "║ ✓ Multiple output formats (table, JSON, CSV) ║"
echo "║ ║"
echo "║ GitHub: https://github.com/nickprotop/LocalizationManager ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
sleep $SLEEP_LONG