Skip to content

Commit 78acbef

Browse files
authored
Merge pull request #14580 from woocommerce/merge/release-23.1-into-trunk
Merge release/23.1 into trunk
2 parents 4b4bb65 + 9c8b79f commit 78acbef

File tree

36 files changed

+1500
-479
lines changed

36 files changed

+1500
-479
lines changed

WooCommerce/build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ fladle {
1919
variant = "vanillaDebug"
2020
serviceAccountCredentials = rootProject.file(".configure-files/firebase.secrets.json")
2121
testTargets = [
22-
"notPackage com.woocommerce.android.e2e.tests.screenshot"
22+
"notPackage com.woocommerce.android.e2e.tests.screenshot",
23+
"notClass com.woocommerce.android.e2e.tests.ui.OrdersRealAPI",
24+
"notClass com.woocommerce.android.e2e.tests.ui.ProductsRealAPI"
2325
]
2426
devices = [
2527
["model": "MediumPhone.arm", "version": "35"]

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/address/WooShippingEditAddressScreen.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,6 @@ fun WooShippingEditAddressScreen(
309309
error = editableAddress.postalCode.error,
310310
isRequired = editableAddress.postalCode.isRequired,
311311
keyboardOptions = KeyboardOptions(
312-
keyboardType = KeyboardType.Number,
313312
imeAction = ImeAction.Next
314313
),
315314
keyboardActions = KeyboardActions(
Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,40 @@
11
package com.woocommerce.android.util
22

3+
import java.util.IllformedLocaleException
34
import java.util.Locale
45

56
object AddressUtils {
67
/**
7-
* Translates a two-character country code into a human
8-
* readable label.
8+
* Returns a human-readable country label for the given input.
99
*
10-
* Example: US -> United States
10+
* Behavior:
11+
* - If input is blank -> returns empty string.
12+
* - If input looks like a 2-letter ISO country code (e.g., "US", "gb") ->
13+
* returns the localized display name (e.g., "United States"). Falls back
14+
* to the original input if it cannot be resolved.
15+
* - Otherwise (e.g., full country name like "India") -> returns the trimmed input.
1116
*/
1217
fun getCountryLabelByCountryCode(countryCode: String): String {
13-
val locale = Locale.Builder()
14-
.setLanguage(Locale.getDefault().language)
15-
.setRegion(countryCode)
16-
.build()
17-
return locale.displayCountry
18+
val value = countryCode.trim()
19+
if (value.isEmpty() || !isIsoLikeCountryCode(value)) return value
20+
21+
val region = value.uppercase(Locale.ROOT)
22+
return resolveDisplayCountry(region, fallback = value)
1823
}
24+
25+
private fun isIsoLikeCountryCode(input: String): Boolean =
26+
input.length == 2 && input.all { it.isLetter() }
27+
28+
private fun resolveDisplayCountry(region: String, fallback: String): String =
29+
try {
30+
val locale = Locale.Builder()
31+
.setLanguage(Locale.getDefault().language)
32+
.setRegion(region)
33+
.build()
34+
val display = locale.displayCountry
35+
display.ifBlank { fallback }
36+
} catch (_: IllformedLocaleException) {
37+
// If the region is ill-formed, return the safest fallback (original input)
38+
fallback
39+
}
1940
}

WooCommerce/src/main/res/values-ar/strings.xml

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,68 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
3-
Translation-Revision-Date: 2025-08-11 15:54:04+0000
3+
Translation-Revision-Date: 2025-08-25 14:54:04+0000
44
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;
55
Generator: GlotPress/2.4.0-alpha
66
Language: ar
77
-->
88
<resources xmlns:tools="http://schemas.android.com/tools">
9+
<string name="woo_shipping_split_shipment_purchased_message_desc">لا يمكنك نقل المنتجات إليه أو الخروج منه.</string>
10+
<string name="woo_shipping_split_shipment_purchased_message_title">لقد اشتريت ملصقًا لهذه الشحنة.</string>
11+
<string name="woo_shipping_labels_customs_origin_country_info">البلد الذي تم تصنيع المنتج أو تجميعه فيه.</string>
12+
<string name="woo_shipping_labels_customs_origin_country_info_button">المزيد من المعلومات حول بلد منشأ المنتج</string>
13+
<string name="woo_shipping_labels_customs_description_info">عند الشحن إلى البلدان التي تتبع القواعد الجمركية المعمول بها في الاتحاد الأوروبي، يجب عليك تقديم وصف صريح ومحدد حول كل عنصر. على سبيل المثال، إذا كنت ترسل ملابس، فيجب عليك تحديد نوع الملابس (مثل: قمصان الرجال وسترات النساء التحتية وسترات الأولاد) لكي يصبح الوصف مقبولاً. وإلا، فإن الشحنات قد تتأجل أو تُعتَرض في الجمارك.</string>
14+
<string name="woo_shipping_labels_customs_description_info_button">المزيد من المعلومات حول وصف المنتج</string>
15+
<string name="woo_shipping_labels_customs_hs_tariff_info_button">المزيد من المعلومات حول تعريف النظام المنسق</string>
16+
<string name="woo_shipping_labels_customs_itn_info_button">المزيد من المعلومات حول رقم المعاملة</string>
17+
<string name="woo_shipping_labels_package_creation_shipping_rates_empty_with_hazmat">تعذر علينا العثور على خدمة الشحن لمجموعة من تصنيفات المواد الخطرة المحددة، والطرود المحددة، وإجمالي وزن الشحنة. يرجى ضبط إدخالك والمحاولة مجددًا.</string>
18+
<string name="woo_shipping_labels_package_creation_shipping_rates_empty">تعذر علينا العثور على خدمة الشحن لمجموعة من الطرود المحددة وإجمالي وزن الشحنة. يرجى ضبط إدخالك والمحاولة مجددًا.</string>
19+
<string name="woopos_settings_store_not_set">لم يتم التعيين</string>
20+
<string name="woopos_settings_refund_policy_label">سياسة الاسترداد والإرجاع</string>
21+
<string name="woopos_settings_store_email_label">البريد الإلكتروني</string>
22+
<string name="woopos_settings_store_phone_label">الهاتف</string>
23+
<string name="woopos_settings_store_address_label">العنوان</string>
24+
<string name="woopos_settings_store_name_label">اسم المتجر</string>
25+
<string name="woopos_settings_receipt_information_title">معلومات الإيصال</string>
26+
<string name="woopos_settings_store_information_title">معلومات الدفع المخزنة</string>
27+
<string name="woopos_settings_help_get_support_subtitle">اتصل بفريق الدعم لدينا</string>
28+
<string name="woopos_settings_help_documentation_subtitle">عرض الأدلة والبرامج التعليمية</string>
29+
<string name="woopos_settings_help_product_limitations_subtitle">تعرف على المنتجات المدعومة في نقطة البيع</string>
30+
<string name="woopos_settings_help_category_subtitle">احصل على المساعدة والدعم</string>
31+
<string name="woopos_settings_card_reader_connected_reader">تم توصيل القارئ</string>
32+
<string name="woopos_settings_card_reader_documentation_subtitle">تعرف على المزيد حول قبول المدفوعات باستخدام الهاتف المحمول</string>
33+
<string name="woopos_settings_card_reader_documentation_title">توثيق</string>
34+
<string name="woopos_settings_card_reader_update_available">• يوجد تحديث متوفر</string>
35+
<string name="woopos_settings_card_reader_update_button">تحديث</string>
36+
<string name="woopos_settings_card_reader_unknown_firmware">غير معروف</string>
37+
<string name="woopos_settings_card_reader_unknown_reader">قارئ غير معروف</string>
38+
<string name="woopos_settings_card_reader_firmware_title">البرنامج الثابت</string>
39+
<string name="woopos_settings_card_reader_battery_title">البطارية</string>
40+
<string name="woopos_settings_card_reader_detail_title">إعدادات قارئ البطاقات</string>
41+
<string name="woopos_settings_barcode_scanner_documentation_subtitle">تعرف على المزيد حول فحص الرمز الشريطي في نقطة البيع</string>
42+
<string name="woopos_settings_barcode_scanner_documentation_title">توثيق</string>
43+
<string name="woopos_settings_barcode_scanner_setup_subtitle">قم بتكوين الماسح الضوئي للرمز الشريطي الخاص بك واختباره</string>
44+
<string name="woopos_settings_barcode_scanner_setup_title">إعداد الماسح الضوئي</string>
45+
<string name="woopos_settings_barcode_scanner_detail_title">إعدادات الماسح الضوئي للرمز الشريطي</string>
46+
<string name="woopos_settings_hardware_card_readers_subtitle">إدارة عمليات ربط قارئ البطاقات</string>
47+
<string name="woopos_settings_hardware_card_readers">أدوات قراءة البطاقات</string>
48+
<string name="woopos_settings_hardware_barcode_scanners_subtitle">تكوين إعدادات الماسح الضوئي للرمز الشريطي</string>
49+
<string name="woopos_settings_hardware_barcode_scanners">الماسحات الضوئية للرمز الشريطي</string>
50+
<string name="woopos_settings_store_category_subtitle">تكوين المتجر وإعداداته</string>
51+
<string name="woopos_settings_store_category">المتجر</string>
52+
<string name="woopos_settings_hardware_category_subtitle">إدارة عمليات ربط الأجهزة</string>
53+
<string name="woopos_settings_hardware_category">الأجهزة</string>
54+
<string name="woopos_settings_title">الإعدادات</string>
55+
<string name="error_wordpress_com_connectivity">نواجه مشكلة في الوصول إلى WordPress.com. يرجى التحقق من إعدادات الاتصال بالإنترنت أو محاولة تبديل الشبكات.</string>
56+
<string name="logviewer_current_log_file">الحالي</string>
57+
<string name="logviewer_log_files_list_footer">يتم تخزين سجلات لمدّة تصل إلى سبعة أيام.</string>
58+
<string name="logviewer_log_files_list_header">تسجيل الملفات حسب تاريخ إنشائها</string>
59+
<string name="order_refunds_credit_card_refund">بطاقة ائتمان</string>
60+
<string name="orderdetail_shipping_label_refunded">أرسلتَ طلب استرداد الأموال بنجاح. يمكنك شراء ملصق جديد.</string>
61+
<string name="orderdetail_shipping_label_shipment_tracking_number">رقم التتبع</string>
62+
<string name="orderdetail_shipping_label_shipment_items_multiple">⁦%1$d⁩ من العناصر</string>
63+
<string name="orderdetail_shipping_label_shipment_items_one">⁦%1$d⁩ من العناصر</string>
64+
<string name="orderdetail_shipping_label_shipment_header">الشحنة ⁦%1$s⁩</string>
65+
<string name="user_role_access_error_user_roles_null">يدعم هذا التطبيق رُتب أعضاء المسؤول ومدير المتجر فقط. تعذر علينا إحضار رُتب الأعضاء لحسابك. يرجى الاتصال بالدعم.</string>
966
<string name="woopos_scanning_setup_software_keyboard_bullet_three">لا يعمل حتى الآن؟ اتصل بدعم عملاء الشركة المصنعة لجهازك.</string>
1067
<string name="woopos_scanning_setup_software_keyboard_bullet_two">انتقل إلى إعدادات الجهاز، وابحث عن \"لوحة المفاتيح\"، ثم فعِّل إعداد \"إظهار لوحة المفاتيح على الشاشة عند اتصال لوحة المفاتيح الفعلية\". قد يكون هذا الإعداد ضمن إعدادات تطبيق لوحة المفاتيح.</string>
1168
<string name="woopos_scanning_setup_software_keyboard_bullet_one">ابحث عن أيقونة لوحة المفاتيح أو شريط الأدوات على الشاشة.</string>

WooCommerce/src/main/res/values-de/strings.xml

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,68 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
3-
Translation-Revision-Date: 2025-08-13 14:54:03+0000
3+
Translation-Revision-Date: 2025-08-26 11:54:05+0000
44
Plural-Forms: nplurals=2; plural=n != 1;
55
Generator: GlotPress/2.4.0-alpha
66
Language: de
77
-->
88
<resources xmlns:tools="http://schemas.android.com/tools">
9+
<string name="woo_shipping_split_shipment_purchased_message_desc">Du kannst keine Produkte hinein- oder herausschieben.</string>
10+
<string name="woo_shipping_split_shipment_purchased_message_title">Du hast ein Etikett für diese Sendung gekauft.</string>
11+
<string name="woo_shipping_labels_customs_origin_country_info">Land, in dem das Produkt hergestellt oder montiert wurde.</string>
12+
<string name="woo_shipping_labels_customs_origin_country_info_button">Weitere Informationen zum Ursprungsland des Produkts</string>
13+
<string name="woo_shipping_labels_customs_description_info">Beim Versand in Länder, die den Zollvorschriften der Europäischen Union (EU) unterliegen, musst du eine klare, spezifische Beschreibung aller Artikel angeben. Beispiel: Wenn du Bekleidung versendest, musst du die Art der Bekleidung angeben (z. B. Shirts für Männer, Weste für Mädchen, Jacke für Jungen), damit die Beschreibung akzeptiert wird. Ansonsten kann es zu Verzögerungen oder Unterbrechungen von Lieferungen durch den Zoll kommen.</string>
14+
<string name="woo_shipping_labels_customs_description_info_button">Weitere Informationen zur Produktbeschreibung</string>
15+
<string name="woo_shipping_labels_customs_hs_tariff_info_button">Weitere Informationen zum HS-Tarif</string>
16+
<string name="woo_shipping_labels_customs_itn_info_button">Weitere Informationen zur ITN</string>
17+
<string name="woo_shipping_labels_package_creation_shipping_rates_empty_with_hazmat">Es konnte kein Versanddienstleister für die Kombination aus der ausgewählten Gefahrgutklasse, dem ausgewählten Paket und dem Gesamtgewicht der Sendung gefunden werden. Bitte passe deine Eingabe an und versuche es erneut.</string>
18+
<string name="woo_shipping_labels_package_creation_shipping_rates_empty">Es konnte kein Versanddienstleister für die Kombination aus dem ausgewählten Paket und dem Gesamtgewicht der Sendung gefunden werden. Bitte passe deine Eingabe an und versuche es erneut.</string>
19+
<string name="woopos_settings_store_not_set">Nicht festgelegt</string>
20+
<string name="woopos_settings_refund_policy_label">Richtlinie für Rückerstattungen und Rückgaben</string>
21+
<string name="woopos_settings_store_email_label">E-Mail-Adresse</string>
22+
<string name="woopos_settings_store_phone_label">Telefonnummer</string>
23+
<string name="woopos_settings_store_address_label">Adresse</string>
24+
<string name="woopos_settings_store_name_label">Shop-Name</string>
25+
<string name="woopos_settings_receipt_information_title">Beleginformationen</string>
26+
<string name="woopos_settings_store_information_title">Shop-Informationen</string>
27+
<string name="woopos_settings_help_get_support_subtitle">Kontaktiere unser Support-Team</string>
28+
<string name="woopos_settings_help_documentation_subtitle">Ratgeber und Tutorials anzeigen</string>
29+
<string name="woopos_settings_help_product_limitations_subtitle">Erfahre, welche Produkte in POS unterstützt werden</string>
30+
<string name="woopos_settings_help_category_subtitle">Hilfe und Support erhalten</string>
31+
<string name="woopos_settings_card_reader_connected_reader">Verbundenes Kartenlesegerät</string>
32+
<string name="woopos_settings_card_reader_documentation_subtitle">Weitere Informationen zum Empfang von Zahlungen per Mobilgerät</string>
33+
<string name="woopos_settings_card_reader_documentation_title">Dokumentation</string>
34+
<string name="woopos_settings_card_reader_update_available">• Update verfügbar</string>
35+
<string name="woopos_settings_card_reader_update_button">Aktualisieren</string>
36+
<string name="woopos_settings_card_reader_unknown_firmware">Unbekannt</string>
37+
<string name="woopos_settings_card_reader_unknown_reader">Unbekanntes Kartenlesegerät</string>
38+
<string name="woopos_settings_card_reader_firmware_title">Firmware</string>
39+
<string name="woopos_settings_card_reader_battery_title">Akku</string>
40+
<string name="woopos_settings_card_reader_detail_title">Einstellungen für Kartenlesegerät</string>
41+
<string name="woopos_settings_barcode_scanner_documentation_subtitle">Weitere Informationen zum Scannen von Barcodes in POS</string>
42+
<string name="woopos_settings_barcode_scanner_documentation_title">Dokumentation</string>
43+
<string name="woopos_settings_barcode_scanner_setup_subtitle">Deinen Barcodescanner konfigurieren und testen</string>
44+
<string name="woopos_settings_barcode_scanner_setup_title">Scanner-Einrichtung</string>
45+
<string name="woopos_settings_barcode_scanner_detail_title">Einstellungen für Barcodescanner</string>
46+
<string name="woopos_settings_hardware_card_readers_subtitle">Verbindungen des Kartenlesegeräts verwalten</string>
47+
<string name="woopos_settings_hardware_card_readers">Kartenlesegeräte</string>
48+
<string name="woopos_settings_hardware_barcode_scanners_subtitle">Einstellungen für Barcodescanner konfigurieren</string>
49+
<string name="woopos_settings_hardware_barcode_scanners">Barcodescanner</string>
50+
<string name="woopos_settings_store_category_subtitle">Shop-Konfiguration und -Einstellungen</string>
51+
<string name="woopos_settings_store_category">Shop</string>
52+
<string name="woopos_settings_hardware_category_subtitle">Hardware-Verbindungen verwalten</string>
53+
<string name="woopos_settings_hardware_category">Hardware</string>
54+
<string name="woopos_settings_title">Einstellungen</string>
55+
<string name="error_wordpress_com_connectivity">Wir können WordPress.com nicht erreichen. Bitte überprüfe deine Internetverbindungseinstellungen oder versuche, das Netzwerk zu wechseln.</string>
56+
<string name="logviewer_current_log_file">Aktuell</string>
57+
<string name="logviewer_log_files_list_footer">Es werden Protokolle für einen Zeitraum von bis zu sieben Tagen gespeichert.</string>
58+
<string name="logviewer_log_files_list_header">Protokolldateien nach Erstellungsdatum</string>
59+
<string name="order_refunds_credit_card_refund">Kreditkarte</string>
60+
<string name="orderdetail_shipping_label_refunded">Du hast erfolgreich einen Antrag auf Rückerstattung gestellt. Du kannst ein neues Etikett kaufen.</string>
61+
<string name="orderdetail_shipping_label_shipment_tracking_number">Sendungsverfolgungsnummer</string>
62+
<string name="orderdetail_shipping_label_shipment_items_multiple">%1$d Artikel</string>
63+
<string name="orderdetail_shipping_label_shipment_items_one">%1$d Artikel</string>
64+
<string name="orderdetail_shipping_label_shipment_header">Sendung %1$s</string>
65+
<string name="user_role_access_error_user_roles_null">Diese App unterstützt nur die Benutzerrollen Administrator und Shop-Manager. Es konnten keine Benutzerrollen für dein Konto abgerufen werden. Bitte kontaktiere den Support.</string>
966
<string name="woopos_scanning_setup_software_keyboard_bullet_three">Es funktioniert immer noch nicht? Dann wende dich bitte an den Kundensupport des Geräteherstellers.</string>
1067
<string name="woopos_scanning_setup_software_keyboard_bullet_one">Suche auf dem Bildschirm nach einem Tastatur-Icon oder einer Werkzeugleiste.</string>
1168
<string name="woopos_scanning_setup_software_keyboard_hint">Hier tippen, um die Sichtbarkeit der Tastatur zu testen</string>

0 commit comments

Comments
 (0)