跳到主要内容

多语言支持

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