多语言管理

最后更新:2026年6月22日

假设你想把服装网店不仅面向中文圈顾客,也面向英语圈顾客开放。同一款保温杯商品,你可能想用中文显示为"不锈钢保温杯 500ml",用英语显示为"Stainless Tumbler 500ml"。商品其实是同一款保温杯,只是要根据浏览者的语言,让显示的文字不同。

这种情况下用到的就是多语言功能。你不必按语言数量把商品重复登记多次,而是把各语言的文字一起放进同一款保温杯 Content 里。这样访问者会看到符合自己语言的文字,而像价格或图片这类与语言无关的信息,只需管理一次。

本页先看多语言是怎么工作的,然后亲手设置,让保温杯的商品名和详细说明也能以英语显示。

把不同语言的值放进同一个格子

在 WEEGLOO 中,语言通过 Locale 来处理。Locale(用来显示内容的语言。连同地区一起区分,中文写作 zh-CN,英语写作 en-US)以 Space 为单位设定。如果在服装网店 Space 里放入中文和英语两个 Locale,从那时起就可以用两种语言填写商品信息了。

Space 的多个 Locale 中,有一个会成为基准 Locale。基准 Locale 是这个 Space 的中心语言。如果是在中文市场起步的服装网店,通常中文(zh-CN)就是基准 Locale

把像商品名这样每种语言文字都不同的 Field 设为多语言后,那个格子就成了一并容纳各语言值的格子。也就是说,在保温杯的商品名 Field 这一个格子里,中文值和英语值会并排放入。

Locale商品名详细说明
中文 (zh-CN, 基准)不锈钢保温杯 500ml双层真空隔热,保温保冷持久。500ml 大容量。
English (en-US)Stainless Tumbler 500mlVacuum-insulated to keep drinks hot or cold for hours. 500ml.

没有填写的语言格子会怎么显示

在多语言 Field 中,如果某个语言的值还没有填写,那么用该语言浏览的访问者会看到什么,取决于是否为该语言(Locale设定了替代显示的语言。这个"替代显示的语言"称为 Fallback

  • 如果没有设定 Fallback,那个格子就会以空白发出。如果没有填写保温杯详细说明的英语值,那么英语圈访问者那一栏就会以空白形式传递过去。
  • 如果设定了 Fallback,就会以所设定的那个语言的值替代发出。例如把英语(en-US)的 Fallback 设为中文(zh-CN),那么当英语值为空时,会改为显示中文值。

Fallback 并非只能设为基准 Locale。也可以接续到你想要的其他语言,还可以让它从一个语言逐级接续到下一个语言。Fallback 在向 Space 添加或编辑 Locale 时设定。

到这里为止讲的是"读取时"的情况。哪个语言格子必须填写(保存规则)与 Fallback 是两回事,由该 Field必填设置决定。在下面的"设置之后需要知道的事"中说明。

不必把所有 Field 都设为多语言

对于不同语言下值都相同的 Field,不要开启多语言。以保温杯来看,商品名和详细说明开启多语言,价格和代表图片则不开启。因为即使语言变了,值也保持不变。

  • 开启多语言的格子:商品名、详细说明。每种语言的文字都应不同。
  • 不开启的格子:价格(18000)、代表图片。英语顾客看到的价格也是 18000,图片也是同一张保温杯照片。

没有开启多语言的 Field,只会在基准 Locale 一个格子里保存值。因此,要让这个值在其他语言的画面上也显示出来,就需要为该语言设定一个接续到基准 LocaleFallback。例如,如果价格没有开启多语言,就要把英语(en-US)的 Fallback 设为中文(基准),价格才会在英语画面上显示。如果没有 Fallback,价格格子在该语言画面上就会显示为空白。

把多个值放进一个格子的"作为列表类型使用"(例如多张商品图片)与多语言不同。列表是把同一种类的多个值汇集起来,多语言则是把一个值按语言分开存放。

向 Space 添加语言

要用多语言填写,首先 Space 里得有那种语言(Locale)。假设要向服装网店 Space 添加英语(en-US)。中文(zh-CN)则当作已经作为基准 Locale 存在。

  1. 从左侧菜单打开 Space 设置,进入 Locale 管理画面。
  2. 点击右上角的 + 添加 按钮,添加英语(en-US)。
  3. 把英语(en-US)的 Fallback(值为空时替代显示的语言)指定为中文(zh-CN)。这样一来,留空英语值的格子,以及没有开启多语言的格子(如价格),在英语画面上才会以中文值填充。如果不指定,这些格子在英语画面上就会显示为空白。在列表中再次点击已添加的英语(en-US),打开 编辑 Locale 对话框。在 Fallback Locale 下拉菜单中选择 "Chinese (China) (zh-CN)",然后点击 保存。(添加英语时弹出的 添加 Locale 对话框中也有同样的 Fallback Locale 项,也可以在添加的同时直接指定。)

在 en-US Locale 的 Fallback Locale 下拉菜单中选择了 Chinese (China) (zh-CN) 的编辑 Locale 对话框

  1. 确认列表中 "Chinese (China) (zh-CN)" 项是否带有 Default 标记。这个标记就是基准 Locale 的标识。

Space 里设定了中文和英语两个 Locale,中文被标记为基准的画面

把商品信息设为多语言

语言准备好后,就来确定哪些 Field 要按语言填写。把保温杯的商品名和详细说明开启多语言。价格和代表图片保持原样。

第一次创建 Field 的方法在 Content 建模 中说明。这里只看打开已创建好的商品名 Field 并把它改为多语言的部分。

  1. 从左侧菜单点击 Content Type,打开"商品"。
  2. 点击商品名 Field,打开 配置 Field 对话框。
  3. 设置 标签页中,勾选 为此 Field 启用本地化 复选框。
  4. 点击 保存
  5. 对详细说明 Field 也开启同样的设置。

把商品名 Field 设置为接受多种语言输入的画面

把保温杯也填上英语

现在打开保温杯 Content 后,就可以在商品名和详细说明的格子里切换语言来填值。作为基准 Locale 的中文值在前面已经填好了。

  1. 从左侧菜单点击 Content,打开"不锈钢保温杯 500ml"。
  2. 在编辑画面的 翻译 区域,点击右侧下拉菜单并选择 English (United States) (en-US)。这样在每个设为多语言的 Field 下方,就会并排出现 en-US 输入格。
  3. 在商品名格子的 en-US 一行输入 Stainless Tumbler 500ml
  4. 在详细说明格子的 en-US 一行输入英语说明。
  5. 点击右上角的 保存
  6. 把保温杯 Content 发布(Publish)。

在保温杯 Content 中把输入语言切换为英语,输入了英语商品名和说明的画面

Publish 是什么、在哪里点击,在 Content 撰写与发布 中说明。发布之后,英语值也会一并对外公开(传递)。英语圈访问者会收到英语商品名和说明,中文访问者则会收到中文值。如果留空了某个语言的值,当该语言设定了 Fallback 时,会改为发出所设定语言(例如作为基准的中文)的值;没有设定时,那一栏就会以空白发出。

图片(Media)也按语言存放

多语言并不是商品这类 Content 才有的功能。图片、文件(Media)也可以按语言分别存放。例如,如果保温杯的代表图片上印着"保温保冷"这样的中文文字,那么可以为英语圈访问者另外提供一张同一位置印着英语文字的图片。不只是文件,图片的标题和说明也按语言区分。

开启方式与 Content 不同。Content 需要为每个 Field 开启多语言(见上面的"把商品信息设为多语言"),而 Media 从一开始就被设计为按语言存放,没有需要另外开启的项。打开一个 Media,切换语言来填入各语言的文件、标题、说明即可。

没有填写的语言的处理与 Content 相同。如果留空了某个语言,会改为发出为该语言设定的 Fallback 的值;没有设定时,那一栏就会以空白发出(参见上面的"没有填写的语言格子会怎么显示")。

Media 编辑表单里有一个 翻译 区域。在基准 Locale 标签("zh-CN default")旁边的下拉菜单中选择语言后,就会出现该语言的标题格。分别选择 zh-CN 和 en-US,填入标题(以及对应语言的文件)即可。

Media 编辑表单的翻译区域。zh-CN 标题 "不锈钢保温杯500ml 正面图" 和 en-US 标题 "Stainless Tumbler 500ml, front shot" 并排输入的状态

上传 Media 并将其连接到 Content 的基本方法,在 Media 中说明。

设置之后需要知道的事

能否留空由 Field 的必填设置决定。 如果某个 Field 没有开启必填(有效性检查中的必填 Field),那么这个 Field 任何语言都不填、保持空白也能保存。如果开启了必填,就必须填值;如果是多语言 Field,就要为 Space 中设定为必填的每种语言填写。基准 Locale 通常是必填的,需要填写;设为可选的语言则可以留空。把哪种语言设为可选,在 Locale 设置中决定。用其他语言的值填补空语言格子的 Fallback,与这条规则是两回事。

没有开启多语言的 Field,只在基准 Locale 保存一次。 把保温杯价格改成 16000,改的就是那一个值。不需要按语言分别管理。不过,要让这个值在英语画面上也显示,就需要让英语(en-US)的 Fallback 接续到中文(基准)。如果没有 Fallback,这个格子在非基准语言画面上会显示为空白(参见上面的"没有填写的语言格子会怎么显示")。

接下来要做的事

  • Content 建模:说明创建 Field 并确定其种类的基本方法。
  • Content 撰写与发布:说明创建保温杯 Content 并发布(Publish)的方法。
  • API 参考:说明用代码直接填入各语言值、以及在对外公开中按指定语言取用的请求格式等技术规范。