#!/usr/bin/env bash set -x set -e BIN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd $BIN_DIR/.. # Pull all translations which are at least 80% complete tx pull -a --minimum-perc=80 # Legacy hack: pull *any existing* translations regardless of their completion. # Once supported, we don't want to drop any translations. tx pull --force for dir in *.lproj do # en.lproj is already utf-8 if [[ "$dir" = "en.lproj" ]]; then continue fi pushd $dir # Transifex pulls utf-16, but our string linting script needs utf-8. # Plus we can see the string diffs in GH this way. iconv -f utf-16 -t utf-8 Localizable.strings > Localizable.strings.utf8 mv Localizable.strings.utf8 Localizable.strings popd done # Get and build iStringsCheck from https://github.com/FredericJacobs/iStringsCheck # This does some checks to make sure all strings are present and that interpolated strings have the right number of arguments LINT_CMD=../../../l10n_lint/target/debug/l10n_lint if [ -e $LINT_CMD ] then $LINT_CMD en.lproj/Localizable.strings . else echo "Missing string linter. See: https://github.com:WhisperSystems/l10n_lint" exit 1 fi echo "Make sure you register any new localizations in XCode! (Go to Project > Signal > Localizations > Add Localizations)"