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
。