theme-check 0.4.0 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/theme-check.yml +10 -3
  3. data/.rubocop.yml +12 -3
  4. data/CHANGELOG.md +40 -0
  5. data/CONTRIBUTING.md +5 -2
  6. data/Gemfile +5 -3
  7. data/LICENSE.md +2 -0
  8. data/README.md +12 -2
  9. data/RELEASING.md +10 -3
  10. data/Rakefile +6 -0
  11. data/config/default.yml +16 -0
  12. data/data/shopify_liquid/tags.yml +1 -0
  13. data/data/shopify_translation_keys.yml +850 -0
  14. data/docs/checks/CHECK_DOCS_TEMPLATE.md +47 -0
  15. data/docs/checks/asset_size_css.md +52 -0
  16. data/docs/checks/asset_size_javascript.md +79 -0
  17. data/docs/checks/convert_include_to_render.md +48 -0
  18. data/docs/checks/default_locale.md +46 -0
  19. data/docs/checks/deprecated_filter.md +46 -0
  20. data/docs/checks/img_width_and_height.md +79 -0
  21. data/docs/checks/liquid_tag.md +65 -0
  22. data/docs/checks/matching_schema_translations.md +93 -0
  23. data/docs/checks/matching_translations.md +72 -0
  24. data/docs/checks/missing_enable_comment.md +50 -0
  25. data/docs/checks/missing_required_template_files.md +26 -0
  26. data/docs/checks/missing_template.md +40 -0
  27. data/docs/checks/nested_snippet.md +69 -0
  28. data/docs/checks/parser_blocking_javascript.md +97 -0
  29. data/docs/checks/remote_asset.md +82 -0
  30. data/docs/checks/required_directories.md +25 -0
  31. data/docs/checks/required_layout_theme_object.md +28 -0
  32. data/docs/checks/space_inside_braces.md +63 -0
  33. data/docs/checks/syntax_error.md +49 -0
  34. data/docs/checks/template_length.md +50 -0
  35. data/docs/checks/translation_key_exists.md +63 -0
  36. data/docs/checks/undefined_object.md +53 -0
  37. data/docs/checks/unknown_filter.md +45 -0
  38. data/docs/checks/unused_assign.md +47 -0
  39. data/docs/checks/unused_snippet.md +32 -0
  40. data/docs/checks/valid_html_translation.md +53 -0
  41. data/docs/checks/valid_json.md +60 -0
  42. data/docs/checks/valid_schema.md +50 -0
  43. data/lib/theme_check.rb +4 -0
  44. data/lib/theme_check/asset_file.rb +34 -0
  45. data/lib/theme_check/check.rb +20 -10
  46. data/lib/theme_check/checks/asset_size_css.rb +89 -0
  47. data/lib/theme_check/checks/asset_size_javascript.rb +68 -0
  48. data/lib/theme_check/checks/convert_include_to_render.rb +1 -1
  49. data/lib/theme_check/checks/default_locale.rb +1 -0
  50. data/lib/theme_check/checks/deprecated_filter.rb +1 -1
  51. data/lib/theme_check/checks/img_width_and_height.rb +74 -0
  52. data/lib/theme_check/checks/liquid_tag.rb +3 -3
  53. data/lib/theme_check/checks/matching_schema_translations.rb +1 -0
  54. data/lib/theme_check/checks/matching_translations.rb +2 -1
  55. data/lib/theme_check/checks/missing_enable_comment.rb +1 -0
  56. data/lib/theme_check/checks/missing_required_template_files.rb +1 -2
  57. data/lib/theme_check/checks/missing_template.rb +1 -0
  58. data/lib/theme_check/checks/nested_snippet.rb +1 -0
  59. data/lib/theme_check/checks/parser_blocking_javascript.rb +8 -15
  60. data/lib/theme_check/checks/remote_asset.rb +99 -0
  61. data/lib/theme_check/checks/required_directories.rb +1 -1
  62. data/lib/theme_check/checks/required_layout_theme_object.rb +1 -1
  63. data/lib/theme_check/checks/space_inside_braces.rb +1 -0
  64. data/lib/theme_check/checks/syntax_error.rb +1 -0
  65. data/lib/theme_check/checks/template_length.rb +1 -0
  66. data/lib/theme_check/checks/translation_key_exists.rb +14 -1
  67. data/lib/theme_check/checks/undefined_object.rb +11 -5
  68. data/lib/theme_check/checks/unknown_filter.rb +1 -0
  69. data/lib/theme_check/checks/unused_assign.rb +1 -0
  70. data/lib/theme_check/checks/unused_snippet.rb +1 -0
  71. data/lib/theme_check/checks/valid_html_translation.rb +2 -1
  72. data/lib/theme_check/checks/valid_json.rb +1 -0
  73. data/lib/theme_check/checks/valid_schema.rb +1 -0
  74. data/lib/theme_check/cli.rb +29 -9
  75. data/lib/theme_check/config.rb +5 -2
  76. data/lib/theme_check/disabled_checks.rb +2 -2
  77. data/lib/theme_check/in_memory_storage.rb +13 -8
  78. data/lib/theme_check/language_server.rb +2 -0
  79. data/lib/theme_check/language_server/completion_engine.rb +3 -3
  80. data/lib/theme_check/language_server/completion_helper.rb +0 -10
  81. data/lib/theme_check/language_server/completion_provider.rb +5 -0
  82. data/lib/theme_check/language_server/completion_providers/filter_completion_provider.rb +6 -2
  83. data/lib/theme_check/language_server/completion_providers/object_completion_provider.rb +1 -1
  84. data/lib/theme_check/language_server/completion_providers/render_snippet_completion_provider.rb +43 -0
  85. data/lib/theme_check/language_server/completion_providers/tag_completion_provider.rb +2 -2
  86. data/lib/theme_check/language_server/constants.rb +10 -0
  87. data/lib/theme_check/language_server/document_link_engine.rb +48 -0
  88. data/lib/theme_check/language_server/handler.rb +67 -20
  89. data/lib/theme_check/language_server/server.rb +9 -4
  90. data/lib/theme_check/liquid_check.rb +11 -0
  91. data/lib/theme_check/node.rb +1 -2
  92. data/lib/theme_check/offense.rb +3 -1
  93. data/lib/theme_check/packager.rb +1 -1
  94. data/lib/theme_check/regex_helpers.rb +15 -0
  95. data/lib/theme_check/releaser.rb +39 -0
  96. data/lib/theme_check/remote_asset_file.rb +44 -0
  97. data/lib/theme_check/shopify_liquid/deprecated_filter.rb +10 -8
  98. data/lib/theme_check/shopify_liquid/filter.rb +3 -5
  99. data/lib/theme_check/shopify_liquid/object.rb +2 -6
  100. data/lib/theme_check/shopify_liquid/tag.rb +1 -3
  101. data/lib/theme_check/storage.rb +3 -3
  102. data/lib/theme_check/string_helpers.rb +47 -0
  103. data/lib/theme_check/tags.rb +1 -2
  104. data/lib/theme_check/theme.rb +7 -1
  105. data/lib/theme_check/version.rb +1 -1
  106. data/packaging/homebrew/theme_check.base.rb +1 -1
  107. data/theme-check.gemspec +1 -2
  108. metadata +46 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5543690a150f2a864a5a9900feca80286ffe4c00d545885ee31dc02c9d389b71
4
- data.tar.gz: c1c518e2013a1106dc7ace3a14ef5158853e06929694503777a37c0fc695025a
3
+ metadata.gz: b516a7041c1025cd22bcbb4cab685b45893b38fa41ab55b539efad60cf67e100
4
+ data.tar.gz: 86d5d5054247c0c86b4a31b066a579fc60fbcf4f0d32940354c4fc9793667498
5
5
  SHA512:
6
- metadata.gz: 405832fbd93d17f3412abb83181b8c76c0aee43e2405bc7329b7ace746c20887c32ab638bf49c99adf4598532fc92d5840a46dc24d2a20b89909849b8c2813a3
7
- data.tar.gz: 40316910f51d646017059d4256cba23dfcb9e20822a0987b65a04ab79c40c160c882d4bdf7e0cc4d646b08971ba04bb58999a7c5b93a4741233a8ce1c5ce4ad9
6
+ metadata.gz: b76463ad9ecab829705519f163745fdd7cb6dea084558983c914dd3ddf923385050da1c535ad73f48a4442dd8a67bc797fd072e293aa85befb15a141870196db
7
+ data.tar.gz: 67571132dcf7fd556c81d4eb7f7e15c8db6c7ccee70384bb6654915090d5c8c213dbbee9b9b36acd74f0cac02390630defe7c1de1956f41f61c9d30294cdd4a0
@@ -8,15 +8,22 @@ on:
8
8
 
9
9
  jobs:
10
10
  test:
11
+ runs-on: macos-latest
11
12
 
12
- runs-on: ubuntu-20.04
13
+ strategy:
14
+ matrix:
15
+ version:
16
+ - 3.0.0
17
+ - 2.7.1
18
+
19
+ name: Ruby ${{ matrix.version }}
13
20
 
14
21
  steps:
15
22
  - uses: actions/checkout@v2
16
- - name: Set up Ruby
23
+ - name: Set up Ruby ${{ matrix.version }}
17
24
  uses: ruby/setup-ruby@v1
18
25
  with:
19
- ruby-version: 2.7
26
+ ruby-version: ${{ matrix.version }}
20
27
  - uses: actions/cache@v1
21
28
  with:
22
29
  path: vendor/bundle
data/.rubocop.yml CHANGED
@@ -1,7 +1,10 @@
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
@@ -17,3 +20,9 @@ Layout/LineLength:
17
20
 
18
21
  Lint/MissingSuper:
19
22
  Enabled: false
23
+
24
+ Style/StringLiterals:
25
+ Enabled: false
26
+
27
+ Style/StringLiteralsInInterpolation:
28
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,4 +1,44 @@
1
1
 
2
+ 0.7.2 / 2021-04-12
3
+ ==================
4
+
5
+ * Fixup bug in RemoteAsset causing Language Server to break
6
+
7
+ 0.7.1 / 2021-04-12
8
+ ==================
9
+
10
+ * Fix High CPU Bug in RemoteAsset check
11
+ * Fix document link for render tags that trim whitespace.
12
+
13
+ 0.7.0 / 2021-04-08
14
+ ==================
15
+
16
+ * Add [RemoteAsset Check](/docs/checks/remote_asset.md)
17
+ * Fixes:
18
+ * Don't hang on self closing img tags ([#247](https://github.com/shopify/theme-check/issues/247))
19
+ * Fix document links from different root
20
+
21
+ 0.6.0 / 2021-03-23
22
+ ==================
23
+
24
+ * Add [Snippet Completion](https://screenshot.click/23-22-5tyee-kv5vl.mp4) ([#223](https://github.com/shopify/theme-check/issues/223))
25
+ * Add [Snippet Document Links](https://screenshot.click/23-09-71h84-pp23z.mp4) ([#223](https://github.com/shopify/theme-check/issues/223))
26
+ * Add [ImgWidthAndHeight](/docs/checks/img_width_and_height.md) check ([#216](https://github.com/shopify/theme-check/issues/216))
27
+ * Add [AssetSizeCSS](/docs/checks/asset_size_css.md) check ([#206](https://github.com/shopify/theme-check/issues/206))
28
+ * Do not flag SystemTranslations as errors ([#114](https://github.com/shopify/theme-check/issues/114))
29
+ * Do not complete deprecated filters ([#205](https://github.com/shopify/theme-check/issues/205))
30
+ * Add `-C, --config path` support ([#213](https://github.com/shopify/theme-check/issues/213))
31
+
32
+ 0.5.0 / 2021-03-12
33
+ ==================
34
+
35
+ * Add [AssetSizeJavaScript](/docs/checks/asset_size_javascript.md) check ([#194](https://github.com/Shopify/theme-check/pull/194))
36
+ * Add [documentation for all checks](/docs/checks)
37
+ * Make documentation for checks mandatory
38
+ * Add link to documentation from within the editor (via `codeDescription` in the Language Server) (![Demo](https://screenshot.click/10-29-cjx7r-4asor.mp4))
39
+ * Allow checks to have multiple categories
40
+ * Fix multiple occurrences of UndefinedObject not being reported ([#192](https://github.com/shopify/theme-check/issues/192))
41
+
2
42
  v0.4.0 / 2021-02-25
3
43
  ==================
4
44
 
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', '~> 1.12.0', require: false
25
+ gem 'rubocop-performance', '~> 1.10.2', require: false
26
+ gem 'rubocop-shopify', '~> 1.0.7', require: false
27
+ gem 'rubocop-minitest', '~> 0.11.0', require: false
28
+ gem 'rubocop-rake', '~> 0.5.1', require: false
data/LICENSE.md CHANGED
@@ -1,6 +1,8 @@
1
1
 
2
2
  Copyright 2020-present, Shopify Inc.
3
3
 
4
+ Contains code from activesupport Copyright (c) 2005-2019 David Heinemeier Hansson
5
+
4
6
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5
7
 
6
8
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
data/README.md CHANGED
@@ -32,7 +32,17 @@ Theme Check currently checks for the following:
32
32
  ✅ Deprecated filters
33
33
  ✅ Missing `theme-check-enable` comment
34
34
 
35
- 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
+ ✅ [Use of non-Shopify domains for assets](/docs/checks/remote_asset.md)
39
+ ✅ [Missing width and height attributes on `img` tags](/docs/checks/img_width_and_height.md)
40
+ ✅ [Too much JavaScript](/docs/checks/asset_size_javascript.md)
41
+ ✅ [Too much CSS](/docs/checks/asset_size_css.md)
42
+
43
+ For detailed descriptions and configuration options, [take a look at the complete list.](/docs/checks/)
44
+
45
+ With more to come! Suggestions welcome ([create an issue](https://github.com/Shopify/theme-check/issues)).
36
46
 
37
47
  ## Requirements
38
48
 
@@ -87,7 +97,7 @@ TemplateLength:
87
97
  enabled: false
88
98
  # Or configure options
89
99
  max_length: 300
90
-
100
+
91
101
  # Enable a custom check
92
102
  MyCustomCheck
93
103
  enabled: true
data/RELEASING.md CHANGED
@@ -2,11 +2,18 @@
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. Run the following command 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
- 3. Merge your PR to master
7
+ ```bash
8
+ VERSION="X.X.X"
9
+ rake prerelease[$VERSION]
10
+ ```
11
+
12
+ 3. Commit your changes and make a PR.
13
+
14
+ 4. Merge your PR to master.
8
15
 
9
- 4. On [Shipit](https://shipit.shopify.io/shopify/theme-check/rubygems), deploy your commit.
16
+ 5. On [Shipit](https://shipit.shopify.io/shopify/theme-check/rubygems), deploy your commit.
10
17
 
11
18
  ## Homebrew Release Process
12
19
 
data/Rakefile CHANGED
@@ -46,3 +46,9 @@ end
46
46
 
47
47
  desc("Builds all distribution packages of the CLI")
48
48
  task(package: 'package:all')
49
+
50
+ desc("Update files in the repo to match new version")
51
+ task :prerelease, [:version] do |_t, args|
52
+ require 'theme_check/releaser'
53
+ ThemeCheck::Releaser.new.release(args.version)
54
+ end
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
@@ -80,3 +82,17 @@ MissingEnableComment:
80
82
 
81
83
  ParserBlockingJavaScript:
82
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
96
+
97
+ RemoteAsset:
98
+ enabled: true
@@ -15,6 +15,7 @@
15
15
  - increment
16
16
  - javascript
17
17
  - layout
18
+ - liquid
18
19
  - paginate
19
20
  - raw
20
21
  - render
@@ -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