文档 / 模板开发

主题(皮肤)与多语言

主题体系:CSS 变量驱动

OCPS 主题是 CSS 变量集合,前端读取主题 API 注入 :root 变量即可换肤,无需重写样式。内置 7+ 套官方皮肤:

代码名称风格
starlight星辉浅色极简,干净通透
indigo靛蓝之夜深色科技感
midnight午夜深蓝 + 天青,开发者友好
noir黑金近黑 + 香槟金,商务奢华
emerald翡翠墨绿 + 翡翠主色
aurum琥珀暖金
bordeaux酒红红金
arcade街机游戏风
sonic声波音频风

主题变量示例:

:root {
  --brand: #4f46e5;
  --brand-2: #7c3aed;
  --brand-3: #0ea5e9;
  --bg: #ffffff;
  --card: #f8fafc;
  --text: #0f172a;
  --border: #e2e8f0;
}

主题 API

GET https://api.ocps.cc/themes/v1/themes?lang=cn

返回主题列表(代码、名称、描述、CSS 变量)。前端渲染时:

<style id="ocps-theme"></style>
<script>
  fetch('https://api.ocps.cc/themes/v1/themes')
    .then(r => r.json())
    .then(d => {
      const t = d.items.find(x => x.code === 'starlight');
      const vars = Object.entries(t.variables).map(([k,v]) => k + ': ' + v + ';').join('');
      document.getElementById('ocps-theme').textContent = ':root{' + vars + '}';
    });
</script>

前端皮肤切换

导航栏通常放一个"衣服"图标,点击弹出皮肤下拉(与语言切换并列):

  1. 拉取主题列表渲染下拉;
  2. 选择后把主题代码写入 Cookie / localStorage;
  3. 刷新或实时注入 CSS 变量;
  4. 平台后台可管理皮肤(新增/编辑/删除),应用安装模板时读取 theme_default

多语言(8 语言)

平台默认 8 种语言:en / cn / tw / jp / de / fr / es / ar

语言路由约定

/{lang}                 # 语言首页
/{lang}/{module}        # 模块页
/{lang}/{module}/list/{slug}      # 分类列表
/{lang}/{module}/list/d/{slug}    # 详情页(d = detail)
/sitemap.xml            # 多语言站点地图
/robots.txt

内容多语言

  • 每条内容带 lang 字段;同一内容不同语言建议各建一条,meta_json.variant_ids 互相关联;
  • 列表接口 ?lang= 过滤;
  • SEO 建议输出 hreflangcanonical,并在 sitemap 中列出所有语言变体。

RTL(阿拉伯语)

ar 语言需启用 RTL:<html dir="rtl" lang="ar">,同时把 CSS 逻辑属性(margin-inline-start 等)做好;OCPS 前端统一用逻辑方向,RTL 自动翻转。

模板的 8 语言

模板名称/描述支持 name_json / description_json(8 语言键),市场展示按当前语言取词。