theme-check 0.3.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +13 -3
  3. data/CHANGELOG.md +61 -0
  4. data/CONTRIBUTING.md +5 -2
  5. data/Gemfile +5 -3
  6. data/README.md +11 -4
  7. data/RELEASING.md +2 -2
  8. data/config/default.yml +14 -0
  9. data/data/shopify_liquid/tags.yml +27 -0
  10. data/data/shopify_translation_keys.yml +850 -0
  11. data/docs/checks/CHECK_DOCS_TEMPLATE.md +47 -0
  12. data/docs/checks/asset_size_css.md +52 -0
  13. data/docs/checks/asset_size_javascript.md +79 -0
  14. data/docs/checks/convert_include_to_render.md +48 -0
  15. data/docs/checks/default_locale.md +46 -0
  16. data/docs/checks/deprecated_filter.md +46 -0
  17. data/docs/checks/img_width_and_height.md +79 -0
  18. data/docs/checks/liquid_tag.md +65 -0
  19. data/docs/checks/matching_schema_translations.md +93 -0
  20. data/docs/checks/matching_translations.md +72 -0
  21. data/docs/checks/missing_enable_comment.md +50 -0
  22. data/docs/checks/missing_required_template_files.md +26 -0
  23. data/docs/checks/missing_template.md +40 -0
  24. data/docs/checks/nested_snippet.md +69 -0
  25. data/docs/checks/parser_blocking_javascript.md +97 -0
  26. data/docs/checks/required_directories.md +25 -0
  27. data/docs/checks/required_layout_theme_object.md +28 -0
  28. data/docs/checks/space_inside_braces.md +63 -0
  29. data/docs/checks/syntax_error.md +49 -0
  30. data/docs/checks/template_length.md +50 -0
  31. data/docs/checks/translation_key_exists.md +63 -0
  32. data/docs/checks/undefined_object.md +53 -0
  33. data/docs/checks/unknown_filter.md +45 -0
  34. data/docs/checks/unused_assign.md +47 -0
  35. data/docs/checks/unused_snippet.md +32 -0
  36. data/docs/checks/valid_html_translation.md +53 -0
  37. data/docs/checks/valid_json.md +60 -0
  38. data/docs/checks/valid_schema.md +50 -0
  39. data/lib/theme_check.rb +3 -0
  40. data/lib/theme_check/asset_file.rb +34 -0
  41. data/lib/theme_check/check.rb +19 -9
  42. data/lib/theme_check/checks/asset_size_css.rb +89 -0
  43. data/lib/theme_check/checks/asset_size_javascript.rb +68 -0
  44. data/lib/theme_check/checks/convert_include_to_render.rb +1 -1
  45. data/lib/theme_check/checks/default_locale.rb +1 -0
  46. data/lib/theme_check/checks/deprecated_filter.rb +1 -1
  47. data/lib/theme_check/checks/img_width_and_height.rb +74 -0
  48. data/lib/theme_check/checks/liquid_tag.rb +3 -3
  49. data/lib/theme_check/checks/matching_schema_translations.rb +1 -0
  50. data/lib/theme_check/checks/matching_translations.rb +1 -0
  51. data/lib/theme_check/checks/missing_enable_comment.rb +1 -0
  52. data/lib/theme_check/checks/missing_required_template_files.rb +1 -2
  53. data/lib/theme_check/checks/missing_template.rb +1 -0
  54. data/lib/theme_check/checks/nested_snippet.rb +1 -0
  55. data/lib/theme_check/checks/parser_blocking_javascript.rb +7 -14
  56. data/lib/theme_check/checks/required_directories.rb +1 -1
  57. data/lib/theme_check/checks/required_layout_theme_object.rb +1 -1
  58. data/lib/theme_check/checks/space_inside_braces.rb +1 -0
  59. data/lib/theme_check/checks/syntax_error.rb +1 -0
  60. data/lib/theme_check/checks/template_length.rb +1 -0
  61. data/lib/theme_check/checks/translation_key_exists.rb +17 -1
  62. data/lib/theme_check/checks/undefined_object.rb +29 -10
  63. data/lib/theme_check/checks/unknown_filter.rb +1 -0
  64. data/lib/theme_check/checks/unused_assign.rb +5 -3
  65. data/lib/theme_check/checks/unused_snippet.rb +1 -0
  66. data/lib/theme_check/checks/valid_html_translation.rb +1 -0
  67. data/lib/theme_check/checks/valid_json.rb +1 -0
  68. data/lib/theme_check/checks/valid_schema.rb +1 -0
  69. data/lib/theme_check/cli.rb +39 -12
  70. data/lib/theme_check/config.rb +5 -2
  71. data/lib/theme_check/in_memory_storage.rb +11 -3
  72. data/lib/theme_check/language_server.rb +12 -0
  73. data/lib/theme_check/language_server/completion_engine.rb +38 -0
  74. data/lib/theme_check/language_server/completion_helper.rb +25 -0
  75. data/lib/theme_check/language_server/completion_provider.rb +28 -0
  76. data/lib/theme_check/language_server/completion_providers/filter_completion_provider.rb +51 -0
  77. data/lib/theme_check/language_server/completion_providers/object_completion_provider.rb +31 -0
  78. data/lib/theme_check/language_server/completion_providers/render_snippet_completion_provider.rb +43 -0
  79. data/lib/theme_check/language_server/completion_providers/tag_completion_provider.rb +31 -0
  80. data/lib/theme_check/language_server/constants.rb +10 -0
  81. data/lib/theme_check/language_server/document_link_engine.rb +47 -0
  82. data/lib/theme_check/language_server/handler.rb +93 -6
  83. data/lib/theme_check/language_server/position_helper.rb +27 -0
  84. data/lib/theme_check/language_server/protocol.rb +41 -0
  85. data/lib/theme_check/language_server/server.rb +8 -2
  86. data/lib/theme_check/language_server/tokens.rb +55 -0
  87. data/lib/theme_check/liquid_check.rb +11 -0
  88. data/lib/theme_check/offense.rb +51 -14
  89. data/lib/theme_check/regex_helpers.rb +15 -0
  90. data/lib/theme_check/remote_asset_file.rb +44 -0
  91. data/lib/theme_check/shopify_liquid.rb +1 -0
  92. data/lib/theme_check/shopify_liquid/deprecated_filter.rb +4 -0
  93. data/lib/theme_check/shopify_liquid/tag.rb +16 -0
  94. data/lib/theme_check/theme.rb +7 -1
  95. data/lib/theme_check/version.rb +1 -1
  96. metadata +52 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: babce309fcdbc1bb5121d93b5d7bc443aa5c2fc88481169be0efee6c141449e6
4
- data.tar.gz: df49e8b26223efd29341163b2a7125127f961647e9553655102ed772a9792b65
3
+ metadata.gz: 93631c68de37297060f57799731a0ef4adae05aa9d89f8a019d28b0afe65533a
4
+ data.tar.gz: 86efb9c580a6206974bec0c876fc1feca80c5dad3c7d500e4528a537f01c9613
5
5
  SHA512:
6
- metadata.gz: e703cfd5f85e5fb530532eafd3f47d403f3a45463da8e6a8682b605cc31d7e4a942db4e23da1f88354bc8c8e44c0fd903b83536c5db431f4ff68e3116666369f
7
- data.tar.gz: 74b032108d464ce48d931ded5147cb5613cb4db0e480904ac740b404f49969381aafb3b8debd657d6c660cc4549d99e977b9568c0c97ea8416b8b022034a3bd3
6
+ metadata.gz: 712d137ecb52bc6af0b83db9ed391252f78d5a0ad2a3b4c3d82d6b1a59e927da167b2bdea40a7f07f45d77cb16c72ca2e49243b78bb6c52296ed84a30c5cd83f
7
+ data.tar.gz: 3e6505817fc868979c2ead8f99133d9c24754b905b3211774c74e9a1261a9f962fd9660c94aed70838a2c0dcb086e353a7ce5a739d9ada8456f7ba0ff61ee077
data/.rubocop.yml CHANGED
@@ -1,12 +1,16 @@
1
- inherit_from:
2
- - 'https://shopify.github.io/ruby-style-guide/rubocop.yml'
1
+ inherit_gem:
2
+ rubocop-shopify: rubocop.yml
3
3
 
4
- require: rubocop-performance
4
+ require:
5
+ - rubocop-performance
6
+ - rubocop-minitest
7
+ - rubocop-rake
5
8
 
6
9
  AllCops:
7
10
  TargetRubyVersion: 2.7
8
11
  Exclude:
9
12
  - 'vendor/bundle/**/*'
13
+ - 'packaging/builds/**/*'
10
14
 
11
15
  Metrics/MethodLength:
12
16
  Enabled: false
@@ -16,3 +20,9 @@ Layout/LineLength:
16
20
 
17
21
  Lint/MissingSuper:
18
22
  Enabled: false
23
+
24
+ Style/StringLiterals:
25
+ Enabled: false
26
+
27
+ Style/StringLiteralsInInterpolation:
28
+ Enabled: false
data/CHANGELOG.md ADDED
@@ -0,0 +1,61 @@
1
+
2
+ 0.6.0 / 2021-03-23
3
+ ==================
4
+
5
+ * Add [Snippet Completion](https://screenshot.click/23-22-5tyee-kv5vl.mp4) ([#223](https://github.com/shopify/theme-check/issues/223))
6
+ * Add [Snippet Document Links](https://screenshot.click/23-09-71h84-pp23z.mp4) ([#223](https://github.com/shopify/theme-check/issues/223))
7
+ * Add [ImgWidthAndHeight](/docs/checks/img_width_and_height.md) check ([#216](https://github.com/shopify/theme-check/issues/216))
8
+ * Add [AssetSizeCSS](/docs/checks/asset_size_css.md) check ([#206](https://github.com/shopify/theme-check/issues/206))
9
+ * Do not flag SystemTranslations as errors ([#114](https://github.com/shopify/theme-check/issues/114))
10
+ * Do not complete deprecated filters ([#205](https://github.com/shopify/theme-check/issues/205))
11
+ * Add `-C, --config path` support ([#213](https://github.com/shopify/theme-check/issues/213))
12
+
13
+ 0.5.0 / 2021-03-12
14
+ ==================
15
+
16
+ * Add [AssetSizeJavaScript](/docs/checks/asset_size_javascript.md) check ([#194](https://github.com/Shopify/theme-check/pull/194))
17
+ * Add [documentation for all checks](/docs/checks)
18
+ * Make documentation for checks mandatory
19
+ * Add link to documentation from within the editor (via `codeDescription` in the Language Server) (![Demo](https://screenshot.click/10-29-cjx7r-4asor.mp4))
20
+ * Allow checks to have multiple categories
21
+ * Fix multiple occurrences of UndefinedObject not being reported ([#192](https://github.com/shopify/theme-check/issues/192))
22
+
23
+ v0.4.0 / 2021-02-25
24
+ ==================
25
+
26
+ * Add Completion Engine ([#161](https://github.com/shopify/theme-check/issues/161))
27
+ * Add init command to CLI ([#174](https://github.com/shopify/theme-check/issues/174))
28
+ * Refactor start and end Position logic ([#172](https://github.com/shopify/theme-check/issues/172))
29
+
30
+ v0.3.3 / 2021-02-18
31
+ ==================
32
+
33
+ * Fix column_end issues ([#164](https://github.com/Shopify/theme-check/issues/164))
34
+ * Fix stack overflow in UndefinedObject + UnusedAssign when snippets renders itself ([#165](https://github.com/Shopify/theme-check/issues/165))
35
+
36
+ v0.3.2 / 2021-02-17
37
+ ==================
38
+
39
+ * Ignore snippets in UndefinedObject check
40
+
41
+ v0.3.1 / 2021-02-16
42
+ ===================
43
+
44
+ * Fixup version flag
45
+
46
+ v0.3.0 / 2021-02-16
47
+ ===================
48
+
49
+ * Add ParserBlockingJavaScript Check ([#78](https://github.com/Shopify/theme-check/issues/78), [#146](https://github.com/Shopify/theme-check/issues/146))
50
+ * Internal refactor to enable running theme-check in servers ([#145](https://github.com/Shopify/theme-check/issues/145), [#148](https://github.com/Shopify/theme-check/issues/148))
51
+ * Add -v, --version flag ([#126](https://github.com/Shopify/theme-check/issues/126))
52
+ * Exclude content of {% schema %} in line count for TemplateLength ([#140](https://github.com/Shopify/theme-check/issues/140))
53
+ * Fix Language Server removed files bug ([#136](https://github.com/Shopify/theme-check/issues/136))
54
+ * Add ignore config ([#147](https://github.com/Shopify/theme-check/issues/147))
55
+ * Add ability to disable checks with comments ([#79](https://github.com/Shopify/theme-check/issues/79))
56
+ * Adding checks for shopify plus objects in checkout ([#121](https://github.com/Shopify/theme-check/issues/121))
57
+
58
+ v0.2.2 / 2021-01-22
59
+ ===================
60
+
61
+ * [Language Server] Send empty dianogstics to flush errors
data/CONTRIBUTING.md CHANGED
@@ -44,7 +44,6 @@ module ThemeCheck
44
44
  # NOTE: inherit from JsonCheck to implement a JSON based check.
45
45
  class MyCheckName < LiquidCheck
46
46
  severity :suggestion # :error or :style
47
- doc "https://..." # Optional link to doc
48
47
 
49
48
  def on_document(node)
50
49
  # Called with the root node of all templates
@@ -122,7 +121,7 @@ module ThemeCheck
122
121
  end
123
122
  ```
124
123
 
125
- Add the new check to `config/default.yml` to enable it.
124
+ Add the new check to `config/default.yml` to enable it. If the check is configurable, the `initialize` argument name and default values should also be duplicated inside `config/default.yml`.
126
125
 
127
126
  ```yaml
128
127
  MyCheckName:
@@ -131,4 +130,8 @@ MyCheckName:
131
130
 
132
131
  Add a corresponding test file under `test/checks`.
133
132
 
133
+ Add a documentation file in `docs/checks/#{name_of_check}.md` based off of the [check documentation template][doctemplate].
134
+
134
135
  When done, run the tests with `dev test`.
136
+
137
+ [doctemplate]: /docs/checks/CHECK_DOCS_TEMPLATE.md
data/Gemfile CHANGED
@@ -21,6 +21,8 @@ group :development do
21
21
  gem 'guard-minitest'
22
22
  end
23
23
 
24
- gem 'rubocop', '~> 0.93.1', require: false
25
- gem 'rubocop-performance', '~> 1.8.1', require: false
26
- gem 'rubocop-shopify', '~> 1.0.6', require: false
24
+ gem 'rubocop', require: false
25
+ gem 'rubocop-performance', require: false
26
+ gem 'rubocop-shopify', require: false
27
+ gem 'rubocop-minitest', require: false
28
+ gem 'rubocop-rake', require: false
data/README.md CHANGED
@@ -8,8 +8,6 @@ Theme Check is also available [inside some code editors](https://github.com/Shop
8
8
 
9
9
  ![](docs/preview.png)
10
10
 
11
- _Disclaimer: This tool is not supported as part of the Partners program._
12
-
13
11
  ## Supported Checks
14
12
 
15
13
  Theme Check currently checks for the following:
@@ -34,7 +32,16 @@ Theme Check currently checks for the following:
34
32
  ✅ Deprecated filters
35
33
  ✅ Missing `theme-check-enable` comment
36
34
 
37
- And many more to come! Suggestions welcome ([create an issue](https://github.com/Shopify/theme-check/issues)).
35
+ As well as checks that prevent easy to spot performance problems:
36
+
37
+ ✅ Use of [parser-blocking](/docs/checks/parser_blocking_javascript.md) JavaScript
38
+ ✅ [Missing width and height attributes on `img` tags](/docs/checks/img_width_and_height.md)
39
+ ✅ [Too much JavaScript](/docs/checks/asset_size_javascript.md)
40
+ ✅ [Too much CSS](/docs/checks/asset_size_css.md)
41
+
42
+ For detailed descriptions and configuration options, [take a look at the complete list.](/docs/checks/)
43
+
44
+ With more to come! Suggestions welcome ([create an issue](https://github.com/Shopify/theme-check/issues)).
38
45
 
39
46
  ## Requirements
40
47
 
@@ -89,7 +96,7 @@ TemplateLength:
89
96
  enabled: false
90
97
  # Or configure options
91
98
  max_length: 300
92
-
99
+
93
100
  # Enable a custom check
94
101
  MyCustomCheck
95
102
  enabled: true
data/RELEASING.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  1. Check the Semantic Versioning page for info on how to version the new release: http://semver.org
4
4
 
5
- 2. Create a PR to update the version in `lib/theme_check/version.rb`
5
+ 2. Create a PR to update the version in `lib/theme_check/version.rb` and replace the `THEME_CHECK_VERSION` placeholder in the documentation for new rules.
6
6
 
7
7
  3. Merge your PR to master
8
8
 
@@ -22,7 +22,7 @@
22
22
 
23
23
  ```bash
24
24
  VERSION=X.X.X
25
- cp packaging/builds/$VERSION/theme-check ../homebrew-shopify
25
+ cp packaging/builds/$VERSION/theme-check.rb ../homebrew-shopify
26
26
  ```
27
27
 
28
28
  4. Create a branch + a commit on the [`homebrew-shopify`](https://github.com/Shopify/homebrew-shopify) repository.
data/config/default.yml CHANGED
@@ -10,12 +10,14 @@ ConvertIncludeToRender:
10
10
 
11
11
  LiquidTag:
12
12
  enabled: true
13
+ min_consecutive_statements: 4
13
14
 
14
15
  MissingTemplate:
15
16
  enabled: true
16
17
 
17
18
  NestedSnippet:
18
19
  enabled: true
20
+ max_nesting_level: 2
19
21
 
20
22
  RequiredLayoutThemeObject:
21
23
  enabled: true
@@ -67,6 +69,7 @@ MissingRequiredTemplateFiles:
67
69
 
68
70
  UndefinedObject:
69
71
  enabled: true
72
+ exclude_snippets: true
70
73
 
71
74
  RequiredDirectories:
72
75
  enabled: true
@@ -79,3 +82,14 @@ MissingEnableComment:
79
82
 
80
83
  ParserBlockingJavaScript:
81
84
  enabled: true
85
+
86
+ AssetSizeJavaScript:
87
+ enabled: false
88
+ threshold_in_bytes: 10_000
89
+
90
+ AssetSizeCSS:
91
+ enabled: false
92
+ threshold_in_bytes: 100_000
93
+
94
+ ImgWidthAndHeight:
95
+ enabled: true
@@ -0,0 +1,27 @@
1
+ ---
2
+ - assign
3
+ - break
4
+ - capture
5
+ - case
6
+ - comment
7
+ - continue
8
+ - cycle
9
+ - decrement
10
+ - echo
11
+ - for
12
+ - form
13
+ - if
14
+ - ifchanged
15
+ - increment
16
+ - javascript
17
+ - layout
18
+ - liquid
19
+ - paginate
20
+ - raw
21
+ - render
22
+ - schema
23
+ - section
24
+ - style
25
+ - stylesheet
26
+ - tablerow
27
+ - unless
@@ -0,0 +1,850 @@
1
+ ---
2
+ - shopify.sentence.words_connector
3
+ - shopify.sentence.two_words_connector
4
+ - shopify.sentence.last_word_connector
5
+ - shopify.checkout.general.page_title
6
+ - shopify.checkout.general.error_page_title
7
+ - shopify.checkout.general.skip_to_content
8
+ - shopify.checkout.general.breadcrumb
9
+ - shopify.checkout.general.continue_button_label
10
+ - shopify.checkout.general.complete_purchase_button_label
11
+ - shopify.checkout.general.pay_now_button_label
12
+ - shopify.checkout.general.authenticate_purchase_button_label
13
+ - shopify.checkout.general.edit_link_label
14
+ - shopify.checkout.general.all_rights_reserved
15
+ - shopify.checkout.general.print_policies_link_label
16
+ - shopify.checkout.general.cart
17
+ - shopify.checkout.general.close_modal_label
18
+ - shopify.checkout.general.close_notice_label
19
+ - shopify.checkout.general.expand_notice_label
20
+ - shopify.checkout.general.continue_to_shipping_method
21
+ - shopify.checkout.general.continue_to_payment_method
22
+ - shopify.checkout.general.continue_to_review
23
+ - shopify.checkout.general.back_to_cart
24
+ - shopify.checkout.general.back_to_contact_information
25
+ - shopify.checkout.general.back_to_shipping_method
26
+ - shopify.checkout.general.back_to_payment_method
27
+ - shopify.checkout.general.choose_shipping_method
28
+ - shopify.checkout.general.choose_payment_method
29
+ - shopify.checkout.general.choose_billing_address
30
+ - shopify.checkout.general.contact_us_html
31
+ - shopify.checkout.general.autocomplete_title
32
+ - shopify.checkout.general.autocomplete_single_item
33
+ - shopify.checkout.general.autocomplete_multi_item
34
+ - shopify.checkout.general.autocomplete_selection
35
+ - shopify.checkout.general.autocomplete_close
36
+ - shopify.checkout.general.forwarding_indicator.new_window
37
+ - shopify.checkout.general.forwarding_indicator.external
38
+ - shopify.checkout.general.forwarding_indicator.external_and_new_window
39
+ - shopify.checkout.general.checkout_context.step_one
40
+ - shopify.checkout.general.tooltip_accessibility_label
41
+ - shopify.checkout.contact.title
42
+ - shopify.checkout.contact.address_title
43
+ - shopify.checkout.contact.shipping_address_title
44
+ - shopify.checkout.contact.delivery_option_title
45
+ - shopify.checkout.contact.contact_method_title
46
+ - shopify.checkout.contact.email_label
47
+ - shopify.checkout.contact.email_placeholder
48
+ - shopify.checkout.contact.email_or_phone_label
49
+ - shopify.checkout.contact.email_or_phone_placeholder
50
+ - shopify.checkout.contact.stored_addresses_label
51
+ - shopify.checkout.contact.new_address_label
52
+ - shopify.checkout.contact.first_name_label
53
+ - shopify.checkout.contact.optional_first_name_label
54
+ - shopify.checkout.contact.last_name_label
55
+ - shopify.checkout.contact.company_label
56
+ - shopify.checkout.contact.optional_company_label
57
+ - shopify.checkout.contact.address1_label
58
+ - shopify.checkout.contact.address2_label
59
+ - shopify.checkout.contact.optional_address2_label
60
+ - shopify.checkout.contact.city_label
61
+ - shopify.checkout.contact.country_label
62
+ - shopify.checkout.contact.country_code
63
+ - shopify.checkout.contact.province_label
64
+ - shopify.checkout.contact.province_placeholder
65
+ - shopify.checkout.contact.county_label
66
+ - shopify.checkout.contact.county_placeholder
67
+ - shopify.checkout.contact.state_label
68
+ - shopify.checkout.contact.state_placeholder
69
+ - shopify.checkout.contact.region_label
70
+ - shopify.checkout.contact.region_placeholder
71
+ - shopify.checkout.contact.region_none
72
+ - shopify.checkout.contact.prefecture_label
73
+ - shopify.checkout.contact.prefecture_placeholder
74
+ - shopify.checkout.contact.governorate_label
75
+ - shopify.checkout.contact.governorate_placeholder
76
+ - shopify.checkout.contact.emirate_label
77
+ - shopify.checkout.contact.emirate_placeholder
78
+ - shopify.checkout.contact.state_and_territory_label
79
+ - shopify.checkout.contact.state_and_territory_placeholder
80
+ - shopify.checkout.contact.phone_label
81
+ - shopify.checkout.contact.optional_phone_label
82
+ - shopify.checkout.contact.phone_placeholder
83
+ - shopify.checkout.contact.phone_tooltip
84
+ - shopify.checkout.contact.zip_code_label
85
+ - shopify.checkout.contact.zip_code_placeholder
86
+ - shopify.checkout.contact.postal_code_label
87
+ - shopify.checkout.contact.postal_code_placeholder
88
+ - shopify.checkout.contact.postcode_label
89
+ - shopify.checkout.contact.postcode_placeholder
90
+ - shopify.checkout.contact.pincode_label
91
+ - shopify.checkout.contact.pincode_placeholder
92
+ - shopify.checkout.contact.civic_number_warning
93
+ - shopify.checkout.delivery_options.free_total_label
94
+ - shopify.checkout.delivery_options.ship
95
+ - shopify.checkout.delivery_options.shipping_address
96
+ - shopify.checkout.delivery_options.pick_up
97
+ - shopify.checkout.delivery_options.pick_up_locations
98
+ - shopify.checkout.delivery_options.pick_up_in_one_hour
99
+ - shopify.checkout.delivery_options.pick_up_in_two_hours
100
+ - shopify.checkout.delivery_options.pick_up_in_four_hours
101
+ - shopify.checkout.delivery_options.pick_up_in_twenty_four_hours
102
+ - shopify.checkout.delivery_options.pick_up_in_two_to_four_days
103
+ - shopify.checkout.delivery_options.pick_up_in_five_or_more_days
104
+ - shopify.checkout.delivery_options.pick_up_in_zero_to_two_hours
105
+ - shopify.checkout.delivery_options.pick_up_in_two_to_four_hours
106
+ - shopify.checkout.delivery_options.pick_up_immediately
107
+ - shopify.checkout.delivery_options.pick_up_next_day
108
+ - shopify.checkout.customer_account.not_user_label
109
+ - shopify.checkout.customer_account.have_an_account_label
110
+ - shopify.checkout.customer_account.sign_in_link_label
111
+ - shopify.checkout.customer_account.sign_out_link_label
112
+ - shopify.checkout.customer_account.save_my_information_label
113
+ - shopify.checkout.stock.page_title
114
+ - shopify.checkout.stock.title
115
+ - shopify.checkout.stock.items_unavailable_notice
116
+ - shopify.checkout.stock.product_column_header
117
+ - shopify.checkout.stock.quantity_column_header
118
+ - shopify.checkout.stock.price_column_header
119
+ - shopify.checkout.stock.status_column_header
120
+ - shopify.checkout.stock.removed_from_cart_notice
121
+ - shopify.checkout.stock.sold_out_label
122
+ - shopify.checkout.stock.reduced_label
123
+ - shopify.checkout.stock.reduced_with_quantity_label
124
+ - shopify.checkout.stock.remove_from_cart_button_label
125
+ - shopify.checkout.stock.continue_shopping_button_label
126
+ - shopify.checkout.stock.go_back_to_cart_button_label
127
+ - shopify.checkout.order_summary.title
128
+ - shopify.checkout.order_summary.order_name_label
129
+ - shopify.checkout.order_summary.shopping_cart_label
130
+ - shopify.checkout.order_summary.discount_title
131
+ - shopify.checkout.order_summary.discount_label
132
+ - shopify.checkout.order_summary.discount_placeholder
133
+ - shopify.checkout.order_summary.gift_card_title
134
+ - shopify.checkout.order_summary.gift_card_label
135
+ - shopify.checkout.order_summary.gift_card_placeholder
136
+ - shopify.checkout.order_summary.gift_card_and_discount_title
137
+ - shopify.checkout.order_summary.gift_card_and_discount_label
138
+ - shopify.checkout.order_summary.gift_card_and_discount_placeholder
139
+ - shopify.checkout.order_summary.remove_gift_card_label
140
+ - shopify.checkout.order_summary.remove_discount_label
141
+ - shopify.checkout.order_summary.free_shipping_discount_label
142
+ - shopify.checkout.order_summary.applied_free_shipping_discount_label
143
+ - shopify.checkout.order_summary.apply_discount_button_label
144
+ - shopify.checkout.order_summary.applied_discount_message
145
+ - shopify.checkout.order_summary.discount_has_been_applied
146
+ - shopify.checkout.order_summary.discount_has_been_removed
147
+ - shopify.checkout.order_summary.gift_card_has_been_applied
148
+ - shopify.checkout.order_summary.gift_card_has_been_removed
149
+ - shopify.checkout.order_summary.gift_card_subscriptions_notice
150
+ - shopify.checkout.order_summary.discount_already_applied
151
+ - shopify.checkout.order_summary.cart_does_not_meet_discount_requirements_notice
152
+ - shopify.checkout.order_summary.discount_requires_customer_notice
153
+ - shopify.checkout.order_summary.customer_does_not_meet_discount_requirements_notice
154
+ - shopify.checkout.order_summary.shipping_information_does_not_meet_discount_requirements_notice
155
+ - shopify.checkout.order_summary.customer_already_used_once_per_customer_discount_notice
156
+ - shopify.checkout.order_summary.subtotal_label
157
+ - shopify.checkout.order_summary.shipping_label
158
+ - shopify.checkout.order_summary.pickup_label
159
+ - shopify.checkout.order_summary.no_pickup_location
160
+ - shopify.checkout.order_summary.tip_label
161
+ - shopify.checkout.order_summary.calculating_shipping
162
+ - shopify.checkout.order_summary.shipping_default_value
163
+ - shopify.checkout.order_summary.shipping_pending_value
164
+ - shopify.checkout.order_summary.shipping_pending_message
165
+ - shopify.checkout.order_summary.shipping_policy_link
166
+ - shopify.checkout.order_summary.taxes_label
167
+ - shopify.checkout.order_summary.estimated_taxes_label
168
+ - shopify.checkout.order_summary.total_label
169
+ - shopify.checkout.order_summary.total_outstanding_label
170
+ - shopify.checkout.order_summary.partial_total_label
171
+ - shopify.checkout.order_summary.free_total_label
172
+ - shopify.checkout.order_summary.paid_label
173
+ - shopify.checkout.order_summary.payment_due_label
174
+ - shopify.checkout.order_summary.vat_label_html
175
+ - shopify.checkout.order_summary.discount_and_gift_card_savings_notice
176
+ - shopify.checkout.order_summary.discount_savings_notice
177
+ - shopify.checkout.order_summary.gift_card_savings_notice
178
+ - shopify.checkout.order_summary.cost_table_title
179
+ - shopify.checkout.order_summary.description_label
180
+ - shopify.checkout.order_summary.price_label
181
+ - shopify.checkout.order_summary.quantity_label
182
+ - shopify.checkout.order_summary.product_change_label
183
+ - shopify.checkout.order_summary.product_image_label
184
+ - shopify.checkout.order_summary.scroll_order_summary
185
+ - shopify.checkout.order_summary.expand_order_summary
186
+ - shopify.checkout.order_summary.collapse_order_summary
187
+ - shopify.checkout.order_summary.original_price
188
+ - shopify.checkout.order_summary.sale_price
189
+ - shopify.checkout.order_summary.total_updated_label
190
+ - shopify.checkout.order_summary.order_total_updated_label
191
+ - shopify.checkout.order_summary.total_already_paid_label
192
+ - shopify.checkout.order_summary.unit_price.accessible_separator
193
+ - shopify.checkout.order_summary.unit_price.content_html
194
+ - shopify.checkout.order_summary.gift_card_ending
195
+ - shopify.checkout.order_summary.estimated_tax_label
196
+ - shopify.checkout.order_summary.multiple_shipping_lines_label
197
+ - shopify.checkout.order_summary.recurring_total_label
198
+ - shopify.checkout.order_summary.recurring_total_tooltip
199
+ - shopify.checkout.shipping.title
200
+ - shopify.checkout.shipping.shipping_method_notice
201
+ - shopify.checkout.shipping.shipping_method_title
202
+ - shopify.checkout.shipping.shipping_method_one_time_purchase_group_title
203
+ - shopify.checkout.shipping.shipping_method_subscription_group_title
204
+ - shopify.checkout.shipping.subscription_shipping
205
+ - shopify.checkout.shipping.waiting_on_rate_notice
206
+ - shopify.checkout.shipping.waiting_on_pickup_location_notice
207
+ - shopify.checkout.shipping.no_rates_for_cart_or_destination_notice
208
+ - shopify.checkout.shipping.no_pickup_location_notice
209
+ - shopify.checkout.shipping.no_rates_for_country_notice
210
+ - shopify.checkout.shipping.no_rates_contact_notice
211
+ - shopify.checkout.shipping.free_rate_label
212
+ - shopify.checkout.shipping.cheapest_rate_label
213
+ - shopify.checkout.shipping.please_enter_your_shipping_information_notice
214
+ - shopify.checkout.shipping.estimated_delivery_date.one
215
+ - shopify.checkout.shipping.estimated_delivery_date.other
216
+ - shopify.checkout.shipping.estimated_delivery_date_range
217
+ - shopify.checkout.shipping.shipping_line_phone_label
218
+ - shopify.checkout.shipping.shipping_line_phone
219
+ - shopify.checkout.shipping.shipping_line_delivery_phone_label
220
+ - shopify.checkout.shipping.shipping_line_delivery_phone
221
+ - shopify.checkout.shipping.optional_shipping_line_delivery_instructions_label
222
+ - shopify.checkout.shipping.shipping_line_delivery_instructions
223
+ - shopify.checkout.shipping.other_method.zero
224
+ - shopify.checkout.shipping.other_method.one
225
+ - shopify.checkout.shipping.other_method.other
226
+ - shopify.checkout.shipping.shipping_rate_discounted_amount
227
+ - shopify.checkout.shipping.local_delivery
228
+ - shopify.checkout.shipping.subscription_delivery_description.prepaid_delivery_frequency.one
229
+ - shopify.checkout.shipping.subscription_delivery_description.prepaid_delivery_frequency.other
230
+ - shopify.checkout.shipping.subscription_delivery_description.subscription_delivery_frequency.day.one
231
+ - shopify.checkout.shipping.subscription_delivery_description.subscription_delivery_frequency.day.other
232
+ - shopify.checkout.shipping.subscription_delivery_description.subscription_delivery_frequency.week.one
233
+ - shopify.checkout.shipping.subscription_delivery_description.subscription_delivery_frequency.week.other
234
+ - shopify.checkout.shipping.subscription_delivery_description.subscription_delivery_frequency.month.one
235
+ - shopify.checkout.shipping.subscription_delivery_description.subscription_delivery_frequency.month.other
236
+ - shopify.checkout.shipping.subscription_delivery_description.subscription_delivery_frequency.year.one
237
+ - shopify.checkout.shipping.subscription_delivery_description.subscription_delivery_frequency.year.other
238
+ - shopify.checkout.shipping.subscription_delivery_description.multiple_subscriptions_shipping_price_label
239
+ - shopify.checkout.shipping.subscription_delivery_description.prepaid_shipping_price_label
240
+ - shopify.checkout.shipping.subscription_delivery_description.initial_order_discounted
241
+ - shopify.checkout.shipping.subscription_delivery_description.prepaid_initial_order_discounted
242
+ - shopify.checkout.shipping.subscription_delivery_description.prepaid_initial_order_discounted_with_per_delivery_price
243
+ - shopify.checkout.shipping.subscription_delivery_description.prepaid_initial_order_discounted_with_renewal
244
+ - shopify.checkout.shipping.subscription_delivery_description.prepaid_initial_order_discounted_with_per_delivery_price_and_renewal
245
+ - shopify.checkout.shipping.one_time_purchase_shipping
246
+ - shopify.checkout.localized_fields.additional_information.title
247
+ - shopify.checkout.payment.amazon_payments_label
248
+ - shopify.checkout.payment.amazon_payments_login_hint
249
+ - shopify.checkout.payment.amazon_payments_logout
250
+ - shopify.checkout.payment.amazon_payments_failed_mfa_challenge
251
+ - shopify.checkout.payment.amazon_payments_abandoned_mfa_challenge
252
+ - shopify.checkout.payment.amazon_payments_could_not_enqueue_authorize
253
+ - shopify.checkout.payment.title
254
+ - shopify.checkout.payment.amount_left_to_pay_label
255
+ - shopify.checkout.payment.discount_button_action_label
256
+ - shopify.checkout.payment.gift_card_code_label
257
+ - shopify.checkout.payment.apply_gift_card_button_label
258
+ - shopify.checkout.payment.gift_card_balance_label
259
+ - shopify.checkout.payment.supported_card_brands_more_label
260
+ - shopify.checkout.payment.detected_card_brand
261
+ - shopify.checkout.payment.card_number_label
262
+ - shopify.checkout.payment.card_number_placeholder
263
+ - shopify.checkout.payment.card_pay_with
264
+ - shopify.checkout.payment.card_security_notice
265
+ - shopify.checkout.payment.card_security_vault_notice
266
+ - shopify.checkout.payment.card_information_notice
267
+ - shopify.checkout.payment.name_on_card_label
268
+ - shopify.checkout.payment.name_on_card_placeholder
269
+ - shopify.checkout.payment.card_expiry_label
270
+ - shopify.checkout.payment.card_expiry_placeholder
271
+ - shopify.checkout.payment.credit_card_start_month
272
+ - shopify.checkout.payment.credit_card_start_year
273
+ - shopify.checkout.payment.card_verification_value_label
274
+ - shopify.checkout.payment.card_verification_value_placeholder
275
+ - shopify.checkout.payment.card_expiry_date_explanation
276
+ - shopify.checkout.payment.card_expiration_month_label
277
+ - shopify.checkout.payment.card_expiration_year_label
278
+ - shopify.checkout.payment.card_verification_value_explanation
279
+ - shopify.checkout.payment.card_verification_value_explanation_amex
280
+ - shopify.checkout.payment.card_verification_value_explanation_other
281
+ - shopify.checkout.payment.card_start_label
282
+ - shopify.checkout.payment.card_start_placeholder
283
+ - shopify.checkout.payment.card_issue_number_label
284
+ - shopify.checkout.payment.card_issue_number_placeholder
285
+ - shopify.checkout.payment.card_change_label
286
+ - shopify.checkout.payment.ends_with_label
287
+ - shopify.checkout.payment.masked_digits_label
288
+ - shopify.checkout.payment.saved_by_payment_method
289
+ - shopify.checkout.payment.pay_with_payment_method
290
+ - shopify.checkout.payment.same_billing_address_label
291
+ - shopify.checkout.payment.different_billing_address_label
292
+ - shopify.checkout.payment.free_order_notice_html
293
+ - shopify.checkout.payment.express_checkout_free_order
294
+ - shopify.checkout.payment.order_covered_by_gift_cards_notice.one
295
+ - shopify.checkout.payment.order_covered_by_gift_cards_notice.other
296
+ - shopify.checkout.payment.offsite_gateway_redirect_hint
297
+ - shopify.checkout.payment.offsite_gateway_redirect_hint_multi_currency_html
298
+ - shopify.checkout.payment.billing_address_title
299
+ - shopify.checkout.payment.billing_address_description
300
+ - shopify.checkout.payment.billing_address_description_no_shipping_address
301
+ - shopify.checkout.payment.no_js_credit_card_fields_redirect_hint
302
+ - shopify.checkout.payment.card_fields_container_prefix
303
+ - shopify.checkout.payment.card_fields_unavailable_html.one
304
+ - shopify.checkout.payment.card_fields_unavailable_html.other
305
+ - shopify.checkout.payment.card_fields_processing_error
306
+ - shopify.checkout.payment.technical_error
307
+ - shopify.checkout.payment.no_method_error
308
+ - shopify.checkout.payment.not_configured_error
309
+ - shopify.checkout.payment.missing_credit_card_error
310
+ - shopify.checkout.payment.billing_address_not_supported_for_payment_method_error
311
+ - shopify.checkout.payment.generic_incorrect_card_info
312
+ - shopify.checkout.payment.sofort_label
313
+ - shopify.checkout.payment.klarna_pay_later_label
314
+ - shopify.checkout.payment.klarna_pay_now_label
315
+ - shopify.checkout.payment.bancontact_label
316
+ - shopify.checkout.payment.eps_label
317
+ - shopify.checkout.payment.klarna_slice_it_label
318
+ - shopify.checkout.payment.ideal_label
319
+ - shopify.checkout.payment.bank_picker_label
320
+ - shopify.checkout.payment.subscription_card_update_agreement_label
321
+ - shopify.checkout.payment.subscription_agreement_label_html
322
+ - shopify.checkout.payment.change_currency_section_description
323
+ - shopify.checkout.payment.no_real_orders_dev_store
324
+ - shopify.checkout.payment.waiting_on_payment_methods
325
+ - shopify.checkout.payment.apple_pay_payment_error
326
+ - shopify.checkout.payment.taxes_not_included
327
+ - shopify.checkout.payment.no_taxes_banner_content
328
+ - shopify.checkout.payment_summary.gift_card_current_balance_notice
329
+ - shopify.checkout.payment_summary.credit_card_expires_on_notice
330
+ - shopify.checkout.payment_summary.express_payment_gateway_label
331
+ - shopify.checkout.payment_summary.manual_payment_gateway_label
332
+ - shopify.checkout.payment_summary.billing_address_title
333
+ - shopify.checkout.payment_summary.free_label
334
+ - shopify.checkout.field_errors.handle_phone_invalid
335
+ - shopify.checkout.field_errors.handle_email_invalid
336
+ - shopify.checkout.field_errors.email_invalid
337
+ - shopify.checkout.field_errors.email_or_phone_blank
338
+ - shopify.checkout.field_errors.email_or_phone_invalid
339
+ - shopify.checkout.field_errors.address_first_name_blank
340
+ - shopify.checkout.field_errors.address_last_name_blank
341
+ - shopify.checkout.field_errors.address_address1_blank
342
+ - shopify.checkout.field_errors.address_address2_blank
343
+ - shopify.checkout.field_errors.address_city_blank
344
+ - shopify.checkout.field_errors.address_country_blank
345
+ - shopify.checkout.field_errors.address_country_not_supported
346
+ - shopify.checkout.field_errors.address_province_blank
347
+ - shopify.checkout.field_errors.address_company_blank
348
+ - shopify.checkout.field_errors.address_phone_blank
349
+ - shopify.checkout.field_errors.address_zip_blank
350
+ - shopify.checkout.field_errors.address_zip_invalid_for_country
351
+ - shopify.checkout.field_errors.address_zip_invalid_for_country_and_province
352
+ - shopify.checkout.field_errors.credit_card_name_blank
353
+ - shopify.checkout.field_errors.credit_card_name_invalid
354
+ - shopify.checkout.field_errors.credit_card_number_invalid
355
+ - shopify.checkout.field_errors.credit_card_expiry_invalid
356
+ - shopify.checkout.field_errors.credit_card_month_invalid
357
+ - shopify.checkout.field_errors.credit_card_year_invalid
358
+ - shopify.checkout.field_errors.credit_card_start_invalid
359
+ - shopify.checkout.field_errors.credit_card_start_month_invalid
360
+ - shopify.checkout.field_errors.credit_card_start_year_invalid
361
+ - shopify.checkout.field_errors.credit_card_verification_value_blank
362
+ - shopify.checkout.field_errors.reduction_code_code_not_found
363
+ - shopify.checkout.field_errors.reduction_code_discount_not_found
364
+ - shopify.checkout.field_errors.reduction_code_gift_card_code_invalid
365
+ - shopify.checkout.field_errors.reduction_code_gift_card_unusable_with_subscriptions
366
+ - shopify.checkout.field_errors.reduction_code_gift_card_unusable
367
+ - shopify.checkout.field_errors.shipping_line_phone_blank
368
+ - shopify.checkout.field_errors.shipping_line_phone_invalid
369
+ - shopify.checkout.field_errors.tips_invalid_tip_amount
370
+ - shopify.checkout.field_errors.gift_card_already_applied
371
+ - shopify.checkout.field_errors.gift_card_disabled
372
+ - shopify.checkout.field_errors.gift_card_expired
373
+ - shopify.checkout.field_errors.gift_card_depleted
374
+ - shopify.checkout.field_errors.gift_card_currency_mismatch
375
+ - shopify.checkout.field_errors.payment_gateway_needs_paid_plan_error
376
+ - shopify.checkout.field_errors.payment_gateway_not_in_test_mode
377
+ - shopify.checkout.field_errors.payment_gateway_incompatible_with_multi_currency
378
+ - shopify.checkout.field_errors.payment_gateway_unsupported_for_subscriptions
379
+ - shopify.checkout.field_errors.subscription_agreement_blank
380
+ - shopify.checkout.field_errors.physical_gift_card_invalid_quantity
381
+ - shopify.checkout.field_errors.physical_gift_card_duplicate_code
382
+ - shopify.checkout.field_errors.physical_gift_card_invalid_code
383
+ - shopify.checkout.payment_errors.generic_error
384
+ - shopify.checkout.payment_errors.rejected_transaction
385
+ - shopify.checkout.payment_errors.credit_card_processing
386
+ - shopify.checkout.payment_errors.order_total_changed
387
+ - shopify.checkout.payment_errors.payment_processing
388
+ - shopify.checkout.payment_errors.payment_processing_no_retry
389
+ - shopify.checkout.payment_errors.paypal_zero_amount
390
+ - shopify.checkout.payment_errors.paypal_invalid_token
391
+ - shopify.checkout.payment_errors.pay_later_failed
392
+ - shopify.checkout.payment_errors.three_d_secure_failed
393
+ - shopify.checkout.payment_errors.three_d_secure_failed_duplicate
394
+ - shopify.checkout.payment_errors.three_d_secure_throttled
395
+ - shopify.checkout.payment_errors.subscription_agreement_blank
396
+ - shopify.checkout.payment_errors.insufficient_funds
397
+ - shopify.checkout.payment_errors.fraud_payment_errors.transaction_declined
398
+ - shopify.checkout.payment_errors.fraud_payment_errors.address_mismatch
399
+ - shopify.checkout.payment_errors.fraud_payment_errors.cannot_process
400
+ - shopify.checkout.payment_errors.fraud_payment_errors.no_match
401
+ - shopify.checkout.payment_errors.fraud_payment_errors.card_declined
402
+ - shopify.checkout.shipping_errors.shipping_method
403
+ - shopify.checkout.shipping_errors.shipping_method_not_available
404
+ - shopify.checkout.shipping_errors.shipping_method_not_available_generic.one
405
+ - shopify.checkout.shipping_errors.shipping_method_not_available_generic.other
406
+ - shopify.checkout.shipping_errors.shipping_method_not_available_updated.one
407
+ - shopify.checkout.shipping_errors.shipping_method_not_available_updated.other
408
+ - shopify.checkout.alternative_payment_method_banner.express_checkout
409
+ - shopify.checkout.alternative_payment_method_banner.or
410
+ - shopify.checkout.alternative_payment_method.button_html
411
+ - shopify.checkout.alternative_payment_method.button_label
412
+ - shopify.checkout.paypal.button_html
413
+ - shopify.checkout.apple_pay.button_html
414
+ - shopify.checkout.post_purchase.page_title
415
+ - shopify.checkout.post_purchase.title
416
+ - shopify.checkout.post_purchase.escape_confirmation
417
+ - shopify.checkout.post_purchase.escape_action
418
+ - shopify.checkout.post_purchase.components.close
419
+ - shopify.checkout.post_purchase.components.expand
420
+ - shopify.checkout.post_purchase.components.processing
421
+ - shopify.checkout.post_purchase.components.submit
422
+ - shopify.checkout.processing.redirecting_page_title
423
+ - shopify.checkout.processing.redirecting_title
424
+ - shopify.checkout.processing.redirecting_notice
425
+ - shopify.checkout.processing.complete_your_purchase_title
426
+ - shopify.checkout.processing.continue_to_payment_gateway_notice
427
+ - shopify.checkout.processing.continue_to_payment_gateway_button_label
428
+ - shopify.checkout.processing.complete_your_purchase_title_error
429
+ - shopify.checkout.processing.continue_to_payment_gateway_notice_error
430
+ - shopify.checkout.processing.continue_to_payment_gateway_button_label_error
431
+ - shopify.checkout.processing.page_title
432
+ - shopify.checkout.processing.title
433
+ - shopify.checkout.processing.your_order_has_been_received_title
434
+ - shopify.checkout.processing.you_will_receive_confirmation
435
+ - shopify.checkout.processing.you_will_not_be_charged
436
+ - shopify.checkout.processing.wait.short
437
+ - shopify.checkout.processing.wait.medium.one
438
+ - shopify.checkout.processing.wait.medium.other
439
+ - shopify.checkout.processing.wait.long
440
+ - shopify.checkout.processing.wait.no_auto_refresh_html
441
+ - shopify.checkout.processing.wait.refresh_this_page
442
+ - shopify.checkout.failed_payment.page_title
443
+ - shopify.checkout.failed_payment.title
444
+ - shopify.checkout.failed_payment.payment_not_processed_title
445
+ - shopify.checkout.failed_payment.payment_not_processed_text
446
+ - shopify.checkout.failed_payment.return_to_cart_button_label
447
+ - shopify.checkout.payment_gateway.credit_card_label
448
+ - shopify.checkout.payment_gateway.bank_deposit_label
449
+ - shopify.checkout.payment_gateway.cash_on_delivery_label
450
+ - shopify.checkout.payment_gateway.money_order_label
451
+ - shopify.checkout.thank_you.title
452
+ - shopify.checkout.thank_you.confirmation_email_sent_text
453
+ - shopify.checkout.thank_you.return_to_store_link_label
454
+ - shopify.checkout.thank_you.print_link_label
455
+ - shopify.checkout.thank_you.payment_information_title
456
+ - shopify.checkout.thank_you.shipping_information_title
457
+ - shopify.checkout.thank_you.page_title
458
+ - shopify.checkout.thank_you.page_title_no_name
459
+ - shopify.checkout.thank_you.cancelled_page_title
460
+ - shopify.checkout.thank_you.customer_information_title
461
+ - shopify.checkout.thank_you.contact_information_title
462
+ - shopify.checkout.thank_you.billing_address_title
463
+ - shopify.checkout.thank_you.shipping_address_title
464
+ - shopify.checkout.thank_you.shipping_address_map_title
465
+ - shopify.checkout.thank_you.payment_method_title
466
+ - shopify.checkout.thank_you.shipping_method_title
467
+ - shopify.checkout.thank_you.tracking_number
468
+ - shopify.checkout.thank_you.company_tracking_number
469
+ - shopify.checkout.thank_you.estimated_arrival
470
+ - shopify.checkout.thank_you.re-order
471
+ - shopify.checkout.thank_you.confirmed
472
+ - shopify.checkout.thank_you.gift_card_confirmation_by_text
473
+ - shopify.checkout.thank_you.gift_card_confirmation_by_email
474
+ - shopify.checkout.thank_you.gift_card_title
475
+ - shopify.checkout.thank_you.resend_gift_cards
476
+ - shopify.checkout.thank_you.thank_you_title
477
+ - shopify.checkout.thank_you.thank_you_title_payment
478
+ - shopify.checkout.thank_you.thank_you_confirmed_order_with_email
479
+ - shopify.checkout.thank_you.thank_you_confirmed_order_with_phone
480
+ - shopify.checkout.thank_you.thank_you_confirmed_order_with_email_and_phone
481
+ - shopify.checkout.thank_you.thank_you_confirmed_order_with_email_payment
482
+ - shopify.checkout.thank_you.thank_you_confirmed_order_with_phone_payment
483
+ - shopify.checkout.thank_you.thank_you_confirmed_order_with_email_and_phone_payment
484
+ - shopify.checkout.thank_you.thank_you_confirmed_order_with_email_pick_up
485
+ - shopify.checkout.thank_you.thank_you_confirmed_order_with_phone_pick_up
486
+ - shopify.checkout.thank_you.thank_you_confirmed_order_with_email_and_phone_pick_up
487
+ - shopify.checkout.thank_you.thank_you_confirmed_order_with_missing
488
+ - shopify.checkout.thank_you.order_status_confirmed_order_with_email
489
+ - shopify.checkout.thank_you.order_status_confirmed_order_with_phone
490
+ - shopify.checkout.thank_you.order_status_confirmed_order_with_email_and_phone
491
+ - shopify.checkout.thank_you.order_status_confirmed_order_with_email_payment
492
+ - shopify.checkout.thank_you.order_status_confirmed_order_with_phone_payment
493
+ - shopify.checkout.thank_you.order_status_confirmed_order_with_email_and_phone_payment
494
+ - shopify.checkout.thank_you.order_status_confirmed_order_with_email_pick_up
495
+ - shopify.checkout.thank_you.order_status_confirmed_order_with_phone_pick_up
496
+ - shopify.checkout.thank_you.order_status_confirmed_order_with_email_and_phone_pick_up
497
+ - shopify.checkout.thank_you.order_status_confirmed_order_local
498
+ - shopify.checkout.thank_you.order_status_updates_with_email
499
+ - shopify.checkout.thank_you.order_status_updates_with_phone
500
+ - shopify.checkout.thank_you.order_status_updates_with_email_and_phone
501
+ - shopify.checkout.thank_you.order_status_updates_with_missing
502
+ - shopify.checkout.thank_you.confirmed_title
503
+ - shopify.checkout.thank_you.confirmed_description
504
+ - shopify.checkout.thank_you.ready_for_pickup_title
505
+ - shopify.checkout.thank_you.ready_for_pickup_description
506
+ - shopify.checkout.thank_you.ready_for_delivery_title
507
+ - shopify.checkout.thank_you.ready_for_delivery_description
508
+ - shopify.checkout.thank_you.order_updates_title
509
+ - shopify.checkout.thank_you.shop_phone_description
510
+ - shopify.checkout.thank_you.order_updates_description_html
511
+ - shopify.checkout.thank_you.order_updates_current_step_prefix
512
+ - shopify.checkout.thank_you.order_updates_past_step_prefix
513
+ - shopify.checkout.thank_you.order_updates_upcoming_step_prefix
514
+ - shopify.checkout.thank_you.in_transit
515
+ - shopify.checkout.thank_you.in_transit_title
516
+ - shopify.checkout.thank_you.in_transit_description
517
+ - shopify.checkout.thank_you.in_transit_description_days
518
+ - shopify.checkout.thank_you.in_transit_description_today
519
+ - shopify.checkout.thank_you.in_transit_description_tomorrow
520
+ - shopify.checkout.thank_you.no_tracking_number
521
+ - shopify.checkout.thank_you.out_for_delivery
522
+ - shopify.checkout.thank_you.out_for_delivery_title
523
+ - shopify.checkout.thank_you.out_for_delivery_description_html
524
+ - shopify.checkout.thank_you.out_for_delivery_local_title
525
+ - shopify.checkout.thank_you.out_for_delivery_local_description_html
526
+ - shopify.checkout.thank_you.attempted_delivery
527
+ - shopify.checkout.thank_you.attempted_delivery_title
528
+ - shopify.checkout.thank_you.attempted_delivery_description_html
529
+ - shopify.checkout.thank_you.attempted_delivery_local_title
530
+ - shopify.checkout.thank_you.attempted_delivery_local_description_html
531
+ - shopify.checkout.thank_you.delivered
532
+ - shopify.checkout.thank_you.delivered_title
533
+ - shopify.checkout.thank_you.delivered_description_html
534
+ - shopify.checkout.thank_you.delivered_local_title
535
+ - shopify.checkout.thank_you.delivered_local_description_html
536
+ - shopify.checkout.thank_you.picked_up_title
537
+ - shopify.checkout.thank_you.picked_up_description_html
538
+ - shopify.checkout.thank_you.contact_us
539
+ - shopify.checkout.thank_you.contact_us_lowercase
540
+ - shopify.checkout.thank_you.contact_us_html
541
+ - shopify.checkout.thank_you.updated_time
542
+ - shopify.checkout.thank_you.failure
543
+ - shopify.checkout.thank_you.failed_title
544
+ - shopify.checkout.thank_you.failed_contact_merchant
545
+ - shopify.checkout.thank_you.failed_contact_merchant_no_company
546
+ - shopify.checkout.thank_you.non_shippable_title
547
+ - shopify.checkout.thank_you.let_us_know
548
+ - shopify.checkout.thank_you.login_title
549
+ - shopify.checkout.thank_you.login_description
550
+ - shopify.checkout.thank_you.login_description_phone
551
+ - shopify.checkout.thank_you.login_not_customer_html
552
+ - shopify.checkout.thank_you.login_reorder_link_text.one
553
+ - shopify.checkout.thank_you.login_reorder_link_text.other
554
+ - shopify.checkout.thank_you.customer_information_hidden_fields_message
555
+ - shopify.checkout.thank_you.cancelled_title
556
+ - shopify.checkout.thank_you.cancelled_description
557
+ - shopify.checkout.thank_you.order_number_label
558
+ - shopify.checkout.thank_you.customer_validation_error
559
+ - shopify.checkout.thank_you.customer_validation_error_phone
560
+ - shopify.checkout.thank_you.login
561
+ - shopify.checkout.thank_you.unfulfilled_items_title
562
+ - shopify.checkout.thank_you.unfulfilled_items_description
563
+ - shopify.checkout.thank_you.marker.current
564
+ - shopify.checkout.thank_you.marker.shipping
565
+ - shopify.checkout.thank_you.pick_up_in_store_marker.current
566
+ - shopify.checkout.thank_you.pick_up_in_store_marker.shipping
567
+ - shopify.checkout.thank_you.fulfillment.fulfilled_table_title
568
+ - shopify.checkout.thank_you.fulfillment.unfulfilled_table_title
569
+ - shopify.checkout.thank_you.fulfillment.product_image_label
570
+ - shopify.checkout.thank_you.fulfillment.description_label
571
+ - shopify.checkout.thank_you.fulfillment.quantity_label
572
+ - shopify.checkout.thank_you.opt_in_message_html
573
+ - shopify.checkout.thank_you.order_updates_description_missing
574
+ - shopify.checkout.thank_you.order_updates_subscribe_to_email_notifications
575
+ - shopify.checkout.thank_you.order_updates_subscribe_to_email_or_phone_notifications
576
+ - shopify.checkout.thank_you.order_updates_subscribe_to_phone_notifications
577
+ - shopify.checkout.thank_you.order_updates_submit_subscription
578
+ - shopify.checkout.thank_you.track_shipment
579
+ - shopify.checkout.thank_you.shopify_pay.order_completed_html
580
+ - shopify.checkout.thank_you.shopify_pay.learn_more_label
581
+ - shopify.checkout.thank_you.other_options
582
+ - shopify.checkout.thank_you.delivery_information_label
583
+ - shopify.checkout.thank_you.gift_card_sent_confirmation
584
+ - shopify.checkout.thank_you.qr_code.title
585
+ - shopify.checkout.thank_you.qr_code.subtitle
586
+ - shopify.checkout.thank_you.qr_code.send_link_to_phone
587
+ - shopify.checkout.review.title
588
+ - shopify.checkout.review.review_title
589
+ - shopify.checkout.review.checkout_as_guest
590
+ - shopify.checkout.review.review_notice_html
591
+ - shopify.checkout.review.blocks.contact_method_title
592
+ - shopify.checkout.review.blocks.billing_address_title
593
+ - shopify.checkout.review.blocks.shipping_address_title
594
+ - shopify.checkout.review.blocks.shipping_method_title
595
+ - shopify.checkout.review.blocks.payment_method_title
596
+ - shopify.checkout.review.blocks.change_link_label
597
+ - shopify.checkout.review.blocks.change_contact_method_link_label
598
+ - shopify.checkout.review.blocks.change_billing_address_link_label
599
+ - shopify.checkout.review.blocks.change_shipping_address_link_label
600
+ - shopify.checkout.review.blocks.change_shipping_method_link_label
601
+ - shopify.checkout.review.blocks.change_payment_method_link_label
602
+ - shopify.checkout.review.blocks.pick_up_in_store_shipping_method_html
603
+ - shopify.checkout.marketing.accept_marketing_checkbox_label
604
+ - shopify.checkout.marketing.unsubscribe.title
605
+ - shopify.checkout.marketing.unsubscribe.description
606
+ - shopify.checkout.shop_policies.refund_policy
607
+ - shopify.checkout.shop_policies.privacy_policy
608
+ - shopify.checkout.shop_policies.terms_of_service
609
+ - shopify.checkout.shop_policies.legal_notice
610
+ - shopify.checkout.shop_policies.shipping_policy
611
+ - shopify.checkout.shop_policies.terms_of_sale
612
+ - shopify.checkout.shop_policies.subscription_policy
613
+ - shopify.checkout.remember_me.shopify_pay_label
614
+ - shopify.checkout.remember_me.save
615
+ - shopify.checkout.remember_me.title
616
+ - shopify.checkout.remember_me.label
617
+ - shopify.checkout.remember_me.description_html
618
+ - shopify.checkout.remember_me.mobile_phone_icon_alt
619
+ - shopify.checkout.remember_me.mobile_phone_number
620
+ - shopify.checkout.remember_me.terms_and_privacy_html
621
+ - shopify.checkout.remember_me.privacy_policy
622
+ - shopify.checkout.remember_me.terms_of_service
623
+ - shopify.checkout.remember_me.errors.optin
624
+ - shopify.checkout.remember_me.installments.paid_in_installments
625
+ - shopify.checkout.remember_me.installments.view_schedule
626
+ - shopify.checkout.notifications.title
627
+ - shopify.checkout.order_payment_collection.custom_line_item_description
628
+ - shopify.checkout.order_payment_collection.changes_summary.added.one
629
+ - shopify.checkout.order_payment_collection.changes_summary.added.other
630
+ - shopify.checkout.order_payment_collection.changes_summary.removed
631
+ - shopify.checkout.order_payment_collection.changes_summary.subtracted
632
+ - shopify.checkout.order_payment_collection.additional_payment_requested
633
+ - shopify.checkout.order_payment_collection.checkout_review_and_pay
634
+ - shopify.checkout.order_payment_collection.order_updated_on
635
+ - shopify.checkout.order_payment_collection.order_review_and_pay
636
+ - shopify.checkout.order_payment_collection.pay_now
637
+ - shopify.checkout.change_currency.currency_button_label
638
+ - shopify.checkout.change_currency.credit_card_will_be_charged_html
639
+ - shopify.checkout.change_currency.payment_total_label
640
+ - shopify.checkout.change_currency.conversion_rate
641
+ - shopify.checkout.change_currency.change_currency_link
642
+ - shopify.checkout.change_currency.card_provider_fx_charges_warning
643
+ - shopify.checkout.change_country.cart_updated_based_on_country
644
+ - shopify.checkout.tips.title
645
+ - shopify.checkout.tips.description
646
+ - shopify.checkout.tips.presets_description
647
+ - shopify.checkout.tips.custom_label
648
+ - shopify.checkout.tips.add_tip
649
+ - shopify.checkout.tips.update_tip
650
+ - shopify.checkout.tips.message
651
+ - shopify.checkout.tips.preset_label
652
+ - shopify.checkout.tips.no_tip_label
653
+ - shopify.checkout.open_graph_meta_tag.title_with_products.zero
654
+ - shopify.checkout.open_graph_meta_tag.title_with_products.one
655
+ - shopify.checkout.open_graph_meta_tag.title_with_products.other
656
+ - shopify.checkout.subscriptions.recurring_total_intervals.day.one
657
+ - shopify.checkout.subscriptions.recurring_total_intervals.day.other
658
+ - shopify.checkout.subscriptions.recurring_total_intervals.week.one
659
+ - shopify.checkout.subscriptions.recurring_total_intervals.week.other
660
+ - shopify.checkout.subscriptions.recurring_total_intervals.month.one
661
+ - shopify.checkout.subscriptions.recurring_total_intervals.month.other
662
+ - shopify.checkout.subscriptions.recurring_total_intervals.year.one
663
+ - shopify.checkout.subscriptions.recurring_total_intervals.year.other
664
+ - shopify.checkout.subscriptions.recurring_totals
665
+ - shopify.checkout.subscriptions.recurring_totals_with_initial_order_shipping_discount
666
+ - shopify.checkout.subscriptions.recurring_totals_with_policies.first_cycles.one
667
+ - shopify.checkout.subscriptions.recurring_totals_with_policies.first_cycles.other
668
+ - shopify.checkout.subscriptions.recurring_totals_with_policies.following_cycles
669
+ - shopify.checkout.subscriptions.recurring_totals_with_initial_order_shipping_discount_with_policies.first_cycles.one
670
+ - shopify.checkout.subscriptions.recurring_totals_with_initial_order_shipping_discount_with_policies.first_cycles.other
671
+ - shopify.checkout.customer_payment_methods.page_title
672
+ - shopify.checkout.customer_payment_methods.title
673
+ - shopify.checkout.customer_payment_methods.update_card_button_label
674
+ - shopify.pagination.previous
675
+ - shopify.pagination.next
676
+ - shopify.links.powered_by_shopify
677
+ - shopify.links.learn_more
678
+ - shopify.feed.more
679
+ - shopify.attributes.email
680
+ - shopify.attributes.password
681
+ - shopify.attributes.password_confirmation
682
+ - shopify.attributes.first_name
683
+ - shopify.attributes.last_name
684
+ - shopify.attributes.body
685
+ - shopify.attributes.signature
686
+ - shopify.addresses.zip_code
687
+ - shopify.addresses.postal_code
688
+ - shopify.addresses.postcode
689
+ - shopify.addresses.pincode
690
+ - shopify.addresses.region
691
+ - shopify.addresses.prefecture
692
+ - shopify.addresses.province
693
+ - shopify.addresses.state
694
+ - shopify.addresses.state_and_territory
695
+ - shopify.addresses.county
696
+ - shopify.addresses.emirate
697
+ - shopify.addresses.governorate
698
+ - shopify.addresses.confirm
699
+ - shopify.collections.sorting.manual
700
+ - shopify.collections.sorting.best_selling
701
+ - shopify.collections.sorting.az
702
+ - shopify.collections.sorting.za
703
+ - shopify.collections.sorting.price_ascending
704
+ - shopify.collections.sorting.price_descending
705
+ - shopify.collections.sorting.date_ascending
706
+ - shopify.collections.sorting.date_descending
707
+ - shopify.errors.blank
708
+ - shopify.errors.blocked_address
709
+ - shopify.errors.credit_card_session_expired
710
+ - shopify.errors.empty
711
+ - shopify.errors.invalid_email
712
+ - shopify.errors.discount_disabled
713
+ - shopify.errors.discount_expired
714
+ - shopify.errors.discount_limit_reached
715
+ - shopify.errors.discount_not_found
716
+ - shopify.errors.customer_already_used_once_per_customer_discount_notice
717
+ - shopify.errors.gift_card_already_applied
718
+ - shopify.errors.gift_card_code_invalid
719
+ - shopify.errors.gift_card_currency_mismatch
720
+ - shopify.errors.gift_card_depleted
721
+ - shopify.errors.gift_card_disabled
722
+ - shopify.errors.gift_card_expired
723
+ - shopify.errors.invalid
724
+ - shopify.errors.bad_domain
725
+ - shopify.errors.taken
726
+ - shopify.errors.contains_html_tags
727
+ - shopify.errors.too_short
728
+ - shopify.errors.too_long
729
+ - shopify.errors.password_mismatch
730
+ - shopify.errors.contains_spaces
731
+ - shopify.errors.email_domain_invalid
732
+ - shopify.errors.invalid_for_country
733
+ - shopify.errors.invalid_for_country_and_province
734
+ - shopify.errors.invalid_province_in_country
735
+ - shopify.errors.invalid_state_in_country
736
+ - shopify.errors.invalid_region_in_country
737
+ - shopify.errors.less_than_or_equal_to
738
+ - shopify.errors.not_supported
739
+ - shopify.errors.full_name_required
740
+ - shopify.errors.invalid_for_card_type
741
+ - shopify.errors.invalid_type
742
+ - shopify.errors.invalid_format
743
+ - shopify.errors.expired
744
+ - shopify.errors.invalid_start_date_or_issue_number_for_debit
745
+ - shopify.errors.invalid_expiry_year
746
+ - shopify.errors.reset_password_html
747
+ - shopify.errors.verify_email
748
+ - shopify.notices.customer.password_reset_error
749
+ - shopify.notices.customer.no_account_found
750
+ - shopify.notices.customer.invalid_credentials
751
+ - shopify.notices.address.updated
752
+ - shopify.notices.address.error_updating
753
+ - shopify.notices.address.created
754
+ - shopify.notices.address.error_creating
755
+ - shopify.notices.address.deleted
756
+ - shopify.notices.address.error_deleting
757
+ - shopify.notices.order.not_available
758
+ - shopify.notices.order.financial_status.authorized
759
+ - shopify.notices.order.financial_status.pending
760
+ - shopify.notices.order.financial_status.paid
761
+ - shopify.notices.order.financial_status.unpaid
762
+ - shopify.notices.order.financial_status.voided
763
+ - shopify.notices.order.financial_status.partially_paid
764
+ - shopify.notices.order.financial_status.partially_refunded
765
+ - shopify.notices.order.financial_status.refunded
766
+ - shopify.notices.order.financial_status.expired
767
+ - shopify.notices.order.fulfillment_status.fulfilled
768
+ - shopify.notices.order.fulfillment_status.complete
769
+ - shopify.notices.order.fulfillment_status.partial
770
+ - shopify.notices.order.fulfillment_status.unfulfilled
771
+ - shopify.notices.order.fulfillment_status.restocked
772
+ - shopify.notices.order.transaction_status.success
773
+ - shopify.notices.order.transaction_status.pending
774
+ - shopify.notices.order.transaction_status.failure
775
+ - shopify.notices.order.transaction_status.error
776
+ - shopify.notices.order.cancel_reason.declined
777
+ - shopify.notices.order.cancel_reason.inventory
778
+ - shopify.notices.order.cancel_reason.fraud
779
+ - shopify.notices.order.cancel_reason.customer
780
+ - shopify.notices.order.cancel_reason.other
781
+ - shopify.notices.order.cash_on_delivery
782
+ - shopify.notices.cart.only_n_items_available
783
+ - shopify.notices.cart.too_many_items_in_cart
784
+ - shopify.notices.cart.all_items_in_cart
785
+ - shopify.notices.cart.empty_update
786
+ - shopify.notices.cart.missing_parameters
787
+ - shopify.notices.cart.generic_error
788
+ - shopify.notices.cart.too_many_line_items_error
789
+ - shopify.notices.cart.link_expired
790
+ - shopify.notices.cart.link_no_longer_exists
791
+ - shopify.notices.cart.stock_problems_html
792
+ - shopify.notices.cart.changed
793
+ - shopify.notices.cart.items_changed
794
+ - shopify.notices.cart.product_sold_out
795
+ - shopify.notices.cart.variant_not_found
796
+ - shopify.notices.cart.variant_requires_selling_plan
797
+ - shopify.notices.cart.selling_plan_not_applicable
798
+ - shopify.notices.cart.shipping_address_not_required
799
+ - shopify.notices.cart.shipping_address_invalid
800
+ - shopify.notices.storefront.invalid_password
801
+ - shopify.email_marketing.subscribed.confirmation
802
+ - shopify.email_marketing.subscribed.disclaimer
803
+ - shopify.email_marketing.subscribed.unsubscribe
804
+ - shopify.email_marketing.unsubscribed.confirmation
805
+ - shopify.email_marketing.unsubscribed.disclaimer
806
+ - shopify.email_marketing.unsubscribed.preview
807
+ - shopify.email_marketing.open_tracking.opt_in.opted_in_html
808
+ - shopify.email_marketing.open_tracking.opt_in.visibility
809
+ - shopify.email_marketing.open_tracking.opt_in.opt_out_html
810
+ - shopify.email_marketing.open_tracking.opt_in.preview_bar
811
+ - shopify.email_marketing.open_tracking.opt_out.opted_out_html
812
+ - shopify.email_marketing.open_tracking.opt_out.visibility
813
+ - shopify.email_marketing.open_tracking.opt_out.opt_in_html
814
+ - shopify.email_marketing.open_tracking.opt_out.preview_bar
815
+ - shopify.email_marketing.open_tracking.no_longer_track.status_html
816
+ - shopify.email_marketing.open_tracking.no_longer_track.privacy_policy
817
+ - shopify.email_marketing.open_tracking.track.status_html
818
+ - shopify.email_marketing.open_tracking.track.visibility
819
+ - shopify.email_marketing.open_tracking.updated_policy.status_html
820
+ - shopify.email_marketing.open_tracking.updated_policy.visibility
821
+ - shopify.email_marketing.open_tracking.updated_policy.opt_out_html
822
+ - shopify.page_titles.products
823
+ - shopify.page_titles.shopping_cart
824
+ - shopify.page_titles.account
825
+ - shopify.page_titles.create_account
826
+ - shopify.page_titles.reset_account
827
+ - shopify.page_titles.addresses
828
+ - shopify.page_titles.order
829
+ - shopify.page_titles.search
830
+ - shopify.page_titles.collections
831
+ - shopify.page_titles.not_found
832
+ - shopify.page_titles.challenge
833
+ - shopify.page_titles.checkpoint
834
+ - shopify.cart.discounts_with_count
835
+ - shopify.challenge.message
836
+ - shopify.challenge.error
837
+ - shopify.challenge.submit_button_text
838
+ - shopify.checkpoint.message
839
+ - shopify.checkpoint.error
840
+ - shopify.checkpoint.submit_button_text
841
+ - shopify.store_availability.pick_up_time.one_hour
842
+ - shopify.store_availability.pick_up_time.two_hours
843
+ - shopify.store_availability.pick_up_time.four_hours
844
+ - shopify.store_availability.pick_up_time.twenty_four_hours
845
+ - shopify.store_availability.pick_up_time.two_to_four_days
846
+ - shopify.store_availability.pick_up_time.five_or_more_days
847
+ - shopify.store_availability.pick_up_time.zero_to_two_hours
848
+ - shopify.store_availability.pick_up_time.two_to_four_hours
849
+ - shopify.store_availability.pick_up_time.immediately
850
+ - shopify.store_availability.pick_up_time.next_day