跳至主要内容

i18n 支援

V8 可選擇性地實作 ECMAScript 402 規範。此 API 預設啟用,但可以在編譯時關閉。

先決條件

i18n 實作新增了對 ICU 的依賴。從 v7.2 起,V8 至少需要 ICU 版本 63。具體的依賴關係列在 V8 的 DEPS 檔案中。

執行以下指令將符合版本的 ICU 取回到 third_party/icu

gclient sync

詳情請參閱 「保持最新」

替代的 ICU 取回方式

你可以在不同的位置取回 ICU 的原始碼,並定義 gyp 變數 icu_gyp_path 指向 icu.gyp 檔案。

系統 ICU

最後,你可以將 V8 編譯成與系統中安裝的 ICU 版本相容的版本。若要這樣做,請指定 GYP 變數 use_system_icu=1。如果你同時啟用了 want_separate_host_toolset,那麼綁定的 ICU 仍然會被編譯以生成 V8 快照。系統 ICU 僅用於目標架構。

嵌入 V8

如果你將 V8 嵌入到你的應用程式中,但你的應用程式本身不使用 ICU,你需要在呼叫 V8 之前初始化 ICU,方法是執行以下指令:

v8::V8::InitializeICU();

如果未編譯 ICU,調用此方法是安全的,因為它什麼也不會做。

無 i18n 支援的編譯方式

若要在沒有 i18n 支援的情況下編譯 V8,請在編譯之前使用 gn args 設定 v8_enable_i18n_support = false