From 5c57266f8897a3c809ed6fd9c9244b72408699de Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Mon, 21 Jul 2025 00:15:36 +0300 Subject: [PATCH 01/15] Keep customs form incomplete if item weight is zero --- .../WooShippingCustomsItem.swift | 5 ++--- .../WooShippingCustomsItemViewModel.swift | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItem.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItem.swift index 4f855b30650..6e39a70688a 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItem.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItem.swift @@ -11,7 +11,6 @@ struct WooShippingCustomsItem: View { @State private var isShowingDescriptionInfoDialog = false @State private var isShowingOriginCountryInfoDialog = false - @Environment(\.shippingWeightUnit) var weightUnit: String var body: some View { @@ -167,12 +166,12 @@ struct WooShippingCustomsItem: View { .padding(.trailing, Layout.unitsHorizontalSpacing) } .roundedBorder(cornerRadius: Layout.borderCornerRadius, - lineColor: viewModel.weightPerUnit.isEmpty ? warningRedColor : Color(.separator), + lineColor: viewModel.isValidWeight ? Color(.separator) : warningRedColor, lineWidth: Layout.borderLineWidth) Text(Localization.valueRequiredWarningText) .foregroundColor(warningRedColor) .footnoteStyle() - .renderedIf(viewModel.weightPerUnit.isEmpty) + .renderedIf(!viewModel.isValidWeight) } } .padding(.bottom, Layout.collapsibleViewVerticalSpacing) diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModel.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModel.swift index f5d6b730aa5..2de9e4bd66b 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModel.swift @@ -62,6 +62,10 @@ final class WooShippingCustomsItemViewModel: ObservableObject { return length >= 6 && length <= 12 } + var isValidWeight: Bool { + return Self.isWeightValid(weightPerUnit) + } + @Published var requiredInformationIsEntered: Bool = false private var cancellables = Set() @@ -127,7 +131,11 @@ private extension WooShippingCustomsItemViewModel { func combineRequiredInformationIsEntered() { Publishers.CombineLatest4($description, $valuePerUnit, $weightPerUnit, $selectedCountry) .sink { [weak self] description, valuePerUnit, weightPerUnit, selectedCountry in - self?.requiredInformationIsEntered = description.isNotEmpty && valuePerUnit.isNotEmpty && weightPerUnit.isNotEmpty && selectedCountry != nil + guard let self else { return } + requiredInformationIsEntered = description.isNotEmpty && + valuePerUnit.isNotEmpty && + Self.isWeightValid(weightPerUnit) && + selectedCountry != nil } .store(in: &cancellables) } @@ -149,4 +157,13 @@ private extension WooShippingCustomsItemViewModel { } .store(in: &cancellables) } + + /// Specifically introduced to check for a `0` value + static func isWeightValid(_ weightString: String) -> Bool { + return isWeightNonZero(Double(weightString) ?? 0) + } + + static func isWeightNonZero(_ weightValue: Double) -> Bool { + return weightValue > 0 + } } From fa311c1f49f78dcf6de8db714cca3a53c6c99e74 Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Mon, 21 Jul 2025 00:15:58 +0300 Subject: [PATCH 02/15] Skip initial zero weight value for customs form --- .../WooShippingCustomsItemViewModel.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModel.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModel.swift index 2de9e4bd66b..50323c7af98 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModel.swift @@ -83,7 +83,12 @@ final class WooShippingCustomsItemViewModel: ObservableObject { self.itemProductID = itemProductID self.itemQuantity = itemQuantity self.valuePerUnit = String(itemValue) - self.weightPerUnit = String(itemWeight) + + /// Skip zero weight + if Self.isWeightNonZero(itemWeight) { + self.weightPerUnit = String(itemWeight) + } + self.currencySymbol = currencySymbol self.storageManager = storageManager From 4dd17d4a29300a9175e021522e28265527f42966 Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Mon, 21 Jul 2025 00:56:48 +0300 Subject: [PATCH 03/15] Add test for skipping 0 weight initial value --- .../WooShippingCustomsItemViewModelTests.swift | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModelTests.swift b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModelTests.swift index 5a489499323..f1827a5d91c 100644 --- a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModelTests.swift +++ b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModelTests.swift @@ -49,6 +49,23 @@ final class WooShippingCustomsItemViewModelTests: XCTestCase { XCTAssertTrue(viewModel.isValidTariffNumber) } + func test_when_item_weight_is_zero_then_it_is_invalid() { + // Given + let viewModel = WooShippingCustomsItemViewModel( + itemName: "Test", + itemProductID: 22, + itemQuantity: 1, + itemValue: 10, + itemWeight: 0, + currencySymbol: "$", + storageManager: MockStorageManager() + ) + + // Then + XCTAssertTrue(viewModel.weightPerUnit.isEmpty, "Weight should be empty it the initial value is zero") + XCTAssertFalse(viewModel.isValidWeight, "isValidWeight should be false when the weight is zero") + } + func test_hsTariffNumberTotalValue_when_currency_symbol_is_not_$_returns_nil() { // Given viewModel = WooShippingCustomsItemViewModel(itemName: "Test", From d251c933a2f92ec1817b278416615f157a356672 Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Mon, 21 Jul 2025 11:45:23 +0300 Subject: [PATCH 04/15] Add customs form weightPerUnit test --- ...WooShippingCustomsFormViewModelTests.swift | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift index d63f529a55e..ac657a3aa6b 100644 --- a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift +++ b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift @@ -1,5 +1,6 @@ import XCTest import Yosemite +import Combine @testable import WooCommerce final class WooShippingCustomsFormViewModelTests: XCTestCase { @@ -332,6 +333,67 @@ final class WooShippingCustomsFormViewModelTests: XCTestCase { XCTAssertEqual(firstItemViewModel?.valuePerUnit, String(firstItem?.value ?? 0)) XCTAssertEqual(firstItemViewModel?.weightPerUnit, String(firstItem?.weight ?? 0)) } + + func test_requiredInformationIsEntered_when_weight_is_zero_then_returns_false() { + // Given + let storageManager = MockStorageManager() + let originCountryCodeSubject = PassthroughSubject() + + let country = Country( + code: "US", + name: "United States", + states: [] + ) + storageManager.insertSampleCountries(readOnlyCountries: [country]) + + let itemWithZeroWeight = ShippingLabelPackageItem( + productOrVariationID: 1, + orderItemID: 123, + name: "Shirt", + weight: 0, + quantity: 1, + value: 10, + dimensions: .fake(), + attributes: [], + imageURL: nil + ) + + let shipment = Shipment( + contents: [ + CollapsibleShipmentItemCardViewModel( + item: itemWithZeroWeight, + currency: "USD" + ) + ], + currency: "USD", + currencySettings: ServiceLocator.currencySettings, + shippingSettingsService: ServiceLocator.shippingSettingsService + ) + + viewModel = WooShippingCustomsFormViewModel( + order: .fake(), + shipment: shipment, + originCountryCode: originCountryCodeSubject.eraseToAnyPublisher(), + storageManager: storageManager, + onFormReady: { _ in } + ) + + let itemViewModel = viewModel.itemsViewModels[0] + itemViewModel.description = "Test Description" + itemViewModel.valuePerUnit = "10.0" + + // When + originCountryCodeSubject.send("US") + + // Then + XCTAssertFalse( + viewModel.requiredInformationIsEntered, + "requiredInformationIsEntered should be false when an item's weight is zero" + ) + XCTAssertTrue(itemViewModel.weightPerUnit.isEmpty) + XCTAssertFalse(itemViewModel.isValidWeight) + XCTAssertFalse(itemViewModel.requiredInformationIsEntered) + } } private extension WooShippingCustomsFormViewModelTests { From 825bd71ec470a4f6e2cbbca4e9cf605f07510f8f Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Mon, 21 Jul 2025 12:12:01 +0300 Subject: [PATCH 05/15] Update release notes --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 3f27ab813be..56c2797bdf5 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -16,6 +16,7 @@ - [*] Watch app: Fixed connection issue upon fresh install [https://github.com/woocommerce/woocommerce-ios/pull/15867] - [Internal] Shipping Labels: Optimize requests for syncing countries [https://github.com/woocommerce/woocommerce-ios/pull/15875] - [*] Shipping Labels: Display label size from account settings as default [https://github.com/woocommerce/woocommerce-ios/pull/15873] +- [*] Shipping Labels: Ensured customs form validation enforces non-zero product weight to fix shipping rate loading failure. [https://github.com/woocommerce/woocommerce-ios/pull/15927] 22.7 ----- From 28524d0faa0d4ce838f2cff9cb254feacb63a3af Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Tue, 22 Jul 2025 14:54:01 +0300 Subject: [PATCH 06/15] Update ITN format in validator --- .../WooShippingCustomsFormViewModel.swift | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift index 0cc5ead0401..b7fd9b46257 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift @@ -140,7 +140,7 @@ private extension WooShippingCustomsFormViewModel { .map { input -> ITNValidationError? in let (itn, items, hsTariffNumberTotalValueDictionary, countryCode) = input guard itn.isEmpty else { - return itn.isValidITN ? nil : .invalidFormat + return ITNNumberValidator.isValid(itn) ? nil : .invalidFormat } let totalItemValue = items.reduce(0, { sum, item in @@ -204,7 +204,7 @@ private extension WooShippingCustomsFormViewModel { restrictionType: restrictionType.toFormRestrictionType(), restrictionComments: restrictionType == .other ? restrictionDetails : "", nonDeliveryOption: returnToSenderIfNotDelivered ? .return : .abandon, - itn: internationalTransactionNumber.isValidITN ? internationalTransactionNumber : "", + itn: ITNNumberValidator.isValid(internationalTransactionNumber) ? internationalTransactionNumber : "", items: itemsViewModels.map { ShippingLabelCustomsForm.Item( description: $0.description, @@ -385,18 +385,24 @@ extension WooShippingContentType { } } -private extension String { - var isValidITN: Bool { - guard self.isNotEmpty else { +enum ITNNumberValidator { + /// Validates AES/ITN (International Transaction Number) or NOEEI (No EEI) exemption codes + /// Accepts formats like: + /// - AES ITN: X12345678901234, AES 12345678901234 or AES ITN: 12345678901234 + /// - NOEEI exemptions: NOEEI 30.36 or NOEEI 30.36(a) or NOEEI 30.36(a)(1) + /// AES/ITN numbers which are 14 digits long, optionally prefixed with 'X', 'AES', and/or 'ITN' + /// NOEEI exemption codes in the format "NOEEI 30.XX" with optional subsection letters and numbers + static func isValid(_ itnNumber: String) -> Bool { + guard itnNumber.isNotEmpty else { return true } - let pattern = "^(?:(?:AES X\\d{14})|(?:NOEEI 30\\.\\d{1,2}(?:\\([a-z]\\)(?:\\(\\d\\))?)?))$" + let pattern = "^(?:(?:AES\\s*ITN:?\\s*)?(?:AES(?!\\S)\\s*)?X?\\d{14}|(?:NOEEI\\s+30\\.\\d{2}(?:\\([a-z]\\)(?:\\(\\d\\))?)?))$" do { - let regex = try NSRegularExpression(pattern: pattern) - let range = NSRange(self.startIndex.. Date: Tue, 22 Jul 2025 14:54:16 +0300 Subject: [PATCH 07/15] Add ITN number validator tests --- ...WooShippingCustomsFormViewModelTests.swift | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift index ac657a3aa6b..05164718f52 100644 --- a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift +++ b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift @@ -394,6 +394,39 @@ final class WooShippingCustomsFormViewModelTests: XCTestCase { XCTAssertFalse(itemViewModel.isValidWeight) XCTAssertFalse(itemViewModel.requiredInformationIsEntered) } + + func test_ITNNumberValidator_when_number_is_valid_then_returns_true() { + // Valid ITN formats + XCTAssertTrue(ITNNumberValidator.isValid("AES X12345678901234")) + XCTAssertTrue(ITNNumberValidator.isValid("AES 12345678901234")) + XCTAssertTrue(ITNNumberValidator.isValid("X12345678901234")) + XCTAssertTrue(ITNNumberValidator.isValid("12345678901234")) + XCTAssertTrue(ITNNumberValidator.isValid("AES ITN 12345678901234")) + XCTAssertTrue(ITNNumberValidator.isValid("AES ITN:12345678901234")) + XCTAssertTrue(ITNNumberValidator.isValid("aes itn:12345678901234")) + XCTAssertTrue(ITNNumberValidator.isValid("aes x12345678901234")) + + // Valid NOEEI formats + XCTAssertTrue(ITNNumberValidator.isValid("NOEEI 30.36")) + XCTAssertTrue(ITNNumberValidator.isValid("NOEEI 30.37(a)")) + XCTAssertTrue(ITNNumberValidator.isValid("NOEEI 30.37(a)(1)")) + XCTAssertTrue(ITNNumberValidator.isValid("noeei 30.37(a)(1)")) + } + + func test_ITNNumberValidator_when_number_is_invalid_then_returns_false() { + // Invalid formats + XCTAssertFalse(ITNNumberValidator.isValid("AES Y12345678901234")) // Invalid prefix + XCTAssertFalse(ITNNumberValidator.isValid("X1234567890123")) // Too short + XCTAssertFalse(ITNNumberValidator.isValid("X123456789012345")) // Too long + XCTAssertFalse(ITNNumberValidator.isValid("NOEEI 30.3")) // Incomplete NOEEI + XCTAssertFalse(ITNNumberValidator.isValid("NOEEI 30.37(a)(1)(i)")) // Invalid NOEEI + XCTAssertFalse(ITNNumberValidator.isValid("AESX12345678901234")) + XCTAssertFalse(ITNNumberValidator.isValid("NOEEI30.36")) + + // Empty and whitespace + XCTAssertTrue(ITNNumberValidator.isValid("")) + XCTAssertFalse(ITNNumberValidator.isValid(" ")) + } } private extension WooShippingCustomsFormViewModelTests { From 7f4457166c343a8a4c4964552985c3b2211c8c1c Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Tue, 22 Jul 2025 17:57:15 +0300 Subject: [PATCH 08/15] 2500+ is now a requirement for an ITN number --- .../WooShipping Customs/WooShippingCustomsFormViewModel.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift index b7fd9b46257..ede48c0e94c 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift @@ -146,8 +146,7 @@ private extension WooShippingCustomsFormViewModel { let totalItemValue = items.reduce(0, { sum, item in sum + item.totalValue }) - if hsTariffNumberTotalValueDictionary.isEmpty, - totalItemValue > Constants.minimumValueForRequiredITN { + if totalItemValue > Constants.minimumValueForRequiredITN { return .missingForTotalShipmentValue } From ccc4d6ef4fff6ad3d9156ee7981da6448b4b09cf Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Tue, 22 Jul 2025 18:39:19 +0300 Subject: [PATCH 09/15] Add an ITN requirement test --- ...WooShippingCustomsFormViewModelTests.swift | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift index 05164718f52..c348ace50c9 100644 --- a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift +++ b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift @@ -427,6 +427,56 @@ final class WooShippingCustomsFormViewModelTests: XCTestCase { XCTAssertTrue(ITNNumberValidator.isValid("")) XCTAssertFalse(ITNNumberValidator.isValid(" ")) } + + func test_itnValidationError_when_totalShipmentValueExceedsThreshold_andTariffClassesDont() { + // Given + let storageManager = MockStorageManager() + let originCountryCodeSubject = PassthroughSubject() + + let usCountry = Country( + code: "US", + name: "United States", + states: [] + ) + let ukCountry = Country( + code: "UK", + name: "United Kingdom", + states: [] + ) + storageManager.insertSampleCountries(readOnlyCountries: [usCountry, ukCountry]) + let shipment = sampleShipment + let order = Order.fake().copy(currency: "USD") + + viewModel = WooShippingCustomsFormViewModel( + order: order, + shipment: shipment, + originCountryCode: originCountryCodeSubject.eraseToAnyPublisher(), + storageManager: storageManager, + onFormReady: { _ in } + ) + + // Set values to have a total > $2500, but each tariff class < $2500 + // Item 1 has quantity 2, Item 2 has quantity 1. + viewModel.itemsViewModels[0].valuePerUnit = "1200" // Total: 2 * 1200 = 2400 + viewModel.itemsViewModels[1].valuePerUnit = "200" // Total: 1 * 200 = 200 + // Shipment total: 2600 + + // When + originCountryCodeSubject.send("US") + viewModel.updateDestinationCountry(code: "UK") // A country that doesn't have special ITN rules + viewModel.internationalTransactionNumber = "" // No ITN provided + // Set different tariff numbers for each item + viewModel.itemsViewModels[0].hsTariffNumber = "111111" + viewModel.itemsViewModels[1].hsTariffNumber = "222222" + viewModel.itemsViewModels.forEach { + $0.description = "Test" + $0.weightPerUnit = "1" + } + + // Then + // The shipment total value is 2600, which is > $2500, so an ITN should be required. + XCTAssertEqual(viewModel.itnValidationError, .missingForTotalShipmentValue) + } } private extension WooShippingCustomsFormViewModelTests { From d5face23510a68fa1333d5b8eee1a651f88d5399 Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Wed, 23 Jul 2025 13:01:48 +0300 Subject: [PATCH 10/15] Make AES prefix non-optional as before --- .../WooShipping Customs/WooShippingCustomsFormViewModel.swift | 2 +- .../WooShippingCustomsFormViewModelTests.swift | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift index ede48c0e94c..b0f870971cb 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift @@ -396,7 +396,7 @@ enum ITNNumberValidator { return true } - let pattern = "^(?:(?:AES\\s*ITN:?\\s*)?(?:AES(?!\\S)\\s*)?X?\\d{14}|(?:NOEEI\\s+30\\.\\d{2}(?:\\([a-z]\\)(?:\\(\\d\\))?)?))$" + let pattern = "^(?:(?:AES(?!\\S)\\s*(?:ITN:?\\s*)?X?\\d{14})|(?:NOEEI\\s+30\\.\\d{2}(?:\\([a-z]\\)(?:\\(\\d\\))?)?))$" do { let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive) diff --git a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift index c348ace50c9..97b3f30973a 100644 --- a/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift +++ b/WooCommerce/WooCommerceTests/ViewRelated/Shipping Label/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModelTests.swift @@ -399,8 +399,6 @@ final class WooShippingCustomsFormViewModelTests: XCTestCase { // Valid ITN formats XCTAssertTrue(ITNNumberValidator.isValid("AES X12345678901234")) XCTAssertTrue(ITNNumberValidator.isValid("AES 12345678901234")) - XCTAssertTrue(ITNNumberValidator.isValid("X12345678901234")) - XCTAssertTrue(ITNNumberValidator.isValid("12345678901234")) XCTAssertTrue(ITNNumberValidator.isValid("AES ITN 12345678901234")) XCTAssertTrue(ITNNumberValidator.isValid("AES ITN:12345678901234")) XCTAssertTrue(ITNNumberValidator.isValid("aes itn:12345678901234")) @@ -415,6 +413,8 @@ final class WooShippingCustomsFormViewModelTests: XCTestCase { func test_ITNNumberValidator_when_number_is_invalid_then_returns_false() { // Invalid formats + XCTAssertFalse(ITNNumberValidator.isValid("X12345678901234")) + XCTAssertFalse(ITNNumberValidator.isValid("12345678901234")) XCTAssertFalse(ITNNumberValidator.isValid("AES Y12345678901234")) // Invalid prefix XCTAssertFalse(ITNNumberValidator.isValid("X1234567890123")) // Too short XCTAssertFalse(ITNNumberValidator.isValid("X123456789012345")) // Too long From e8a728b8cef73b0e8b3a36b08df8508034e64636 Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Wed, 23 Jul 2025 13:16:23 +0300 Subject: [PATCH 11/15] Update release notes --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 56c2797bdf5..8ea4b85bbd0 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -17,6 +17,7 @@ - [Internal] Shipping Labels: Optimize requests for syncing countries [https://github.com/woocommerce/woocommerce-ios/pull/15875] - [*] Shipping Labels: Display label size from account settings as default [https://github.com/woocommerce/woocommerce-ios/pull/15873] - [*] Shipping Labels: Ensured customs form validation enforces non-zero product weight to fix shipping rate loading failure. [https://github.com/woocommerce/woocommerce-ios/pull/15927] +- [*] Shipping Labels: ITN number is now required for shipments with total value more than 2500. [https://github.com/woocommerce/woocommerce-ios/pull/15937] 22.7 ----- From 3a12a6d29efd24b06c8c6b4c3c10258fc8a01388 Mon Sep 17 00:00:00 2001 From: RafaelKayumov Date: Wed, 23 Jul 2025 13:21:00 +0300 Subject: [PATCH 12/15] Update ITN format error notice --- .../WooShippingCustomsFormViewModel.swift | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift index b0f870971cb..3c6c8dfe30f 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift @@ -245,9 +245,10 @@ extension WooShippingCustomsFormViewModel.ITNValidationError { private enum Localization { static let itnInvalidFormat = NSLocalizedString( - "wooShippingCustomsFormViewModel.ITNValidationError.invalidFormat", - value: "Please enter a valid ITN in one of these formats: X12345678901234, AES X12345678901234, or NOEEI 30.37(a).", - comment: "Message when the ITN field is invalid in the customs form of a shipping label" + "wooShippingCustomsFormViewModel.ITNValidationError.invalidFormat.mandatoryAES", + value: "Please enter a valid ITN in one of these formats: AES X12345678901234, or NOEEI 30.37(a).", + comment: "Message when the ITN field is invalid in the customs form of a shipping label. " + + "Doesn't contain X12345678901234 format example." ) static let itnRequiredForTariffClass = NSLocalizedString( "wooShippingCustomsFormViewModel.ITNValidationError.missingForTariffClass", From 632dd75d3a0b8f97cdca51e7f94f2c8dfa936605 Mon Sep 17 00:00:00 2001 From: Automattic Release Bot Date: Fri, 25 Jul 2025 03:16:05 -0700 Subject: [PATCH 13/15] =?UTF-8?q?Update=20app=20translations=20=E2=80=93?= =?UTF-8?q?=20`Localizable.strings`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resources/ar.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/de.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/es.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/fr.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/he.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/id.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/it.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/ja.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/ko.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/nl.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/pt-BR.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/ru.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/sv.lproj/Localizable.strings | 134 +++++++++++++++--- .../Resources/tr.lproj/Localizable.strings | 134 +++++++++++++++--- .../zh-Hans.lproj/Localizable.strings | 134 +++++++++++++++--- .../zh-Hant.lproj/Localizable.strings | 134 +++++++++++++++--- 16 files changed, 1840 insertions(+), 304 deletions(-) diff --git a/WooCommerce/Resources/ar.lproj/Localizable.strings b/WooCommerce/Resources/ar.lproj/Localizable.strings index 7a2e0f6986b..9c9713b8be8 100644 --- a/WooCommerce/Resources/ar.lproj/Localizable.strings +++ b/WooCommerce/Resources/ar.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-03 09:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-16 11: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 */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% مكتمل"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express."; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "نطاق التاريخ"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "غيرنزي"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "زائر"; - /* Country option for a site address. */ "Guinea" = "غينيا"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "ملاحظات الطلب"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "حالة الطلب"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "وصف قصير"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "إظهار الطلبات"; - /* Button title for applying filters to a list of products. */ "Show Products" = "عرض المنتجات"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "إجمالي المنتجات ووزن الحزمة"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "ضيف"; + /* Country option for a site address. */ "Suriname" = "سورينام"; @@ -10045,9 +10036,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "محفوظات التصفية"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "إظهار الطلبات"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "العميل"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "المبيعات حسب القناة"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "نطاق التاريخ"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "حالة الطلب"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "المنتج"; @@ -10759,6 +10762,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "الضرائب"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "%1$@، %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "ضيف"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11324,10 +11333,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "يُحاكي جهاز المسح الضوئي لوحة المفاتيح، لذا ستمنع لوحة مفاتيح البرنامج من الظهور في بعض الأحيان، على سبيل المثال في البحث. انقر على أيقونة لوحة المفاتيح لإظهارها مرة أخرى."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• راجع تعليمات الماسح الضوئي للرمز الشريطي الخاص بك عبر تقنية البلوتوث لتعيين وضع HID."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• راجع تعليمات الماسح الضوئي للرمز الشريطي الخاص بك عبر تقنية البلوتوث لتعيين وضع HID. يتطلب هذا عادة فحص رمز شريطي خاص في الدليل."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "ثانيًا: راجع تعليمات الماسح الضوئي للرمز الشريطي الخاص بك عبر تقنية البلوتوث لتعيين وضع H-I-D."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "ثانيًا: راجع تعليمات الماسح الضوئي للرمز الشريطي الخاص بك عبر تقنية البلوتوث لتعيين وضع H-I-D. يتطلب هذا عادة فحص رمز شريطي خاص في الدليل."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• وصّل ماسحك الضوئي للرمز الشريطي بإعدادات البلوتوث في نظام التشغيل iOS."; @@ -11335,6 +11344,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "ثالثًا: وصّل ماسحك الضوئي للرمز الشريطي بإعدادات البلوتوث في نظام التشغيل iOS."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "رجوع"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "تم"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "إعداد الماسح الضوئي للرمز الشريطي"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "أختر ماسح الرمز الشريطي الخاص بك لبدء عملية الإعداد."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "التالي"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "تعليمات إعداد أداة الفحص العامة"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "أخرى"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "ماسح ضوئي صغير محمول باليد مع منصة شحن أو حامل"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "مقبس S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "ماسح ضوئي مريح مع حامل"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "ستار بي إس إتش-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "الماسح الضوئي الموصى به"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "الماسح الضوئي TBC"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "النقر على منتج إلى \n إضافته إلى عربة التسوق"; @@ -11344,8 +11392,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "السداد"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "مسح"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "مسح عربة التسوق"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "رجوع"; @@ -11368,6 +11416,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "هل تريد إنهاء وضع نقطة البيع؟"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "إنهاء POS"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "إعادة المحاولة"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "يجب تمكين نقطة البيع للمتابعة. يرجى تمكين ميزة نقطة البيع من مسؤول WordPress لديك ضمن إعدادات WooCommerce > متقدم > الميزات."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "يُرجى التحقق من اتصالك بالإنترنت والمحاولة مرة أخرى."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "حاول إعادة تشغيل التطبيق لحل هذه المشكلة."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "تحقق من إتصالك بالإنترنت وحاول إعادة تشغيل التطبيق. إذا إستمرت المشكلة، فيرجى الاتصال بالدعم."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "لا يتوافر نظام نقطة البيع لعملة متجرك. يدعم حاليا %1$@ فقط. يرجى التحقق من إعدادات عملة متجرك أو الاتصال بالدعم للحصول على المساعدة."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "تتطلب نقطة البيع نظام التشغيل iOS 17 أو أحدث. يرجى تحديث جهازك إلى iOS 17+ لاستخدام هذه الميزة."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "إصدار WooCommerce الخاص بك غير مدعوم. يتطلب نظام نقطة البيع الإصدار %1$@ من WooCommerce أو إصدار أحدث. يُرجى التحديث إلى آخر إصدار من WooCommerce."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "قم بتثبيت إضافة WooCommerce وتفعيلها من مسؤول WordPress الخاص بك."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "يتعذر التحميل"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "يُرجى التحقق من اتصالك بالإنترنت والمحاولة مرة أخرى."; @@ -12535,11 +12616,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "صورة الحزمة"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "فتح Woo على iPhone، وربط متجرك، والاحتفاظ بتطبيق Watch بالقرب منك"; +"watch.connect.messageUpdated" = "افتح تطبيق Woo على هاتف iPhone الخاص بك، سجل الدخول إلى متجرك، وقرّب ساعتك الذكية."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "إنها لا تعمل"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "إذا استمر الخطأ، فأعد تشغيل التطبيق."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "تأكد من أن ساعتك متصلة بالإنترنت وأن هاتفك قريب."; @@ -12717,6 +12801,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "إضافة طريقة الدفع"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "معالجة إضافية"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "يلزم توقيع شخص بالغ"; @@ -12726,6 +12813,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (الرسوم الأساسية)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "محايد الكربون"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "تحرير الوجهة"; @@ -12744,6 +12834,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "ملصق الشراء · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "التوصيل في يوم السبت"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "الشحن من"; @@ -13047,6 +13140,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "إعادة المحاولة"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "التراجع عن التغييرات"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "يتعذر حفظ التغييرات. يُرجى المحاولة مجددًا."; diff --git a/WooCommerce/Resources/de.lproj/Localizable.strings b/WooCommerce/Resources/de.lproj/Localizable.strings index 1bfb800acdc..e0e2496889f 100644 --- a/WooCommerce/Resources/de.lproj/Localizable.strings +++ b/WooCommerce/Resources/de.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-01 11:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-17 11:54:03+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: de */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f %% abgeschlossen"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "Zeitraum"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "Guernsey"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "Gast"; - /* Country option for a site address. */ "Guinea" = "Guinea"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "Bestellhinweise"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "Bestellstatus"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "Kurzbeschreibung"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "Bestellungen anzeigen"; - /* Button title for applying filters to a list of products. */ "Show Products" = "Produkte anzeigen"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "Produktanzahl und Paketgewicht"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "Gast"; + /* Country option for a site address. */ "Suriname" = "Surinam"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "Filterverlauf"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "Bestellungen anzeigen"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "Kunde"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "Vertriebskanal"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "Zeitraum"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "Bestellstatus"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "Produkt"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "Steuern"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "Gast"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "Der Scanner zeigt eine Tastatur an, sodass in manchen Fällen die Softwaretastatur nicht angezeigt wird, z. B. in der Suche. Tippe auf das Tastatur-Icon, um sie erneut anzuzeigen."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• Informationen zum Festlegen des HID-Modus findest du in der Anleitung des Bluetooth-Barcodescanners."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• Informationen zum Festlegen des HID-Modus findest du in der Anleitung des Bluetooth-Barcodescanners. Hierfür ist in der Regel das Scannen eines speziellen Barcodes im Handbuch erforderlich."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "Zweitens: Informationen zum Festlegen des H-I-D-Modus findest du in der Anleitung des Bluetooth-Barcodescanners."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "Zweitens: Informationen zum Festlegen des H-I-D-Modus findest du in der Anleitung des Bluetooth-Barcodescanners. Hierfür ist in der Regel das Scannen eines speziellen Barcodes im Handbuch erforderlich."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• Stelle über die iOS-Bluetooth-Einstellungen eine Verbindung mit deinem Barcode-Scanner her."; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "Drittens: Stelle über die Bluetooth-Systemeinstellungen eine Verbindung mit deinem Barcode-Scanner her."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "Zurück"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "Fertig"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "Barcodescanner-Einrichtung"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "Wähle deinen Barcodescanner, um mit der Einrichtung zu beginnen."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "Weiter"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "Allgemeine Anweisungen zur Scanner-Einrichtung"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "Sonstige"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "Kleiner Handscanner mit Ladestation oder Ständer"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "Ergonomischer Scanner mit Ständer"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "Empfohlener Scanner"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "Scanner TBC"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "Tippe auf ein Produkt, um \n es dem Warenkorb hinzuzufügen"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "Bezahlen"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "Löschen"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "Warenkorb leeren"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "Zurück"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "Modus „Verkaufsort“ (POS) beenden?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "POS beenden"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "Erneut versuchen"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "Point of Sale muss aktiviert sein, damit du fortfahren kannst. Bitte aktiviere die POS-Funktion über deinen WordPress-Admin unter WooCommerce-Einstellungen > Erweitert > Funktionen."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "Bitte überprüfe deine Internetverbindung und versuche es erneut."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "Starte die App neu, um dieses Problem zu beheben."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "Überprüfe deine Internetverbindung und starte die App neu. Wenn das Problem weiterhin besteht, wende dich bitte an den Support."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "Das POS-System ist für die Währung deines Shops nicht verfügbar. Derzeit werden nur %1$@ unterstützt. Bitte überprüfe die Währungseinstellungen deines Shops oder kontaktiere den Support, um Hilfe zu erhalten."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "Point of Sale erfordert iOS 17 oder höher. Bitte aktualisiere dein Gerät auf iOS 17+, um diese Funktion verwenden zu können."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "Deine WooCommerce-Version wird nicht unterstützt. Das POS-System erfordert WooCommerce Version %1$@ oder höher. Aktualisiere bitte auf die neueste Version von WooCommerce."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "Installiere und aktiviere das WooCommerce-Plugin über deinen WordPress-Admin."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "Konnte nicht geladen werden"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "Bitte überprüfe deine Internetverbindung und versuche es erneut."; @@ -12553,11 +12634,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "Verpackungsfoto"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "Öffne Woo auf deinem iPhone, verbinde deinen Shop und behalte deine Watch in der Nähe"; +"watch.connect.messageUpdated" = "Öffne Woo auf deinem iPhone, melde dich bei deinem Shop an und behalte deine Watch in der Nähe."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "Das hat nicht geklappt"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "Wenn der Fehler weiterhin besteht, starte die App neu."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Achte darauf, dass deine Smartwatch mit dem Internet verbunden ist und sich dein Smartphone in der Nähe befindet."; @@ -12735,6 +12819,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "Zahlungsmethode hinzufügen"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "Zusätzliche Handhabung"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "Unterschrift eines Erwachsenen erforderlich"; @@ -12744,6 +12831,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (Grundgebühr)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "Klimaneutral"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "Adresse des Empfängers bearbeiten"; @@ -12762,6 +12852,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "Etikett kaufen · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "Zustellung am Samstag"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "Versenden aus"; @@ -13065,6 +13158,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Erneut versuchen"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "Änderungen rückgängig machen"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "Änderungen konnten nicht gespeichert werden. Bitte versuche es erneut."; diff --git a/WooCommerce/Resources/es.lproj/Localizable.strings b/WooCommerce/Resources/es.lproj/Localizable.strings index 948dc803e97..43fff8f38f3 100644 --- a/WooCommerce/Resources/es.lproj/Localizable.strings +++ b/WooCommerce/Resources/es.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-03 11:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-15 15:54:04+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: es */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% completado"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "Rango de fechas"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "Guernesey"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "Invitado"; - /* Country option for a site address. */ "Guinea" = "Guinea"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "Notas del pedido"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "Estado del pedido"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "Descripción corta"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "Mostrar pedidos"; - /* Button title for applying filters to a list of products. */ "Show Products" = "Mostrar productos"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "Total de productos y peso del paquete"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "Invitado"; + /* Country option for a site address. */ "Suriname" = "Surinam"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "Historial de filtros"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "Mostrar pedidos"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "Cliente"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "Canal de venta"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "Rango de fechas"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "Estado del pedido"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "Producto"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "Impuestos"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "Invitado"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "El escáner emula un teclado, por lo que a veces evitará que se muestre el teclado del software, por ejemplo, en búsquedas. Toca el icono del teclado para que se muestre de nuevo."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• Consulta las instrucciones del escáner de códigos de barras Bluetooth para configurar el modo HID."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• Consulta las instrucciones del escáner de códigos de barras Bluetooth para configurar el modo HID. Normalmente, esto requiere que escanees un código de barras especial del manual."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "Segundo: consulta las instrucciones del escáner de códigos de barras Bluetooth para configurar el modo H-I-D."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "Segundo: consulta las instrucciones del escáner de códigos de barras Bluetooth para configurar el modo H-I-D. Normalmente, esto requiere que escanees un código de barras especial del manual."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• Conecta tu escáner de códigos de barras en los ajustes de Bluetooth de iOS."; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "Tercero: conecta tu escáner de códigos de barras en los ajustes de Bluetooth de iOS."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "Volver"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "Hecho"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "Configuración del escáner de códigos de barras"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "Elige tu escáner de códigos de barras para empezar con el proceso de configuración."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "Siguiente"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "Instrucciones generales de configuración del escáner"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "Otros"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "Escáner de mano pequeño con base o soporte de carga"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "Escáner ergonómico con soporte"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "Escáner recomendado"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "Escáner por confirmar"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "Toca un producto para \n añadirlo al carrito"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "Finalizar compra"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "Borrar"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "Borrar carrito"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "Volver"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "¿Salir del modo de punto de venta?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "Salir de POS"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "Reintentar"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "Point of Sale debe estar habilitado para continuar. Habilita la función POS desde tu administrador de WordPress en Ajustes de WooCommerce > Ajustes avanzados > Funciones."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "Prueba a reiniciar la aplicación o comprueba tu conexión a Internet e inténtalo de nuevo."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "Prueba a reiniciar la aplicación para resolver este problema."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "Comprueba tu conexión a Internet y prueba a reiniciar la aplicación. Si el problema continúa, ponte en contacto con el servicio de soporte."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "El sistema de POS no está disponible para la moneda de tu tienda. Por el momento, solo admite %1$@. Comprueba los ajustes de moneda de tu tienda o ponte en contacto con el servicio de soporte para obtener ayuda."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "Point of Sale requiere iOS 17 o una versión posterior. Actualiza tu dispositivo a iOS 17 o a una versión posterior para usar esta función."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "Tu versión de WooCommerce no es compatible. El sistema POS requiere la versión %1$@ de WooCommerce o una superior. Actualiza WooCommerce a la última versión."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "Instala y activa el plugin WooCommerce desde tu administrador de WordPress."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "No se puede cargar"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "Revisa tu conexión a Internet e inténtalo de nuevo."; @@ -12553,11 +12634,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "Imagen del paquete"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "Abre Woo en tu iPhone, conecta tu tienda y mantén tu Apple Watch cerca"; +"watch.connect.messageUpdated" = "Abre Woo en tu iPhone, inicia sesión en tu tienda y mantén tu Apple Watch cerca."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "No funciona"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "Si el error continúa, reinicia la aplicación."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Asegúrate de que tu reloj esté conectado a Internet y tengas cerca tu teléfono."; @@ -12735,6 +12819,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "Añadir método de pago"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "Gestión adicional"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "Firma de un adulto obligatoria"; @@ -12744,6 +12831,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (cuota base)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "Huella de carbono cero"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "Editar destino"; @@ -12762,6 +12852,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "Etiqueta de compra · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "Entrega el sábado"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "Enviar desde"; @@ -13065,6 +13158,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Reintentar"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "Revertir cambios"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "No se pueden guardar los cambios. Inténtalo de nuevo."; diff --git a/WooCommerce/Resources/fr.lproj/Localizable.strings b/WooCommerce/Resources/fr.lproj/Localizable.strings index 8c651e28d46..774705e561f 100644 --- a/WooCommerce/Resources/fr.lproj/Localizable.strings +++ b/WooCommerce/Resources/fr.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-02 09:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-16 13:54:05+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: fr */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% terminé"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "Plage de dates"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "Guernesey"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "Invité"; - /* Country option for a site address. */ "Guinea" = "Guinée"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "Notes de commande"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "État de la commande"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "Courte description"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "Afficher les commandes"; - /* Button title for applying filters to a list of products. */ "Show Products" = "Afficher les produits"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "Somme des produits et poids du colis"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "Invité"; + /* Country option for a site address. */ "Suriname" = "Suriname"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "Historique des filtres"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "Afficher les commandes"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "Client"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "Canal de vente"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "Plage de dates"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "État de la commande"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "Produit"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "Taxes"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "Invité"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "Le scanner émule un clavier, il empêche donc parfois le clavier logiciel de s’afficher, par exemple dans la recherche. Appuyez sur l’icône du clavier pour le réafficher."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• Reportez-vous au mode d’emploi de votre scanner de code-barres Bluetooth pour configurer le mode HID."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• Reportez-vous au mode d’emploi de votre scanner de code-barres Bluetooth pour configurer le mode HID. Cela nécessite généralement de scanner un code-barres spécifique dans le manuel."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "Deuxièmement : reportez-vous au mode d’emploi de votre scanner de code-barres Bluetooth pour configurer le mode H-I-D."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "Deuxièmement : reportez-vous au mode d’emploi de votre scanner de code-barres Bluetooth pour configurer le mode H-I-D. Cela nécessite généralement de scanner un code-barres spécifique dans le manuel."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• Connectez votre scanner de code-barres dans les réglages Bluetooth d’iOS."; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "Troisièmement : connectez votre scanner de code-barres dans les réglages Bluetooth d’iOS."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "Retour"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "Terminé"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "Configuration du scanner de code-barres"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "Choisissez votre scanner de codes-barres pour commencer le processus de configuration."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "Suivant"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "Instructions générales de configuration du scanner"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "Autre"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "Petit scanner portatif avec station d’accueil ou socle de chargement"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "Scanner ergonomique avec support"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "Scanner recommandé"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "Scanner à confirmer"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "Appuyer sur un produit pour \n l’ajouter au panier"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "Découvrir"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "Effacer"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "Effacer le panier"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "Retour"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "Quitter le mode point de vente ?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "Quitter le PDV"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "Réessayer"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "Point de vente doit être activé pour continuer. Veuillez activer la fonctionnalité PDV depuis votre interface d’administration WordPress dans Réglages WooCommerce > Avancé > Fonctionnalités."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "Essayez de relancer l’application ou vérifiez votre connexion internet et réessayer."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "Essayez de relancer l’application pour résoudre ce problème."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "Vérifiez votre connexion Internet et essayez de relancer l’application. Si le problème persiste, veuillez contacter l’assistance."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "Le système PDV n’est pas disponible pour la devise de votre boutique. Il ne prend actuellement en charge que %1$@. Veuillez vérifier les réglages de devise de votre boutique ou contacter l’assistance pour obtenir de l’aide."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "Point de vente requiert iOS 17 ou version supérieure. Veuillez mettre à jour votre appareil vers iOS 17 ou une version supérieure pour utiliser cette fonctionnalité."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "Votre version de WooCommerce n’est pas prise en charge. Le système PDV nécessite WooCommerce version %1$@ ou supérieure. Veuillez procéder à la mise à jour de WooCommerce vers la dernière version."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "Installez et activez l’extension WooCommerce depuis votre interface d’administration WordPress."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "Chargement impossible"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "Veuillez vérifier votre connexion internet et réessayer."; @@ -12553,11 +12634,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "Photo de l’emballage"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "Ouvrez Woo sur votre iPhone, connectez votre boutique et tenez votre Watch à proximité"; +"watch.connect.messageUpdated" = "Ouvrez Woo sur votre iPhone, connectez votre boutique et tenez votre Apple Watch à proximité."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "Cela ne fonctionne pas"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "Si l’erreur persiste, relancez l’application."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Assurez-vous que votre montre est connectée à Internet et que votre téléphone se trouve à proximité."; @@ -12735,6 +12819,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "Ajouter un moyen de paiement"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "Prise en charge supplémentaire"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "Signature d’un adulte requise"; @@ -12744,6 +12831,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (frais de base)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "Neutre en carbone"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "Modifier la destination"; @@ -12762,6 +12852,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "Acheter l’étiquette · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "Livraison le samedi"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "Expédiée depuis"; @@ -13065,6 +13158,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Réessayer"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "Annuler les modifications"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "Impossible d’enregistrer les modifications. Veuillez réessayer."; diff --git a/WooCommerce/Resources/he.lproj/Localizable.strings b/WooCommerce/Resources/he.lproj/Localizable.strings index 9139b2cf0dc..99c52b34fe3 100644 --- a/WooCommerce/Resources/he.lproj/Localizable.strings +++ b/WooCommerce/Resources/he.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-02 16:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-16 15:54:04+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: he_IL */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% הושלמו"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express."; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "טווח תאריכים"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "גרנזי"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "אורח"; - /* Country option for a site address. */ "Guinea" = "גינאה"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "הערות להזמנה"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "מצב ההזמנה"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "תיאור קצר"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "להציג הזמנות"; - /* Button title for applying filters to a list of products. */ "Show Products" = "להציג את המוצרים"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "סיכום המוצרים ומשקל החבילה"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "אורח"; + /* Country option for a site address. */ "Suriname" = "סורינם"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "היסטוריית מסננים"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "להציג הזמנות"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "לקוח"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "ערוץ מכירות"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "טווח תאריכים"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "סטטוס הזמנה"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "מוצר"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "מיסים"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "אורח"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "הסורק מדמה מקלדת, לכן לעיתים הוא מונע הצגה של מקלדת התוכנה, למשל בחיפוש. יש להקיש על סמל המקלדת כדי להציג שוב אותה שוב."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• יש לעיין בהוראות של סורק הברקודים של Bluetooth כדי להגדיר את מצב HID."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• יש לעיין בהוראות של סורק הברקודים של Bluetooth כדי להגדיר את מצב HID. בדרך כלל, יש לסרוק ברקוד מיוחד במדריך למשתמש."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "שלב שני: יש לעיין בהוראות של סורק הברקודים של Bluetooth כדי להגדיר את מצב H-I-D."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "שלב שני: יש לעיין בהוראות של סורק הברקודים של Bluetooth כדי להגדיר את מצב H-I-D. בדרך כלל, יש לסרוק ברקוד מיוחד במדריך למשתמש."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• יש לחבר את סורק הברקוד בהגדרות של Bluetooth במערכת iOS."; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "שלב שלישי: יש לחבר את סורק הברקוד בהגדרות של Bluetooth במערכת iOS."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "חזרה"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "בוצע"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "הגדרה של סורק הברקוד"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "יש לבחור את סורק הברקוד שלך כדי להתחיל בתהליך ההגדרה."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "הבא"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "הוראות כלליות להגדרת הסורק"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "אחר"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "סורק ידני קטן עם עמדת טעינה או מעמד"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "סורק ארגונומי עם מעמד"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "סורק מומלץ"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "סורק TBC"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "יש להקיש על מוצר כדי \n להוסיף את המוצר לעגלה"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "מומלץ לנסות"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "למחוק"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "לנקות את עגלת הקניות"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "חזרה"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "האם לצאת ממצב 'נקודת מכירה'?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "לצאת מ-POS"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "לנסות שוב"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "כדי להמשיך, יש להפעיל את 'נקודת מכירה'. יש להפעיל את האפשרות של POS ממנהל המערכת של WordPress במקטע 'הגדרות WooCommerce' > 'מתקדם' > 'אפשרויות'."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "כדאי להפעיל מחדש את האפליקציה או לבדוק את החיבור לאינטרנט ולנסות שוב."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "כדאי להפעיל מחדש את האפליקציה כדי לפתור בעיה זו."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "יש לבדוק את החיבור לאינטרנט ולנסות להפעיל מחדש את האפליקציה. אם הבעיה נמשכת, ניתן ליצור קשר עם התמיכה."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "מערכת POS לא זמינה במטבע של החנות שלך. כרגע המערכת תומכת רק ב-%1$@. יש לבדוק את הגדרות המטבע של החנות או לפנות לתמיכה לקבלת סיוע."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "ל'נקודת מכירה' נדרשת מערכת iOS 17 ומעלה. יש לעדכן את המכשיר שלך ל-iOS 17 כדי להשתמש באפשרות הזאת."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "הגרסה של WooCommerce שברשותך לא נתמכת. למערכת POS נדרשת גרסת WooCommerce של %1$@ ומעלה. עליך לעדכן את WooCommerce לגרסה האחרונה."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "יש להתקין ולהפעיל את התוסף של WooCommerce ממנהל המערכת של WordPress."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "לא ניתן לטעון"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "יש לבדוק את החיבור לאינטרנט ולנסות שוב."; @@ -12553,11 +12634,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "תמונת האריזה"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "יש לפתוח את Woo ב-iPhone, להתחבר לחנות שלך ולקרב את השעון למכשיר"; +"watch.connect.messageUpdated" = "יש לפתוח את Woo ב-iPhone, להתחבר לחנות שלך ולקרב את השעון למכשיר."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "משהו לא עובד"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "אם השגיאה ממשיכה להופיע, כדאי להפעיל מחדש את האפליקציה."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "יש לוודא שהשעון מחובר לאינטרנט ושהטלפון נמצא בקרבת מקום."; @@ -12735,6 +12819,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "להוסיף אמצעי תשלום"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "טיפול נוסף"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "נדרשת חתימה של אדם מבוגר"; @@ -12744,6 +12831,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (עמלה בסיסית)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "ניטרליות פליטת פחמן"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "לערוך את היעד"; @@ -12762,6 +12852,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "לרכוש תווית · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "משלוח ביום שבת"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "מוצא למשלוח"; @@ -13065,6 +13158,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "לנסות שוב"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "לבטל את השינויים"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "אין אפשרות לשמור את השינויים. יש לנסות שוב."; diff --git a/WooCommerce/Resources/id.lproj/Localizable.strings b/WooCommerce/Resources/id.lproj/Localizable.strings index 5db22611318..75c974011e0 100644 --- a/WooCommerce/Resources/id.lproj/Localizable.strings +++ b/WooCommerce/Resources/id.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-01 09:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-16 11:54:04+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: id */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "Selesai %.0f%%"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "Rentang Tanggal"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "Guernsey"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "Tamu"; - /* Country option for a site address. */ "Guinea" = "Guinea"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "Catatan Pesanan"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "Status Pesanan"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "Deskripsi singkat"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "Tampilkan Pesanan"; - /* Button title for applying filters to a list of products. */ "Show Products" = "Tampilkan Produk"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "Jumlah produk dan berat kemasan"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "Tamu"; + /* Country option for a site address. */ "Suriname" = "Suriname"; @@ -10051,9 +10042,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "Riwayat penyaringan"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "Tampilkan Pesanan"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "Pelanggan"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "Kanal Penjualan"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "Rentang Tanggal"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "Status Pesanan"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "Produk"; @@ -10765,6 +10768,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "Pajak"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "Tamu"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11330,10 +11339,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "Pemindai beroperasi seperti input keyboard, sehingga terkadang kemunculan keyboard perangkat lunak mungkin terhalang, misalnya pada kolom pencarian. Ketuk ikon keyboard untuk menampilkannya lagi."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• Lihat petunjuk pemindai barcode Bluetooth untuk mengatur mode HID."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• Lihat petunjuk pemindai barcode Bluetooth untuk mengatur mode HID. Biasanya, Anda perlu memindai barcode khusus pada buku manual."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "Kedua: Lihat petunjuk pemindai barcode Bluetooth untuk mengatur mode H-I-D."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "Kedua: Lihat petunjuk pemindai barcode Bluetooth untuk mengatur mode H-I-D. Biasanya, Anda perlu memindai barcode khusus pada buku manual."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• Hubungkan pemindai barcode Anda di pengaturan Bluetooth pada iOS."; @@ -11341,6 +11350,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "Ketiga: Hubungkan pemindai barcode Anda di pengaturan Bluetooh pada iOS."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "Kembali"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "Selesai"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "Penyiapan Pemindai Barcode"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "Pilih pemindai barcode untuk memulai proses penyiapan."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "Berikutnya"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "Petunjuk penyiapan pemindai umum"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "Lainnya"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "Pemindai genggam kecil dengan dok atau dudukan untuk pengisian daya"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "Pemindai ergonomis dengan dudukan"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "Pemindai yang direkomendasikan"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "TBC Pemindai"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "Ketuk produk ke \n tambahkan ke keranjang"; @@ -11350,8 +11398,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "Keluar"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "Hapus"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "Hapus keranjang"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "Kembali"; @@ -11374,6 +11422,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "Keluar dari mode Point of Sale?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "Keluar dari POS"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "Coba lagi"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "Point of Sale harus diaktifkan untuk melanjutkan. Aktifkan fitur POS dari admin WordPress Anda di pengaturan WooCommerce > Lanjutan > Fitur."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "Coba luncurkan ulang aplikasi atau periksa koneksi internet Anda dan coba lagi."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "Coba luncurkan ulang aplikasi untuk mengatasi masalah ini."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "Periksa sambungan internet, lalu coba luncurkan ulang aplikasi. Jika kendala ini terus berlanjut, hubungi dukungan."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "Sistem POS tidak tersedia untuk mata uang toko Anda. Saat ini hanya mendukung %1$@. Harap periksa pengaturan mata uang toko Anda atau hubungi dukungan untuk mendapatkan bantuan."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "Point of Sale memerlukan iOS 17 atau yang lebih baru. Perbarui perangkat Anda ke iOS 17+ untuk menggunakan fitur ini."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "Versi WooCommerce Anda tidak didukung. Sistem POS memerlukan WooCommerce versi %1$@ atau yang lebih tinggi. Harap perbarui WooCommerce ke versi terbaru."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "Instal dan aktifkan plugin WooCommerce dari admin WordPress Anda."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "Tidak dapat memuat"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "Harap periksa koneksi internet Anda dan coba lagi."; @@ -12550,11 +12631,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "Foto kemasan"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "Buka Woo di iPhone, hubungkan toko, dan dekatkan jam tangan Anda"; +"watch.connect.messageUpdated" = "Buka Woo di iPhone, login ke toko, dan dekatkan jam tangan Anda."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "Tidak bisa"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "Jika error terus berlanjut, luncurkan ulang aplikasi."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Pastikan jam tangan Anda terhubung dengan internet dan Anda tidak jauh dari telepon."; @@ -12732,6 +12816,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "Tambahkan metode pembayaran"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "Penanganan Tambahan"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "Tanda Tangan Orang Dewasa Wajib Diisi"; @@ -12741,6 +12828,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (biaya dasar)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "Karbon Netral"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "Edit Tujuan"; @@ -12759,6 +12849,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "Beli Label · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "Pengiriman Sabtu"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "Dikirim dari"; @@ -13062,6 +13155,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Coba lagi"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "Kembalikan perubahan"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "Tidak dapat menyimpan perubahan. Harap coba lagi."; diff --git a/WooCommerce/Resources/it.lproj/Localizable.strings b/WooCommerce/Resources/it.lproj/Localizable.strings index 2193a1ed342..8f2bb5e3153 100644 --- a/WooCommerce/Resources/it.lproj/Localizable.strings +++ b/WooCommerce/Resources/it.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-02 15:23:02+0000 */ +/* Translation-Revision-Date: 2025-07-16 11:54:04+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: it */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% completato"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "Intervallo di date"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "Guernsey"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "Ospite"; - /* Country option for a site address. */ "Guinea" = "Guinea"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "Note ordine"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "Stato dell'ordine"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "Breve descrizione"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "Mostra ordini"; - /* Button title for applying filters to a list of products. */ "Show Products" = "Mostra prodotti"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "Somma del peso di prodotti e pacchetto"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "Ospite"; + /* Country option for a site address. */ "Suriname" = "Suriname"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "Filtra cronologia"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "Mostra ordini"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "Cliente"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "Canale di vendita"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "Intervallo di date"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "Stato dell'ordine"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "Prodotto"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "Imposte"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "Ospite"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "Lo scanner emula una tastiera, quindi a volte impedisce la visualizzazione della tastiera virtuale, ad esempio nella ricerca. Tocca l'icona della tastiera per mostrarla di nuovo."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• Per impostare la modalità HID, consulta le istruzioni dello scanner di codici a barre Bluetooth."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• Per impostare la modalità HID, consulta le istruzioni dello scanner di codici a barre Bluetooth. Solitamente è richiesta la scansione di un codice a barre speciale nel manuale."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "Secondo punto: per impostare la modalità H-I-D, consulta le istruzioni dello scanner di codici a barre Bluetooth."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "Secondo punto: per impostare la modalità H-I-D, consulta le istruzioni dello scanner di codici a barre Bluetooth. Solitamente è richiesta la scansione di un codice a barre speciale nel manuale."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• Connetti lo scanner di codici a barre nelle impostazioni Bluetooth di iOS."; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "Terzo punto: connetti lo scanner di codici a barre nelle impostazioni Bluetooth di iOS."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "Indietro"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "Fatto"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "Configurazione dello scanner di codici a barre"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "Scegli uno scanner di codici a barre per iniziare il processo di configurazione."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "Avanti"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "Istruzioni generali per la configurazione dello scanner"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "Altro"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "Piccolo scanner portatile con supporto di ricarica"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "Scanner ergonomico con supporto"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "Scanner consigliato"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "Scanner da confermare"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "Tocca un prodotto per \n aggiungerlo al carrello"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "Pagamento"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "Cancella"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "Rimuovi tutti gli articoli dal carrello"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "Indietro"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "Uscire dalla modalità punto vendita?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "Esci da POS"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "Riprova"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "Per procedere, il punto vendita deve essere abilitato. Attiva la funzionalità POS dalla pagina di amministrazione di WordPress in Impostazioni WooCommerce > Avanzate > Funzionalità."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "Prova a riavviare l'app o controlla la connessione a Internet e riprova."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "Prova a riavviare l'app per risolvere questo problema."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "Controlla la connessione a Internet e prova a riavviare l'app. Se il problema persiste, contatta il supporto."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "Il sistema POS non è disponibile per la valuta del tuo negozio. Al momento, le uniche valute supportate sono %1$@. Controlla le impostazioni della valuta del negozio o contatta il supporto per ricevere assistenza."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "Il punto vendita richiede iOS 17 o versione successiva. Aggiorna il dispositivo a iOS 17+ per utilizzare questa funzionalità."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "La tua versione di WooCommerce non è supportata. Il sistema POS richiede la versione %1$@ di WooCommerce o successiva. Effettua l'aggiornamento alla versione più recente di WooCommerce."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "Installa e attiva il plugin WooCommerce dalla pagina di amministrazione di WordPress."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "Impossibile caricare"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "Controlla la connessione a Internet e riprova."; @@ -12553,11 +12634,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "Foto del pacco"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "Apri Woo sull'iPhone, connetti il tuo negozio e tieni vicino il tuo orologio"; +"watch.connect.messageUpdated" = "Apri Woo sull'iPhone, accedi al negozio e tieni vicino il tuo orologio."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "Non funziona"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "Se l'errore persiste, riavvia l'app."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Assicurarsi che l'orologio sia collegato a Internet e che il telefono sia nelle vicinanze."; @@ -12735,6 +12819,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "Aggiungi metodo di pagamento"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "Gestione aggiuntiva"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "Firma di un adulto richiesta"; @@ -12744,6 +12831,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (tariffa base)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "Zero emissioni di carbonio"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "Modifica destinazione"; @@ -12762,6 +12852,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "Acquista etichetta · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "Consegna il sabato"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "Spedisci da"; @@ -13065,6 +13158,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Riprova"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "Annulla le modifiche"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "Impossibile salvare le modifiche. Riprova."; diff --git a/WooCommerce/Resources/ja.lproj/Localizable.strings b/WooCommerce/Resources/ja.lproj/Localizable.strings index 0a8af28b90b..075d91a849c 100644 --- a/WooCommerce/Resources/ja.lproj/Localizable.strings +++ b/WooCommerce/Resources/ja.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-01 09:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-15 11:54:05+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: ja_JP */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% 完了"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "日付の範囲"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "ガーンジー"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "ゲスト"; - /* Country option for a site address. */ "Guinea" = "ギニア"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "注文メモ"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "注文ステータス"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "簡単な説明"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "注文を表示"; - /* Button title for applying filters to a list of products. */ "Show Products" = "商品を表示"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "商品と荷物の重量の合計"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "ゲスト"; + /* Country option for a site address. */ "Suriname" = "スリナム"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "履歴をフィルター"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "注文を表示"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "顧客"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "販売経路"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "日付の範囲"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "注文ステータス"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "商品"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "税"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "ゲスト"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "スキャナーはキーボードをエミュレートするため、ソフトウェアのキーボードが表示されない場合があります (検索内など)。 キーボードアイコンをタップして、再表示します。"; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• Bluetooth バーコードスキャナーの手順を参照して HID モードを設定します。"; +"pos.barcodeInfoModal.secondaryMessage.2" = "• Bluetooth バーコードスキャナーの手順を参照して HID モードを設定します。 これは通常、マニュアルの特別なバーコードをスキャンする必要があります。"; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "2: Bluetooth バーコードスキャナーの手順を参照して H-I-D モードを設定します。"; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "2: Bluetooth バーコードスキャナーの手順を参照して H-I-D モードを設定します。 これは通常、マニュアルの特別なバーコードをスキャンする必要があります。"; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• iOS Bluetooth 設定でバーコードスキャナーを接続します。"; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "3: iOS Bluetooth 設定でバーコードスキャナーを接続します。"; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "戻る"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "完了"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "バーコードスキャナーのセットアップ"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "バーコードスキャナーを選択してセットアッププロセスを開始します。"; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "次"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "一般的なスキャナーの設定手順"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "その他"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "小型ハンドヘルドスキャナー (充電ドックまたはスタンド付き)"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "ソケット S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "エルゴノミックスキャナー (スタンド付き)"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "スター精密 BSH-20"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "おすすめのスキャナー"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "スキャナー未確定"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "商品をタップして\n お買い物カゴに追加します"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "購入手続き"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "消去"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "カートをクリア"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "戻る"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "販売時点管理モードを終了しますか ?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "POS を終了"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "再試行"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "続行するには POS を有効にする必要があります。 「WooCommerce 設定」>「高度な設定」>「機能」の WordPress 管理画面から POS 機能を有効にしてください。"; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "アプリを再起動するか、ネットワーク接続を確認してもう一度お試しください。"; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "この問題を解決するには、アプリを再起動してみてください。"; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "インターネット接続を確認してアプリを再起動してください。問題が解消されない場合はサポートにご連絡ください。"; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "POS システムはストアの通貨では利用できません。 現在対応しているのは %1$@のみです。 ストアの通貨設定を確認するか、サポートにお問い合わせください。"; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "POS には iOS 17以降が必要です。 この機能を使用するにはデバイスを iOS 17以降に更新してください。"; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "お使いの WooCommerce バージョンはサポートされていません。 POS システムには WooCommerce バージョン %1$@以上が必要です。 最新バージョンの WooCommerce に更新してください。"; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "WordPress 管理画面からWooCommerce プラグインをインストールして有効化します。"; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "読み込めません"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "ネットワーク接続を確認して、もう一度お試しください。"; @@ -12553,11 +12634,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "パッケージ写真"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "iPhoneで Woo を開き、ストアに接続すれば、Watch を手軽にお使いいただけます"; +"watch.connect.messageUpdated" = "iPhoneで Woo を開き、ストアにログインすると、Watch を手軽にお使いいただけます"; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "作動していません"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "エラーが解消されない場合はアプリを再起動してください。"; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "ウォッチがインターネットに接続されており、スマートフォンが近くにあることを確認してください。"; @@ -12735,6 +12819,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "支払い方法を追加"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "追加の処理"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "成年の署名が必要"; @@ -12744,6 +12831,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (基本料金)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "カーボンニュートラル"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "配送先を編集"; @@ -12762,6 +12852,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "ラベルを購入 · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "土曜日の配達"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "出荷元"; @@ -13065,6 +13158,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "再試行"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "変更を元に戻す"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "変更内容を保存できません。 もう一度お試しください。"; diff --git a/WooCommerce/Resources/ko.lproj/Localizable.strings b/WooCommerce/Resources/ko.lproj/Localizable.strings index f20a565c86e..5cd529bcc19 100644 --- a/WooCommerce/Resources/ko.lproj/Localizable.strings +++ b/WooCommerce/Resources/ko.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-01 09:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-16 09:54:04+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: ko_KR */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "%1$@ › %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% 완료"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "날짜 범위"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "건지"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "비회원"; - /* Country option for a site address. */ "Guinea" = "기니"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "주문 메모"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "주문 상태"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "간단한 설명"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "주문 표시"; - /* Button title for applying filters to a list of products. */ "Show Products" = "제품 표시"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "제품 및 패키지 무게 합계"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "비회원"; + /* Country option for a site address. */ "Suriname" = "수리남"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "필터 기록"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "주문 표시"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "고객"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "판매 채널"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "날짜 범위"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "주문 상태"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "상품"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "세금"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "비회원"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "스캐너에서는 키보드를 에뮬레이트하므로 소프트웨어 키보드가 표시되지 않을 때(예: 검색 중)도 있습니다. 다시 표시하려면 키보드 아이콘을 누릅니다."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• 블루투스 바코드 스캐너의 지침을 참조하여 HID 모드를 설정합니다."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• 블루투스 바코드 스캐너의 지침을 참조하여 HID 모드를 설정합니다. 일반적으로 매뉴얼에 있는 특수 바코드를 스캔해야 합니다."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "둘째: 블루투스 바코드 스캐너의 지침을 참조하여 H-I-D 모드를 설정합니다."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "둘째: 블루투스 바코드 스캐너의 지침을 참조하여 H-I-D 모드를 설정합니다. 일반적으로 매뉴얼에 있는 특수 바코드를 스캔해야 합니다."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• iOS 블루투스 설정에서 바코드 스캐너를 연결합니다."; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "셋째: iOS 블루투스 설정에서 바코드 스캐너를 연결합니다."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "뒤로"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "완료"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "바코드 스캐너 설정"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "설정 프로세스를 시작하려면 바코드 스캐너를 선택하세요."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "다음"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "일반 스캐너 설정 지침"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "기타"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "충전 도크 또는 스탠드가 있는 소형 휴대용 스캐너"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "스탠드가 있는 인체공학적 스캐너"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "추천 스캐너"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "스캐너 TBC"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "상품을 눌러 \n 장바구니에 추가"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "체크아웃"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "지우기"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "장바구니 지우기"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "뒤로"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "판매 지점 모드를 종료할까요?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "POS 종료"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "다시 시도"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "계속하려면 판매 지점을 활성화해야 합니다. 우커머스 설정 > 고급 > 기능에서 워드프레스 관리자의 POS 기능을 활성화하세요."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "앱을 다시 시작해 보거나 인터넷 연결을 확인하고 다시 시도해 보세요."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "앱을 다시 시작하여 이 문제를 해결해 보세요."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "인터넷 연결을 확인하고 앱을 다시 시작해 보세요. 문제가 계속 발생하면 지원을 문의해 주세요."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "스토어의 통화에는 POS 시스템을 사용할 수 없습니다. 현재 %1$@만 지원됩니다. 스토어 통화 설정을 확인하거나 도움이 필요하면 지원을 문의해 주세요."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "판매 지점에는 iOS 17 이상이 필요합니다. 이 기능을 사용하려면 기기를 iOS 17 이상으로 업데이트하세요."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "회원님의 우커머스 버전은 지원되지 않습니다. POS 시스템에는 우커머스 버전 %1$@ 이상이 필요합니다. 우커머스를 최신 버전으로 업데이트하세요."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "워드프레스 관리자에서 우커머스 플러그인을 설치하고 활성화하세요."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "로드할 수 없음"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "인터넷 연결을 확인하고 다시 시도하세요."; @@ -12553,11 +12634,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "포장 사진"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "iPhone에서 Woo를 열고 스토어에 연결한 다음 Watch를 가까이에 두세요."; +"watch.connect.messageUpdated" = "iPhone에서 Woo를 열고, 스토어에 로그인하고, Watch를 가까이에 두세요."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "작동 안 함"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "오류가 계속 발생하면 앱을 다시 시작하세요."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Watch를 인터넷에 연결하고 휴대폰을 근처에 두세요."; @@ -12735,6 +12819,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "결제 수단 추가"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "추가 처리"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "성인 서명 필수"; @@ -12744,6 +12831,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@(기본 수수료)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "탄소 중립"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "목적지 편집"; @@ -12762,6 +12852,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "레이블 구매 · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "토요일 배송"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "출발지"; @@ -13065,6 +13158,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "다시 시도"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "변경 사항 되돌리기"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "변경 사항을 저장할 수 없습니다. 다시 시도해 주세요."; diff --git a/WooCommerce/Resources/nl.lproj/Localizable.strings b/WooCommerce/Resources/nl.lproj/Localizable.strings index a4cb2d108dd..07ded9ef7a9 100644 --- a/WooCommerce/Resources/nl.lproj/Localizable.strings +++ b/WooCommerce/Resources/nl.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-02 11:54:05+0000 */ +/* Translation-Revision-Date: 2025-07-17 11:54:03+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: nl */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% voltooid"; @@ -1941,7 +1938,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "Datumbereik"; @@ -3027,10 +3023,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "Guernsey"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "Gast"; - /* Country option for a site address. */ "Guinea" = "Guinea"; @@ -4485,8 +4477,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "Berichten van bestelling"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "Bestelstatus"; /* Create Shipping Label form -> Order Total label @@ -6054,9 +6045,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "Korte beschrijving"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "Bestellingen weergeven"; - /* Button title for applying filters to a list of products. */ "Show Products" = "Producten tonen"; @@ -6378,6 +6366,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "Totaalaantal producten en gewicht van pakket"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "Gast"; + /* Country option for a site address. */ "Suriname" = "Suriname"; @@ -10048,9 +10039,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "Filtergeschiedenis"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "Bestellingen weergeven"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "Klant"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "Verkoopkanaal"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "Datumbereik"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "Bestelstatus"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "Product"; @@ -10762,6 +10765,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "Belastingen"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "Gast"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11327,10 +11336,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "De scanner simuleert een toetsenbord, dus soms wordt het softwaretoetsenbord niet weergegeven, bijvoorbeeld in de zoekbalk. Tik op het toetsenbordpictogram om het opnieuw weer te geven."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• Raadpleeg de instructies van je Bluetooth-streepjescodescanner om de HID-modus in te stellen."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• Raadpleeg de instructies van je Bluetooth-streepjescodescanner om de HID-modus in te stellen. Dit vereist meestal het scannen van een speciale streepjescode in de handleiding."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "Stap 2: Raadpleeg de instructies van je Bluetooth-streepjescodescanner om de HID-modus in te stellen."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "Stap twee: Raadpleeg de instructies van je Bluetooth-streepjescodescanner om de HID-modus in te stellen. Dit vereist meestal het scannen van een speciale streepjescode in de handleiding."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• Verbind je streepjescodescanner in de Bluetooth-instellingen van iOS."; @@ -11338,6 +11347,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "Stap 3: Verbind je streepjescodescanner in de Bluetooth-instellingen van iOS."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "Terug"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "Klaar"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "Instellen streepjescodescanner"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "Kies je streepjescodescanner om aan de slag te gaan met het instelproces."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "Volgende"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "Algemene instructies voor het instellen van de scanner"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "Overige"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "Kleine handscanner met een oplaadstation of -standaard"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "Ergonomische scanner met een standaard"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "Aanbevolen scanner"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "Scanner TBC"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "Tik op een product om het \n toe te voegen aan de winkelwagen"; @@ -11347,8 +11395,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "Afrekenen"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "Wissen"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "Winkelwagen leegmaken"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "Terug"; @@ -11371,6 +11419,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "Verkooppuntmodus afsluiten?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "POS afsluiten"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "Opnieuw proberen"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "Point of Sale moet ingeschakeld zijn om door te gaan. Schakel de POS-functie in vanuit je WordPress-beheer onder WooCommerce-instellingen > Geavanceerd > Functies."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "Probeer de app opnieuw te starten of controleer je internetverbinding en probeer het opnieuw."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "Probeer de app opnieuw te starten om dit probleem op te lossen."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "Controleer je internetverbinding en probeer de app opnieuw te starten. Neem contact op met de ondersteuning als het probleem zich blijft voordoen."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "Het POS-systeem is niet beschikbaar voor de valuta van je winkel. Het ondersteunt momenteel alleen %1$@. Controleer de valuta-instellingen van je winkel of neem contact op met de ondersteuning voor hulp."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "Point of Sale vereist iOS 17 of hoger. Werk je apparaat bij naar iOS 17 of hoger om deze functie te kunnen gebruiken."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "Je WooCommerce-versie wordt niet ondersteund. Het POS-systeem vereist WooCommerce-versie %1$@ of hoger. Werk WooCommerce bij naar de nieuwste versie."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "Installeer en activeer de WooCommerce-plugin vanuit je WordPress-beheer."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "Kan niet laden"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "Controleer je internetverbinding en probeer het opnieuw."; @@ -12547,11 +12628,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "Pakketfoto"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "Open Woo op je iPhone, koppel je winkel en houd je Watch dichtbij"; +"watch.connect.messageUpdated" = "Open Woo op je iPhone, log in bij je winkel en houd je Watch bij de hand."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "Het werkt niet"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "Start de app opnieuw als de fout zich blijft voordoen."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Zorg dat je horloge is verbonden met het internet en dat je telefoon in de buurt is."; @@ -12729,6 +12813,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "Betaalmethode toevoegen"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "Extra verwerking"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "Handtekening volwassene vereist"; @@ -12738,6 +12825,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (basistarief)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "Koolstofneutraal"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "Adres van bestemming bewerken"; @@ -12756,6 +12846,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "Label aanschaffen · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "Zaterdaglevering"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "Verzenden van"; @@ -13059,6 +13152,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Opnieuw proberen"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "Wijzigingen ongedaan maken"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "Opslaan van wijzigingen mislukt. Probeer het nog eens."; diff --git a/WooCommerce/Resources/pt-BR.lproj/Localizable.strings b/WooCommerce/Resources/pt-BR.lproj/Localizable.strings index a02f073f481..dffc7b7ccd7 100644 --- a/WooCommerce/Resources/pt-BR.lproj/Localizable.strings +++ b/WooCommerce/Resources/pt-BR.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-06-30 21:54:05+0000 */ +/* Translation-Revision-Date: 2025-07-14 17:54:04+0000 */ /* Plural-Forms: nplurals=2; plural=(n > 1); */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: pt_BR */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% concluído"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "Período"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "Guernsey"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "Visitante"; - /* Country option for a site address. */ "Guinea" = "Guiné"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "Observações do pedido"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "Status do pedido"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "Breve descrição"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "Mostrar pedidos"; - /* Button title for applying filters to a list of products. */ "Show Products" = "Mostrar produtos"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "Soma dos produtos e peso do pacote"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "Visitante"; + /* Country option for a site address. */ "Suriname" = "Suriname"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "Filtrar histórico"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "Mostrar pedidos"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "Cliente"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "Canal de vendas"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "Intervalo de datas"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "Status do pedido"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "Produto"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "Impostos"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "Visitante"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "O scanner simula um teclado, então algumas vezes ele impedirá que o software do teclado seja exibido, como na pesquisa. Toque no ícone do teclado para mostrá-lo novamente."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• Consulte as instruções do scanner de código de barras Bluetooth para definir o modo HID."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• Consulte as instruções do scanner de código de barras Bluetooth para definir o modo HID. Isso geralmente requer a leitura de um código de barras especial no manual."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "Segundo: consulte as instruções do scanner de código de barras Bluetooth para definir o modo H-I-D."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "Segundo: consulte as instruções do scanner de código de barras Bluetooth para definir o modo HID. Isso geralmente requer a leitura de um código de barras especial no manual."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• Conecte seu scanner de código de barras nas configurações Bluetooth do iOS."; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "Terceiro: conecte seu scanner de código de barras nas configurações Bluetooth do iOS."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "Voltar"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "Concluído"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "Configuração do scanner de código de barras"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "Escolha seu scanner de código de barras para começar o processo de configuração."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "Avançar"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "Instruções gerais de configuração do scanner"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "Outro"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "Scanner portátil pequeno com um suporte ou base de carregamento"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "SocketScan S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "Scanner ergonômico com suporte"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "Scanner recomendado"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "Scanner TBC"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "Toque no produto para\n adicionar ao carrinho"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "Finalizar compra"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "Limpar"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "Limpar carrinho"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "Voltar"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "Sair do modo de ponto de venda?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "Sair do PDV"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "Tentar novamente"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "O ponto de venda deve estar ativado para prosseguir. Ative a funcionalidade de PDV pelo WordPress em Configurações do WooCommerce > Avançado > Funcionalidades."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "Tente reiniciar o aplicativo ou verifique sua conexão com a Internet e tente novamente."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "Tente reiniciar o aplicativo para resolver esse problema."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "Verifique sua conexão com a Internet e tente reiniciar o aplicativo. Se o problema persistir, entre em contato com o suporte."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "O sistema PDV não está disponível para a moeda da sua loja. No momento, ele é compatível apenas com %1$@. Verifique as configurações de moeda da sua loja ou entre em contato com o suporte para obter ajuda."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "O ponto de venda requer o iOS 17 ou posterior. Atualize seu dispositivo para uma dessas versões para usar esta funcionalidade."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "Sua versão do WooCommerce não é compatível. O sistema PDV requer o WooCommerce na versão %1$@ ou posterior. Atualize o WooCommerce para a versão mais recente."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "Instale e ative o plugin do WooCommerce pela administração do WordPress."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "Não foi possível carregar"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "Verifique sua conexão com a Internet e tente novamente."; @@ -12553,11 +12634,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "Foto do pacote"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "Abra o Woo no seu iPhone, conecte sua loja e aproxime o seu smartwatch"; +"watch.connect.messageUpdated" = "Abra o Woo no seu iPhone, faça login na sua loja e aproxime o seu Apple Watch."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "Não está funcionando"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "Se o erro persistir, reinicie o aplicativo."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Verifique se o seu relógio está conectado à Internet e se o seu celular está próximo."; @@ -12735,6 +12819,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "Adicionar forma de pagamento"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "Manuseio extra"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "Assinatura de um adulto obrigatória"; @@ -12744,6 +12831,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (taxa básica)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "Neutralidade de carbono"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "Editar destino"; @@ -12762,6 +12852,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "Comprar etiqueta · US%1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "Entrega no sábado"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "Remetente"; @@ -13065,6 +13158,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Tentar novamente"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "Reverter alterações"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "Não foi possível salvar as mudanças. Tente novamente."; diff --git a/WooCommerce/Resources/ru.lproj/Localizable.strings b/WooCommerce/Resources/ru.lproj/Localizable.strings index 93a73ae924c..cd3c460f9cd 100644 --- a/WooCommerce/Resources/ru.lproj/Localizable.strings +++ b/WooCommerce/Resources/ru.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-01 16:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-16 13:54:04+0000 */ /* Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: ru */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "Выполнено %.0f%%"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "Период"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "Гернси"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "Гость"; - /* Country option for a site address. */ "Guinea" = "Гвинея"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "Примечания к заказу"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "Статус заказа:"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "Короткое описание"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "Показать заказы"; - /* Button title for applying filters to a list of products. */ "Show Products" = "Показать продукты"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "Сумма всех товаров и вес посылки"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "Гость"; + /* Country option for a site address. */ "Suriname" = "Суринам"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "История фильтров"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "Показать заказы"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "Клиент"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "Канал продаж"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "Диапазон дат"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "Статус заказа"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "Товар"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "Налоги"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "Гость"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "Сканер эмулирует клавиатуру, поэтому время от времени он препятствует отображению программной клавиатуры, например при поиске. Коснитесь значка клавиатуры, чтобы она снова отображалась."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• Чтобы установить режим HID, следуйте инструкциям сканера штрихкодов Bluetooth."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• Чтобы установить режим HID, обратитесь к инструкциям по эксплуатации сканера штрихкодов Bluetooth. Обычно для этого требуется отсканировать специальный штрихкод в руководстве."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "Второе: чтобы установить режим H-I-D, следуйте инструкциям сканера штрихкодов Bluetooth."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "Второе: чтобы установить режим H-I-D, обратитесь к инструкциям по эксплуатации сканера штрихкодов Bluetooth. Обычно для этого требуется отсканировать специальный штрихкод в руководстве."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• Подключите сканер штрихкодов в настройках Bluetooth iOS."; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "Третье: подключите сканер штрихкодов в настройках Bluetooth iOS."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "Назад"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "Готово"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "Настройка сканера штрихкодов"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "Выберите сканер штрихкодов, чтобы начать процесс настройки."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "Далее"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "Общие инструкции по настройке сканера"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "Другой"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "Небольшой портативный сканер с зарядной док-станцией или подставкой"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "Эргономичный сканер с подставкой"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "Рекомендуемый сканер"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "Сканер TBC"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "Нажмите на товар, чтобы \n добавить его в корзину"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "Оформить"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "Очистить"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "Очистить корзину"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "Назад"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "Выйти из режима «Пункт продажи»?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "Выйти из режима POS"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "Повторить"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "Чтобы продолжать, необходимо активировать режим Point of Sale (Пункт продажи). Включите режим POS в консоли WordPress в разделе «Настройки WooCommerce > Расширенные > Функции»."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "Попробуйте перезапустить приложение или проверьте подключение к Интернету и повторите попытку."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "Попробуйте перезапустить приложение, чтобы решить эту проблему."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "Проверьте подключение к Интернету и попробуйте перезапустить приложение. Если решить проблему не удалось, обратитесь в службу поддержки."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "Система POS не поддерживает валюту вашего магазина. В настоящее время поддерживается только %1$@. Проверьте настройки валюты магазина или обратитесь за помощью в службу поддержки."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "Для работы Point of Sale требуется iOS 17 или более поздней версии. Чтобы использовать эту функцию, обновите ваше устройство до версии iOS 17 или более поздней."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "Ваша версия WooCommerce не поддерживается. Для работы системы POS требуется WooCommerce версии %1$@ или более поздней. Обновите WooCommerce до последней версии."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "Установите и активируйте плагин WooCommerce через WordPress admin."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "Не удалось загрузить"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "Проверьте подключение к Интернету и повторите попытку."; @@ -12550,11 +12631,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "Фотография упаковки"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "Откройте приложение Woo на iPhone, подключите ваш магазин и держите часы поблизости."; +"watch.connect.messageUpdated" = "Откройте приложение Woo на iPhone, войдите в свой магазин и держите часы поблизости."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "Не работает"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "Если ошибка повторится, перезапустите приложение."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Удостоверьтесь, что часы подключены к Интернету, а телефон находится рядом."; @@ -12732,6 +12816,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "Добавить способ оплаты"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "Дополнительная обработка"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "Требуется подпись совершеннолетнего лица"; @@ -12741,6 +12828,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (базовый сбор)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "Углеродно-нейтральный"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "Изменить адрес назначения"; @@ -12759,6 +12849,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "Купить этикетку · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "Доставка в субботу"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "Доставить из"; @@ -13062,6 +13155,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Повторить"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "Отменить изменения"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "Не удалось сохранить изменения. Повторите попытку."; diff --git a/WooCommerce/Resources/sv.lproj/Localizable.strings b/WooCommerce/Resources/sv.lproj/Localizable.strings index d26a2845260..03e6051d8ae 100644 --- a/WooCommerce/Resources/sv.lproj/Localizable.strings +++ b/WooCommerce/Resources/sv.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-02 13:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-16 13:54:04+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: sv_SE */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% slutfört"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "Datumintervall"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "Guernsey"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "Gäst"; - /* Country option for a site address. */ "Guinea" = "Guinea"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "Ordernoteringar"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "Orderstatus"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "Kort beskrivning"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "Visa beställningar"; - /* Button title for applying filters to a list of products. */ "Show Products" = "Visa produkter"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "Summa av produkter och förpackningsvikt"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "Gäst"; + /* Country option for a site address. */ "Suriname" = "Surinam"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "Filtrera historik"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "Visa beställningar"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "Kund"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "Försäljningskanal"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "Datumintervall"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "Beställningsstatus"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "Produkt"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "Momser"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "Gäst"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "Skannern emulerar ett tangentbord, så ibland kommer det att förhindra programvaran tangentbordet från att visas, t.ex. i sökningar. Tryck på tangentbordsikonen för att visa det igen."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• Se instruktionerna för Bluetooth-streckkodsläsaren för att ställa in HID-läge."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• Se instruktionerna för Bluetooth-streckkodsskannern för att ställa in HID-läge. Detta kräver vanligtvis skanning av en speciell streckkod i manualen."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "Två: Se instruktionerna för Bluetooth-streckkodsläsaren för att ställa in HID-läge."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "Två: Se instruktionerna för Bluetooth-streckkodsskannern för att ställa in HID-läge. Detta kräver vanligtvis skanning av en speciell streckkod i manualen."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• Anslut streckkodsskannern i Bluetooth-inställningarna för iOS."; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "Tre: Anslut streckkodsskannern i Bluetooth-inställningarna för iOS."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "Tillbaka"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "Klar"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "Konfiguration av streckkodsskanner"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "Välj din streckkodsskanner för att komma igång med konfigurationsprocessen."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "Nästa"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "Allmänna instruktioner för skannerkonfiguration"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "Annan"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "Liten handhållen skanner med laddningsdocka eller stativ"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "Ergonomisk skanner med stativ"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "Rekommenderad skanner"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "TBC-skanner"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "Klicka på en produkt för att \n lägga till den i varukorgen"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "Gå till kassa"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "Rensa"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "Rensa varukorg"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "Tillbaka"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "Lämna Försäljningsplatsläge?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "Avsluta POS"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "Försök igen"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "Försäljningsplats måste vara aktiverat för att fortsätta. Aktivera POS-funktionen från din WordPress-adminpanel under WooCommerce-inställningar > Avancerat > Funktioner."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "Prova starta om appen eller kontrollera din internetanslutning och försök igen."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "Prova starta om appen för att lösa detta problem."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "Kontrollera din internetanslutning och prova starta om appen. Om problemet kvarstår, kontakta support."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "POS-systemet är inte tillgängligt för din butiks valuta. Det stöder för närvarande endast %1$@. Kontrollera din butiks valutainställningar eller kontakta supporten för att få hjälp."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "Försäljningsplats kräver iOS 17 eller senare. Uppdatera din enhet till iOS 17+ för att använda denna funktion."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "Din WooCommerce-version stöds inte. POS-systemet kräver WooCommerce-version %1$@ eller senare. Uppdatera till den senaste versionen av WooCommerce."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "Installera och aktivera WooCommerce-tillägget från din WordPress-adminpanel."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "Kan inte ladda"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "Kontrollera din internetanslutning och försök igen."; @@ -12553,11 +12634,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "Förpackningsfoto"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "Öppna Woo på din iPhone, anslut din butik och håll din klocka intill telefonen"; +"watch.connect.messageUpdated" = "Öppna Woo på din iPhone, logga in i din butik och håll din Watch intill telefonen."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "Det fungerar inte"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "Om felet kvarstår, starta om appen."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Se till att din klocka är ansluten till Internet och att din telefon är i närheten."; @@ -12735,6 +12819,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "Lägg till betalningsmetod"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "Ytterligare hantering"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "Måste signeras av en vuxen"; @@ -12744,6 +12831,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (grundavgift)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "Kolneutral"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "Redigera destination"; @@ -12762,6 +12852,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "Köp etikett · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "Leverans på lördag"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "Avsändare"; @@ -13065,6 +13158,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Försök igen"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "Återställ ändringar"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "Kan inte spara ändringar. Försök igen."; diff --git a/WooCommerce/Resources/tr.lproj/Localizable.strings b/WooCommerce/Resources/tr.lproj/Localizable.strings index 697d7f175ba..165c5b32cf0 100644 --- a/WooCommerce/Resources/tr.lproj/Localizable.strings +++ b/WooCommerce/Resources/tr.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-01 09:54:05+0000 */ +/* Translation-Revision-Date: 2025-07-16 09:54:04+0000 */ /* Plural-Forms: nplurals=2; plural=(n > 1); */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: tr */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% tamamlandı"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "Tarih aralığı"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "Guernsey"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "Misafir"; - /* Country option for a site address. */ "Guinea" = "Gine"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "Sipariş Notları"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "Sipariş Durumu"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "Kısa açıklama"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "Siparişleri Göster"; - /* Button title for applying filters to a list of products. */ "Show Products" = "Ürünleri Göster"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "Ürünlerin toplamı ve paket ağırlığı"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "Misafir"; + /* Country option for a site address. */ "Suriname" = "Surinam"; @@ -10051,9 +10042,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "Filtre geçmişi"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "Siparişleri Göster"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "Müşteri"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "Satış Kanalı"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "Tarih Aralığı"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "Sipariş Durumu"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "Ürün"; @@ -10765,6 +10768,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "Vergiler"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "Misafir"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11330,10 +11339,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "Tarayıcı bir klavyeyi taklit eder, bu nedenle bazen yazılım klavyesinin görünmesini engeller (ör. aramada). Tekrar göstermek için klavye simgesine dokunun."; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• HID modunu ayarlamak için Bluetooth barkod tarayıcınızın talimatlarına bakın."; +"pos.barcodeInfoModal.secondaryMessage.2" = "• HID modunu ayarlamak için Bluetooth barkod tarayıcınızın talimatlarına bakın. Bu genellikle kılavuzda özel bir barkodun taranmasını gerektirir."; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "İkinci: H-I-D modunu ayarlamak için Bluetooth barkod tarayıcınızın talimatlarına bakın."; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "İkinci: H-I-D modunu ayarlamak için Bluetooth barkod tarayıcınızın talimatlarına bakın. Bu genellikle kılavuzda özel bir barkodun taranmasını gerektirir."; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• Barkod tarayıcınızı iOS Bluetooth ayarlarından bağlayın."; @@ -11341,6 +11350,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "Üçüncü: Barkod tarayıcınızı iOS Bluetooth ayarlarından bağlayın."; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "Geri"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "Tamam"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "Barkod Tarayıcı Kurulumu"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "Kurulum işlemine başlamak için barkod tarayıcınızı seçin."; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "Sonraki"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "Genel tarayıcı kurulum talimatları"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "Diğer"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "Şarj bağlantı noktası veya stantlı küçük el bilgisayarı tarayıcısı"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "Stantlı ergonomik tarayıcı"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "Önerilen tarayıcı"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "TBC Tarayıcısı"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = " için ürüne dokunun Sepete eklemek"; @@ -11350,8 +11398,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "Öde"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "Temizle"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "Sepeti temizle"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "Geri"; @@ -11374,6 +11422,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "Satış Noktası Modundan Çıkılsın Mı?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "POS'tan çık"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "Tekrar dene"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "Devam etmek için Satış Noktası'nın etkinleştirilmesi gerekir. Lütfen WooCommerce ayarları > Gelişmiş > Özellikler bölümündeki WordPress yöneticinizden POS özelliğini etkinleştirin."; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "Uygulamayı yeniden başlatmayı deneyin veya internet bağlantınızı kontrol edip tekrar deneyin."; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "Bu sorunu çözmek için uygulamayı yeniden başlatmayı deneyin."; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "İnternet bağlantınızı kontrol edip uygulamayı yeniden başlatmayı deneyin. Sorun devam ederse lütfen destek ekibine başvurun."; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "POS sistemi, mağazanızın para biriminde kullanılamıyor. Şu anda yalnızca %1$@ destekliyor. Lütfen mağaza para birimi ayarlarınızı kontrol edin veya yardım için destek birimine başvurun."; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "Satış Noktası için iOS 17 veya üzeri gerekir. Bu özelliği kullanmak için lütfen cihazınızı iOS 17 veya üzeri bir sürüme güncelleyin."; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "WooCommerce sürümünüz desteklenmiyor. POS sistemi için WooCommerce %1$@ sürümü veya üzeri gerekiyor. Lütfen WooCommerce'ün en son sürümüne güncelleyin."; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "WooCommerce eklentisini WordPress yöneticinizden kurun ve etkinleştirin."; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "Yüklenemedi"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "Lütfen internet bağlantınızı kontrol edip tekrar deneyin."; @@ -12550,11 +12631,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "Paket fotoğrafı"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "iPhone'unuzda Woo'yu açın, mağazanızı bağlayın ve Watch'ınızı yakında tutun"; +"watch.connect.messageUpdated" = "iPhone'unuzda Woo'yu açın, mağazanızda oturum açın ve Watch'unuzu yakında tutun."; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "Çalışmıyor"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "Hata devam ederse uygulamayı yeniden başlatın."; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "Saatinizin internete bağlı ve telefonunuzun yakında olduğundan emin olun."; @@ -12732,6 +12816,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "Ödeme yöntemi ekle"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "Ek İşleme"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "Yetişkin İmzası Gerekli"; @@ -12741,6 +12828,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (temel ücret)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "Karbon Nötr"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "Hedef Adresini Düzenleyin"; @@ -12759,6 +12849,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "Satın Alma Etiketi · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "Cumartesi Teslimatı"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "Gönderen"; @@ -13062,6 +13155,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Tekrar dene"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "Değişiklikleri geri al"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "Değişiklikler kaydedilemiyor. Lütfen tekrar deneyin."; diff --git a/WooCommerce/Resources/zh-Hans.lproj/Localizable.strings b/WooCommerce/Resources/zh-Hans.lproj/Localizable.strings index 104f479a1ff..c2bf1b2e34a 100644 --- a/WooCommerce/Resources/zh-Hans.lproj/Localizable.strings +++ b/WooCommerce/Resources/zh-Hans.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-01 09:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-16 11:54:04+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: zh_CN */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "%.0f%% 完成"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "日期范围"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "根西岛"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "访客"; - /* Country option for a site address. */ "Guinea" = "几内亚"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "订单备注"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "订单状态"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "简短说明"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "显示订单"; - /* Button title for applying filters to a list of products. */ "Show Products" = "显示产品"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "产品和包裹的总重量"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "访客"; + /* Country option for a site address. */ "Suriname" = "苏里南"; @@ -10054,9 +10045,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "筛选器历史记录"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "显示订单"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "客户"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "销售渠道"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "日期范围"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "订单状态"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "产品"; @@ -10768,6 +10771,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "税费"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "访客"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11333,10 +11342,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "扫描程序使用模拟键盘,因此有时会导致软件键盘无法显示,如在搜索时。 轻点键盘图标即可再次显示键盘。"; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• 参阅蓝牙条形码扫描程序的说明,以设置 HID 模式。"; +"pos.barcodeInfoModal.secondaryMessage.2" = "• 参阅蓝牙条形码扫描仪的使用说明,设置 HID 模式。 这通常需要扫描手册中的专用条形码。"; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "第二步:参阅蓝牙条形码扫描程序的说明,以设置 H-I-D 模式。"; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "第二步:参阅蓝牙条形码扫描仪的使用说明,设置 H-I-D 模式。 这通常需要扫描手册中的专用条形码。"; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• 在 iOS 蓝牙设置中连接条形码扫描程序。"; @@ -11344,6 +11353,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "第三步:在 iOS 蓝牙设置中连接条形码扫描程序。"; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "返回"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "完成"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "条形码扫描仪设置"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "选择您的条形码扫描仪,开始设置流程。"; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "下一个"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "常规扫描仪设置说明"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "其他"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "带充电底座或支架的小型手持扫描仪"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "带支架的人体工学扫描仪"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "推荐的扫描仪"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "扫描仪 TBC"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "点击产品以 \n 将其添加到购物车"; @@ -11353,8 +11401,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "结账"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "清除"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "清空购物车"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "返回"; @@ -11377,6 +11425,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "退出销售点模式?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "退出 POS"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "重试"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "必须启用销售点才能继续。 请通过您的 WordPress 管理员在“WooCommerce 设置 > 高级 > 功能”下启用 POS 功能。"; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "请尝试重新启动应用程序或检查您的互联网连接后重试。"; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "请尝试重新启动应用程序以解决此问题。"; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "请检查您的互联网连接并尝试重新启动应用程序。如果问题仍然存在,请联系支持人员。"; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "POS 系统暂不支持您的商店所使用的货币。 目前仅支持 %1$@。 请检查您的商店货币设置或联系支持人员寻求帮助。"; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "销售点需要 iOS 17 或更高版本。 请将您的设备更新至 iOS 17+ 以使用此功能。"; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "您的 WooCommerce 版本不受支持。 POS 系统需要 WooCommerce %1$@ 或更高版本。 请将 WooCommerce 更新到最新版本。"; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "通过您的 WordPress 管理员安装并激活 WooCommerce 插件。"; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "无法加载"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "请检查您的互联网连接,然后重试。"; @@ -12553,11 +12634,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "包装照片"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "在您的 iPhone 上打开 Woo,连接您的商店,然后将您的手表放在附近"; +"watch.connect.messageUpdated" = "在您的 iPhone 上打开 Woo,登录您的商店,然后将您的手表放在附近。"; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "无法连接"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "如果错误仍然存在,请重新启动应用程序。"; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "确保您的手表连接到互联网,且手机就在附近。"; @@ -12735,6 +12819,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "添加付款方式"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "特殊处理"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "必须由成年人签收"; @@ -12744,6 +12831,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@(基本费用)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "碳中和"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "编辑目的地"; @@ -12762,6 +12852,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "购买标签 · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "星期六配送"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "发货地"; @@ -13065,6 +13158,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "重试"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "还原更改"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "无法保存更改。 请重试。"; diff --git a/WooCommerce/Resources/zh-Hant.lproj/Localizable.strings b/WooCommerce/Resources/zh-Hant.lproj/Localizable.strings index 4e5cf129470..22ded4ba632 100644 --- a/WooCommerce/Resources/zh-Hant.lproj/Localizable.strings +++ b/WooCommerce/Resources/zh-Hant.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2025-07-02 09:54:04+0000 */ +/* Translation-Revision-Date: 2025-07-17 11:54:03+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/2.4.0-alpha */ /* Language: zh_TW */ @@ -6,9 +6,6 @@ /* Variation ID. Parameters: %1$@ - Product variation ID */ "#%1$@" = "#%1$@"; -/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ -"#%@ %@" = "#%1$@ %2$@"; - /* Label that describes the completed progress of an update being installed (e.g. 15% complete). Keep the %.0f%% exactly as is */ "%.0f%% complete" = "已完成 %.0f%%"; @@ -1947,7 +1944,6 @@ which should be translated separately and considered part of this sentence. */ "DHL Express" = "DHL Express"; /* Navigation title of the orders filter selector screen for date range - Row title for filtering orders by date range. Title describing the possible date range selections of the Analytics Hub Title of the range selection list */ "Date Range" = "日期範圍"; @@ -3033,10 +3029,6 @@ which should be translated separately and considered part of this sentence. */ /* Country option for a site address. */ "Guernsey" = "根西"; -/* In Order Details, the name of the billed person when there are no name and last name. - In Order List, the name of the billed person when there are no first and last name. */ -"Guest" = "訪客"; - /* Country option for a site address. */ "Guinea" = "幾內亞"; @@ -4491,8 +4483,7 @@ If your translation of that term also happens to contains a hyphen, please be su "Order Notes" = "訂單備註"; /* Change order status screen - Screen title - Navigation title of the orders filter selector screen for order statuses - Row title for filtering orders by order status. */ + Navigation title of the orders filter selector screen for order statuses */ "Order Status" = "訂單狀態"; /* Create Shipping Label form -> Order Total label @@ -6060,9 +6051,6 @@ If your translation of that term also happens to contains a hyphen, please be su Title of the Short Description row on Product main screen */ "Short description" = "簡短說明"; -/* Button title for applying filters to a list of orders. */ -"Show Orders" = "顯示訂單"; - /* Button title for applying filters to a list of products. */ "Show Products" = "顯示產品"; @@ -6384,6 +6372,9 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the footer in Shipping Label Package Detail screen */ "Sum of products and package weight" = "產品與包裹總重"; +/* In Order Details, the name of the billed person when there are no name and last name. */ +"SummaryTableViewCellViewModel.guestName" = "訪客"; + /* Country option for a site address. */ "Suriname" = "蘇利南"; @@ -10051,9 +10042,21 @@ which should be translated separately and considered part of this sentence. */ /* Accessibility hint for the filter history button on the filter list screen */ "filterListViewController.historyBarButtonItem.accessibilityHint" = "篩選紀錄"; +/* Button title for applying filters to a list of orders. */ +"filterOrderListViewModel.OrderListFilter.filterActionTitle" = "顯示訂單"; + /* Row title for filtering orders by customer. */ "filterOrderListViewModel.OrderListFilter.rowCustomer" = "顧客"; +/* Row title for filtering orders by sales channel. */ +"filterOrderListViewModel.OrderListFilter.rowSalesChannel" = "銷售通路"; + +/* Row title for filtering orders by date range. */ +"filterOrderListViewModel.OrderListFilter.rowTitleDateRange" = "日期範圍"; + +/* Row title for filtering orders by order status. */ +"filterOrderListViewModel.OrderListFilter.rowTitleOrderStatus" = "訂單狀態"; + /* Row title for filtering orders by Product. */ "filterOrderListViewModel.OrderListFilter.rowTitleProduct" = "商品"; @@ -10765,6 +10768,12 @@ which should be translated separately and considered part of this sentence. */ /* Label for the row showing the taxes in the order */ "orderPaymentSection.taxes" = "稅金"; +/* In Order List, the pattern to show the order number. For example, “#123456”. The %@ placeholder is the order number. */ +"orderlistcellviewmodel.cell.title" = "#%1$@ %2$@"; + +/* In Order List, the name of the billed person when there are no first and last name. */ +"orderlistcellviewmodel.customerName.guestName" = "訪客"; + /* A format string for a software version with major and minor components. %1$@ will be replaced with the major, %2$@ with the minor. */ "os.version.format.major.minor" = "%1$@.%2$@"; @@ -11330,10 +11339,10 @@ which should be translated separately and considered part of this sentence. */ "pos.barcodeInfoModal.quinaryMessage" = "掃描器會模擬鍵盤,因此有時會在搜尋等欄位阻擋螢幕鍵盤顯示。 點選鍵盤圖示以再次顯示。"; /* Secondary bullet point in the barcode info modal in POS, instructing to set scanner to HID mode */ -"pos.barcodeInfoModal.secondaryMessage" = "• 請參閱藍牙條碼掃描器指示,設定 HID 模式。"; +"pos.barcodeInfoModal.secondaryMessage.2" = "• 請參閱藍牙條碼掃描器指示,設定 HID 模式。 這通常需要掃描手冊中的特殊條碼。"; /* Accessible version of secondary bullet point in barcode info modal, without bullet character for screen readers */ -"pos.barcodeInfoModal.secondaryMessage.accessible" = "2:請參閱藍牙條碼掃描器指示,設定 HID 模式。"; +"pos.barcodeInfoModal.secondaryMessage.accessible.2" = "二:請參閱藍牙條碼掃描器說明,設定 H-I-D 模式。 這通常需要掃描手冊中的特殊條碼。"; /* Tertiary bullet point in the barcode info modal in POS, instructing to connect scanner via Bluetooth settings */ "pos.barcodeInfoModal.tertiaryMessage" = "• 請在 iOS 藍牙設定中,連線條碼掃描器。"; @@ -11341,6 +11350,45 @@ which should be translated separately and considered part of this sentence. */ /* Accessible version of tertiary bullet point in barcode info modal, without bullet character for screen readers */ "pos.barcodeInfoModal.tertiaryMessage.accessible" = "3:請在 iOS 藍牙設定中,連線條碼掃描器。"; +/* Title for the back button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.back.button.title" = "返回"; + +/* Title for the done button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.done.button.title" = "完成"; + +/* Heading for the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.heading" = "條碼掃描器設定"; + +/* Introductory message in the barcode scanner setup flow in POS */ +"pos.barcodeScannerSetup.introMessage" = "選擇條碼掃描器,即可開始進行設定流程。"; + +/* Title for the next button in barcode scanner setup navigation */ +"pos.barcodeScannerSetup.next.button.title" = "下一個"; + +/* Subtitle for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.subtitle" = "掃描器一般設定指示"; + +/* Title for other scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.other.title" = "其他"; + +/* Subtitle for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.subtitle" = "小型掌上型掃描器 (含充電底座或支架)"; + +/* Title for Socket S720 scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.socketS720.title" = "Socket S720"; + +/* Subtitle for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.subtitle" = "人體工學掃描器 (含支架)"; + +/* Title for Star BSH-20B scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.starBSH20B.title" = "Star BSH-20B"; + +/* Subtitle for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.subtitle" = "推薦的掃描器"; + +/* Title for TBC scanner option in barcode scanner setup */ +"pos.barcodeScannerSetup.tbcScanner.title" = "掃描器 TBC"; + /* Hint to add products to the Cart when this is empty. */ "pos.cartView.addItemsToCartHint" = "點選商品即可\n 新增至購物車"; @@ -11350,8 +11398,8 @@ which should be translated separately and considered part of this sentence. */ /* Title for the 'Checkout' button to process the Order. */ "pos.cartView.checkoutButtonTitle" = "結帳"; -/* Title for the 'Clear' button to remove all products from the Cart. */ -"pos.cartView.clearButtonTitle" = "清除"; +/* Title for the 'Clear cart' confirmation button to remove all products from the Cart. */ +"pos.cartView.clearButtonTitle.1" = "清除購物車內容"; /* Back button title in the child item list screen. */ "pos.childItemList.back" = "返回"; @@ -11374,6 +11422,39 @@ which should be translated separately and considered part of this sentence. */ /* Title of the exit Point of Sale modal alert */ "pos.exitPOSModal.exitTitle" = "要結束銷售時點情報系統模式嗎?"; +/* Button title to dismiss POS ineligible view */ +"pos.ineligible.dismiss.button.title" = "結束 POS"; + +/* Button title to refresh POS eligibility check */ +"pos.ineligible.refresh.button.title" = "重試"; + +/* Suggestion for disabled feature switch: enable feature in WooCommerce settings */ +"pos.ineligible.suggestion.featureSwitchDisabled" = "必須啟用「銷售時點情報系統」才能繼續。 若要啟用 POS 功能,請依序點擊 WordPress 管理員的「WooCommerce 設定」>「進階」>「功能」。"; + +/* Suggestion for feature switch sync failure: relaunch or check connection */ +"pos.ineligible.suggestion.featureSwitchSyncFailure" = "請嘗試重新啟動應用程式,或檢查你的網際網路連線,然後再試一次。"; + +/* Suggestion for self deallocated: relaunch */ +"pos.ineligible.suggestion.selfDeallocated" = "若要解決此問題,請嘗試重新啟動應用程式。"; + +/* Suggestion for site settings unavailable: check connection or contact support */ +"pos.ineligible.suggestion.siteSettingsNotAvailable" = "請檢查網際網路連線並嘗試重新啟動應用程式。萬一問題持續發生,請聯絡支援團隊。"; + +/* Suggestion for unsupported currency with list of supported currencies. %1$@ is a placeholder for the localized list of supported currency codes. */ +"pos.ineligible.suggestion.unsupportedCurrency" = "你的商店幣別無法使用 POS 系統。 目前僅支援:%1$@。 請檢查你的商店幣別設定,或聯絡支援團隊尋求協助。"; + +/* Suggestion for unsupported iOS version: update iOS */ +"pos.ineligible.suggestion.unsupportedIOSVersion" = "銷售時點情報系統需要 iOS 17 或更新版本。 若要使用此功能,請將裝置更新至 iOS 17 以上版本。"; + +/* Suggestion for unsupported WooCommerce version: update plugin. %1$@ is a placeholder for the minimum required version. */ +"pos.ineligible.suggestion.unsupportedWooCommerceVersion" = "系統不支援你的 WooCommerce 版本。 POS 系統需要 WooCommerce %1$@ 或更新版本。 請更新至最新版本的 WooCommerce。"; + +/* Suggestion for missing WooCommerce plugin: install plugin */ +"pos.ineligible.suggestion.wooCommercePluginNotFound" = "從你的 WordPress 管理員安裝並啟用 WooCommerce 外掛程式。"; + +/* Title shown in POS ineligible view */ +"pos.ineligible.title" = "無法載入"; + /* Subtitle appearing on error screens when there is a network connectivity error. */ "pos.itemList.connectivityErrorSubtitle" = "請檢查你的網際網路連線並再試一次。"; @@ -12550,11 +12631,14 @@ which should be translated separately and considered part of this sentence. */ "viewPackagePhoto.packagePhoto" = "包裹照片"; /* Info message when connecting your watch to the phone for the first time. */ -"watch.connect.message" = "在你的 iPhone 上開啟 Woo、連結商店,並將 Watch 放在附近"; +"watch.connect.messageUpdated" = "在你的 iPhone 上開啟 Woo、登入商店,並將 Watch 放在附近。"; /* Button title for when connecting the watch does not work on the connecting screen. */ "watch.connect.notworking.title" = "無法使用"; +/* Workaround when connecting the watch to the phone fails. */ +"watch.connect.workaround" = "如果持續發生錯誤,請重新啟動應用程式。"; + /* Error description on the watch store stats screen. */ "watch.mystore.error.description" = "請確定你的手錶已連結網際網路,且手機也在附近。"; @@ -12732,6 +12816,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the option to add a payment method on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.addPaymentMethod" = "新增付款方式"; +/* Label for row showing the additional cost to require additional handling on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.additionalHandling" = "額外處理"; + /* Label for row showing the additional cost to require an adult signature on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.adultSignatureRequired" = "需成年人簽名"; @@ -12741,6 +12828,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for row showing the base fee for the selected shipping service on the shipping label creation screen. Reads like: 'USPS - Media Mail (base fee)' */ "wooShipping.createLabels.bottomSheet.baseFee" = "%1$@ (基本費用)"; +/* Label for row showing the additional cost to require carbon neutral delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.carbonNeutral" = "碳中和"; + /* Title for the edit destination address screen in the shipping label creation flow */ "wooShipping.createLabels.bottomSheet.editDestination" = "編輯目的地"; @@ -12759,6 +12849,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for button to purchase the shipping label on the shipping label creation screen, including the label price. Reads like: 'Purchase Label · $7.63' */ "wooShipping.createLabels.bottomSheet.purchaseFormat" = "購買標籤 · %1$@"; +/* Label for row showing the additional cost to require Saturday delivery on the shipping label creation screen */ +"wooShipping.createLabels.bottomSheet.saturdayDelivery" = "星期六運送"; + /* Label for address where the shipment is shipped from on the shipping label creation screen */ "wooShipping.createLabels.bottomSheet.shipFrom" = "出貨地址"; @@ -13062,6 +13155,9 @@ which should be translated separately and considered part of this sentence. */ /* Retry button title on the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "重試"; +/* Button on the error alert to revert changes when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.revertChanges" = "還原變更"; + /* Title of the error alert when saving split shipment changes fails */ "wooShipping.createLabels.splitShipment.saveShipmentError.title" = "無法儲存變更。 請再試一次。"; From c0cd7c82071e8022cdcd189b956844aafaefb25c Mon Sep 17 00:00:00 2001 From: Automattic Release Bot Date: Fri, 25 Jul 2025 03:16:10 -0700 Subject: [PATCH 14/15] Update metadata translations --- fastlane/metadata/ar-SA/release_notes.txt | 2 +- fastlane/metadata/de-DE/release_notes.txt | 2 +- fastlane/metadata/default/release_notes.txt | 2 +- fastlane/metadata/es-ES/release_notes.txt | 2 +- fastlane/metadata/fr-FR/release_notes.txt | 2 +- fastlane/metadata/he/release_notes.txt | 2 +- fastlane/metadata/id/release_notes.txt | 2 +- fastlane/metadata/it/release_notes.txt | 2 +- fastlane/metadata/ja/release_notes.txt | 2 +- fastlane/metadata/ko/release_notes.txt | 2 +- fastlane/metadata/nl-NL/release_notes.txt | 2 +- fastlane/metadata/pt-BR/release_notes.txt | 2 +- fastlane/metadata/ru/release_notes.txt | 2 +- fastlane/metadata/sv/release_notes.txt | 2 +- fastlane/metadata/tr/release_notes.txt | 2 +- fastlane/metadata/zh-Hans/release_notes.txt | 2 +- fastlane/metadata/zh-Hant/release_notes.txt | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/fastlane/metadata/ar-SA/release_notes.txt b/fastlane/metadata/ar-SA/release_notes.txt index a5fe3bde4b2..5e5f899c773 100644 --- a/fastlane/metadata/ar-SA/release_notes.txt +++ b/fastlane/metadata/ar-SA/release_notes.txt @@ -1 +1 @@ -قُل مرحبًا للشحن والمبيعات الأكثر سلاسة! لقد حسّنا ملصقات الشحن باستخدام إضافات UPS والنماذج الأكثر ذكاءً، والسعر الثابت ومشاكل العرض، وجعلنا إدارة الشحن أسهل. بالإضافة إلى ذلك، أصبح لدى نقطة البيع الآن علامة تبويب خاصة بها للمتاجر المؤهلة، ومسح الرمز الشريطي، وتحديث المنتج بشكل أكثر سلاسة لتسريع عملية الدفع. +يوفر تحديثنا الأخير شاشات شحن مقسمة أكثر سلاسة ويحسن إمكانية الوصول إلى ملصقات الشحن، بالإضافة إلى تحديد حجم الملصق بشكل أسهل وشارات نقطة البيع داخل قائمة الطلب. في نقطة البيع، استمتع بتدفق فحص الرمز الشريطي الجديد، وزر مسح عربة التسوق الأكثر أمانًا. diff --git a/fastlane/metadata/de-DE/release_notes.txt b/fastlane/metadata/de-DE/release_notes.txt index 5fb1ea0390b..112a70ff20f 100644 --- a/fastlane/metadata/de-DE/release_notes.txt +++ b/fastlane/metadata/de-DE/release_notes.txt @@ -1 +1 @@ -Freue dich auf einen reibungsloseren Versand und Verkauf! Wir haben Versandetiketten mit UPS-Extras und intelligenteren Formularen optimiert, Festpreis- und Anzeigefehler behoben und die Versandverwaltung vereinfacht. Außerdem verfügt der Verkaufsort (POS) jetzt über einen eigenen Tab für berechtigte Shops, Barcode-Scans und eine nahtlosere Produktaktualisierung für schnelleres Bezahlen. +Unser neuestes Update bietet reibungsloser nutzbare geteilte Versandbildschirme und eine verbesserte Zugänglichkeit für Versandetiketten sowie eine einfachere Auswahl der Etikettengröße und POS-Badges in der Bestellliste. In Point of Sale gibt es jetzt einen neuen Barcode-Scan-Flow und einen sichereren Button zum Leeren des Warenkorbs. diff --git a/fastlane/metadata/default/release_notes.txt b/fastlane/metadata/default/release_notes.txt index 67ae0a1ea82..5057a91b19d 100644 --- a/fastlane/metadata/default/release_notes.txt +++ b/fastlane/metadata/default/release_notes.txt @@ -1 +1 @@ -Say hello to smoother shipping and sales! We’ve enhanced Shipping Labels with UPS extras and smarter forms, fixed price and display glitches, and made shipment management easier. Plus, Point of Sale now has its own tab for eligible stores, barcode scanning, and smoother product refresh for faster checkout. \ No newline at end of file +Our latest update brings smoother split shipment screens and improved accessibility for Shipping Labels, plus easier label size selection, and POS badges within the order list. In Point of Sale, enjoy a new barcode scan flow, and a safer cart clear button. \ No newline at end of file diff --git a/fastlane/metadata/es-ES/release_notes.txt b/fastlane/metadata/es-ES/release_notes.txt index 6051aec1645..d2fc558bf53 100644 --- a/fastlane/metadata/es-ES/release_notes.txt +++ b/fastlane/metadata/es-ES/release_notes.txt @@ -1 +1 @@ -¡Envíos y ventas más sencillos! Hemos mejorado las etiquetas de envío con extras de UPS y formularios más inteligentes, hemos solucionado los errores con los precios y la visualización, y hemos facilitado la gestión de envíos. Además, el punto de venta ahora tiene su propia pestaña para tiendas que cumplan los requisitos, escaneo de códigos de barras y actualización de productos más fluida para agilizar los pagos. +Nuestra última actualización proporciona pantallas de envío divididas más fluidas y una accesibilidad mejorada para las etiquetas de envío, además de una selección más sencilla del tamaño de las etiquetas y las insignias de POS dentro de la lista de pedidos. En Point of Sale, disfruta de un nuevo flujo de escaneo de códigos de barras y un botón de vaciado del carrito más seguro. diff --git a/fastlane/metadata/fr-FR/release_notes.txt b/fastlane/metadata/fr-FR/release_notes.txt index 83c8d369a72..7f906be68ff 100644 --- a/fastlane/metadata/fr-FR/release_notes.txt +++ b/fastlane/metadata/fr-FR/release_notes.txt @@ -1 +1 @@ -Dites bonjour à une livraison et à des ventes plus fluides ! Nous avons amélioré les étiquettes d’expédition avec des extras UPS et des formulaires plus intelligents, des prix fixes et des problèmes d’affichage, et nous avons simplifié la gestion des expéditions. De plus, Point de vente dispose désormais de son propre onglet pour les boutiques éligibles, de la lecture de codes-barres et d’un rafraîchissement plus fluide des produits pour une validation de la commande plus rapide. +Notre dernière mise à jour apporte des écrans d’expédition scindée plus fluides et une meilleure accessibilité pour les étiquettes d’expédition, ainsi qu’une sélection plus facile de la taille des étiquettes et des badges de PDV dans la liste de commande. Dans Point de vente, profitez d’un nouveau flux de lecture de code-barres et d’un bouton d’effacement du panier plus sûr. diff --git a/fastlane/metadata/he/release_notes.txt b/fastlane/metadata/he/release_notes.txt index c13049fae5c..b2e8ae3ae1a 100644 --- a/fastlane/metadata/he/release_notes.txt +++ b/fastlane/metadata/he/release_notes.txt @@ -1 +1 @@ -נעים להכיר, דרך יעילה יותר למשלוחים ולמכירות! שיפרנו את תוויות המשלוח בעזרת תוספות של UPS וטפסים חכמים יותר, תיקנו תקלות בתמחור ובתצוגה ואפשרנו ניהול משלוח קל יותר. בנוסף, ב'נקודת מכירה' יש כעת לשונית נפרדת לחנויות מתאימות, סריקות ברקוד ורענון חלק יותר של המוצר לצורך תשלום מהיר יותר בקופה. +בעדכון האחרון שלנו הגדרנו מסכי משלוח מפוצלים יעילים יותר ונגישות משופרת בשביל תוויות משלוח. בנוסף, אפשר לבחור גודל תווית בקלות רבה יותר וליצור תגים של POS ברשימת ההזמנות. ב'נקודת מכירה' אפשר ליהנות מתרשים זרימה חדש של סריקת ברקוד ומכפתור 'ניקוי' בטוח יותר בעגלת הקניות. diff --git a/fastlane/metadata/id/release_notes.txt b/fastlane/metadata/id/release_notes.txt index bdccd1c9e5b..0cd27cba336 100644 --- a/fastlane/metadata/id/release_notes.txt +++ b/fastlane/metadata/id/release_notes.txt @@ -1 +1 @@ -Nikmati pengiriman dan penjualan yang lebih mulus! Kami telah meningkatkan Label Pengiriman dengan fitur UPS tambahan dan formulir yang lebih cerdas, memperbaiki masalah harga dan tampilan, serta mempermudah pengelolaan pengiriman. Selain itu, Point of Sale kini memiliki tab sendiri untuk toko yang memenuhi syarat, mendukung pemindaian barcode, dan pembaruan produk yang lebih lancar agar proses checkout lebih cepat. +Pembaruan terakhir kami menghadirkan layar pengiriman terpisah yang lebih lancar dan aksesibilitas yang lebih luas untuk Label Pengiriman, serta pemilihan ukuran label yang lebih mudah dan lencana POS dalam daftar pesanan. Di Point of Sale, nikmati alur pemindaian barcode yang baru dan tombol hapus keranjang yang lebih aman. diff --git a/fastlane/metadata/it/release_notes.txt b/fastlane/metadata/it/release_notes.txt index ba2b5074c68..0f34ca38e0e 100644 --- a/fastlane/metadata/it/release_notes.txt +++ b/fastlane/metadata/it/release_notes.txt @@ -1 +1 @@ -Approfitta di spedizioni e vendite più fluide! Abbiamo migliorato le etichette di spedizione con funzionalità extra di UPS e moduli più intelligenti, risolto problemi di visualizzazione che riguardavano i prezzi e lo schermo e semplificato la gestione delle spedizioni. Inoltre, ora il punto vendita dispone di una propria scheda per i negozi idonei, la scansione dei codici a barre e un aggiornamento dei prodotti più fluido per un pagamento più rapido. +Il nostro ultimo aggiornamento migliora la fluidità delle schermate delle spedizioni divise e l'accessibilità delle etichette di spedizione, oltre a semplificare la selezione delle dimensioni delle etichette e quella dei badge POS all'interno dell'elenco degli ordini. Nel punto vendita, scopri un nuovo flusso di scansione dei codici a barre e un pulsante più affidabile per l'eliminazione di tutti gli articoli presenti nel carrello. diff --git a/fastlane/metadata/ja/release_notes.txt b/fastlane/metadata/ja/release_notes.txt index 2f585a02aed..d2bf9166e41 100644 --- a/fastlane/metadata/ja/release_notes.txt +++ b/fastlane/metadata/ja/release_notes.txt @@ -1 +1 @@ -配送と販売を一層スムーズにご利用いただけるようになりました UPS の追加機能とスマートなフォームで配送ラベルが使いやすくなりました。また、価格とディスプレイの不具合を修正し、配送管理も簡単になりました。 さらに、販売時点管理には対象ストア向けの専用タブとバーコードスキャンが追加されました。これにより商品をスムーズに更新できるため、購入手続きが迅速になります。 +最新のアップデートで配送画面の分割がスムーズになり、配送ラベルのアクセシビリティが向上しました。さらにラベルサイズの選択が簡単になり、注文リスト内に PO バッジを表示できます。 販売時点管理に新しいバーコードスキャンのフローが追加され、お買い物カゴのクリアボタンがより安全になりました。 diff --git a/fastlane/metadata/ko/release_notes.txt b/fastlane/metadata/ko/release_notes.txt index 3e7e5675ce9..be18b98a5e2 100644 --- a/fastlane/metadata/ko/release_notes.txt +++ b/fastlane/metadata/ko/release_notes.txt @@ -1 +1 @@ -배송과 판매가 더 원활해집니다! UPS 추가 사항과 더 깔끔한 양식으로 배송 레이블이 개선되었고, 가격과 표시 문제가 해결되었으며, 배송 관리가 더 쉬워졌습니다. 아울러 판매 시점 관리(POS)에 적격 스토어 전용 탭, 바코드 스캔 기능, 더 빠른 계산을 위한 더 원활한 상품 새로 고침 기능이 추가되었습니다. +최신 업데이트를 통해 분할 배송 화면이 더 원활해지고 배송 레이블 접근성이 개선되었으며, 레이블 크기 선택이 쉬워지고 POS 배지가 주문 목록에 포함됩니다. 판매 지점에서 새로운 바코드 스캔 절차와 더 안전한 장바구니 지우기 버튼을 이용해 보세요. diff --git a/fastlane/metadata/nl-NL/release_notes.txt b/fastlane/metadata/nl-NL/release_notes.txt index 2196dfc8ac1..41986800b0a 100644 --- a/fastlane/metadata/nl-NL/release_notes.txt +++ b/fastlane/metadata/nl-NL/release_notes.txt @@ -1 +1 @@ -Maak kennis met vlottere verzending en verkoop! We hebben Verzendlabels verbeterd met UPS-extra's en slimmere formulieren, we hebben prijs- en weergave-glitches verholpen en het verzendingsbeheer vereenvoudigd. Bovendien heeft Verkooppunt nu een eigen tabblad voor winkels die in aanmerking komen, een scanfunctie voor streepjescodes en een vlottere productvernieuwing voor sneller afrekenen. +Onze nieuwste update zorgt voor soepelere schermen voor gesplitste verzending, een betere toegankelijkheid voor verzendlabels, een eenvoudigere selectie van labelformaten en POS-badges in de bestellijst. Profiteer bij Point of Sale van een nieuwe flow voor het scannen van streepjescodes en een veiligere knop voor het leegmaken van de winkelwagen. diff --git a/fastlane/metadata/pt-BR/release_notes.txt b/fastlane/metadata/pt-BR/release_notes.txt index e24fcdf2ef8..a1d2f610f55 100644 --- a/fastlane/metadata/pt-BR/release_notes.txt +++ b/fastlane/metadata/pt-BR/release_notes.txt @@ -1 +1 @@ -Conheça um jeito mais fácil de fazer envios e vendas! Aprimoramos as etiquetas de envio com formulários mais inteligentes e adicionais da UPS, corrigimos erros de exibição e preços e facilitamos o gerenciamento do envio. Além disso, o ponto de venda agora tem uma guia própria para lojas qualificadas, leitura de código de barras e atualização de produtos mais tranquila para agilizar a finalização da compra. +Nossa atualização mais recente traz telas de envio divididas de forma mais harmoniosa e acessibilidade aprimorada para etiquetas de envio, além de facilitar a seleção do tamanho da etiqueta e oferecer crachás de ponto de venda na lista de pedidos. Em Ponto de venda, aproveite um novo fluxo de leitura de código de barras e um botão de limpeza de carrinho mais seguro. diff --git a/fastlane/metadata/ru/release_notes.txt b/fastlane/metadata/ru/release_notes.txt index 2a77a42f12e..f5f50662f37 100644 --- a/fastlane/metadata/ru/release_notes.txt +++ b/fastlane/metadata/ru/release_notes.txt @@ -1 +1 @@ -Представляем усовершенствованную доставку и продажи! Мы расширили возможности транспортных этикеток, внедрив дополнения UPS и умные формы, а также устранили сбои цены и отображения. Кроме того, мы упростили управление доставкой. А ещё в пункте продажи теперь есть собственная вкладка, где имеются функции выбора магазинов, сканирования штрихкодов и плавного обновления товаров, что ускорит оформление заказа. +В нашем последнем обновлении: более стабильная работа экранов раздельной доставки, полностью переработанная функция транспортных этикеток, а также упрощённый выбор размера этикетки и значки POS в списке заказов. В режиме Point of Sale (Пункт продажи) вас ждёт обновлённый процесс сканирования штрихкодов и безопасная кнопка очистки корзины. diff --git a/fastlane/metadata/sv/release_notes.txt b/fastlane/metadata/sv/release_notes.txt index 78a5b1e441c..856703aa695 100644 --- a/fastlane/metadata/sv/release_notes.txt +++ b/fastlane/metadata/sv/release_notes.txt @@ -1 +1 @@ -Säg hej till smidigare frakt och försäljning! Vi har förbättrat Fraktetiketter med UPS-tillägg och smartare formulär, fasta priser och korrigerade visningsfel, samt gjort frakthanteringen enklare. Dessutom har Försäljningsplats nu sin egen flik för berättigade butiker, streckkodsskanning och smidigare produktuppdatering för en snabbare kassaupplevelse. +Vår senaste uppdatering ger smidigare skärmar för uppdelade försändelser och förbättrad tillgänglighet för fraktetiketter, plus enklare val av etikettstorlek och POS-märken i beställningslistan. I Försäljningsplats finns ett nytt flöde för streckkodsskanning och en säkrare knapp för att rensa varukorgen. diff --git a/fastlane/metadata/tr/release_notes.txt b/fastlane/metadata/tr/release_notes.txt index d0409d4b107..aaa7b6b3dc1 100644 --- a/fastlane/metadata/tr/release_notes.txt +++ b/fastlane/metadata/tr/release_notes.txt @@ -1 +1 @@ -Daha sorunsuz gönderim ve satışlara merhaba deyin! UPS ekstraları ve daha akıllı formlar, sabit fiyat ve ekran aksaklıkları ile Gönderim Etiketlerini geliştirdik ve gönderim yönetimini kolaylaştırdık. Ayrıca, Satış Noktası'nın artık uygun mağazalar, barkod taraması ve daha hızlı ödeme için ürün yenilemesi için kendi sekmesi var. +En son güncellememiz, bölünmüş gönderim ekranlarını daha sorunsuz hale getirir ve gönderim etiketleri için erişilebilirliği artırır, ayrıca sipariş listesinde daha kolay etiket boyutu seçimi ve POS rozetleri bulunur. Satış Noktasında yeni bir barkod taraması akışı ve daha güvenli sepet temizleme düğmesinin keyfini çıkarın. diff --git a/fastlane/metadata/zh-Hans/release_notes.txt b/fastlane/metadata/zh-Hans/release_notes.txt index aba6167cd31..251fe068066 100644 --- a/fastlane/metadata/zh-Hans/release_notes.txt +++ b/fastlane/metadata/zh-Hans/release_notes.txt @@ -1 +1 @@ -敬请享受更顺畅的配送和销售体验!我们优化了配送标签功能,新增 UPS 附加服务选项与更智能的表单,修复了价格显示异常问题,并简化了货运管理流程。 此外,销售点现已为符合条件的商店提供独立选项卡,支持条形码扫描,并优化了产品数据刷新速度,让结账更快捷。 +本次更新带来多项优化:分批发货界面更流畅,运输标签功能更易用,标签尺寸选择更便捷,订单列表新增 POS 标识。 在销售点中,我们推出了全新的条形码扫描流程,并优化了购物车清空按钮的安全防护。 diff --git a/fastlane/metadata/zh-Hant/release_notes.txt b/fastlane/metadata/zh-Hant/release_notes.txt index 225b54e94c6..510c61fe7d8 100644 --- a/fastlane/metadata/zh-Hant/release_notes.txt +++ b/fastlane/metadata/zh-Hant/release_notes.txt @@ -1 +1 @@ -準備好迎接更順暢的運送和銷售體驗!我們透過 UPS 額外功能和更聰明的表單強化了運送標籤、修正了價格和顯示問題,並讓運送管理更輕鬆。 此外,現在為符合條件的商店提供專屬 POS 的分頁,還帶來條碼掃描及更順暢的商品資訊更新,進而加快結帳速度。 +我們最新的更新讓分批出貨畫面更順暢,並強化「貨運標籤」的無障礙功能,還能更輕鬆地選取標籤大小,並在訂單清單中加上 POS 徽章。 在「銷售時點情報系統」享受全新條碼掃描流程,以及更安全的購物車清除按鈕。 From 596ebcd812a1c73c4500eb6e3c6cc30287a550e0 Mon Sep 17 00:00:00 2001 From: Automattic Release Bot Date: Fri, 25 Jul 2025 03:20:08 -0700 Subject: [PATCH 15/15] Bump version number --- config/Version.Public.xcconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/Version.Public.xcconfig b/config/Version.Public.xcconfig index 4477b55e59d..d94987b9493 100644 --- a/config/Version.Public.xcconfig +++ b/config/Version.Public.xcconfig @@ -1,4 +1,4 @@ CURRENT_PROJECT_VERSION = $VERSION_LONG MARKETING_VERSION = $VERSION_SHORT -VERSION_LONG = 22.8.0.0 +VERSION_LONG = 22.8.0.1 VERSION_SHORT = 22.8