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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +39 -0
- data/README.md +31 -23
- data/app/assets/javascripts/shopify_app/storage_access.js +1 -1
- data/app/controllers/shopify_app/callback_controller.rb +1 -1
- data/app/controllers/shopify_app/sessions_controller.rb +26 -13
- data/app/views/shopify_app/sessions/enable_cookies.html.erb +1 -0
- data/config/locales/cs.yml +23 -0
- data/config/locales/da.yml +20 -0
- data/config/locales/de.yml +2 -2
- data/config/locales/es.yml +2 -2
- data/config/locales/fi.yml +20 -0
- data/config/locales/fr.yml +3 -3
- data/config/locales/hi.yml +23 -0
- data/config/locales/it.yml +2 -3
- data/config/locales/ja.yml +1 -1
- data/config/locales/ko.yml +19 -0
- data/config/locales/ms.yml +22 -0
- data/config/locales/nb.yml +21 -0
- data/config/locales/nl.yml +7 -7
- data/config/locales/pl.yml +21 -0
- data/config/locales/pt-BR.yml +2 -2
- data/config/locales/pt-PT.yml +22 -0
- data/config/locales/sv.yml +21 -0
- data/config/locales/th.yml +20 -0
- data/config/locales/tr.yml +22 -0
- data/config/locales/zh-CN.yml +2 -2
- data/config/locales/zh-TW.yml +1 -2
- data/docs/Releasing.md +0 -1
- data/lib/generators/shopify_app/install/install_generator.rb +10 -8
- data/lib/generators/shopify_app/install/templates/shopify_app.rb +5 -2
- data/lib/generators/shopify_app/install/templates/user_agent.rb +5 -0
- data/lib/shopify_app/controller_concerns/login_protection.rb +12 -3
- data/lib/shopify_app/utils.rb +7 -0
- data/lib/shopify_app/version.rb +1 -1
- data/package-lock.json +1144 -1164
- data/package.json +1 -1
- data/shopify_app.gemspec +5 -3
- metadata +54 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5efea1849894001dd33e89e8beaab22dc7630f383a263b1638b2e316478c4927
|
4
|
+
data.tar.gz: f6b8fb40731e82c83ebb57548814a9ea6aa5691691606c50fa986191b00f092f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
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]
|
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
|

|
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
|
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
|
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() {
|
@@ -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:
|
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 =
|
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
|
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
|
-
|
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
|
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
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
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
|
data/config/locales/de.yml
CHANGED
@@ -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
|
15
|
-
|
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
|
data/config/locales/es.yml
CHANGED
@@ -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
|
15
|
-
|
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
|
data/config/locales/fr.yml
CHANGED
@@ -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
|
15
|
-
|
16
|
-
|
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: जारी रखें
|
data/config/locales/it.yml
CHANGED
@@ -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
|
14
|
-
|
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
|
data/config/locales/ja.yml
CHANGED
@@ -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
|
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を使用すると、個人情報を一時的に保存することで、アプリ認証を受けることができます。[続行]
|