Skip to content

Commit b10afde

Browse files
authored
Merge pull request #714 from synonymdev/fix/regional-t10s
fix: transifex sync scripts and regional translations
2 parents e87c214 + e2f79a2 commit b10afde

File tree

6 files changed

+3501
-1397
lines changed

6 files changed

+3501
-1397
lines changed

app/src/main/res/values-b+es+419/strings.xml

Lines changed: 741 additions & 743 deletions
Large diffs are not rendered by default.

app/src/main/res/values-es-rES/strings.xml

Lines changed: 997 additions & 0 deletions
Large diffs are not rendered by default.

app/src/main/res/values-it/strings.xml

Lines changed: 639 additions & 639 deletions
Large diffs are not rendered by default.

app/src/main/res/values-pt-rBR/strings.xml

Lines changed: 997 additions & 0 deletions
Large diffs are not rendered by default.

scripts/pull-translations.sh

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -117,31 +117,41 @@ while IFS= read -r dir; do
117117
dir_path=$(dirname "$dir")
118118

119119
case "$dir_name" in
120-
values-arb)
121-
rename_or_merge "$dir" "$dir_path/values-ar" && RENAMED_COUNT=$((RENAMED_COUNT + 1))
120+
# Keep these as-is (direct 1:1 mapping from Transifex or already in correct format)
121+
values-ar|values-b+es+419|values-ca|values-cs|values-de|values-el|values-es|values-es-rES|values-fr|values-it|values-nl|values-pl|values-pt|values-pt-rBR|values-ru)
122122
;;
123+
# RENAME Transifex locales to Android folder names
123124
values-es_419)
124-
rename_or_merge "$dir" "$dir_path/values-b+es+419" && RENAMED_COUNT=$((RENAMED_COUNT + 1))
125+
echo " Renaming: $dir_name -> values-b+es+419"
126+
rm -rf "$dir_path/values-b+es+419" 2>/dev/null
127+
mv "$dir" "$dir_path/values-b+es+419"
128+
RENAMED_COUNT=$((RENAMED_COUNT + 1))
125129
;;
126130
values-es_ES)
127-
rename_or_merge "$dir" "$dir_path/values-es" && RENAMED_COUNT=$((RENAMED_COUNT + 1))
131+
echo " Renaming: $dir_name -> values-es-rES"
132+
rm -rf "$dir_path/values-es-rES" 2>/dev/null
133+
mv "$dir" "$dir_path/values-es-rES"
134+
RENAMED_COUNT=$((RENAMED_COUNT + 1))
128135
;;
129-
values-b+es+419|values-es|values-pt)
130-
# Keep these as-is
136+
values-pt_BR)
137+
echo " Renaming: $dir_name -> values-pt-rBR"
138+
rm -rf "$dir_path/values-pt-rBR" 2>/dev/null
139+
mv "$dir" "$dir_path/values-pt-rBR"
140+
RENAMED_COUNT=$((RENAMED_COUNT + 1))
131141
;;
132-
values-b+pt+PT|values-pt_PT)
133-
echo " Removing: $dir_name"
134-
rm -rf "$dir" && REMOVED_COUNT=$((REMOVED_COUNT + 1))
135-
;;
136-
values-b+pt+*|values-pt_*)
137-
# Convert Brazilian Portuguese to values-pt
138-
rename_or_merge "$dir" "$dir_path/values-pt" && RENAMED_COUNT=$((RENAMED_COUNT + 1))
142+
# DELETE 0% or near-0% translation locales
143+
values-arb|values-pt_PT|values-ja|values-ko|values-no|values-fa|values-ro|values-uk|values-yo)
144+
echo " Removing: $dir_name (0% translations)"
145+
rm -rf "$dir"
146+
REMOVED_COUNT=$((REMOVED_COUNT + 1))
139147
;;
148+
# Handle any other BCP 47 formats
140149
values-b+*)
141-
# Convert other BCP 47 formats to underscore format
142150
new_name=$(echo "$dir_name" | sed 's/values-b+\([a-z][a-z]*\)+\([A-Z0-9][A-Z0-9]*\)/values-\1_\2/')
143151
if [ "$new_name" != "$dir_name" ]; then
144-
rename_or_merge "$dir" "$dir_path/$new_name" && RENAMED_COUNT=$((RENAMED_COUNT + 1))
152+
echo " Renaming: $dir_name -> $new_name"
153+
mv "$dir" "$dir_path/$new_name"
154+
RENAMED_COUNT=$((RENAMED_COUNT + 1))
145155
fi
146156
;;
147157
esac

scripts/push-translations.sh

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
#!/bin/bash
2+
3+
# Script to push translations to Transifex
4+
# Handles directory naming conversion between Android format and Transifex format
5+
6+
set -e
7+
8+
# Validate script is run from project root
9+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
10+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
11+
RES_DIR="$PROJECT_ROOT/app/src/main/res"
12+
13+
if [ ! -d "$RES_DIR" ]; then
14+
echo "Error: Resource directory not found: $RES_DIR"
15+
echo "Please run this script from the project root directory."
16+
exit 1
17+
fi
18+
19+
if [ ! -f "$PROJECT_ROOT/.tx/config" ]; then
20+
echo "Error: Transifex config not found: $PROJECT_ROOT/.tx/config"
21+
echo "Please ensure Transifex is configured for this project."
22+
exit 1
23+
fi
24+
25+
# Check if tx command is available
26+
if ! command -v tx &> /dev/null; then
27+
echo "Error: Transifex CLI (tx) is not installed or not in PATH"
28+
echo "Please install it: https://developers.transifex.com/docs/cli"
29+
exit 1
30+
fi
31+
32+
# Check if TX_TOKEN is set
33+
if [ -z "$TX_TOKEN" ]; then
34+
echo "Error: TX_TOKEN environment variable is not set"
35+
echo "Please set it with your Transifex API token: export TX_TOKEN=\"your-token\""
36+
exit 1
37+
fi
38+
39+
# Track renamed directories for cleanup
40+
RENAMED_ES_ES=false
41+
RENAMED_PT_BR=false
42+
RENAMED_ES_419=false
43+
44+
# Cleanup function to restore Android directory names
45+
cleanup() {
46+
echo ""
47+
echo "Restoring Android directory names..."
48+
49+
if [ "$RENAMED_ES_ES" = true ] && [ -d "$RES_DIR/values-es_ES" ]; then
50+
echo " Restoring: values-es_ES -> values-es-rES"
51+
mv "$RES_DIR/values-es_ES" "$RES_DIR/values-es-rES"
52+
fi
53+
54+
if [ "$RENAMED_PT_BR" = true ] && [ -d "$RES_DIR/values-pt_BR" ]; then
55+
echo " Restoring: values-pt_BR -> values-pt-rBR"
56+
mv "$RES_DIR/values-pt_BR" "$RES_DIR/values-pt-rBR"
57+
fi
58+
59+
if [ "$RENAMED_ES_419" = true ] && [ -d "$RES_DIR/values-es_419" ]; then
60+
echo " Restoring: values-es_419 -> values-b+es+419"
61+
mv "$RES_DIR/values-es_419" "$RES_DIR/values-b+es+419"
62+
fi
63+
64+
echo "Cleanup complete."
65+
}
66+
67+
# Set trap to ensure cleanup runs even if script fails
68+
trap cleanup EXIT
69+
70+
echo "Pushing translations to Transifex..."
71+
echo ""
72+
73+
# Step 1: Rename Android directories to Transifex format
74+
echo "Converting directory names to Transifex format..."
75+
76+
if [ -d "$RES_DIR/values-es-rES" ]; then
77+
echo " Renaming: values-es-rES -> values-es_ES"
78+
mv "$RES_DIR/values-es-rES" "$RES_DIR/values-es_ES"
79+
RENAMED_ES_ES=true
80+
fi
81+
82+
if [ -d "$RES_DIR/values-pt-rBR" ]; then
83+
echo " Renaming: values-pt-rBR -> values-pt_BR"
84+
mv "$RES_DIR/values-pt-rBR" "$RES_DIR/values-pt_BR"
85+
RENAMED_PT_BR=true
86+
fi
87+
88+
if [ -d "$RES_DIR/values-b+es+419" ]; then
89+
echo " Renaming: values-b+es+419 -> values-es_419"
90+
mv "$RES_DIR/values-b+es+419" "$RES_DIR/values-es_419"
91+
RENAMED_ES_419=true
92+
fi
93+
94+
echo ""
95+
echo "Running tx push..."
96+
97+
# Step 2: Push source and translations to Transifex
98+
cd "$PROJECT_ROOT"
99+
tx push --source --translation --all --skip --force
100+
101+
echo ""
102+
echo "Push complete!"

0 commit comments

Comments
 (0)