# useTranslate
Returns the `I18nTranslate` interface used to translate strings.
```jsx
/* See the locales/en.default.json tab for the translation keys and values for this example */
import React from 'react';
import {
render,
Text,
useTranslate,
} from '@shopify/checkout-ui-extensions-react';
render('Checkout::Dynamic::Render', () => (
));
function Extension() {
const translate = useTranslate();
return (
{translate('welcomeMessage')}
);
}
```
```json
{
"welcomeMessage": "Welcome to our store!"
}
```
##
### UseTranslateGeneratedType
Returns the `I18nTranslate` interface used to translate strings.
#### Returns: I18nTranslate
export function useTranslate<
ID extends RenderExtensionPoint = RenderExtensionPoint,
>(): I18nTranslate {
const {i18n} = useApi();
const translate = useCallback(
(...args) => {
const translation = i18n.translate(...args);
if (!Array.isArray(translation)) {
return translation as any;
}
return translation.map((part, index) => {
if (isValidElement(part)) {
// eslint-disable-next-line react/no-array-index-key
return cloneElement(part as RemoteComponentType, {key: index});
}
return part;
});
},
[i18n],
);
return translate;
}
## Related
- [StandardApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/standardapi)
- [CheckoutApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/checkoutapi)
- [OrderStatusApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/orderstatusapi)
- [CartLineDetailsApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/cartlinedetailsapi)
- [PickupPointsApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/pickuppointsapi)
- [PickupLocationsApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/pickuplocationsapi)
- [ShippingMethodDetailsApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/shippingmethoddetailsapi)
- [ExtensionPoints](https://shopify.dev/docs/api/checkout-ui-extensions/apis/extensionpoints)
## Examples
Returns the `I18nTranslate` interface used to translate strings.
You can use the `count` option to get a pluralized string based on the current locale.
See [localizing UI extensions](https://shopify.dev/docs/apps/checkout/best-practices/localizing-ui-extensions) for more information.
```jsx
/* See the locales/en.default.json tab for the translation keys and values for this example */
import React from 'react';
import {
render,
Banner,
useExtensionApi,
useTranslate,
} from '@shopify/checkout-ui-extensions-react';
render('Checkout::Dynamic::Render', () => (
));
function Extension() {
const {i18n} = useExtensionApi();
const translate = useTranslate();
const points = 10000;
const formattedPoints =
i18n.formatNumber(points);
// Translate the loyalty points message, using pluralization to differentiate messages
const loyaltyPointsMsg = translate(
'loyaltyPoints',
{
count: points,
formattedPoints,
},
);
return ;
}
```
```json
{
"loyaltyPoints": {
"one": "You have {{formattedPoints}} loyalty point",
"other": "You have {{formattedPoints}} loyalty points"
}
}
```