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 #

最後但並非最不重要的一點,您可以針對系統中安裝的 ICU 版本編譯 V8。為此,請指定 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