# General Translation React SDKs (gt-react, gt-next, gt-react-native): InlineTranslationOptions
URL: https://generaltranslation.com/zh/docs/react/reference/types/inline-translation-options.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 用于向内联字符串翻译传递变量和元数据的选项。InlineTranslationOptions 的 API 参考。

`InlineTranslationOptions` 是用于内联字符串翻译的选项对象。它包含 插值 变量，以及上下文和标识符等元数据。[`useGT`](/docs/react/reference/hooks/use-gt) 和 [`msg`](/docs/react/reference/functions/msg) 都接受此对象。

*这些选项适用于所有提供 [`useGT`](/docs/react/reference/hooks/use-gt) 和 [`msg`](/docs/react/reference/functions/msg) 的地方——`gt-react`、`gt-next`、`gt-tanstack-start` 和 `gt-react-native`。名为 `GTTranslationOptions` 的类型由 `gt-react`、`gt-next` 和 `gt-react-native` 导出；`gt-tanstack-start` 会重新导出这些函数，但不会重新导出该类型。*

## 概览 [#overview]

将插值变量直接作为普通键传入，翻译元数据则使用带有 `$` 前缀的键传入。

```typescript
type InlineTranslationOptions = {
  [variable: string]: unknown; // 插值变量
  $context?: string;
  $id?: string;
  $format?: string;
  $locale?: string;
  $maxChars?: number;
  $requiresReview?: boolean;
};
```

*注意：在 `gt-react` v11 中，此选项对象对应导出的 `GTTranslationOptions` 类型。变量会插入译文中，但其本身永远不会被翻译。*

## 属性 [#properties]

| 属性                                    | 描述                            | 类型                        |
| ------------------------------------- | ----------------------------- | ------------------------- |
| [`variables`](#variables)             | 按名称键控的插值值。                    | `Record<string, unknown>` |
| [`$context`](#context)                | 供译者消除歧义的上下文。                  | `string`                  |
| [`$id`](#id)                          | Translation Editor 中条目的稳定标识符。 | `string`                  |
| [`$format`](#format)                  | 消息的数据格式 (例如 ICU、STRING) 。     | `string`                  |
| [`$locale`](#locale)                  | 覆盖目标区域设置。                     | `string`                  |
| [`$maxChars`](#max-chars)             | 生成翻译请求的最大长度。                  | `number`                  |
| [`$requiresReview`](#requires-review) | 使用前必须经过人工审核。                  | `boolean`                 |

### `variables` [#variables]

**类型** `Record<string, unknown>`

任何非 `$` 的键都会被视为插值变量。可在字符串中使用 `{name}` 语法引用它；其值会直接插入翻译后的字符串中，不会再被翻译。

### `$context` [#context]

**类型** `string` · **可选**

用于细化翻译的上下文，可用于消除歧义。

### `$id` [#id]

**类型** `string` · **可选**

条目的稳定标识符，用于配合 Translation Editor 使用。

### `$format` [#format]

**类型** `string` · **可选** · **默认值** `ICU`

消息的数据格式 (例如 ICU、STRING) ，默认为 ICU。

### `$locale` [#locale]

**类型** `string` · **可选**

覆盖此翻译使用的目标区域设置。

### `$maxChars` [#max-chars]

**类型** `number` · **可选**

请求翻译工具使用正整数形式的最大字符数限制。当已加载的译文超过该限制时，字符串插值也会在运行时进行截断。

### `$requiresReview` [#requires-review]

**类型** `boolean` · **可选**

当为 `true` 时，该翻译会被标记为需经人工审核后才能使用。

## 示例 [#examples]

```tsx title="Component.tsx"
import { useGT } from 'gt-react';

const Component = () => {
  const gt = useGT();
  return <div>{gt('Hello, world!', { $context: 'a formal greeting' })}</div>;
};
```

```tsx title="Component.tsx"
import { useGT } from 'gt-react';

const Component = () => {
  const gt = useGT();
  return <div>{gt('Hello, {username}! How is your day?', { username: 'Brian123' })}</div>;
};
```

```tsx title="Component.tsx"
import { useGT } from 'gt-react';

// ICU message format 用于格式化变量
const Component = () => {
  const gt = useGT();
  return (
    <div>
      {gt('Your account balance: {dollars, number, ::currency/USD}!', { dollars: 1000000 })}
    </div>
  );
};
```

```tsx title="Component.tsx"
import { useGT } from 'gt-react';

const Component = () => {
  const gt = useGT();
  return <div>{gt('Welcome to our application', { $maxChars: 15 })}</div>;
};
```

`gt-react` 支持使用 [ICU message format](https://unicode-org.github.io/icu/userguide/format_parse/messages/) 对变量进行格式化。

## 注意事项 [#notes]

* `InlineTranslationOptions` 与 [`useGT`](/docs/react/reference/hooks/use-gt) 和 [`msg`](/docs/react/reference/functions/msg) 搭配使用。
* 关于字典查询，请参阅 [`DictionaryTranslationOptions`](/docs/react/reference/types/dictionary-translation-options)。

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
