shopify_app 22.2.1 → 22.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.nvmrc +1 -1
  3. data/CHANGELOG.md +15 -1
  4. data/CONTRIBUTING.md +0 -5
  5. data/Gemfile.lock +75 -71
  6. data/README.md +8 -1
  7. data/app/assets/javascripts/shopify_app/redirect.js +3 -9
  8. data/app/controllers/shopify_app/sessions_controller.rb +2 -1
  9. data/app/views/shopify_app/shared/redirect.html.erb +5 -1
  10. data/config/locales/cs.yml +0 -18
  11. data/config/locales/da.yml +0 -15
  12. data/config/locales/de.yml +0 -17
  13. data/config/locales/en.yml +0 -11
  14. data/config/locales/es.yml +0 -17
  15. data/config/locales/fi.yml +0 -15
  16. data/config/locales/fr.yml +0 -18
  17. data/config/locales/it.yml +0 -16
  18. data/config/locales/ja.yml +0 -12
  19. data/config/locales/ko.yml +0 -14
  20. data/config/locales/nb.yml +0 -16
  21. data/config/locales/nl.yml +0 -16
  22. data/config/locales/pl.yml +0 -16
  23. data/config/locales/pt-BR.yml +0 -16
  24. data/config/locales/pt-PT.yml +0 -17
  25. data/config/locales/sv.yml +0 -16
  26. data/config/locales/th.yml +0 -15
  27. data/config/locales/tr.yml +0 -17
  28. data/config/locales/vi.yml +0 -17
  29. data/config/locales/zh-CN.yml +0 -11
  30. data/config/locales/zh-TW.yml +0 -11
  31. data/docs/Upgrading.md +17 -3
  32. data/docs/shopify_app/sessions.md +4 -1
  33. data/karma.conf.js +0 -3
  34. data/lib/generators/shopify_app/install/templates/shopify_app.rb.tt +2 -2
  35. data/lib/shopify_app/configuration.rb +6 -4
  36. data/lib/shopify_app/controller_concerns/csrf_protection.rb +2 -1
  37. data/lib/shopify_app/controller_concerns/embedded_app.rb +5 -1
  38. data/lib/shopify_app/controller_concerns/localization.rb +1 -1
  39. data/lib/shopify_app/controller_concerns/login_protection.rb +8 -1
  40. data/lib/shopify_app/controller_concerns/token_exchange.rb +12 -8
  41. data/lib/shopify_app/controller_concerns/with_shopify_id_token.rb +16 -9
  42. data/lib/shopify_app/engine.rb +4 -9
  43. data/lib/shopify_app/utils.rb +10 -1
  44. data/lib/shopify_app/version.rb +1 -1
  45. data/package.json +1 -1
  46. data/shopify_app.gemspec +2 -1
  47. data/yarn.lock +8 -8
  48. metadata +23 -26
  49. data/app/assets/images/storage_access.svg +0 -1
  50. data/app/assets/javascripts/shopify_app/app_bridge_3.7.8.js +0 -10
  51. data/app/assets/javascripts/shopify_app/app_bridge_redirect.js +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f051af39179d826c762c3770016a18ad61bd36f524cdeb91717fceb77b4676e2
4
- data.tar.gz: 786f42cc7ca016c11c02ca801460637368e5eac21d8ececbaa8ce1514e618adb
3
+ metadata.gz: 46bfbed5702afb3db0446577b3846c68c54b51e3453dd1569f0ad0eb727554c8
4
+ data.tar.gz: 1171f8c433863622ca5c73742c258e02cc59fba3840edcdef1c4002223171bd4
5
5
  SHA512:
6
- metadata.gz: 9f2a94db38f35f29c3f1b7143e3f41238fa895fa5018e9069b135f75c0c664d56b1a7379feab9c2fce5a05b3120827a8347e8a64484668ef08c1e32de5208503
7
- data.tar.gz: 2fefc18c3e1745618126b64677233aa74954929a72a33b7859dfb4d5b309c4f0cc634d6947458b3f847f8bede70f82736d129573244c9eeab7c0946a8e02b28c
6
+ metadata.gz: 59f3a11a7789c4c9bca786cb8ec99b59ed085529b649d4269b439e98c975e5cff97faef3f0b139d10a472b4142d513eba2a3859908cac37a5d9b354996f380ed
7
+ data.tar.gz: 44ca61a7b14e1ad309bd24afec9d344592b7d399d44c83961e89687ed9557666c4e6f0e65e57268d8dfd178664266757815135cc5b37f5f95abc6814222a0e55
data/.nvmrc CHANGED
@@ -1 +1 @@
1
- 12.22.8
1
+ 20.10.0
data/CHANGELOG.md CHANGED
@@ -1,14 +1,28 @@
1
1
  Unreleased
2
2
  ----------
3
3
 
4
+ 22.3.0 (July 24, 2024)
5
+ ----------
6
+ - Deprecate `ShopifyApp::JWTMiddleware`. And remove internal usage. Any existing app code relying on decoded JWT contents set from `request.env` should instead include the `WithShopifyIdToken` concern and call its respective methods. [#1861](https://github.com/Shopify/shopify_app/pull/1861) [Migration Guide](/docs/Upgrading.md#v2300---removed-shopifyappjwtmiddleware)
7
+ - Handle scenario when invalid URI is passed to `sanitize_shop_domain` [#1852](https://github.com/Shopify/shopify_app/pull/1852)
8
+ - Remove references to old JS files during asset precompile [#1865](https://github.com/Shopify/shopify_app/pull/1865)
9
+ - Remove old translation keys for `enable_cookies_*`, `top_level_interaction_*` and `request_storage_access_*` [#1865](https://github.com/Shopify/shopify_app/pull/1865)
10
+ - Add invalid id token handling for `current_shopify_domain` method [#1868](https://github.com/Shopify/shopify_app/pull/1868)
11
+ - Keep original path and params when redirecting deep links to embed [#1869](https://github.com/Shopify/shopify_app/pull/1869)
12
+ - Fix managed install path for SPIN environments [#1877](https://github.com/Shopify/shopify_app/pull/1877)
13
+ - Migrate fullpage redirect to App Bridge CDN [#1870](https://github.com/Shopify/shopify_app/pull/1870)
14
+ - Improve embedded requests detection with `Sec-Fetch-Dest` header [#1873](https://github.com/Shopify/shopify_app/pull/1873)
15
+ - Fix bug where locale is not read from session if locale param is not present in app request [#1878](https://github.com/Shopify/shopify_app/pull/1878)
16
+
4
17
  22.2.1 (May 6,2024)
18
+ ----------
5
19
  * Patch - Don't delete session on 401 errors during retry in `with_token_refetch` [#1844](https://github.com/Shopify/shopify_app/pull/1844)
6
20
 
7
21
  22.2.0 (May 2,2024)
8
22
  ----------
9
23
  * Add new zero redirect authorization strategy - `Token Exchange`.
10
24
  - This strategy replaces the existing OAuth flow for embedded apps and remove the redirects that were previously necessary to complete OAuth.
11
- See ["New embedded app authorization strategy"](/README.md/#new-embedded-app-authorization-strategy) for how to enable this feature.
25
+ See ["New embedded app authorization strategy (Token Exchange)"](/README.md/#new-embedded-app-authorization-strategy-token-exchange) for how to enable this feature.
12
26
  - Related PRs: [#1817](https://github.com/Shopify/shopify_app/pull/1817),
13
27
  [#1818](https://github.com/Shopify/shopify_app/pull/1818),
14
28
  [#1819](https://github.com/Shopify/shopify_app/pull/1819),
data/CONTRIBUTING.md CHANGED
@@ -89,8 +89,3 @@ To run tests, you'll need to make sure that your development environment is setu
89
89
  * To run all tests: `bundle exec rake test`
90
90
  * To run a specific test file: `bundle exec rake test TEST=test/controllers/callback_controller_test.rb`
91
91
  * To run a single test: `bundle exec rake test TEST=test/controllers/callback_controller_test.rb:50` where `50` is the line number on or inside the test case.
92
-
93
- ### App Bridge client
94
-
95
- This gem ships with a UMD version of the App Bridge client. It lives inside the assets folder: `app/assets/javascripts/shopify_app/`. To update the client, simply download the UMD build from [unpkg.com](https://unpkg.com/@shopify/app-bridge) and save it into the folder.
96
- Please follow the convention of including the client version number in the filename. Finally, change the reference to the new App Bridge client inside `app/assets/javascripts/shopify_app/app_bridge_redirect.js`.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shopify_app (22.2.1)
4
+ shopify_app (22.3.0)
5
5
  activeresource
6
6
  addressable (~> 2.7)
7
7
  jwt (>= 2.2.3)
@@ -13,68 +13,68 @@ PATH
13
13
  GEM
14
14
  remote: https://rubygems.org/
15
15
  specs:
16
- actioncable (6.1.7.6)
17
- actionpack (= 6.1.7.6)
18
- activesupport (= 6.1.7.6)
16
+ actioncable (6.1.7.8)
17
+ actionpack (= 6.1.7.8)
18
+ activesupport (= 6.1.7.8)
19
19
  nio4r (~> 2.0)
20
20
  websocket-driver (>= 0.6.1)
21
- actionmailbox (6.1.7.6)
22
- actionpack (= 6.1.7.6)
23
- activejob (= 6.1.7.6)
24
- activerecord (= 6.1.7.6)
25
- activestorage (= 6.1.7.6)
26
- activesupport (= 6.1.7.6)
21
+ actionmailbox (6.1.7.8)
22
+ actionpack (= 6.1.7.8)
23
+ activejob (= 6.1.7.8)
24
+ activerecord (= 6.1.7.8)
25
+ activestorage (= 6.1.7.8)
26
+ activesupport (= 6.1.7.8)
27
27
  mail (>= 2.7.1)
28
- actionmailer (6.1.7.6)
29
- actionpack (= 6.1.7.6)
30
- actionview (= 6.1.7.6)
31
- activejob (= 6.1.7.6)
32
- activesupport (= 6.1.7.6)
28
+ actionmailer (6.1.7.8)
29
+ actionpack (= 6.1.7.8)
30
+ actionview (= 6.1.7.8)
31
+ activejob (= 6.1.7.8)
32
+ activesupport (= 6.1.7.8)
33
33
  mail (~> 2.5, >= 2.5.4)
34
34
  rails-dom-testing (~> 2.0)
35
- actionpack (6.1.7.6)
36
- actionview (= 6.1.7.6)
37
- activesupport (= 6.1.7.6)
35
+ actionpack (6.1.7.8)
36
+ actionview (= 6.1.7.8)
37
+ activesupport (= 6.1.7.8)
38
38
  rack (~> 2.0, >= 2.0.9)
39
39
  rack-test (>= 0.6.3)
40
40
  rails-dom-testing (~> 2.0)
41
41
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
42
- actiontext (6.1.7.6)
43
- actionpack (= 6.1.7.6)
44
- activerecord (= 6.1.7.6)
45
- activestorage (= 6.1.7.6)
46
- activesupport (= 6.1.7.6)
42
+ actiontext (6.1.7.8)
43
+ actionpack (= 6.1.7.8)
44
+ activerecord (= 6.1.7.8)
45
+ activestorage (= 6.1.7.8)
46
+ activesupport (= 6.1.7.8)
47
47
  nokogiri (>= 1.8.5)
48
- actionview (6.1.7.6)
49
- activesupport (= 6.1.7.6)
48
+ actionview (6.1.7.8)
49
+ activesupport (= 6.1.7.8)
50
50
  builder (~> 3.1)
51
51
  erubi (~> 1.4)
52
52
  rails-dom-testing (~> 2.0)
53
53
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
54
- activejob (6.1.7.6)
55
- activesupport (= 6.1.7.6)
54
+ activejob (6.1.7.8)
55
+ activesupport (= 6.1.7.8)
56
56
  globalid (>= 0.3.6)
57
- activemodel (6.1.7.6)
58
- activesupport (= 6.1.7.6)
57
+ activemodel (6.1.7.8)
58
+ activesupport (= 6.1.7.8)
59
59
  activemodel-serializers-xml (1.0.2)
60
60
  activemodel (> 5.x)
61
61
  activesupport (> 5.x)
62
62
  builder (~> 3.1)
63
- activerecord (6.1.7.6)
64
- activemodel (= 6.1.7.6)
65
- activesupport (= 6.1.7.6)
66
- activeresource (6.0.0)
63
+ activerecord (6.1.7.8)
64
+ activemodel (= 6.1.7.8)
65
+ activesupport (= 6.1.7.8)
66
+ activeresource (6.1.0)
67
67
  activemodel (>= 6.0)
68
68
  activemodel-serializers-xml (~> 1.0)
69
69
  activesupport (>= 6.0)
70
- activestorage (6.1.7.6)
71
- actionpack (= 6.1.7.6)
72
- activejob (= 6.1.7.6)
73
- activerecord (= 6.1.7.6)
74
- activesupport (= 6.1.7.6)
70
+ activestorage (6.1.7.8)
71
+ actionpack (= 6.1.7.8)
72
+ activejob (= 6.1.7.8)
73
+ activerecord (= 6.1.7.8)
74
+ activesupport (= 6.1.7.8)
75
75
  marcel (~> 1.0)
76
76
  mini_mime (>= 1.1.0)
77
- activesupport (6.1.7.6)
77
+ activesupport (6.1.7.8)
78
78
  concurrent-ruby (~> 1.0, >= 1.0.2)
79
79
  i18n (>= 1.6, < 2)
80
80
  minitest (>= 5.1)
@@ -85,16 +85,16 @@ GEM
85
85
  ast (2.4.2)
86
86
  binding_of_caller (1.0.0)
87
87
  debug_inspector (>= 0.0.1)
88
- builder (3.2.4)
88
+ builder (3.3.0)
89
89
  byebug (11.1.3)
90
90
  coderay (1.1.3)
91
- concurrent-ruby (1.2.2)
91
+ concurrent-ruby (1.3.3)
92
92
  crack (0.4.5)
93
93
  rexml
94
94
  crass (1.0.6)
95
95
  date (3.3.3)
96
96
  debug_inspector (1.1.0)
97
- erubi (1.12.0)
97
+ erubi (1.13.0)
98
98
  globalid (1.1.0)
99
99
  activesupport (>= 5.0)
100
100
  hash_diff (1.1.1)
@@ -102,12 +102,12 @@ GEM
102
102
  httparty (0.21.0)
103
103
  mini_mime (>= 1.0.0)
104
104
  multi_xml (>= 0.5.2)
105
- i18n (1.13.0)
105
+ i18n (1.14.5)
106
106
  concurrent-ruby (~> 1.0)
107
107
  json (2.7.2)
108
108
  jwt (2.7.0)
109
109
  language_server-protocol (3.17.0.3)
110
- loofah (2.21.3)
110
+ loofah (2.22.0)
111
111
  crass (~> 1.0.2)
112
112
  nokogiri (>= 1.12.0)
113
113
  mail (2.8.1)
@@ -132,11 +132,11 @@ GEM
132
132
  net-smtp (0.3.3)
133
133
  net-protocol
134
134
  nio4r (2.5.9)
135
- nokogiri (1.16.2-arm64-darwin)
135
+ nokogiri (1.16.6-arm64-darwin)
136
136
  racc (~> 1.4)
137
- nokogiri (1.16.2-x86_64-darwin)
137
+ nokogiri (1.16.6-x86_64-darwin)
138
138
  racc (~> 1.4)
139
- nokogiri (1.16.2-x86_64-linux)
139
+ nokogiri (1.16.6-x86_64-linux)
140
140
  racc (~> 1.4)
141
141
  oj (3.14.3)
142
142
  openssl (3.1.0)
@@ -154,37 +154,39 @@ GEM
154
154
  binding_of_caller (~> 1.0)
155
155
  pry (~> 0.13)
156
156
  public_suffix (5.0.1)
157
- racc (1.7.3)
158
- rack (2.2.7)
157
+ racc (1.8.0)
158
+ rack (2.2.9)
159
159
  rack-test (2.1.0)
160
160
  rack (>= 1.3)
161
- rails (6.1.7.6)
162
- actioncable (= 6.1.7.6)
163
- actionmailbox (= 6.1.7.6)
164
- actionmailer (= 6.1.7.6)
165
- actionpack (= 6.1.7.6)
166
- actiontext (= 6.1.7.6)
167
- actionview (= 6.1.7.6)
168
- activejob (= 6.1.7.6)
169
- activemodel (= 6.1.7.6)
170
- activerecord (= 6.1.7.6)
171
- activestorage (= 6.1.7.6)
172
- activesupport (= 6.1.7.6)
161
+ rails (6.1.7.8)
162
+ actioncable (= 6.1.7.8)
163
+ actionmailbox (= 6.1.7.8)
164
+ actionmailer (= 6.1.7.8)
165
+ actionpack (= 6.1.7.8)
166
+ actiontext (= 6.1.7.8)
167
+ actionview (= 6.1.7.8)
168
+ activejob (= 6.1.7.8)
169
+ activemodel (= 6.1.7.8)
170
+ activerecord (= 6.1.7.8)
171
+ activestorage (= 6.1.7.8)
172
+ activesupport (= 6.1.7.8)
173
173
  bundler (>= 1.15.0)
174
- railties (= 6.1.7.6)
174
+ railties (= 6.1.7.8)
175
175
  sprockets-rails (>= 2.0.0)
176
176
  rails-controller-testing (1.0.5)
177
177
  actionpack (>= 5.0.1.rc1)
178
178
  actionview (>= 5.0.1.rc1)
179
179
  activesupport (>= 5.0.1.rc1)
180
- rails-dom-testing (2.0.3)
181
- activesupport (>= 4.2.0)
180
+ rails-dom-testing (2.2.0)
181
+ activesupport (>= 5.0.0)
182
+ minitest
182
183
  nokogiri (>= 1.6)
183
- rails-html-sanitizer (1.5.0)
184
- loofah (~> 2.19, >= 2.19.1)
185
- railties (6.1.7.6)
186
- actionpack (= 6.1.7.6)
187
- activesupport (= 6.1.7.6)
184
+ rails-html-sanitizer (1.6.0)
185
+ loofah (~> 2.21)
186
+ nokogiri (~> 1.14)
187
+ railties (6.1.7.8)
188
+ actionpack (= 6.1.7.8)
189
+ activesupport (= 6.1.7.8)
188
190
  method_source
189
191
  rake (>= 12.2)
190
192
  thor (~> 1.0)
@@ -194,7 +196,8 @@ GEM
194
196
  redirect_safely (1.0.0)
195
197
  activemodel
196
198
  regexp_parser (2.9.0)
197
- rexml (3.2.6)
199
+ rexml (3.3.2)
200
+ strscan
198
201
  rubocop (1.62.1)
199
202
  json (~> 2.3)
200
203
  language_server-protocol (>= 3.17.0)
@@ -239,6 +242,7 @@ GEM
239
242
  sqlite3 (1.7.3-arm64-darwin)
240
243
  sqlite3 (1.7.3-x86_64-darwin)
241
244
  sqlite3 (1.7.3-x86_64-linux)
245
+ strscan (3.1.0)
242
246
  syntax_tree (6.1.1)
243
247
  prettier_print (>= 1.2.0)
244
248
  thor (1.2.2)
@@ -253,7 +257,7 @@ GEM
253
257
  websocket-driver (0.7.5)
254
258
  websocket-extensions (>= 0.1.0)
255
259
  websocket-extensions (0.1.5)
256
- zeitwerk (2.6.4)
260
+ zeitwerk (2.6.16)
257
261
 
258
262
  PLATFORMS
259
263
  arm64-darwin-21
data/README.md CHANGED
@@ -148,6 +148,10 @@ authenticated API access.
148
148
 
149
149
  1. Enable [Shopify managed installation](https://shopify.dev/docs/apps/auth/installation#shopify-managed-installation)
150
150
  by configuring your scopes [through the Shopify CLI](https://shopify.dev/docs/apps/tools/cli/configuration).
151
+ > [!NOTE]
152
+ > Ensure you don't have `use_legacy_install_flow = true` in your `shopify.app.toml` configuration file. If `use_legacy_install_flow` is true, Shopify will not manage the installation process for your app.
153
+ > You should remove the `use_legacy_install_flow` line from your `shopify.app.toml` configuration file or set it to `false`.
154
+
151
155
  2. Enable the new auth strategy in your app's ShopifyApp configuration file.
152
156
 
153
157
  ```ruby
@@ -165,7 +169,10 @@ ShopifyApp.configure do |config|
165
169
  end
166
170
 
167
171
  ```
168
- 3. Enjoy a smoother and faster app installation process.
172
+ 3. Handle special callback logic. If your app has overridden the OAuth CallbackController to run special tasks post authorization,
173
+ you'll need to create and configure a custom PostAuthenticateTasks class to run these tasks after the token exchange. The original
174
+ OAuth CallbackController will not be triggered anymore. See [Post Authenticate Tasks documentation](/docs/shopify_app/authentication.md#post-authenticate-tasks) for more information.
175
+ 4. Enjoy a smoother and faster app installation process.
169
176
 
170
177
  ### API Versioning
171
178
 
@@ -1,5 +1,3 @@
1
- //= require ./app_bridge_redirect.js
2
-
3
1
  (function () {
4
2
  function redirect() {
5
3
  var redirectTargetElement = document.getElementById("redirection-target");
@@ -9,14 +7,10 @@
9
7
  }
10
8
 
11
9
  var targetInfo = JSON.parse(redirectTargetElement.dataset.target);
10
+ var normalizedLink = document.createElement('a');
11
+ normalizedLink.href = targetInfo.url;
12
12
 
13
- var appBridgeUtils = window['app-bridge']['utilities'];
14
-
15
- if (appBridgeUtils.isShopifyEmbedded()) {
16
- window.appBridgeRedirect(targetInfo.url);
17
- } else {
18
- window.top.location.href = targetInfo.url;
19
- }
13
+ open(normalizedLink.href, '_top');
20
14
  }
21
15
 
22
16
  document.addEventListener("DOMContentLoaded", redirect);
@@ -52,7 +52,8 @@ module ShopifyApp
52
52
 
53
53
  def start_install
54
54
  shop_name = sanitized_shop_name.split(".").first
55
- install_path = "https://admin.shopify.com/store/#{shop_name}/oauth/install?client_id=#{ShopifyApp.configuration.api_key}"
55
+ unified_admin_path = ShopifyApp::Utils.unified_admin_path(shop_name)
56
+ install_path = "#{unified_admin_path}/oauth/install?client_id=#{ShopifyApp.configuration.api_key}"
56
57
  redirect_to(install_path, allow_other_host: true)
57
58
  end
58
59
 
@@ -5,9 +5,13 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <base target="_top">
7
7
  <title>Redirecting…</title>
8
+
9
+ <meta name="shopify-api-key" content="<%= ShopifyApp.configuration.api_key %>">
10
+ <%= javascript_include_tag "https://cdn.shopify.com/shopifycloud/app-bridge.js" %>
11
+
8
12
  <%= javascript_include_tag('shopify_app/redirect', crossorigin: 'anonymous', integrity: true) %>
9
13
  </head>
10
- <body data-api-key="<%= ShopifyApp.configuration.api_key %>" data-shop-origin="<%= current_shopify_domain %>" data-host="<%= params[:host] %>" >
14
+ <body>
11
15
  <%=
12
16
  content_tag(:div, nil,
13
17
  id: 'redirection-target',
@@ -3,21 +3,3 @@ cs:
3
3
  logged_out: Odhlášení proběhlo úspěšně
4
4
  could_not_log_in: Nelze se přihlásit do obchodu Shopify
5
5
  invalid_shop_url: Neplatná doména obchodu
6
- enable_cookies_heading: Zapnout soubory cookie z aplikace %{app}
7
- enable_cookies_body: Pokud chcete v Shopify používat aplikaci %{app}, musíte soubory
8
- cookie v tomto prohlížeči povolit ručně.
9
- enable_cookies_footer: Soubory cookie umožňují, aby vás aplikace ověřila pomocí
10
- dočasného 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: Váš prohlížeč potřebuje ověřit aplikaci %{app}
13
- top_level_interaction_body: Váš prohlížeč vyžaduje, aby si od vás aplikace, jako
14
- je %{app}, nejdřív vyžádaly přístup k souborům cookie, než je pro vás 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 vám umožní ověření prostřednictvím dočasného
20
- uchování vašich osobních údajů. Pokud chcete používat tuto aplikaci, klikněte
21
- na tlačítko Pokračovat a povolte soubory cookie.
22
- request_storage_access_footer: Platnost souborů cookie vyprší po 30 dnech.
23
- request_storage_access_action: Pokračovat
@@ -3,18 +3,3 @@ da:
3
3
  logged_out: Logget ud
4
4
  could_not_log_in: Kunne ikke logge ind på Shopify-butik
5
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
@@ -3,20 +3,3 @@ de:
3
3
  logged_out: Erfolgreich ausgelogt
4
4
  could_not_log_in: Shopify Store Login fehlgeschlagen
5
5
  invalid_shop_url: Ungültige Shop-Domain
6
- enable_cookies_heading: Cookies von %{app} aktivieren
7
- enable_cookies_body: Du musst Cookies in diesem Browser manuell aktivieren, um %{app}
8
- in Shopify verwenden zu können.
9
- enable_cookies_footer: Mithilfe von Cookies kann die App dich authentifizieren,
10
- indem deine Einstellungen und personenbezogenen Daten vorübergehend gespeichert
11
- werden. Sie laufen nach 30 Tagen ab.
12
- enable_cookies_action: Cookies aktivieren
13
- top_level_interaction_heading: Dein Browser muss %{app} authentifizieren
14
- top_level_interaction_body: Dein Browser verlangt, dass Apps wie %{app} dich um
15
- Zugriff auf Cookies bitten, bevor Shopify sie für dich öffnen kann.
16
- top_level_interaction_action: Weiter
17
- request_storage_access_heading: "%{app} braucht Zugriff auf Cookies"
18
- request_storage_access_body: Damit kann die App dich authentifizieren, indem deine
19
- Einstellungen und personenbezogenen Daten vorübergehend gespeichert werden. Klicke
20
- auf "Weiter" und erlaube Cookies, um die App zu verwenden.
21
- request_storage_access_footer: Cookies laufen nach 30 Tagen ab.
22
- request_storage_access_action: Weiter
@@ -2,14 +2,3 @@ en:
2
2
  logged_out: 'Successfully logged out'
3
3
  could_not_log_in: 'Could not log in to Shopify store'
4
4
  invalid_shop_url: 'Invalid shop domain'
5
- enable_cookies_heading: "Enable cookies from %{app}"
6
- enable_cookies_body: "You must manually enable cookies in this browser in order to use %{app} within Shopify."
7
- enable_cookies_footer: 'Cookies let the app authenticate you by temporarily storing your preferences and personal information. They expire after 30 days.'
8
- enable_cookies_action: 'Enable cookies'
9
- top_level_interaction_heading: "Your browser needs to authenticate %{app}"
10
- top_level_interaction_body: "Your browser requires apps like %{app} to ask you for access to cookies before Shopify can open it for you."
11
- top_level_interaction_action: 'Continue'
12
- request_storage_access_heading: "%{app} needs access to cookies"
13
- request_storage_access_body: "This lets the app authenticate you by temporarily storing your personal information. Click continue and allow cookies to use the app."
14
- request_storage_access_footer: 'Cookies expire after 30 days.'
15
- request_storage_access_action: 'Continue'
@@ -3,20 +3,3 @@ es:
3
3
  logged_out: Cerrar sesión
4
4
  could_not_log_in: No se pudo iniciar sesión en tu tienda Shopify
5
5
  invalid_shop_url: Dominio de tienda inválido
6
- enable_cookies_heading: Habilitar cookies de %{app}
7
- enable_cookies_body: Debes habilitar manualmente las cookies en este navegador para
8
- usar %{app} en Shopify.
9
- enable_cookies_footer: Las cookies permiten que la aplicación te autentique almacenando
10
- temporalmente tus preferencias y datos personales. Las cookies expiran al cabo
11
- de 30 días.
12
- enable_cookies_action: Habilitar cookies
13
- top_level_interaction_heading: Tu navegador necesita autenticar %{app}
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
- top_level_interaction_action: Continuar
17
- request_storage_access_heading: "%{app} necesita acceso a las cookies"
18
- request_storage_access_body: Esto permite que la aplicación te autentique almacenando
19
- temporalmente tus datos personales. Haz clic en continuar y permite que las cookies
20
- utilicen la aplicación.
21
- request_storage_access_footer: Las cookies expiran a los 30 días.
22
- request_storage_access_action: Continuar
@@ -3,18 +3,3 @@ fi:
3
3
  logged_out: Olet kirjautunut ulos
4
4
  could_not_log_in: Kirjautuminen Shopify-kauppaan ei onnistunut
5
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. Klikkaa 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
@@ -3,21 +3,3 @@ fr:
3
3
  logged_out: Vous êtes déconnecté(e)
4
4
  could_not_log_in: Impossible de se connecter à la boutique Shopify
5
5
  invalid_shop_url: Url invalide
6
- enable_cookies_heading: Activer les cookies de %{app}
7
- enable_cookies_body: Vous devez manuellement activer les cookies dans ce navigateur
8
- pour utiliser %{app} dans Shopify.
9
- enable_cookies_footer: Les cookies permettent à l'application de vous authentifier
10
- en stockant temporairement vos préférences et informations personnelles. Celles-ci
11
- expirent après 30 jours.
12
- enable_cookies_action: Activer les cookies
13
- top_level_interaction_heading: Votre navigateur doit s'authentifier %{app}
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
- top_level_interaction_action: Continuer
18
- request_storage_access_heading: "%{app} a besoin d'accéder aux cookies"
19
- request_storage_access_body: Cela permet à l'application de vous authentifier en
20
- stockant temporairement vos informations personnelles. Cliquez pour continuer
21
- et autorisez les cookies à utiliser l'application.
22
- request_storage_access_footer: Les cookies expirent après 30 jours.
23
- request_storage_access_action: Continuer
@@ -3,19 +3,3 @@ it:
3
3
  logged_out: Disconnessione effettuata correttamente
4
4
  could_not_log_in: Impossibile accedere al negozio Shopify
5
5
  invalid_shop_url: Dominio negozio non valido
6
- enable_cookies_heading: Abilita i cookie di %{app}
7
- enable_cookies_body: Devi abilitare manualmente i cookie in questo browser per poter
8
- utilizzare %{app} da Shopify.
9
- enable_cookies_footer: I cookie consentono all'app di autenticarti memorizzando
10
- temporaneamente le tue preferenze e informazioni personali. Scadono dopo 30 giorni.
11
- enable_cookies_action: Abilita i cookie
12
- top_level_interaction_heading: Il tuo browser deve autenticare %{app}
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.
15
- top_level_interaction_action: Continua
16
- request_storage_access_heading: "%{app} deve accedere ai cookie"
17
- request_storage_access_body: L'app potrà così autenticarti memorizzando temporaneamente
18
- le tue informazioni personali. Clicca su Continua e consenti ai cookie di utilizzare
19
- l'app.
20
- request_storage_access_footer: I cookie scadono dopo 30 giorni.
21
- request_storage_access_action: Continua
@@ -3,15 +3,3 @@ ja:
3
3
  logged_out: ログアウトに成功しました
4
4
  could_not_log_in: Shopifyストアにログインできませんでした
5
5
  invalid_shop_url: ショップのドメインが無効です
6
- enable_cookies_heading: "%{app}からのCookieを有効にする"
7
- enable_cookies_body: Shopifyで%{app}を使用できるようにするためには、このブラウザのCookieを手動で有効にする必要があります。
8
- enable_cookies_footer: Cookieを使用すると、各種設定や個人情報を一時的に保存することで、アプリ認証を受けることができます。30日後に有効期限が切れます。
9
- enable_cookies_action: Cookieを有効にする
10
- top_level_interaction_heading: お使いのブラウザを更新する必要があります%{app}
11
- top_level_interaction_body: Shopifyがアプリを開けるように、ブラウザはCookieにアクセスするための%{app}のようなアプリが必要です。
12
- top_level_interaction_action: 続ける
13
- request_storage_access_heading: "%{app}はCookieへのアクセス許可が必要です"
14
- request_storage_access_body: Cookieを使用すると、個人情報を一時的に保存することで、アプリ認証を受けることができます。[続ける]
15
- をクリックすると、アプリはCookieを利用します。
16
- request_storage_access_footer: Cookieは30日後に有効期限が切れます。
17
- request_storage_access_action: 続ける
@@ -3,17 +3,3 @@ ko:
3
3
  logged_out: 성공적으로 로그아웃 되었습니다.
4
4
  could_not_log_in: Shopify 스토어에 로그인할 수 없습니다.
5
5
  invalid_shop_url: 유효하지 않은 상점 도메인
6
- enable_cookies_heading: "%{app}에서 쿠키를 사용 가능"
7
- enable_cookies_body: Shopify 내에서 %{app} 을 사용하기 위해 이 브라우저에서 쿠키를 수동으로 사용할 수 있습니다.
8
- enable_cookies_footer: 쿠키를 사용하면 개인의 선호나 정보를 임시로 저장하여 앱에서 사용자를 인증할 수 있습니다. 쿠키는 30일
9
- 후에 만료됩니다.
10
- enable_cookies_action: 쿠리 사용 가능
11
- top_level_interaction_heading: 브라우저에서 %{app} 을 인증해야 합니다.
12
- top_level_interaction_body: Shopify를 열기 전 쿠키에 엑세스하려면 %{app} 과 같은 앱 들이 브라우저에 설치되어야
13
- 합니다.
14
- top_level_interaction_action: 계속
15
- request_storage_access_heading: "%{app}에서 쿠키에 접근해야 합니다."
16
- request_storage_access_body: 이를 통해 개인 정보를 임시로 저장하여 앱에서 사용자를 인증할 수 있습니다. 계속 클릭하여
17
- 쿠키로 앱을 사용하세요.
18
- request_storage_access_footer: 쿠키는 30일 후에 만료됩니다.
19
- request_storage_access_action: 계속
@@ -3,19 +3,3 @@ nb:
3
3
  logged_out: Logget ut
4
4
  could_not_log_in: Kunne ikke logge på Shopify-butikken
5
5
  invalid_shop_url: Ugyldig butikkdomene
6
- enable_cookies_heading: Aktiver informasjonskapsler fra %{app}
7
- enable_cookies_body: Du kan manuelt aktivere informasjonskapsler i denne nettleseren
8
- for å kunne bruke %{app} i Shopify.
9
- enable_cookies_footer: Informasjonskapsler lar appen autentisere deg ved å midlertidig
10
- lagre innstillingene og personopplysningene dine. De går ut etter 30 dager.
11
- enable_cookies_action: Aktiver informasjonskapsler
12
- top_level_interaction_heading: Nettleseren din må autentisere %{app}
13
- top_level_interaction_body: Nettleseren din krever apper som %{app} for å spørre
14
- deg om tilgang til informasjonskapsler før Shopify kan åpne den for deg.
15
- top_level_interaction_action: Fortsett
16
- request_storage_access_heading: "%{app} må ha tilgang til informasjonskapsler"
17
- request_storage_access_body: Informasjonskapsler lar appen autentisere deg ved å
18
- midlertidig lagre personopplysningene dine. Klikk på Fortsett og gi informasjonskapsler
19
- tillatelse til å bruke appen.
20
- request_storage_access_footer: Informasjonskapslene går ut etter 30 dager.
21
- request_storage_access_action: Fortsett
@@ -3,19 +3,3 @@ nl:
3
3
  logged_out: Je bent afgemeld
4
4
  could_not_log_in: Kon niet inloggen bij Shopify-winkel
5
5
  invalid_shop_url: Ongeldig winkeldomein
6
- enable_cookies_heading: Schakel cookies in van %{app}
7
- enable_cookies_body: Je moet cookies in deze browser handmatig inschakelen om %{app}
8
- binnen Shopify te gebruiken.
9
- enable_cookies_footer: Met cookies kan de app je verifiëren door je voorkeuren en
10
- persoonlijke informatie tijdelijk op te slaan. Ze vervallen na 30 dagen.
11
- enable_cookies_action: Schakel cookies in
12
- top_level_interaction_heading: Je browser moet %{app} verifiëren
13
- top_level_interaction_body: Je browser heeft apps nodig zoals %{app} om je toegang
14
- te vragen tot cookies voordat Shopify het voor je kan openen.
15
- top_level_interaction_action: Doorgaan
16
- request_storage_access_heading: "%{app} heeft toegang tot cookies nodig"
17
- request_storage_access_body: Hiermee kan de app je verifiëren door je persoonlijke
18
- gegevens tijdelijk op te slaan. Klik op Doorgaan en sta cookies toe om de app
19
- te gebruiken.
20
- request_storage_access_footer: Cookies verlopen na 30 dagen.
21
- request_storage_access_action: Doorgaan