shopify_app 22.2.1 → 22.3.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 (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