{
apps: {
create: {
info: {
created: "{{v}} {{green:%s}} was created in the organization's Partner Dashboard {{underline:%s}}",
serve: "{{*}} Change directories to your new project folder {{green:%s}} and run "\
"{{command:%s app serve}} to start a local server",
install: "{{*}} Then, visit {{underline:%s/test}} to install {{green:%s}} on your Dev Store",
},
},
},
core: {
errors: {
missing_node: "Node.js is required to continue. Install Node.js here: https://nodejs.org/en/download.",
missing_npm: "npm is required to continue. Install npm here: https://www.npmjs.com/get-npm.",
missing_ruby: "Ruby is required to continue. Install Ruby here: https://www.ruby-lang.org/en/downloads.",
bundle_info_failure: "Error getting version for %s gem",
option_parser: {
invalid_option: "The option {{command:%s}} is not supported.",
invalid_option_store_equals: <<~MESSAGE,
missing_argument: "The required argument {{command:%s}} is missing.",
},
},
app: {
help: <<~HELP,
error: {
type_not_found: <<~MESSAGE,
missing_shopify_cli_yml: <<~MESSAGE,
invalid_project_type: <<~MESSAGE,
},
create: {
type_required_error: "",
invalid_type: "The type %s is not supported. The only supported types are"\
" {{command:[ rails | node | php ]}}",
help: <<~HELP,
rails: {
help: <<~HELP,
error: {
invalid_ruby_version: "This project requires a Ruby version ~> 2.5 or Ruby 3.0.",
dir_exists: "Project directory %s already exists. Please use a different name.",
install_failure: "Error installing %s gem",
node_required: "node is required to create a rails project. Download at https://nodejs.org/en/download.",
node_version_failure: "Failed to get the current node version. Please make sure it is installed as " \
"per the instructions at https://nodejs.org/en.",
yarn_required: "yarn is required to create a rails project. Download at " \
"https://classic.yarnpkg.com/en/docs/install.",
yarn_version_failure: "Failed to get the current yarn version. Please make sure it is " \
"installed as per the instructions at https://classic.yarnpkg.com/en/docs/install.",
},
info: {
open_new_shell: "{{*}} {{yellow:After installing %s, please open a new Command Prompt or PowerShell " \
"window to continue.}}",
},
installing_bundler: "Installing bundler…",
generating_app: "Generating new rails app project in %s…",
adding_shopify_gem: "{{v}} Adding shopify_app gem…",
node_version: "node %s",
yarn_version: "yarn %s",
running_bundle_install: "Running bundle install…",
running_generator: "Running shopify_app generator…",
running_migrations: "Running migrations…",
running_webpacker_install: "Running webpacker:install…",
},
node: {
help: <<~HELP,
error: {
node_required: "node is required to create an app project. Download at https://nodejs.org/en/download.",
npm_required: "npm is required to create an app project. Download at https://www.npmjs.com/get-npm.",
npm_version_failure: "Failed to get the current npm version. Please make sure it is installed as per " \
"the instructions at https://www.npmjs.com/get-npm.",
},
node_version: "node %s",
npm_version: "npm %s",
},
php: {
help: <<~HELP,
error: {
php_required: <<~VERSION,
php_version_failure: <<~VERSION,
php_version_too_low: "Your PHP version is too low. Please use version %s or higher.",
composer_required: <<~COMPOSER,
npm_required: "npm is required to create an app project. Download at https://www.npmjs.com/get-npm.",
app_setup: "Failed to set up the app",
},
php_version: "PHP %s",
npm_version: "npm %s",
app_setting_up: "Setting up app…",
app_set_up: "App is now set up",
},
},
deploy: {
help: <<~HELP,
extended_help: <<~HELP,
error: {
missing_platform: <<~MESSAGE,
invalid_platform: <<~MESSAGE,
},
heroku: {
downloading: "Downloading Heroku CLI…",
downloaded: "Downloaded Heroku CLI",
installing: "Installing Heroku CLI…",
installing_windows: "Running Heroku CLI install wizard…",
installed: "Installed Heroku CLI",
authenticated_with_account: "{{v}} Authenticated with Heroku as {{green:%s}}",
authenticating: "Authenticating with Heroku…",
authenticated: "{{v}} Authenticated with Heroku",
deploying: "Deploying to Heroku…",
deployed: "{{v}} Deployed to Heroku",
php: {
post_deploy: <<~DEPLOYED,
error: {
generate_app_key: "Failed to generate Laravel APP_KEY",
},
},
rails: {
db_check: {
validating: "Validating application…",
checking: "Checking database type…",
validated: "Database type \"%s\" validated for platform \"Heroku\"",
problem: "A problem was encountered while checking your database type.",
sqlite: <<~SQLITE,
},
},
git: {
checking: "Checking git repo…",
initialized: "Git repo initialized",
what_branch: "What branch would you like to deploy?",
branch_selected: "{{v}} Git branch {{green:%s}} selected for deploy",
},
app: {
no_apps_found: "No existing Heroku app found. What would you like to do?",
name: "What is your Heroku app’s name?",
select: "Specify an existing Heroku app",
selecting: "Selecting Heroku app %s…",
selected: "{{v}} Heroku app {{green:%s}} selected",
create: "Create a new Heroku app",
creating: "Creating new Heroku app…",
created: "{{v}} New Heroku app created",
setting_configs: "Setting Shopify app configs…",
configs_set: "{{v}} Shopify app configs set",
},
},
},
connect: {
help: <<~HELP,
connected: "Project now connected to {{green:%s}}",
production_warning: <<~MESSAGE,
},
tunnel: {
help: <<~HELP,
extended_help: <<~HELP,
error: {
token_argument_missing: "{{x}} {{red:auth requires a token argument}}\n\n",
},
},
serve: {
help: <<~HELP,
extended_help: <<~HELP,
open_info: <<~MESSAGE,
running_server: "Running server…",
error: {
host_must_be_https: "HOST must be a HTTPS url.",
invalid_port: "%s is not a valid port.",
},
},
open: {
help: <<~HELP,
},
},
extension: {
push: {
web_pixel_extension: {
error: {
file_read_error: "There was a problem reading %s",
missing_config_key_error: "Configuration is missing key: %s",
invalid_config_value_error: "Configuration value is invalid: %s",
},
},
checkout_ui_extension: {
localization: {
error: {
bundle_too_large: "Total size of all locale files must be less than %s.",
duplicate_locale_code: "Duplicate locale found: `%s`; locale codes"\
" should be unique and are case insensitive.",
file_empty: "Locale file `%s` is empty.",
file_too_large: "Locale file `%s` too large; size must be less than %s.",
invalid_file_extension: "Invalid locale filename: `%s`; only .json files are allowed.",
invalid_locale_code: "Invalid locale filename: `%s`; locale code should be 2 or 3 letters,"\
" optionally followed by a two-letter region code, e.g. `fr-CA`.",
invalid_file_encoding: "Invalid file encoding for `%s`; file encoding should be UTF-8.",
single_default_locale: "There must be one and only one locale identified as the default locale,"\
" e.g. `en.default.json`",
},
},
},
},
},
error_reporting: {
unhandled_error: {
message: "{{x}} {{red:An unexpected error occurred.}}",
issue_message: "{{red:\tTo \e]8;;%s\e\\submit an issue\e]8;;\e\\"\
" include the stack trace.}}",
stacktrace_message: "{{red:\tTo print the stack trace, add the environment variable %s.}}",
},
report_error: {
question: "Send an anonymized error report to Shopify?",
yes: "Yes, send",
no: "No, don't send",
},
},
analytics: {
enable_prompt: {
uncaught_error: {
question: "Automatically send reports from now on?",
yes: "Yes, automatically send anonymized reports to Shopify",
no: "No, don't send",
},
usage: {
question: "Automatically send anonymized usage and error reports to Shopify? We use these"\
" to make development on Shopify better.",
yes: "Yes, automatically send anonymized reports to Shopify",
no: "No, don't send",
},
},
},
connect: {
already_connected_warning: "{{yellow:! This app appears to be already connected}}",
project_type_select: "What type of project would you like to connect?",
cli_yml_saved: ".shopify-cli.yml saved to project root",
},
context: {
open_url: <<~OPEN,
},
env_file: {
saving_header: "writing %s file…",
saving: "writing %s file",
saved: "%s saved to project root",
},
config: {
help: <<~HELP,
feature: {
help: <<~HELP,
enabled: "{{v}} feature {{green:%s}} has been enabled",
disabled: "{{v}} feature {{green:%s}} has been disabled",
is_enabled: "{{v}} feature {{green:%s}} is currently enabled",
is_disabled: "{{v}} feature {{green:%s}} is currently disabled",
},
analytics: {
help: <<~HELP,
enabled: "{{v}} analytics have been enabled",
disabled: "{{v}} analytics have been disabled",
is_enabled: "{{v}} analytics are currently enabled",
is_disabled: "{{v}} analytics are currently disabled",
},
},
git: {
error: {
directory_exists: "Project directory already exists. Please create a project with a new name.",
no_branches_found: "Could not find any git branches",
nonexistent: "Git needs to be installed: https://git-scm.com/download",
repo_not_initiated:
"Git repo is not initiated. Please run {{command:git init}} and make at least one commit.",
no_commits_made: "No git commits have been made. Please make at least one commit.",
remote_not_added: "Remote could not be added.",
sparse_checkout_not_enabled: "Sparse checkout could not be enabled.",
sparse_checkout_not_set: "Sparse checkout set command failed.",
pull_failed: "Pull failed.",
pull_failed_bad_branch: "Pull failed. Branch %s cannot be found. Check the branch name and try again.",
merge_failed: "The file %s merge failed.",
},
cloning: "Cloning %s into %s…",
cloned: "{{v}} Cloned into %s",
pulling_from_to: "Pulling %s into %s…",
pulling: "Pulling…",
pulled: "Pulled into %s",
},
help: {
error: {
command_not_found: "Command %s not found.",
},
preamble: <<~MESSAGE,
},
heroku: {
error: {
authentication: "Could not authenticate with Heroku",
creation: "Heroku app could not be created",
deploy: "Could not deploy to Heroku",
download: "Heroku CLI could not be downloaded",
install: "Could not install Heroku CLI",
could_not_select_app: "Heroku app {{green:%s}} could not be selected",
set_config: "Failed to set config %s to %s in Heroku app",
add_buildpacks: "Failed to add buildpacks in Heroku app",
},
},
js_deps: {
error: {
missing_package: "expected to have a file at: %s",
invalid_package: "{{info:%s}} was not valid JSON. Fix this then try again",
install_spinner_error: "Unable to install all %d dependencies",
install_error: "An error occurred while installing dependencies",
},
installing: "Installing dependencies with %s…",
installed: "Dependencies installed",
npm_installing_deps: "Installing %d dependencies…",
npm_installed_deps: "%d npm dependencies installed",
},
login: {
help: <<~HELP,
invalid_shop: <<~MESSAGE,
shop_prompt: <<~PROMPT,
spinner: {
initiating: "Initiating authentication",
finalizing: "Finalizing authentication",
loading_organizations: "Loading available partner organizations",
},
},
logout: {
help: <<~HELP,
success: "Successfully logged out of your account",
},
switch: {
help: <<~HELP,
disabled_as_shopify_org: "Can't switch development stores logged in as {{green:Shopify partners org}}",
success: "Switched development store to {{green:%s}}",
},
identity_auth: {
error: {
timeout: "Timed out while waiting for response from Shopify",
local_identity_not_running: "Identity needs to be running locally in order to proceed.",
reauthenticate: "Please login again with {{command:shopify login}}",
invalid_destination: "The store %s doesn't exist. Please log out and try again.",
},
location: {
admin: "development store",
partner: "Shopify Partners account",
shopifolk: "{{green:Shopify Employee account}}",
},
authentication_required:
"{{i}} Authentication required. Login to the URL below with your %s credentials to continue.",
servlet: {
success_response: "You've successfully logged into the Shopify CLI!",
invalid_request_response: "Invalid request: %s",
invalid_state_response: "The anti-forgery state token does not match the initial request.",
},
login_prompt: "Please ensure you've logged in with {{command:%s login}} and try again",
token_authentication: "%s environment variable. We'll authenticate using its value as a token.",
},
options: {
help_text: "Print help for command",
},
partners_api: {
org_name_and_id: "%s (%s)",
error: {
account_not_found: <<~MESSAGE,
},
},
php_deps: {
error: {
missing_package: "Expected to have a file at: %s",
invalid_package: "{{info:%s}} was not valid JSON. Fix this then try again",
install: "Failed to install %s packages",
install_spinner_error: "Unable to install all %d dependencies",
install_error: "An error occurred while installing dependencies",
},
installing: "Installing Composer dependencies…",
installed: "Dependencies installed",
installed_count: "%d dependencies installed",
},
api: {
error: {
failed_auth: "Failed to authenticate with Shopify. Please try again later.",
failed_auth_debugging: "{{red:Please provide this information with your report:}}\n%s\n\n",
forbidden: <<~FORBIDDEN,
theme_access_invalid_password: "Invalid password. Please check that it was generated from Theme Access app"\
" for the current store.",
theme_access_no_store: "No store found. Please pass it through the environment variable SHOPIFY_SHOP",
internal_server_error: "{{red:{{x}} An unexpected error occurred on Shopify.}}",
internal_server_error_debug: "\n{{red:Response details:}}\n%s\n\n",
invalid_url: "Invalid URL: %s",
},
},
populate: {
help: <<~HELP,
extended_help: <<~HELP,
error: {
no_shop: "No store found. Please run {{command:%s login --store/-s STORE}} to login to a specific store",
},
customer: {
added: "%s added to {{green:%s}} at {{underline:%scustomers/%d}}",
},
draft_order: {
added: "DraftOrder added to {{green:%s}} at {{underline:%sdraft_orders/%d}}",
},
options: {
header: "{{bold:{{cyan:%s}} options:}}",
count_help: "Number of resources to generate",
},
populating: "Populating %d %ss…",
completion_message: <<~COMPLETION_MESSAGE,
product: {
added: "%s added to {{green:%s}} at {{underline:%sproducts/%d}}",
},
},
project: {
error: {
not_in_project: <<~MESSAGE,
},
},
yaml: {
error: {
not_hash: "{{x}} %s was not a proper YAML file. Expecting a hash.",
invalid: "{{x}} %s contains invalid YAML: %s",
not_found: "{{x}} %s not found",
},
},
project_type: {
error: {
cannot_override_core: "Can't register duplicate core command '%s' from %s",
},
},
system: {
help: <<~HELP,
error: {
unknown_option: "{{x}} {{red:unknown option '%s'}}",
},
header: "{{bold:Shopify CLI}}",
shop_header: "{{bold:Current Shop}}",
const: "%17s = %s",
ruby_header: <<~RUBY_MESSAGE,
rb_config: "%-25s - RbConfig[\"%s\"]",
command_header: "{{bold:Commands}}",
command_with_path: "{{v}} %s, %s",
command_not_found: "{{x}} %s",
ngrok_available: "{{v}} ngrok, %s",
ngrok_not_available: "{{x}} ngrok NOT available",
project: {
header: "{{bold:In a {{cyan:%s}} project directory}}",
command_with_path: "{{v}} %s, %s, version %s",
command_not_found: "{{x}} %s",
env_header: "{{bold:Project environment}}",
env_not_set: "not set",
env: "%-18s = %s",
no_env: "{{x}} .env file not present",
},
environment_header: "{{bold:Environment}}",
env: "%-17s = %s",
identity_header: "{{bold:Identity}}",
identity_is_shopifolk: "{{v}} Checked user settings: you’re Shopify staff!",
},
store: {
help: <<~HELP,
shop: "You're currently logged into {{green:%s}}",
},
tasks: {
confirm_store: {
prompt: "You are currently logged into {{green:%s}}. Do you want to proceed using this store?",
confirmation: "Proceeding using {{green:%s}}",
cancelling: "Cancelling…",
},
ensure_env: {
organization_select: "To which partner organization does this project belong?",
no_development_stores: <<~MESSAGE,
development_store_select: "Which development store would you like to use?",
app_select: "To which app does this project belong?",
no_apps: "You have no apps to connect to, creating a new app.",
app_name: "App name",
app_type: {
select: "What type of app are you building?",
select_public: "Public: An app built for a wide merchant audience.",
select_custom: "Custom: An app custom built for a single client.",
selected: "App type {{green:%s}}",
},
},
ensure_dev_store: {
could_not_verify_store: "Couldn't verify your store. If you don't have a development store set up, "\
"please create one in your Partners dashboard and run `shopify app connect`.",
convert_to_dev_store: <<~MESSAGE,
transfer_disabled: "{{v}} Transfer has been disabled on %s.",
},
ensure_project_type: {
wrong_project_type: "This command can only be run within %s projects.",
},
update_dashboard_urls: {
updated: "{{v}} Whitelist URLS updated in Partners Dashboard}}",
update_error:
"{{x}} error: For authentication issues, run {{command:%s logout}} to clear invalid credentials",
},
select_org_and_shop: {
authentication_issue: "For authentication issues, run {{command:%s logout}} to clear invalid credentials",
create_store: "Visit {{underline:https://partners.shopify.com/%s/stores}} to create one",
development_store: "Using development store {{green:%s}}",
development_store_select: "Select a development store",
error: {
no_development_stores: "{{x}} No Development Stores available.",
no_organizations: "No partner organizations available.",
organization_not_found: "Cannot find a partner organization with that ID",
shopifolk_notice: <<~MESSAGE,
},
first_party: "Are you working on a {{green:Shopify project}} on behalf of the"\
" {{green:Shopify partners org}}?",
identified_as_shopify: "We've identified you as a {{green:Shopify}} employee.",
organization: "Partner organization {{green:%s (%s)}}",
organization_select: "Select partner organization",
},
},
tunnel: {
error: {
stop: "ngrok tunnel could not be stopped. Try running {{command:killall -9 ngrok}}",
url_fetch_failure: "Unable to fetch external url",
prereq_command_required: "%1$s is required for installing ngrok. Please install %1$s using the appropriate"\
" package manager for your system.",
ngrok: "Something went wrong with ngrok installation,"\
"please make sure %s exists within %s before trying again",
signup_required: "A free ngrok account is required: {{underline:https://ngrok.com/signup}}. After you "\
"signup, install your personal authorization token using {{command:%s app tunnel auth <token>}}.",
},
installing: "Installing ngrok…",
not_running: "{{green:x}} ngrok tunnel not running",
prereq_command_location: "%s @ %s",
start_with_account: "{{v}} ngrok tunnel running at {{underline:%s}}, with account %s",
stopped: "{{green:x}} ngrok tunnel stopped",
timed_out: "{{x}} ngrok tunnel has timed out, restarting…",
will_timeout: "{{*}} This tunnel will timeout in {{red:%s}}",
},
version: {
help: <<~HELP,
},
warning: {
development_version: <<~DEVELOPMENT,
new_version: <<~MESSAGE,
in_3_0_directory: <<~MESSAGE,
sunset: <<~MESSAGE,
sunset_create_app: <<~MESSAGE,
sunset_app: <<~MESSAGE,
sunset_theme: <<~MESSAGE,
},
reporting: {
help: <<~HELP,
invalid_argument: <<~MESSAGE,
missing_argument: <<~MESSAGE,
turned_on_message: <<~MESSAGE,
turned_off_message: <<~MESSAGE,
},
whoami: {
help: <<~HELP,
not_logged_in: <<~MESSAGE,
logged_in_shop_only: <<~MESSAGE,
logged_in_partner_only: "Logged into partner organization {{green:%s}}",
logged_in_partner_and_shop: "Logged into store {{green:%s}} in partner organization {{green:%s}}",
},
error: "Error",
try_this: "Try this",
},
}.freeze