Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge release/20.7 into trunk #12797

Merged
merged 5 commits into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
import org.wordpress.aztec.Aztec
import org.wordpress.aztec.AztecContentChangeWatcher.AztecTextChangeObserver
import org.wordpress.aztec.AztecText
import org.wordpress.aztec.ITextFormat
import org.wordpress.aztec.glideloader.GlideImageLoader
Expand Down Expand Up @@ -327,10 +328,16 @@ private fun InternalAztecEditor(
sourceEditorMinHeight = aztec.visualEditor.height
}

aztec.visualEditor.doAfterTextChanged {
if (!state.isHtmlEditorEnabled) return@doAfterTextChanged
state.updateContent(aztec.visualEditor.toHtml())
val aztecObserver = object : AztecTextChangeObserver {
override fun onContentChanged() {
if (!state.isHtmlEditorEnabled) return
state.updateContent(aztec.visualEditor.toHtml())
}
}
// Save the observer as tag to hold a strong reference to it and avoid it being garbage collected
aztec.visualEditor.tag = aztecObserver
aztec.visualEditor.contentChangeWatcher.registerObserver(aztecObserver)

aztec.sourceEditor?.doAfterTextChanged {
val sourceEditor = aztec.sourceEditor
if (state.isHtmlEditorEnabled || sourceEditor == null) return@doAfterTextChanged
Expand Down
13 changes: 10 additions & 3 deletions WooCommerce/src/main/res/values-ar/strings.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Translation-Revision-Date: 2024-10-01 09:54:10+0000
Translation-Revision-Date: 2024-10-17 09:54:04+0000
Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;
Generator: GlotPress/2.4.0-alpha
Language: ar
-->
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="custom_fields_empty_view_title">لم يتم العثور على حقول مخصصة</string>
<string name="custom_fields_empty_view_message">الحقول المخصصة هي بيانات وصفية اختيارية لعرض معلومات إضافية أو تخصيص تجربة تسوق خاصة بمتجرك.</string>
<string name="blaze_campaign_created_success_feedback_request">كيف كانت التجربة مع Blaze</string>
<string name="blaze_campaign_preview_missing_objective_dialog_positive_button">تحديد هدف</string>
<string name="blaze_campaign_preview_missing_objective_dialog_text">يرجى تحديد هدف لحملة Blaze</string>
<string name="blaze_campaign_preview_details_choose_objective">اختيار هدف الحملة</string>
<string name="blaze_campaign_preview_details_objective">هدف الحملة</string>
<string name="more_menu_button_woo_pos_description">قبول المدفوعات في متجرك المادي</string>
<string name="card_reader_tap_to_pay_about_how_works_4">4. يضع عميلك بطاقته على الجزء الخلفي من هاتفك.</string>
<string name="custom_fields_editor_html_toggle">HTML</string>
<string name="custom_fields_editor_text_toggle">النص</string>
<string name="custom_fields_editor_toggle_accessibility_description">التبديل بين النص ومحررات HTML</string>
Expand Down Expand Up @@ -218,7 +227,6 @@ Language: ar
<string name="dashboard_product_stock_wcanalytics_inactive_title">يتعذر تحميل تقارير مخزون المنتجات</string>
<string name="dashboard_product_stock_no_sales_last_30_days">لم يتم بيع أي عناصر في آخر 30 يومًا</string>
<string name="dashboard_product_stock_sales_last_30_days">تم بيع %d من العناصر في آخر 30 يومًا</string>
<string name="more_menu_button_woo_pos_description">استخدام التطبيق كسجل أعطال</string>
<string name="more_menu_button_woo_pos">وضع نقطة البيع</string>
<string name="product_stock_status_low_stock">مخزون منخفض</string>
<string name="order_detail_shipping_header">الشحن</string>
Expand Down Expand Up @@ -729,7 +737,6 @@ Language: ar
<string name="blaze_campaign_title">حملة Blaze</string>
<string name="card_reader_tap_to_pay_about_copyright">Contactless Symbol هو علامة تجارية تمتلكها EMVCo, LLC وتُستخدم بصلاحية منها.</string>
<string name="card_reader_tap_to_pay_about_how_works_5">5. بعد رؤية علامة الاختيار \"تم\"، سيُعالج متجرك الدفع وستكتمل المعاملة.</string>
<string name="card_reader_tap_to_pay_about_how_works_4">4. يحمل عميلك بطاقته بشكل أفقي في الجزء العلوي من هاتفك، فوق الرمز غير التلامسي.</string>
<string name="card_reader_tap_to_pay_about_how_works_3">3. اعرض هاتفك أمام العميل.</string>
<string name="card_reader_tap_to_pay_about_how_works_2">2. اضغط على \"تحصيل المدفوعات\"، واختر ميزة \"Tap to Pay\".</string>
<string name="card_reader_tap_to_pay_about_how_works_1_updated">1. إنشاء طلب</string>
Expand Down
17 changes: 11 additions & 6 deletions WooCommerce/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Translation-Revision-Date: 2024-10-02 11:54:03+0000
Translation-Revision-Date: 2024-10-15 13:54:03+0000
Plural-Forms: nplurals=2; plural=n != 1;
Generator: GlotPress/2.4.0-alpha
Language: de
-->
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="custom_fields_empty_view_title">Keine individuellen Felder gefunden</string>
<string name="custom_fields_empty_view_message">Individuelle Felder sind optionale Metadaten, die zusätzliche Informationen beinhalten oder das individuelle Einkaufserlebnis in deinem Shop optimieren können.</string>
<string name="blaze_campaign_created_success_feedback_request">Wir möchten mehr über dein Erlebnis mit Blaze erfahren</string>
<string name="blaze_campaign_preview_missing_objective_dialog_positive_button">Ziel auswählen</string>
<string name="blaze_campaign_preview_missing_objective_dialog_text">Bitte wähle ein Ziel für die Blaze-Kampagne aus</string>
<string name="blaze_campaign_preview_details_choose_objective">Kampagnenziel auswählen</string>
<string name="blaze_campaign_preview_details_objective">Kampagnenziel</string>
<string name="more_menu_button_woo_pos_description">Zahlungen in deinem physischen Shop ermöglichen</string>
<string name="card_reader_tap_to_pay_about_how_works_4">4. Dein Kunde berührt die Rückseite deines Smartphones mit seiner Karte.</string>
<string name="custom_fields_editor_html_toggle">HTML</string>
<string name="custom_fields_editor_text_toggle">Text</string>
<string name="custom_fields_editor_toggle_accessibility_description">Umschalten zwischen Text- und HTML-Editor</string>
Expand Down Expand Up @@ -218,7 +227,6 @@ Language: de
<string name="dashboard_product_stock_no_sales_last_30_days">Keine Artikel in den letzten 30 Tagen verkauft</string>
<string name="dashboard_product_stock_wcanalytics_inactive_title">Bestandsberichte für Produkte konnten nicht geladen werden</string>
<string name="dashboard_product_stock_sales_last_30_days">%d Artikel in den letzten 30 Tagen verkauft</string>
<string name="more_menu_button_woo_pos_description">Nutze die App als Kasse</string>
<string name="more_menu_button_woo_pos">Modus „Verkaufsort“ (POS)</string>
<string name="product_stock_status_low_stock">Niedriger Lagerbestand</string>
<string name="order_detail_shipping_header">VERSAND</string>
Expand Down Expand Up @@ -495,10 +503,10 @@ Language: de
<string name="blaze_campaign_budget_edit_duration_button">Bearbeiten</string>
<string name="blaze_campaign_budget_reach_forecast">Geschätzte Anzahl erreichter Personen pro Tag</string>
<string name="blaze_campaign_budget_days_duration">für %1$s Tage</string>
<string name="blaze_campaign_budget_impressions_info">Aufrufe geben die Häufigkeit an, mit der deine Werbung potenziellen Kunden angezeigt wird.\n\n\n Auch wenn aufgrund von schwankendem Internet-Traffic und Nutzerverhalten keine genauen Zahlen garantiert werden können, versuchen wir, die tatsächlichen Aufrufe deiner Werbeanzeige so genau wie möglich mit deiner Zielzahl abzugleichen.\n\n\n Denke daran, dass es bei Aufrufen um die Sichtbarkeit geht und nicht um vom Betrachter ausgeführte Aktionen.</string>
<string name="blaze_campaign_budget_toolbar_title">Dein Budget festlegen</string>
<string name="blaze_campaign_preview_target_default_value">Alle</string>
<string name="blaze_campaign_preview_days_duration">%1$s Tage seit %2$s</string>
<string name="blaze_campaign_budget_impressions_info">Aufrufe geben die Häufigkeit an, mit der deine Werbung potenziellen Kunden angezeigt wird.\n\n\n Auch wenn aufgrund von schwankendem Internet-Traffic und Nutzerverhalten keine genauen Zahlen garantiert werden können, versuchen wir, die tatsächlichen Aufrufe deiner Werbeanzeige so genau wie möglich mit deiner Zielzahl abzugleichen.\n\n\n Denke daran, dass es bei Aufrufen um die Sichtbarkeit geht und nicht um vom Betrachter ausgeführte Aktionen.</string>
<string name="blaze_campaign_budget_daily_spend">%1$s täglich</string>
<string name="blaze_campaign_budget_duration_bottom_sheet_start_date">Startdatum</string>
<string name="product_creation_survey_button_dont_show_again">Nicht erneut anzeigen</string>
Expand Down Expand Up @@ -729,7 +737,6 @@ Language: de
<string name="blaze_campaign_title">Blaze-Kampagne</string>
<string name="card_reader_tap_to_pay_about_copyright">Das Kontaktlos-Symbol ist eine Marke von EMVCo, LLC, die mit deren Genehmigung verwendet wird.</string>
<string name="card_reader_tap_to_pay_about_how_works_5">5. Nachdem das Häkchen „Fertig“ angezeigt wurde, verarbeitet dein Shop die Zahlung und die Transaktion wird abgeschlossen.</string>
<string name="card_reader_tap_to_pay_about_how_works_4">4. Dein Kunde hält seine Karte horizontal oben an dein Mobiltelefon, über das Kontaktlos-Symbol.</string>
<string name="card_reader_tap_to_pay_about_how_works_3">3. Zeige deinem Kunden dein Mobiltelefon.</string>
<string name="card_reader_tap_to_pay_about_how_works_2">2. Tippe auf „Zahlung empfangen“ und wähle „Tap to Pay“.</string>
<string name="card_reader_tap_to_pay_about_how_works_title">So funktioniert es</string>
Expand Down Expand Up @@ -961,10 +968,8 @@ Language: de
<string name="error_troubleshooting">Problembehandlung</string>
<string name="orderlist_parsing_error_message">Dies könnte mit einem Konflikt mit einem Plugin zusammenhängen. Bitte versuche es später erneut oder kontaktiere uns – wir helfen dir gerne weiter!</string>
<string name="orderlist_parsing_error_title">Deine Daten konnten nicht geladen werden.</string>
<string name="ai_product_description_dialog_title">Produktbeschreibung mit KI hinzufügen</string>
<string name="ai_product_description_note_dialog_confirmation">Verstanden</string>
<string name="ai_product_description_note_dialog_message">Beachte bitte, dass diese Produktbeschreibung mit unserem KI-gestützten Tool erstellt wurde. Überprüfe und bearbeite den Inhalt entsprechend, damit er deiner Marke und Botschaft entspricht.</string>
<string name="ai_product_description_dialog_message">Füge mit KI im Handumdrehen Beschreibungen hinzu. Probiere die Funktion noch heute aus!</string>
<string name="ai_product_description_note_dialog_heading">Guter Start!</string>
<string name="ai_product_description_feedback">Ist die generierte\nBeschreibung hilfreich?</string>
<string name="ai_product_description_regenerate_button">Neu generieren</string>
Expand Down
13 changes: 10 additions & 3 deletions WooCommerce/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Translation-Revision-Date: 2024-10-01 16:54:04+0000
Translation-Revision-Date: 2024-10-16 15:54:09+0000
Plural-Forms: nplurals=2; plural=n != 1;
Generator: GlotPress/2.4.0-alpha
Language: es
-->
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="custom_fields_empty_view_title">No se han encontrado campos personalizados</string>
<string name="custom_fields_empty_view_message">Los campos personalizados son metadatos opcionales para mostrar información adicional o personalizar la experiencia de compra de tu tienda.</string>
<string name="blaze_campaign_created_success_feedback_request">Cómo ha ido la experiencia con Blaze</string>
<string name="blaze_campaign_preview_missing_objective_dialog_positive_button">Elegir objetivo</string>
<string name="blaze_campaign_preview_missing_objective_dialog_text">Elige un objetivo para la campaña de Blaze</string>
<string name="blaze_campaign_preview_details_choose_objective">Elegir objetivo de la campaña</string>
<string name="blaze_campaign_preview_details_objective">Objetivo de la campaña</string>
<string name="more_menu_button_woo_pos_description">Acepta pagos en tu tienda física</string>
<string name="card_reader_tap_to_pay_about_how_works_4">4. El cliente toca su tarjeta en la parte posterior de tu teléfono.</string>
<string name="custom_fields_editor_html_toggle">HTML</string>
<string name="custom_fields_editor_text_toggle">Texto</string>
<string name="custom_fields_editor_toggle_accessibility_description">Cambiar entre editores de texto y HTML</string>
Expand Down Expand Up @@ -218,7 +227,6 @@ Language: es
<string name="dashboard_product_stock_wcanalytics_inactive_title">No se han podido cargar los informes de existencias de productos</string>
<string name="dashboard_product_stock_no_sales_last_30_days">No hay elementos vendidos en los últimos 30 días</string>
<string name="dashboard_product_stock_sales_last_30_days">%d elementos vendidos en los últimos 30 días</string>
<string name="more_menu_button_woo_pos_description">Utilizar la aplicación como caja registradora</string>
<string name="more_menu_button_woo_pos">Modo de punto de venta</string>
<string name="product_stock_status_low_stock">Pocas existencias</string>
<string name="order_detail_shipping_header">ENVÍO</string>
Expand Down Expand Up @@ -729,7 +737,6 @@ Language: es
<string name="blaze_campaign_title">Campaña de Blaze</string>
<string name="card_reader_tap_to_pay_about_copyright">El símbolo del pago sin contacto es una marca registrada propiedad de EMVCo, LLC y se utiliza con su autorización.</string>
<string name="card_reader_tap_to_pay_about_how_works_5">5. Cuando aparezca la marca «Hecho», la tienda procesará el pago y la transacción se habrá completado.</string>
<string name="card_reader_tap_to_pay_about_how_works_4">4. Tu cliente sostiene su tarjeta horizontalmente en la parte superior de tu teléfono, sobre el símbolo sin contacto.</string>
<string name="card_reader_tap_to_pay_about_how_works_3">3. Presenta tu teléfono al cliente.</string>
<string name="card_reader_tap_to_pay_about_how_works_2">2. Toca en «Cobrar pago» y elige «Tap to Pay».</string>
<string name="card_reader_tap_to_pay_about_how_works_1_updated">1. Crea un pedido</string>
Expand Down
13 changes: 10 additions & 3 deletions WooCommerce/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Translation-Revision-Date: 2024-10-01 11:54:03+0000
Translation-Revision-Date: 2024-10-14 16:54:08+0000
Plural-Forms: nplurals=2; plural=n > 1;
Generator: GlotPress/2.4.0-alpha
Language: fr
-->
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="custom_fields_empty_view_title">Aucun champ personnalisé trouvé</string>
<string name="custom_fields_empty_view_message">Les champs personnalisés sont des métadonnées facultatives pour afficher des informations supplémentaires ou personnaliser l’expérience d’achat sur votre boutique.</string>
<string name="blaze_campaign_created_success_feedback_request">Comment s’est passée votre expérience Blaze</string>
<string name="blaze_campaign_preview_missing_objective_dialog_positive_button">Sélectionner un objectif</string>
<string name="blaze_campaign_preview_missing_objective_dialog_text">Veuillez sélectionner un objectif pour la campagne Blaze</string>
<string name="blaze_campaign_preview_details_choose_objective">Choisir l’objectif de la campagne</string>
<string name="blaze_campaign_preview_details_objective">Objectif de la campagne</string>
<string name="more_menu_button_woo_pos_description">Accepter les paiements dans votre boutique physique</string>
<string name="card_reader_tap_to_pay_about_how_works_4">4. Vos clients appuient leur carte contre le dos de votre téléphone.</string>
<string name="custom_fields_editor_html_toggle">HTML</string>
<string name="custom_fields_editor_text_toggle">Texte</string>
<string name="custom_fields_editor_toggle_accessibility_description">Basculer entre les éditeurs texte et HTML</string>
Expand Down Expand Up @@ -218,7 +227,6 @@ Language: fr
<string name="dashboard_product_stock_wcanalytics_inactive_title">Impossible de charger les rapports de stock du produit</string>
<string name="dashboard_product_stock_no_sales_last_30_days">Aucun article vendu dans les 30 derniers jours</string>
<string name="dashboard_product_stock_sales_last_30_days">%d articles vendus dans les 30 derniers jours</string>
<string name="more_menu_button_woo_pos_description">Utiliser l’application comme caisse enregistreuse</string>
<string name="more_menu_button_woo_pos">Mode point de vente</string>
<string name="product_stock_status_low_stock">Stock faible</string>
<string name="order_detail_shipping_header">LIVRAISON</string>
Expand Down Expand Up @@ -729,7 +737,6 @@ Language: fr
<string name="blaze_campaign_title">Campagne Blaze</string>
<string name="card_reader_tap_to_pay_about_copyright">Le symbole du sans contact est une marque déposée et utilisée avec l’autorisation de EMVCo, LLC.</string>
<string name="card_reader_tap_to_pay_about_how_works_5">5. Lorsque vous verrez la coche « Effectué », votre boutique traitera le paiement et la transaction s’achèvera.</string>
<string name="card_reader_tap_to_pay_about_how_works_4">4. Votre client présente sa carte horizontalement par-dessus votre téléphone, sur le symbole sans contact.</string>
<string name="card_reader_tap_to_pay_about_how_works_3">3. Présentez votre téléphone au client.</string>
<string name="card_reader_tap_to_pay_about_how_works_2">2. Appuyez sur « Percevoir le paiement » et choisissez « Appuyer pour payer ».</string>
<string name="card_reader_tap_to_pay_about_how_works_1_updated">1. Créer une commande</string>
Expand Down
Loading
Loading