diff --git a/README.md b/README.md
index 6113f9dd0..7b57cd430 100644
--- a/README.md
+++ b/README.md
@@ -39,16 +39,16 @@ libraries.
```groovy
dependencies {
// FirebaseUI for Firebase Realtime Database
- compile 'com.firebaseui:firebase-ui-database:3.0.0'
+ compile 'com.firebaseui:firebase-ui-database:3.1.0'
// FirebaseUI for Cloud Firestore
- compile 'com.firebaseui:firebase-ui-firestore:3.0.0'
+ compile 'com.firebaseui:firebase-ui-firestore:3.1.0'
// FirebaseUI for Firebase Auth
- compile 'com.firebaseui:firebase-ui-auth:3.0.0'
+ compile 'com.firebaseui:firebase-ui-auth:3.1.0'
// FirebaseUI for Cloud Storage
- compile 'com.firebaseui:firebase-ui-storage:3.0.0'
+ compile 'com.firebaseui:firebase-ui-storage:3.1.0'
}
```
@@ -95,6 +95,7 @@ For convenience, here are some recent examples:
| FirebaseUI Version | Firebase/Play Services Version |
|--------------------|--------------------------------|
+| 3.1.0 | 11.4.2 |
| 3.0.0 | 11.4.2 |
| 2.4.0 | 11.4.0 |
| 2.3.0 | 11.0.4 |
diff --git a/auth/README.md b/auth/README.md
index 7f9e46aba..4885fcaf1 100644
--- a/auth/README.md
+++ b/auth/README.md
@@ -46,7 +46,7 @@ Gradle, add the dependency:
```groovy
dependencies {
// ...
- compile 'com.firebaseui:firebase-ui-auth:3.0.0'
+ compile 'com.firebaseui:firebase-ui-auth:3.1.0'
// Required only if Facebook login support is required
compile 'com.facebook.android:facebook-login:4.27.0'
diff --git a/auth/src/main/java/com/firebase/ui/auth/AuthUI.java b/auth/src/main/java/com/firebase/ui/auth/AuthUI.java
index d553703a0..017369b4a 100644
--- a/auth/src/main/java/com/firebase/ui/auth/AuthUI.java
+++ b/auth/src/main/java/com/firebase/ui/auth/AuthUI.java
@@ -146,6 +146,8 @@ public class AuthUI {
private AuthUI(FirebaseApp app) {
mApp = app;
mAuth = FirebaseAuth.getInstance(mApp);
+
+ mAuth.useAppLanguage();
}
/**
diff --git a/auth/src/main/res/values-ar/strings.xml b/auth/src/main/res/values-ar/strings.xml
new file mode 100755
index 000000000..7d82d733c
--- /dev/null
+++ b/auth/src/main/res/values-ar/strings.xml
@@ -0,0 +1,71 @@
+
+ جارٍ التحميل…
+ تسجيل الدخول
+ حدث خطأ.
+ Google
+ Facebook
+ Twitter
+ البريد الإلكتروني
+ الهاتف
+ تسجيل الدخول عبر Google
+ تسجيل الدخول عبر Facebook
+ تسجيل الدخول عبر Twitter
+ تسجيل الدخول عبر البريد الإلكتروني
+ تسجيل الدخول عبر رقم الهاتف
+ التالي
+ البريد الإلكتروني
+ رقم الهاتف
+ كلمة المرور
+ يجب ملء هذا الحقل.
+ عنوان البريد الإلكتروني هذا غير صحيح
+ يجب إدخال عنوان بريدك الإلكتروني للمتابعة
+ جارٍ البحث عن حسابات حالية…
+ اشتراك
+ الاسم الأول واسم العائلة
+ حفظ
+ جارٍ الاشتراك…
+ - كلمة المرور ليست قوية بما فيه الكفاية. يجب استخدام %1$d رقم على الأقل ومزيج من الأحرف والأرقام
- كلمة المرور ليست قوية بما فيه الكفاية. يجب استخدام رقم واحد (%1$d) على الأقل ومزيج من الأحرف والأرقام
- كلمة المرور ليست قوية بما فيه الكفاية. يجب استخدام رقمين (%1$d) على الأقل ومزيج من الأحرف والأرقام
- كلمة المرور ليست قوية بما فيه الكفاية. يجب استخدام %1$d أرقام على الأقل ومزيج من الأحرف والأرقام
- كلمة المرور ليست قوية بما فيه الكفاية. يجب استخدام %1$d رقمًا على الأقل ومزيج من الأحرف والأرقام
- كلمة المرور ليست قوية بما فيه الكفاية. يجب استخدام %1$d رقم على الأقل ومزيج من الأحرف والأرقام
+ فشل تسجيل حساب البريد الإلكتروني
+ ثمة حساب يستخدم عنوان البريد الإلكتروني هذا.
+ يُعد النقر على %1$s دليلاً على أنك توافق على %2$s و%3$s.
+ يُعد النقر على %1$s دليلاً على أنك توافق على %2$s.
+ يُعد النقر على %1$s دليلاً على أنك توافق على %2$s.
+ بنود الخدمة
+ سياسة الخصوصية
+ لديك حساب حاليًا
+ تسرّنا عودتك!
+ لقد سبق أن استخدمت %1$s. سجّل الدخول باستخدام %2$s للمتابعة.
+ لقد سبق أن استخدمت %1$s لتسجيل الدخول. يُرجى إدخال كلمة المرور لهذا الحساب.
+ جارٍ تسجيل الدخول…
+ هل تواجه مشكلة في تسجيل الدخول؟
+ استرداد كلمة المرور
+ إثبات ملكية بريدك الإلكتروني
+ تم إرسال تعليمات إلى البريد الإلكتروني هذا تشرح كيفية إعادة تعيين كلمة المرور.
+ إرسال
+ اتبع التعليمات التي تم إرسالها إلى %1$s لاسترداد كلمة المرور.
+ جارٍ الإرسال…
+ لا يتطابق عنوان البريد الإلكتروني هذا مع حساب حالي
+ شعار التطبيق
+ تم تسجيل الدخول من حساب %1$s
+ أدخل رقم هاتفك
+ يُرجى إدخال رقم هاتف صالح
+ أدخل الرمز المكوّن من 6 أرقام الذي أرسلناه إلى
+ إعادة إرسال الرمز بعد 0:%02d
+ إثبات ملكية رقم هاتفك
+ جارٍ إثبات الملكية…
+ جارٍ استرداد الرسائل القصيرة SMS…
+ الرمز غير صحيح. يُرجى المحاولة مجددًا.
+ موافق
+ تم استخدام رقم الهاتف هذا لعدد كبير جدًا من المرات
+ حدثت مشكلة أثناء إثبات ملكية رقم هاتفك
+ لم يعد هذا الرمز صالحًا
+ تسجيل الدخول عبر رقم الهاتف
+ تم
+ اكتملت عملية إثبات الملكية!
+ تم إرسال الرمز!
+ جارٍ إعادة الإرسال…
+ إعادة إرسال الرمز
+ تأكيد ملكية رقم الهاتف
+ متابعة
+ قد يتم إرسال رسالة قصيرة SMS من خلال النقر على “%1$s”. وقد يتم تطبيق رسوم الرسائل والبيانات.
+
diff --git a/auth/src/main/res/values-iw/strings.xml b/auth/src/main/res/values-iw/strings.xml
new file mode 100755
index 000000000..510752f64
--- /dev/null
+++ b/auth/src/main/res/values-iw/strings.xml
@@ -0,0 +1,71 @@
+
+ טוען…
+ כניסה
+ אירעה שגיאה.
+ Google
+ Facebook
+ Twitter
+ אימייל
+ טלפון
+ כניסה באמצעות Google
+ כניסה באמצעות Facebook
+ כניסה באמצעות Twitter
+ כניסה באמצעות אימייל
+ כניסה באמצעות הטלפון
+ הבא
+ אימייל
+ מספר טלפון
+ סיסמה
+ אי אפשר להשאיר את השדה הזה ריק.
+ כתובת האימייל שגויה
+ כדי להמשיך, עליך להזין כתובת אימייל
+ מחפש חשבונות קיימים…
+ הרשמה
+ שם מלא
+ שמור
+ אנחנו רושמים אותך…
+ - הסיסמה חלשה מדי. סיסמה חזקה היא סיסמה באורך תו אחד (%1$d) לפחות שמכילה אותיות ומספרים
- הסיסמה חלשה מדי. סיסמה חזקה היא סיסמה באורך %1$d תווים לפחות שמכילה אותיות ומספרים
- הסיסמה חלשה מדי. סיסמה חזקה היא סיסמה באורך %1$d תווים לפחות שמכילה אותיות ומספרים
- הסיסמה חלשה מדי. סיסמה חזקה היא סיסמה באורך %1$d תווים לפחות שמכילה אותיות ומספרים
+ לא הצלחנו להשלים את הרישום לחשבון באמצעות כתובת האימייל
+ כבר קיים חשבון המשויך לכתובת האימייל הזו.
+ הקשה על %1$s תתפרש כהסכמה ל%2$s ול%3$s.
+ הקשה על %1$s תתפרש כהסכמה ל%2$s.
+ הקשה על %1$s תתפרש כהסכמה ל%2$s.
+ תנאים והגבלות
+ מדיניות הפרטיות
+ כבר יש לך חשבון
+ ברוכים השבים!
+ כבר השתמשת בכתובת %1$s. כדי להמשיך, עליך להיכנס באמצעות %2$s.
+ כבר השתמשת בכתובת %1$s. כדי להיכנס. עליך להזין את הסיסמה לחשבון המשויך אליה.
+ נכנס…
+ לא מצליח להיכנס?
+ שחזור הסיסמה
+ שלחנו לך אימייל
+ אנחנו יכולים לשלוח לכתובת הזו הוראות לאיפוס הסיסמה.
+ שלח
+ כדי לשחזר את הסיסמה, עליך לפעול לפי ההוראות ששלחנו לכתובת %1$s.
+ מתבצעת שליחה…
+ אין חשבון המשויך לכתובת האימייל הזו
+ הלוגו של האפליקציה
+ מחובר כ-%1$s
+ הזן את מספר הטלפון שלך
+ מספר הטלפון שהזנת לא תקין
+ הזן את הקוד בן 6 הספרות ששלחנו אל
+ שולח קוד חדש בעוד %02d:0
+ אמת את מספר הטלפון
+ מאמת…
+ מאחזר SMS…
+ הקוד שגוי. נסה שוב.
+ אישור
+ למספר הטלפון הזה כבר נשלחו יותר מדי קודים
+ אירעה בעיה באימות של מספר הטלפון
+ הקוד הזה כבר לא בתוקף
+ כניסה באמצעות מספר טלפון
+ סיום
+ אומת.
+ הקוד נשלח.
+ שולח קוד חדש…
+ שלח קוד חדש
+ אמת את מספר הטלפון
+ המשך
+ הקשה על “%1$s” תגרום לשליחה של הודעת SMS. ייתכנו חיובים על ההודעה ועל נתונים.
+
diff --git a/auth/src/main/res/values-nl/strings.xml b/auth/src/main/res/values-nl/strings.xml
index 6be8c5729..684a21dc1 100755
--- a/auth/src/main/res/values-nl/strings.xml
+++ b/auth/src/main/res/values-nl/strings.xml
@@ -67,5 +67,5 @@
Code opnieuw verzenden
Telefoonnummer verifiëren
Doorgaan
- Als u op “%1$s”, ontvangt u mogelijk een sms. Er kunnen sms- en datakosten in rekening worden gebracht.
+ Als u op “%1$s” tikt, ontvangt u mogelijk een sms. Er kunnen sms- en datakosten in rekening worden gebracht.
diff --git a/auth/src/main/res/values-sw360dp/dimens.xml b/auth/src/main/res/values-sw360dp/dimens.xml
old mode 100644
new mode 100755
diff --git a/auth/src/main/res/values-tr/strings.xml b/auth/src/main/res/values-tr/strings.xml
index 5b24a3743..7c21546e2 100755
--- a/auth/src/main/res/values-tr/strings.xml
+++ b/auth/src/main/res/values-tr/strings.xml
@@ -16,7 +16,7 @@
E-posta
Telefon Numarası
Şifre
- Bunu boş bırakamazsınız.
+ Bu alanı boş bırakamazsınız.
E-posta adresi doğru değil
Devam etmek için e-posta adresinizi girin
Mevcut hesaplar kontrol ediliyor…
diff --git a/auth/src/main/res/values-v26/styles.xml b/auth/src/main/res/values-v26/styles.xml
old mode 100644
new mode 100755
diff --git a/constants.gradle b/constants.gradle
index 60e56ce9d..c69b849e6 100644
--- a/constants.gradle
+++ b/constants.gradle
@@ -1,7 +1,7 @@
project.ext {
submodules = ['database', 'auth', 'storage', 'firestore', 'common']
group = 'com.firebaseui'
- version = '3.0.0'
+ version = '3.1.0'
pomdesc = 'Firebase UI Android'
compileSdk = 26
diff --git a/scripts/translations/clean_up_translations.sh b/scripts/translations/clean_up_translations.sh
index 833cc622a..204a96f4b 100755
--- a/scripts/translations/clean_up_translations.sh
+++ b/scripts/translations/clean_up_translations.sh
@@ -13,12 +13,6 @@ function find_files {
chmod -R +wx auth/src/main/res/values-*
rm -rf auth/src/main/res/values-{he,id}
-# Remove all RTL locales (until we fully QA them)
-# [Arabic and Hebrew]
-rm -rf auth/src/main/res/values-ar
-rm -rf auth/src/main/res/values-he
-rm -rf auth/src/main/res/values-iw
-
# Process each file
find_files | while read file;
do
diff --git a/scripts/translations/fix_typography.py b/scripts/translations/fix_typography.py
index 92626f23b..19d2ea834 100644
--- a/scripts/translations/fix_typography.py
+++ b/scripts/translations/fix_typography.py
@@ -10,6 +10,7 @@
BAD_ELLIPSIS_SPACING = " …"
GOOD_ELLIPSIS_SPACING = "…"
+BAD_SINGLE_QUOTE = "\\\'%1$s\\\'"
BAD_DOUBLE_QUOTE = "\\\"%1$s\\\""
GOOD_DOUBLE_QUOTE = "“%1$s”"
@@ -20,7 +21,8 @@ def ProcessTag(self, oldLine, type):
lineString = ''.join(oldLine) \
.replace(BAD_ELLIPSIS, GOOD_ELLIPSIS) \
.replace(BAD_ELLIPSIS_SPACING, GOOD_ELLIPSIS_SPACING) \
- .replace(BAD_DOUBLE_QUOTE, GOOD_DOUBLE_QUOTE)
+ .replace(BAD_DOUBLE_QUOTE, GOOD_DOUBLE_QUOTE) \
+ .replace(BAD_SINGLE_QUOTE, GOOD_DOUBLE_QUOTE)
newLine = lineString.split("(?!^)")
minimizedWhitespaceLine = []