# Vue: CreateGTOptions
URL: https://generaltranslation.com/zh/docs/vue/reference/types/create-gt-options.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 配置独立 Vue 插件的初始区域设置、cookie 和目录加载器。CreateGTOptions API 参考。

将此对象传递给 [`createGT()`](/docs/vue/reference/functions/create-gt)。其字段适用于响应式客户端插件和请求范围内的服务器端插件。

## 概览 [#overview]

```ts
type CreateGTOptions = {
  customMapping?: CustomMapping;
  defaultLocale?: string;
  loadTranslations?: LoadTranslations;
  locale?: string;
  localeCookieName?: string;
};
```

| 选项                                       | 描述                     | 类型                                                                    | 可选 | 默认值                         |
| ---------------------------------------- | ---------------------- | --------------------------------------------------------------------- | -- | --------------------------- |
| [`customMapping`](#custom-mapping)       | 用于格式化和复数选择的区域设置别名。     | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | 是  | 无                           |
| [`defaultLocale`](#default-locale)       | 源区域设置和后备区域设置。          | `string`                                                              | 是  | `en`                        |
| [`loadTranslations`](#load-translations) | 异步目标目录加载器。             | [`LoadTranslations`](/docs/vue/reference/types/load-translations)     | 是  | 空目录                         |
| [`locale`](#locale)                      | 明确指定的初始区域设置。           | `string`                                                              | 是  | Cookie，其次为 `defaultLocale`  |
| [`localeCookieName`](#cookie-name)       | 用于保存区域设置选择的浏览器 Cookie。 | `string`                                                              | 是  | `generaltranslation.locale` |

## `customMapping` [#custom-mapping]

**Type** [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) · **Optional** · **Default** 无

用于区域设置相关的格式化和复数形式选择的区域设置别名。若对象映射中包含有效的 `code`，则会更改传递给 `Intl` formatter 和 plural rules 的区域设置。

目录加载和区域设置 cookie 仍保留原始别名。例如，设置 `pirate: { code: 'fr-FR' }` 会加载 `pirate` 目录并持久化 `pirate`，同时按法语规则格式化值。

## `defaultLocale` [#default-locale]

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

源内容的区域设置；当不存在显式指定或已保存的区域设置时，也将其用作后备。其源文本充当目录，因此 插件 不会为此区域设置调用 [`loadTranslations`](/docs/vue/reference/types/load-translations)。

该值不会由 [`createGT()`](/docs/vue/reference/functions/create-gt) 规范化，也不受其限制。在 CLI 配置、加载器路径和请求区域设置解析中，请使用相同的拼写。

## `loadTranslations` [#load-translations]

**类型** [`LoadTranslations`](/docs/vue/reference/types/load-translations) · **可选** · **默认值**为空目录

一个异步回调函数，返回指定目标区域设置的完整 [`TranslationCatalog`](/docs/vue/reference/types/translation-catalog)。省略时，每次加载目标区域设置都会解析为 `{}`，因此源内容仍会显示。

成功结果会按插件缓存；同一区域设置的并发调用会共享同一个 Promise。被拒绝的结果会被记录并重新抛出，但不会被缓存。

## `locale` [#locale]

**类型** `string` · **可选** · **默认值** 浏览器 cookie，其次为 `defaultLocale`

显式设置初始生效的区域设置。在服务器端，传入为当前请求解析出的区域设置。在浏览器中，显式指定的值会覆盖过期的区域设置 cookie，并写回该 cookie，以确保 hydration 保持一致。

在浏览器端省略时，已保存的 cookie 优先于 `defaultLocale`。在服务器端省略时，使用 `defaultLocale`。

## `localeCookieName` [#cookie-name]

**类型** `string` · **可选** · **默认值** `generaltranslation.locale`

指定用于在整个路径范围内持久保存和读取当前区域设置的会话 Cookie 名称。当路由或服务器端中间件需要使用不同的 Cookie 名称时，可覆盖此名称。

直接写入浏览器 Cookie 后，`插件.getLocale()` 和下一次 Vue 渲染都能识别更改，但浏览器不会触发安排该次渲染的事件。如需进行响应式更改，请使用 `插件.setLocale()` 或 [`useSetLocale()`](/docs/vue/reference/composables/use-set-locale)。

## 示例 [#example]

```ts
import type { CreateGTOptions } from 'gt-vue';

const options: CreateGTOptions = {
  customMapping: {
    pirate: { code: 'fr-FR' },
  },
  defaultLocale: 'en',
  locale: requestLocale,
  localeCookieName: 'my-app.locale',
  loadTranslations: async (locale) =>
    (await import(`./_gt/${locale}.json`)).default,
};
```

请为每个服务器端请求分别创建 options 对象和插件。共享插件状态，或在插件外部共享可变的目录缓存，可能导致特定区域设置的数据在请求之间泄露。

## Sitemap

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