当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript ArcGIS intl.fetchMessageBundle用法及代码示例


基本信息

以下是所在类或对象的基本信息。

AMD: require(["esri/intl"], (intl) => { /* code goes here */ });

ESM: import * as intl from "@arcgis/core/intl";

对象: esri/intl

自从:用于 JavaScript 4.12 的 ArcGIS API

用法说明

intl.fetchMessageBundle函数(或属性)的定义如下:

fetchMessageBundle (bundleId) {Promise<Object>}


自从:ArcGIS 适用于 JavaScript 4.18 的 API

加载与当前 API 语言环境一起使用的本地化消息包。消息包是一个包含翻译的对象,可以作为文件存储在磁盘上,也可以作为代码中的对象存储。在内部,用于 JavaScript 的ArcGIS API 使用包含本地化翻译的 JSON 文件。这些捆绑包由唯一的字符串标识,即。 bundleId

fetchMessageBundle 方法应该在函数使用小部件外部的翻译字符串时使用。然而,如果 widget 需要使用消息包,它应该通过 @messageBundle 装饰器来实现。

fetchMessageBundle 方法词通过找到与消息标识符匹配的pattern 的第一个加载程序。然后它调用加载程序自己的fetchMessageBundle 函数。如果返回的 Promise 被拒绝,fetchMessageBundle 会找到另一个加载器并重复该操作,直到加载器成功获取一个包,或者没有更多的加载器可用。

下面是用于美国英语区域设置的 Home 小部件的 JSON 消息包示例。下面是为法国的法语语言环境翻译的同一个小部件字符串的包。

参数:

类型说明
bundleId String

消息包的标识符,传递给使用 registerMessageBundleLoader 注册的加载程序。

返回:

类型 说明
Promise<Object> 解析后,包含本地化消息字符串的对象。

例子:

// This snippet shows the JSON message bundle used for the Home widget in English
{
  "widgetLabel": "Home",
  "button": "Home",
  "title": "Default map view"
}
// This snippet shows the same translation strings in the French locale
{
  "widgetLabel": "Accueil",
  "button": "Accueil",
  "title": "Vue cartographique par défaut"
}
// Fetches the message bundle from the specified location
const bundle = await intl.fetchMessageBundle("my-application/MyBundle");
// English message bundle is loaded

// If needing to update or set locale, call setLocale
intl.setLocale("fr");

// Once locale is updated, fetch the new French message bundle
const bundle = await intl.fetchMessageBundle("my-application/MyBundle");

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 intl.fetchMessageBundle。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。