mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-11 14:28:08 +01:00
88 lines
3.0 KiB
Bash
88 lines
3.0 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
##
|
||
|
# adjust settings here
|
||
|
##
|
||
|
application="Clover Preference Panel" # this is the name of the application
|
||
|
src_locale="en" # this is the language you design in
|
||
|
xib_file="CloverPrefpane.xib" # the name of your XIB interface builder file
|
||
|
strings_file="CloverPrefpane.strings" # the name of your strings 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
|
||
|
# Extract source locale strings (use this to check if you added new strings to your xibs)
|
||
|
echo -n "Updating '$src_locale' strings file for ${application}... "
|
||
|
ibtool --generate-strings-file $strings_file.utf16 "$SOURCE_DIR/$src_locale.lproj/$xib_file"
|
||
|
if [[ $? -eq 0 ]]; then
|
||
|
iconv -f utf-16 -t utf-8 $strings_file.utf16 | grep -vE '^\/\*.*\*\/$' | \
|
||
|
grep -vE '^$' >$strings_file.new
|
||
|
rm -f $strings_file.utf16
|
||
|
cmp --silent $strings_file $strings_file.new
|
||
|
if [[ $? -eq 0 ]]; then
|
||
|
# No change
|
||
|
rm -f $strings_file.new
|
||
|
else
|
||
|
mv -f $strings_file.new $strings_file
|
||
|
fi
|
||
|
echo "done"
|
||
|
else
|
||
|
echo "Generation failed. Not extracting locale strings from source XIB file"
|
||
|
fi
|
||
|
else
|
||
|
echo "XCode version too old. Not extracting locale strings from source XIB file"
|
||
|
fi
|
||
|
|
||
|
[[ "$EXTRACT_ONLY" -eq 1 ]] && exit 0
|
||
|
|
||
|
# Generate localized interfaces
|
||
|
for locale in "$PO_DIR"/*.po ; do
|
||
|
locale="${locale%.po}"
|
||
|
locale="${locale#$PO_DIR/}"
|
||
|
[[ "$locale" == $src_locale ]] && continue
|
||
|
echo -n "Generating "$locale" interface... "
|
||
|
[[ ! -d "$SOURCE_DIR/$locale.lproj" ]] && mkdir -p "$SOURCE_DIR/$locale.lproj"
|
||
|
if [ -f "$SOURCE_DIR/$locale.lproj/$strings_file" ] ; then
|
||
|
if [[ "$XCODE_MAJOR_VERSION" -lt 4 ]]; then
|
||
|
# XCode before version 4 doesn't recognize ibShadowedXXXXXX OID
|
||
|
# try to change to the old OID: gXXXXX
|
||
|
sed -i '' -E 's/\.ibShadowed([[:alnum:]]+)/\.g\1/g' "$SOURCE_DIR/$locale.lproj/$strings_file"
|
||
|
fi
|
||
|
ibtool --strings-file "$SOURCE_DIR/$locale.lproj/$strings_file" \
|
||
|
--write "$SOURCE_DIR/$locale.lproj/$xib_file" "$SOURCE_DIR/$src_locale.lproj/$xib_file"
|
||
|
else
|
||
|
echo -n "strings file $SOURCE_DIR/$locale.lproj/$strings_file not found in locale dir '$locale.lproj' - using '$src_locale' locale... "
|
||
|
cp -f "$SOURCE_DIR/$src_locale.lproj/$xib_file" "$SOURCE_DIR/$locale.lproj/$xib_file"
|
||
|
fi
|
||
|
echo "done"
|
||
|
done
|
||
|
|
||
|
##
|
||
|
# end of script
|
||
|
##
|