From 907a45597eccb10b482b7c6ca8f154856f04a630 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Wed, 10 Dec 2014 13:57:03 +0100 Subject: [PATCH] Fix strings files generator script to handle IC_MSG and IM_MSG correctly --- Resources/en.lproj/Localizable.strings | Bin 26846 -> 13590 bytes Tools/generate_strings_files.sh | 47 +++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100755 Tools/generate_strings_files.sh diff --git a/Resources/en.lproj/Localizable.strings b/Resources/en.lproj/Localizable.strings index 7beecb2027669682c74a09cf06ac36c9cddba6e2..bcda4113c85e2d639079b9e3b00270f03e7c64a6 100644 GIT binary patch literal 13590 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 literal 26846 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 diff --git a/Tools/generate_strings_files.sh b/Tools/generate_strings_files.sh new file mode 100755 index 000000000..85b658121 --- /dev/null +++ b/Tools/generate_strings_files.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +root_directory=$(cd "$(dirname $0)" && pwd)/../ + +# The 2 only specific cases of the application: since we are length limited for push +# notifications, the ID is not matching the English translation... so we must keep +# the translations! +localizable_en=$root_directory/Resources/en.lproj/Localizable.strings +IC_MSG_EN=$(grep IC_MSG $localizable_en | sed -nE 's/"IC_MSG" = "(.*)";/\1/p') +IM_MSG_EN=$(grep IM_MSG $localizable_en | sed -nE 's/"IM_MSG" = "(.*)";/\1/p') +rm -f $localizable_en +find $root_directory/Classes -name '*.m' | xargs genstrings -u -a -o $(dirname $localizable_en) +iconv -f utf-16 -t utf-8 $localizable_en > $localizable_en.tmp +mv $localizable_en.tmp $localizable_en +sed -i.bak "s/= \"IC_MSG\";/= \"$IC_MSG_EN\";/" $localizable_en +sed -i.bak "s/= \"IM_MSG\";/= \"$IM_MSG_EN\";/" $localizable_en +rm $localizable_en.bak + +to_utf8=$(mktemp -t linphone) +for xibfile in $(find $(find $root_directory/Classes -name Base.lproj) -name '*.xib'); do + stringsfile=${xibfile/.xib/.strings} + + ibtool --generate-strings-file $stringsfile $xibfile + + # remove if empty + iconv -f utf-16 -t utf-8 $stringsfile > $to_utf8 + if [ ! -s $to_utf8 ]; then + echo "$(basename $stringsfile) is empty, removing" + rm $stringsfile + else + echo "$(basename $xibfile)->$(basename $stringsfile)" + + res_name=$(basename $stringsfile | tr -d '_.~-' | tr '[:upper:]' '[:lower:]') + dir_name=$(echo $(dirname $stringsfile) | sed -E "s|$root_directory/||") + # if not registered in transifex config file, register it + if ! grep -q $res_name $root_directory/.tx/config; then + echo "not found in .tx/config, adding it" + echo " +[linphone-ios.$res_name] +file_filter = $(echo $dir_name| sed 's/Base.lproj/.lproj/')/$(basename $stringsfile) +source_file = $dir_name/$(basename $stringsfile) +source_lang = en +" >> $root_directory/.tx/config + fi + fi +done +rm $to_utf8