← Croprix 品牌手册 · 源文件 localisation/README.md

Croprix 品牌本地化规则(localisation/)

版本 1.1.0 · 2026-09-22 · 上游:brand/decisions.md §1 §3 §4 §7 §8。本文为 decisions.md 的下游细则;本文出现而 decisions 未定义的数值(光泽度、RAL 备选、色带具体色阶、标签尺寸、标语分隔线等)以本文为准,冲突时以 decisions 为准。

0. 目录与用法

文件 内容 谁用
locales.json 17 个 locale 的登记表:市场、脚本、字体 token、字重/行高、引号、数字/日期/时间/货币/面积单位、电话、地址、标语、色彩与影像注记 官网 src/i18n/、印刷品、销售材料
fonts.json 按脚本的字体栈:主字体、备选、系统栈、许可、获取地址、是否已打包、CJK 标题字重上限、行高 前端、打包、供应商
lang.css :lang()--cx-font-family-*,CJK / 阿拉伯 / 天城文 / 泰文 / 越南文排版规则,RTL 镜像规则 所有 HTML 交付物(在 tokens/dist/tokens.css 之后引入)
glossary.csv 术语表:整棚管理 + 温室 + 机器人 + 七类机器人 + 环境六项,17 种语言固定译法 翻译流程、译员、官网内容
examples/tagline-<code>.svg 每个 locale 的标志 + 标语锁定版(自包含 SVG) 手册、供应商
examples/contact-sheet.svg / .png 17 张锁定版拼版,用于核对比例与字号 评审
rtl-demo.html 同一版面 LTR / RTL 并排,验证镜像规则 前端
build.mjs Node 24 零依赖:校验 locales.json(ICU 比对、字符计数)、生成 examples、渲染 PNG 维护者

重新生成:node brand/localisation/build.mjs--no-png 跳过渲染)。渲染依赖 /opt/homebrew/bin/rsvg-convert;脚本会强制 PANGOCAIRO_BACKEND=fc 并临时写一份 fonts.conf 把 brand/assets/fonts/ 加进字体目录(macOS 的 Homebrew pango 默认走 CoreText,看不到打包的 Montserrat)。

改动流程:改 decisions.md → 改本目录 JSON/CSS → 跑 build.mjs → 看 contact-sheet.png

1. 名称与标志不翻译

2. 标语锁定版(lockup)

标语是标志附近唯一允许出现的翻译文字(decisions §7.1)。

几何(源自 Croprix_color.svg 的 path 坐标,build.mjs 里同一组常数)

源文件单位 标志墨迹高 64 px 时
墨迹框 x 63.9–3340.9,y 55.2–1044.3 212 × 64 px
字标 x 高(r 的高度) 845.7 − 292.7 = 553 35.8 px
叶标高 L 857.1 − 283.1 = 574 37.1 px
字标基线 y = 845.7 墨迹顶下 51.2 px
标语字高上限 0.45 × x 高 16.1 px

规则

  1. 位置:字标右侧(LTR)或左侧(RTL),或字标下方(堆叠版)。右侧版:字标与标语之间一条竖分隔线,高 1 L、底端对齐字标基线,线两侧各留 1 L(沿用 decisions §2.3 联合品牌间距);标语基线对齐字标基线。下方版:标语顶部距字标基线 0.5 L,左对齐字标左缘(RTL 右对齐右缘)。
  2. 字高 ≤ 字标 x 高 × 0.45。“字高”按脚本取:拉丁/西里尔/越南文 = 大写字高(cap height),CJK = 字面高,阿拉伯 = alef 高,天城文 = 头线到基线,泰文 = 主体高(不含上下标记)。build.mjs 用各脚本的「字高/字号」比例把上限换算成字号:Montserrat 0.70 → 23 px;CJK 0.92 → 17.5 px;阿拉伯/天城文/泰文 0.72 → 22 px。
  3. 字重 500(拉丁/西里尔)、500(CJK)、500(其它脚本);字距 0,不全大写,不斜体。
  4. 颜色 sand.700 #6E6860(默认)或 navy.900 #003459(深色底上用 sand.50)。不用 Leaf。
  5. 分隔线 sand.400 #B5AEA6,1 px。
  6. 最小尺寸:锁定版跟随主标最小尺寸(屏幕宽 ≥ 96 px);标志宽 < 160 px 时去掉标语,只放标志。
  7. 标语文本一律取 locales.jsontagline(去掉尾部 ? 标记);不在设计稿里另译。

3. RTL 镜像规则

适用:ar(首批)、fa、he(后续)。整体靠 dir="rtl" + CSS 逻辑属性,不写 left/right、不写 float

元素 RTL 下 实现
版面:导航顺序、栅格列、卡片顺序、表格列、面包屑 镜像 dir="rtl"margin-inline-* / padding-inline-* / inset-inline-* / border-inline-start
文本对齐 起始对齐 text-align: start(不写 left)
标志(字标 + 叶标、symbol、堆叠版) 不镜像,内部保持 LTR .cx-logo { direction: ltr; transform: none }
标语锁定版 标语移到标志左侧,标志本身不动 examples/tagline-ar.svg
带方向的图标:arrow-right / arrow-left、chevron-left / right、external-link、undo / redo、分页、“下一步”、进度指示、展开/收起(横向) 镜像 .cx-icon--directional { transform: scaleX(-1) }(仅在 [dir="rtl"] 下生效)
表意图标:check、close、clock、calendar、search、settings、user、team、phone、mail、location、robot、greenhouse、sensor、model/ai、alert / warning / error / info、cloud、upload / download、七类机器人、环境六项 不镜像 .cx-icon--symbolic
媒体控制:play、pause、stop 不镜像(行业惯例,播放键永远朝右) .cx-icon--symbolic
纵向 chevron-down / chevron-up、menu(汉堡) 不镜像 .cx-icon--symbolic
数字、日期、时间、电话、邮箱、代码、URL、品牌名 保持 LTR,双向隔离 .cx-num / .cx-ltr / codedirection: ltr; unicode-bidi: isolate
滑块、进度条、评分星 镜像(0 在右) 逻辑属性
图表 x 轴不镜像(时间仍从左到右),图例与标签靠 dir 处理 图表库配置
照片 不镜像(真实场景不翻转)

布局镜像示意(rtl-demo.html):

LTR                                   RTL
┌ [logo]        nav1 nav2 nav3 ↗ ┐    ┌ ↖ nav3 nav2 nav1        [logo] ┐
│ ▍卡片 A        ▍卡片 B          │    │          卡片 B▐        卡片 A▐ │
│ [ 主按钮 → ]  [ 次按钮 ]        │    │        [ 次按钮 ]  [ ← 主按钮 ] │
└─────────────────────────────────┘    └─────────────────────────────────┘

绿色描边(border-inline-start)从卡片左缘移到右缘;按钮里的箭头翻向左;标志不动、机器人/时钟/勾图标不动;12 ha · 08:302026-09-22 仍从左到右读。

4. CJK 排版 8 条

适用 zh-Hans、zh-Hant、ja、ko(第 2、6 条 ko 有例外)。

  1. 标点全角:中文/日文用全角标点(,。、:;!?),不用半角;句末不留空格。韩文用半角标点加空格(韩文书写规范),例外。
  2. 引号按语言:zh-Hans “ ” / ‘ ’;zh-Hant 与 ja 「 」 / 『 』;ko “ ” / ‘ ’。lang.css 已通过 quotes 属性给 <q>
  3. 不拉字距:标题与正文 letter-spacing: 0;不为“显得高级”把汉字拉开。全大写小标签的 +0.08em 不作用于 CJK。
  4. 粗体封顶 600:标题 500/600,正文 400;不用 700 及以上(笔画糊成一团,decisions §4)。三种 CJK 一致封顶(Hangul 能承受 700,但为一致仍 600)。
  5. 不用斜体:CJK 无斜体传统,系统合成斜体会歪扭。强调用字重 600(ko)或着重号(zh/ja,text-emphasis: filled sesame)。lang.css 已把 <em>/<i> 归正。
  6. 中西空隙:汉字与拉丁字母/数字之间留 0.25em:CSS text-autospace: ideograph-alpha(Chromium 118+、Safari 18.4+;Firefox 未实现),同时翻译源文本里手写一个半角空格兜底(如「Croprix 机器人」「12 ha」)。两者并存不会双重留空。ko 本来就有词间空格,不需处理。
  7. 数字与单位之间窄空格12 ha24 ℃800 ppm 用 U+202F 窄不换行空格;百分号与角度紧贴(85%30°)。数字本身用 Montserrat tabular figures(.cx-num)。
  8. 标题不全大写:CJK 标题里的拉丁词(Croprix、AI、CO₂)保持原大小写,不套 text-transform: uppercase;eyebrow/小标签在 CJK 页面里用 500 字重 + sand.700 代替全大写。

另:CJK 正文行高 1.75、标题 1.3(decisions §4);line-break: strict 禁止行首标点;ko 加 word-break: keep-all

5. 阿拉伯排版要点

6. 印地 / 泰 / 越 要点

印地(Devanagari) - Noto Sans Devanagari;行高 1.7、标题 1.35;禁止字距(合字与上下标记会错位);无大小写;不用斜体。 - 字号比拉丁大 5–10% 更易读(x 高矮),lang.css 未强制,按版面核看。 - 数字用西文数字(天城文数字 १२३ 仅礼仪场合);分组 3;2(lakh/crore):12,34,567.89;大额写 ₹12 लाख / ₹1.2 करोड़,不用 million。 - 农户口语里 पॉलीहाउस(polyhouse)比 ग्रीनहाउस 常见,术语表两者并列。 - 南部各邦(马哈拉施特拉、卡纳塔克、泰米尔纳德)印地语不通行,首批以英文覆盖,后续加 mr / kn / ta。

泰(Thai) - Noto Sans Thai(无环,标题);面向农户的正文建议 Noto Sans Thai Looped(有环);行高 1.9、标题 1.4(上下标记可叠三层);无大小写;不用斜体、不拉字距。 - 词间无空格,断行依赖字典:浏览器可处理;SVG/印刷排版工具(InDesign 需开 World-Ready Composer;Illustrator/Figma 不稳)需核看,否则用 U+200B 零宽空格手工标断点。 - 佛历:th-TH 默认 พ.ศ. = 公历 + 543,22/9/69 是 2026 年——跨市场材料禁止全数字短日期;写公历 22 กันยายน 2026(可标 ค.ศ.)或 ISO。 - 时间正文体例 14.05 น.;面积用 ไร่(rai,0.16 ha),公顷需并列。 - 影像:绝不使用王室相关影像;不拍脚朝人、跨过作物或人的画面。

越(Vietnamese-Latin) - Montserrat 覆盖越南文预组合字符;行高 1.7、标题 1.3(堆叠附加符号 Ấ Ệ Ỡ Ự 需要空间);字距 0;全大写时符号更高,标题全大写慎用(.cx-caps 在 vi 下行高 1.3、字距 +0.04em)。 - 44 px 以上核看 Montserrat 的堆叠符号是否碰撞(待核);不行则回退 Noto Sans。 - 术语:nhà kính(玻璃/泛指温室)、nhà màng(薄膜棚,最常见)、nhà lưới(网室)。 - 面积 sào 因地区而异(北 360 m²、中 500 m²、南 1,000 m² 称 công),对外材料写明地区并附公顷。 - 货币无小数:1.235 ₫,正文 1.235 đ;大额 1,2 tỷ đồng

7. 面积单位与货币换算规则

  1. 对外材料始终公顷优先:先写 ha,再按地区括注本地单位:12 ha(180 亩)12 ha(75 rai)12 ha(120 dönüm)12 ha(29.7 acres)12 ha(28.6 feddan)locales.json 每个 locale 的 areaUnits[0] 都是 hectare,build.mjs 校验。
  2. 换算系数(1 单位 = 多少 ha):亩 0.0667(1/15);甲 0.9699;坪/평 0.00033058;a(アール)0.01;反 0.09917;acre 0.4047;sq ft 0.0000092903;are 0.01;сотка/sotix 0.01;dekar/dönüm 0.1;dunam 0.1;feddan 0.42(4,200.83 m²);rai 0.16;ngan 0.04;ตารางวา 0.0004;guntha 0.010117;alqueire paulista 2.42 / mineiro 4.84;sào 0.036 / 0.05 / 0.1(按地区)。
  3. 因地而异的单位不单独出现:bigha(印度各邦 0.10–0.25 ha)、alqueire(巴西各州)、sào(越南三区)、fanega/hanegada(西班牙各省)——必须写明邦/州/区并附 ha,或直接不用。
  4. 温室单栋面积用 m²(海湾单栋 460–645 m²、印度 polyhouse 补贴档 4,000 m²、日韩口语 坪/평);园区总面积用 ha。
  5. 数字格式跟 localenumbers.decimal/group),分组符按 CLDR 用对应码点:fr U+202F、ru/uz U+00A0。同一份材料一种格式。
  6. 货币:跨市场材料写“数字 + ISO 码”(1,234.56 USD),单市场材料按 currency.example;多币种并列时用带前缀的符号(US$ / CN¥ / JP¥ / NT$ / HK$ / A$ / CA$ / MX$ / R$)。无小数币种(JPY、KRW、VND、IDR、UZS 实务)不写小数。汇率换算一律注明日期与来源,不在品牌材料里固化。
  7. 温度/CO₂/光照等环境量单位全球一致:℃、ppm、µmol·m⁻²·s⁻¹、W/m²;美国材料可括注 ℉。

8. 色彩文化注记总表

只做记录,不改品牌色(decisions §7.5)。Leaf 与 Navy 是锚点;Crimson 在所有市场只做错误/危险态。

市场 Leaf 绿 Navy 蓝 Crimson 红 其它
中国 / 台湾 / 香港 生态、农业、健康,正面 稳重、政企与科技惯用 喜庆、吉利,兼警示 → 只做错误态,不做促销 丧事联想,包装不用纯白大面积 台湾政治语境绿/蓝各有党派联想,不并置做对比
日本 自然、安全、農協 誠実、信頼 警告,也是祝事色(紅白) 清浄,也与丧服相关
韩国 친환경;NH농협 用绿+黄,Leaf 不与黄并置 신뢰 热情兼警告;红字写人名有死亡联想,人名不用红 纯净,也是丧服色
英语市场(US/CA/AU/NZ/ZA) 环保、有机、通行 企业可信 危险;北美零售打折信号 中性
法国 / 比利时 / 荷兰 生态、glastuinbouw 行业色;法国绿党政治色 机构、工程 报警 中性;Westland 玻璃温室本身是白/透明 荷兰橙为国家色,不在色板内
西班牙 / 拉美 农业、生态 企业可信 危险;西班牙国旗色 Almería 塑料棚本身是白色 墨西哥绿白红并置读成国旗,避免
巴西 自然;绿+黄并置读成国家象征 企业可信 危险 和平(新年穿白),正面
俄罗斯 / 中亚 自然、生态;中亚穆斯林市场正面 官方、可信 历史上兼“美/节庆”与警示 中性(雪、洁净) 乌兹别克国旗天蓝与白为国家象征,Navy/白无冲突
土耳其 伊斯兰与自然 企业可信 国旗与国族自豪,不只是危险 中性
阿拉伯市场 伊斯兰、沙特国旗色,极正面 可信、工程感 多国国旗色(BH、QA 栗红、KW、JO、EG) 纯洁、日常服饰,正面;黑才是丧色
印度 农业、绿色革命、伊斯兰;国旗绿=繁荣 安全、中性 吉祥(婚礼)兼警示 丧服与寡居,包装不用纯白大面积 Harvest 琥珀大面积可能读作藏红(宗教/政治),慎用
泰国 自然 国旗王室色,正面 2000–2010 年代政治阵营色 佛教纯洁 黄为另一阵营色,Harvest 不做政治性并置;黑为丧色
越南 自然、农业 安全 国旗与新年吉祥,兼警示 丧事(白头巾),包装不用纯白大面积 黄=财富/国旗星,红黄不大面积并置
印尼 / 马来西亚 伊斯兰、自然(NU 用绿) 安全 红白并置读成印尼国旗 纯洁,正面

9. 影像注记

通则见 decisions §6:真实温室、自然顶光、作物行透视、机器人在行间有作物或人做尺度参照;人是工作状态、不看镜头;不用摆拍、无人机大远景、CG、蓝绿滤镜。各市场补充:

市场 温室类型(用对的) 人物与服饰 禁忌
中国 日光温室(土墙/后墙)、连栋塑料棚;玻璃温室只在山东、京津冀等大园区 一线种植工、园区技术员,工装 政务/领导视察式构图
台湾 簡易溫網室(钢骨+塑料/防虫网,抗台风) 东亚面孔一线人员 用大陆日光温室代表台湾
日本 低軒高パイプハウス(塑料膜)为主;植物工場类玻璃温室是少数 含高龄农户与技能実習生;作業帽、长袖、手套 只呈现高龄形象
韩国 비닐하우스(单栋/连栋塑料);玻璃集中在스마트팜 혁신밸리 含外籍季节工 只用玻璃温室代表韩国
北美 / 澳新 / 南非 安大略 Leamington、BC 大型玻璃/多层膜 Venlo;澳新玻璃与塑料并存;南非塑料隧道棚 多元;食品安全语境下发网、高可视度背心 缺 PPE 的场景
法国 / 魁北克 布列塔尼、南特、普罗旺斯玻璃与多跨塑料;魁北克冬季补光 季节工多元;EPI 真实
荷兰 / 比利时 Westland Venlo 玻璃、高线番茄、管轨小车(机器人尺度参照)、补光夜景 含波兰等季节工
西班牙 / 墨西哥 Almería/Murcia raspa y amagado 塑料棚(主流);墨西哥 Sinaloa/Jalisco/Querétaro 中技术塑料温室 拉美/西班牙一线工人 只用北欧面孔
巴西 塑料 estufa 与 telado 网室(圣保罗、米纳斯、巴拉那、戈亚斯) 强日照,戴帽长袖 用 NFT 叶菜水培代表番茄
俄罗斯 / 哈萨克 / 白俄 大型工业玻璃温室联合体(5 代、全年补光)、冬季雪景 常穿白色工作服
乌兹别克斯坦 塔什干、撒马尔罕周边中韩承建的塑料/玻璃温室 女性田间劳动普遍 doppi 花帽等民俗符号做装饰
土耳其 Antalya 塑料温室(主流);爱琴海地热玻璃(Dikili、Afyon) 女性工人比例高
海湾 / 黎凡特 / 马格里布 海湾风机-湿帘单栋塑料/玻璃钢温室与网室,高技术玻璃是主权基金项目;约旦河谷塑料棚;马格里布隧道棚 海湾一线多为南亚外籍劳工,尊重呈现;沙特女性出镜少 左手递物;酒类/猪肉联想
印度 自然通风 polyhouse、锯齿顶、遮阳网室(浦那、班加罗尔、古吉拉特),单户 0.1–0.4 ha 女性劳动普遍;kurta/saree 与日常工装 民俗化;宗教符号入镜
泰国 雨棚(SPH)、防虫网室、蒸发降温塑料温室(清迈、叻丕、佛统) 长袖戴帽 王室影像;脚朝人、跨过作物/人的画面
越南 大叻高密度 nhà màng / nhà kính;Mekong nhà lưới nón lá 真实但不做标签
印尼 雨棚、网室、单栋塑料棚(Lembang、Malang、巴厘高地) 女性工人多戴头巾 左手递物

10. 翻译流程与术语表

流程:中文源(content/zh/)→ 英文(content/en/,母语级审校)→ 其它 15 种语言从英文译出、对照中文核意。sourceLocale = "zh"src/i18n/locales.ts)。

  1. 源文写作遵守 decisions §1 语调:陈述句、动词优先、无最高级、无感叹号;官网不写数字、不标产品状态。
  2. 英文版是其它语言的枢纽:术语先在 glossary.csven 列定死,再往下译;译员拿到的是 en + zh + glossary 三件。
  3. 术语表是硬约束:glossary.csv 里的固定译法不得在正文里改写;新术语先进表再用。
  4. 标语(locales.json.tagline)与术语表由母语者终审,? 标记未过终审。
  5. 数字/日期/货币/单位不由译员手写,按 locales.json 的格式字段由模板生成。
  6. 回译抽查:每种语言随机 10% 段落回译成英文比对。
  7. 官网加语言:locales.ts 加一行 → content/<code>/ 放齐每页 JSON → lang.css 已按脚本覆盖,无需改。

glossary.csvterm_zh, term_en, category, zh-Hans, zh-Hant, en, ja, ko, fr, nl, es, pt-BR, ru, uz, tr, ar, hi, th, vi, id。16 行:整棚管理、温室、机器人、七类机器人(授粉、巡检、采摘、运输、植保、打叶、落蔓)、环境六项(光照、温度、湿度、水分、CO₂、养分)。不确定的译法在单元格里带 ? 后缀。

11. 已标 ? 的项目

标语(6 条):uz、ar、hi、th、vi、id。译文是可用初稿,但需母语者按各自市场的温室行话确认(海湾 البيوت المحمية / 印度 polyhouse / 越南 nhà màng / 印尼 greenhouse 借词等)。

术语表(按语言) - uz:整棚管理、授粉(changlatish)、巡检(tekshiruv)、打叶、落蔓 - ar:整棚管理、打叶(إزالة الأوراق)、落蔓(إنزال النبات) - hi:整棚管理、打叶、落蔓 - th:整棚管理、巡检、打叶、落蔓 - vi:整棚管理 - id:整棚管理、打叶、落蔓 - pt-BR:落蔓(abaixamento das plantas) - tr:落蔓(sarkıtma / bitki indirme)

「打叶」「落蔓」是高线番茄的行业动作,多数语言没有通行词,需向当地温室从业者核,不能靠词典。

12. 待核清单

格式(locales.json 里标 verify) 1. zh-Hant:新台币实务是否写小数;HK 材料日期用 d/M/y;标语用「溫室」而 zh-Hans 用「整棚」,母语终审确认是否保留「整棚」(行业口语,繁体市场是否通行)。 2. nl:引号——荷兰报刊多用单引号 ‘…’ 作外层,CLDR 版本间不一致,先按双外单内。 3. uz:地址顺序(现按大到小);出版物是否常用 « »;Montserrat 是否含 U+02BB(oʻ gʻ 的 ʻ),否则退到 Noto Sans。 4. ko:정보 是否列入对外材料(历史单位)。 5. es:hanegada(≈ 831 m²)与 fanega(各省 0.2–0.65 ha)系数。 6. id:bahu(≈ 0.7096 ha)、tumbak(≈ 14.06 m²)系数。 7. hi:bigha 各邦系数(Punjab/Haryana ≈ 0.10、WB/Assam ≈ 0.134、Gujarat ≈ 0.16、Rajasthan/UP pucca ≈ 0.25 ha)。 8. ru:地址顺序——现代俄邮为小到大,旧体例大到小;按客户文书习惯定。 9. ar:各国货币符号(沙特 2025 年起有新里亚尔符号)与 SVG/印刷剥离方向控制符的流程。 10. th:SVG/印刷工具的泰文断行能力(InDesign World-Ready Composer、Figma)。 11. vi:Montserrat 堆叠附加符号在 ≥ 44 px 的碰撞。

市场覆盖 12. tr:土耳其不在 country-and-cohorts.md../../notes/research/database/emerging-market/country-and-cohorts.md)价值池表内,但 decisions §7 要求首批覆盖——市场数据库待补。 13. zh-Hant:台湾/香港不在价值池表内,仅为沟通覆盖。 14. UA:乌克兰在价值池表内,但不用俄语版服务,需要 uk 版本。 15. MY:马来西亚首批用 en 覆盖,正式材料需 ms 版。 16. KZ:哈萨克语(kk)材料后续。 17. IN 南部各邦:mr / kn / ta 后续。 18. IL:以色列在价值池表内(dunam),需要 he(RTL)版本,后续。

Token / 字体 19. tokens/dist/tokens.css 已提供 --cx-font-family-{sans,cjk,cjk-hant,ja,ko,arabic,devanagari,thai,mono}--cx-letter-spacing-{heading,caps,body}lang.css 按此引用;var() 的第二参数只作无 tokens.css 时的兜底。 20. 字体已打包:brand/assets/fonts/ 含 Montserrat(latin / latin-ext / cyrillic-ext;覆盖全部 134 个越南文预组合字符与乌兹别克 ʻ U+02BB)、Noto Sans SC/TC/JP/KR/Arabic/Devanagari/Thai 与 JetBrains Mono 的 woff2 分片,fonts.css 带 unicode-range;fonts.json 的 packaged 字段以此为准。

渲染环境 21. contact-sheet.png 在本机用系统字体渲染:CJK 用 Hiragino(非 Noto/PingFang),阿拉伯 Geeza Pro,天城文 Kohinoor,泰文 Thonburi——形态与最终 Web 字体不同,只用于核比例与字号,不作字形审定。