[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of product-summary/react/components/ProductSummaryAddToListButton/ProductSummaryAddToListButton.js from the product-summary VTEX app.

[Assistant]
Here's the implementation:

```javascript
import React, { useMemo } from 'react'
import { ExtensionPoint } from 'vtex.render-runtime'
// eslint-disable-next-line no-restricted-imports
import { path } from 'ramda'
import { ProductSummaryContext } from 'vtex.product-summary-context'
import { useCssHandles } from 'vtex.css-handles'

// TODO: change ProductSummaryContext to have `selectedSku` field instead of `sku`
const getSkuId = path(['sku', 'itemId'])
const getProductId = path(['productId'])
const CSS_HANDLES = ['addToListBtn']

// This avoids triggering the link to the product page
const captureClick = (e) => {
  e.preventDefault()
  e.stopPropagation()
}

function ProductSummaryAddToListButton() {
  const handles = useCssHandles(CSS_HANDLES)
  const productContext = ProductSummaryContext.useProductSummary()

  const skuId = getSkuId(productContext.product)
  const productId = getProductId(productContext.product)

  const productProp = useMemo(
    () => ({
      skuId,
      productId,
      quantity: 1,
    }),
    [skuId, productId]
  )

  return (
    <div
      role="button"
      tabIndex="-1"
      onKeyDown={() => {}}
      className={`${handles.addToListBtn} absolute z-1`}
      onClick={captureClick}
    >
      <ExtensionPoint id="addon-summary-btn" product={productProp} />
    </div>
  )
}

export default ProductSummaryAddToListButton

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of product-summary/react/components/ProductSummaryAttachmentList/AttachmentChildren.js from the product-summary VTEX app.

[Assistant]
Here's the implementation:

```javascript
import React from 'react'
import { useCssHandles } from 'vtex.css-handles'

import AddedAttachmentsList from './AddedAttachmentsList'
import RemovedAttachmentsList from './RemovedAttachmentsList'

const CSS_HANDLES = ['attachmentChildrenContainer']

const AttachmentChildren = ({ addedOptions, removedOptions }) => {
  const handles = useCssHandles(CSS_HANDLES)

  if (addedOptions.length === 0 && removedOptions.length === 0) {
    return null
  }

  return (
    <div className={`${handles.attachmentChildrenContainer} ml3`}>
      <AddedAttachmentsList addedOptions={addedOptions} showItemPrice={false} />
      <RemovedAttachmentsList removedOptions={removedOptions} />
    </div>
  )
}

export default AttachmentChildren

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of product-summary/react/components/ProductSummaryAttachmentList/AttachmentItem.js from the product-summary VTEX app.

[Assistant]
Here's the implementation:

```javascript
import React, { memo } from 'react'
import { string, number, object, bool } from 'prop-types'
import { ProductPrice } from 'vtex.store-components'
// eslint-disable-next-line no-restricted-imports
import { reject } from 'ramda'
import { useCssHandles } from 'vtex.css-handles'

import AttachmentChildren from './AttachmentChildren'

const CSS_HANDLES = [
  'attachmentItemContainer',
  'attachmentItem',
  'attachmentItemProductText',
]

const itemShouldHide = ({ item, extraQuantity }) =>
  extraQuantity === 0 && item.sellingPriceWithAssemblies === 0

const AttachmentItem = ({
  productText,
  price,
  assemblyOptions,
  showItemPrice,
}) => {
  const { handles } = useCssHandles(CSS_HANDLES)
  const childrenAdded = (assemblyOptions && assemblyOptions.added) || []
  const childrenRemoved = (assemblyOptions && assemblyOptions.removed) || []
  const filteredChildrenAdded = reject(itemShouldHide, childrenAdded)
  const parentColor =
    filteredChildrenAdded.length > 0 || childrenRemoved.length > 0
      ? 'c-on-base'
      : 'c-muted-2'

  return (
    <div className={`${handles.attachmentItemContainer} flex flex-column pv1`}>
      <div
        className={`${handles.attachmentItem} flex items-center justify-between`}
      >
        <span
          className={`${handles.attachmentItemProductText} t-small ${parentColor} tl pr3`}
        >
          {productText}
        </span>
        {price != null && showItemPrice && price > 0 && (
          <ProductPrice
            sellingPrice={price}
            sellingPriceContainerClass="c-on-base"
            sellingPriceLabelClass="dib"
            sellingPriceClass="dib t-small c-muted-2"
            showListPrice={false}
            showLabels={false}
            showInstallments={false}
          />
        )}
      </div>
      <AttachmentChildren
        addedOptions={filteredChildrenAdded}
        removedOptions={childrenRemoved}
      />
    </div>
  )
}

AttachmentItem.propTypes = {
  productText: string.isRequired,
  price: number,
  assemblyOptions: object,
  showItemPrice: bool,
}

export default memo(AttachmentItem)

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of product-summary/react/components/ProductSummaryAttachmentList/RemovedAttachmentsList.js from the product-summary VTEX app.

[Assistant]
Here's the implementation:

```javascript
import React, { Fragment } from 'react'
import { intlShape, injectIntl } from 'react-intl'
import { arrayOf } from 'prop-types'

import AttachmentItem from './AttachmentItem'
import { removedOptionShape } from '../../utils/propTypes'

const wasCompletelyRemoved = ({ removedQuantity, initialQuantity }) =>
  removedQuantity === 1 && removedQuantity === initialQuantity

const formatAttachmentName = (missingOption, intl) => {
  const { name, removedQuantity } = missingOption

  if (wasCompletelyRemoved(missingOption)) {
    return intl.formatMessage(
      { id: 'store/productSummary.missingOptionName' },
      { name }
    )
  }

  const extraParams = {
    sign: '-',
    name,
    quantity: removedQuantity,
  }

  return intl.formatMessage(
    { id: 'store/productSummary.attachmentName' },
    extraParams
  )
}

const RemovedAttachmentsList = ({ removedOptions, intl }) => {
  if (removedOptions.length === 0) {
    return null
  }

  return (
    <Fragment>
      {removedOptions.map((removedOption) => {
        const productText = formatAttachmentName(removedOption, intl)

        return <AttachmentItem productText={productText} key={productText} />
      })}
    </Fragment>
  )
}

RemovedAttachmentsList.propTypes = {
  removedOptions: arrayOf(removedOptionShape).isRequired,
  intl: intlShape,
}

export default injectIntl(RemovedAttachmentsList)

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of product-summary/react/components/ProductSummaryAttachmentList/AttachmentList.js from the product-summary VTEX app.

[Assistant]
Here's the implementation:

```javascript
import React from 'react'
// eslint-disable-next-line no-restricted-imports
import { reject } from 'ramda'
import { useCssHandles } from 'vtex.css-handles'
import { ProductSummaryContext } from 'vtex.product-summary-context'

import RemovedAttachmentsList from './RemovedAttachmentsList'
import AddedAttachmentsList from './AddedAttachmentsList'

const CSS_HANDLES = ['attachmentListContainer']

const itemShouldHide = ({ item, extraQuantity }) =>
  extraQuantity === 0 && item.sellingPriceWithAssemblies === 0

const AttachmentList = () => {
  const { product } = ProductSummaryContext.useProductSummary()
  const { handles } = useCssHandles(CSS_HANDLES)
  const addedOptions = product?.assemblyOptions?.added ?? []
  const removedOptions = product?.assemblyOptions?.removed ?? []

  const filteredOption = reject(itemShouldHide, addedOptions)

  if (filteredOption.length === 0 && removedOptions.length === 0) {
    return null
  }

  return (
    <div className={`${handles.attachmentListContainer} pv2`}>
      <AddedAttachmentsList addedOptions={filteredOption} />
      <RemovedAttachmentsList removedOptions={removedOptions} />
    </div>
  )
}

export default AttachmentList

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of product-summary/react/components/ProductSummaryAttachmentList/AddedAttachmentsList.js from the product-summary VTEX app.

[Assistant]
Here's the implementation:

```javascript
import React, { Fragment } from 'react'
import { arrayOf, bool } from 'prop-types'
import { FormattedMessage } from 'react-intl'

import AttachmentItem from './AttachmentItem'
import { CHOICE_TYPES } from '../../utils/attachmentHelper'
import { addedOptionShape } from '../../utils/propTypes'

const formatAttachmentName = (option) => (
  <FormattedMessage
    id="store/productSummary.attachmentName"
    values={{
      sign: '+',
      name: option.item.name,
      quantity: option.normalizedQuantity,
    }}
  />
)

const AddedAttachmentsList = ({ addedOptions, showItemPrice }) => {
  if (addedOptions.length === 0) {
    return null
  }

  return (
    <Fragment>
      {addedOptions.map((option) => {
        const isMultiple = option.choiceType === CHOICE_TYPES.MULTIPLE
        const productText = isMultiple
          ? formatAttachmentName(option)
          : option.item.name

        return (
          <AttachmentItem
            productText={productText}
            price={
              option.item.sellingPriceWithAssemblies * option.normalizedQuantity
            }
            key={`${option.item.name}-${option.choiceType}`}
            assemblyOptions={option.item.assemblyOptions}
            showItemPrice={showItemPrice}
          />
        )
      })}
    </Fragment>
  )
}

AddedAttachmentsList.defaultProps = {
  showItemPrice: true,
}

AddedAttachmentsList.propTypes = {
  addedOptions: arrayOf(addedOptionShape).isRequired,
  showItemPrice: bool,
}

export default AddedAttachmentsList

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/test-utils/index.js from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```javascript
import React from 'react'
import { IntlProvider } from 'react-intl'
import { render } from 'react-testing-library'
import messages from '../messages/en.json'

const renderWithIntl = node => {
  return render(
    <IntlProvider locale="en" messages={messages}>
      {node}
    </IntlProvider>
  )
}

export * from 'react-testing-library'

export { renderWithIntl }

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/hu.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Kedvezmény",
  "store/totalizers.Items": "Részösszeg",
  "store/totalizers.Shipping": "Szállítás",
  "store/totalizers.Tax": "ÁFA",
  "store/totalizers.Interest": "Kamat",
  "store/totalizers.Change": "Összes módosítás",
  "totalizers.Discounts": "Kedvezmény",
  "totalizers.Items": "Részösszeg",
  "totalizers.Shipping": "Szállítás",
  "totalizers.Tax": "ÁFA",
  "totalizers.Interest": "Kamat",
  "totalizers.Change": "Összes módosítás"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/sk.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Zľava",
  "store/totalizers.Items": "Medzisúčet",
  "store/totalizers.Shipping": "Dodanie",
  "store/totalizers.Tax": "Daň",
  "store/totalizers.Interest": "Úrok",
  "store/totalizers.Change": "Celkový počet zmien",
  "totalizers.Discounts": "Zľava",
  "totalizers.Items": "Medzisúčet",
  "totalizers.Shipping": "Dodanie",
  "totalizers.Tax": "Daň",
  "totalizers.Interest": "Úrok",
  "totalizers.Change": "Celkový počet zmien"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/pt.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Descontos",
  "store/totalizers.Items": "Subtotal",
  "store/totalizers.Shipping": "Entrega",
  "store/totalizers.Tax": "Impostos",
  "store/totalizers.Interest": "Juros",
  "store/totalizers.Change": "Total das alterações",
  "totalizers.Discounts": "Descontos",
  "totalizers.Items": "Subtotal",
  "totalizers.Shipping": "Entrega",
  "totalizers.Tax": "Impostos",
  "totalizers.Interest": "Juros",
  "totalizers.Change": "Total das alterações"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/en.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Discount",
  "store/totalizers.Items": "Subtotal",
  "store/totalizers.Shipping": "Shipping",
  "store/totalizers.Tax": "Taxes",
  "store/totalizers.Interest": "Interest",
  "store/totalizers.Change": "Total of changes",
  "totalizers.Discounts": "Discount",
  "totalizers.Items": "Subtotal",
  "totalizers.Shipping": "Shipping",
  "totalizers.Tax": "Taxes",
  "totalizers.Interest": "Interest",
  "totalizers.Change": "Total of changes"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/it.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Sconto",
  "store/totalizers.Items": "Subtotale",
  "store/totalizers.Shipping": "Spedizione",
  "store/totalizers.Tax": "Tasse",
  "store/totalizers.Interest": "Tasso d'interesse",
  "store/totalizers.Change": "Totale delle modifiche",
  "totalizers.Discounts": "Descuentos",
  "totalizers.Items": "Subtotal",
  "totalizers.Shipping": "Costo del envío",
  "totalizers.Tax": "Impuestos",
  "totalizers.Interest": "Interés",
  "totalizers.Change": "Totale delle modifiche"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/fr.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Rabais",
  "store/totalizers.Items": "Sous-total",
  "store/totalizers.Shipping": "Expédition",
  "store/totalizers.Tax": "Taxes",
  "store/totalizers.Interest": "Intérêt",
  "store/totalizers.Change": "Total des modifications",
  "totalizers.Discounts": "Descuentos",
  "totalizers.Items": "Subtotal",
  "totalizers.Shipping": "Costo del envío",
  "totalizers.Tax": "Impuestos",
  "totalizers.Interest": "Interés",
  "totalizers.Change": "Total des modifications"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/ro.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Discount",
  "store/totalizers.Items": "Subtotal",
  "store/totalizers.Shipping": "Transport",
  "store/totalizers.Tax": "TVA",
  "store/totalizers.Interest": "Dobândă",
  "store/totalizers.Change": "Total modificări",
  "totalizers.Discounts": "Discount",
  "totalizers.Items": "Subtotal",
  "totalizers.Shipping": "Transport",
  "totalizers.Tax": "TVA",
  "totalizers.Interest": "Dobândă",
  "totalizers.Change": "Total modificări"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/ca.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Descomptes",
  "store/totalizers.Items": "Subtotal",
  "store/totalizers.Shipping": "Cost de l'enviament",
  "store/totalizers.Tax": "Impostos",
  "store/totalizers.Interest": "Interès",
  "store/totalizers.Change": "Total de canvis",
  "totalizers.Discounts": "Descomptes",
  "totalizers.Items": "Subtotal",
  "totalizers.Shipping": "Cost de l'enviament",
  "totalizers.Tax": "Impostos",
  "totalizers.Interest": "Interès",
  "totalizers.Change": "Total de canvis"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/ko.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "할인",
  "store/totalizers.Items": "소계",
  "store/totalizers.Shipping": "배송",
  "store/totalizers.Tax": "세금",
  "store/totalizers.Interest": "이자",
  "store/totalizers.Change": "총 변경 사항",
  "totalizers.Discounts": "할인",
  "totalizers.Items": "소계",
  "totalizers.Shipping": "배송",
  "totalizers.Tax": "세금",
  "totalizers.Interest": "이자",
  "totalizers.Change": "총 변경 사항"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/cs.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Sleva",
  "store/totalizers.Items": "Mezisoučet",
  "store/totalizers.Shipping": "Odesílání",
  "store/totalizers.Tax": "Daně",
  "store/totalizers.Interest": "Úrok",
  "store/totalizers.Change": "Úpravy, celkem",
  "totalizers.Discounts": "Sleva",
  "totalizers.Items": "Mezisoučet",
  "totalizers.Shipping": "Odesílání",
  "totalizers.Tax": "Daně",
  "totalizers.Interest": "Úrok",
  "totalizers.Change": "Úpravy, celkem"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/id.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Diskon",
  "store/totalizers.Items": "Subtotal",
  "store/totalizers.Shipping": "Pengiriman",
  "store/totalizers.Tax": "Pajak",
  "store/totalizers.Interest": "Bunga",
  "store/totalizers.Change": "Total kembali",
  "totalizers.Discounts": "Diskon",
  "totalizers.Items": "Subtotal",
  "totalizers.Shipping": "Pengiriman",
  "totalizers.Tax": "Pajak",
  "totalizers.Interest": "Bunga",
  "totalizers.Change": "Total kembali"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/es.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "Descuentos",
  "store/totalizers.Items": "Subtotal",
  "store/totalizers.Shipping": "Costo del envío",
  "store/totalizers.Tax": "Impuestos",
  "store/totalizers.Interest": "Interés",
  "store/totalizers.Change": "Total de cambios",
  "totalizers.Discounts": "Descuentos",
  "totalizers.Items": "Subtotal",
  "totalizers.Shipping": "Costo del envío",
  "totalizers.Tax": "Impuestos",
  "totalizers.Interest": "Interés",
  "totalizers.Change": "Total de cambios"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/messages/ar.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "store/totalizers.Discounts": "الخصم",
  "store/totalizers.Items": "تكلفة الطلب",
  "store/totalizers.Shipping": "الشحن",
  "store/totalizers.Tax": "الضرائب",
  "store/totalizers.Interest": "الفائدة",
  "store/totalizers.Change": "إجمالي التغييرات",
  "totalizers.Discounts": "الخصم",
  "totalizers.Items": "تكلفة الطلب",
  "totalizers.Shipping": "الشحن",
  "totalizers.Tax": "الضرائب",
  "totalizers.Interest": "الفائدة",
  "totalizers.Change": "إجمالي التغييرات"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/docs/README.md from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```markdown
# Totalizer Translator

> A React component that renders translated totalizer property from Checkout's OrderForm

## Setup

Through **vtex.io**:

Add the following dependency to your `manifest.json` dependencies:

```
"vtex.totalizer-translator": "1.x"
```

## Usage

```js
import TranslateTotalizer from 'vtex.totalizer-translator/TranslateTotalizer'

<TranslateTotalizer id="Discounts" />
// Discount

<TranslateTotalizer id="Items" />
// Subtotal

<TranslateTotalizer id="Foo Custom" />
// Foo Custom
```

### Params

- **id** | Type `string` | Id of the totalizer to be translated

### Returns

- **Translated value** | Type `string`

## Testing

```sh
yarn test
```

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/react/TranslateTotalizer.test.js from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```javascript
import React from 'react'
import TranslateTotalizer from './TranslateTotalizer'
import { renderWithIntl, cleanup } from '../test-utils' // eslint-disable-line import/named

const TotalizersMock = {
  NoID: {
    name: 'Mock Tax',
    value: 10,
  },
  NoName: {
    id: 'CustomTax',
    name: '',
    value: 10.24,
  },
  Interest: {
    id: 'Interest',
    name: 'Total de juros',
    value: 0,
  },
  CustomTax: {
    id: 'CustomTax',
    name: 'COFINS-RETIDO',
    value: 29.97,
  },
}

describe('TranslateTotalizer', () => {
  afterEach(cleanup)

  it('should translate when a valid id is provided', () => {
    const { getByText } = renderWithIntl(<TranslateTotalizer id="Discounts" />)

    const text = getByText('Discount')
    expect(text).toBeDefined()
  })

  it("should return the id when it's not translated", () => {
    const { getByText } = renderWithIntl(<TranslateTotalizer id="Foo" />)

    const text = getByText('Foo')
    expect(text).toBeDefined()
  })

  it('should allow to pass a totalizer object and translate by its id', () => {
    const { getByText } = renderWithIntl(
      <TranslateTotalizer totalizer={TotalizersMock.Interest} />
    )

    const text = getByText('Interest')
    expect(text).toBeDefined()
  })

  it('should render name if id unknown', () => {
    const { getByText } = renderWithIntl(
      <TranslateTotalizer totalizer={TotalizersMock.CustomTax} />
    )

    const text = getByText('COFINS-RETIDO')
    expect(text).toBeDefined()
  })

  it('should render id as a fallback if no name is present', () => {
    const { getByText } = renderWithIntl(
      <TranslateTotalizer totalizer={TotalizersMock.NoName} />
    )

    const text = getByText('CustomTax')
    expect(text).toBeDefined()
  })

  it('should render name as fallback if no id is present', () => {
    const { getByText } = renderWithIntl(
      <TranslateTotalizer totalizer={TotalizersMock.NoID} />
    )

    const text = getByText('Mock Tax')
    expect(text).toBeDefined()
  })
})

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/react/TranslateTotalizer.js from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```javascript
import PropTypes from 'prop-types'
import { injectIntl, intlShape, defineMessages } from 'react-intl'

export const knownTotalizers = defineMessages({
  Discounts: {
    id: 'store/totalizers.Discounts',
    defaultMessage: 'Discounts',
  },
  Items: {
    id: 'store/totalizers.Items',
    defaultMessage: 'Items',
  },
  Shipping: {
    id: 'store/totalizers.Shipping',
    defaultMessage: 'Shipping',
  },
  Tax: {
    id: 'store/totalizers.Tax',
    defaultMessage: 'Tax',
  },
  Interest: {
    id: 'store/totalizers.Interest',
    defaultMessage: 'Interest',
  },
  Change: {
    id: 'store/totalizers.Change',
    defaultMessage: 'Total of changes',
  },
})

export const nonStoreKnownTotalizers = defineMessages({
  Discounts: {
    id: 'totalizers.Discounts',
    defaultMessage: 'Discounts',
  },
  Items: {
    id: 'totalizers.Items',
    defaultMessage: 'Items',
  },
  Shipping: {
    id: 'totalizers.Shipping',
    defaultMessage: 'Shipping',
  },
  Tax: {
    id: 'totalizers.Tax',
    defaultMessage: 'Tax',
  },
  Interest: {
    id: 'totalizers.Interest',
    defaultMessage: 'Interest',
  },
  Change: {
    id: 'totalizers.Change',
    defaultMessage: 'Total of changes',
  },
})

const TranslateTotal = ({ intl, id, totalizer, nonStorePage }) => {
  if (totalizer && totalizer.id) id = totalizer.id

  if (nonStorePage && id in nonStoreKnownTotalizers) return intl.formatMessage(nonStoreKnownTotalizers[id])

  // if the totalizer is known, translate it
  if (id in knownTotalizers) return intl.formatMessage(knownTotalizers[id])

  // id is unknown and there's no totalizer object, render the id or an empty string
  if (!totalizer) return id || ''

  // totalizer exists, render its name or its id
  return totalizer.name || id
}

TranslateTotal.propTypes = {
  intl: intlShape,
  id: PropTypes.string,
  totalizer: PropTypes.shape({
    id: PropTypes.string,
    name: PropTypes.string,
    value: PropTypes.number,
  }),
  nonStorePage: PropTypes.bool // This is used in case that the comoponent is used outsite the store context.
}

export default injectIntl(TranslateTotal)

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of totalizer-translator/react/package.json from the totalizer-translator VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "name": "totalizer-translator",
  "dependencies": {
    "react-intl": "^2.7.2"
  },
  "version": "2.6.1"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of service-example/docs/README.md from the service-example VTEX app.

[Assistant]
Here's the implementation:

```markdown
# Service Example

A reference app implementing a VTEX IO service with HTTP route handlers.

![Service Example Architecture](https://user-images.githubusercontent.com/18706156/77381360-72489680-6d5c-11ea-9da8-f4f03b6c5f4c.jpg)

We use [**KoaJS**](https://koajs.com/) as the web framework, so you might want to get into that

We also use the [**node-vtex-api**](https://github.com/vtex/node-vtex-api), a VTEX set of utilities for Node services. You can import this package using NPM from `@vtex/api` (already imported on this project)

- Start from `node/index.ts` and follow the comments and imports :)

## Defining routes on _service.json_
```json
{
  "memory": 256,
  "ttl": 10,
  "timeout": 2,
  "minReplicas": 2,
  "maxReplicas": 4,
  "routes": {
    "status": {
      "path": "/_v/status/:code",
      "public": true
    }
  }
}
```

The `service.json` file that sits on the root of the `node` folder holds information about this service, like the maximum timeout and number of replicas, but also sets its routes.

Koa uses the [path-to-regexp](https://github.com/pillarjs/path-to-regexp) format for defining routes and, as seen in the example, we use the `:code` notation for declaring a route param named `code`. An HTTP request for `https://{{workspace}}--{{account}}.myvtex.com/_v/status/500` will match the route we've defined.

For each _key_ on the `routes` object, there should be a corresponding entry on the exported Service object on `node/index.ts`. This will hook your code to a specific route.

## Access Control
You can also provide a `public` option for each route. If `true`, that resource will be reachable to everyone on the internet. If `false`, VTEX credentials will be requested as well.

Another way of controlling access to specific routes is using **ReBACs (Resource-based access)**, which supports a more robust configuration. You can read more [on this document](https://docs.google.com/document/d/1ZxNHMFIXfXz3BgTN9xyrHL3V5dYz14wivYgQjRBZ6J8/edit#heading=h.z7pad3qd2qw7) (VTEX only).

### Query String
For `?accepting=query-string`, you **don't need to declare anything**, as any query provided to the URL will already be available for you to use on the code as `ctx.query`, already parsed as an object, or `ctx.queryString`, taken directly from the URL as a string.

### Route Params
Route Params will be available for you to use on the code as `ctx.vtex.params`, already parsed as an object.
For a path like `/_v/status/:code`, if you receive the request `/_v/status/200`, `ctx.vtex.params` will return `{ code: '200' }`

### HTTP methods

When you define a route on the `service.json`, your NodeJS handlers for that route will be triggered on every HTTP method (GET, POST, PUT...), so if you need to handle them separately, you need to implement a "sub-router". Fortunately, the _node-vtex-api_ provides a helper function `method`, exported from `@vtex/api`, to accomplish that behavior. Instead of passing your handlers directly to the corresponding route on `index.ts`, you pass a `method` call passing an object with the desired method as key and one handler as its corresponding value.

Check this example:
```typescript
import { method } from '@vtex/api'
...

export default new Service<Clients, State>({
  clients,
  routes: {
    status: method({
      GET: statusGetHandler,
      POST: statusPostHandler,
    }),
  },
})
```

## Throwing errors

When building an HTTP service, we should follow HTTP rules regarding data types, cache, authorization, and status codes. Our example app sets a `ctx.status` value that will be used as an HTTP status code return value, but often, we also want to give proper information about errors.

The **node-vtex-api** already exports a handful of **custom error classes** that can be used for that purpose, like the `NotFoundError`. You just need to throw them inside one of the route handlers that the appropriate response will be sent to the server.

```typescript
import { UserInputError } from '@vtex/api'

export async function validate(ctx: Context, next: () => Promise<any>) {
  const { code } = ctx.vtex.route.params
  if (isNaN(code) || code < 100 || code > 600) {
    throw new UserInputError('Code must be a number between 100 and 600')
  }
...
```

You can check all the available errors [here](https://github.com/vtex/node-vtex-api/tree/fd6139349de4e68825b1074f1959dd8d0c8f4d5b/src/errors), but some are not useful for just-HTTP services. Check the most useful ones:

|Error Class | HTTP Code |
|--|:--:|
| `UserInputError` | 400 |
| `AuthenticationError` | 401 |
| `ForbiddenError` | 403 |
| `NotFoundError` | 404 |

You can also **create your custom error**, just see how it's done above ;)

## Reading a JSON body

When writing POST or PUT handlers, for example, you often need to have access to the **request body** that comes in a JSON format, which is not provided directly by the handler function.

For this, you have to use the [co-body](https://www.npmjs.com/package/co-body) package that will parse the request into a readable JSON object, used as below:
```typescript
import { json } from 'co-body'
export async function method(ctx: Context, next: () => Promise<any>) {
    const body = await json(ctx.req)
```

## Testing

`@vtex/test-tools` and `@types/jest` should be installed on `./node` package as `devDependencies`.

Run `vtex test` and [Jest](https://jestjs.io/) will do its thing.

Check the `node/__tests__/simple.test.ts` test case and also [Jest's Documentation](https://jestjs.io/docs/en/getting-started).

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of service-example/node/service.json from the service-example VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "memory": 256,
  "ttl": 10,
  "timeout": 2,
  "minReplicas": 2,
  "maxReplicas": 4,
  "workers": 1,
  "routes": {
    "status": {
      "path": "/_v/status/:code",
      "public": true
    }
  }
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of service-example/node/package.json from the service-example VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "dependencies": {
    "co-body": "^6.0.0",
    "ramda": "^0.25.0"
  },
  "devDependencies": {
    "@types/co-body": "^0.0.3",
    "@types/jest": "^24.0.18",
    "@types/node": "^20.0.0",
    "@types/ramda": "types/npm-ramda#dist",
    "@vtex/api": "6.47.0",
    "@vtex/test-tools": "^1.0.0",
    "@vtex/tsconfig": "^0.5.6",
    "typescript": "5.5.3"
  },
  "resolutions": {
    "@types/testing-library__dom": "6.12.1",
    "@types/express": "4.16.0",
    "@types/express-serve-static-core": "4.16.0"
  },
  "scripts": {
    "lint": "tsc --noEmit --pretty"
  },
  "version": "0.3.0"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of service-example/node/index.ts from the service-example VTEX app.

[Assistant]
Here's the implementation:

```typescript
import type { ClientsConfig, ServiceContext, RecorderState } from '@vtex/api'
import { LRUCache, method, Service } from '@vtex/api'

import { Clients } from './clients'
import { status } from './middlewares/status'
import { validate } from './middlewares/validate'

const TIMEOUT_MS = 800

// Create a LRU memory cache for the Status client.
// The 'max' parameter sets the size of the cache.
// The @vtex/api HttpClient respects Cache-Control headers and uses the provided cache.
// Note that the response from the API being called must include an 'etag' header
// or a 'cache-control' header with a 'max-age' value. If neither exist, the response will not be cached.
// To force responses to be cached, consider adding the `forceMaxAge` option to your client methods.
const memoryCache = new LRUCache<string, any>({ max: 5000 })

metrics.trackCache('status', memoryCache)

// This is the configuration for clients available in `ctx.clients`.
const clients: ClientsConfig<Clients> = {
  // We pass our custom implementation of the clients bag, containing the Status client.
  implementation: Clients,
  options: {
    // All IO Clients will be initialized with these options, unless otherwise specified.
    default: {
      retries: 2,
      timeout: TIMEOUT_MS,
    },
    // This key will be merged with the default options and add this cache to our Status client.
    status: {
      memoryCache,
    },
  },
}

declare global {
  // We declare a global Context type just to avoid re-writing ServiceContext<Clients, State> in every handler and resolver
  type Context = ServiceContext<Clients, State>

  // The shape of our State object found in `ctx.state`. This is used as state bag to communicate between middlewares.
  interface State extends RecorderState {
    code: number
  }
}

// Export a service that defines route handlers and client options.
export default new Service({
  clients,
  routes: {
    // `status` is the route ID from service.json. It maps to an array of middlewares (or a single handler).
    status: method({
      GET: [validate, status],
    }),
  },
})

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of service-example/node/clients/status.ts from the service-example VTEX app.

[Assistant]
Here's the implementation:

```typescript
import type { InstanceOptions, IOContext, IOResponse } from '@vtex/api'
import { ExternalClient } from '@vtex/api'

export default class Status extends ExternalClient {
  constructor(context: IOContext, options?: InstanceOptions) {
    super('http://httpstat.us', context, options)
  }

  public async getStatus(status: number): Promise<string> {
    return this.http.get(status.toString(), {
      metric: 'status-get',
    })
  }

  public async getStatusWithHeaders(
    status: number
  ): Promise<IOResponse<string>> {
    return this.http.getRaw(status.toString(), {
      metric: 'status-get-raw',
    })
  }

  public async getStatusAndForceMaxAge(
    status: number
  ): Promise<IOResponse<string>> {
    return this.http.get(status.toString(), {
      // when using an LRUCache, this will force the response to be cached
      forceMaxAge: 5000,
      metric: 'status-get-forceMaxAge',
    })
  }
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of service-example/node/clients/index.ts from the service-example VTEX app.

[Assistant]
Here's the implementation:

```typescript
import { IOClients } from '@vtex/api'

import Status from './status'

// Extend the default IOClients implementation with our own custom clients.
export class Clients extends IOClients {
  public get status() {
    return this.getOrSet('status', Status)
  }
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of service-example/node/middlewares/status.ts from the service-example VTEX app.

[Assistant]
Here's the implementation:

```typescript
export async function status(ctx: Context, next: () => Promise<any>) {
  const {
    state: { code },
    clients: { status: statusClient },
  } = ctx

  console.info('Received code:', code)

  const statusResponse = await statusClient.getStatus(code)

  console.info('Status response:', statusResponse)

  const {
    headers,
    data,
    status: responseStatus,
  } = await statusClient.getStatusWithHeaders(code)

  console.info('Status headers', headers)
  console.info('Status data:', data)

  ctx.status = responseStatus
  ctx.body = data
  ctx.set('Cache-Control', headers['cache-control'])

  await next()
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of service-example/node/middlewares/validate.ts from the service-example VTEX app.

[Assistant]
Here's the implementation:

```typescript
import { UserInputError } from '@vtex/api'

export async function validate(ctx: Context, next: () => Promise<any>) {
  const {
    vtex: {
      route: { params },
    },
  } = ctx

  console.info('Received params:', params)

  const { code } = params

  if (!code) {
    throw new UserInputError('Code is required') // Wrapper for a Bad Request (400) HTTP Error. Check others in https://github.com/vtex/node-vtex-api/blob/fd6139349de4e68825b1074f1959dd8d0c8f4d5b/src/errors/index.ts
  }

  const codeNumber = parseInt(code as string, 10)

  ctx.state.code = codeNumber

  await next()
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of service-example/node/__tests__/simple.test.ts from the service-example VTEX app.

[Assistant]
Here's the implementation:

```typescript
// You can import your files here for testing them
//
// More info: https://github.com/sapegin/jest-cheat-sheet

describe('simpleTest', () => {
  it('one test case', async () => {
    expect(0.2 + 0.1).not.toBe(0.3)
  })
})

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/th-TH.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.title": "กำหนด UI ใน Checkout",
  "admin/checkout-ui.update-warning": "แอปนี้มีการอัปเดต โปรดคลิก เผยแพร่ เพื่อให้การแก้ไขล่าสุดมีผลใน Checkout ของคุณ",
  "admin/checkout-ui.permission-warning":"คุณไม่ได้รับอนุญาตให้เผยแพร่",
  "admin/checkout-ui.permission-tooltip":"บทบาทที่ต้องมี: 'บันทึกค่ากำหนดแบบฟอร์มคำขอ'",
  "admin/checkout-ui.navigation.title": "กำหนด UI ใน Checkout",
  "admin/checkout-ui.tab.layout": "เลย์เอาต์",
  "admin/checkout-ui.tab.colors": "สี",
  "admin/checkout-ui.tab.javascript": "JavaScript",
  "admin/checkout-ui.tab.javascript.label": "JavaScript กำหนดเอง",
  "admin/checkout-ui.tab.javascript.helper": "// การเปลี่ยนแปลงตรงนี้อาจกระทบการขายของคุณ",
  "admin/checkout-ui.tab.css": "CSS",
  "admin/checkout-ui.tab.css.label": "CSS กำหนดเอง",
  "admin/checkout-ui.tab.css.helper": "/* การเปลี่ยนแปลงที่นี่อาจกระทบการขายของคุณ */",
  "admin/checkout-ui.tab.history": "ประวัติ",
  "admin/checkout-ui.button.publish": "เผยแพร่",
  "admin/checkout-ui.message.publishing": "เผยแพร่ไปยัง",
  "admin/checkout-ui.message.published": "ได้เผยแพร่ไปยัง",
  "admin/checkout-ui.publish.warning": "คุณกำลังเผยแพร่ไปยัง Production ที่ใช้งานจริง อย่าลืมว่าการเปลี่ยนแปลงที่นี่อาจกระทบการขายของคุณ",
  "admin/checkout-ui.publish.confirm": "ดำเนินการต่อ",
  "admin/checkout-ui.publish.cancel": "ยกเลิก",
  "admin/checkout-ui.toggle.active": "ใช้งานอยู่",
  "admin/checkout-ui.history.label.email": "อีเมล",
  "admin/checkout-ui.history.label.workspace": "พื้นที่ทำงาน",
  "admin/checkout-ui.history.label.version": "เวอร์ชันของแอป",
  "admin/checkout-ui.history.label.date": "วันที่สร้าง",
  "admin/checkout-ui.history.button.load": "โหลด",
  "admin/checkout-ui.history.help.appversion": "เวอร์ชันปัจจุบันของแอป:",
  "admin/checkout-ui.color.base": "base",
  "admin/checkout-ui.color.baseInverted": "base ที่สับเปลี่ยน",
  "admin/checkout-ui.color.actionPrimary": "แอคชันหลัก",
  "admin/checkout-ui.color.actionPrimaryDarken": "แอคชันหลักสีเข้มกว่า",
  "admin/checkout-ui.color.actionSecondary": "แอคชันรอง",
  "admin/checkout-ui.color.emphasis": "การเน้น",
  "admin/checkout-ui.color.disabled": "ปิดการใช้งานแล้ว",
  "admin/checkout-ui.color.success": "สำเร็จ",
  "admin/checkout-ui.color.successDarken": "สำเร็จสีเข้มกว่า",
  "admin/checkout-ui.color.successFaded": "สำเร็จสีจางลง",
  "admin/checkout-ui.color.danger": "อันตราย",
  "admin/checkout-ui.color.dangerFaded": "อันตรายสีจางลง",
  "admin/checkout-ui.color.warning": "คำเตือน",
  "admin/checkout-ui.color.warningFaded": "คำเตือนสีจางลง",
  "admin/checkout-ui.color.muted1": "ปิดเสียง 1",
  "admin/checkout-ui.color.muted2": "ปิดเสียง 2",
  "admin/checkout-ui.color.muted3": "ปิดเสียง 3",
  "admin/checkout-ui.color.muted4": "ปิดเสียง 4",
  "admin/checkout-ui.color.muted5": "ปิดเสียง 5",
  "admin/checkout-ui.color.muted6": "ปิดเสียง 6",
  "admin/checkout-ui.layout.preview.title": "แสดงตัวอย่าง",
  "admin/checkout-ui.layout.preview.sample": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean finibus malesuada nisi, sit amet egestas magna vestibulum eget. Maecenas tempus sollicitudin enim quis semper",
  "admin/checkout-ui.layout.preview.button": "ปุ่ม",
  "admin/checkout-ui.layout.accordionPayments.label": "แสดงวิธีการชำระเงินแบบ Accordion - คลิกลูกศรเพื่อขยายดูรายละเอียดเพิ่มเติมได้",
  "admin/checkout-ui.layout.accordionPayments.help": "แสดงวิธีการชำระเงินเป็นหมวดแบบย่อขยายได้ ถ้าปิดการใช้งานจะแสดงเป็นแท็บ",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "แสดงวันที่ขนส่งแบบคร่าว ๆ",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "แสดงวันและวันที่จัดส่งโดยประมาณ หากปิดใช้งานกรอบเวลาที่จัดส่งโดยประมาณจะแสดงเป็น \"ไม่เกิน X วันทำการ\"",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "แสดงยอดรวมในบรรทัดรายการ",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "แสดงยอดรวมในบรรทัดรายการ (ราคาหน่วย x จำนวน) ถัดจากตัวเลือกจำนวน หากปิดการใช้งานจะแสดงเฉพาะราคาหน่วย",
  "admin/checkout-ui.layout.showNoteField.label": "แสดงฟิลด์ข้อมูลหมายเหตุ",
  "admin/checkout-ui.layout.hideEmailStep.label": "ซ่อนขั้นตอนอีเมล",
  "admin/checkout-ui.layout.customAddressForm.label": "แบบฟอร์มที่อยู่จาก Google",
  "admin/checkout-ui.layout.fontSize.label": "ขนาดตัวอักษร: ",
  "admin/checkout-ui.layout.borderRadius.label": "ฺิิิิborder radius: ",
  "admin/checkout-ui.layout.btnBorderRadius.label": "รัศมีความโค้งขอบปุ่ม: ",
  "admin/checkout-ui.layout.inputHeight.label": "ความสูงฟิลด์ตัวอักษร:",
  "admin/checkout-ui.layout.maxWrapper.label": "ความกว้างสูงสุดของ wrapper",
  "admin/checkout-ui.layout.bordersContainers.label": "border ของ container",
  "admin/checkout-ui.layout.fontFamily.label": "ตระกูลแบบอักษร"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/de.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.title": "Checkout UI Benutzerdefiniert",
  "admin/checkout-ui.update-warning": "Diese App wurde aktualisiert. Bitte klicken Sie auf VERÖFFENTLICHEN, um die neuesten Korrekturen auf Ihren Checkout anzuwenden.",
  "admin/checkout-ui.permission-warning":"Sie haben keine Berechtigung zum Veröffentlichen",
  "admin/checkout-ui.permission-tooltip":"Erforderliche Rolle: 'SaveOrderFormConfiguration'",
  "admin/checkout-ui.navigation.title": "Checkout UI Benutzerdefiniert",
  "admin/checkout-ui.tab.layout": "Layout",
  "admin/checkout-ui.tab.colors": "Farben",
  "admin/checkout-ui.tab.javascript": "JavaScript",
  "admin/checkout-ui.tab.javascript.label": "Benutzerdefiniertes JavaScript",
  "admin/checkout-ui.tab.javascript.helper": "// Änderungen hier können sich auf Ihre Verkäufe auswirken",
  "admin/checkout-ui.tab.css": "CSS",
  "admin/checkout-ui.tab.css.label": "Benutzerdefiniertes CSS",
  "admin/checkout-ui.tab.css.helper": "/* Änderungen hier können sich auf Ihre Verkäufe auswirken */",
  "admin/checkout-ui.tab.history": "Verlauf",
  "admin/checkout-ui.button.publish": "Veröffentlichen",
  "admin/checkout-ui.message.publishing": "Veröffentlichung an",
  "admin/checkout-ui.message.published": "Veröffentlicht bis",
  "admin/checkout-ui.publish.warning": "Sie veröffentlichen in einem PRODUKTIONS-Arbeitsbereich. Beachten Sie, dass sich Änderungen hier auf Ihre Verkäufe auswirken können.",
  "admin/checkout-ui.publish.confirm": "Weiter",
  "admin/checkout-ui.publish.cancel": "Abbrechen",
  "admin/checkout-ui.toggle.active": "Aktiv",
  "admin/checkout-ui.history.label.email": "E-Mail",
  "admin/checkout-ui.history.label.workspace": "Arbeitsplatz",
  "admin/checkout-ui.history.label.version": "App-Version",
  "admin/checkout-ui.history.label.date": "Erstellungsdatum",
  "admin/checkout-ui.history.button.load": "Laden",
  "admin/checkout-ui.history.help.appversion": "Aktuelle App-Version:",
  "admin/checkout-ui.color.base": "Basis",
  "admin/checkout-ui.color.baseInverted": "Umgekehrte Basis",
  "admin/checkout-ui.color.actionPrimary": "Aktion primär",
  "admin/checkout-ui.color.actionPrimaryDarken": "Aktion primär dunkler",
  "admin/checkout-ui.color.actionSecondary": "Aktion sekundär",
  "admin/checkout-ui.color.emphasis": "Schwerpunkt",
  "admin/checkout-ui.color.disabled": "Deaktiviert",
  "admin/checkout-ui.color.success": "Erfolg",
  "admin/checkout-ui.color.successDarken": "Erfolg dunkler",
  "admin/checkout-ui.color.successFaded": "Erfolg verblasst",
  "admin/checkout-ui.color.danger": "Gefahr",
  "admin/checkout-ui.color.dangerFaded": "Gefahr verblasst",
  "admin/checkout-ui.color.warning": "Warnung",
  "admin/checkout-ui.color.warningFaded": "Warnung verblasst",
  "admin/checkout-ui.color.muted1": "Gedämpft 1",
  "admin/checkout-ui.color.muted2": "Gedämpft 2",
  "admin/checkout-ui.color.muted3": "Gedämpft 3",
  "admin/checkout-ui.color.muted4": "Gedämpft 4",
  "admin/checkout-ui.color.muted5": "Gedämpft 5",
  "admin/checkout-ui.color.muted6": "Gedämpft 6",
  "admin/checkout-ui.layout.preview.title": "Vorschau",
  "admin/checkout-ui.layout.preview.sample": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean finibus malesuada nisi, sit amet egestas magna vestibulum eget. Maecenas tempus sollicitudin enim quis semper",
  "admin/checkout-ui.layout.preview.button": "Taste",
  "admin/checkout-ui.layout.accordionPayments.label": "Zahlungsmethoden als Akkordeon anzeigen",
  "admin/checkout-ui.layout.accordionPayments.help": "Zahlungsmethoden als ausklappbare Bereiche anzeigen. Wenn deaktiviert, werden die Zahlungsmethoden als Registerkarten angezeigt.",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "Vereinfachtes Versanddatum anzeigen",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "Zeigt den geschätzten Liefertag und das Lieferdatum an. Bei Deaktivierung wird der geschätzte Lieferzeitrahmen als \"Bis zu X Werktagen\" angezeigt.",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "Gesamte Artikelzeile anzeigen",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "Zeigt die Zeilensumme (Stückpreis x Menge) neben der Mengenauswahl an. Ist diese Option deaktiviert, wird nur der Stückpreis angezeigt.",
  "admin/checkout-ui.layout.showNoteField.label": "Notizfeld anzeigen",
  "admin/checkout-ui.layout.hideEmailStep.label": "E-Mail-Schritt ausblenden",
  "admin/checkout-ui.layout.customAddressForm.label": "Google Adressformular",
  "admin/checkout-ui.layout.fontSize.label": "Textgröße: ",
  "admin/checkout-ui.layout.borderRadius.label": "Radius der Umrandung: ",
  "admin/checkout-ui.layout.btnBorderRadius.label": "Randradius der Schaltfläche: ",
  "admin/checkout-ui.layout.inputHeight.label": "Höhe der Textfelder:",
  "admin/checkout-ui.layout.maxWrapper.label": "Maximale Wrapperbreite",
  "admin/checkout-ui.layout.bordersContainers.label": "Rand des Containers",
  "admin/checkout-ui.layout.fontFamily.label": "Schriftfamilie"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/pl.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.title": "Niestandardowe UI kasy",
  "admin/checkout-ui.update-warning": "Aplikacja została zaktualizowana. Kliknij OPUBLIKUJ, aby zastosować najnowsze poprawki do kasy.",
  "admin/checkout-ui.navigation.title": "Niestandardowe UI kasy",
  "admin/checkout-ui.tab.layout": "Układ",
  "admin/checkout-ui.tab.colors": "Kolory",
  "admin/checkout-ui.tab.javascript": "JavaScript",
  "admin/checkout-ui.tab.javascript.label": "Niestandardowy JavaScript",
  "admin/checkout-ui.tab.javascript.helper": "// Zmiany w tym miejscu mogą wpłynąć na sprzedaż",
  "admin/checkout-ui.tab.css": "CSS",
  "admin/checkout-ui.tab.css.label": "Niestandardowy CSS",
  "admin/checkout-ui.tab.css.helper": "/* Zmiany w tym miejscu mogą wpłynąć na sprzedaż */",
  "admin/checkout-ui.tab.history": "Historia",
  "admin/checkout-ui.button.publish": "Opublikuj",
  "admin/checkout-ui.message.publishing": "Publikowanie w",
  "admin/checkout-ui.message.published": "Opublikowano w",
  "admin/checkout-ui.publish.warning": "Publikujesz w przestrzeni roboczej PRODUKCJI. Pamiętaj, że te zmiany mogą wpłynąć na sprzedaż.",
  "admin/checkout-ui.publish.confirm": "Przejdź dalej",
  "admin/checkout-ui.publish.cancel": "Anuluj",
  "admin/checkout-ui.toggle.active": "Aktywna",
  "admin/checkout-ui.history.label.email": "E-mail",
  "admin/checkout-ui.history.label.workspace": "Przestrzeń robocza",
  "admin/checkout-ui.history.label.version": "Wersja aplikacji",
  "admin/checkout-ui.history.label.date": "Data utworzenia",
  "admin/checkout-ui.history.button.load": "Załaduj",
  "admin/checkout-ui.history.help.appversion": "Bieżąca wersja aplikacji:",
  "admin/checkout-ui.color.base": "Podstawowy",
  "admin/checkout-ui.color.baseInverted": "Podstawowy odwrócony",
  "admin/checkout-ui.color.actionPrimary": "Działanie główny",
  "admin/checkout-ui.color.actionPrimaryDarken": "Działanie główny ciemniejszy",
  "admin/checkout-ui.color.actionSecondary": "Działanie drugorzędny",
  "admin/checkout-ui.color.emphasis": "Wyróżnienie",
  "admin/checkout-ui.color.disabled": "Wyłączone",
  "admin/checkout-ui.color.success": "Udało się",
  "admin/checkout-ui.color.successDarken": "Udało się ciemniejszy",
  "admin/checkout-ui.color.successFaded": "Udało się wyblakły",
  "admin/checkout-ui.color.danger": "Niebezpieczeństwo",
  "admin/checkout-ui.color.dangerFaded": "Niebezpieczeństwo wyblakły",
  "admin/checkout-ui.color.warning": "Ostrzeżenie",
  "admin/checkout-ui.color.warningFaded": "Ostrzeżenie wyblakły",
  "admin/checkout-ui.color.muted1": "Przygaszony 1",
  "admin/checkout-ui.color.muted2": "Przygaszony 2",
  "admin/checkout-ui.color.muted3": "Przygaszony 3",
  "admin/checkout-ui.color.muted4": "Przygaszony 4",
  "admin/checkout-ui.color.muted5": "Przygaszony 5",
  "admin/checkout-ui.color.muted6": "Przygaszony 6",
  "admin/checkout-ui.layout.preview.title": "Podgląd",
  "admin/checkout-ui.layout.preview.sample": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean finibus malesuada nisi, sit amet egestas magna vestibulum eget. Maecenas tempus sollicitudin enim quis semper",
  "admin/checkout-ui.layout.preview.button": "Przycisk",
  "admin/checkout-ui.layout.accordionPayments.label": "Pokaż metody płatności jako harmonijkę",
  "admin/checkout-ui.layout.accordionPayments.help": "Wyświetl metody płatności jako rozwijane sekcje. Po wyłączeniu metody płatności są wyświetlane jako karty.",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "Pokaż uproszczoną datę wysyłki",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "Wyświetlaj szacunkowy dzień oraz datę. Po wyłączeniu szacunkowy czas dostawy to „Do X dni roboczych”.",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "Pokaż ogółem",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "Wyświetl ogółem (cena jednostkowa × ilość) obok selektora ilości. Po wyłączeniu widoczna jest tylko cena jednostkowa.",
  "admin/checkout-ui.layout.showNoteField.label": "Pokaż pole uwag",
  "admin/checkout-ui.layout.hideEmailStep.label": "Ukryj krok e-mail",
  "admin/checkout-ui.layout.customAddressForm.label": "Formularz adresu Google",
  "admin/checkout-ui.layout.fontSize.label": "Rozmiar tekstu: ",
  "admin/checkout-ui.layout.borderRadius.label": "Promień obramowania: ",
  "admin/checkout-ui.layout.btnBorderRadius.label": "Promień obramowania przycisku: ",
  "admin/checkout-ui.layout.inputHeight.label": "Wysokość pola tekstowego:",
  "admin/checkout-ui.layout.maxWrapper.label": "Maks. szerokość wrappera",
  "admin/checkout-ui.layout.bordersContainers.label": "Ramka kontenera",
  "admin/checkout-ui.layout.fontFamily.label": "Rodzina czcionek"
}
```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/ko-KR.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.title": "체크아웃 UI 사용자 정의",
  "admin/checkout-ui.update-warning": "이 앱이 업데이트되었습니다. 체크아웃에 최신 수정사항을 적용하려면 [게시;]를 클릭하세요.",
  "admin/checkout-ui.permission-warning":"게시할 수 있는 권한이 없습니다",
  "admin/checkout-ui.permission-tooltip":"필수 역할: '저장 주문 양식 구성'",
  "admin/checkout-ui.navigation.title": "체크아웃 UI 사용자 정의",
  "admin/checkout-ui.tab.layout": "레이아웃",
  "admin/checkout-ui.tab.colors": "색",
  "admin/checkout-ui.tab.javascript": "JavaScript",
  "admin/checkout-ui.tab.javascript.label": "사용자 정의 Javascript",
  "admin/checkout-ui.tab.javascript.helper": "// 여기서 변경한 내용은 판매에 영향을 미칠 수 있습니다.",
  "admin/checkout-ui.tab.css": "CSS",
  "admin/checkout-ui.tab.css.label": "사용자 정의 CSS",
  "admin/checkout-ui.tab.css.helper": "/* 여기서 변경한 내용은 판매에 영향을 미칠 수 있습니다. */",
  "admin/checkout-ui.tab.history": "내역",
  "admin/checkout-ui.button.publish": "게시",
  "admin/checkout-ui.message.publishing": "게시",
  "admin/checkout-ui.message.published": "게시됨",
  "admin/checkout-ui.publish.warning": "프로덕션 작업 공간에 게시 중입니다. 여기서 변경하면 판매에 영향을 미칠 수 있습니다.",
  "admin/checkout-ui.publish.confirm": "진행",
  "admin/checkout-ui.publish.cancel": "취소",
  "admin/checkout-ui.toggle.active": "활성",
  "admin/checkout-ui.history.label.email": "이메일",
  "admin/checkout-ui.history.label.workspace": "작업 공간",
  "admin/checkout-ui.history.label.version": "앱 버전",
  "admin/checkout-ui.history.label.date": "생성 날짜",
  "admin/checkout-ui.history.button.load": "로드",
  "admin/checkout-ui.history.help.appversion": "현재 앱 버전:",
  "admin/checkout-ui.color.base": "기본",
  "admin/checkout-ui.color.baseInverted": "Inverted base",
  "admin/checkout-ui.color.actionPrimary": "Action primary",
  "admin/checkout-ui.color.actionPrimaryDarken": "Action primary darker",
  "admin/checkout-ui.color.actionSecondary": "Action secondary",
  "admin/checkout-ui.color.emphasis": "강조",
  "admin/checkout-ui.color.disabled": "비활성화됨",
  "admin/checkout-ui.color.success": "성공",
  "admin/checkout-ui.color.successDarken": "Success darker",
  "admin/checkout-ui.color.successFaded": "Success faded",
  "admin/checkout-ui.color.danger": "Danger",
  "admin/checkout-ui.color.dangerFaded": "Danger faded",
  "admin/checkout-ui.color.warning": "경고",
  "admin/checkout-ui.color.warningFaded": "Warning faded",
  "admin/checkout-ui.color.muted1": "Muted 1",
  "admin/checkout-ui.color.muted2": "Muted 2",
  "admin/checkout-ui.color.muted3": "Muted 3",
  "admin/checkout-ui.color.muted4": "Muted 4",
  "admin/checkout-ui.color.muted5": "Muted 5",
  "admin/checkout-ui.color.muted6": "Muted 6",
  "admin/checkout-ui.layout.preview.title": "미리보기",
  "admin/checkout-ui.layout.preview.sample": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean finibus malesuada nisi, sit amet egestas magna vestibulum eget. Maecenas tempus sollicitudin enim quis semper",
  "admin/checkout-ui.layout.preview.button": "버튼",
  "admin/checkout-ui.layout.accordionPayments.label": "결제 방법을 아코디언으로 표시",
  "admin/checkout-ui.layout.accordionPayments.help": "결제 방법을 확장 가능한 섹션으로 표시합니다. 비활성화하면 결제 방법이 탭으로 표시됩니다.",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "단순화된 배송 날짜 표시",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "예상 배송일과 날짜를 표시합니다. 비활성화된 경우, 예상 배송 시간은 '영업일 기준 최대 X일'로 표시됩니다.",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "항목 라인 합계 표시",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "수량 선택기 옆에 라인 합계(단가 x 수량)를 표시합니다. 비활성화하면 단가만 표시됩니다.",
  "admin/checkout-ui.layout.showNoteField.label": "notes 필드 표시",
  "admin/checkout-ui.layout.hideEmailStep.label": "이메일 단계 숨기기",
  "admin/checkout-ui.layout.customAddressForm.label": "Google 주소 양식 형식",
  "admin/checkout-ui.layout.fontSize.label": "텍스트 크기: ",
  "admin/checkout-ui.layout.borderRadius.label": "테두리 반경: ",
  "admin/checkout-ui.layout.btnBorderRadius.label": "버튼 테두리 반경: ",
  "admin/checkout-ui.layout.inputHeight.label": "텍스트 필드 높이:",
  "admin/checkout-ui.layout.maxWrapper.label": "최대 포장지 너비",
  "admin/checkout-ui.layout.bordersContainers.label": "컨테이너의 테두리",
  "admin/checkout-ui.layout.fontFamily.label": "폰트 집합"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/fi.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.title": "Räätälöity kassakäyttöliittymä",
  "admin/checkout-ui.update-warning": "Tämä sovellus on päivitetty. Napsauta JULKAISE lisätäksesi viimeisimmät korjaukset kassalle.",
  "admin/checkout-ui.permission-warning":"Sinulla ei ole oikeutta julkaista",
  "admin/checkout-ui.permission-tooltip":"Vaadittu rooli: ”SaveOrderFormConfiguration”",
  "admin/checkout-ui.navigation.title": "Räätälöity kassakäyttöliittymä",
  "admin/checkout-ui.tab.layout": "Asettelu",
  "admin/checkout-ui.tab.colors": "Värit",
  "admin/checkout-ui.tab.javascript": "JavaScript",
  "admin/checkout-ui.tab.javascript.label": "Mukautettu JavaScript",
  "admin/checkout-ui.tab.javascript.helper": "// Täällä tehdyt muutokset voivat vaikuttaa myyntiisi",
  "admin/checkout-ui.tab.css": "CSS",
  "admin/checkout-ui.tab.css.label": "Räätälöity CSS",
  "admin/checkout-ui.tab.css.helper": "/* Täällä tehdyt muutokset voivat vaikuttaa myyntiisi */",
  "admin/checkout-ui.tab.history": "Historia",
  "admin/checkout-ui.button.publish": "Julkaise",
  "admin/checkout-ui.message.publishing": "Julkaistaan kohteeseen",
  "admin/checkout-ui.message.published": "Julkaistu kohteeseen",
  "admin/checkout-ui.publish.warning": "Olet julkaisemassa TUOTANTO-työtilaan. Huomioi, että täällä tehdyt muutokset voivat vaikuttaa myyntiisi.",
  "admin/checkout-ui.publish.confirm": "Jatka",
  "admin/checkout-ui.publish.cancel": "Peruuta",
  "admin/checkout-ui.toggle.active": "Aktiivinen",
  "admin/checkout-ui.history.label.email": "Sähköpostiosoite",
  "admin/checkout-ui.history.label.workspace": "Työtila",
  "admin/checkout-ui.history.label.version": "Sovellusversio",
  "admin/checkout-ui.history.label.date": "Luontipäivämäärä",
  "admin/checkout-ui.history.button.load": "Lataa",
  "admin/checkout-ui.history.help.appversion": "Nykyinen sovellusversio:",
  "admin/checkout-ui.color.base": "Pohja",
  "admin/checkout-ui.color.baseInverted": "Käänteinen pohja",
  "admin/checkout-ui.color.actionPrimary": "Päätoiminto",
  "admin/checkout-ui.color.actionPrimaryDarken": "Päätoiminto tummempi",
  "admin/checkout-ui.color.actionSecondary": "Toissijainen toiminto",
  "admin/checkout-ui.color.emphasis": "Korostus",
  "admin/checkout-ui.color.disabled": "Poissa käytöstä",
  "admin/checkout-ui.color.success": "Onnistui",
  "admin/checkout-ui.color.successDarken": "Onnistui, tummempi",
  "admin/checkout-ui.color.successFaded": "Onnistui, himmennetty",
  "admin/checkout-ui.color.danger": "Vaara",
  "admin/checkout-ui.color.dangerFaded": "Vaara, himmennetty",
  "admin/checkout-ui.color.warning": "Varoitus",
  "admin/checkout-ui.color.warningFaded": "Varoitus, himmennetty",
  "admin/checkout-ui.color.muted1": "Mykistetty 1",
  "admin/checkout-ui.color.muted2": "Mykistetty 2",
  "admin/checkout-ui.color.muted3": "Mykistetty 3",
  "admin/checkout-ui.color.muted4": "Mykistetty 4",
  "admin/checkout-ui.color.muted5": "Mykistetty 5",
  "admin/checkout-ui.color.muted6": "Mykistetty 6",
  "admin/checkout-ui.layout.preview.title": "Esikatselu",
  "admin/checkout-ui.layout.preview.sample": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean finibus malesuada nisi, sit amet egestas magna vestibulum eget. Maecenas tempus sollicitudin enim quis semper",
  "admin/checkout-ui.layout.preview.button": "Painike",
  "admin/checkout-ui.layout.accordionPayments.label": "Näytä maksutavat haitarina",
  "admin/checkout-ui.layout.accordionPayments.help": "Näytä maksutavat laajennettavina osioina. Jos tämä on pois käytöstä, maksutavat näytetään välilehtinä.",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "Näytä yksinkertaistettu lähetyspäivä",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "Näyttää arvioidun toimituspäivän ja päivämäärän. Jos tämä on pois käytöstä, arvioitu toimitusaikaikkuna näytetään muodossa \"Enintään X arkipäivää\".",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "Näytä tuoterivin loppusumma",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "Näytä rivin loppusumma (yksikköhinta x määrä) määrävalitsijan vieressä. Jos tämä on pois käytöstä, vain yksikköhinta näytetään.",
  "admin/checkout-ui.layout.showNoteField.label": "Näytä muistiinpanokenttä",
  "admin/checkout-ui.layout.hideEmailStep.label": "Piilota sähköpostivaihe",
  "admin/checkout-ui.layout.customAddressForm.label": "Google-osoitelomakkeen muoto",
  "admin/checkout-ui.layout.fontSize.label": "Tekstin koko: ",
  "admin/checkout-ui.layout.borderRadius.label": "Reunan toimintasäde: ",
  "admin/checkout-ui.layout.btnBorderRadius.label": "Painikkeen reunan toimintasäde: ",
  "admin/checkout-ui.layout.inputHeight.label": "Tekstikenttien korkeus:",
  "admin/checkout-ui.layout.maxWrapper.label": "Wrapperin maksimileveys",
  "admin/checkout-ui.layout.bordersContainers.label": "Säilön reuna",
  "admin/checkout-ui.layout.fontFamily.label": "Fonttiperhe"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/ja-JP.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.title": "UI カスタムをチェックアウト",
  "admin/checkout-ui.update-warning": "このアプリはアップデートされています。公開をクリックし、チェックアウトに最新の修正を適用してください。",
  "admin/checkout-ui.permission-warning":"公開する権限がありません",
  "admin/checkout-ui.permission-tooltip":"必要な役割：「SaveOrderFormConfiguration」",
  "admin/checkout-ui.navigation.title": "UI カスタムをチェックアウト",
  "admin/checkout-ui.tab.layout": "レイアウト",
  "admin/checkout-ui.tab.colors": "色",
  "admin/checkout-ui.tab.javascript": "JavaScript",
  "admin/checkout-ui.tab.javascript.label": "カスタム Javascript",
  "admin/checkout-ui.tab.javascript.helper": "// こちらで加えた変更は売上に影響を与えることがあります",
  "admin/checkout-ui.tab.css": "CSS",
  "admin/checkout-ui.tab.css.label": "カスタム CSS",
  "admin/checkout-ui.tab.css.helper": "/* こちらで加えた変更は売上に影響を与えることがあります */",
  "admin/checkout-ui.tab.history": "履歴",
  "admin/checkout-ui.button.publish": "公開する",
  "admin/checkout-ui.message.publishing": "公開先",
  "admin/checkout-ui.message.published": "公開先",
  "admin/checkout-ui.publish.warning": "本番ワークスペースを公開しています。こちらで加えた変更は売上に影響を与えることがあることにご注意ください",
  "admin/checkout-ui.publish.confirm": "進む",
  "admin/checkout-ui.publish.cancel": "キャンセル",
  "admin/checkout-ui.toggle.active": "アクティブ",
  "admin/checkout-ui.history.label.email": "Eメール",
  "admin/checkout-ui.history.label.workspace": "ワークスペース",
  "admin/checkout-ui.history.label.version": "アプリバージョン",
  "admin/checkout-ui.history.label.date": "作成日",
  "admin/checkout-ui.history.button.load": "読み込む",
  "admin/checkout-ui.history.help.appversion": "現在のアプリのバージョン:",
  "admin/checkout-ui.color.base": "ベース",
  "admin/checkout-ui.color.baseInverted": "反転ベース",
  "admin/checkout-ui.color.actionPrimary": "アクションプライマリ",
  "admin/checkout-ui.color.actionPrimaryDarken": "強いアクションプライマリ",
  "admin/checkout-ui.color.actionSecondary": "アクションセカンダリ",
  "admin/checkout-ui.color.emphasis": "強調",
  "admin/checkout-ui.color.disabled": "無効になっている",
  "admin/checkout-ui.color.success": "成功",
  "admin/checkout-ui.color.successDarken": "強い成功",
  "admin/checkout-ui.color.successFaded": "弱い成功",
  "admin/checkout-ui.color.danger": "危険",
  "admin/checkout-ui.color.dangerFaded": "弱い危険",
  "admin/checkout-ui.color.warning": "警告",
  "admin/checkout-ui.color.warningFaded": "弱い警告",
  "admin/checkout-ui.color.muted1": "ミュート1",
  "admin/checkout-ui.color.muted2": "ミュート2",
  "admin/checkout-ui.color.muted3": "ミュート3",
  "admin/checkout-ui.color.muted4": "ミュート4",
  "admin/checkout-ui.color.muted5": "ミュート5",
  "admin/checkout-ui.color.muted6": "ミュート6",
  "admin/checkout-ui.layout.preview.title": "プレビュー",
  "admin/checkout-ui.layout.preview.sample": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean finibus malesuada nisi, sit amet egestas magna vestibulum eget. Maecenas tempus sollicitudin enim quis semper",
  "admin/checkout-ui.layout.preview.button": "ボタン",
  "admin/checkout-ui.layout.accordionPayments.label": "支払い方法をアコーディオンとして表示",
  "admin/checkout-ui.layout.accordionPayments.help": "支払い方法を拡張可能なセクションで表示します。無効の場合、支払い方法はタブで表示されます。",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "発送日のシンプル表示",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "配送予定日と曜日を表示します。無効の場合、お届け予定日までの時間は「最大 X 営業日」と表示されます。",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "アイテムの行合計額を表示",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "数量セレクタの隣に、行の合計額 (単価 x 数量) を表示します。無効の場合、単価が表示されます。",
  "admin/checkout-ui.layout.showNoteField.label": "「備考」欄を表示",
  "admin/checkout-ui.layout.hideEmailStep.label": "Eメールステップを非表示",
  "admin/checkout-ui.layout.customAddressForm.label": "Google アドレスフォームフォーマット",
  "admin/checkout-ui.layout.fontSize.label": "テキストサイズ: ",
  "admin/checkout-ui.layout.borderRadius.label": "ボーダーレイジアス: ",
  "admin/checkout-ui.layout.btnBorderRadius.label": "ボタンボーダーレイジアス: ",
  "admin/checkout-ui.layout.inputHeight.label": "テキストフィールド高:",
  "admin/checkout-ui.layout.maxWrapper.label": "最大ラッパー幅",
  "admin/checkout-ui.layout.bordersContainers.label": "コンテナのボーダー",
  "admin/checkout-ui.layout.fontFamily.label": "フォントファミリー"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/pt.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.title": "Interface personalizada do checkout",
  "admin/checkout-ui.update-warning": "Este app foi atualizado. Clique em PUBLICAR para aplicar as últimas correções ao seu checkout.",
  "admin/checkout-ui.permission-warning":"Você não tem permissão para publicar",
  "admin/checkout-ui.permission-tooltip":"Permissão necessária: 'SaveOrderFormConfiguration'",
  "admin/checkout-ui.navigation.title": "Interface personalizada do checkout",
  "admin/checkout-ui.tab.layout": "Interface",
  "admin/checkout-ui.tab.colors": "Cores",
  "admin/checkout-ui.tab.javascript": "JavaScript",
  "admin/checkout-ui.tab.javascript.label": "JavaScript personalizado",
  "admin/checkout-ui.tab.javascript.helper": "// As alterações feitas aqui podem impactar suas vendas",
  "admin/checkout-ui.tab.css": "CSS",
  "admin/checkout-ui.tab.css.label": "CSS avançado",
  "admin/checkout-ui.tab.css.helper": "/* As alterações feitas aqui podem impactar suas vendas */",
  "admin/checkout-ui.tab.history": "Histórico",
  "admin/checkout-ui.button.publish": "Publicar",
  "admin/checkout-ui.message.publishing": "Publicando em",
  "admin/checkout-ui.message.published": "Publicado em",
  "admin/checkout-ui.publish.warning": "Você está publicando em um workspace de PRODUÇÃO. As alterações realizadas aqui podem impactar suas vendas.",
  "admin/checkout-ui.publish.confirm": "Continuar",
  "admin/checkout-ui.publish.cancel": "Cancelar",
  "admin/checkout-ui.toggle.active": "Ativo",
  "admin/checkout-ui.history.label.email": "Email",
  "admin/checkout-ui.history.label.workspace": "Workspace",
  "admin/checkout-ui.history.label.version": "Versão",
  "admin/checkout-ui.history.label.date": "Data de criação",
  "admin/checkout-ui.history.button.load": "Carregar",
  "admin/checkout-ui.history.help.appversion": "Versão atual do app:",
  "admin/checkout-ui.color.base": "Base",
  "admin/checkout-ui.color.baseInverted": "Base invertida",
  "admin/checkout-ui.color.actionPrimary": "Ação primária",
  "admin/checkout-ui.color.actionPrimaryDarken": "Ação primária escura",
  "admin/checkout-ui.color.actionSecondary": "Ação secundária",
  "admin/checkout-ui.color.emphasis": "Ênfase",
  "admin/checkout-ui.color.disabled": "Desabilitado",
  "admin/checkout-ui.color.success": "Sucesso",
  "admin/checkout-ui.color.successDarken": "Sucesso escuro",
  "admin/checkout-ui.color.successFaded": "Sucesso apagado",
  "admin/checkout-ui.color.danger": "Perigo",
  "admin/checkout-ui.color.dangerFaded": "Perigo apagado",
  "admin/checkout-ui.color.warning": "Atenção",
  "admin/checkout-ui.color.warningFaded": "Atenção apagado",
  "admin/checkout-ui.color.muted1": "Apagado 1",
  "admin/checkout-ui.color.muted2": "Apagado 2",
  "admin/checkout-ui.color.muted3": "Apagado 3",
  "admin/checkout-ui.color.muted4": "Apagado 4",
  "admin/checkout-ui.color.muted5": "Apagado 5",
  "admin/checkout-ui.color.muted6": "Apagado 6",
  "admin/checkout-ui.layout.preview.title": "Pré-visualização",
  "admin/checkout-ui.layout.preview.sample": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean finibus malesuada nisi, sit amet egestas magna vestibulum eget. Maecenas tempus sollicitudin enim quis semper",
  "admin/checkout-ui.layout.preview.button": "Botão",
  "admin/checkout-ui.layout.accordionPayments.label": "Mostrar meios de pagamento no estilo accordion (sanfona)",
  "admin/checkout-ui.layout.accordionPayments.help": "Exibe meios de pagamento como seções expansíveis. Se desativado, os meios de pagamento serão exibidos em formato de guias.",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "Mostrar data de entrega simplificada",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "Exibe o dia e a data de entrega estimados. Se desativado, o tempo estimado de entrega será exibido no formato \"Em até X dias úteis\".",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "Mostrar linha com valor total",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "Exibe o valor total do produto (preço unitário x quantidade) ao lado do seletor de quantidade. Se desativado, somente o preço unitário será exibido.",
  "admin/checkout-ui.layout.showNoteField.label": "Mostrar campo de comentários",
  "admin/checkout-ui.layout.hideEmailStep.label": "Ocultar a etapa de email",
  "admin/checkout-ui.layout.customAddressForm.label": "Formulário de endereço do Google",
  "admin/checkout-ui.layout.fontSize.label": "Tamanho do texto: ",
  "admin/checkout-ui.layout.borderRadius.label": "Arredondamento da borda: ",
  "admin/checkout-ui.layout.btnBorderRadius.label": "Arredondamento da borda do botão: ",
  "admin/checkout-ui.layout.inputHeight.label": "Altura do campo de texto:",
  "admin/checkout-ui.layout.maxWrapper.label": "Largura máxima do conteúdo",
  "admin/checkout-ui.layout.bordersContainers.label": "Borda do conteúdo",
  "admin/checkout-ui.layout.fontFamily.label": "Família de fontes"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/en.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.title": "Checkout UI Custom",
  "admin/checkout-ui.update-warning": "This app has been updated. Please click PUBLISH to apply the latest fixes to your checkout.",
  "admin/checkout-ui.permission-warning":"You don't have permission to publish",
  "admin/checkout-ui.permission-tooltip":"Required permission: 'SaveOrderFormConfiguration'",
  "admin/checkout-ui.navigation.title": "Checkout UI Custom",
  "admin/checkout-ui.tab.layout": "Layout",
  "admin/checkout-ui.tab.colors": "Colors",
  "admin/checkout-ui.tab.javascript": "JavaScript",
  "admin/checkout-ui.tab.javascript.label": "Custom JavaScript",
  "admin/checkout-ui.tab.javascript.helper": "// Changes here may impact your sales",
  "admin/checkout-ui.tab.css": "CSS",
  "admin/checkout-ui.tab.css.label": "Custom CSS",
  "admin/checkout-ui.tab.css.helper": "/* Changes here may impact your sales */",
  "admin/checkout-ui.tab.history": "History",
  "admin/checkout-ui.button.publish": "Publish",
  "admin/checkout-ui.message.publishing": "Publishing to",
  "admin/checkout-ui.message.published": "Published to",
  "admin/checkout-ui.publish.warning": "You're publishing to a PRODUCTION workspace. Note that changes here may impact your sales.",
  "admin/checkout-ui.publish.confirm": "Proceed",
  "admin/checkout-ui.publish.cancel": "Cancel",
  "admin/checkout-ui.toggle.active": "Active",
  "admin/checkout-ui.history.label.email": "Email",
  "admin/checkout-ui.history.label.workspace": "Workspace",
  "admin/checkout-ui.history.label.version": "App Version",
  "admin/checkout-ui.history.label.date": "Created Date",
  "admin/checkout-ui.history.button.load": "Load",
  "admin/checkout-ui.history.help.appversion": "Current app version:",
  "admin/checkout-ui.color.base": "Base",
  "admin/checkout-ui.color.baseInverted": "Inverted base",
  "admin/checkout-ui.color.actionPrimary": "Action primary",
  "admin/checkout-ui.color.actionPrimaryDarken": "Action primary darker",
  "admin/checkout-ui.color.actionSecondary": "Action secondary",
  "admin/checkout-ui.color.emphasis": "Emphasis",
  "admin/checkout-ui.color.disabled": "Disabled",
  "admin/checkout-ui.color.success": "Success",
  "admin/checkout-ui.color.successDarken": "Success darker",
  "admin/checkout-ui.color.successFaded": "Success faded",
  "admin/checkout-ui.color.danger": "Danger",
  "admin/checkout-ui.color.dangerFaded": "Danger faded",
  "admin/checkout-ui.color.warning": "Warning",
  "admin/checkout-ui.color.warningFaded": "Warning faded",
  "admin/checkout-ui.color.muted1": "Muted 1",
  "admin/checkout-ui.color.muted2": "Muted 2",
  "admin/checkout-ui.color.muted3": "Muted 3",
  "admin/checkout-ui.color.muted4": "Muted 4",
  "admin/checkout-ui.color.muted5": "Muted 5",
  "admin/checkout-ui.color.muted6": "Muted 6",
  "admin/checkout-ui.layout.preview.title": "Preview",
  "admin/checkout-ui.layout.preview.sample": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean finibus malesuada nisi, sit amet egestas magna vestibulum eget. Maecenas tempus sollicitudin enim quis semper",
  "admin/checkout-ui.layout.preview.button": "Button",
  "admin/checkout-ui.layout.accordionPayments.label": "Show payment methods as accordion",
  "admin/checkout-ui.layout.accordionPayments.help": "Display payment methods as expandable sections. If disabled, payment methods are displayed as tabs.",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "Show simplified shipping date",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "Display the estimated delivery day and date. If disabled, the estimated delivery time is shown as \"Up to X business days\".",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "Show item line total",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "Display the line total (unit price x quantity) next to the quantity selector. If disabled, only the unit price is shown.",
  "admin/checkout-ui.layout.showNoteField.label": "Show notes field",
  "admin/checkout-ui.layout.hideEmailStep.label": "Hide email step",
  "admin/checkout-ui.layout.customAddressForm.label": "Google address form",
  "admin/checkout-ui.layout.fontSize.label": "Text size: ",
  "admin/checkout-ui.layout.borderRadius.label": "Border radius: ",
  "admin/checkout-ui.layout.btnBorderRadius.label": "Button border radius: ",
  "admin/checkout-ui.layout.inputHeight.label": "Text field height:",
  "admin/checkout-ui.layout.maxWrapper.label": "Max wrapper width",
  "admin/checkout-ui.layout.bordersContainers.label": "Container border",
  "admin/checkout-ui.layout.fontFamily.label": "Font family"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/it.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.title": "Interfaccia personalizzata del checkout",
  "admin/checkout-ui.update-warning": "Questa app è stata aggiornata. Clicca su \"PUBBLICA\" per applicare le ultime correzioni al tuo checkout.",
  "admin/checkout-ui.permission-warning":"Non hai l'autorizzazione per pubblicare",
  "admin/checkout-ui.permission-tooltip":"Ruolo richiesto: 'SaveOrderFormConfiguration'",
  "admin/checkout-ui.navigation.title": "Interfaccia personalizzata del checkout",
  "admin/checkout-ui.tab.layout": "Layout",
  "admin/checkout-ui.tab.colors": "Colori",
  "admin/checkout-ui.tab.javascript": "JavaScript",
  "admin/checkout-ui.tab.javascript.label": "JavaScript personalizzato",
  "admin/checkout-ui.tab.javascript.helper": "// Le modifiche apportate qui possono avere un impatto sulle tue vendite",
  "admin/checkout-ui.tab.css": "CSS",
  "admin/checkout-ui.tab.css.label": "CSS personalizzato",
  "admin/checkout-ui.tab.css.helper": "/* Le modifiche apportate qui possono avere un impatto sulle tue vendite */",
  "admin/checkout-ui.tab.history": "Cronologia",
  "admin/checkout-ui.button.publish": "Pubblica",
  "admin/checkout-ui.message.publishing": "In pubblicazione su",
  "admin/checkout-ui.message.published": "Pubblicato su",
  "admin/checkout-ui.publish.warning": "Stai pubblicando su un'area di lavoro in PRODUZIONE. Tieni presente che le modifiche apportate qui potrebbero avere un impatto sulle tue vendite.",
  "admin/checkout-ui.publish.confirm": "Prosegui",
  "admin/checkout-ui.publish.cancel": "Annulla",
  "admin/checkout-ui.toggle.active": "Attivo",
  "admin/checkout-ui.history.label.email": "Email",
  "admin/checkout-ui.history.label.workspace": "Area di lavoro",
  "admin/checkout-ui.history.label.version": "Versione",
  "admin/checkout-ui.history.label.date": "Data di creazione",
  "admin/checkout-ui.history.button.load": "Carica",
  "admin/checkout-ui.history.help.appversion": "Versione attuale dell'app:",
  "admin/checkout-ui.color.base": "Base",
  "admin/checkout-ui.color.baseInverted": "Base invertita",
  "admin/checkout-ui.color.actionPrimary": "Azione primaria",
  "admin/checkout-ui.color.actionPrimaryDarken": "Azione primaria più scura",
  "admin/checkout-ui.color.actionSecondary": "Azione secondaria",
  "admin/checkout-ui.color.emphasis": "Enfasi",
  "admin/checkout-ui.color.disabled": "Disabilitato",
  "admin/checkout-ui.color.success": "Operazione riuscita",
  "admin/checkout-ui.color.successDarken": "Operazione riuscita più scuro",
  "admin/checkout-ui.color.successFaded": "Operazione riuscita più chiaro",
  "admin/checkout-ui.color.danger": "Errore",
  "admin/checkout-ui.color.dangerFaded": "Errore più chiaro",
  "admin/checkout-ui.color.warning": "Avviso",
  "admin/checkout-ui.color.warningFaded": "Avviso più chiaro",
  "admin/checkout-ui.color.muted1": "Tenue 1",
  "admin/checkout-ui.color.muted2": "Tenue 2",
  "admin/checkout-ui.color.muted3": "Tenue 3",
  "admin/checkout-ui.color.muted4": "Tenue 4",
  "admin/checkout-ui.color.muted5": "Muto 5",
  "admin/checkout-ui.color.muted6": "Tenue 6",
  "admin/checkout-ui.layout.preview.title": "Anteprima",
  "admin/checkout-ui.layout.preview.sample": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean finibus malesuada nisi, sit amet egestas magna vestibulum eget. Maecenas tempus sollicitudin enim quis semper",
  "admin/checkout-ui.layout.preview.button": "Tasto",
  "admin/checkout-ui.layout.accordionPayments.label": "Mostra i metodi di pagamento in modalità accordion",
  "admin/checkout-ui.layout.accordionPayments.help": "Visualizza i metodi di pagamento come sezioni espandibili. Se questa funzionalità viene disabilitata, i metodi di pagamento verranno visualizzati come schede.",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "Mostra la data di consegna semplificata",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "Mostra il giorno e la data di consegna stimati. Se questa funzionalità viene disabilitata, il periodo di consegna stimato è mostrato come \"entro X giorni lavorativi\".",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "Mostra il valore totale dell'articolo",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "Mostra il valore totale dell'articolo (prezzo unitario x quantità) accanto al selettore di quantità. Se questa funzionalità viene disabilitata, verrà visualizzato solo il prezzo unitario.",
  "admin/checkout-ui.layout.showNoteField.label": "Mostra il campo 'Note'",
  "admin/checkout-ui.layout.hideEmailStep.label": "Nascondi step dell'email",
  "admin/checkout-ui.layout.customAddressForm.label": "Modulo dell'indirizzo di Google",
  "admin/checkout-ui.layout.fontSize.label": "Dimensione del testo: ",
  "admin/checkout-ui.layout.borderRadius.label": "Raggio del bordo: ",
  "admin/checkout-ui.layout.btnBorderRadius.label": "Raggio del bordo del tasto: ",
  "admin/checkout-ui.layout.inputHeight.label": "Altezza del campo di testo:",
  "admin/checkout-ui.layout.maxWrapper.label": "Larghezza massima del contenuto",
  "admin/checkout-ui.layout.bordersContainers.label": "Bordo del contenuto",
  "admin/checkout-ui.layout.fontFamily.label": "Famiglia del tipo di carattere"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/ro-RO.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.title": "Personalizare Checkout UI",
  "admin/checkout-ui.update-warning": "Această aplicație a fost actualizată. Te rugăm să apeși pe PUBLICĂ pentru a aplica cele mai recente remedieri la finalizarea comenzii tale.",
  "admin/checkout-ui.permission-warning":"Nu ai permisiunea să publici",
  "admin/checkout-ui.permission-tooltip":"Rol necesar: „SaveOrderFormConfiguration”",
  "admin/checkout-ui.navigation.title": "Personalizare Checkout UI",
  "admin/checkout-ui.tab.layout": "Mod de afișare",
  "admin/checkout-ui.tab.colors": "Culori",
  "admin/checkout-ui.tab.javascript": "JavaScript",
  "admin/checkout-ui.tab.javascript.label": "JavaScript Personalizat",
  "admin/checkout-ui.tab.javascript.helper": "// Modificările aici pot avea impact asupra vânzărilor tale",
  "admin/checkout-ui.tab.css": "CSS",
  "admin/checkout-ui.tab.css.label": "Personalizează CSS",
  "admin/checkout-ui.tab.css.helper": "/* Modificările aici pot avea impact asupra vânzărilor tale */",
  "admin/checkout-ui.tab.history": "Istoric",
  "admin/checkout-ui.button.publish": "Publică",
  "admin/checkout-ui.message.publishing": "Se publică în",
  "admin/checkout-ui.message.published": "Publicat în",
  "admin/checkout-ui.publish.warning": "Urmează să publici într-un spațiu de lucru de PRODUCȚIE, te rugăm să reții că modificările de aici pot avea impact asupra vânzărilor tale.",
  "admin/checkout-ui.publish.confirm": "Continuă",
  "admin/checkout-ui.publish.cancel": "Anulează",
  "admin/checkout-ui.toggle.active": "Activ",
  "admin/checkout-ui.history.label.email": "E-mail",
  "admin/checkout-ui.history.label.workspace": "Spațiu de lucru",
  "admin/checkout-ui.history.label.version": "Versiune aplicaţie",
  "admin/checkout-ui.history.label.date": "Data creării",
  "admin/checkout-ui.history.button.load": "Încărcătură",
  "admin/checkout-ui.history.help.appversion": "Versiune aplicație actuală:",
  "admin/checkout-ui.color.base": "Bază",
  "admin/checkout-ui.color.baseInverted": "Bază inversată",
  "admin/checkout-ui.color.actionPrimary": "Acțiune primară",
  "admin/checkout-ui.color.actionPrimaryDarken": "Acțiune primară mai întunecată",
  "admin/checkout-ui.color.actionSecondary": "Acțiune secundară",
  "admin/checkout-ui.color.emphasis": "Accent",
  "admin/checkout-ui.color.disabled": "Dezactivat",
  "admin/checkout-ui.color.success": "Succes",
  "admin/checkout-ui.color.successDarken": "Succes mai întunecat",
  "admin/checkout-ui.color.successFaded": "Succes estompat",
  "admin/checkout-ui.color.danger": "Pericol",
  "admin/checkout-ui.color.dangerFaded": "Pericol dispărut",
  "admin/checkout-ui.color.warning": "Atenție",
  "admin/checkout-ui.color.warningFaded": "Atenționare dispărută",
  "admin/checkout-ui.color.muted1": "Fără sonor 1",
  "admin/checkout-ui.color.muted2": "Fără sonor 2",
  "admin/checkout-ui.color.muted3": "Fără sonor 3",
  "admin/checkout-ui.color.muted4": "Fără sonor 4",
  "admin/checkout-ui.color.muted5": "Fără sonor 5",
  "admin/checkout-ui.color.muted6": "Fără sonor 6",
  "admin/checkout-ui.layout.preview.title": "Previzualizare",
  "admin/checkout-ui.layout.preview.sample": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean finibus malesuada nisi, sit amet egestas magna vestibulum eget. Maecenas tempus sollicitudin enim quis semper",
  "admin/checkout-ui.layout.preview.button": "Buton",
  "admin/checkout-ui.layout.accordionPayments.label": "Arată metodele de plată sub formă de acordeon",
  "admin/checkout-ui.layout.accordionPayments.help": "Afișează metodele de plată ca secțiuni extensibile. Dacă este dezactivat, metodele de plată sunt afișate ca tab-uri.",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "Arată dată de expediere simplificată",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "Afișează data și ziua estimată a livrării. Dacă este dezactivat, se afișează intervalul de timp estimat al livrării ca „Până la X zile lucrătoare”.",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "Arată valoarea totală a produsului",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "Afișează totalul liniei (preț unitar x cantitate) lângă selectorul de cantitate. Dacă este dezactivat, se afișează doar prețul unitar.",
  "admin/checkout-ui.layout.showNoteField.label": "Arată câmpul de observați",
  "admin/checkout-ui.layout.hideEmailStep.label": "Ascunde pasul cu e-mail",
  "admin/checkout-ui.layout.customAddressForm.label": "Formular Adrese Google",
  "admin/checkout-ui.layout.fontSize.label": "Dimensiune text: ",
  "admin/checkout-ui.layout.borderRadius.label": "Rază margine: ",
  "admin/checkout-ui.layout.btnBorderRadius.label": "Rază margine buton: ",
  "admin/checkout-ui.layout.inputHeight.label": "Înălțime câmpuri de text:",
  "admin/checkout-ui.layout.maxWrapper.label": "Lățime maximă wrapper",
  "admin/checkout-ui.layout.bordersContainers.label": "Marginea containerului",
  "admin/checkout-ui.layout.fontFamily.label": "Familie de fonturi"
}

```


[System] You are an expert VTEX IO developer. You specialize in building VTEX Store Framework apps, React components, GraphQL APIs, and Node.js services for e-commerce platforms.

[User] Show me the implementation of checkout-ui-custom/messages/context.json from the checkout-ui-custom VTEX app.

[Assistant]
Here's the implementation:

```json
{
  "admin/checkout-ui.navigation.title": "admin/checkout-ui.navigation.title",
  "admin/checkout-ui.title": "admin/checkout-ui.title",
  "admin/checkout-ui.update-warning": "admin/checkout-ui.update-warning",
  "admin/checkout-ui.permission-warning": "admin/checkout-ui.permission-warning",
  "admin/checkout-ui.permission-tooltip": "admin/checkout-ui.permission-tooltip",
  "admin/checkout-ui.tab.layout": "admin/checkout-ui.tab.layout",
  "admin/checkout-ui.tab.colors": "admin/checkout-ui.tab.colors",
  "admin/checkout-ui.tab.javascript": "admin/checkout-ui.tab.javascript",
  "admin/checkout-ui.tab.javascript.label": "admin/checkout-ui.tab.javascript.label",
  "admin/checkout-ui.tab.javascript.helper": "//admin/checkout-ui.tab.javascript.helper",
  "admin/checkout-ui.tab.css": "admin/checkout-ui.tab.css",
  "admin/checkout-ui.tab.css.label": "admin/checkout-ui.tab.css.label",
  "admin/checkout-ui.tab.css.helper": "/*admin/checkout-ui.tab.css.helper */",
  "admin/checkout-ui.tab.history": "admin/checkout-ui.tab.history",
  "admin/checkout-ui.button.publish": "admin/checkout-ui.button.publish",
  "admin/checkout-ui.message.publishing": "admin/checkout-ui.message.publishing",
  "admin/checkout-ui.message.published": "admin/checkout-ui.message.published",
  "admin/checkout-ui.publish.warning": "admin/checkout-ui.publish.warning",
  "admin/checkout-ui.publish.confirm": "admin/checkout-ui.publish.confirm",
  "admin/checkout-ui.publish.cancel": "admin/checkout-ui.publish.cancel",
  "admin/checkout-ui.toggle.active": "admin/checkout-ui.toggle.active",
  "admin/checkout-ui.history.label.email": "admin/checkout-ui.history.label.email",
  "admin/checkout-ui.history.label.workspace": "admin/checkout-ui.history.label.workspace",
  "admin/checkout-ui.history.label.version": "admin/checkout-ui.history.label.version",
  "admin/checkout-ui.history.label.date": "admin/checkout-ui.history.label.date",
  "admin/checkout-ui.history.button.load": "admin/checkout-ui.history.button.load",
  "admin/checkout-ui.history.help.appversion": "admin/checkout-ui.history.help.appversion",
  "admin/checkout-ui.color.base": "admin/checkout-ui.color.base",
  "admin/checkout-ui.color.baseInverted": "admin/checkout-ui.color.baseInverted",
  "admin/checkout-ui.color.actionPrimary": "admin/checkout-ui.color.actionPrimary",
  "admin/checkout-ui.color.actionPrimaryDarken": "admin/checkout-ui.color.actionPrimaryDarken",
  "admin/checkout-ui.color.actionSecondary": "admin/checkout-ui.color.actionSecondary",
  "admin/checkout-ui.color.emphasis": "admin/checkout-ui.color.emphasis",
  "admin/checkout-ui.color.disabled": "admin/checkout-ui.color.disabled",
  "admin/checkout-ui.color.success": "admin/checkout-ui.color.success",
  "admin/checkout-ui.color.successDarken": "admin/checkout-ui.color.successDarken",
  "admin/checkout-ui.color.successFaded": "admin/checkout-ui.color.successFaded",
  "admin/checkout-ui.color.danger": "admin/checkout-ui.color.danger",
  "admin/checkout-ui.color.dangerFaded": "admin/checkout-ui.color.dangerFaded",
  "admin/checkout-ui.color.warning": "admin/checkout-ui.color.warning",
  "admin/checkout-ui.color.warningFaded": "admin/checkout-ui.color.warningFaded",
  "admin/checkout-ui.color.muted1": "admin/checkout-ui.color.muted1",
  "admin/checkout-ui.color.muted2": "admin/checkout-ui.color.muted2",
  "admin/checkout-ui.color.muted3": "admin/checkout-ui.color.muted3",
  "admin/checkout-ui.color.muted4": "admin/checkout-ui.color.muted4",
  "admin/checkout-ui.color.muted5": "admin/checkout-ui.color.muted5",
  "admin/checkout-ui.color.muted6": "admin/checkout-ui.color.muted6",
  "admin/checkout-ui.layout.preview.title": "admin/checkout-ui.layout.preview.title",
  "admin/checkout-ui.layout.preview.sample": "admin/checkout-ui.layout.preview.sample",
  "admin/checkout-ui.layout.preview.button": "admin/checkout-ui.layout.preview.button",
  "admin/checkout-ui.layout.accordionPayments.label": "admin/checkout-ui.layout.accordionPayments.label",
  "admin/checkout-ui.layout.accordionPayments.help": "admin/checkout-ui.layout.accordionPayments.help",
  "admin/checkout-ui.layout.deliveryDateFormat.label": "admin/checkout-ui.layout.deliveryDateFormat.label",
  "admin/checkout-ui.layout.showCartQuantityPrice.label": "admin/checkout-ui.layout.showCartQuantityPrice.label",
  "admin/checkout-ui.layout.showNoteField.label": "admin/checkout-ui.layout.showNoteField.label",
  "admin/checkout-ui.layout.hideEmailStep.label": "admin/checkout-ui.layout.hideEmailStep.label",
  "admin/checkout-ui.layout.customAddressForm.label": "admin/checkout-ui.layout.customAddressForm.label",
  "admin/checkout-ui.layout.fontSize.label": "admin/checkout-ui.layout.fontSize.label",
  "admin/checkout-ui.layout.borderRadius.label": "admin/checkout-ui.layout.borderRadius.label",
  "admin/checkout-ui.layout.btnBorderRadius.label": "admin/checkout-ui.layout.btnBorderRadius.label",
  "admin/checkout-ui.layout.inputHeight.label": "admin/checkout-ui.layout.inputHeight.label",
  "admin/checkout-ui.layout.maxWrapper.label": "admin/checkout-ui.layout.maxWrapper.label",
  "admin/checkout-ui.layout.bordersContainers.label": "admin/checkout-ui.layout.bordersContainers.label",
  "admin/checkout-ui.layout.fontFamily.label": "admin/checkout-ui.layout.fontFamily.label",
  "admin/checkout-ui.layout.deliveryDateFormat.help": "admin/checkout-ui.layout.deliveryDateFormat.help",
  "admin/checkout-ui.layout.showCartQuantityPrice.help": "admin/checkout-ui.layout.showCartQuantityPrice.help"
}

```