',
optional: true,
default: 'undefined',
},
}}
/>
### Description
| Prop | Description |
| ---- | ----------- |
| `variables` | An object where the keys identify where each value is mapped to in the string.|
| `$locale` | Optionally include `$locale` as a variable in the `variables` object to specify a locale for the translation. Will default to browser's most preferred locale that is supported by your app. |
| `$maxChars` | Optionally include `$maxChars` as a variable to limit the character count of the translation. The library strictly enforces this limit using `formatCutoff()` logic. |
---
## Examples
### Passing variables
In order to add a variable to the string, we use the `{variable-name}` syntax, where curly braces wrap the name of the variable.
```jsx title="Component.tsx"
// [!code word:username]
import { tx } from 'gt-next/server';
const Component = () => {
return
{tx(`Hello, {username}!`,{ username: 'Brian123' })}
;
};
```
### Using ICU message format
`gt-next` supports ICU message format, which allows you to also format your variables.
```jsx title="Component.tsx"
// [!code word:account-balance]
import { tx } from 'gt-next/server';
const Component = () => {
return
{ tx(
'Your account balance: {dollars, number, ::currency/USD}!',
{
"dollars" : 1000000,
}
) }
;
};
```
### Translating variables
In order to translate a variable, include it directly in the string passed to `tx`.
```jsx title="Component.tsx"
import { tx } from 'gt-next/server';
const Component = ({ hairColor }: { hairColor: string }) => {
return {tx(
`Hello, {username}! Your haircolor is ${hairColor}`,
{ username: 'Brian123' }
)}
;
};
```
Note that the variable `hairColor` gets translated, but `username` does not.
### Specifying a locale
You can specify a locale to use for the translation.
```jsx title="Component.tsx"
import { tx } from 'gt-next/server';
const Component = () => {
return {tx('Hello, world!', { $locale: 'fr' })}
;
};
```
This will always be translated to french.
### Character limits
Use `$maxChars` to limit translation length:
```jsx title="Component.tsx"
// [!code word:$maxChars]
import { tx } from 'gt-next/server';
const Component = () => {
return {tx('Welcome to our application', { $maxChars: 15 })}
;
// Output: "Bienvenue à no\u202F…"
};
```
---
## Notes
* `RuntimeTranslationOptions` is used for string translations at runtime.
* The `variables` object passes values to the text.
* The `variablesOptions` object defines the behavior of the variables.
## Next steps
* See [`tx`](/docs/next/api/strings/tx) for more information on inline string translations.
* See [`ICU message format`](https://unicode-org.github.io/icu/userguide/format_parse/messages/) for more information on formatting options.