Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions WooCommerce/Classes/Analytics/WooAnalyticsEvent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1722,6 +1722,7 @@ extension WooAnalyticsEvent {
enum ProductsOnboarding {
enum Keys: String {
case type
case templateEligible = "template_eligible"
}

enum CreationType: String {
Expand All @@ -1746,5 +1747,9 @@ extension WooAnalyticsEvent {
static func productCreationTypeSelected(type: CreationType) -> WooAnalyticsEvent {
WooAnalyticsEvent(statName: .addProductCreationTypeSelected, properties: [Keys.type.rawValue: type.rawValue])
}

static func productListAddProductButtonTapped(templateEligible: Bool) -> WooAnalyticsEvent {
WooAnalyticsEvent(statName: .productListAddProductTapped, properties: [Keys.templateEligible.rawValue: templateEligible])
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ final class AddProductCoordinator: Coordinator {
}

func start() {

ServiceLocator.analytics.track(event: .ProductsOnboarding.productListAddProductButtonTapped(templateEligible: isTemplateOptionsEligible()))

if shouldPresentProductCreationBottomSheet() {
presentProductCreationTypeBottomSheet()
} else {
Expand All @@ -77,10 +80,16 @@ final class AddProductCoordinator: Coordinator {
private extension AddProductCoordinator {

/// Defines if the product creation bottom sheet should be presented.
/// Currently returns `true` when the feature is enabled and the number of products is fewer than 3.
/// Currently returns `true` when the feature is enabled and the store is eligible for displaying template options.
///
func shouldPresentProductCreationBottomSheet() -> Bool {
isProductCreationTypeEnabled && productsResultsController.numberOfObjects < 3
isProductCreationTypeEnabled && isTemplateOptionsEligible()
}

/// Returns `true` when the number of products is fewer than 3.
///
func isTemplateOptionsEligible() -> Bool {
productsResultsController.numberOfObjects < 3
}

/// Presents a bottom sheet for users to choose if they want a create a product manually or via a template.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,8 +258,6 @@ private extension ProductsViewController {
return
}

ServiceLocator.analytics.track(.productListAddProductTapped)

let coordinatingController: AddProductCoordinator
if let sourceBarButtonItem = sourceBarButtonItem {
coordinatingController = AddProductCoordinator(siteID: siteID,
Expand Down
101 changes: 74 additions & 27 deletions WooCommerce/Resources/ar.lproj/Localizable.strings

Large diffs are not rendered by default.

101 changes: 74 additions & 27 deletions WooCommerce/Resources/de.lproj/Localizable.strings

Large diffs are not rendered by default.

101 changes: 74 additions & 27 deletions WooCommerce/Resources/es.lproj/Localizable.strings

Large diffs are not rendered by default.

101 changes: 74 additions & 27 deletions WooCommerce/Resources/fr.lproj/Localizable.strings

Large diffs are not rendered by default.

101 changes: 74 additions & 27 deletions WooCommerce/Resources/he.lproj/Localizable.strings

Large diffs are not rendered by default.

101 changes: 74 additions & 27 deletions WooCommerce/Resources/id.lproj/Localizable.strings

Large diffs are not rendered by default.

101 changes: 74 additions & 27 deletions WooCommerce/Resources/it.lproj/Localizable.strings

Large diffs are not rendered by default.

66 changes: 37 additions & 29 deletions WooCommerce/Resources/ja.lproj/Localizable.strings
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Translation-Revision-Date: 2022-11-03 10:54:04+0000 */
/* Translation-Revision-Date: 2022-11-06 02:10:08+0000 */
/* Plural-Forms: nplurals=1; plural=0; */
/* Generator: GlotPress/2.4.0-alpha */
/* Language: ja_JP */
Expand Down Expand Up @@ -768,7 +768,8 @@ which should be translated separately and considered part of this sentence. */
"BILLING ADDRESS" = "請求先住所";

/* Accessibility label for Back button in the navigation bar
Alert button title - dismisses alert, which cancels the log out attempt */
Alert button title - dismisses alert, which cancels the log out attempt
Previous web page */
"Back" = "戻る";

/* Accessibility announcement message when device goes back online */
Expand Down Expand Up @@ -888,6 +889,7 @@ which should be translated separately and considered part of this sentence. */
Button to cancel an in-person payment or refund
Button to cancel the creation of an order on the New Order screen
Button to dismiss Select Categories screen
Button to dismiss the action sheet on the store picker
Button to dismiss the alert presented when connecting to a specific reader fails due to a critically low battery. This also cancels searching.
Button to dismiss the alert presented when connecting to a specific reader fails due to address problems. This also cancels searching.
Button to dismiss the alert presented when connecting to a specific reader fails due to postal code problems. This also cancels searching.
Expand Down Expand Up @@ -1371,9 +1373,6 @@ which should be translated separately and considered part of this sentence. */
/* Navigates to a new flow for site creation. */
"Create a Site" = "サイトを作成";

/* Button displayed on the prologue screen of the simplified login flow to create a new store */
"Create a Store" = "ストアを作成";

/* Description for fixed product discount type on the action sheet presented from Add or Edit coupon screen */
"Create a fixed total discount for selected products" = "選択した商品の割引合計金額を作成します";

Expand Down Expand Up @@ -1669,7 +1668,7 @@ which should be translated separately and considered part of this sentence. */
Text for the done button in the Fee Details screen
Text for the done button in the Shipping Line Details screen
The button title to indicate that the user has finished updating their store's address and isready to close the webview. This also tries to connect to the reader again.
Title for the Done button on the WebView opened to upsell card readers */
Title for the Done button on a WebView modal sheet */
"Done" = "完了";

/* Link title to see instructions for printing a shipping label on an iOS device */
Expand Down Expand Up @@ -1915,8 +1914,7 @@ which should be translated separately and considered part of this sentence. */
/* Placeholder of the text field for editing the external URL for an external/affiliate product */
"Enter URL" = "URL を入力";

/* Button title. Takes the user to the login by store address flow.
Button to input a site address in store picker when there are no stores found */
/* Button title. Takes the user to the login by store address flow. */
"Enter Your Store Address" = "ストアの住所を入力";

/* Text field coupon code placeholder in the view for adding or editing a coupon. */
Expand Down Expand Up @@ -2198,6 +2196,9 @@ which should be translated separately and considered part of this sentence. */
/* User role badge */
"Follower" = "フォロワー";

/* Next web page */
"Forward" = "前へ";

/* Title of the cell in Product Price Settings > Schedule sale from a certain date */
"From" = "送信元";

Expand All @@ -2222,7 +2223,8 @@ which should be translated separately and considered part of this sentence. */
/* Title for the progress screen while generating a variation */
"Generating Variation" = "バリエーションを生成しています";

/* Title of install action in the Jetpack Install view.
/* Button displayed on the prologue screen of the simplified login flow to create a new store
Title of install action in the Jetpack Install view.
View title for initial auth views. */
"Get Started" = "今すぐ始める";

Expand Down Expand Up @@ -2730,9 +2732,6 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Title of letter paper size option for printing a shipping label */
"Letter (8.5 x 11 in)" = "レター (8.5 x 11インチ)";

/* Caption displayed in the prologue screen shown after onboarding during the login flow. */
"Let’s get started!" = "では、始めましょう。";

/* Title for the limit usage to X items row in coupon usage restrictions screen. */
"Limit Usage to X Items" = "X個に利用を制限";

Expand Down Expand Up @@ -2789,6 +2788,9 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Accessibility label for placeholder rows while products are loading */
"Loading products" = "商品を読み込み中";

/* Loading. Verb */
"Loading..." = "読み込み中…";

/* Button title in the simplified login prologue screen. Takes the user to the login flow.
Button title. Tapping takes the user to the login form.
Log In button label.
Expand All @@ -2798,7 +2800,8 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Action button that will restart the login flow.Presented when logging in with a site address that appears to be invalid.
Action button that will restart the login flow.Presented when logging in with a site address that does not have a valid Jetpack installation
Action button that will restart the login flow.Presented when logging in with a site address that does not have WooCommerce
Action button that will restart the login flow.Presented when the user tries to log in to the app with a simple WP.com site. */
Action button that will restart the login flow.Presented when the user tries to log in to the app with a simple WP.com site.
Button to trigger connection to another account in store picker */
"Log In With Another Account" = "別のアカウントでログイン";

/* Action button triggering a Log Out.Presented when logging in with a store address that does not match the account entered
Expand Down Expand Up @@ -2838,9 +2841,6 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Instructions on the WordPress.com username / password log in form. */
"Log in with your WordPress.com username and password." = "WordPress.com のユーザー名とパスワードでログインしてください。";

/* Action button linking to instructions for enter another store.Presented when logging in with an email address that is not a WordPress.com account */
"Log in with your store address" = "ストアアドレスでログイン";

/* Local notification action to log in with WordPress.com. */
"Login with WordPress.com" = "WordPress.com にログイン";

Expand Down Expand Up @@ -3061,8 +3061,7 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Message for the mocked order notification needed for the AppStore listing screenshot. 'Your WooCommerce Store' is the name of the mocked store. */
"New order for $13.98 on Your WooCommerce Store" = "WooCommerce ストアに $13.98の新しい注文があります";

/* Title of button in the login prologue screen for users who are new to WooCommerce.
Title of button on the site picker screen for users who are new to WooCommerce. */
/* Title of button in the login prologue screen for users who are new to WooCommerce. */
"New to WooCommerce?" = "初めて WooCommerce をお使いになる場合";

/* Action navigate to the variation creation screen
Expand Down Expand Up @@ -3282,6 +3281,9 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Accessibility hint for selecting a product in an order form */
"Opens product detail." = "商品の詳細を開きます。";

/* Accessibility hint to open web page in Safari */
"Opens the web page in Safari" = "Safari で Web ページを開く";

/* Placeholder of cell presenting the title of the new attribute option. */
"Option name" = "オプション名";

Expand Down Expand Up @@ -3703,6 +3705,9 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Title of in-progress modal when preparing for printing customs invoice */
"Preparing document" = "Document を準備中";

/* Action for previewing draft Product changes in the webview */
"Preview" = "プレビュー";

/* A label representing the amount that was previously refunded for the order. */
"Previously Refunded" = "過去に返金済み";

Expand Down Expand Up @@ -3954,6 +3959,9 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Title of receipt. Reads like Receipt from WooCommerce, Inc. */
"Receipt from %1$@" = "%1$@からのレシート";

/* Button label to refresh a web page */
"Refresh" = "更新";

/* Button to reload plugin data after activating a Card Present Payments extension */
"Refresh After Activating" = "アクティベート後に再度読み込む";

Expand Down Expand Up @@ -4199,6 +4207,9 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* One Time Code has been sent via SMS */
"SMS Sent" = "SMS 送信完了";

/* Button label to open web page in Safari */
"Safari" = "Safari";

/* Format of the sale period on the Price Settings row */
"Sale dates: %@" = "セール期間 :%@";

Expand Down Expand Up @@ -4424,7 +4435,8 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Title of a modal presenting a list of readers to choose from. */
"Several readers found" = "複数の Reader が見つかりました";

/* Button title Share in Edit Product More Options Action Sheet */
/* Button label to share a web page
Button title Share in Edit Product More Options Action Sheet */
"Share" = "共有";

/* Action title for sharing coupon from the Coupon Details screen
Expand Down Expand Up @@ -5359,7 +5371,8 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Title of the badge shown when promoting an existing feature */
"Tip" = "ヒント";

/* Add Product Category. Placeholder of cell presenting the title of the category.
/* Accessibility label for web page preview title
Add Product Category. Placeholder of cell presenting the title of the category.
Placeholder in the Product Title row on Product form screen. */
"Title" = "タイトル";

Expand Down Expand Up @@ -5494,9 +5507,6 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Button to try to collect a payment again. Presented to users after collecting a payment fails */
"Try Collecting Again" = "もう一度受け取りを試みる";

/* Button to trigger connection to another account in store picker */
"Try With Another Account" = "別のアカウントで試行";

/* Action to resync on the placeholder overlay when there is issue syncing site plugins
Button to dismiss the alert presented when connecting to a specific reader fails. This allows the search to continue. */
"Try again" = "もう一度お試しください";
Expand Down Expand Up @@ -5830,9 +5840,6 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Action to use the address in Shipping Label Suggested screen as suggested */
"Use Suggested Address" = "提案された住所を使用";

/* Description for the option to create a template product */
"Use a template to create physical, virtual, and variable products." = "テンプレートを使用して、物理的な商品、仮想商品、バリエーションのある商品を作成します。";

/* Account creation error when the email is invalid. */
"Use a working email address, so you can receive our messages." = "メッセージが受け取れるよう、有効なメールアドレスを使ってください。";

Expand Down Expand Up @@ -5990,9 +5997,6 @@ This is the link to the website, and forms part of a longer sentence which it sh
Title of the alert presented when the user tries to connect to a specific card reader and it fails due to it having a critically low battery */
"We couldn't connect your reader" = "Reader に接続できませんでした";

/* Displayed during the Login flow, whenever the user has no woo stores associated. */
"We couldn't find a WooCommerce store connected to your account." = "お使いのアカウントに連携している WooCommerce ストアが見つかりませんでした。";

/* The title of the Error Loading Data banner */
"We couldn't load your data" = "データを読み込めませんでした";

Expand Down Expand Up @@ -6066,6 +6070,7 @@ This is the link to the website, and forms part of a longer sentence which it sh
"We're sorry, we couldn't find any order that match %@" = "「%@」に一致する注文が見つかりませんでした。";

/* Message for empty Coupons search results. The %@ is a placeholder for the text entered by the user.
Message for empty Customers search results. %@ is a placeholder for the text entered by the user.
Message for empty Orders search results. The %@ is a placeholder for the text entered by the user.
Message for empty Products search results. The %@ is a placeholder for the text entered by the user. */
"We're sorry, we couldn't find results for “%@”" = "「%@」の検索結果が見つかりませんでした。";
Expand Down Expand Up @@ -6375,6 +6380,9 @@ This is the link to the website, and forms part of a longer sentence which it sh
/* Used when the response doesn't have a valid url to display */
"unknown url" = "不明な URL";

/* Verb. Dismiss the web view screen. */
"webKit.button.dismiss" = "削除";

/* Placeholder for site url, if the url is unknown.Presented when logging in with a site address that does not have a valid Jetpack installation.The error would read: to use this app for your site you'll need...
Placeholder for site url, if the url is unknown.Presented when logging in with a store address that does not match the account entered. */
"your site" = "あなたのサイト";
Expand Down
Loading