shopify_app 9.0.4 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -0
  3. data/README.md +31 -23
  4. data/app/assets/javascripts/shopify_app/storage_access.js +1 -1
  5. data/app/controllers/shopify_app/callback_controller.rb +1 -1
  6. data/app/controllers/shopify_app/sessions_controller.rb +26 -13
  7. data/app/views/shopify_app/sessions/enable_cookies.html.erb +1 -0
  8. data/config/locales/cs.yml +23 -0
  9. data/config/locales/da.yml +20 -0
  10. data/config/locales/de.yml +2 -2
  11. data/config/locales/es.yml +2 -2
  12. data/config/locales/fi.yml +20 -0
  13. data/config/locales/fr.yml +3 -3
  14. data/config/locales/hi.yml +23 -0
  15. data/config/locales/it.yml +2 -3
  16. data/config/locales/ja.yml +1 -1
  17. data/config/locales/ko.yml +19 -0
  18. data/config/locales/ms.yml +22 -0
  19. data/config/locales/nb.yml +21 -0
  20. data/config/locales/nl.yml +7 -7
  21. data/config/locales/pl.yml +21 -0
  22. data/config/locales/pt-BR.yml +2 -2
  23. data/config/locales/pt-PT.yml +22 -0
  24. data/config/locales/sv.yml +21 -0
  25. data/config/locales/th.yml +20 -0
  26. data/config/locales/tr.yml +22 -0
  27. data/config/locales/zh-CN.yml +2 -2
  28. data/config/locales/zh-TW.yml +1 -2
  29. data/docs/Releasing.md +0 -1
  30. data/lib/generators/shopify_app/install/install_generator.rb +10 -8
  31. data/lib/generators/shopify_app/install/templates/shopify_app.rb +5 -2
  32. data/lib/generators/shopify_app/install/templates/user_agent.rb +5 -0
  33. data/lib/shopify_app/controller_concerns/login_protection.rb +12 -3
  34. data/lib/shopify_app/utils.rb +7 -0
  35. data/lib/shopify_app/version.rb +1 -1
  36. data/package-lock.json +1144 -1164
  37. data/package.json +1 -1
  38. data/shopify_app.gemspec +5 -3
  39. metadata +54 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b0c4f236ab9c71186ed3095ed7da95a10dbaa0fd89cb7e0e848bf04257c21ac
4
- data.tar.gz: 6874836046e839e20e7e7d40f091cab488c4ac61c2fb492ab3044d05cb4c8d9d
3
+ metadata.gz: 5efea1849894001dd33e89e8beaab22dc7630f383a263b1638b2e316478c4927
4
+ data.tar.gz: f6b8fb40731e82c83ebb57548814a9ea6aa5691691606c50fa986191b00f092f
5
5
  SHA512:
6
- metadata.gz: 256797e0845484538af23db0bf1bb90fae3398a5536e99d095d235bd9d812c3e5d00030b8f3c4cd36ef27a16a282317d341413da3d9fb5854309a06cf3af77ec
7
- data.tar.gz: 4369be48e85023c76ea2a7ec05a189a17e8f7416e74e80186e4fb3b133687dd125ad7c40b0bfb808f39ac73a1cfaf5eca69d597d571b96882b0439f376d6c4ab
6
+ metadata.gz: 7d278a7a7dc385940cbfdaa832d7e05f69f31c5bb57ce007f0a776ed1d926682fb36f88de490b63d9208ccca50b39e30057c3c14d3056d80301fed95468484c4
7
+ data.tar.gz: ec1ebf4b962a4cfde1abf6d771caa0e7910ef04cbaade77961f97234799b3db4a21d799434bf20d12b3d00653b59f923871fe03d6132efa880d092d7f2ebb9be
data/CHANGELOG.md CHANGED
@@ -1,3 +1,42 @@
1
+ 11.1.0
2
+ -----
3
+
4
+ * Add Webmock and Pry as development dependencies
5
+ * Update install generator to leverage updates to ShopifyAPI::ApiVersion add in v8.0.0 of the shopify_api gem [#790](https://github.com/Shopify/shopify_app/pull/790)
6
+
7
+
8
+ 11.0.2
9
+ -----
10
+
11
+ * Lock shopify_api gem dependency to `~> 7.0` from `>= 7.0.0`.
12
+ * Remove flakey JS Tests
13
+ * bump sqlite3 development dependency to `~>1.4` from `~> 1.3.6`. [#789](https://github.com/Shopify/shopify_app/pull/789)
14
+
15
+ 11.0.1
16
+ -----
17
+
18
+ * Add dotenv-rails gem to install generator, so apps fetch credentials from `.env` by default: [#776](https://github.com/Shopify/shopify_app/pull/776)
19
+
20
+ 11.0.0
21
+ -----
22
+
23
+ * Rename `login_url` method to `login_url_with_optional_shop` to avoid ambiguity with Rails' route helper method of the
24
+ same name (see [#585](https://github.com/Shopify/shopify_app/pull/585)).
25
+
26
+ 10.0.0
27
+ -----
28
+
29
+ * Make sure OAuth-related redirects return user to originally requested URL once authenticated
30
+ * Add/update translations
31
+ * Update README to clarify nested routes
32
+ * Remove example app. Users should instead use the generators to scaffold an example app.
33
+ * Bump required Rails version to `> 5.2.1` to ensure `5.2.1.1` or greater is used. This ensures two things:
34
+ * Apps are not vulnerable to [CVE-2018-16476](https://nvd.nist.gov/vuln/detail/CVE-2018-16476)
35
+ * Webhook payloads, from Shopify for API version 2019-07, which are processed in ActiveJob background jobs (the
36
+ default behaviour of shopify_app's WebhooksController) are compatible, due to how ActiveJob versions prior to
37
+ 5.2.1.1 process GlobalIDs encoded as string in job parameters. This prevents the
38
+ [exceptions reported previously](https://github.com/Shopify/shopify_app/issues/600).
39
+
1
40
  9.0.4
2
41
  -----
3
42
 
data/README.md CHANGED
@@ -26,7 +26,6 @@ Table of Contents
26
26
  * [App Proxy Controller Generator](#app-proxy-controller-generator)
27
27
  * [Controllers, Routes and Views](#controllers-routes-and-views)
28
28
  * [**Mounting the Engine**](#mounting-the-engine)
29
- * [**Managing Api Keys**](#managing-api-keys)
30
29
  * [**WebhooksManager**](#webhooksmanager)
31
30
  * [**ScripttagsManager**](#scripttagsmanager)
32
31
  * [**AfterAuthenticate Job**](#afterauthenticate-job)
@@ -45,8 +44,6 @@ Description
45
44
  -----------
46
45
  This gem includes a Rails Engine and generators for writing Rails applications using the Shopify API. The Engine provides a SessionsController and all the required code for authenticating with a shop via Oauth (other authentication methods are not supported).
47
46
 
48
- The [example](https://github.com/Shopify/shopify_app/tree/master/example) directory contains an app that was generated with this gem. It also contains sample code demonstrating the usage of the embedded app sdk.
49
-
50
47
  *Note: It's recommended to use this on a new Rails project, so that the generator won't overwrite/delete some of your files.*
51
48
 
52
49
 
@@ -106,11 +103,22 @@ Generators
106
103
  The default generator will run the `install`, `shop`, and `home_controller` generators. This is the recommended way to start your app.
107
104
 
108
105
  ```sh
109
- $ rails generate shopify_app --api_key <your_api_key> --secret <your_app_secret>
106
+ $ rails generate shopify_app
110
107
  ```
111
108
 
112
109
  After running the generator, you will need to run `rake db:migrate` to add tables to your database. You can start your app with `bundle exec rails server` and install your app by visiting localhost.
113
110
 
111
+ ### API Keys
112
+
113
+ The default and install generators have been updated to source Shopify API key and secret from a `.env` file, which you will need to create with the following format:
114
+
115
+ ```
116
+ SHOPIFY_API_KEY=your api key
117
+ SHOPIFY_API_SECRET=your api secret
118
+ ```
119
+
120
+ These values can be found on the "App Setup" page in the [Shopify Partners Dashboard][dashboard].
121
+
114
122
  ### Install Generator
115
123
 
116
124
  ```sh
@@ -118,7 +126,7 @@ $ rails generate shopify_app:install
118
126
 
119
127
  # or optionally with arguments:
120
128
 
121
- $ rails generate shopify_app:install --api_key <your_api_key> --secret <your_app_secret>
129
+ $ rails generate shopify_app:install
122
130
  ```
123
131
 
124
132
  Other options include:
@@ -207,6 +215,19 @@ provider :shopify,
207
215
  callback_path: '/nested/auth/shopify/callback'
208
216
  ```
209
217
 
218
+ You may also need to change your `config/routes.rb` to render a view for `/nested`, since this is what will be rendered in the Shopify Admin of any shops that have installed your app. The engine itself doesn't have a view for this, so you'll need something like this:
219
+
220
+ ```ruby
221
+ # config/routes.rb
222
+ Rails.application.routes.draw do
223
+ root :to => 'something_else#index'
224
+ get "/nested", to: "home#index"
225
+ mount ShopifyApp::Engine, at: '/nested'
226
+ end
227
+ ```
228
+
229
+ Finally, note that if you do this, to add your app to a store, you must navigate to `/nested` in order to render the `Enter your shop domain to log in or install this app.` UI.
230
+
210
231
  ### Custom login URL
211
232
 
212
233
  While you can customize the login view by creating a `/app/views/shopify_app/sessions/new.html.erb` file, you may also want to customize the URL entirely. You can modify your `shopify_app.rb` initializer to provide a custom `login_url` e.g.:
@@ -233,21 +254,6 @@ The current Shopify user will be stored in the rails session at `session[:shopif
233
254
 
234
255
  This will change the type of token that Shopify returns and it will only be valid for a short time. Read more about `Online access` [here](https://help.shopify.com/api/getting-started/authentication/oauth). Note that this means you won't be able to use this token to respond to Webhooks.
235
256
 
236
- Managing Api Keys
237
- -----------------
238
-
239
- The `install` generator places your Api credentials directly into the shopify_app initializer which is convenient and fine for development but once your app goes into production **your api credentials should not be in source control**. When we develop apps we keep our keys in environment variables so a production shopify_app initializer would look like this:
240
-
241
- ```ruby
242
- ShopifyApp.configure do |config|
243
- config.application_name = 'Your app name' # Optional
244
- config.api_key = ENV['SHOPIFY_CLIENT_API_KEY']
245
- config.secret = ENV['SHOPIFY_CLIENT_API_SECRET']
246
- config.scope = 'read_customers, write_products'
247
- config.embedded_app = true
248
- end
249
- ```
250
-
251
257
 
252
258
  WebhooksManager
253
259
  ---------------
@@ -428,7 +434,7 @@ class ReviewsController < ApplicationController
428
434
  end
429
435
  ```
430
436
 
431
- Create your app proxy url in the [Shopify Partners' Dashboard](https://app.shopify.com/services/partners/api_clients), making sure to point it to `https://your_app_website.com/app_proxy`.
437
+ Create your app proxy url in the [Shopify Partners' Dashboard][dashboard], making sure to point it to `https://your_app_website.com/app_proxy`.
432
438
  ![Creating an App Proxy](/images/app-proxy-screenshot.png)
433
439
 
434
440
  Troubleshooting
@@ -465,7 +471,7 @@ config.api_version = '2019-04'
465
471
 
466
472
  ### Session storage change
467
473
 
468
- You will need to add an `api_version` method to you session storage object. The default implmentation for this is.
474
+ You will need to add an `api_version` method to you session storage object. The default implementation for this is.
469
475
  ```ruby
470
476
  def api_version
471
477
  ShopifyApp.configuration.api_version
@@ -474,7 +480,7 @@ end
474
480
 
475
481
  ### Generated file change
476
482
 
477
- `embedded_app.html.erb` the useage of `shop_session.url` needs to be changed to `shop_session.domain`
483
+ `embedded_app.html.erb` the usage of `shop_session.url` needs to be changed to `shop_session.domain`
478
484
  ```erb
479
485
  <script type="text/javascript">
480
486
  ShopifyApp.init({
@@ -504,3 +510,5 @@ is changed to
504
510
  ### ShopifyAPI changes
505
511
 
506
512
  You will need to also follow the ShopifyAPI [upgrade guide](https://github.com/Shopify/shopify_api/blob/master/README.md#-breaking-change-notice-for-version-700-) to ensure your app is ready to work with api versioning.
513
+
514
+ [dashboard]:https://partners.shopify.com
@@ -103,7 +103,7 @@
103
103
 
104
104
  /* ITP 2.0 solution: handles cookie partitioning */
105
105
  StorageAccessHelper.prototype.setUpHelper = function() {
106
- return new ITPHelper({redirectUrl: window.shopOrigin + "/admin/apps/" + window.apiKey});
106
+ return new ITPHelper({redirectUrl: window.shopOrigin + "/admin/apps/" + window.apiKey + window.returnTo});
107
107
  }
108
108
 
109
109
  StorageAccessHelper.prototype.setCookieAndRedirect = function() {
@@ -15,7 +15,7 @@ module ShopifyApp
15
15
  redirect_to return_address
16
16
  else
17
17
  flash[:error] = I18n.t('could_not_log_in')
18
- redirect_to login_url
18
+ redirect_to(login_url_with_optional_shop)
19
19
  end
20
20
  end
21
21
 
@@ -22,14 +22,14 @@ module ShopifyApp
22
22
  does_not_have_storage_access_url: top_level_interaction_path(
23
23
  shop: sanitized_shop_name
24
24
  ),
25
- has_storage_access_url: login_url(top_level: true),
25
+ has_storage_access_url: login_url_with_optional_shop(top_level: true),
26
26
  app_home_url: granted_storage_access_path(shop: sanitized_shop_name),
27
27
  current_shopify_domain: current_shopify_domain,
28
28
  })
29
29
  end
30
30
 
31
31
  def top_level_interaction
32
- @url = login_url(top_level: true)
32
+ @url = login_url_with_optional_shop(top_level: true)
33
33
  validate_shop
34
34
  end
35
35
 
@@ -45,7 +45,7 @@ module ShopifyApp
45
45
  def destroy
46
46
  reset_session
47
47
  flash[:notice] = I18n.t('.logged_out')
48
- redirect_to login_url
48
+ redirect_to(login_url_with_optional_shop)
49
49
  end
50
50
 
51
51
  private
@@ -54,6 +54,8 @@ module ShopifyApp
54
54
  return render_invalid_shop_error unless sanitized_shop_name.present?
55
55
  session['shopify.omniauth_params'] = { shop: sanitized_shop_name }
56
56
 
57
+ session[:return_to] = params[:return_to] if params[:return_to]
58
+
57
59
  if user_agent_can_partition_cookies
58
60
  authenticate_with_partitioning
59
61
  else
@@ -77,7 +79,7 @@ module ShopifyApp
77
79
  authenticate_in_context
78
80
  else
79
81
  set_top_level_oauth_cookie
80
- fullpage_redirect_to enable_cookies_path(shop: sanitized_shop_name)
82
+ enable_cookie_access
81
83
  end
82
84
  end
83
85
 
@@ -96,12 +98,19 @@ module ShopifyApp
96
98
  redirect_to return_address
97
99
  end
98
100
 
101
+ def enable_cookie_access
102
+ fullpage_redirect_to(enable_cookies_path(
103
+ shop: sanitized_shop_name,
104
+ return_to: session[:return_to]
105
+ ))
106
+ end
107
+
99
108
  def authenticate_in_context
100
109
  redirect_to "#{main_app.root_path}auth/shopify"
101
110
  end
102
111
 
103
112
  def authenticate_at_top_level
104
- fullpage_redirect_to login_url(top_level: true)
113
+ fullpage_redirect_to(login_url_with_optional_shop(top_level: true))
105
114
  end
106
115
 
107
116
  def authenticate_in_context?
@@ -119,14 +128,18 @@ module ShopifyApp
119
128
  end
120
129
 
121
130
  def redirect_to_request_storage_access
122
- render :request_storage_access, layout: false, locals: {
123
- does_not_have_storage_access_url: top_level_interaction_path(
124
- shop: sanitized_shop_name
125
- ),
126
- has_storage_access_url: login_url(top_level: true),
127
- app_home_url: granted_storage_access_path(shop: sanitized_shop_name),
128
- current_shopify_domain: current_shopify_domain
129
- }
131
+ render(
132
+ :request_storage_access,
133
+ layout: false,
134
+ locals: {
135
+ does_not_have_storage_access_url: top_level_interaction_path(
136
+ shop: sanitized_shop_name
137
+ ),
138
+ has_storage_access_url: login_url_with_optional_shop(top_level: true),
139
+ app_home_url: granted_storage_access_path(shop: sanitized_shop_name),
140
+ current_shopify_domain: current_shopify_domain,
141
+ }
142
+ )
130
143
  end
131
144
  end
132
145
  end
@@ -17,6 +17,7 @@
17
17
  <script>
18
18
  window.apiKey = "<%= ShopifyApp.configuration.api_key %>";
19
19
  window.shopOrigin = "https://<%= @shop %>";
20
+ window.returnTo = "<%= params[:return_to] %>"
20
21
  </script>
21
22
 
22
23
  <%= javascript_include_tag('shopify_app/enable_cookies', crossorigin: 'anonymous', integrity: true) %>
@@ -0,0 +1,23 @@
1
+ ---
2
+ cs:
3
+ logged_out: Odhlášení proběhlo úspěšně
4
+ could_not_log_in: Nelze se přihlásit do obchodu Shopify
5
+ invalid_shop_url: Neplatná doména obchodu
6
+ enable_cookies_heading: Zapnout soubory cookie z aplikace %{app}
7
+ enable_cookies_body: Pokud chceš v Shopify používat aplikaci %{app}, musíš soubory
8
+ cookie v tomto prohlížeči povolit ručně.
9
+ enable_cookies_footer: Soubory cookie umožňují, aby tě aplikace ověřila pomocí dočasného
10
+ uchování preferencí a osobních údajů. Jejich platnost vyprší po 30 dnech.
11
+ enable_cookies_action: Povolit soubory cookie
12
+ top_level_interaction_heading: Tvůj prohlížeč potřebuje ověřit aplikaci %{app}
13
+ top_level_interaction_body: Tvůj prohlížeč vyžaduje, aby si od tebe aplikace, jako
14
+ je %{app}, nejdřív vyžádaly přístup k souborům cookie, než je pro tebe Shopify
15
+ otevře.
16
+ top_level_interaction_action: Pokračovat
17
+ request_storage_access_heading: Aplikace %{app} potřebuje získat přístup k souborům
18
+ cookie
19
+ request_storage_access_body: Tato aplikace ti umožní ověření prostřednictvím dočasného
20
+ uchování tvých osobních údajů. Pokud chceš používat tuto aplikaci, klikni na tlačítko
21
+ Pokračovat a povol soubory cookie.
22
+ request_storage_access_footer: Platnost souborů cookie vyprší po 30 dnech.
23
+ request_storage_access_action: Pokračovat
@@ -0,0 +1,20 @@
1
+ ---
2
+ da:
3
+ logged_out: Logget ud
4
+ could_not_log_in: Kunne ikke logge ind på Shopify-butik
5
+ invalid_shop_url: Ugyldig butiksdomæne
6
+ enable_cookies_heading: Aktivér cookies fra %{app}
7
+ enable_cookies_body: Du skal manuelt aktivere cookies i denne browser for at kunne
8
+ bruge %{app} i Shopify.
9
+ enable_cookies_footer: Cookies lader appen godkende dig ved at gemme dine præferencer
10
+ og personlige oplysninger midlertidigt. De udløber efter 30 dage.
11
+ enable_cookies_action: Aktivér cookies
12
+ top_level_interaction_heading: Din browser skal godkende %{app}
13
+ top_level_interaction_body: Din browser kræver, at apps som f.eks. %{app} spørger
14
+ dig om adgang til cookies, inden Shopify kan åbne den for dig.
15
+ top_level_interaction_action: Fortsæt
16
+ request_storage_access_heading: "%{app} skal have adgang til cookies"
17
+ request_storage_access_body: Det lader appen godkende dig ved at gemme dine personlige
18
+ oplysninger midlertidigt. Klik på forsæt, og tillad cookies for at bruge appen.
19
+ request_storage_access_footer: Cookies udløber efter 30 dage.
20
+ request_storage_access_action: Fortsæt
@@ -11,8 +11,8 @@ de:
11
11
  Sie laufen nach 30 Tagen ab.
12
12
  enable_cookies_action: Cookies aktivieren
13
13
  top_level_interaction_heading: Ihr Browser muss %{app} authentifizieren
14
- top_level_interaction_body: Ihr Browser verlangt, dass Apps von Drittanbietern wie
15
- %{app} Sie um Zugriff auf Cookies bitten, bevor Shopify sie für Sie öffnen kann.
14
+ top_level_interaction_body: Ihr Browser verlangt, dass Apps wie %{app} Sie um Zugriff
15
+ auf Cookies bitten, bevor Shopify sie für Sie öffnen kann.
16
16
  top_level_interaction_action: Weiter
17
17
  request_storage_access_heading: "%{app} braucht Zugriff auf Cookies"
18
18
  request_storage_access_body: Damit kann die App Sie authentifizieren, indem Ihre
@@ -11,8 +11,8 @@ es:
11
11
  de 30 días.
12
12
  enable_cookies_action: Habilitar cookies
13
13
  top_level_interaction_heading: Tu navegador necesita autenticar %{app}
14
- top_level_interaction_body: Tu navegador requiere aplicaciones externas como %{app}
15
- para solicitarte acceso a cookies antes de que Shopify pueda abrirlo por ti.
14
+ top_level_interaction_body: Tu navegador requiere aplicaciones como %{app} para
15
+ solicitarte acceso a cookies antes de que Shopify pueda abrirlo por ti.
16
16
  top_level_interaction_action: Continuar
17
17
  request_storage_access_heading: "%{app} necesita acceso a las cookies"
18
18
  request_storage_access_body: Esto permite que la aplicación te autentique almacenando
@@ -0,0 +1,20 @@
1
+ ---
2
+ fi:
3
+ logged_out: Olet kirjautunut ulos
4
+ could_not_log_in: Kirjautuminen Shopify-kauppaan ei onnistunut
5
+ invalid_shop_url: Virheellinen kaupan verkkotunnus
6
+ enable_cookies_heading: Ota käyttöön sovelluksen %{app} evästeet
7
+ enable_cookies_body: Sinun on otettava evästeet käyttöön manuaalisesti tässä selaimessa,
8
+ jotta voit käyttää sovellusta %{app} Shopifyssa.
9
+ enable_cookies_footer: Evästeiden avulla sovellus voi todentaa sinut tallentamalla
10
+ asetuksesi ja henkilötietosi tilapäisesti. Ne vanhenevat 30 päivän kuluttua.
11
+ enable_cookies_action: Ota evästeet käyttöön
12
+ top_level_interaction_heading: Selaimesi täytyy todentaa %{app}
13
+ top_level_interaction_body: Selaimesi vaatii sovelluksia, kuten %{app}, pyytämään
14
+ sinulta luvan evästeiden käyttöön, ennen kuin Shopify voi avata sovelluksen.
15
+ top_level_interaction_action: Jatka
16
+ request_storage_access_heading: "%{app} edellyttää evästeiden käyttöä"
17
+ request_storage_access_body: Näin sovellus voi todentaa sinut tallentamalla henkilötietosi
18
+ tilapäisesti. Napsauta Jatka ja salli evästeet sovelluksen käyttämiseksi.
19
+ request_storage_access_footer: Evästeet vanhenevat 30 päivän kuluttua.
20
+ request_storage_access_action: Jatka
@@ -11,9 +11,9 @@ fr:
11
11
  expirent après 30 jours.
12
12
  enable_cookies_action: Activer les cookies
13
13
  top_level_interaction_heading: Votre navigateur doit s'authentifier %{app}
14
- top_level_interaction_body: Votre navigateur nécessite des applications tierces
15
- telles que %{app} pour vous demander l'accès aux cookies avant que Shopify ne
16
- puisse l'ouvrir pour vous.
14
+ top_level_interaction_body: Votre navigateur nécessite des applications telles que
15
+ %{app} pour vous demander l'accès aux cookies avant que Shopify ne puisse l'ouvrir
16
+ pour vous.
17
17
  top_level_interaction_action: Continuer
18
18
  request_storage_access_heading: "%{app} a besoin d'accéder aux cookies"
19
19
  request_storage_access_body: Cela permet à l'application de vous authentifier en
@@ -0,0 +1,23 @@
1
+ ---
2
+ hi:
3
+ logged_out: सफलतापूर्वक लॉग आउट कर दिया
4
+ could_not_log_in: Shopify स्टोर में लॉग इन नहीं किया जा सका
5
+ invalid_shop_url: अमान्य शॉप डोमेन
6
+ enable_cookies_heading: "%{app} के कुकीज़ सक्षम करें"
7
+ enable_cookies_body: आपको %{app} का उपयोग Shopify में करने के लिए इस ब्राउज़र में
8
+ कुकीज़ मैन्युअल रूप से सक्षम करने चाहिए.
9
+ enable_cookies_footer: कुकीज़ अस्थायी रूप से आपकी वरीयताएं और व्यक्तिगत जानकारी स्टोर
10
+ कर ऐप को आपको प्रमाणित करने देते हैं. इनकी समय-सीमा 30 दिनों बाद समाप्त हो जाती
11
+ है.
12
+ enable_cookies_action: कुकीज़ को सक्षम करें
13
+ top_level_interaction_heading: आपके ब्राउज़र को %{app} प्रमाणित करने की आवश्यकता
14
+ है
15
+ top_level_interaction_body: आपके ब्राउज़र को %{app} जैसे ऐप की ज़रूरत होती है, जो
16
+ Shopify द्वारा आपके लिए उसे खोलने से पहले कुकीज़ पर पहुंचने करने की अनुमति मांगे.
17
+ top_level_interaction_action: जारी रखें
18
+ request_storage_access_heading: "%{app} को कुकीज़ पर पहुंच करने की आवश्यकता है"
19
+ request_storage_access_body: यह आपकी व्यक्तिगत जानकारी अस्थायी रूप से स्टोर कर ऐप
20
+ को आपको प्रमाणित करने देता है. जारी रखें पर क्लिक करें और कुकीज़ को ऐप उपयोग करने
21
+ की अनुमति दें.
22
+ request_storage_access_footer: कुकीज़ की समय-सीमा 30 दिनों बाद समाप्त हो जाती है.
23
+ request_storage_access_action: जारी रखें
@@ -10,9 +10,8 @@ it:
10
10
  temporaneamente le tue preferenze e informazioni personali. Scadono dopo 30 giorni.
11
11
  enable_cookies_action: Abilita i cookie
12
12
  top_level_interaction_heading: Il tuo browser deve autenticare %{app}
13
- top_level_interaction_body: Il tuo browser richiede che app di terze parti come
14
- %{app} ti chiedano l'accesso ai cookie prima dell'apertura automatica da parte
15
- di Shopify.
13
+ top_level_interaction_body: Il tuo browser richiede che app come %{app} ti chiedano
14
+ l'accesso ai cookie prima dell'apertura automatica da parte di Shopify.
16
15
  top_level_interaction_action: Continua
17
16
  request_storage_access_heading: "%{app} deve accedere ai cookie"
18
17
  request_storage_access_body: L'app potrà così autenticarti memorizzando temporaneamente
@@ -8,7 +8,7 @@ ja:
8
8
  enable_cookies_footer: Cookieを使用すると、各種設定や個人情報を一時的に保存することで、アプリ認証を受けることができます。30日後に有効期限が切れます。
9
9
  enable_cookies_action: Cookieを有効にする
10
10
  top_level_interaction_heading: お使いのブラウザを更新する必要があります%{app}
11
- top_level_interaction_body: Shopifyがアプリを開けるように、ブラウザーはCookie にアクセスするための%{app}のような外部アプリが必要です。
11
+ top_level_interaction_body: Shopifyがアプリを開けるように、ブラウザーはCookieにアクセスするための%{app}のようなアプリが必要です。
12
12
  top_level_interaction_action: 続ける
13
13
  request_storage_access_heading: "%{app}クッキーにアクセスする必要がある"
14
14
  request_storage_access_body: Cookieを使用すると、個人情報を一時的に保存することで、アプリ認証を受けることができます。[続行]