mirror of
https://github.com/mullvad/mullvadvpn-app.git
synced 2026-03-13 10:22:35 +08:00
109 lines
2.5 KiB
Bash
Executable File
109 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eu
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
# shellcheck disable=SC1091
|
|
source utils/log
|
|
|
|
# shellcheck disable=SC1091
|
|
source utils/localization_utils
|
|
|
|
function main {
|
|
case ${1:-""} in
|
|
prepare) prepare_localization_strings;;
|
|
upload) upload_to_crowdin;;
|
|
download) download_from_crowdin;;
|
|
sync-local-files) sync_localizations;;
|
|
verify) verify;;
|
|
"")
|
|
echo "Available subcommands: prepare, upload, download, sync-local-files and verify"
|
|
;;
|
|
*)
|
|
echo "Unknown parameter: $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function sync_localizations {
|
|
# Update desktop strings in messages.pot
|
|
log_header "Extracting localization strings from desktop app source code"
|
|
pushd ../desktop/packages/mullvad-vpn
|
|
npm run update-translations
|
|
popd
|
|
|
|
# Update android strings and add Android strings to messages.pot
|
|
log_header "Extracting localization strings from android app source code"
|
|
pushd ../android/translations-converter/
|
|
cargo run
|
|
popd
|
|
}
|
|
|
|
function update_relay_locations_pot {
|
|
log_header "Retrieving relay locations from server list and translating by using map data"
|
|
pushd ../desktop/packages/mullvad-vpn/scripts
|
|
|
|
# Add translations from geo data
|
|
python3 fetch-relay-locations.py
|
|
python3 integrate-relay-locations.py
|
|
|
|
popd
|
|
}
|
|
|
|
function prepare_localization_strings {
|
|
sync_localizations
|
|
commit_changes "Update messages.pot"
|
|
|
|
update_relay_locations_pot
|
|
commit_changes "Update relay-locations.pot"
|
|
}
|
|
|
|
function upload_to_crowdin {
|
|
ensure_crowdin_api_key
|
|
|
|
log_header "Uploading translations to crowdin"
|
|
|
|
pushd ../desktop/packages/mullvad-vpn
|
|
crowdin upload sources
|
|
crowdin upload translations
|
|
popd
|
|
}
|
|
|
|
function download_from_crowdin {
|
|
ensure_crowdin_api_key
|
|
|
|
log_header "Downloading translations from crowdin"
|
|
pushd ../desktop/packages/mullvad-vpn
|
|
crowdin download
|
|
popd
|
|
|
|
# Add new translations to Android xml-files
|
|
log_header "Updating Android xml-files with new translations"
|
|
sync_localizations
|
|
commit_changes "Update translations"
|
|
}
|
|
|
|
function verify {
|
|
sync_localizations
|
|
git diff
|
|
|
|
# shellcheck disable=SC2251
|
|
! git status -s | grep .
|
|
local out_of_sync=$?
|
|
|
|
pushd ../desktop/packages/mullvad-vpn
|
|
npm exec node scripts/verify-translations-format.ts
|
|
local incorrect_format=$?
|
|
popd
|
|
|
|
if [ "$out_of_sync" -ne 0 ] || [ "$incorrect_format" -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
main "$@"
|
|
|