forked from commons-app/apps-android-commons
-
Notifications
You must be signed in to change notification settings - Fork 1
/
find-broken-strings-variables.sh
executable file
·34 lines (29 loc) · 1.15 KB
/
find-broken-strings-variables.sh
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
#! /bin/sh
# Spot malformed string replacement patterns in Android localization files.
# First install Lint from the Android SDK
VALUES=app/src/main/res/values
grep -R "%1$ s" $VALUES*
grep -R "%1$ d" $VALUES*
grep -R "%1" $VALUES* | grep -v "%1\\$"
grep -RH '%' $VALUES* |
sed -e 's/%/\n%/g' | # Split lines that contain several expressions
grep '%' | # Filter out lines that do not contain expressions
grep -v ' % ' | # Lone % character, not a variable
grep -v '%<' | # Same, at the end of the string
#grep -v '% ' | # Same, at the beginning of the string
grep -v '%で' | # Same, no spaces in Japanese
grep -v '%s' | # Single string variable
grep -v '%d' | # Single decimal variable
grep -v '%[0-9][0-9]\?$s' | # Multiple string variable
grep -v '%[0-9][0-9]\?$d' | # Multiple decimal variable
grep -v '%1$.1f' | # ?
grep -v '%.1f' |
grep -v '%\\n' |
grep -v '%20' # Ignore URL whitespace
exit
# Double-width percent sign
grep -R '%' $VALUES*
# Broken CDATA syntax
grep -R "CDATA " $VALUES*
# Android SDK Lint (does not detect most syntax errors)
lint --check StringFormatInvalid commons