recursal/MDN huggingface dataset:
bookmarks.onImportEnded
=======================

ブックマークのインポートが終了した際に発火します。

`bookmarks.onImportBegan` も参照してください。

構文
--


```js
browser.bookmarks.onImportEnded.addListener(function() {...})
browser.bookmarks.onImportEnded.removeListener(listener)
browser.bookmarks.onImportEnded.hasListener(listener)
```


このイベントには 3 つのメソッドが用意されています。

`addListener(callback)`

イベントリスナを追加します。

`removeListener(listener)`

イベントリスナを削除します。引数 `listener` には削除したいリスナを指定します。

`hasListener(listener)`

`listener` がイベントリスナとして登録されているか確認します。登録されていれば `true` を、それ以外の場合は `false` を返します。

addListener の構文
---------------

### 引数

`callback`

イベントが発火した際に呼び出される関数を指定します。この関数に渡される引数はありません。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

使用例
---


```js
function handleImportBegan() {
  console.log("Importing...");
}

function handleImportEnded() {
  console.log("...finished.");
}

function handleClick() {
  chrome.bookmarks.onImportBegan.addListener(handleImportBegan);
  chrome.bookmarks.onImportEnded.addListener(handleImportEnded);
}

chrome.browserAction.onClicked.addListener(handleClick);
```


**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードから作成されています。Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。
bookmarks.getRecent()
=====================

**`bookmarks.getRecent()`** は、最近に追加されたブックマークを指定した最大個数まで取得し、`BookmarkTreeNode` オブジェクトの配列としてコールバック関数に渡します。

構文
--


```js
browser.bookmarks.getRecent(
  numberOfItems, // 整数
  callback, // 関数
);
```

### 引数

`numberOfItems`

取得する要素の最大個数を指定する整数です。最近追加された要素のうち、ここで指定した個数までが戻り値のリストに含まれます。

`callback`

リストが取得された際に実行される関数です。この関数には以下の引数が渡ります。

`results`

各要素が 1 つのブックマークノードを表す `bookmarks.BookmarkTreeNode` オブジェクトの `array`


ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

使用例
---

以下の例は、直近に追加されたブックマークの URL を出力するものです。


```js
function gotMostRecent(bookmarkItems) {
  if (bookmarkItems.length) {
    console.log(bookmarkItems[0].url);
  }
}

chrome.bookmarks.getRecent(1, gotMostRecent);
```


**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードに基づいて作成されています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。
bookmarks.onChanged
===================

以下の変更に対して発火します。

* ブックマークのタイトルまたは URL
* フォルダの名前
構文
--


```js
browser.bookmarks.onChanged.addListener(function(
  id,        // 文字列
  changeInfo // オブジェクト
) {...})
browser.bookmarks.onChanged.removeListener(listener)
browser.bookmarks.onChanged.hasListener(listener)
```


このイベントには 3 つのメソッドが用意されています。

`addListener(callback)`

イベントリスナを追加します。

`removeListener(listener)`

イベントリスナを削除します。引数 `listener` には削除したいリスナを指定します。

`hasListener(listener)`

`listener` がイベントリスナとして登録されているか確認します。登録されていれば `true` を、それ以外の場合は `false` を返します。

addListener の構文
---------------

### 引数

`callback`

イベントが発火した際に呼び出される関数を指定します。この関数には以下の引数が渡ります。

`id`

変更を受けた要素の ID を表す `string`


`changeInfo`

変更に関する詳細を含んだ `object`


付随するオブジェクト
----------

### changeInfo

`title`

変更された要素のタイトルを表す `string`

`url`省略可

変更された要素の URL を表す `string`。要素がフォルダだった場合に値は入りません。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

使用例
---


```js
function handleChanged(id, changeInfo) {
  console.log("Item: " + id + " changed");
  console.log("Title: " + changeInfo.title);
  console.log("Url: " + changeInfo.url);
}

function handleClick() {
  chrome.bookmarks.onChanged.addListener(handleChanged);
}

chrome.browserAction.onClicked.addListener(handleClick);
```


**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードから作成されています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。
bookmarks.getChildren()
=======================

**`bookmarks.getChildren()`** は、ブックマークフォルダの ID を `BookmarkTreeNode` で指定し、その直下にあたる子要素をすべて取得します。

構文
--


```js
browser.bookmarks.getChildren(
  id, // 文字列
  callback, // 関数
);
```

### 引数

`id`

取得したい子要素を持つフォルダ ID を指定する `string` です。

`callback`

子ノードのリストが取得された際に実行される関数です。この関数には以下の引数が渡ります。

`results`

各要素が 1 つの子ノードを表す、`bookmarks.BookmarkTreeNode` の `array` です。要素の順序は、UI に表示されているのと同じ順番です。現在、セパレータの有無は結果に含まれません。指定したノードに子要素が含まれていなかった場合、`results` は空配列となります。


ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

使用例
---

### 基本的な使い方


```js
function gotChildren(children) {
  console.log(children);
}

chrome.bookmarks.getChildren(bookmarkItemId, gotChildren);
```

### 指定したフォルダでブックマークを切替

以下の例は、フォルダを `BookmarkTreeNode` で指定し、そのフォルダに新しいブックマークを作成するものです。ただし、既に同じ名前のブックマークがあった場合は、逆に既存のブックマークを削除することとします。このとき新しいブックマークは作成されません。


```js
function toggleBookmark(folderNode, title, url) {
  chrome.bookmarks.getChildren(folderNode.id, function (results) {
    let node = results.find(function (el) {
      return el.title === title;
    });

    // ブックマークが存在する場合は削除する
    // そうでなければ新しく作成する

    if (node !== undefined) {
      chrome.bookmarks.remove(node.id);
    } else {
      chrome.bookmarks.create({
        parentId: folderNode.id,
        title: title,
        url: url,
      });
    }
  });
}
```


先の `toggleBookmark()` 関数は、`folderNode` で指定した `BookmarkTreeNode` の中に既に存在しているすべてのブックマークのリストを取得するため、最初に `bookmarks.getChildren()` を呼び出しています。

コールバックに指定された匿名関数には `results` という引数が 1 つ渡されます。この引数は、フォルダの直下にある子要素をすべて含んだ配列です。まず初めに、与えられたタイトルを持つノードがフォルダに存在するかどうかを調べます。ここでは `Array.find()` メソッドを使い、タイトルが等しいかどうかをコールバック内で判定しています。

マッチするノードがあった場合（すなわち、`node` が `undefined` ではない場合）、指定した `title` を持つブックマークが既に存在していたことが分かったので、既存のブックマークを削除するために `bookmarks.remove()` を呼び出します。

そうではなかった場合、新しいブックマークを作成するために `bookmarks.create()` が呼び出します。この際、引数 `folderNode` で与えられていたフォルダ ID を新しい親フォルダの ID に指定し、合わせて `title` と `url` も指定します。

**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードから作成されています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。
bookmarks.create()
==================

**`bookmarks.create()`** は、`parentId` で指定した `BookmarkTreeNode` の配下に、ブックマークやフォルダを作成するメソッドです。フォルダを作成する場合は、`CreateDetails.url` の引数を省略するか空にします。

構文
--


```js
browser.bookmarks.create(
  bookmark, // CreateDetails
  callback, // 関数（省略可）
);
```

### 引数

`bookmark`
`bookmarks.CreateDetails`
`callback`省略可

ブックマークが新しく作成された際に呼び出される `function` です。この関数は以下の引数を 1 つ受け取ります。

`result`

新しく作成されたブックマークノードを表す `bookmarks.BookmarkTreeNode`


ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

使用例
---

以下の例は、このページのブックマークをデフォルトのフォルダ（Firefox は「未分類のブックマーク」、Chrome は「その他のブックマーク」）に作成するものです。


```js
function onBookmarkAdded(bookmarkItem) {
  console.log("Bookmark added with ID: " + bookmarkItem.id);
}

chrome.bookmarks.create(
  {
    title: "bookmarks.create() on MDN",
    url: "https://developer.mozilla.org/Add-ons/WebExtensions/API/bookmarks/create",
  },
  onBookmarkAdded,
);
```

### Example extensions

* bookmark-it

**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードに基づいています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。
bookmarks.getSubTree()
======================

**`bookmarks.getSubTree()`** は、ID を指定して `bookmarks.BookmarkTreeNode` を非同期に取得するメソッドです。

対象がフォルダの場合、`children` プロパティを再帰的にたどることで、すべての子要素にアクセスすることができます。

構文
--


```js
browser.bookmarks.getSubTree(
  id, // 文字列
  callback, // 関数
);
```

### 引数

`id`

取得したい部分木のルートノードに対応する ID を表す `string` です。

`callback`

リクエストしたノードが取得された際に呼び出される関数です。この関数には以下の引数が渡ります。

`results`

指定した ID に対応する `bookmarks.BookmarkTreeNode` オブジェクトが 1 つ含まれた配列


ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

例
-

以下の例は、指定したノードの配下にある部分木を再帰的に出力するものです。


```js
function makeIndent(indentLength) {
  return ".".repeat(indentLength);
}

function logItems(bookmarkItem, indent) {
  if (bookmarkItem.url) {
    console.log(makeIndent(indent) + bookmarkItem.url);
  } else {
    console.log(makeIndent(indent) + "Folder");
    indent++;
  }
  if (bookmarkItem.children) {
    for (child of bookmarkItem.children) {
      logItems(child, indent);
    }
  }
  indent--;
}

function logSubTree(bookmarkItems) {
  logItems(bookmarkItems[0], 0);
}

function handleClick() {
  var subTreeID = "unfiled\_\_\_\_\_";
  chrome.bookmarks.getSubTree(subTreeID, logSubTree);
}

chrome.browserAction.onClicked.addListener(handleClick);
```


**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードから作成されています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。
bookmarks.onChildrenReordered
=============================

UI で表示されている順序に伴って子フォルダの順序も変更された際に発火します。`bookmarks.move()` の実行後や、UI におけるドラッグの際には発火しません。

構文
--


```js
browser.bookmarks.onChildrenReordered.addListener(function(
  id,         // 文字列
  reorderInfo // オブジェクト
) {...})
browser.bookmarks.onChildrenReordered.removeListener(listener)
browser.bookmarks.onChildrenReordered.hasListener(listener)
```


このイベントには 3 つのメソッドが用意されています。

`addListener(callback)`

イベントリスナを追加します。

`removeListener(listener)`

イベントリスナを削除します。引数 `listener` には削除したいリスナを指定します。

`hasListener(listener)`

`listener` がイベントリスナとして登録されているか確認します。登録されていれば `true` を、それ以外の場合は `false` を返します。

addListener の構文
---------------

### 引数

`callback`

イベントが発火した際に呼び出される関数を指定します。この関数には以下の引数が渡ります。

`id`

子要素の順序が変更されたフォルダの ID を表す `string` です。


`reorderInfo`

詳細情報を含んだ `object` です。


付随するオブジェクト
----------

### reorderInfo

`childIds`

`string` の `array` です。このフォルダに含まれるブックマーク要素すべての ID が含まれており、UI に表示されているのと同じ順番に並んでいます。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

使用例
---


```js
function handleChildrenReordered(id, reorderInfo) {
  console.log("Item: " + id + " children reordered");
  console.log("Children: " + reorderInfo.childIds);
}

function handleClick() {
  chrome.bookmarks.onChildrenReordered.addListener(handleChildrenReordered);
}

chrome.browserAction.onClicked.addListener(handleClick);
```


**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードから作成されています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License. に従います。
bookmarks.BookmarkTreeNodeType
==============================

**`bookmarks.BookmarkTreeNodeType`** 型は、ブックマークツリーのノードがブックマーク、フォルダーまたはセパレーターであるかどうかを示すために使用されます。

型
-

`bookmarks.BookmarkTreeNodeType` は以下の 3 つのうちいずれかの値を取りうる `string` です。

* `"bookmark"`: ノードがブックマークであることを示します。
* `"folder"`: ノードがフォルダーであることを示します。
* `"separator"`: ノードがセパレータであることを示します。
ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
bookmarks.update()
==================

**`bookmarks.update()`** は、ブックマークの URL やタイトル、またはフォルダの名前を更新するメソッドです。

ブックマーク要素が見つからなかった場合には `runtime.lastError` がセットされるので、エラーの有無をコールバックで確認できます。

構文
--


```js
browser.bookmarks.update(
  id, // 文字列
  changes, // オブジェクト
  callback, // 関数（省略可）
);
```

### 引数

`id`

更新したいブックマーク / フォルダの ID を表す `string` です。

`changes`

適用したい変更内容を表す `object` であり、以下のプロパティから構成されます。指定しなかったプロパティについて、ブックマークやフォルダが変更されることはありません。

`title`省略可

`id` がフォルダを表す場合、ブックマークの新しいタイトル / フォルダの新しい名前を指定する `string` です。

`url`省略可

ブックマークの新しい URL を指定する `string` です。


`callback`省略可

変更が適用された際に実行される関数です。この関数には次の引数が 1 つ渡ります。

`result`

更新されたブックマークを表す`bookmarks.BookmarkTreeNode` オブジェクトです。


ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

使用例
---

### フォルダのリネーム

以下の例は、"MDN" という名前のフォルダすべてを "MDN" to "Mozilla Developer Network (MDN)" にリネームするものです。


```js
function updateFolders(items) {
  for (item of items) {
    // only folders, so skip items with a `url`
    if (!item.url) {
      chrome.bookmarks.update(item.id, {
        title: "Mozilla Developer Network (MDN)",
      });
    }
  }
}

chrome.bookmarks.search({ title: "MDN" }, updateFolders);
```


**メモ:** This API is based on Chromium's `chrome.bookmarks` API. This documentation is derived from `bookmarks.json` in the Chromium code.Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。
bookmarks.move()
================

**`bookmarks.move()`** は、指定した `BookmarkTreeNode` をブックマークツリー内の所望の位置に移すメソッドです。このメソッドにより、ブックマークを新しいフォルダの中や、同じフォルダ内の別の場所に移動させることができます。

構文
--


```js
browser.bookmarks.move(
  id, // 文字列
  destination, // オブジェクト
  callback, // 関数（省略可）
);
```

### 引数

`id`

移動させるブックマーク / フォルダの ID を表す `string` です。

`destination`

ブックマークの移動先を表す `object` です。このオブジェクトには以下のプロパティが必ず 1 つ以上含まれます。

`parentId` 省略可

移動先フォルダの ID を指定する `string` です。この値が省略された場合、現在と同じフォルダ内の新しい場所へ移動されます。

`index` 省略可

移動先フォルダ内における位置を指定する 0 起点のインデックスです。値が 0 の場合、そのフォルダの先頭に移動されます。値が省略された場合、新しい親フォルダ内の最後に移動されます。


`callback` 省略可

移動が終了した際に呼び出される `function` です。この関数は以下の引数を 1 つ受け取ります。

`result`

移動された新しいノードを表す `BookmarkTreeNode`


ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

使用例
---

### ブックマークを現在のフォルダの先頭へ移動

次の例は、既存のブックマークを現在のフォルダの先頭へ移動させるものです。移動後に必要な処理は特にないため、ここではコールバック無しで呼び出しています。


```js
browser.bookmarks.move(bookmarkID, { index: 0 });
```

### ブックマークを異なるフォルダへ移動

以下の例は、ID で指定したブックマークを、別の ID で指定したフォルダへ移動させる関数です。今回は、移動後に実行されるコールバック関数も指定しています。


```js
function moveToFolder(bookmarkId, destinationId) {
  browser.bookmarks.move(
    bookmarkId,
    { parentId: destinationId },
    function (updatedNode) {
      /\* ブックマークの移動後に行う処理 \*/
    },
  );
}
```


**メモ:** この API は Chromium `の``chrome.bookmarks` API に基づいています。また、このドキュメント は `bookmarks.json` における Chromium のコードから作成されています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。
bookmarks.BookmarkTreeNode
==========================

`bookmarks.BookmarkTreeNode` 型のオブジェクトは、ブックマークツリー上のノード（ブックマーク / フォルダ）を表現するものです。子ノードは親フォルダの中で `index` に従って順序付けされます。

値の型
---

以下のプロパティを含む `object` です。

`id`

そのノードを一意に識別する `string` です。この ID はユーザのプロファイル内で固有であり、ブラウザを再起動した後も有効です。

`parentId` 省略可

親フォルダの ID を表す `string` です。ルートノードの場合は省略されます。

`index` 省略可

親フォルダの中におけるノードの位置を表す 0 以上の `number` です。0 は先頭の要素を意味します。

`url` 省略可

ブックマークの URL を表す `string` です。フォルダの場合は省略されます。

`title`

ブックマークリストやメニューにノードが表示される際のテキストを表す `string` です。

`dateAdded` 省略可

このノードが生成された時刻を 1970 年 1 月 1 日からの経過ミリ秒 で表す `number` です。

`dateGroupModified` 省略可

その内容の最終変更時刻を 1970 年 1 月 1 日からの経過ミリ秒 で表す `number` です。

`unmodifiable` 省略可

`bookmarks.BookmarkTreeNodeUnmodifiable` 型で表現される `string` です。このノードが変更不可である理由を表します。変更可能な場合には省略されます。

`children` 省略可

各要素がノードの子要素を表す、`bookmarks.BookmarkTreeNode` の `array` です。リストの要素は UI に表示されているのと同じ順序で並びます。フォルダ以外の場合は省略されます。


**メモ:** 現在、ブックマークリストのセパレータをこのオブジェクトで表すことはできません。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードから作成されています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。
bookmarks.getTree()
===================

**`bookmarks.getTree()`** は、ブックマークツリーのルートを表した`bookmarks.BookmarkTreeNode` オブジェクトの配列を返します。

構文
--


```js
browser.bookmarks.getTree(
  callback, // 関数
);
```

### 引数

`callback`

ルートに相当するノードが取得された際に実行される関数です。この関数には以下の引数が渡ります。

`results`

ルートノードを表す `bookmarks.BookmarkTreeNode` オブジェクトが 1 つ含まれた配列


ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

例
-

以下の例は、ブックマークツリー全体を出力するものです。


```js
function makeIndent(indentLength) {
  return ".".repeat(indentLength);
}

function logItems(bookmarkItem, indent) {
  if (bookmarkItem.url) {
    console.log(makeIndent(indent) + bookmarkItem.url);
  } else {
    console.log(makeIndent(indent) + "Folder");
    indent++;
  }
  if (bookmarkItem.children) {
    for (child of bookmarkItem.children) {
      logItems(child, indent);
    }
  }
  indent--;
}

function logTree(bookmarkItems) {
  logItems(bookmarkItems[0], 0);
}

function handleClick() {
  chrome.bookmarks.getTree(logTree);
}

chrome.browserAction.onClicked.addListener(handleClick);
```


**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードから作成されています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。
bookmarks.remove()
==================

**`bookmarks.remove()`** は、ブックマークや空のブックマークフォルダを削除するメソッドです。

ブックマークが見つからなかった、またはフォルダが空ではなかった場合には `runtime.lastError` がセットされ、エラーの有無はコールバック内で確認できます。

構文
--


```js
browser.bookmarks.remove(
  id, // 文字列
  callback, // 関数（省略可）
);
```

### 引数

`id`

削除したいブックマーク / 空フォルダの ID を指定する `string` です。

`callback`省略可

ブックマークやフォルダが削除された際に実行される関数です。この関数に渡される引数はありません。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

使用例
---

以下の例はブックマークを削除するものです。


```js
function onRemoved() {
  if (chrome.runtime.lastError) {
    console.log(chrome.runtime.lastError);
  } else {
    console.log("bookmark item removed!");
  }

}

chrome.bookmarks.remove(bookmarkItemId");
```

### Example extensions

* bookmark-it

**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードから作成されています。Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。
i18n.getAcceptLanguages()
=========================

ブラウザーの accept-languages を取得します。これは、ブラウザーに使用されているロケールとは異なります。ロケールを取得するには、`i18n.getUILanguage` を使用してください。

これは、`Promise` を返す非同期関数です。

構文
--


```js
var gettingAcceptLanguages = browser.i18n.getAcceptLanguages();
```

### 引数

なし。

### 戻り値

``i18n.LanguageCode`` オブジェクトの `配列` で処理が完了した `Promise`。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

例
-


```js
function onGot(languages) {
  console.log(languages);
  //e.g. Array [ "en-US", "en" ]
}

var gettingAcceptLanguages = browser.i18n.getAcceptLanguages();
gettingAcceptLanguages.then(onGot);
```


**メモ:** この API は、Chromium の `chrome.i18n` API を基にしています。このドキュメンテーションは、Chromium コード内の `i18n.json` に由来しています。Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。
i18n.detectLanguage()
=====================

提供されたテキストの言語を Compact Language Detector (CLD) を利用して検出します。

これは、`Promise` を返す非同期関数です。

構文
--


```js
var detectingLanguages = browser.i18n.detectLanguage(
  text, // string
);
```

### 引数

`text`

`文字列`。翻訳されるユーザー入力の文字列です。

### 戻り値

結果オブジェクトで解決される `Promise`。結果オブジェクトは 2 個のプロパティを持ちます:

`isReliable`

`真偽値`。検出された言語が確かかどうかを示します。

`languages`

オブジェクトの `配列`。配列の各項目はさらに 2 個のプロパティを持ちます:

`language`

`i18n.LanguageCode`。検出された言語です。

`percentage`

`整数値`。検出された言語で入力された文字列の割り合い。


ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

例
-


```js
function onLanguageDetected(langInfo) {
  for (lang of langInfo.languages) {
    console.log("Language is: " + lang.language);
    console.log("Percentage is: " + lang.percentage);
  }
}

var text = "L'homme est né libre, et partout il est dans les fers.";

var detecting = browser.i18n.detectLanguage(text);
detecting.then(onLanguageDetected);
```


**メモ:** この API は、Chromium の `chrome.i18n` API を基にしています。このドキュメンテーションは、Chromium コード内の `i18n.json` に由来しています。Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。
i18n.getMessage()
=================

指定したメッセージのローカライズされた文字列を取得します。

構文
--


```js
browser.i18n.getMessage(
  messageName, // 文字列
  substitutions, // 任意
);
```

### 引数

`messageName`

`文字列`。messages.json で指定されたメッセージ名です。messages.json 内にメッセージを見つけられない場合は:

* Firefox は "" を返し、エラーログを出力します。
* Chrome は "" を返し、エラーログを出力しません。

`substitutions`省略可

`文字列` または `文字列` の `配列`。単一の置換文字列、または置換文字列の配列です。
 Chrome では、9 個より多くの置換文字列を与えると、`getMessage()` は `undefined` を返します。


### 戻り値

`文字列`。現在のロケール向けにローカライズされたメッセージ。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

例
-

`target.url` を置換文字列として渡し、`"messageContent"` のローカライズされた文字列を取得します:


```js
var message = browser.i18n.getMessage("messageContent", target.url);
console.log(message);
```


これは、\_locales/en/messages.json ファイルに含まれた次の内容で動作します:


```json
{
  "messageContent": {
    "message": "You clicked $URL$.",
    "description": "Tells the user which link they clicked.",
    "placeholders": {
      "url": {
        "content": "$1",
        "example": "https://developer.mozilla.org"
      }
    }
  }
}
```


`target.url` が "https://developer.mozilla.org" である場合、"en" ロケールでのメッセージの値は次のようになります:
```

"You clicked https://developer.mozilla.org."
```

### Example extensions

* menu-accesskey-visible
* menu-demo
* notify-link-clicks-i18n

**メモ:** この API は、Chromium の `chrome.i18n` API を基にしています。このドキュメンテーションは、Chromium コード内の `i18n.json` に由来しています。Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。
i18n.getUILanguage()
====================

ブラウザーの UI 言語を取得します。これは、優先されるユーザー言語を返す `i18n.getAcceptLanguages` とは異なります。

構文
--


```js
browser.i18n.getUILanguage();
```

### 引数

なし。

### 戻り値

`文字列`。`i18n.LanguageCode` によるブラウザーの UI 言語コード。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

例
-


```js
var uiLanguage = browser.i18n.getUILanguage();
console.log(uiLanguage);

//e.g. "ja"
```


**メモ:** この API は、Chromium の `chrome.i18n` API を基にしています。このドキュメンテーションは、Chromium コード内の `i18n.json` に由来しています。Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。
i18n.LanguageCode
=================

`"en-US"` や "`fr`" などの 言語タグ。

型
-

この型の値は文字列です。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**メモ:** この API は、Chromium の `chrome.i18n` API を基にしています。このドキュメンテーションは、Chromium コード内の `i18n.json` に由来しています。Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。