跳转至主要内容
Better Content

一个会说所有语言的无头 CMS

内容建模一次,用可链式调用的 SDK 查询,并从边缘节点分发每种语言——不需要单独的翻译流水线,也不必为每种语言复制条目。

Content models

内容模型 · blog-posts

每个页面一次链式调用
.from("blog-posts").language("tr")

请求某种语言就得到那种语言——回退逻辑由我们处理。

Relations & expand
.expand(["author", "category"])
Draft → published

一个条目 · 三种语言

Per-field localization

blog-posts · tr

localized

blog-posts · de

localized

blog-posts · ja

localized

MCP for agents
createContentEntry()

Better Content

Edge delivery

内容模型 · blog-posts

titletextlocalized
bodyrichtextlocalized
localized_slugtextlocalized
authorrelation → authors
publishedAtdatetime

一个条目 · 三种语言

EnglishShipping i18n without a TMSpublished
TürkçeTMS olmadan i18n yayınlamakpublished
Deutschi18n ausliefern ohne TMSdraft

3 locales · 2 published · 1 draft

01 · Query

每个页面一次链式调用

这个 SDK 读起来像一个数据库客户端:选择模型、加过滤条件、展开关联、指定语言。返回的结果已经本地化好了。

  • 无需编写 API 层即可筛选、排序和分页。
  • 请求某种语言就得到那种语言——回退逻辑由我们处理。
  • 在同一次往返中展开关联,而不是发出 N+1 次请求。
app/blog/page.tsx
const { data } = await client
  .from("blog-posts")
  .language("tr")
  .expand(["author", "category"])
  .eq("status", "published")
  .order("publishedAt", "desc")
  .limit(10)

200 OK · 41ms · edge cache HIT

10 entries · tr · author + category expanded

02 · Capabilities

一个多语言 CMS 真正需要的一切

内容建模、按字段本地化和发布状态——底层复用翻译平台所用的同一套 MCP 与 CDN 管道。

Content models

在控制台中定义字段一次,每个条目都会继承该 schema 及其校验规则。

Per-field localization

把某个字段标记为本地化,它就会为每种语言存储一个值——包括 URL slug。

Relations & expand

关联作者、分类或产品,并用 expand 在一次请求中一并取回。

Draft → published

条目带有状态,因此未完成的翻译永远不会出现在生产环境的读者面前。

MCP for agents

AI 代理通过带类型的 MCP 工具来创建、翻译和发布条目,而不是去抓取管理后台界面。

Edge delivery

读取请求由与你的翻译相同的 CDN 提供,并具备 stale-while-revalidate 的容错能力。

03 · Adapters

直接放进你已经在用的框架里

一个 provider,一个 hook。各适配器的唯一区别在于它们如何接入各自框架的生命周期。

Next.js

@better-i18n/content/adapters/nextjs

React

@better-i18n/content/adapters/react

Expo

@better-i18n/content/adapters/expo

Vue

@better-i18n/content/adapters/vue

Svelte

@better-i18n/content/adapters/svelte

Vanilla JS

@better-i18n/content

04 · Better together

内容与翻译共用同一个 CDN

条目和界面文案通过同一条流水线发布,因此一次发版绝不会只翻译一半:界面文案和 CMS 中的内容会同时上线。

Better I18N

UI strings

从代码中扫描出键,结合术语表上下文翻译,然后发布到边缘节点。

Better Content

Long-form entries

带有按字段本地化、草稿和关联关系的建模内容。

Better Analytics

读者真正会打开的内容

按条目、语言和国家统计浏览量——让你只翻译真正被关注的内容。

卡尔纳的双语学校是一个适应性很强的学校。在这里,你可以找到自己的兴趣和爱好。

Tevfik Can Karanfil

创始人,Carna

Get started

内容建模一次,发布到任何地方

创建一个模型,添加第一个条目,然后用三种语言读取它——评估期间免费。