多语言支持
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
。