diff --git a/OpenEdXMobile/res/raw-es/profiles.json b/OpenEdXMobile/res/raw-es/profiles.json
index d53be462d6..2522103ff1 100644
--- a/OpenEdXMobile/res/raw-es/profiles.json
+++ b/OpenEdXMobile/res/raw-es/profiles.json
@@ -27,13 +27,13 @@
},
{
"name" : "language_proficiencies",
- "label" : "Idioma hablado.",
+ "label" : "Idioma hablado",
"type" : "select",
"data_type" : "language",
"options" : {
"reference" : "languages",
"allows_none" : true,
- "none_label" : "Idioma no hablado."
+ "none_label" : "Idioma no hablado"
}
},
{
diff --git a/OpenEdXMobile/res/values-ar/course_modal_strings.xml b/OpenEdXMobile/res/values-ar/course_modal_strings.xml
index 93fc70ec95..4f31a149aa 100644
--- a/OpenEdXMobile/res/values-ar/course_modal_strings.xml
+++ b/OpenEdXMobile/res/values-ar/course_modal_strings.xml
@@ -8,8 +8,6 @@
احصل على شهادة إتمام موثقة لعرضها في سيرتك الذاتية
افتح الوصول إلى جميع أنشطة المقرر الدراسي ، بما في ذلك الواجبات المقدرة
الوصول الكامل إلى محتوى الدورة ومواد الدورة التدريبية حتى بعد انتهاء الدورة
-
- قم بالتحديث الآن مقابل {price}
تعرف على المزيد حول الميزات المقفلة
diff --git a/OpenEdXMobile/res/values-ar/iap_strings.xml b/OpenEdXMobile/res/values-ar/iap_strings.xml
index e9facb9fd7..1446910857 100644
--- a/OpenEdXMobile/res/values-ar/iap_strings.xml
+++ b/OpenEdXMobile/res/values-ar/iap_strings.xml
@@ -6,4 +6,56 @@
استعادة المشتريات
سجّل الدخول إلى متجر Play لاستعادة الوصول إلى الدورات التدريبية التي دفعتها سابقًا للترقية
+
+
+ شكراً لشرائك. استمتع بالوصول لدورتك التدريبية كاملةً
+
+
+ لقد حدثت مشكلة
+
+ يبدو أنه قد حصلت مشكلة ما أثناء ترقية دورتك. إذا استمرت هذه المشكلة، يرجى التواصل مع الدعم.
+
+ حدث خطأ خلال ترقية الدورة التدريبية في التطبيق
+
+ الحصول على المساعدة
+
+ التحديث وإعادة المحاولة
+
+
+
+ يتعذر العثور على الدورة التدريبية التي تحاول ترقيتها. يرجى محاولة الترقية مرة أخرى. إذا استمر هذا الخطأ في الظهور، فاتصل بالدعم.
+
+ تعذرت مصادقة حسابك. حاول تسجيل الخروج وإعادة تسجيل الدخول إلى التطبيق. إذا استمر هذا الخطأ في الظهور، فيرجى الاتصال بالدعم.
+
+ تم دفع ثمن الدورة التدريبية التي تحاول ترقيتها بالفعل. إذا أردت التحديث، يلزمنا تحديث تطبيقك سريعًا.
+
+ يتعذر معالجة الدفع الخاص بك في هذا الوقت؛ حاول مرة أخرى. للحصول على مساعدة إضافية، يُرجى التواصل مع فريق الدعم.
+
+ حدث خطأ ما عند محاولتنا تحديث تجربة الدورة التدريبية الخاصة بك. إذا استمر هذا الخطأ في الظهور، فاتصل بالدعم للحصول على المساعدة.
+
+ تعذر إكمال طلبك في الوقت الحالي. إذا استمر هذا الخطأ في الظهور، فيرجى التواصل مع الدعم.
+
+
+ إتاحة
+ صلاحية الوصول الكاملة
+ للدورة التدريبية الخاصة بك
+
+
+ إتاحة الاختبارات المقدرة
+
+
+
+ تجربة جديدة متاحة
+
+ يتوفر تحديث لإتاحة دورة تدريبية تم شراؤها. للتحديث، يلزمنا تحديث تطبيقك سريعًا. إذا اخترت عدم التحديث الآن، فسنحاول مرة أخرى لاحقًا.
+
+ التحديث الآن
+
+ استمر دون تحديث
+
+ فحص المشتريات/././.
+
+ تم استرجاع المشتريات بنجاح
+
+ جميع المشتريات محدثة. إذا كنت لا ترى مشترياتك المُسترجعة، فيرجى محاولة إعادة تشغيل التطبيق لتحديث التجربة.
diff --git a/OpenEdXMobile/res/values-ar/profile_strings.xml b/OpenEdXMobile/res/values-ar/profile_strings.xml
index f4fdfa8e9a..703598560e 100644
--- a/OpenEdXMobile/res/values-ar/profile_strings.xml
+++ b/OpenEdXMobile/res/values-ar/profile_strings.xml
@@ -35,7 +35,14 @@
تتبع التعليمات في الشاشة التالية لتحذف حسابك و كل البيانات المتعلقة
إصدار
-
+
+ السرية
+
+ سياسة الخصوصية
+
+ سياسة ملفات تعريف الارتباط
+
+ لا أوافق على بيع معلوماتي الشخصية
تسجيل الخروج
diff --git a/OpenEdXMobile/res/values-ar/strings_2.xml b/OpenEdXMobile/res/values-ar/strings_2.xml
new file mode 100644
index 0000000000..3bf4d79499
--- /dev/null
+++ b/OpenEdXMobile/res/values-ar/strings_2.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ مغادرة التطبيق
+
+ أنت الآن على وشك مغادرة تطبيق {platform_name} وفتح متصفح
+
diff --git a/OpenEdXMobile/res/values-ar/video_strings.xml b/OpenEdXMobile/res/values-ar/video_strings.xml
index e0f5735dff..db8c328e12 100644
--- a/OpenEdXMobile/res/values-ar/video_strings.xml
+++ b/OpenEdXMobile/res/values-ar/video_strings.xml
@@ -1,7 +1,5 @@
-
- اعدادات الفيديو
جودة تنزيل الفيديو
diff --git a/OpenEdXMobile/res/values-de-rDE/course_modal_strings.xml b/OpenEdXMobile/res/values-de-rDE/course_modal_strings.xml
index 3b7c141ac0..192cfc1d25 100644
--- a/OpenEdXMobile/res/values-de-rDE/course_modal_strings.xml
+++ b/OpenEdXMobile/res/values-de-rDE/course_modal_strings.xml
@@ -8,8 +8,6 @@
Verdienen Sie ein verifiziertes Abschlusszertifikat, das Sie in Ihrem Lebenslauf präsentieren können
Schalten Sie den Zugriff auf alle Kursaktivitäten frei, einschließlich benoteter Aufgaben
Voller Zugriff auf Kursinhalte und Kursmaterial auch nach Kursende
-
- Upgrade jetzt durchführen für {price}
Erfahren Sie mehr über gesperrte Funktionen
diff --git a/OpenEdXMobile/res/values-de-rDE/iap_strings.xml b/OpenEdXMobile/res/values-de-rDE/iap_strings.xml
index bf55a2ec74..81738ca38a 100644
--- a/OpenEdXMobile/res/values-de-rDE/iap_strings.xml
+++ b/OpenEdXMobile/res/values-de-rDE/iap_strings.xml
@@ -6,4 +6,56 @@
Einkäufe wiederherstellen
Melden Sie sich im Play Store an, um den Zugriff auf Kurse wiederherzustellen, für die Sie zuvor ein Upgrade bezahlt haben
+
+
+ Danke für Ihren Einkauf. Genießen Sie vollen Zugriff auf Ihren Kurs!
+
+
+ Es ist ein Fehler aufgetreten
+
+ Anscheinend ist beim Upgrade Ihres Kurses etwas schief gelaufen. Wenn dieser Fehler weiterhin besteht, wenden Sie sich bitte an den Support.
+
+ Fehler beim Aktualisieren des Kurses in der App
+
+ Hilfe bekommen
+
+ Aktualisieren, um es erneut zu versuchen
+
+
+
+ Der Kurs, den Sie aktualisieren möchten, konnte nicht gefunden werden. Bitte versuchen Sie Ihr Upgrade erneut. Wenn dieser Fehler weiterhin besteht, wenden Sie sich an den Support.
+
+ Ihr Konto konnte nicht authentifiziert werden. Versuchen Sie, sich von der App abzumelden und wieder anzumelden. Wenn dieser Fehler weiterhin besteht, wenden Sie sich bitte an den Support.
+
+ Der Kurs, für den Sie ein Upgrade durchführen möchten, wurde bereits bezahlt. Zum Aktualisieren müssen wir Ihre App schnell aktualisieren.
+
+ Ihre Zahlung konnte derzeit nicht verarbeitet werden. Bitte versuchen Sie es erneut. Wenden Sie sich für weitere Hilfe an den Support.
+
+ Beim Versuch, Ihre Kurserfahrung zu aktualisieren, ist etwas schiefgelaufen. Wenn dieser Fehler weiterhin auftritt, wenden Sie sich an den Support, um Hilfe zu erhalten.
+
+ Ihre Anfrage konnte derzeit nicht abgeschlossen werden. Wenn dieser Fehler weiterhin auftritt, wenden Sie sich bitte an den Support.
+
+
+ Entsperren
+ voller Zugriff
+ auf Ihren Kurs
+
+
+ Schalten Sie benotete Aufgaben frei
+
+
+
+ Neue Erfahrung verfügbar
+
+ Es ist ein Update verfügbar, um einen gekauften Kurs freizuschalten. Zum Aktualisieren müssen wir Ihre App schnell aktualisieren. Wenn Sie sich jetzt gegen eine Aktualisierung entscheiden, versuchen wir es später erneut.
+
+ Jetzt aktualisieren
+
+ Weiter ohne Update
+
+ Einkäufe prüfen\.\.\.
+
+ Käufe wurden erfolgreich wiederhergestellt
+
+ Alle Käufe sind aktuell. Wenn Ihre Einkäufe nicht wiederhergestellt werden, versuchen Sie bitte, Ihre App neu zu starten, um die Erfahrung zu aktualisieren.
diff --git a/OpenEdXMobile/res/values-de-rDE/profile_strings.xml b/OpenEdXMobile/res/values-de-rDE/profile_strings.xml
index d0e612b1ab..8384c48d1c 100644
--- a/OpenEdXMobile/res/values-de-rDE/profile_strings.xml
+++ b/OpenEdXMobile/res/values-de-rDE/profile_strings.xml
@@ -12,7 +12,7 @@
WLAN
- Persönliche informationen
+ Persönliche Daten
Hilfe
@@ -35,7 +35,14 @@
Befolgen Sie die Anweisungen auf dem nächsten Bildschirm, um Ihr Konto und alle zugehörigen Daten zu löschen.
Version
-
+
+ Datenschutz
+
+ Datenschutzbestimmungen
+
+ Cookie-Richtlinie
+
+ Verkaufen Sie meine persönlichen Daten nicht
Abmelden
diff --git a/OpenEdXMobile/res/values-de-rDE/video_strings.xml b/OpenEdXMobile/res/values-de-rDE/video_strings.xml
index bf298328da..15b91a7611 100644
--- a/OpenEdXMobile/res/values-de-rDE/video_strings.xml
+++ b/OpenEdXMobile/res/values-de-rDE/video_strings.xml
@@ -1,7 +1,5 @@
-
- Videoeinstellungen
Video-Download-Qualität
diff --git a/OpenEdXMobile/res/values-es/course_banners_strings.xml b/OpenEdXMobile/res/values-es/course_banners_strings.xml
index 9c9c3b7e3d..bb1e0a8e21 100644
--- a/OpenEdXMobile/res/values-es/course_banners_strings.xml
+++ b/OpenEdXMobile/res/values-es/course_banners_strings.xml
@@ -20,7 +20,7 @@
Parece que no has cumplido con algunos plazos importantes según nuestro calendario sugerido.
Para mantenerte en el camino adecuado, puedes actualizar este calendario y mover las tareas vencidas hacia el futuro. No te preocupes, no perderás nada de lo que hayas avanzado cuando cambies las fechas de entrega.
- Obtener todos los beneficios
+ Actualizar para acceder a más funciones
Esta parte del curso puede funcionar mejor en un navegador web.
diff --git a/OpenEdXMobile/res/values-es/course_dates_strings.xml b/OpenEdXMobile/res/values-es/course_dates_strings.xml
index 7ec990e6b0..71c87eec06 100644
--- a/OpenEdXMobile/res/values-es/course_dates_strings.xml
+++ b/OpenEdXMobile/res/values-es/course_dates_strings.xml
@@ -10,42 +10,42 @@
Vencido
- Debido a continuacion
+ Próximo a entregar
Todavía no se ha publicado
- Sincronización con el calendario
+ Sincronizar con el calendario
- Sincronizar automáticamente todos los plazos y fechas de vencimiento de este curso con tu calendario.
+ Sincronice automáticamente todos los plazos y fechas de vencimiento de este curso con su calendario.
- \“{platform_name}\” quiere acceder a tu calendario
+ \“{platform_name}\” quiere acceder a su calendario
{platform_name} quiere usar tu lista de calendario para subscribirse a tu calendario personalizado de {platform_name} para este curso.
agregar calendario \"{course_name}\"
- ¿Deseas agregar el calendario de {platform_name} \"{course_name}\"? \n\nPuedes editar o eliminar el calendario del curso en cualquier momento en Calendario o Configuración
+ ¿Desea agregar el calendario de {platform_name} \"{course_name}\"? \n\nPuede editar o eliminar el calendario del curso en cualquier momento en Calendario o Configuración.
- \"{course_name}\" ha sido añadido a tu calendario.
+ \"{course_name}\" ha sido añadido al calendario de su teléfono.
Tu calendario de cursos ha sido añadido.
Remover el calendario \"{course_name}\"
- ¿Deseas eliminar el calendario de {platform_name} \"{course_name}\"?
+ ¿Desea eliminar el calendario de {platform_name} \"{course_name}\"?
- Tu calendario de cursos ha sido eliminado.
+ Su calendario de cursos ha sido eliminado.
- Tu calendario de cursos ha sido actualizado.
+ Su calendario de cursos ha sido actualizado.
- Tu calendario de cursos está desactualizado
+ Su calendario de cursos está desactualizado.
- Las fechas de tus cursos se han movido y tu calendario de cursos ya no está actualizado con tu nuevo horario.
+ Las fechas de sus cursos se han desplazado y su calendario de cursos ya no está actualizado con su nuevo horario.
- Error al añadir el calendario, por favor, inténtalo más tarde
+ Error al añadir el calendario, por favor, inténtelo más tarde.
Eliminar calendario del curso
@@ -63,6 +63,6 @@
Sus fechas se han cambiado correctamente.
- Tus fechas no se pudieron cambiar. Inténtalo de nuevo.
+ Sus fechas no se pudieron cambiar. Inténtelo de nuevo.
diff --git a/OpenEdXMobile/res/values-es/course_modal_strings.xml b/OpenEdXMobile/res/values-es/course_modal_strings.xml
index 9398411d91..6c841e7dfe 100644
--- a/OpenEdXMobile/res/values-es/course_modal_strings.xml
+++ b/OpenEdXMobile/res/values-es/course_modal_strings.xml
@@ -1,21 +1,21 @@
- Aprender más.
+ Aprender más
- Cambia a la opción paga {course_name}
+ Actualizar {course_name}
- Obtén un certificado de finalización verificado para mostrarlo en tu curriculum vitae.
- Desbloquea el acceso a todas las actividades del curso, incluidas las tareas calificadas
+ Obtener un certificado de finalización verificado para mostrarlo en el curriculum vitae.
+ Desbloquear el acceso a todas las actividades del curso, incluidas las tareas calificadas
Acceso total al contenido y al material del curso, incluso después de que finalice el curso
- Cambiate a la ruta paga por {price}
+ Actualizar el plan por {price}
- Obtén más información sobre funciones bloqueadas
+ Obtener más información sobre las funciones bloqueadas
- Las tareas calificadas bloqueadas.
+ Las tareas calificadas están bloqueadas
- Cambia a la opción paga para obtener acceso a funciones bloqueadas como esta y aprovecha al máximo tu curso
+ Cambiar a la opción paga para obtener acceso a funciones bloqueadas como está y aprovecha al máximo el curso
Ver más
diff --git a/OpenEdXMobile/res/values-es/errors.xml b/OpenEdXMobile/res/values-es/errors.xml
index 252ea3f901..3892b14853 100644
--- a/OpenEdXMobile/res/values-es/errors.xml
+++ b/OpenEdXMobile/res/values-es/errors.xml
@@ -82,5 +82,5 @@
Permiso no concedido
- Su cuenta esta desactivada. Por favor contacte al ayduda al cliente para mas assitencia.
+ Su cuenta esta desactivada. Por favor, contacte al ayduda al cliente para mas asitencia.
diff --git a/OpenEdXMobile/res/values-es/iap_strings.xml b/OpenEdXMobile/res/values-es/iap_strings.xml
index a6073e88bc..7a5474292b 100644
--- a/OpenEdXMobile/res/values-es/iap_strings.xml
+++ b/OpenEdXMobile/res/values-es/iap_strings.xml
@@ -6,4 +6,56 @@
Restaurar compras
Inicia sesión en la Play Store para restablecer el acceso a los cursos por los que has pagado previamente
+
+
+ Gracias por su compra. ¡Disfrute de acceso completo al curso!
+
+
+ Ocurrió un error
+
+ Parece que algo salió mal al actualizar su curso. Si este error continúa, comuníquese con Soporte.
+
+ Error al actualizar el curso en la aplicación
+
+ Conseguir ayuda
+
+ Actualizar para volver a intentarlo
+
+
+
+ No se pudo encontrar el curso que desea actualizar. Por favor, intente actualizarlo nuevamente. Si este error continúa, comuníquese con Soporte.
+
+ Su cuenta no pudo ser autenticada. Intente cerrar sesión y volver a iniciar sesión en la aplicación. Si este error continúa, comuníquese con Soporte.
+
+ El curso que desea actualizar ya ha sido pagado. Para actualizar, necesitamos actualizar rápidamente su aplicación.
+
+ Su pago no pudo ser procesado en este momento. Inténtalo de nuevo. Para obtener ayuda adicional, comuníquese con Soporte.
+
+ Algo sucedió cuando intentamos actualizar su experiencia en el curso. Si este error continúa, comuníquese con Soporte para obtener ayuda.
+
+ Su solicitud no se pudo completar en este momento. Si este error continúa, comuníquese con Soporte.
+
+
+ Desbloqueo
+ Acceso completo
+ a tu curso
+
+
+ Desbloquear tareas calificadas
+
+
+
+ Nueva experiencia disponible
+
+ Hay una actualización disponible para desbloquear un curso comprado. Para actualizar, necesitamos actualizar rápidamente su aplicación. Si elige no actualizar ahora, lo intentaremos de nuevo más tarde.
+
+ Refrescar ahora
+
+ Continuar sin actualizar
+
+ Consultar compras\.\.\.
+
+ Las compras se han restaurado con éxito.
+
+ Todas las compras están al día. Si no ve sus compras restauradas, intente reiniciar su aplicación para actualizar la experiencia.
diff --git a/OpenEdXMobile/res/values-es/profile_strings.xml b/OpenEdXMobile/res/values-es/profile_strings.xml
index 9249ff8bf4..a1de9def6b 100644
--- a/OpenEdXMobile/res/values-es/profile_strings.xml
+++ b/OpenEdXMobile/res/values-es/profile_strings.xml
@@ -2,11 +2,11 @@
- Descarga solo posible mediante WiFi
+ Descargar solo posible mediante WiFi
- Sólo descargar contenido cuando el Wifi está encendido
+ Solo descargue contenido cuando el wifi esté activado
- La información de tu perfil solo es visible para ti. Solo tu nombre de usuario es visible para los demás en {platform_name}.
+ La información de su perfil solo es visible para usted. Solo su nombre de usuario es visible para los demás en {platform_name}.
@@ -16,26 +16,33 @@
Ayuda
- ¿Quieres ayudarnos a mejorar la plataforma o la aplicación?
+ ¿Desea realizar una solicitud de función o darnos algún comentario sobre nuestra aplicación?
Contactar al equipo de soporte
Obtener ayuda
- Si necesitas más ayuda y quieres aprender cómo usar la aplicación móvil de {platform_name}, visita nuestras preguntas frecuentes.
+ Si necesita más ayuda y quieres aprender cómo usar la aplicación móvil de {platform_name}, visita nuestras preguntas frecuentes.
Ver preguntas frecuentes
Salir
- Borrar tu cuenta
+ Borrar la cuenta
Borrar cuenta
- Sigue las instrucciones en la siguiente pantalla para borrar tu cuenta y todos los datos relacionados.
+ Siga las instrucciones en la siguiente pantalla para eliminar su cuenta y todos los datos relacionados.
Versión
-
+
+ Privacidad
+
+ Política de Privacidad
+
+ Política de cookies
+
+ No vender mi información personal
Salir
@@ -57,7 +64,7 @@
Editar
- Actualmente compartes un perfil limitado.
+ Actualmente está compartiendo una versión limitada de su perfil
Este usuario está compartiendo un perfil limitado
diff --git a/OpenEdXMobile/res/values-es/strings.xml b/OpenEdXMobile/res/values-es/strings.xml
index 0ee4936870..6e37fabc88 100644
--- a/OpenEdXMobile/res/values-es/strings.xml
+++ b/OpenEdXMobile/res/values-es/strings.xml
@@ -69,7 +69,7 @@
Al crear una cuenta, aceptas la {license} y las {tos_and_honor_code}, y permites que {platform_name} y cada miembro procesen tus datos personales de conformidad con la {privacy_policy}.
- Al registrarte en esta aplicación, aceptas la {license} y las {tos_and_honor_code}, y permites que {platform_name} y cada miembro procesen tus datos personales de conformidad con la {privacy_policy}.
+ Al iniciar sesión en esta aplicación, acepta {license} y {tos_and_honor_code} y reconoce que {platform_name} y cada miembro procesan sus datos personales de acuerdo con {privacy_policy}.
{platform_name} Acuerdo de Licencia de Usuario Final
@@ -200,7 +200,7 @@ Si no lo recibe en algunos minutos, asegúrese de revisar su carpeta de spam.
Hacer pedido
- Curriculum vitae.
+ Curriculum vitae
¡Obtenga un certificado verificado!
Resalte el nuevo conocimiento y nuevas habilidades con un certificado verificado.\n\nUse esta valiosa credencial para mejorar sus perspectivas laborales y avanzar en su carrera, o resaltar su certificado en las solicitudes escolares.
@@ -261,11 +261,13 @@ Si no lo recibe en algunos minutos, asegúrese de revisar su carpeta de spam.
- %s respuesta
+ - %s respuestas
- %s respuestas
- %s comentario
+ - %s comentarios
- %s comentarios
@@ -283,6 +285,7 @@ Si no lo recibe en algunos minutos, asegúrese de revisar su carpeta de spam.
- {quantity} voto
+ - {quantity} Votos
- {quantity} Votos
@@ -392,6 +395,7 @@ Si no lo recibe en algunos minutos, asegúrese de revisar su carpeta de spam.
- {total_videos_count} Video, {total_videos_size} en total
+ - {total_videos_count} Videos, {total_videos_size} en total
- {total_videos_count} Videos, {total_videos_size} en total
@@ -480,9 +484,9 @@ Si no lo recibe en algunos minutos, asegúrese de revisar su carpeta de spam.
Iniciar sesión
- Cursos de las mejores universidades del mundo a tu alcance.
+ Cursos de las mejores universidades del mundo a su alcance.
- Cursos y programas de las mejores universidades del mundo a tu alcance.
+ Cursos y programas de las mejores universidades del mundo a su alcance.
¿Qué quieres aprender?
diff --git a/OpenEdXMobile/res/values-es/strings_2.xml b/OpenEdXMobile/res/values-es/strings_2.xml
new file mode 100644
index 0000000000..75b3b38c3d
--- /dev/null
+++ b/OpenEdXMobile/res/values-es/strings_2.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ Salir de la aplicación
+
+ Está saliendo de la aplicación {platform_name} y abriendo un navegador.
+
diff --git a/OpenEdXMobile/res/values-es/video_strings.xml b/OpenEdXMobile/res/values-es/video_strings.xml
index a3d094848d..1929993bc8 100644
--- a/OpenEdXMobile/res/values-es/video_strings.xml
+++ b/OpenEdXMobile/res/values-es/video_strings.xml
@@ -28,7 +28,7 @@
- Descarga fallida.
+ Descarga fallida
El tamaño de la descarga excede el espacio disponible en el dispositivo.
@@ -42,7 +42,7 @@
- Reproducir en...
+ Reproducir en …
Presentamos Google Cast
@@ -53,17 +53,20 @@
- %s video borrado
+ - %s videos borrados
- %s videos borrados
- %d hora
+ - %d horas
- %d horas
- %d
+ - %dminutos.
- %dminutos.
diff --git a/OpenEdXMobile/res/values-fr/course_modal_strings.xml b/OpenEdXMobile/res/values-fr/course_modal_strings.xml
index 4610ef8bfc..a7f5db3d8d 100644
--- a/OpenEdXMobile/res/values-fr/course_modal_strings.xml
+++ b/OpenEdXMobile/res/values-fr/course_modal_strings.xml
@@ -9,7 +9,7 @@
Débloquez l\'accès à toutes les activités du cours, y compris les devoirs notés
Accès complet au contenu et aux supports de cours, même après la fin du cours
- Mettre à niveau pour {price}
+ Mettre à niveau maintenant pour {price}
En savoir plus sur les fonctionnalités verrouillées
diff --git a/OpenEdXMobile/res/values-fr/iap_strings.xml b/OpenEdXMobile/res/values-fr/iap_strings.xml
index 66895b8763..4d3092429b 100644
--- a/OpenEdXMobile/res/values-fr/iap_strings.xml
+++ b/OpenEdXMobile/res/values-fr/iap_strings.xml
@@ -6,4 +6,56 @@
Restaurer les achats
Connectez-vous au Play Store pour restaurer l\'accès aux cours que vous avez payés
+
+
+ Merci pour votre achat. Profitez d’un accès complet à votre cours!
+
+
+ Une erreur s\'est produite
+
+ Il semble que quelque chose s’est mal passé lors de la mise à niveau de votre cours. Si cette erreur persiste, veuillez contacter le support.
+
+ Erreur de mise à niveau du cours dans l’application
+
+ Obtenir de l\'aide
+
+ Actualiser pour réessayer
+
+
+
+ Le cours que vous cherchez à mettre à niveau n’a pas pu être trouvé. Veuillez réessayer votre mise à niveau. Si cette erreur persiste, contactez le support.
+
+ Votre compte n’a pas pu être authentifié. Essayez de vous déconnecter et de vous reconnecter à l’application. Si cette erreur persiste, veuillez contacter le support.
+
+ Le cours que vous cherchez à mettre à niveau a déjà été payé. Pour mettre à jour, nous devons actualiser rapidement votre application.
+
+ Votre paiement n’a pas pu être traité pour le moment. Veuillez réessayer. Pour obtenir de l’aide supplémentaire, contactez le support.
+
+ Quelque chose s’est produit lorsque nous avons essayé de mettre à jour votre expérience de cours. Si cette erreur persiste, contactez le support pour obtenir de l’aide.
+
+ Votre demande n’a pas pu être traitée pour le moment. Si cette erreur persiste, veuillez contacter le support
+
+
+ Déverrouillage
+ Accès complet
+ Dans votre cours
+
+
+ Déverrouiller les devoirs notés
+
+
+
+ Nouveaux contenus disponibles
+
+ Une mise à jour est disponible pour débloquer un cours acheté. Pour mettre à jour, nous devons actualiser rapidement votre application. Si vous choisissez de ne pas mettre à jour maintenant, nous réessayerons plus tard.
+
+ Rafraîchir maintenant
+
+ Continuer sans mise à jour
+
+ Contrôle des achats\.\.\.
+
+ Les achats ont été rétablis avec succès
+
+ Tous les achats sont à jour. Si vous ne voyez pas vos achats restaurés, merci d\'essayer de redémarrer votre application pour actualiser l’expérience.
diff --git a/OpenEdXMobile/res/values-fr/profile_strings.xml b/OpenEdXMobile/res/values-fr/profile_strings.xml
index 45226bf37a..ac494d4836 100644
--- a/OpenEdXMobile/res/values-fr/profile_strings.xml
+++ b/OpenEdXMobile/res/values-fr/profile_strings.xml
@@ -35,7 +35,14 @@
Suivez les instructions sur l\'écran suivant pour supprimer votre compte et toutes les données associées.
Version
-
+
+ Vie privée
+
+ politique de confidentialité
+
+ Politique en matière de cookies
+
+ Ne vendez pas mes informations personnelles
Déconnexion
diff --git a/OpenEdXMobile/res/values-fr/strings.xml b/OpenEdXMobile/res/values-fr/strings.xml
index d3d37a83bf..601603d6ab 100644
--- a/OpenEdXMobile/res/values-fr/strings.xml
+++ b/OpenEdXMobile/res/values-fr/strings.xml
@@ -261,11 +261,13 @@
- %s reponse
+ - %s réponses
- %s réponses
- %s commentaire
+ - %s commentaires
- %s commentaires
@@ -283,6 +285,7 @@
- {quantity} vote
+ - {quantity} votes
- {quantity} votes
@@ -392,6 +395,7 @@
- {total_videos_count} vidéo, {total_videos_size} au total
+ - {total_videos_count} vidéos, {total_videos_size} au total
- {total_videos_count} vidéos, {total_videos_size} au total
@@ -574,6 +578,7 @@
Les nouveautés
+ Choisissez les fichiers
Félicitations !
@@ -583,6 +588,7 @@
Continuer
+ Je suis sur le point de terminer le cours en ligne {course_name} avec @{platform_name}. A quoi passez-vous votre temps à apprendre ? #monAventure{platform_name}
Terminé
diff --git a/OpenEdXMobile/res/values-fr/strings_2.xml b/OpenEdXMobile/res/values-fr/strings_2.xml
new file mode 100644
index 0000000000..70bae106f3
--- /dev/null
+++ b/OpenEdXMobile/res/values-fr/strings_2.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ Quitter l\'application
+
+ Vous quittez maintenant l\'application {platform_name} et ouvrez un navigateur.
+
diff --git a/OpenEdXMobile/res/values-fr/video_strings.xml b/OpenEdXMobile/res/values-fr/video_strings.xml
index aa42560053..73d578c3e1 100644
--- a/OpenEdXMobile/res/values-fr/video_strings.xml
+++ b/OpenEdXMobile/res/values-fr/video_strings.xml
@@ -53,17 +53,20 @@
- %s vidéo supprimée
+ - %s vidéos supprimées
- %s vidéos supprimées
- %d heure
+ - %d heures
- %d heures
- %d min
+ - %d min
- %d min
diff --git a/OpenEdXMobile/res/values-iw/course_modal_strings.xml b/OpenEdXMobile/res/values-iw/course_modal_strings.xml
index 7fe9b07e49..c7bb05e79d 100644
--- a/OpenEdXMobile/res/values-iw/course_modal_strings.xml
+++ b/OpenEdXMobile/res/values-iw/course_modal_strings.xml
@@ -9,7 +9,7 @@
בטל את הנעילה של גישה לכל פעילויות הקורס, כולל אותן מטלות מדורגות
ליהנות מגישה מלאה לתכני הקורס ולחומר הקורס גם לאחר סיום הקורס
- שדרג עכשיו תמורת {price}
+ לשדרג כעת תמורת {price}
למידע נוסף על תכונות נעולות
diff --git a/OpenEdXMobile/res/values-iw/iap_strings.xml b/OpenEdXMobile/res/values-iw/iap_strings.xml
index 8262dee2f6..5437a63014 100644
--- a/OpenEdXMobile/res/values-iw/iap_strings.xml
+++ b/OpenEdXMobile/res/values-iw/iap_strings.xml
@@ -6,4 +6,56 @@
לשחזר רכישות
היכנס לחנות Play כדי לשחזר גישה לקורסים ששילמת בעבר כדי לשדרג
+
+
+ תודה לך על הרכישה. ברכות על הגישה המלאה לקורס!
+
+
+ אירעה שגיאה
+
+ נראה שמשהו השתבש בשדרוג הקורס שלך. אם השגיאה הזאת נמשכת, נא ליצור קשר עם התמיכה.
+
+ שגיאה בשדרוג הקורס ביישומון
+
+ קבלת עזרה
+
+ יש לרענן כדי לנסות שוב
+
+
+
+ הקורס שברצונך לשדרג לא נמצא. נא לנסות את השדרוג שלך שוב. אם השגיאה הזאת נמשכת, נא ליצור קשר עם התמיכה.
+
+ לא ניתן לאמת את החשבון שלך. כדאי לנסות לצאת ולהיכנס ליישומון בחזרה. אם השגיאה הזאת נמשכת, נא ליצור קשר עם התמיכה.
+
+ הקורס שברצונך לשדרג כבר שולם. כדי לעדכן, אנחנו צריכים לרענן את היישומון שלך בזריזות.
+
+ לא ניתן לעבד את התשלום שלך כרגע. נא לנסות שוב. לעזרה נוספת, נא לפנות לתמיכה.
+
+ משהו קרה כשניסינו לעדכן את חוויית הקורס שלך. אם השגיאה הזאת נמשכת, נא לפנות לתמיכה לעזרה.
+
+ לא ניתן להשלים את הבקשה שלך כרגע. אם השגיאה הזאת נמשכת, נא לפנות לתמיכה.
+
+
+ הגישה המלאה
+ לקורס שלך
+ מתבצעת
+
+
+ שחרור מטלות מדורגות
+
+
+
+ חוויה חדשה זמינה
+
+ יש עדכון זמין לשחרור קורס שנרכש. כדי לעדכן, עלינו לרענן את היישומון שלך בזריזות. אם לא מתאים לך לעדכן כרגע, ננסה שוב בהמשך.
+
+ לרענן כעת
+
+ להמשיך בלי העדכון
+
+ הרכישות נבדקות\.\.\.
+
+ רכישות שוחזרו בהצלחה
+
+ כל הרכישות עדכניות. אם הרכישות שלך לא שוחזרו, נא לנסות להפעיל את היישומון של מחדש כדי לרענן את החוויה.
diff --git a/OpenEdXMobile/res/values-iw/labels.xml b/OpenEdXMobile/res/values-iw/labels.xml
index 2380802224..39c8f9f161 100644
--- a/OpenEdXMobile/res/values-iw/labels.xml
+++ b/OpenEdXMobile/res/values-iw/labels.xml
@@ -40,6 +40,7 @@
עדכן כעת
+ הסרה
בוצע
diff --git a/OpenEdXMobile/res/values-iw/profile_strings.xml b/OpenEdXMobile/res/values-iw/profile_strings.xml
index 416d692376..a522a82328 100644
--- a/OpenEdXMobile/res/values-iw/profile_strings.xml
+++ b/OpenEdXMobile/res/values-iw/profile_strings.xml
@@ -12,7 +12,7 @@
Wifi
- מידע אישי
+ פרטים אישיים
עֶזרָה
@@ -35,7 +35,14 @@
עקוב אחר ההוראות במסך הבא כדי למחוק את חשבונך ואת כל הנתונים הקשורים.
גִרְסָה
-
+
+ פרטיות
+
+ מדיניות פרטיות
+
+ מדיניות עוגיות
+
+ לא למכור את הפרטים האישיים שלי
התנתקות
diff --git a/OpenEdXMobile/res/values-iw/strings.xml b/OpenEdXMobile/res/values-iw/strings.xml
index a9b6ab5d64..9e19832673 100644
--- a/OpenEdXMobile/res/values-iw/strings.xml
+++ b/OpenEdXMobile/res/values-iw/strings.xml
@@ -22,6 +22,7 @@
כעת אתם רשומים בקורס זה.
+ כבר נרשמת לקורס הזה.
לא ניתן להציג את לוח הבקרה.
@@ -199,7 +200,10 @@
ביצוע הזמנה
+ להמשיך את
+ כדאי לשדרג עד {date} כדי לקבל גישה בלי מוגבלת לקורס כל עוד הוא קיים באתר.
+ זמין ללומדים מאומתים!
נושאי דיון
@@ -435,7 +439,9 @@
עצור
+ 10 שניות אחורה
+ 15 שניות קדימה
חזור 30 שניות אחורה
@@ -457,6 +463,7 @@
גוגל
+ Microsoft
שלח דוא\"ל בעזרת...
@@ -471,12 +478,19 @@
או הירשמו באמצעות אימייל
+ הרשמה
+ כניסה
+ קורסים של האוניברסיטאות המובילות בעולם הישר בכף ידך.
+ קורסים ותוכניות של האוניברסיטאות המובילות בעולם הישר בכף ידך.
+ מה מעניין אותך ללמוד?
+ חיפוש בלמעלה מ־3000 הקורסים שלנו
+ דפדוף בין כל הקורסים
הצג שדות רשות
@@ -493,6 +507,7 @@
נכנסתם בהצלחה באמצעות פייסבוק
נכנסתם בהצלחה באמצעות גוגל
+ נכנסת עם Microsoft בהצלחה.
אנחנו רק צריכים עוד קצת מידע לפני שתתחילו ללמוד באמצעות {platform_name}.
השלימו את ההרשמה שלכם
@@ -512,6 +527,7 @@
משוב לקוח
+ חשבון הושבת
ביקורת לקוחות
@@ -558,9 +574,13 @@
{rating} מתוך {num_of_stars}
+ מה חדש
+ בחירה בקבצים
+ ברכותינו!
+ השלמת את החלק הראשון בקורס שלך.
diff --git a/OpenEdXMobile/res/values-iw/strings_2.xml b/OpenEdXMobile/res/values-iw/strings_2.xml
new file mode 100644
index 0000000000..cd34c164fc
--- /dev/null
+++ b/OpenEdXMobile/res/values-iw/strings_2.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ עזיבת היישומון
+
+ בחרת לעזוב את היישומון {platform_name} ולפתוח דפדפן.
+
diff --git a/OpenEdXMobile/res/values-iw/video_strings.xml b/OpenEdXMobile/res/values-iw/video_strings.xml
index dbc645c258..549d76828e 100644
--- a/OpenEdXMobile/res/values-iw/video_strings.xml
+++ b/OpenEdXMobile/res/values-iw/video_strings.xml
@@ -1,7 +1,7 @@
- הגדרות וידיאו
+ הגדרות וידאו
איכות הורדת וידאו
diff --git a/OpenEdXMobile/res/values-ja/course_modal_strings.xml b/OpenEdXMobile/res/values-ja/course_modal_strings.xml
index 9541f586c1..5061be7a47 100644
--- a/OpenEdXMobile/res/values-ja/course_modal_strings.xml
+++ b/OpenEdXMobile/res/values-ja/course_modal_strings.xml
@@ -8,8 +8,6 @@
完了したコースの認定証を取得して、履歴書に表示させましょう
採点対象の課題を含む、すべてのコースアクティビティへのアクセスを入手
コース終了後でもコース内のすべてのコンテンツや資料を閲覧できます
-
- {price}で今すぐアップグレード
制限付き機能についての詳細
diff --git a/OpenEdXMobile/res/values-ja/iap_strings.xml b/OpenEdXMobile/res/values-ja/iap_strings.xml
index 6f6d1b4b2b..f5b91c38df 100644
--- a/OpenEdXMobile/res/values-ja/iap_strings.xml
+++ b/OpenEdXMobile/res/values-ja/iap_strings.xml
@@ -6,4 +6,56 @@
購入内容を復元
Playストアにサインインして、過去に有料でアップグレードしたコースへのアクセスを復元します
+
+
+ ご購入ありがとうございました。コースへのフルアクセスをお楽しみください!
+
+
+ エラーが発生しました
+
+ コースをアップグレードする際に、何か問題が発生したようです。このエラーが続く場合は、サポートまでご連絡ください。
+
+ アプリのコースアップグレードのエラー
+
+ ヘルプを表示する
+
+ 更新して再試行
+
+
+
+ アップグレードしようとしているコースが見つかりませんでした。もう一度アップグレードをお試しください。このエラーが続く場合は、サポートまでご連絡ください。
+
+ お客様のアカウントが認証されませんでした。一度サインアウトして、再度アプリにサインインしてみてください。このエラーが続く場合は、サポートまでご連絡ください。
+
+ アップグレードしようとしているコースは、すでに支払い済みです。更新するには、アプリを素早く更新する必要があります。
+
+ お客様のお支払いは、現在処理できませんでした。もう一度やり直してください。その他のヘルプについては、サポートにお問い合わせください。
+
+ お客様のコース体験を更新しようとしたときに、何かが起こりました。このエラーが続く場合は、サポートまでご連絡ください。
+
+ お客様のリクエストは、現時点では完了できませんでした。このエラーが続く場合は、サポートまでご連絡ください。
+
+
+ コースへの
+ フルアクセスを
+ 解除する
+
+
+ 採点対象課題のロック解除
+
+
+
+ 新しい体験を利用できます
+
+ 購入したコースのロックを解除するためのアップデートが可能です。アップデートを行うには、アプリを素早く更新する必要があります。今アップデートしないことを選択した場合、後ほど再度試みます。
+
+ 今すぐ更新
+
+ アップデートせずに続ける
+
+ 購入履歴を確認中\.\.\.
+
+ 購入履歴が正常に復元されました
+
+ すべての購入履歴が最新になります。購入履歴が復元されていない場合は、アプリを再起動して体験の更新をお試しください。
diff --git a/OpenEdXMobile/res/values-ja/profile_strings.xml b/OpenEdXMobile/res/values-ja/profile_strings.xml
index c7d549d232..d800ad7ad9 100644
--- a/OpenEdXMobile/res/values-ja/profile_strings.xml
+++ b/OpenEdXMobile/res/values-ja/profile_strings.xml
@@ -35,7 +35,14 @@
次の画面の指示に従って、アカウントおよびすべての関連するデータを削除します。
バージョン
-
+
+ プライバシー
+
+ プライバシーポリシー
+
+ クッキーポリシー
+
+ 私の個人情報を販売しないでください
ログアウト
diff --git a/OpenEdXMobile/res/values-ja/strings.xml b/OpenEdXMobile/res/values-ja/strings.xml
index 1f1cd09f17..d769d5a486 100644
--- a/OpenEdXMobile/res/values-ja/strings.xml
+++ b/OpenEdXMobile/res/values-ja/strings.xml
@@ -79,8 +79,6 @@
講座を探す
-
-
フィードバックを送る
@@ -132,6 +130,7 @@
お知らせ
+ 教材
最新ニュースを見る
@@ -400,9 +399,6 @@
...を利用してメールを送る
電子メールソフトがインストールされていません
-
-
-
アカウントをお持ちですか?サインインしてください。
diff --git a/OpenEdXMobile/res/values-ja/video_strings.xml b/OpenEdXMobile/res/values-ja/video_strings.xml
index abd166198d..6ecbc891d0 100644
--- a/OpenEdXMobile/res/values-ja/video_strings.xml
+++ b/OpenEdXMobile/res/values-ja/video_strings.xml
@@ -1,7 +1,5 @@
-
- 動画設定
動画のダウンロード品質
diff --git a/OpenEdXMobile/res/values-pt-rBR/course_modal_strings.xml b/OpenEdXMobile/res/values-pt-rBR/course_modal_strings.xml
index 1b23070054..9ed0462fd0 100644
--- a/OpenEdXMobile/res/values-pt-rBR/course_modal_strings.xml
+++ b/OpenEdXMobile/res/values-pt-rBR/course_modal_strings.xml
@@ -8,8 +8,6 @@
Receba um certificado verificado de conclusão para incluir no seu currículo
Desbloqueie o acesso a todas as atividades do curso, incluindo tarefas com nota
Acesso completo ao conteúdo e materiais do curso, mesmo após concluí-lo.
-
- Atualizar agora por {price}
Saiba mais sobre os recursos bloqueados
diff --git a/OpenEdXMobile/res/values-pt-rBR/iap_strings.xml b/OpenEdXMobile/res/values-pt-rBR/iap_strings.xml
index 0677772ee4..4124527eca 100644
--- a/OpenEdXMobile/res/values-pt-rBR/iap_strings.xml
+++ b/OpenEdXMobile/res/values-pt-rBR/iap_strings.xml
@@ -6,4 +6,56 @@
Restaurar compras
Entre na Play Store para restaurar o acesso aos cursos que você já pagou para atualizar
+
+
+ Agradecemos sua compra conosco. Aproveite seu acesso completo ao nosso curso
+
+
+ Ocorreu um erro
+
+ Parece que algo deu errado ao atualizar seu curso. Se o erro persistir, entre em contato com o Suporte.
+
+ Erro ao atualizar o curso no aplicativo
+
+ Obter ajuda
+
+ Atualize para tentar novamente
+
+
+
+ O curso que você deseja atualizar não foi encontrado. Por favor, tente a atualização novamente. Se o erro persistir, entre em contato com o Suporte.
+
+ Não foi possível autenticar sua conta. Tente sair e entrar novamente no aplicativo. Se o erro persistir, entre em contato com o Suporte.
+
+ O curso que você deseja atualizar já foi pago. Para atualizar, precisamos atualizar rapidamente seu aplicativo.
+
+ Não foi possível processar seu pagamento neste momento. Por favor, tente novamente. Para obter ajuda adicional, entre em contato com o Suporte.
+
+ Algo aconteceu quando tentamos atualizar sua experiência no curso. Se o erro persistir, entre em contato com o Suporte para obter ajuda.
+
+ Sua solicitação não pode ser concluída neste momento. Se o erro persistir, entre em contato com o Suporte.
+
+
+ Desbloqueando
+ acesso total
+ para o seu curso
+
+
+ Desbloqueie tarefas avaliadas
+
+
+
+ Nova experiência disponível
+
+ Uma atualização está disponível para desbloquear um curso comprado. Precisamos atualizar rapidamente seu aplicativo. Se você optar por não atualizar agora, tentaremos novamente mais tarde.
+
+ Atualize agora
+
+ Continuar sem atualização
+
+ Verificação de compras\.\.\.
+
+ As compras foram restauradas com sucesso
+
+ Todas as compras estão em dia. Se você não estiver vendo suas compras restauradas, tente reiniciar seu aplicativo para atualizar a experiência.
diff --git a/OpenEdXMobile/res/values-pt-rBR/labels.xml b/OpenEdXMobile/res/values-pt-rBR/labels.xml
index 7b683a50d8..53dfd9fe61 100644
--- a/OpenEdXMobile/res/values-pt-rBR/labels.xml
+++ b/OpenEdXMobile/res/values-pt-rBR/labels.xml
@@ -40,6 +40,7 @@
Atualizar agora
+ Remover
Concluído
diff --git a/OpenEdXMobile/res/values-pt-rBR/profile_strings.xml b/OpenEdXMobile/res/values-pt-rBR/profile_strings.xml
index c988f4dfde..bd8ef8d7b9 100644
--- a/OpenEdXMobile/res/values-pt-rBR/profile_strings.xml
+++ b/OpenEdXMobile/res/values-pt-rBR/profile_strings.xml
@@ -35,7 +35,14 @@
Siga as instruções da próxima tela para excluir sua conta e todos os dados relacionados.
Versão
-
+
+ Privacidade
+
+ Política de Privacidade
+
+ Política de cookies
+
+ Não venda minhas informações pessoais
Sair
diff --git a/OpenEdXMobile/res/values-pt-rBR/strings.xml b/OpenEdXMobile/res/values-pt-rBR/strings.xml
index 42715a9a3a..5b671c5459 100644
--- a/OpenEdXMobile/res/values-pt-rBR/strings.xml
+++ b/OpenEdXMobile/res/values-pt-rBR/strings.xml
@@ -261,11 +261,13 @@ Se você não recebê-la nos próximos minutos, verifique sua caixa de spam.
- %s resposta
+ - %s respostas
- %s respostas
- %s comentário
+ - %s comentários
- %s comentários
@@ -283,6 +285,7 @@ Se você não recebê-la nos próximos minutos, verifique sua caixa de spam.
- {quantity} voto
+ - {quantity} votos
- {quantity} votos
@@ -392,6 +395,7 @@ Se você não recebê-la nos próximos minutos, verifique sua caixa de spam.
- {total_videos_count} vídeo, total de {total_videos_size}
+ - {total_videos_count} vídeos, total de {total_videos_size}
- {total_videos_count} vídeos, total de {total_videos_size}
diff --git a/OpenEdXMobile/res/values-pt-rBR/video_strings.xml b/OpenEdXMobile/res/values-pt-rBR/video_strings.xml
index a0db398a6e..efe4fa36d0 100644
--- a/OpenEdXMobile/res/values-pt-rBR/video_strings.xml
+++ b/OpenEdXMobile/res/values-pt-rBR/video_strings.xml
@@ -1,7 +1,5 @@
-
- Configurações de vídeo
Qualidade do vídeo
@@ -53,17 +51,20 @@
- %s vídeo apagado
+ - %s vídeos apagados
- %s vídeos apagados
- %d hora
+ - %d horas
- %d horas
- %d min
+ - %d min
- %d min
diff --git a/OpenEdXMobile/res/values-tr/course_dates_strings.xml b/OpenEdXMobile/res/values-tr/course_dates_strings.xml
index a9d3c5cccd..ee8c95eed2 100644
--- a/OpenEdXMobile/res/values-tr/course_dates_strings.xml
+++ b/OpenEdXMobile/res/values-tr/course_dates_strings.xml
@@ -4,56 +4,56 @@
Bugün
- Yalnızca Onaylı
+ Yalnızca Onaylılar
Tamamlandı
Tarihi Geçti
- Sırada Tarihi Gelen
+ Sıradaki
Henüz Yayınlanmadı
- Takvim ile senkronize et
+ Takvim ile eşleştir
- Bu kursa yönelik tüm son tarihleri ve bitiş tarihlerini otomatik olarak takviminizle senkronize edin.
+ Bu derse yönelik tüm son tarihleri ve bitiş tarihlerini otomatik olarak takviminizle eşleştirin.
\“{platform_name}\” Takviminize Erişmek İstiyor
- {platform_name} bu kurs için kişiselleştirilmiş {platform_name} takviminize abone olmak amacıyla takvim listenizi kullanmak istiyor.
+ {platform_name} bu ders için kişiselleştirilmiş {platform_name} takviminize abone olmak amacıyla takvim listenizi kullanmak istiyor.
\“{course_name}\” Takvimini Ekleyin
- {platform_name} \“{course_name}\” takvimini eklemek ister misiniz? \n\nKurs takviminizi Takvim veya Ayarlar kısmından herhangi bir zamanda düzenleyebilir veya kaldırabilirsiniz.
+ {platform_name} \“{course_name}\” takvimini eklemek ister misiniz? \n\nDers takviminizi Takvim veya Ayarlar kısmından herhangi bir zamanda düzenleyebilir veya kaldırabilirsiniz.
\“{course_name}\” telefonunuzun takvimine eklendi.
- Kurs takviminiz eklendi.
+ Ders takviminiz eklendi.
\“{course_name}\” takvimini kaldırın
{platform_name} \“{course_name}\” takvimini kaldırmak istiyor musunuz?
- Kurs takviminiz kaldırıldı.
+ Ders takviminiz kaldırıldı.
- Kurs takviminiz güncellendi.
+ Ders takviminiz güncellendi.
- Kurs takviminiz güncel değil
+ Ders takviminiz güncel değil
- Kurs tarihleriniz değiştirildi ve kurs takviminiz artık yeni programınıza göre güncel değil.
+ Ders tarihleriniz değiştirildi ve ders takviminiz artık yeni programınızla güncel değil.
Takvim Eklenirken Hata, Lütfen daha sonra tekrar deneyin
Ders Takvimini Kaldır
- Takvim senkronize ediliyor...
+ Takvim eşleştiriliyor...
- Plana uygun kalmanıza yardımcı olması için bitiş tarihleriniz başarıyla değiştirildi.
+ Plana uygun kalmanıza yardımcı olmak için teslim tarihleriniz başarıyla kaydırıldı.
Tüm tarihleri görüntüle
diff --git a/OpenEdXMobile/res/values-tr/course_modal_strings.xml b/OpenEdXMobile/res/values-tr/course_modal_strings.xml
index 24ac66ecdf..a13aa24d6e 100644
--- a/OpenEdXMobile/res/values-tr/course_modal_strings.xml
+++ b/OpenEdXMobile/res/values-tr/course_modal_strings.xml
@@ -3,19 +3,19 @@
Daha fazlası
- {course_name} kursunu yükseltin
+ {course_name} dersini yükseltin
Özgeçmişinizde sergileyebileceğiniz, doğrulanmış bir tamamlama sertifikası kazanın
- Notlu ödevler dahil olmak üzere tüm kurs aktivitelerine erişimin kilidini açın
- Kurs bittikten sonra dahi kurs içeriklerine ve kurs materyaline tam erişim
+ Notlandırılan ödevler dahil olmak üzere tüm ders etkinliklerine erişim kilidini açın
+ Ders bittikten sonra dahi ders içeriklerine ve materyaline tam erişim
{price} karşılığında hemen yükseltin
Kilitli özellikler hakkında daha fazlasını öğrenin
- Notlu ödevler kilitli
+ Notlandırılan ödevler kilitlendi
- Bunun gibi kilitli özelliklere erişim kazanmak ve kursunuzdan en iyi verimi almak için yükseltme yapın
+ Bunun gibi kilitli özelliklere erişim kazanmak ve dersinizden en iyi verimi almak için yükseltme yapın
Daha fazlasını göster
diff --git a/OpenEdXMobile/res/values-tr/iap_strings.xml b/OpenEdXMobile/res/values-tr/iap_strings.xml
index 901c33b9ee..72a7e8ec45 100644
--- a/OpenEdXMobile/res/values-tr/iap_strings.xml
+++ b/OpenEdXMobile/res/values-tr/iap_strings.xml
@@ -1,9 +1,61 @@
- Satın Alımlar
+ Satın Almalar
- Satın alımları geri yükleyin
+ Satın almaları geri yükleyin
- Daha önce yükseltmek için ödeme yaptığınız kurslara erişimi geri yüklemek için Play Store\'da oturum açın
+ Daha önce yükseltmek için ödeme yaptığınız derslere erişimi geri yüklemek için Play Store\'da oturum açın
+
+
+ Satın aldığınız için teşekkür ederiz. Dersinize tam erişimin keyfini çıkarın!
+
+
+ Bir hata gerçekleşti
+
+ Dersinizi yükseltirken bir şeyler ters gitmiş gibi görünüyor. Bu hata devam ederse, lütfen Destek ile iletişime geçin.
+
+ Uygulamada ders yükseltilirken hata oluştu
+
+ Yardım Alın
+
+ Yeniden denemek için yenileyin
+
+
+
+ Yükseltmek istediğiniz ders bulunamadı. Lütfen yükseltmenizi tekrar deneyin. Bu hata devam ederse, Destek ile iletişime geçin.
+
+ Hesabınızın kimliği doğrulanamadı. Çıkış yapmayı ve uygulamada tekrar oturum açmayı deneyin. Bu hata devam ederse, lütfen Destek ile iletişime geçin.
+
+ Yükseltmek istediğiniz dersin ücreti zaten ödendi. Güncellemek için uygulamanızı hızlıca yenilememiz gerek.
+
+ Ödemeniz şu anda işlenemedi. Lütfen tekrar deneyin. Ek yardım için Destek ile iletişime geçin.
+
+ Ders deneyiminizi güncellemeye çalıştığımızda bir şey oldu. Bu hata devam ederse, yardım için Destek ile iletişime geçin.
+
+ İsteğiniz şu anda tamamlanamadı. Bu hata devam ederse, lütfen Destek ile iletişime geçin.
+
+
+ Kilidini açma
+ tam erişim
+ dersinize
+
+
+ Notlu ödevlerin kilidini aç
+
+
+
+ Yeni deneyim mevcut
+
+ Satın alınan bir dersin kilidini açmak için güncelleme mevcut. Güncellemek için uygulamanızı hızlıca yenilememiz gerek. Şimdi güncelleme yapmak istemezseniz daha sonra tekrar deneyeceğiz.
+
+ Şimdi yenile
+
+ Güncelleme yapmadan devam et
+
+ Satın almalar kontrol ediliyor\.\.\.
+
+ Satın alımlarınız başarıyla geri yüklendi
+
+ Tüm satın alımlar güncel. Satın alımlarınızın geri yüklenmediğini fark ettiyseniz deneyimi yenilemek için lütfen uygulamanızı tekrar başlatmayı deneyin.
diff --git a/OpenEdXMobile/res/values-tr/labels.xml b/OpenEdXMobile/res/values-tr/labels.xml
index 38d33ac9a2..b286cc4315 100644
--- a/OpenEdXMobile/res/values-tr/labels.xml
+++ b/OpenEdXMobile/res/values-tr/labels.xml
@@ -32,7 +32,7 @@
Uygulamayı Oyla
- Güncelleştir
+ Güncelle
İzin verme
@@ -40,6 +40,7 @@
Şimdi Güncelle
+ Kaldır
Tamam
diff --git a/OpenEdXMobile/res/values-tr/profile_strings.xml b/OpenEdXMobile/res/values-tr/profile_strings.xml
index 7c013cf7ef..1eac46fd73 100644
--- a/OpenEdXMobile/res/values-tr/profile_strings.xml
+++ b/OpenEdXMobile/res/values-tr/profile_strings.xml
@@ -10,13 +10,13 @@
- Wifi
+ Wi-Fi
Kişisel bilgiler
Yardım
- Bir özellik isteğinde bulunmak veya bize uygulamamıza dair geri bildirim vermek mi istiyorsunuz?
+ Bir özellik isteğinde bulunmak veya uygulamamıza dair geri bildirim vermek mi istiyorsunuz?
Destek ekibine e-posta gönder
@@ -35,11 +35,18 @@
Hesabınızı ve tüm ilgili verileri silmek için bir sonraki ekranda yer alan talimatları uygulayın.
Sürüm
-
+
+ Gizlilik
+
+ Gizlilik Politikası
+
+ Çerez Politikası
+
+ Kişisel Bilgilerimi Satma
Çıkış
- Uygulama sürümü
+ Uygulama Sürümü
@@ -65,7 +72,7 @@
Profiliniz henüz tamamlanmadı gibi görünüyor. Haydi, doldurmaya başlayalım.
- Başla
+ Başlayalım
\"Hakkımda\" bilgisi sağlanmamış.
@@ -99,5 +106,5 @@
Hakkımda
- Başarılar
+ Başarılarım
diff --git a/OpenEdXMobile/res/values-tr/strings.xml b/OpenEdXMobile/res/values-tr/strings.xml
index d3fdb22b80..fd7023a944 100644
--- a/OpenEdXMobile/res/values-tr/strings.xml
+++ b/OpenEdXMobile/res/values-tr/strings.xml
@@ -73,7 +73,7 @@
{platform_name} Son Kullanıcı Lisans Anlaşması
- {platform_name} Hizmet Şartları ve Etik Şartlar
+ {platform_name} Hizmet Şartları ve Etik Kuralları
Gizlilik Politikası
Giriş
@@ -204,7 +204,7 @@
Onaylanmış Bir Sertifika Edinin!
Doğrulanmış bir sertifika ile yeni bilgi ve becerilerinizi vurgulayın. \n\nİş fırsatlarınızı geliştirmek ve kariyerinizi geliştirmek için bu değerli sertifikayı kullanın veya okul başvurularınızda sertifikanızı vurgulayın.
- Gözetmen erişimi {date} tarihinde sona eriyor
+ Gözlemci erişimi {date} tarihinde sona eriyor
{date} tarihinde ilerlemeniz dahil tüm ders erişiminizi kaybedeceksiniz.
{date} tarihine dek üyeliğinizi yükselterek bu eğitime yayında kaldığı sürece sınırsız erişime kavuşun.
Kimliği doğrulanmış öğrencilere açık!
@@ -237,9 +237,9 @@
En Çok Oylanan
- Bu gönderi sadece {cohort} topluluğuna açık.
+ Bu gönderi sadece {cohort} kohortuna görünür.
- Bu gönderi herkese açık.
+ Bu gönderi herkese görünür.
{author} tarafından
@@ -347,9 +347,9 @@
Bu video oynatılamıyor. YouTube uygulamasında görüntüleyebilir veya daha sonra tekrar deneyebilirsiniz.
- Bu video sadece Youtube\'da izlenebilir.
+ Bu video sadece YouTube\'da izlenebilir.
- Videoyu Youtube\'da izle
+ Videoyu YouTube\'da izle
Bu videoyu izlemek için YouTube uygulamasını güncellemelisiniz.
@@ -377,7 +377,7 @@
Bu videoya şu an ulaşılamıyor.\n Daha sonra tekrar deneyiniz.
- Bu video yalnızca web\'te çalışır. Web\'te görüntülemek için tıklayınız.
+ Bu video yalnızca web\'de çalışır. Web\'de görüntülemek için tıklayınız.
Bu video henüz mobilde ulaşılabilir değil.
@@ -425,7 +425,7 @@
Video Oynatıcı
- Web\'te görüntüle
+ Web\'de görüntüle
Oynat
@@ -480,13 +480,13 @@
Oturum aç
- Dünya\'nın en iyi üniversitelerinden kurslar cebinizde.
+ Dünya\'nın en iyi üniversitelerinden dersler cebinizde.
- Dünya\'nın en iyi üniversitelerinden kurslar ve programlar cebinizde.
+ Dünya\'nın en iyi üniversitelerinden dersler ve programlar cebinizde.
Ne öğrenmek istiyorsun?
- 3000+ kursumuzda arama yapın
+ 3000+ dersimizde arama yapın
Tüm dersleri keşfedin
@@ -584,6 +584,7 @@
Devam et
+ @{platform_name} platformunda çevrimiçi {course_name} dersini tamamlamak üzereyim. Sen zamanını ne öğrenerek harcıyorsun? #my{platform_name}journey
Tamamlandı
diff --git a/OpenEdXMobile/res/values-tr/video_strings.xml b/OpenEdXMobile/res/values-tr/video_strings.xml
index f0dd604202..6743af0a85 100644
--- a/OpenEdXMobile/res/values-tr/video_strings.xml
+++ b/OpenEdXMobile/res/values-tr/video_strings.xml
@@ -16,7 +16,7 @@
Bu ayar {platform_name} uygulamasındaki tüm video indirme işlemleri içindir.
- Videoyu SD Kart\'a İndir
+ Videoları SD Kart\'a İndir
Eğer mevcutsa videolar SD Kart\'a indirilecek
@@ -33,7 +33,7 @@
İndirme boyutu cihazda kalan depolama alanını aşıyor.
Seçtiğiniz videolar 1 GB\'dan büyük.
- Bu videoları indirmek istiyor musunuz?
+ Bu videoları indirmek istiyor musunuz?
@@ -42,7 +42,7 @@
- Oynat…
+ Oynat…
Cast\'i Sunuyoruz
diff --git a/OpenEdXMobile/res/values-vi/course_modal_strings.xml b/OpenEdXMobile/res/values-vi/course_modal_strings.xml
index 02956ec803..ac266cb6c5 100644
--- a/OpenEdXMobile/res/values-vi/course_modal_strings.xml
+++ b/OpenEdXMobile/res/values-vi/course_modal_strings.xml
@@ -8,8 +8,6 @@
Giành chứng nhận hoàn thành được xác minh để thể hiện trên lý lịch của bạn
Mở khóa quyền truy cập tất cả các hoạt động khóa học, bao gồm bài tập chấm điểm
Quyền truy cập toàn bộ nội dung khóa học và tài liệu khóa học ngay cả sau khi kết thúc khóa học
-
- Nâng cấp ngay với giá {price}
Tìm hiểu thêm về các tính năng bị khóa
diff --git a/OpenEdXMobile/res/values-vi/iap_strings.xml b/OpenEdXMobile/res/values-vi/iap_strings.xml
index 6cc1f6f455..0055564078 100644
--- a/OpenEdXMobile/res/values-vi/iap_strings.xml
+++ b/OpenEdXMobile/res/values-vi/iap_strings.xml
@@ -6,4 +6,56 @@
Khôi phục mua
Đăng nhập vào Play Store để khôi phục quyền truy cập các khóa học mà trước đó bạn đã trả tiền để nâng cấp
+
+
+ Cảm ơn bạn đã mua khóa học. Hãy tận hưởng toàn quyền truy cập vào khóa học của bạn!
+
+
+ Đã xảy ra lỗi
+
+ Có vẻ như đã xảy ra lỗi khi nâng cấp khóa học của bạn. Nếu lỗi này vẫn tiếp diễn, vui lòng liên hệ Hỗ trợ.
+
+ Lỗi nâng cấp khóa học trong ứng dụng
+
+ Nhận trợ giúp
+
+ Làm mới để thử lại
+
+
+
+ Không tìm thấy khóa học bạn muốn nâng cấp. Vui lòng thử nâng cấp lại. Nếu lỗi này vẫn tiếp diễn, vui lòng liên hệ Hỗ trợ.
+
+ Tài khoản của bạn không thể xác thực. Hãy thử đăng xuất và đăng nhập lại vào ứng dụng. Nếu lỗi này vẫn tiếp diễn, vui lòng liên hệ Hỗ trợ.
+
+ Khóa học bạn muốn nâng cấp đã được thanh toán. Để cập nhật, chúng tôi cần nhanh chóng làm mới ứng dụng của bạn.
+
+ Thanh toán của bạn không thể được xử lý vào lúc này. Vui lòng thử lại. Để được trợ giúp thêm, vui lòng liên hệ Hỗ trợ.
+
+ Đã xảy ra sự cố khi chúng tôi cố gắng cập nhật trải nghiệm khóa học của bạn. Nếu lỗi này vẫn tiếp diễn, vui lòng liên hệ Hỗ trợ để được trợ giúp.
+
+ Yêu cầu của bạn không thể được hoàn thành tại thời điểm này. Nếu lỗi này vẫn tiếp diễn, vui lòng liên hệ Hỗ trợ.
+
+
+ Đang mở khóa
+ toàn quyền truy cập
+ vào khóa học của bạn
+
+
+ Mở khóa bài tập đã chấm điểm
+
+
+
+ Trải nghiệm mới có sẵn
+
+ Đã có bản cập nhật để mở khóa khóa học đã mua. Để cập nhật, chúng tôi cần nhanh chóng làm mới ứng dụng của bạn. Nếu bạn chọn không cập nhật ngay bây giờ, chúng tôi sẽ thử lại sau.
+
+ Làm mới ngay
+
+ Tiếp tục mà không cập nhật
+
+ Đang kiểm tra giao dịch mua khóa học\.\.\.
+
+ Các giao dịch mua đã được khôi phục thành công
+
+ Tất cả các giao dịch mua đều được cập nhật. Nếu bạn không thấy giao dịch mua của mình được khôi phục, vui lòng thử khởi động lại ứng dụng để làm mới trải nghiệm.
diff --git a/OpenEdXMobile/res/values-vi/profile_strings.xml b/OpenEdXMobile/res/values-vi/profile_strings.xml
index 0612df2113..f05707f334 100644
--- a/OpenEdXMobile/res/values-vi/profile_strings.xml
+++ b/OpenEdXMobile/res/values-vi/profile_strings.xml
@@ -35,7 +35,14 @@
Làm theo hướng dẫn trên màn hình tiếp theo để xóa tài khoản của bạn và tất cả dữ liệu liên quan.
Phiên bản
-
+
+ Quyền riêng tư
+
+ Chính sách Bảo mật
+
+ Chính sách cookie
+
+ Không bán thông tin cá nhân của tôi
Đăng xuất
diff --git a/OpenEdXMobile/res/values-vi/video_strings.xml b/OpenEdXMobile/res/values-vi/video_strings.xml
index 09ab9e77f0..be14faf4dc 100644
--- a/OpenEdXMobile/res/values-vi/video_strings.xml
+++ b/OpenEdXMobile/res/values-vi/video_strings.xml
@@ -1,7 +1,5 @@
-
- Cài đặt video
Chất lượng tải xuống video
diff --git a/OpenEdXMobile/res/values-zh/course_modal_strings.xml b/OpenEdXMobile/res/values-zh/course_modal_strings.xml
index bc4a2d1b70..8661873d94 100644
--- a/OpenEdXMobile/res/values-zh/course_modal_strings.xml
+++ b/OpenEdXMobile/res/values-zh/course_modal_strings.xml
@@ -9,7 +9,7 @@
解锁所有课程活动的访问权限,包括分级作业
即使在课程结束后,也可以完全访问课程内容和课程材料
- 现在升级仅需 {price}
+ 现在即可使用 {price}进行升级
了解关于锁定功能的更多详情
diff --git a/OpenEdXMobile/res/values-zh/iap_strings.xml b/OpenEdXMobile/res/values-zh/iap_strings.xml
index d90b7f0d95..2c78b7797a 100644
--- a/OpenEdXMobile/res/values-zh/iap_strings.xml
+++ b/OpenEdXMobile/res/values-zh/iap_strings.xml
@@ -6,4 +6,56 @@
恢复购买
登录Play Store以恢复您以前已付费的课程的访问权限
+
+
+ 感谢您的购买!现在您可以享受全部功能了!
+
+
+ 出现了一个错误
+
+ 看起来您在升级您的课程时遇到了错误,如果这个错误始终无法被解决,请联系我们的技术支持。
+
+ 在手机App中的课程升级操作遇到了错误。
+
+ 联系客服获得帮助
+
+ 刷新重试
+
+
+
+ 找不到您希望升级的课程。请再次尝试。如果仍然发生错误,请联系支持人员。
+
+ 您的账户当前无法被我们核验,请尝试登出后再重新登入手机APP。如果这个错误还是无法被解决,请联系我们的技术支持。
+
+ 您希望升级的课程已完成付费。我们需要刷新您的应用来更新。
+
+ 您的支付当前无法处理。请再次尝试。如需其他帮助,请联系支持人员。
+
+ 尝试升级您的课程体验时,发生错误。如果仍然发生错误,请联系支持人员。
+
+ 当前无法完成您的申请。如果仍然发生错误,请联系支持人员。
+
+
+ 正在解锁
+ 所有权限
+ 访问您的课程
+
+
+ 解锁已评定的作业
+
+
+
+ 全新体验已上线
+
+ 有一项升级可用于解锁一门已购课程。我们需要刷新您的应用来更新。如您当前不选择升级,我们将于稍后再试。
+
+ 立刻刷新
+
+ 不升级
+
+ 正在检查订单\.\.\.
+
+ 订单已成功恢复
+
+ 已更新全部订单。如无法查看已恢复的订单,请重启应用来刷新。
diff --git a/OpenEdXMobile/res/values-zh/profile_strings.xml b/OpenEdXMobile/res/values-zh/profile_strings.xml
index 43da9f62c4..cca9fd25d9 100644
--- a/OpenEdXMobile/res/values-zh/profile_strings.xml
+++ b/OpenEdXMobile/res/values-zh/profile_strings.xml
@@ -35,7 +35,14 @@
按照下一屏幕上的说明删除您的帐户和所有相关数据。
版本
-
+
+ 隐私
+
+ 隐私政策
+
+ Cookie 政策
+
+ 请勿出售我的个人信息
退出
diff --git a/OpenEdXMobile/res/values-zh/video_strings.xml b/OpenEdXMobile/res/values-zh/video_strings.xml
index b729e3a387..25db2b720b 100644
--- a/OpenEdXMobile/res/values-zh/video_strings.xml
+++ b/OpenEdXMobile/res/values-zh/video_strings.xml
@@ -1,7 +1,5 @@
-
- 视频设置
视频下载质量
diff --git a/OpenEdXMobile/res/values/iap_strings.xml b/OpenEdXMobile/res/values/iap_strings.xml
index db6ecbf5c3..0f3d9f0bec 100644
--- a/OpenEdXMobile/res/values/iap_strings.xml
+++ b/OpenEdXMobile/res/values/iap_strings.xml
@@ -34,6 +34,9 @@
Something happened when we tried to update your course experience. If this error continues, reach out to Support for help.
Your request could not be completed at this time. If this error continues, please reach out to Support.
+
+ The course you are looking to upgrade has already been paid for. For additional help, reach out to Support.
+
Unlocking
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/event/MyCoursesRefreshEvent.kt b/OpenEdXMobile/src/main/java/org/edx/mobile/event/MyCoursesRefreshEvent.kt
new file mode 100644
index 0000000000..96fc667795
--- /dev/null
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/event/MyCoursesRefreshEvent.kt
@@ -0,0 +1,8 @@
+package org.edx.mobile.event
+
+/**
+ * The event to fire through [EventBus][org.greenrobot.eventbus.EventBus] whenever some screen state
+ * needs to refresh on [MyCoursesListFragment][org.edx.mobile.view.MyCoursesListFragment] after in-app
+ * purchase.
+ */
+class MyCoursesRefreshEvent
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/module/prefs/AppFeaturesPrefs.kt b/OpenEdXMobile/src/main/java/org/edx/mobile/module/prefs/AppFeaturesPrefs.kt
index ea5a89c0c8..6b42a63714 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/module/prefs/AppFeaturesPrefs.kt
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/module/prefs/AppFeaturesPrefs.kt
@@ -47,4 +47,12 @@ class AppFeaturesPrefs @Inject constructor(@ApplicationContext context: Context)
}
return false
}
+
+ fun canAutoCheckUnfulfilledPurchase(): Boolean {
+ return pref.getBoolean(PrefManager.Key.CHECK_UNFULFILLED_PURCHASE, false)
+ }
+
+ fun setAutoCheckUnfulfilledPurchase(canCheckUnfulfilledPurchase: Boolean) {
+ pref.put(PrefManager.Key.CHECK_UNFULFILLED_PURCHASE, canCheckUnfulfilledPurchase)
+ }
}
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/module/prefs/PrefManager.java b/OpenEdXMobile/src/main/java/org/edx/mobile/module/prefs/PrefManager.java
index 2ce08d5634..8330e4720d 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/module/prefs/PrefManager.java
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/module/prefs/PrefManager.java
@@ -307,6 +307,7 @@ public static final class Key {
public static final String BULK_DOWNLOAD_FOR_COURSE_ID = "BULK_DOWNLOAD_%s";
// Preference to save app config
public static final String APP_CONFIG = "APP_CONFIG";
+ public static final String CHECK_UNFULFILLED_PURCHASE = "CHECK_UNFULFILLED_PURCHASE";
}
public static final class Value {
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/repository/CourseRepository.kt b/OpenEdXMobile/src/main/java/org/edx/mobile/repository/CourseRepository.kt
index 8866d8e4c4..c4fc52582f 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/repository/CourseRepository.kt
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/repository/CourseRepository.kt
@@ -24,6 +24,7 @@ class CourseRepository @Inject constructor(
CoursesRequestType.STALE -> courseAPI.enrolledCourses
CoursesRequestType.CACHE -> courseAPI.enrolledCoursesFromCache
CoursesRequestType.LIVE -> courseAPI.enrolledCoursesWithoutStale
+ else -> throw java.lang.Exception("Unknown Request Type: $type")
}
call.enqueue(object : Callback {
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/util/InAppPurchasesUtils.kt b/OpenEdXMobile/src/main/java/org/edx/mobile/util/InAppPurchasesUtils.kt
index 503ee497e3..7d3d590f57 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/util/InAppPurchasesUtils.kt
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/util/InAppPurchasesUtils.kt
@@ -51,6 +51,10 @@ object InAppPurchasesUtils {
else -> R.string.error_user_not_authenticated
}
HttpStatus.NOT_ACCEPTABLE -> R.string.error_course_already_paid
+ HttpStatus.CONFLICT -> when (requestType) {
+ ErrorMessage.EXECUTE_ORDER_CODE -> R.string.error_course_paid_and_verified
+ else -> R.string.general_error_message
+ }
else -> when (requestType) {
ErrorMessage.PAYMENT_SDK_CODE -> R.string.error_payment_not_processed
ErrorMessage.PRICE_CODE -> R.string.error_price_not_fetched
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/view/AccountFragment.kt b/OpenEdXMobile/src/main/java/org/edx/mobile/view/AccountFragment.kt
index a94bb72dfd..c7845d0f7b 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/view/AccountFragment.kt
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/view/AccountFragment.kt
@@ -22,8 +22,8 @@ import org.edx.mobile.deeplink.Screen
import org.edx.mobile.deeplink.ScreenDef
import org.edx.mobile.event.AccountDataLoadedEvent
import org.edx.mobile.event.IAPFlowEvent
-import org.edx.mobile.event.MainDashboardRefreshEvent
import org.edx.mobile.event.MediaStatusChangeEvent
+import org.edx.mobile.event.MyCoursesRefreshEvent
import org.edx.mobile.event.ProfilePhotoUpdatedEvent
import org.edx.mobile.exception.ErrorMessage
import org.edx.mobile.extenstion.isVisible
@@ -545,7 +545,7 @@ class AccountFragment : BaseFragment() {
@SuppressWarnings("unused")
fun onEventMainThread(event: IAPFlowEvent) {
if (this.isResumed && event.flowAction == IAPFlowData.IAPAction.PURCHASE_FLOW_COMPLETE) {
- EventBus.getDefault().post(MainDashboardRefreshEvent())
+ EventBus.getDefault().post(MyCoursesRefreshEvent())
requireActivity().finish()
}
}
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/view/CourseOutlineFragment.java b/OpenEdXMobile/src/main/java/org/edx/mobile/view/CourseOutlineFragment.java
index 9c04c572f6..a7c4d0bc08 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/view/CourseOutlineFragment.java
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/view/CourseOutlineFragment.java
@@ -45,8 +45,8 @@
import org.edx.mobile.event.CourseUpgradedEvent;
import org.edx.mobile.event.IAPFlowEvent;
import org.edx.mobile.event.LogoutEvent;
-import org.edx.mobile.event.MainDashboardRefreshEvent;
import org.edx.mobile.event.MediaStatusChangeEvent;
+import org.edx.mobile.event.MyCoursesRefreshEvent;
import org.edx.mobile.event.NetworkConnectivityChangeEvent;
import org.edx.mobile.exception.CourseContentNotValidException;
import org.edx.mobile.exception.ErrorMessage;
@@ -1061,7 +1061,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
// Update the User CourseEnrollments & Dates banner if after user
// Purchase course from Locked Component
courseDateViewModel.fetchCourseDatesBannerInfo(courseData.getCourseId(), true);
- EventBus.getDefault().post(new MainDashboardRefreshEvent());
+ EventBus.getDefault().post(new MyCoursesRefreshEvent());
}
} else {
final CourseComponent outlineComp = courseManager.getComponentByIdFromAppLevelCache(
@@ -1138,7 +1138,7 @@ public void onEventMainThread(@NonNull IAPFlowEvent event) {
case PURCHASE_FLOW_COMPLETE: {
courseData.setMode(EnrollmentMode.VERIFIED.toString());
getCourseComponentFromServer(false, true);
- EventBus.getDefault().post(new MainDashboardRefreshEvent());
+ EventBus.getDefault().post(new MyCoursesRefreshEvent());
break;
}
}
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/view/CourseUnitNavigationActivity.java b/OpenEdXMobile/src/main/java/org/edx/mobile/view/CourseUnitNavigationActivity.java
index 7a162c7b2b..9efa94575e 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/view/CourseUnitNavigationActivity.java
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/view/CourseUnitNavigationActivity.java
@@ -27,7 +27,7 @@
import org.edx.mobile.event.CourseUpgradedEvent;
import org.edx.mobile.event.FileSelectionEvent;
import org.edx.mobile.event.IAPFlowEvent;
-import org.edx.mobile.event.MainDashboardRefreshEvent;
+import org.edx.mobile.event.MyCoursesRefreshEvent;
import org.edx.mobile.event.VideoPlaybackEvent;
import org.edx.mobile.exception.ErrorMessage;
import org.edx.mobile.http.callback.ErrorHandlingCallback;
@@ -42,10 +42,10 @@
import org.edx.mobile.module.analytics.InAppPurchasesAnalytics;
import org.edx.mobile.util.AppConstants;
import org.edx.mobile.util.FileUtil;
+import org.edx.mobile.util.NonNullObserver;
import org.edx.mobile.util.UiUtils;
import org.edx.mobile.util.VideoUtil;
import org.edx.mobile.util.images.ShareUtils;
-import org.edx.mobile.util.observer.EventObserver;
import org.edx.mobile.view.adapters.CourseUnitPagerAdapter;
import org.edx.mobile.view.custom.PreLoadingListener;
import org.edx.mobile.view.dialog.CelebratoryModalDialogFragment;
@@ -260,10 +260,14 @@ public void refreshCourseData(@NonNull String courseId, @NonNull String componen
public void initializeIAPObserver() {
iapViewModel = new ViewModelProvider(this).get(InAppPurchasesViewModel.class);
- iapViewModel.getErrorMessage().observe(this, new EventObserver<>(errorMessage -> {
- if (errorMessage.getRequestType() == ErrorMessage.COURSE_REFRESH_CODE) {
+ // The shared observer is used to monitor and handle any errors that may occur during the
+ // ‘refreshCourseData’ method, which is called as part of the refresh flow. This observer
+ // invokes the ‘updateCourseStructure’ method within the ‘CourseBaseActivity’.
+ iapViewModel.getErrorMessage().observe(this, new NonNullObserver<>(errorMessageEvent -> {
+ if (errorMessageEvent.peekContent().getRequestType() == ErrorMessage.COURSE_REFRESH_CODE) {
+ ErrorMessage errorMessage = errorMessageEvent.getContentIfNotConsumed();
FullscreenLoaderDialogFragment fullScreenLoader = FullscreenLoaderDialogFragment.getRetainedInstance(getSupportFragmentManager());
- if (fullScreenLoader == null) {
+ if (fullScreenLoader == null || errorMessage == null) {
return null;
}
iapDialogs.handleIAPException(
@@ -496,7 +500,7 @@ public void onEventMainThread(IAPFlowEvent event) {
break;
}
case PURCHASE_FLOW_COMPLETE: {
- EventBus.getDefault().post(new MainDashboardRefreshEvent());
+ EventBus.getDefault().post(new MyCoursesRefreshEvent());
break;
}
}
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/view/MyCoursesListFragment.kt b/OpenEdXMobile/src/main/java/org/edx/mobile/view/MyCoursesListFragment.kt
index 55464723ff..b07a905991 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/view/MyCoursesListFragment.kt
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/view/MyCoursesListFragment.kt
@@ -20,6 +20,7 @@ import org.edx.mobile.event.EnrolledInCourseEvent
import org.edx.mobile.event.IAPFlowEvent
import org.edx.mobile.event.MainDashboardRefreshEvent
import org.edx.mobile.event.MoveToDiscoveryTabEvent
+import org.edx.mobile.event.MyCoursesRefreshEvent
import org.edx.mobile.event.NetworkConnectivityChangeEvent
import org.edx.mobile.exception.ErrorMessage
import org.edx.mobile.extenstion.setVisibility
@@ -148,7 +149,17 @@ class MyCoursesListFragment : OfflineSupportBaseFragment(), RefreshListener {
environment.appFeaturesPrefs.isIAPEnabled(environment.loginPrefs.isOddUserId)
) {
initInAppPurchaseSetup()
- detectUnfulfilledPurchase(enrolledCourses)
+ val fullscreenLoader = FullscreenLoaderDialogFragment.getRetainedInstance(
+ fragmentManager = childFragmentManager
+ )
+ if (fullscreenLoader != null) {
+ SnackbarErrorNotification(binding.root).showUpgradeSuccessSnackbar(R.string.purchase_success_message)
+ fullscreenLoader.closeLoader()
+ } else if (environment.appFeaturesPrefs.canAutoCheckUnfulfilledPurchase() &&
+ courseViewModel.courseRequestType != CoursesRequestType.CACHE
+ ) {
+ detectUnfulfilledPurchase(enrolledCourses)
+ }
}
})
@@ -239,26 +250,18 @@ class MyCoursesListFragment : OfflineSupportBaseFragment(), RefreshListener {
}
/**
- * Method to detect Unfulfilled Purchases if full screen loader is not visible.
+ * Method to detect Unfulfilled Purchases.
*
* @param enrolledCourses User enrolled courses.
* */
private fun detectUnfulfilledPurchase(enrolledCourses: List) {
- val fullscreenLoader = FullscreenLoaderDialogFragment.getRetainedInstance(
- fragmentManager = childFragmentManager
+ iapAnalytics.reset()
+ iapViewModel.detectUnfulfilledPurchase(
+ environment.loginPrefs.userId,
+ enrolledCourses,
+ IAPFlowData.IAPFlowType.SILENT,
+ Analytics.Screens.COURSE_ENROLLMENT
)
- if (fullscreenLoader != null) {
- SnackbarErrorNotification(binding.root).showUpgradeSuccessSnackbar(R.string.purchase_success_message)
- fullscreenLoader.closeLoader()
- } else {
- iapAnalytics.reset()
- iapViewModel.detectUnfulfilledPurchase(
- environment.loginPrefs.userId,
- enrolledCourses,
- IAPFlowData.IAPFlowType.SILENT,
- Analytics.Screens.COURSE_ENROLLMENT
- )
- }
}
override fun onResume() {
@@ -298,7 +301,7 @@ class MyCoursesListFragment : OfflineSupportBaseFragment(), RefreshListener {
}
}
IAPFlowData.IAPAction.PURCHASE_FLOW_COMPLETE -> {
- onRefresh()
+ courseViewModel.fetchEnrolledCourses(type = CoursesRequestType.LIVE)
}
}
}
@@ -399,6 +402,12 @@ class MyCoursesListFragment : OfflineSupportBaseFragment(), RefreshListener {
courseViewModel.fetchEnrolledCourses(type = CoursesRequestType.LIVE)
}
+ @Subscribe(sticky = true)
+ @Suppress("UNUSED_PARAMETER")
+ fun onEvent(event: MyCoursesRefreshEvent) {
+ courseViewModel.fetchEnrolledCourses(type = CoursesRequestType.LIVE)
+ }
+
override fun onRevisit() {
super.onRevisit()
if (NetworkUtil.isConnected(activity)) {
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/view/SplashActivity.java b/OpenEdXMobile/src/main/java/org/edx/mobile/view/SplashActivity.java
index 110f059405..04cd720836 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/view/SplashActivity.java
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/view/SplashActivity.java
@@ -44,6 +44,7 @@ protected void onCreate(Bundle savedInstanceState) {
}
final IEdxEnvironment environment = MainApplication.getEnvironment(this);
+ environment.getAppFeaturesPrefs().setAutoCheckUnfulfilledPurchase(true);
if (environment.getLoginPrefs().isUserLoggedIn()) {
environment.getRouter().showMainDashboard(SplashActivity.this);
} else if (!environment.getConfig().isRegistrationEnabled()) {
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/view/dialog/FullscreenLoaderDialogFragment.kt b/OpenEdXMobile/src/main/java/org/edx/mobile/view/dialog/FullscreenLoaderDialogFragment.kt
index f046d22035..3cc915e45d 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/view/dialog/FullscreenLoaderDialogFragment.kt
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/view/dialog/FullscreenLoaderDialogFragment.kt
@@ -79,7 +79,7 @@ class FullscreenLoaderDialogFragment : DialogFragment() {
initObservers()
if (iapFlowData?.isVerificationPending == true) {
iapViewModel.executeOrder(iapFlowData)
- } else if (iapFlowData?.flowType?.isSilentMode() == true) {
+ } else {
purchaseFlowComplete()
}
}
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/viewModel/CourseViewModel.kt b/OpenEdXMobile/src/main/java/org/edx/mobile/viewModel/CourseViewModel.kt
index 403d961a87..7f378e3bb7 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/viewModel/CourseViewModel.kt
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/viewModel/CourseViewModel.kt
@@ -37,6 +37,12 @@ class CourseViewModel @Inject constructor(
private val _handleError = MutableLiveData()
val handleError: LiveData = _handleError
+ var courseRequestType: CoursesRequestType
+
+ init {
+ courseRequestType = CoursesRequestType.NONE
+ }
+
fun fetchEnrolledCourses(
type: CoursesRequestType,
showProgress: Boolean = true
@@ -52,6 +58,7 @@ class CourseViewModel @Inject constructor(
override fun onSuccess(result: Result.Success) {
result.data?.let {
+ courseRequestType = type
_enrolledCourses.postEvent(it.enrollments)
environment.appFeaturesPrefs.setAppConfig(it.appConfig)
@@ -98,9 +105,15 @@ class CourseViewModel @Inject constructor(
}
}
+ override fun onCleared() {
+ super.onCleared()
+ courseRequestType = CoursesRequestType.NONE
+ }
+
sealed class CoursesRequestType {
object LIVE : CoursesRequestType()
object STALE : CoursesRequestType()
object CACHE : CoursesRequestType()
+ object NONE : CoursesRequestType()
}
}
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/viewModel/InAppPurchasesViewModel.kt b/OpenEdXMobile/src/main/java/org/edx/mobile/viewModel/InAppPurchasesViewModel.kt
index ef80ad63c3..daceb6f369 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/viewModel/InAppPurchasesViewModel.kt
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/viewModel/InAppPurchasesViewModel.kt
@@ -7,6 +7,7 @@ import androidx.lifecycle.ViewModel
import com.android.billingclient.api.Purchase
import com.android.billingclient.api.SkuDetails
import dagger.hilt.android.lifecycle.HiltViewModel
+import org.edx.mobile.core.IEdxEnvironment
import org.edx.mobile.exception.ErrorMessage
import org.edx.mobile.extenstion.decodeToLong
import org.edx.mobile.http.model.NetworkResponseCallback
@@ -29,6 +30,7 @@ import javax.inject.Inject
@HiltViewModel
class InAppPurchasesViewModel @Inject constructor(
+ private val environment: IEdxEnvironment,
private val billingProcessor: BillingProcessor,
private val repository: InAppPurchasesRepository,
private val iapAnalytics: InAppPurchasesAnalytics
@@ -70,10 +72,12 @@ class InAppPurchasesViewModel @Inject constructor(
override fun onPurchaseComplete(purchase: Purchase) {
super.onPurchaseComplete(purchase)
- iapFlowData.purchaseToken = purchase.purchaseToken
- _productPurchased.postEvent(iapFlowData)
- iapAnalytics.trackIAPEvent(eventName = Analytics.Events.IAP_PAYMENT_TIME)
- iapAnalytics.initUnlockContentTime()
+ if (purchase.skus[0] == iapFlowData.productId) {
+ iapFlowData.purchaseToken = purchase.purchaseToken
+ _productPurchased.postEvent(iapFlowData)
+ iapAnalytics.trackIAPEvent(eventName = Analytics.Events.IAP_PAYMENT_TIME)
+ iapAnalytics.initUnlockContentTime()
+ }
}
}
@@ -218,6 +222,7 @@ class InAppPurchasesViewModel @Inject constructor(
return
}
billingProcessor.queryPurchase { _, purchases ->
+ environment.appFeaturesPrefs.setAutoCheckUnfulfilledPurchase(false)
if (purchases.isEmpty()) {
_fakeUnfulfilledCompletion.postEvent(true)
return@queryPurchase
diff --git a/OpenEdXMobile/src/main/java/org/edx/mobile/wrapper/InAppPurchasesDialog.kt b/OpenEdXMobile/src/main/java/org/edx/mobile/wrapper/InAppPurchasesDialog.kt
index e459a1a6b1..d431449be6 100644
--- a/OpenEdXMobile/src/main/java/org/edx/mobile/wrapper/InAppPurchasesDialog.kt
+++ b/OpenEdXMobile/src/main/java/org/edx/mobile/wrapper/InAppPurchasesDialog.kt
@@ -179,40 +179,62 @@ class InAppPurchasesDialog @Inject constructor(
eventName = Analytics.Events.IAP_COURSE_UPGRADE_ERROR,
errorMsg = feedbackErrorMessage
)
- AlertDialogFragment.newInstance(
- context.getString(R.string.title_upgrade_error),
- context.getString(R.string.error_course_not_fullfilled),
- context.getString(
- if (HttpStatus.NOT_ACCEPTABLE == errorMessage.getHttpErrorCode()) R.string.label_refresh_now
- else R.string.label_refresh_to_retry
- ),
- { dialog, which ->
- retryListener?.onClick(dialog, which).also {
- if (HttpStatus.NOT_ACCEPTABLE == errorMessage.getHttpErrorCode()) {
- // Add Analytics for refresh course on unfulfilled payments
- } else {
- iapAnalytics.initRefreshContentTime()
- iapAnalytics.trackIAPEvent(
- eventName = Analytics.Events.IAP_ERROR_ALERT_ACTION,
- errorMsg = feedbackErrorMessage,
- actionTaken = Analytics.Values.ACTION_REFRESH
- )
+
+ // Todo: Find a better solution to handle this case, course already paid and verified, on
+ // Execute API
+ if (errorMessage.getHttpErrorCode() == HttpStatus.CONFLICT) {
+ AlertDialogFragment.newInstance(
+ context.getString(R.string.title_upgrade_error),
+ context.getString(R.string.error_course_paid_and_verified),
+ context.getString(R.string.label_get_help),
+ { dialog, which ->
+ cancelListener?.onClick(dialog, which).also {
+ showFeedbackScreen(context, feedbackErrorMessage)
}
- }
- },
- context.getString(R.string.label_get_help),
- { dialog, which ->
- cancelListener?.onClick(dialog, which).also {
- showFeedbackScreen(context, feedbackErrorMessage)
- }
- },
- context.getString(R.string.label_cancel),
- { dialog, which ->
- cancelListener?.onClick(dialog, which).also {
- trackAlertCloseEvent(feedbackErrorMessage)
- }
- }, false
- ).show(context.childFragmentManager, null)
+ },
+ context.getString(R.string.label_close),
+ { dialog, which ->
+ cancelListener?.onClick(dialog, which).also {
+ trackAlertCloseEvent(feedbackErrorMessage)
+ }
+ }, false
+ ).show(context.childFragmentManager, null)
+ } else {
+ AlertDialogFragment.newInstance(
+ context.getString(R.string.title_upgrade_error),
+ context.getString(R.string.error_course_not_fullfilled),
+ context.getString(
+ if (HttpStatus.NOT_ACCEPTABLE == errorMessage.getHttpErrorCode()) R.string.label_refresh_now
+ else R.string.label_refresh_to_retry
+ ),
+ { dialog, which ->
+ retryListener?.onClick(dialog, which).also {
+ if (HttpStatus.NOT_ACCEPTABLE == errorMessage.getHttpErrorCode()) {
+ // Add Analytics for refresh course on unfulfilled payments
+ } else {
+ iapAnalytics.initRefreshContentTime()
+ iapAnalytics.trackIAPEvent(
+ eventName = Analytics.Events.IAP_ERROR_ALERT_ACTION,
+ errorMsg = feedbackErrorMessage,
+ actionTaken = Analytics.Values.ACTION_REFRESH
+ )
+ }
+ }
+ },
+ context.getString(R.string.label_get_help),
+ { dialog, which ->
+ cancelListener?.onClick(dialog, which).also {
+ showFeedbackScreen(context, feedbackErrorMessage)
+ }
+ },
+ context.getString(R.string.label_cancel),
+ { dialog, which ->
+ cancelListener?.onClick(dialog, which).also {
+ trackAlertCloseEvent(feedbackErrorMessage)
+ }
+ }, false
+ ).show(context.childFragmentManager, null)
+ }
}
private fun trackAlertCloseEvent(feedbackErrorMessage: String) {