Add your own Awtomic translation values

This article explains how to add Awtomic translations to your theme.

If you'd like to change the text found in the Awtomic Customer Portal or in the Build-a-box UI this article explains how to add your own custom translations.

Warning: If you're not familiar with updating theme files or JSON objects in the locale files, we recommend having your theme developer perform these changes. Forward these instructions to any theme developer and they should be able to implement this easily

Steps:

  1. Add comment block to the theme.liquid header
  2. Add the Awtomic translations snippet
  3. Update your locale files
  4. Add your own custom translations

Step 1: Add comment block to the theme.liquid header

The first step is to add some code to your theme's header, generally found in theme.liquid. This code will include the Awtomic translations snippet in the next step.

Here's the code to add to your theme.liquid header:

{% comment %} Awtomic Subscriptions {% endcomment %}{% capture awtomic-translations %}{% render 'awtomic-translations', product: product %}{% endcapture %}{% unless awtomic-translations contains "Liquid error" %}#{{ awtomic-translations }}{% endunless %}{% comment %} End Awtomic Subscriptions {% endcomment %}

Step 2: Add the Awtomic translations snippet

Next, you need to add the awtomic-translations.liquid snippet to your theme's snippets folder. This snippet will contain the Awtomic translation code.

Here's how to create the awtomic-translations.liquid snippet:

  1. In your Shopify admin, go to "Online Store" > "Themes".
  2. Find your current theme and click "Actions" > "Edit code".
  3. In the left-hand navigation, click "Snippets".
  4. Click "Add a new snippet".
  5. Name the new snippet awtomic-translations.liquid.
  6. Copy and paste this code found at the end of this help article into the new snippet file.

Step 3: Update your locale files

Finally, you need to update your theme's locale files to include the Awtomic translations. To do this, add this json object found at the end of this article to the root of your locale JSON files. Locale files are found in the same left-hand navigation where you found "Snippets"

Repeat this step for each of your locale JSON files.

That's it! Once you've completed these three steps, you will be able to update Awtomic translations.

Step 4: Add your own custom translations

Navigate to "Online Store" > "Themes" > "Actions" > "Edit languages". The menu option "Edit languages" may be different on each shop. Look for it in the menu here:

Now you can search for your Awtomic translation, update it, and click the save button:


awtomic-translations.liquid

{% comment %} Awtomic Subscriptions {% endcomment %}
<script>
    var TRANSLATIONS = {
        en: {
            translation: {
                titles: {
                    return_to_account: "{{ 'awtomatic.customer_portal.titles.return_to_account' | t }}",
                    subscription: "{{ 'awtomatic.customer_portal.titles.subscription' | t }}",
                    subscriptions: "{{ 'awtomatic.customer_portal.titles.subscriptions' | t }}",
                    loading: "{{ 'awtomatic.customer_portal.titles.loading' | t }}",
                    cancel: "{{ 'awtomatic.customer_portal.titles.cancel' | t }}",
                    save: "{{ 'awtomatic.customer_portal.titles.save' | t }}",
                    continue: "{{ 'awtomatic.customer_portal.titles.continue' | t }}",
                    pause: "{{ 'awtomatic.customer_portal.titles.pause' | t }}",
                    edit: "{{ 'awtomatic.customer_portal.titles.edit' | t }}",
                    my_subscriptions: "{{ 'awtomatic.customer_portal.titles.my_subscriptions' | t }}",
                    frequency: "{{ 'awtomatic.customer_portal.titles.frequency' | t }}",
                    next_order: "{{ 'awtomatic.customer_portal.titles.next_order' | t }}",
                    confirm: "{{ 'awtomatic.customer_portal.titles.confirm' | t }}",
                    remove: "{{ 'awtomatic.customer_portal.titles.remove' | t }}",
                    description: "{{ 'awtomatic.customer_portal.titles.description' | t }}",
                    add: "{{ 'awtomatic.customer_portal.titles.add' | t }}",
                },
                email_gate: {
                    no_subs: "{{ 'awtomatic.customer_portal.email_gate.no_subs' | t }}",
                    check_email: "{{ 'awtomatic.customer_portal.email_gate.check_email' | t }}",
                    cta_access_link: "{{ 'awtomatic.customer_portal.email_gate.cta_access_link' | t }}",
                },
                subscriptions: {
                    error: "{{ 'awtomatic.customer_portal.subscriptions.error' | t }}",
                    no_subs: "{{ 'awtomatic.customer_portal.subscriptions.no_subs' | t }}",
                    link_to_account: "{{ 'awtomatic.customer_portal.subscriptions.link_to_account' | t }}",
                },
                subscription: {
                    fetch_error: "{{ 'awtomatic.customer_portal.subscription.fetch_error' | t }}",
                    auth_error: "{{ 'awtomatic.customer_portal.subscription.auth_error' | t }}",
                    plan: "{{ 'awtomatic.customer_portal.subscription.plan' | t }}",
                    active: "{{ 'awtomatic.customer_portal.subscription.active' | t }}",
                    activate: "{{ 'awtomatic.customer_portal.subscription.activate' | t }}",
                    pause: "{{ 'awtomatic.customer_portal.subscription.pause' | t }}",
                    paused: "{{ 'awtomatic.customer_portal.subscription.paused' | t }}",
                    cancel: "{{ 'awtomatic.customer_portal.subscription.cancel' | t }}",
                    cancelled: "{{ 'awtomatic.customer_portal.subscription.cancelled' | t }}",
                    shipment_info: "{{ 'awtomatic.customer_portal.subscription.shipment_info' | t }}",
                    update_shipping: "{{ 'awtomatic.customer_portal.subscription.update_shipping' | t }}",
                    payment_method: "{{ 'awtomatic.customer_portal.subscription.payment_method' | t }}",
                    pay_pal_payment_method: "{{ 'awtomatic.customer_portal.subscription.pay_pal_payment_method' | t }}",
                    ending_in: "{{ 'awtomatic.customer_portal.subscription.ending_in' | t }}",
                    expires: "{{ 'awtomatic.customer_portal.subscription.expires' | t }}",
                    add_phone: "{{ 'awtomatic.customer_portal.subscription.add_phone' | t }}",
                    add_name: "{{ 'awtomatic.customer_portal.subscription.add_name' | t }}",
                    add_lastName: "{{ 'awtomatic.customer_portal.subscription.add_lastName' | t }}",
                    billing_attepts: "{{ 'awtomatic.customer_portal.subscription.billing_attepts' | t }}",
                    percentage_dynamic_discount: "{{ 'awtomatic.customer_portal.subscription.percentage_dynamic_discount' | t }}",
                    fixed_amount_dynamic_discount: "{{ 'awtomatic.customer_portal.subscription.fixed_amount_dynamic_discount' | t }}",
                    then_dynamic_discount: "{{ 'awtomatic.customer_portal.subscription.then_dynamic_discount' | t }}",
                    orders_dynamic_discount: "{{ 'awtomatic.customer_portal.subscription.orders_dynamic_discount' | t }}",
                    billing_attepts_empty: "{{ 'awtomatic.customer_portal.subscription.billing_attepts_empty' | t }}",
                    billing_attepts_error: "{{ 'awtomatic.customer_portal.subscription.billing_attepts_error' | t }}",
                    subs_details: "{{ 'awtomatic.customer_portal.subscription.subs_details' | t }}",
                    update_payment_btn: "{{ 'awtomatic.customer_portal.subscription.update_payment_btn' | t }}",
                    cancel_prompt_title: "{{ 'awtomatic.customer_portal.subscription.cancel_prompt_title' | t }}",
                    cancel_error: "{{ 'awtomatic.customer_portal.subscription.cancel_error' | t }}",
                    no_payment_method_error: "{{ 'awtomatic.customer_portal.subscription.no_payment_method_error' | t }}",
                    no_payment_method_error_add: "{{ 'awtomatic.customer_portal.subscription.no_payment_method_error_add' | t }}",
                    new_payment_method_success: "{{ 'awtomatic.customer_portal.subscription.new_payment_method_success' | t }}",
                    new_payment_method_error: "{{ 'awtomatic.customer_portal.subscription.new_payment_method_error' | t }}",
                    remove_line_error: "{{ 'awtomatic.customer_portal.subscription.remove_line_error' | t }}",
                    remove_line_success: "{{ 'awtomatic.customer_portal.subscription.remove_line_success' | t }}",
                    ships_to: "{{ 'awtomatic.customer_portal.subscription.ships_to' | t }}",
                    update_payment_success: "{{ 'awtomatic.customer_portal.subscription.update_payment_success' | t }}",
                    update_payment_success_dunning: "{{ 'awtomatic.customer_portal.subscription.update_payment_success_dunning' | t }}",
                    update_payment_success_payment_error: "{{ 'awtomatic.customer_portal.subscription.update_payment_success_payment_error' | t }}",
                    update_payment_error: "{{ 'awtomatic.customer_portal.subscription.update_payment_error' | t }}",
                    sales_tax: "{{ 'awtomatic.customer_portal.subscription.sales_tax' | t }}",
                    skip_billing_interval_prompt: "{{ 'awtomatic.customer_portal.subscription.skip_billing_interval_prompt' | t }}",
                    skip_billing_interval_success: "{{ 'awtomatic.customer_portal.subscription.skip_billing_interval_success' | t }}",
                    skip_billing_interval_error: "{{ 'awtomatic.customer_portal.subscription.skip_billing_interval_error' | t }}",
                    skip_until: "{{ 'awtomatic.customer_portal.subscription.skip_until' | t }}",
                    skip_next: "{{ 'awtomatic.customer_portal.subscription.skip_next' | t }}",
                    order_now: "{{ 'awtomatic.customer_portal.subscription.order_now' | t }}",
                    next_order_success: "{{ 'awtomatic.customer_portal.subscription.next_order_success' | t }}",
                    next_order_error: "{{ 'awtomatic.customer_portal.subscription.next_order_error' | t }}",
                    add_new_address: "{{ 'awtomatic.customer_portal.subscription.add_new_address' | t }}",
                    address_update_success: "{{ 'awtomatic.customer_portal.subscription.address_update_success' | t }}",
                    address_update_failed: "{{ 'awtomatic.customer_portal.subscription.address_update_failed' | t }}",
                    pause_subscription: "{{ 'awtomatic.customer_portal.subscription.pause_subscription' | t }}",
                    cancel_subscription: "{{ 'awtomatic.customer_portal.subscription.cancel_subscription' | t }}",
                    pause_disclaimer_date: "{{ 'awtomatic.customer_portal.subscription.pause_disclaimer_date' | t }}",
                    pause_disclaimer_indefinitely: "{{ 'awtomatic.customer_portal.subscription.pause_disclaimer_indefinitely' | t }}",
                    pause_success: "{{ 'awtomatic.customer_portal.subscription.pause_success' | t }}",
                    reactivate_btn: "{{ 'awtomatic.customer_portal.subscription.reactivate_btn' | t }}",
                    reactivate: "{{ 'awtomatic.customer_portal.subscription.reactivate' | t }}",
                    reactivate_success: "{{ 'awtomatic.customer_portal.subscription.reactivate_success' | t }}",
                    reactivate_error: "{{ 'awtomatic.customer_portal.subscription.reactivate_error' | t }}",
                    frequency_days: "{{ 'awtomatic.customer_portal.subscription.frequency_days' | t }}",
                    frequency_weeks: "{{ 'awtomatic.customer_portal.subscription.frequency_weeks' | t }}",
                    frequency_months: "{{ 'awtomatic.customer_portal.subscription.frequency_months' | t }}",
                    order_now_modal_body: "{{ 'awtomatic.customer_portal.subscription.order_now_modal_body' | t }}",
                    amount: "{{ 'awtomatic.customer_portal.subscription.amount' | t }}",
                    frequency_update_success: "{{ 'awtomatic.customer_portal.subscription.frequency_update_success' | t }}",
                    frequency_update_error: "{{ 'awtomatic.customer_portal.subscription.frequency_update_error' | t }}",
                    customer_update_success: "{{ 'awtomatic.customer_portal.subscription.customer_update_success' | t }}",
                    customer_update_error: "{{ 'awtomatic.customer_portal.subscription.customer_update_error' | t }}",
                    customer_update_info: "{{ 'awtomatic.customer_portal.subscription.customer_update_info' | t }}",
                    verified_phone: "{{ 'awtomatic.customer_portal.subscription.verified_phone' | t }}",
                    not_verified_phone: "{{ 'awtomatic.customer_portal.subscription.not_verified_phone' | t }}",
                    verify_phone: "{{ 'awtomatic.customer_portal.subscription.verify_phone' | t }}",
                    enter_code: "{{ 'awtomatic.customer_portal.subscription.enter_code' | t }}",
                    verify_code_error: "{{ 'awtomatic.customer_portal.subscription.verify_code_error' | t }}",
                    verify_code_retry_error: "{{ 'awtomatic.customer_portal.subscription.verify_code_retry_error' | t }}",
                    verify_code_success: "{{ 'awtomatic.customer_portal.subscription.verify_code_success' | t }}",
                    code_received: "{{ 'awtomatic.customer_portal.subscription.code_received' | t }}",
                    code_enter: "{{ 'awtomatic.customer_portal.subscription.code_enter' | t }}",
                    code_send: "{{ 'awtomatic.customer_portal.subscription.code_send' | t }}",
                    qty: "{{ 'awtomatic.customer_portal.subscription.qty' | t }}",
                    manage: "{{ 'awtomatic.customer_portal.subscription.manage' | t }}",
                    your_next_order: "{{ 'awtomatic.customer_portal.subscription.your_next_order' | t }}",
                    swap_product: "{{ 'awtomatic.customer_portal.subscription.swap_product' | t }}",
                    swap_product_cta: "{{ 'awtomatic.customer_portal.subscription.swap_product_cta' | t }}",
                    or: "{{ 'awtomatic.customer_portal.subscription.or' | t }}",
                    update_variant: "{{ 'awtomatic.customer_portal.subscription.update_variant' | t }}",
                    update_bundle: "{{ 'awtomatic.customer_portal.subscription.update_bundle' | t }}",
                    save: "{{ 'awtomatic.customer_portal.subscription.save' | t }}",
                    failed_payment_message: "{{ 'awtomatic.customer_portal.subscription.failed_payment_message' | t }}",
                    failed_payment_cta: "{{ 'awtomatic.customer_portal.subscription.failed_payment_cta' | t }}",
                    order_now_success: "{{ 'awtomatic.customer_portal.subscription.order_now_success' | t }}",
                    order_now_error: "{{ 'awtomatic.customer_portal.subscription.order_now_error' | t }}",
                    update_current_payment_method: "{{ 'awtomatic.customer_portal.subscription.update_current_payment_method' | t }}",
                    add_new_card: "{{ 'awtomatic.customer_portal.subscription.add_new_card' | t }}",
                    delayed: "{{ 'awtomatic.customer_portal.subscription.delayed' | t }}",
                    delayedNotification: "{{ 'awtomatic.customer_portal.subscription.delayedNotification' | t }}",
                    update_success: "{{ 'awtomatic.customer_portal.subscription.update_success' | t }}",
                    update_line_success: "{{ 'awtomatic.customer_portal.subscription.update_line_success' | t }}",
                    update_error: "{{ 'awtomatic.customer_portal.subscription.update_error' | t }}",
                },
                new_payment_method: {
                    title: "{{ 'awtomatic.customer_portal.new_payment_method.title' | t }}",
                    payment_info: "{{ 'awtomatic.customer_portal.new_payment_method.payment_info' | t }}",
                    card_number: "{{ 'awtomatic.customer_portal.new_payment_method.card_number' | t }}",
                    exp_date: "{{ 'awtomatic.customer_portal.new_payment_method.exp_date' | t }}",
                    security_code: "{{ 'awtomatic.customer_portal.new_payment_method.security_code' | t }}",
                    first_name: "{{ 'awtomatic.customer_portal.new_payment_method.first_name' | t }}",
                    last_name: "{{ 'awtomatic.customer_portal.new_payment_method.last_name' | t }}",
                    billing_address: "{{ 'awtomatic.customer_portal.new_payment_method.billing_address' | t }}",
                    address1: "{{ 'awtomatic.customer_portal.new_payment_method.address1' | t }}",
                    address2: "{{ 'awtomatic.customer_portal.new_payment_method.address2' | t }}",
                    city: "{{ 'awtomatic.customer_portal.new_payment_method.city' | t }}",
                    country: "{{ 'awtomatic.customer_portal.new_payment_method.country' | t }}",
                    state: "{{ 'awtomatic.customer_portal.new_payment_method.state' | t }}",
                    zip: "{{ 'awtomatic.customer_portal.new_payment_method.zip' | t }}",
                    phone: "{{ 'awtomatic.customer_portal.new_payment_method.phone' | t }}",
                },
                tables: {
                    ID: "{{ 'awtomatic.customer_portal.tables.ID' | t }}",
                    status: "{{ 'awtomatic.customer_portal.tables.status' | t }}",
                    item: "{{ 'awtomatic.customer_portal.tables.item' | t }}",
                    created: "{{ 'awtomatic.customer_portal.tables.created' | t }}",
                    next_order: "{{ 'awtomatic.customer_portal.tables.next_order' | t }}",
                    skip: "{{ 'awtomatic.customer_portal.tables.skip' | t }}",
                    product: "{{ 'awtomatic.customer_portal.tables.product' | t }}",
                    quantity: "{{ 'awtomatic.customer_portal.tables.quantity' | t }}",
                    price: "{{ 'awtomatic.customer_portal.tables.price' | t }}",
                    total: "{{ 'awtomatic.customer_portal.tables.total' | t }}",
                    shipping: "{{ 'awtomatic.customer_portal.tables.shipping' | t }}",
                    originated: "{{ 'awtomatic.customer_portal.tables.originated' | t }}",
                    frequency: "{{ 'awtomatic.customer_portal.tables.frequency' | t }}",
                    phone: "{{ 'awtomatic.customer_portal.tables.phone' | t }}",
                    name: "{{ 'awtomatic.customer_portal.tables.name' | t }}",
                    lastName: "{{ 'awtomatic.customer_portal.tables.lastName' | t }}",
                    date: "{{ 'awtomatic.customer_portal.tables.date' | t }}",
                    sold_out: "{{ 'awtomatic.customer_portal.tables.sold_out' | t }}",
                    partial_inventory: "{{ 'awtomatic.customer_portal.tables.partial_inventory' | t }}",
                    qty_sold_out: "{{ 'awtomatic.customer_portal.tables.qty_sold_out' | t }}",
                    order_number: "{{ 'awtomatic.customer_portal.tables.order_number' | t }}",
                    subtotal: "{{ 'awtomatic.customer_portal.tables.subtotal' | t }}",
                    loading_fulfillments: "{{ 'awtomatic.customer_portal.tables.loading_fulfillments' | t }}",
                    last_fulfillment: "{{ 'awtomatic.customer_portal.tables.last_fulfillment' | t }}",
                    next_fulfillment: "{{ 'awtomatic.customer_portal.tables.next_fulfillment' | t }}",
                    merchant_discount: "{{ 'awtomatic.customer_portal.tables.merchant_discount' | t }}",
                    one_time_discount_label: "{{ 'awtomatic.customer_portal.tables.one_time_discount_label' | t }}",
                    finite_discount_label: "{{ 'awtomatic.customer_portal.tables.finite_discount_label' | t }}",
                },
                login: {
                    start_intro: "{{ 'awtomatic.customer_portal.login.start_intro' | t }}",
                    welcome: "{{ 'awtomatic.customer_portal.login.welcome' | t }}",
                    send_link: "{{ 'awtomatic.customer_portal.login.send_link' | t }}",
                    email_address: "{{ 'awtomatic.customer_portal.login.email_address' | t }}",
                    continue: "{{ 'awtomatic.customer_portal.login.continue' | t }}",
                    welcome_back: "{{ 'awtomatic.customer_portal.login.welcome_back' | t }}",
                    choose_login: "{{ 'awtomatic.customer_portal.login.choose_login' | t }}",
                    send_secure_link: "{{ 'awtomatic.customer_portal.login.send_secure_link' | t }}",
                    login_password: "{{ 'awtomatic.customer_portal.login.login_password' | t }}",
                    check_email: "{{ 'awtomatic.customer_portal.login.check_email' | t }}",
                    secure_email_sent: "{{ 'awtomatic.customer_portal.login.secure_email_sent' | t }}",
                    not_received: "{{ 'awtomatic.customer_portal.login.not_received' | t }}",
                    new_link: "{{ 'awtomatic.customer_portal.login.new_link' | t }}",
                    different_email: "{{ 'awtomatic.customer_portal.login.different_email' | t }}",
                    no_subscriptions: "{{ 'awtomatic.customer_portal.login.no_subscriptions' | t }}",
                    invalid_email: "{{ 'awtomatic.customer_portal.login.invalid_email' | t }}",
                    no_subscriptions_message: "{{ 'awtomatic.customer_portal.login.no_subscriptions_message' | t }}",
                },
                product_swap: {
                    title_select: "{{ 'awtomatic.customer_portal.product_swap.title_select' | t }}",
                    title_confirm: "{{ 'awtomatic.customer_portal.product_swap.title_confirm' | t }}",
                    sold_out: "{{ 'awtomatic.customer_portal.product_swap.sold_out' | t }}",
                    choose: "{{ 'awtomatic.customer_portal.product_swap.choose' | t }}",
                    back: "{{ 'awtomatic.customer_portal.product_swap.back' | t }}",
                    confirm: "{{ 'awtomatic.customer_portal.product_swap.confirm' | t }}",
                    save: "{{ 'awtomatic.customer_portal.product_swap.save' | t }}",
                    update: "{{ 'awtomatic.customer_portal.product_swap.update' | t }}",
                    original_item: "{{ 'awtomatic.customer_portal.product_swap.original_item' | t }}",
                    replacement_item: "{{ 'awtomatic.customer_portal.product_swap.replacement_item' | t }}",
                    update_success: "{{ 'awtomatic.customer_portal.product_swap.update_success' | t }}",
                    update_error: "{{ 'awtomatic.customer_portal.product_swap.update_error' | t }}",
                },
                bundles: {
                    build_box: "{{ 'awtomatic.customer_portal.bundles.build_box' | t }}",
                    of: "{{ 'awtomatic.customer_portal.bundles.of' | t }}",
                    back: "{{ 'awtomatic.customer_portal.bundles.back' | t }}",
                    continue: "{{ 'awtomatic.customer_portal.bundles.continue' | t }}",
                    add_cart: "{{ 'awtomatic.customer_portal.bundles.add_cart' | t }}",
                    select_plan: "{{ 'awtomatic.customer_portal.bundles.select_plan' | t }}",
                    build_your_box: "{{ 'awtomatic.customer_portal.bundles.build_your_box' | t }}",
                    addons: "{{ 'awtomatic.customer_portal.bundles.addons' | t }}",
                    checkout: "{{ 'awtomatic.customer_portal.bundles.checkout' | t }}",
                    edit_my_box: "{{ 'awtomatic.customer_portal.bundles.edit_my_box' | t }}",
                    box_size: "{{ 'awtomatic.customer_portal.bundles.box_size' | t }}",
                    add_cart_error: "{{ 'awtomatic.customer_portal.bundles.add_cart_error' | t }}",
                    update_price: "{{ 'awtomatic.customer_portal.bundles.update_price' | t }}",
                    update_success: "{{ 'awtomatic.customer_portal.bundles.update_success' | t }}",
                    update_error: "{{ 'awtomatic.customer_portal.bundles.update_error' | t }}",
                    delivery_options: "{{ 'awtomatic.customer_portal.bundles.delivery_options' | t }}",
                    one_time_delivery: "{{ 'awtomatic.customer_portal.bundles.one_time_delivery' | t }}",
                    additional_products: "{{ 'awtomatic.customer_portal.bundles.additional_products' | t }}",
                },
                addons: {
                    title: "{{ 'awtomatic.customer_portal.addons.title' | t }}",
                    selection_unavailable: "{{ 'awtomatic.customer_portal.addons.selection_unavailable' | t }}",
                    success_added: "{{ 'awtomatic.customer_portal.addons.success_added' | t }}",
                    subtitle: "{{ 'awtomatic.customer_portal.addons.subtitle' | t }}",
                    subscribe: "{{ 'awtomatic.customer_portal.addons.subscribe' | t }}",
                    select: "{{ 'awtomatic.customer_portal.addons.select' | t }}",
                    see_products: "{{ 'awtomatic.customer_portal.addons.see_products' | t }}",
                    modal_title: "{{ 'awtomatic.customer_portal.addons.modal_title' | t }}",
                    save: "{{ 'awtomatic.customer_portal.addons.save' | t }}",
                    type: "{{ 'awtomatic.customer_portal.addons.type' | t }}",
                },
                sms: {
                    title: "{{ 'awtomatic.customer_portal.sms.title' | t }}",
                    enable: "{{ 'awtomatic.customer_portal.sms.enable' | t }}",
                    edit_phone: "{{ 'awtomatic.customer_portal.sms.edit_phone' | t }}",
                    enable_phone: "{{ 'awtomatic.customer_portal.sms.enable_phone' | t }}",
                    phone_placeholder: "{{ 'awtomatic.customer_portal.sms.phone_placeholder' | t }}",
                    enable_phone_text: "{{ 'awtomatic.customer_portal.sms.enable_phone_text' | t }}",
                    phone: "{{ 'awtomatic.customer_portal.sms.phone' | t }}",
                    invalid_phone: "{{ 'awtomatic.customer_portal.sms.invalid_phone' | t }}",
                    invalid_country: "{{ 'awtomatic.customer_portal.sms.invalid_country' | t }}",
                    duplicated_phone_error: "{{ 'awtomatic.customer_portal.sms.duplicated_phone_error' | t }}",
                },
                cancelModal: {
                    header: "{{ 'awtomatic.customer_portal.cancelModal.header' | t }}",
                    neverMind: "{{ 'awtomatic.customer_portal.cancelModal.neverMind' | t }}",
                    back: "{{ 'awtomatic.customer_portal.cancelModal.back' | t }}",
                    continue: "{{ 'awtomatic.customer_portal.cancelModal.continue' | t }}",
                    continueWithCancellation: "{{ 'awtomatic.customer_portal.cancelModal.continueWithCancellation' | t }}",
                    continueCancel: "{{ 'awtomatic.customer_portal.cancelModal.continueCancel' | t }}",
                    confirmCancellation: "{{ 'awtomatic.customer_portal.cancelModal.confirmCancellation' | t }}",
                    error: "{{ 'awtomatic.customer_portal.cancelModal.error' | t }}",
                    tryAgain: "{{ 'awtomatic.customer_portal.cancelModal.tryAgain' | t }}",
                    TOO_MUCH: "{{ 'awtomatic.customer_portal.cancelModal.TOO_MUCH' | t }}",
                    MOVING: "{{ 'awtomatic.customer_portal.cancelModal.MOVING' | t }}",
                    COMPETITOR: "{{ 'awtomatic.customer_portal.cancelModal.COMPETITOR' | t }}",
                    BUDGET: "{{ 'awtomatic.customer_portal.cancelModal.BUDGET' | t }}",
                    NOT_ENJOY: "{{ 'awtomatic.customer_portal.cancelModal.NOT_ENJOY' | t }}",
                    NO_NEED: "{{ 'awtomatic.customer_portal.cancelModal.NO_NEED' | t }}",
                    TRAVELLING: "{{ 'awtomatic.customer_portal.cancelModal.TRAVELLING' | t }}",
                    OTHER: "{{ 'awtomatic.customer_portal.cancelModal.OTHER' | t }}",
                    frequency: {
                        modalTitle: "{{ 'awtomatic.customer_portal.cancelModal.frequency.modalTitle' | t }}",
                        title: "{{ 'awtomatic.customer_portal.cancelModal.frequency.title' | t }}",
                        subtitle: "{{ 'awtomatic.customer_portal.cancelModal.frequency.subtitle' | t }}",
                        updateFrequency: "{{ 'awtomatic.customer_portal.cancelModal.frequency.updateFrequency' | t }}",
                        formModalTitle: "{{ 'awtomatic.customer_portal.cancelModal.frequency.formModalTitle' | t }}",
                        formTitle: "{{ 'awtomatic.customer_portal.cancelModal.frequency.formTitle' | t }}",
                        formDelivery: "{{ 'awtomatic.customer_portal.cancelModal.frequency.formDelivery' | t }}",
                        setFrequency: "{{ 'awtomatic.customer_portal.cancelModal.frequency.setFrequency' | t }}",
                    },
                    address: {
                        modalPromptTitle: "{{ 'awtomatic.customer_portal.cancelModal.address.modalPromptTitle' | t }}",
                        promptTitle: "{{ 'awtomatic.customer_portal.cancelModal.address.promptTitle' | t }}",
                        promptSubtitle: "{{ 'awtomatic.customer_portal.cancelModal.address.promptSubtitle' | t }}",
                        promptUpdateAddress: "{{ 'awtomatic.customer_portal.cancelModal.address.promptUpdateAddress' | t }}",
                        modalFormTitle: "{{ 'awtomatic.customer_portal.cancelModal.address.modalFormTitle' | t }}",
                        noShippingOptions: "{{ 'awtomatic.customer_portal.cancelModal.address.noShippingOptions' | t }}",
                        confirmModalTitle: "{{ 'awtomatic.customer_portal.cancelModal.address.confirmModalTitle' | t }}",
                        confirmTitle: "{{ 'awtomatic.customer_portal.cancelModal.address.confirmTitle' | t }}",
                        confirmAcceptShipping: "{{ 'awtomatic.customer_portal.cancelModal.address.confirmAcceptShipping' | t }}",
                        newAddress: "{{ 'awtomatic.customer_portal.cancelModal.address.newAddress' | t }}",
                        oldAddress: "{{ 'awtomatic.customer_portal.cancelModal.address.oldAddress' | t }}",
                    },
                    pause: {
                        header: "{{ 'awtomatic.customer_portal.cancelModal.pause.header' | t }}",
                        title: "{{ 'awtomatic.customer_portal.cancelModal.pause.title' | t }}",
                        description: "{{ 'awtomatic.customer_portal.cancelModal.pause.description' | t }}",
                        cta: "{{ 'awtomatic.customer_portal.cancelModal.pause.cta' | t }}",
                        success: "{{ 'awtomatic.customer_portal.cancelModal.pause.success' | t }}",
                    },
                    skip: {
                        header: "{{ 'awtomatic.customer_portal.cancelModal.skip.header' | t }}",
                        title: "{{ 'awtomatic.customer_portal.cancelModal.skip.title' | t }}",
                        description: "{{ 'awtomatic.customer_portal.cancelModal.skip.description' | t }}",
                        ctaReschedule: "{{ 'awtomatic.customer_portal.cancelModal.skip.ctaReschedule' | t }}",
                        ctaSkip: "{{ 'awtomatic.customer_portal.cancelModal.skip.ctaSkip' | t }}",
                        success: "{{ 'awtomatic.customer_portal.cancelModal.skip.success' | t }}",
                    },
                    reschedule: {
                        header: "{{ 'awtomatic.customer_portal.cancelModal.reschedule.header' | t }}",
                        confirmReschedule: "{{ 'awtomatic.customer_portal.cancelModal.reschedule.confirmReschedule' | t }}",
                        dateFormat: "{{ 'awtomatic.customer_portal.cancelModal.reschedule.dateFormat' | t }}",
                        inputLabel: "{{ 'awtomatic.customer_portal.cancelModal.reschedule.inputLabel' | t }}",
                        description: "{{ 'awtomatic.customer_portal.cancelModal.reschedule.description' | t }}",
                    },
                    confirm: {
                        header: "{{ 'awtomatic.customer_portal.cancelModal.confirm.header' | t }}",
                        modalTitle: "{{ 'awtomatic.customer_portal.cancelModal.confirm.modalTitle' | t }}",
                        title: "{{ 'awtomatic.customer_portal.cancelModal.confirm.title' | t }}",
                        button: "{{ 'awtomatic.customer_portal.cancelModal.confirm.button' | t }}",
                        success: "{{ 'awtomatic.customer_portal.cancelModal.confirm.success' | t }}",
                    },
                },
                drawers: {
                    updateAddress: {
                        title: "{{ 'awtomatic.customer_portal.drawers.updateAddress.title' | t }}",
                    },
                },
            },
        },
    };

    window.bundleapp = window.bundleapp || {};
    window.bundleapp.settings = {
        ...window.bundleapp.settings,
        translations: TRANSLATIONS,
    };
</script>

locale file addition:

"awtomatic": {
    "plan_selector": {
      "subscription": "SUBSCRIPTION",
      "save": "Save",
      "extra": "Extra",
      "off": "off",
      "customize_my_box": "Customize my box",
      "from": "Starting from",
      "delivery_suffix": "\/delivery",
      "one_time_purchase": "One-time purchase",
      "purchase_options": "Purchase options",
      "gift_first_name_placeholder":"First name",
      "gift_first_name_label":"First name",
      "gift_last_name_placeholder":"Last name",
      "gift_last_name_label":"Last name",
      "gift_email_placeholder":"Email address",
      "gift_email_label":"Email address",
      "gift_email_warning":"Important: Gift emails will be sent here",
      "gift_note_placeholder":"Note",
      "gift_note_label":"Note",
      "gift_checkbox_label":"This is a gift",
      "gift_recipient_info_title":"Recipient info"
    },
    "customer_portal": {
      "titles": {
        "return_to_account": "Return to account details",
        "subscription": "Subscription",
        "subscriptions": "Subscriptions",
        "loading": "Loading...",
        "cancel": "Cancel",
        "save": "Save",
        "continue": "Continue",
        "pause": "Pause",
        "edit": "Edit",
        "my_subscriptions": "My Subscriptions",
        "frequency": "Frequency",
        "next_order": "Next Order",
        "confirm": "Confirm",
        "remove": "Remove",
        "description": "Description",
        "add": "Add"
      },
      "email_gate": {
        "no_subs": "You do not have any subscriptions yet",
        "check_email": "Check your email to access your subscriptions, {{email}}",
        "cta_access_link": "Email me an access link"
      },
      "subscriptions": {
        "error": "There was an error loading your subscriptions",
        "no_subs": "You do not have any subscriptions yet",
        "link_to_account": "Return to Account Details"
      },
      "subscription": {
        "fetch_error": "There was an error fetching the detail subscription",
        "auth_error": "There was authorization error, please login again",
        "plan": "Plan",
        "active": "Active",
        "activate": "Activate",
        "pause": "Pause",
        "paused": "Paused",
        "cancel": "Cancel",
        "cancelled": "Cancelled",
        "shipment_info": "Shipment info",
        "update_shipping": "Update shipping",
        "payment_method": "Payment method",
        "pay_pal_payment_method": "PayPal",
        "ending_in": "ending in",
        "expires": "Expires",
        "add_phone": "Enter a phone number",
        "add_name": "Enter your name",
        "add_lastName": "Enter your last name",
        "billing_attepts": "Billing Attempts",
        "percentage_dynamic_discount": "{{discount}} % off",
        "fixed_amount_dynamic_discount": "{{discount}} off",
        "then_dynamic_discount": " then {{discount}}",
        "orders_dynamic_discount": " for {{orderQty}} orders,",
        "billing_attepts_empty": "There are no billing attempts",
        "billing_attepts_error": "There was an error loading the billing attempts",
        "subs_details": "Subscription Details",
        "update_payment_btn": "Update payment",
        "cancel_prompt_title": "Canceling subscription cannot be undone. If you want to resume shipments, you will need to create a new order in the store.",
        "cancel_error": "There was an error trying to cancel your subscription",
        "no_payment_method_error": "Payment method missing from subscripiton.",
        "no_payment_method_error_add": "Please add a new card.",
        "new_payment_method_success": "Succesfully updated the payment method.",
        "new_payment_method_error": "Unknown error adding your payment method. Please try again.",
        "remove_line_error": "There was an error trying to remove the product",
        "remove_line_success": "Succesfully removed the product",
        "ships_to": "Ships to",
        "update_payment_success": "An email was sent to {{email}} with a secure link to update payment information.",
        "update_payment_success_dunning": "An email was sent to {{email}} with a secure link to update payment information. After payment information is updated we will retry the order.",
        "update_payment_success_payment_error": "Unable to add payment method. An email was sent to {{email}} with a secure link to update payment.",
        "update_payment_error": "There was an error updating your payment information",
        "sales_tax": "Sales tax (if applicable) is not displayed because it is calculated with each new order.",
        "skip_billing_interval_prompt": "Are you sure you want to skip?",
        "skip_billing_interval_success": "Your next order has been rescheduled to {{date}}",
        "skip_billing_interval_error": "There was an error skipping your next order",
        "skip_until": "Skip until",
        "skip_next": "Skip next",
        "order_now": "Order now",
        "next_order_success": "Your next order has been rescheduled to {{date}}",
        "next_order_error": "There was an error setting the subscription's next order date.",
        "add_new_address": "Add new address",
        "address_update_success": "Address updated successfully",
        "address_update_failed": "We encountered an unknown error. Please try again.",
        "pause_subscription": "Pause subscription",
        "cancel_subscription": "Cancel subscription",
        "pause_disclaimer_date": "We will postpone your subscription. Your subscription will remain active, but you will not be charged until {{date}}. You can pause indefinitely or reschedule anytime.",
        "pause_disclaimer_indefinitely": "You will not be charged while your subscription is paused. Reactivate your subscription anytime in your account.",
        "pause_success": "Your subscription was paused successfully",
        "reactivate_btn": "Reactivate now",
        "reactivate": "Reactivate",
        "reactivate_success": "Your subscription has been successfully reactivated.",
        "reactivate_error": "Something went wrong while reactivating your subscription. Please try again",
        "frequency_days": "day(s)",
        "frequency_weeks": "week(s)",
        "frequency_months": "month(s)",
        "order_now_modal_body": "You will be charged {{amount}} and your shipment will go out as soon as possible.",
        "amount": "Amount",
        "frequency_update_success": "Delivery frequency updated to {{ frequency }}.",
        "frequency_update_error": "Unknown error. Delivery frequency could not be updated.",
        "customer_update_success": "Customer information has been updated",
        "customer_update_error": "Unknown error. Customer information could not be updated.",
        "customer_update_info": "Adding your phone number, you will receive free SMS with information about your next subscription, allowing you to skip it,or editing it through your phone",
        "verified_phone": "Phone verified",
        "not_verified_phone": "Phone not verified",
        "verify_phone": "Verify",
        "enter_code": "Enter the verification code",
        "verify_code_error": "There was an error verifying your phone number.",
        "verify_code_retry_error": "You have tried to verify your phone number too many times. Please, try it later.",
        "verify_code_success": "Phone number verified successfully",
        "code_received": "You must have received a confirmation code in the provided phone number.",
        "code_enter": "Please enter the code below to verify your phone number.",
        "code_send": "Send code",
        "qty": "Qty",
        "manage": "Manage",
        "your_next_order": "Your next order",
        "swap_product": "Swap products",
        "swap_product_cta": "Swap for another product...",
        "or": "Or",
        "update_variant": "Change selection",
        "update_bundle": "Update Box",
        "save": "Save {{percentage}}%",
        "failed_payment_message": "Failed payment with saved method. We will automatically retry payment.",
        "failed_payment_cta": "Update Payment method",
        "order_now_success": "Order placed successfully",
        "order_now_error": "Unknown error. Please try again.",
        "update_current_payment_method": "Update current payment method",
        "add_new_card": "Add new card",
        "delayed": "Delayed",
        "delayedNotification": "Subscription delayed due to inventory. Order will ship when item becomes available. To receive order more quickly, please update selection below.",
        "update_success": "Your subscription has been updated successfully.",
        "update_line_success": "Subscription updated. The order will ship out as soon as possible.",
        "update_error": "Something went wrong. Your subscription has not been changed."
      },
      "new_payment_method": {
        "title": "Enter payment method",
        "payment_info": "Payment information",
        "card_number": "Card number",
        "exp_date": "Exp date",
        "security_code": "CVV",
        "first_name": "First Name",
        "last_name": "Last Name",
        "billing_address": "Billing address",
        "address1": "Address",
        "address2": "Apartment, suite, etc. (optional)",
        "city": "City",
        "country": "Country\/Region",
        "state": "State\/Province",
        "zip": "Zip code",
        "phone": "Phone (optional)"
      },
      "tables": {
        "ID": "ID",
        "status": "Status",
        "item": "Item",
        "created": "Created",
        "next_order": "Next Order",
        "skip": "Skip",
        "product": "Product",
        "quantity": "Quantity",
        "price": "Price",
        "total": "Total",
        "shipping": "Shipping",
        "originated": "Originated",
        "frequency": "Frequency",
        "phone": "Phone",
        "name": "Name",
        "lastName": "Last name",
        "date": "Date",
        "sold_out": "Sold out",
        "partial_inventory": "Partial inventory",
        "qty_sold_out": " • {{quantity}} sold out",
        "order_number": "Order Number",
        "subtotal": "Subtotal",
        "loading_fulfillments": "Loading...",
        "last_fulfillment": "Last fulfillment",
        "next_fulfillment": "Next fulfillment",
        "merchant_discount": "Discount",
        "one_time_discount_label": "(One-time)",
        "finite_discount_label": "({{usageCount}} of {{recurringCycleLimit}})"
      },
      "login": {
        "start_intro": "Enter your email address to get started",
        "welcome": "Welcome",
        "send_link": "We'll email you a secure link to sign in.",
        "email_address": "Email address",
        "continue": "Continue",
        "welcome_back": "Welcome back",
        "choose_login": "Choose how to login for",
        "send_secure_link": "Send me secure link",
        "login_password": "Login with password",
        "check_email": "Check your email for login link",
        "secure_email_sent": "We've sent a secure email to {{email}}. The link expires in 24 hours.",
        "not_received": "Didn't receive it?",
        "new_link": "Send me a new link",
        "different_email": "Try different email",
        "no_subscriptions": "No subscriptions found",
        "invalid_email": "Invalid Email",
        "no_subscriptions_message": "We couldn't find any subscriptions associated with"
      },
      "product_swap": {
        "title_select": "Choose replacement item",
        "title_confirm": "Confirm",
        "sold_out": "Sold out",
        "choose": "Choose",
        "back": "Back",
        "confirm": "Confirm",
        "save": "Save",
        "update": "Update",
        "original_item": "Original item",
        "replacement_item": "Replacement item",
        "update_success": "Successfully swapped items for the next order.",
        "update_error": "Something went wrong. Your subscription has not been changed."
      },
      "bundles": {
        "build_box": "Build your box",
        "of": "of",
        "back": "Back",
        "continue": "Continue",
        "add_cart": "Add to cart",
        "select_plan": "Select plan",
        "build_your_box": "Build your box",
        "addons": "Add-ons",
        "checkout": "Checkout",
        "edit_my_box": "Edit my box",
        "box_size": "Box size",
        "add_cart_error": "There was an error updating your cart.",
        "update_price": "Cost of the box has changed from {{prevBasePrice}} to {{basePrice}}",
        "update_success": "Box successfully updated",
        "update_error": "Something went wrong trying to update the box",
        "delivery_options": "Delivery options",
        "one_time_delivery": "One time",
        "additional_products": "Additional products"
      },
      "addons": {
        "title": "Add Items",
        "selection_unavailable": "Selection unavailable",
        "success_added": "Successfully added items to your subscription.",
        "subtitle": "Add items to your upcoming order",
        "subscribe": "Subscribe",
        "select": "Add",
        "see_products": "See all products",
        "modal_title": "Add products to your next order",
        "save": "Save",
        "type": "Type"
      },
      "sms": {
        "title": "Text updates",
        "enable": "Enable",
        "edit_phone": "Edit phone number",
        "enable_phone": "Enable text updates",
        "phone_placeholder": "Enter phone number",
        "enable_phone_text": "Text messages allow you to update subscriptions on the go. Message and. data rates may apply.",
        "phone": "Phone number",
        "invalid_phone": "Invalid phone number",
        "invalid_country": "Only US and CA phone numbers are supported.",
        "duplicated_phone_error": "Phone number already in use"
      },
      "cancelModal": {
        "header": "Reason for cancelling",
        "neverMind": "Never mind",
        "back": "Back",
        "continue": "Continue",
        "continueWithCancellation": "Continue with cancellation",
        "continueCancel": "Continue cancel",
        "confirmCancellation": "Confirm cancellation",
        "error": "There was an unknown error",
        "tryAgain": "Try again.",
        "TOO_MUCH": "I have too much",
        "MOVING": "Moving to a new place",
        "COMPETITOR": "Switching to a competitor",
        "BUDGET": "Doesn’t fit my budget",
        "NOT_ENJOY": "I didn’t enjoy the product",
        "NO_NEED": "No longer need this",
        "TRAVELLING": "I’m traveling",
        "OTHER": "Other",
        "frequency": {
          "modalTitle": "Frequency update available",
          "title": "Update frequency instead of losing subscription",
          "subtitle": "By updating your delivery frequency, you can control how often you recieve shipments.",
          "updateFrequency": "Update frequency",
          "formModalTitle": "Edit frequency",
          "formTitle": "You control how often your receive deliveries. Upcoming orders will be delivered on the frequency selected below.",
          "formDelivery": "Delivery every",
          "setFrequency": "Set frequency"
        },
        "address": {
          "modalPromptTitle": "Address update available",
          "promptTitle": "Moving doesn’t have to mean cancellation",
          "promptSubtitle": "By updating your address, you have the option of keeping your subscription with you wherever you go!",
          "promptUpdateAddress": "Update address",
          "modalFormTitle": "Enter address",
          "noShippingOptions": "There are no shipping options available for that address.",
          "confirmModalTitle": "Shipping confirmation",
          "confirmTitle": "The price of shipping for your subscription will change from {{oldPrice}} to {{newPrice}} because your new address is in a different delivery zone.",
          "confirmAcceptShipping": "Accept shipping",
          "newAddress": "New address:",
          "oldAddress": "Old address:"
        },
        "pause": {
          "header": "Pause available",
          "title": "Did you know you can pause instead?",
          "description": "Instead of cancelling, pausing your subscription allows you to keep billing and shipping details saved when you’re ready to reactivate your subscription.",
          "cta": "Pause subscription",
          "success": "Your subscription was paused successfully"
        },
        "skip": {
          "header": "Skip available",
          "title": "You can skip or reschedule your next order",
          "description": "Keep your shipments coming once you’re back from your trip. Consider skipping or rescheduling instead of canceling.",
          "ctaReschedule": "Reschedule next order",
          "ctaSkip": "Skip next",
          "success": "Your next order has been rescheduled to {{date}}"
        },
        "reschedule": {
          "header": "Schedule next order",
          "confirmReschedule": "Reschedule",
          "dateFormat": "mm\/dd\/yyyy",
          "inputLabel": "Next order",
          "description": "Your subscription will remain active, but we will postpone your subscription until the date you select below."
        },
        "confirm": {
          "modalTitle": "Additional feedback",
          "title": "Please provide additional feedback (optional)",
          "button": "Confirm cancellation",
          "success": "Subscription cancelled"
        }
      },
      "drawers": {
        "updateAddress": {
          "title": "Enter address"
        }
      }
    }
  }