# General Translation Platform: getRegionProperties
URL: https://generaltranslation.com/zh/docs/platform/core/reference/gt-class-methods/locales/get-region-properties.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 返回区域设置或区域代码的区域元数据。getRegionProperties 的 API 参考。

获取 [GT](/docs/platform/core/reference/gt-class/constructor) 实例中某个区域代码的详细信息，包括其本地化名称及对应的旗帜表情符号。General Translation 提供了一种便捷方式来获取区域特定的显示信息，以便构建国际化用户界面。

## 概览 [#overview]

在 [`GT`](/docs/platform/core/reference/gt-class/constructor) 实例上调用 `getRegionProperties`，可选择传入区域代码。省略时，会使用该实例目标区域设置中的区域。

```typescript
const gt = new GT({ sourceLocale: 'en-US', targetLocale: 'fr-FR' });

// 获取区域属性
const usProps = gt.getRegionProperties('US');
console.log(usProps);
// { code: 'US', name: 'États-Unis', emoji: '🇺🇸' }

const frProps = gt.getRegionProperties('FR');
console.log(frProps);
// { code: 'FR', name: 'France', emoji: '🇫🇷' }

// 从当前区域设置自动检测
const currentRegion = gt.getRegionProperties(); // 使用 targetLocale 的区域
console.log(currentRegion);
// { code: 'FR', name: 'France', emoji: '🇫🇷' }
```

签名：

```typescript
getRegionProperties(
  region?: string,
  customMapping?: CustomRegionMapping
): { code: string; name: string; emoji: string }
```

*注意：`getRegionProperties` 会通过 `Intl.DisplayNames` 在本地运行，不需要 API Key。省略 `region` 时，它会使用该实例 `targetLocale` 中的地区，并根据该实例的 `targetLocale` 对地区名称进行本地化。若要在没有 `GT` 实例的情况下进行查找，请参阅独立的 [`getRegionProperties`](/docs/platform/core/reference/utility-functions/locales/get-region-properties)。*

## 工作原理 [#how-it-works]

* **地区代码。** 接受 ISO 3166-1 alpha-2 或 UN M.49 区域代码 (例如 `"US"`、`"FR"`、`"419"`) 。
* **本地化名称。** 使用 `Intl.DisplayNames` 按实例的 `targetLocale` 对地区名称进行本地化，必要时回退到 library 的默认区域设置。
* **自定义映射优先级。** 如果 `customMapping` 为该地区提供了 `name` 或 `emoji`，则会覆盖默认值。
* **后备机制。** 如果显示名称解析失败，则使用区域代码作为 `name`；如果找不到 emoji 映射，则使用默认 emoji。
* **地区后备。** 省略 `region` 时，将使用实例目标区域设置中的地区。
* **缺少区域设置。** 如果没有可用于确定地区属性的目标区域设置，则会抛出 `Error`。

## 参数 [#parameters]

| 参数                                 | 描述                                 | 类型                    | 可选 | 默认值                                     |
| ---------------------------------- | ---------------------------------- | --------------------- | -- | --------------------------------------- |
| [`region`](#region)                | ISO 3166-1 alpha-2 或 UN M.49 区域代码。 | `string`              | 是  | `this.getLocaleProperties().regionCode` |
| [`customMapping`](#custom-mapping) | 用于覆盖默认名称和表情符号的自定义区域映射。             | `CustomRegionMapping` | 是  | `this.customRegionMapping`              |

### `region` [#region]

**类型** `string` · **可选** · **默认值** `this.getLocaleProperties().regionCode`

ISO 3166-1 alpha-2 或 UN M.49 区域代码。如果未提供，则使用该实例目标区域设置中的区域。

### `customMapping` [#custom-mapping]

**类型** `CustomRegionMapping` · **可选** · **默认值** `this.customRegionMapping`

可选的自定义区域映射，用于覆盖默认的区域名称和表情。

## 返回值 [#returns]

**类型** `{ code: string; name: string; emoji: string }`

一个对象，包含：

* `code`：输入的区域代码。
* `name`：目标区域设置语言中的本地化 (或自定义) 地区名称。
* `emoji`：对应的旗帜表情符号或其他符号。

## 示例 [#examples]

```typescript
// 基本区域信息
const gt = new GT({ sourceLocale: 'en-US', targetLocale: 'en-US' });

// 常见区域代码
console.log(gt.getRegionProperties('US')); // { code: 'US', name: 'United States', emoji: '🇺🇸' }
console.log(gt.getRegionProperties('GB')); // { code: 'GB', name: 'United Kingdom', emoji: '🇬🇧' }
console.log(gt.getRegionProperties('DE')); // { code: 'DE', name: 'Germany', emoji: '🇩🇪' }
console.log(gt.getRegionProperties('JP')); // { code: 'JP', name: 'Japan', emoji: '🇯🇵' }
```

```typescript
// 自定义区域映射会覆盖默认值
const gt = new GT({ targetLocale: 'en-US' });

console.log(gt.getRegionProperties('US', { US: { name: 'USA', emoji: '🗽' } }));
// { code: 'US', name: 'USA', emoji: '🗽' }
```

## 注意事项 [#notes]

* 使用 `Intl.DisplayNames` API 获取本地化的地区名称。
* 同时支持 ISO 3166-1 alpha-2 和 UN M.49 区域代码。
* 自定义映射会覆盖默认名称和表情符号。
* 如果未提供参数，则会根据目标区域设置自动检测地区。
* 如果显示名称解析失败，则会回退为使用区域代码作为名称。

## Sitemap

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