mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-18 15:27:48 +01:00
73 lines
2.1 KiB
Bash
73 lines
2.1 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
##
|
||
|
# adjust settings here
|
||
|
##
|
||
|
application="Clover Preference Panel" # this is the name of the application
|
||
|
string_file="Localizable.strings" # the name of your Localizable string file
|
||
|
|
||
|
set -u
|
||
|
|
||
|
##
|
||
|
# no customizations below this line
|
||
|
##
|
||
|
cd "$(dirname $0)"
|
||
|
|
||
|
declare -r SOURCE_DIR="src"
|
||
|
declare -r PO_DIR="../package/po"
|
||
|
declare -r XCODE_MAJOR_VERSION=$(xcodebuild -version | grep ^Xcode | awk '{print $2}' | sed -e 's/\..*//')
|
||
|
|
||
|
# ========== OPTIONS ===========
|
||
|
EXTRACT_ONLY=0
|
||
|
|
||
|
while [[ $# -gt 0 ]]; do
|
||
|
option=$1
|
||
|
shift
|
||
|
case "$option" in
|
||
|
--extract-only) EXTRACT_ONLY=1 ;;
|
||
|
-*)
|
||
|
printf "Unrecognized option \`%s'\n" "$option" 1>&2
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
# Only extract source locale strings if XCode version > 4
|
||
|
if [[ "$XCODE_MAJOR_VERSION" -ge 4 ]]; then
|
||
|
tmp_dir="/tmp/$application"
|
||
|
mkdir -p "$tmp_dir"
|
||
|
# Extract source locale strings (use this to check if you added new strings to your xibs)
|
||
|
echo -n "Updating strings file for ${application}... "
|
||
|
genstrings -s GetLocalizedString -o "$tmp_dir" $SOURCE_DIR/*.m
|
||
|
iconv -f utf-16 -t utf-8 "$tmp_dir/$string_file" | grep -vE '^\/\*.*\*\/$' | \
|
||
|
grep -vE '^$' >"$tmp_dir/$string_file.new"
|
||
|
cmp --silent "$string_file" "$tmp_dir/$string_file.new"
|
||
|
if [[ $? -ne 0 ]]; then
|
||
|
mv -f "$tmp_dir/$string_file.new" "$string_file"
|
||
|
fi
|
||
|
rm -rf "$tmp_dir"
|
||
|
echo "done"
|
||
|
else
|
||
|
echo "XCode version too old. Don't extracting locale strings from source files"
|
||
|
fi
|
||
|
|
||
|
[[ "$EXTRACT_ONLY" -eq 1 ]] && exit 0
|
||
|
|
||
|
# Generate localized strings
|
||
|
for locale in "$PO_DIR"/*.po ; do
|
||
|
locale="${locale%.po}"
|
||
|
locale="${locale#$PO_DIR/}"
|
||
|
echo -n "Check "$locale" strings... "
|
||
|
[[ ! -d "$SOURCE_DIR/$locale.lproj" ]] && mkdir -p "$SOURCE_DIR/$locale.lproj"
|
||
|
if [ ! -f "$SOURCE_DIR/$locale.lproj/$string_file" ] ; then
|
||
|
echo -n "strings file $SOURCE_DIR/$locale.lproj/$string_file not found in locale dir '$locale.lproj' - using template file... "
|
||
|
cp -f "$string_file" "$SOURCE_DIR/$locale.lproj/$string_file"
|
||
|
fi
|
||
|
echo "done"
|
||
|
done
|
||
|
|
||
|
exit 0
|
||
|
##
|
||
|
# end of script
|
||
|
##
|