程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
国际化 相关技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
Intl.NumberFormat 不解析:19 位金额串、min2 分组与 -0 的三种显示
编程
Intl.NumberFormat 不解析:19 位金额串、min2 分组与 -0 的三种显示
2026-11-02 00:04:30
Intl.NumberFormat 只格式化不解析,三处容易踩的地方:JSON 金额是字符串时先 parseFloat 会把 19 位数字末位抹成 0(v3 起字符串按十进制精确解析,BigInt 分单位可加 E-6 直传);useGrouping 的 'min2' 让 1000 不分组、10000 才分组,字符串 'true'/'false' 会被静默替换成默认值;signDisplay 五个取值对负零的显示从 "-0" 到 "+0" 各不相同。另附 formatToParts 反解本地化数字的写法与 round-trip 校验。
Intl.NumberFormat
Intl
i18n
国际化
JavaScript
前端
MF2 各实现版本不一致:ICU4J 升到 draft、ICU4C 停在 CLDR 47、JS 包 4.1 已到 48.2
案例
MF2 各实现版本不一致:ICU4J 升到 draft、ICU4C 停在 CLDR 47、JS 包 4.1 已到 48.2
2026-10-30 00:03:47
MF2 规范 Stable 不等于四个实现一致:ICU4J 在 ICU 78 升到 draft 且对齐 CLDR 48,ICU4C 仍停在 CLDR 47,ICU4X 才刚落地初始实现,JS 包 messageformat 4.1 对齐 LDML 48.2/49。给出实现版本矩阵、可跑的 JS 接入代码、语法/数据模型/运行期三层错误分型与接入检查清单。
MF2
MessageFormat
ICU
ICU4J
ICU4C
ICU4X
i18n
国际化
CLDR
JavaScript
本地化
稳定性
parentLocales 与 uloc_getParent 不是一回事:en-GB 的父级是 en-001,ICU 截成 en
案例
parentLocales 与 uloc_getParent 不是一回事:en-GB 的父级是 en-001,ICU 截成 en
2026-10-26 00:04:49
ICU 的 uloc_getParent 只按最后一个下划线截断,CLDR 的 parentLocales.json 里 en-GB 却指向 en-001、zh-Hant 指向 und。本文对照两套 parent 语义,梳理 CLDR 45 把 parentLocales 按 component 分表、新增 nonlikelyScript 规则后,只读显式 locales 列表的代码会在哪个版本开始出错,附可跑的对照脚本与升级自查清单。
parentLocales
CLDR
locale
i18n
ICU
国际化
Java
Intl.DateTimeFormat 的 dateStyle 与单组件互斥:容器里差 8 小时与 hourCycle 的 0/1 起点
案例
Intl.DateTimeFormat 的 dateStyle 与单组件互斥:容器里差 8 小时与 hourCycle 的 0/1 起点
2026-10-25 00:06:07
Intl.DateTimeFormat 有两类不会提示的失败:dateStyle/timeStyle 与 hour、year 等单组件同时写会直接抛 TypeError;timeZone 默认取运行时时区,容器里通常 UTC,服务器与浏览器输出就差 8 小时。文中给出互斥规则与 resolvedOptions 不展开的原因、IANA 与偏移两种时区写法、h11/h12/h23/h24 的起点差异与 hour12 的覆盖顺序,并附一段可跑的断言脚本。
Intl
Intl.DateTimeFormat
i18n
国际化
前端
JavaScript
时区
Intl.NumberFormat 位数与舍入:只设 minFrac 会把 maxFrac 定成 3,分组符也不一定是空格
编程
Intl.NumberFormat 位数与舍入:只设 minFrac 会把 maxFrac 定成 3,分组符也不一定是空格
2026-10-25 00:04:53
Intl.NumberFormat 的位数与舍入选项有大量会静默生效的默认值:只写 minimumFractionDigits 会把 maximumFractionDigits 定成 3,roundingIncrement 不给 maxFrac 就被压成 0,旧引擎还会直接忽略 roundingMode。文中列出默认值表、九种舍入模式对照、0.05/0.1 舍入写法、fr-FR 的 U+202F 分组符,以及一套 resolvedOptions 自检与排查顺序。</description> <||DSML|| parameter name="keywords" string="true">Intl.NumberFormat|IntlNumberFormat|roundingMode|roundingIncrement|trailingZeroDisplay|roundingPriority|i18n|前端国际化|金额格式化
Intl
Intl.NumberFormat
i18n
国际化
前端
JavaScript
ICU
MF2 随 CLDR 47 转正:数据模型、MF1 语法对照与迁移验证
案例
MF2 随 CLDR 47 转正:数据模型、MF1 语法对照与迁移验证
2026-10-23 00:03:33
MF2 在 CLDR 47 转为 Stable,但 ICU4J/ICU4C 的 message2 仍是技术预览。本文拆开 MF2 的数据模型:声明、matcher 四条合法性约束、Syntax Error 与 Data Model Error 的分层,给出与 MF1 的四处硬差异对照(占位符、复数、转义、兜底)以及 bidi 默认策略对断言的副作用和迁移检查清单。
MessageFormat
MF2
i18n
国际化
ICU
CLDR
本地化
ICU 79 升级笔记:UnicodeString 将被标 final、H24 弃用,从 78.3 到 79 要验证的 5 件事
案例
ICU 79 升级笔记:UnicodeString 将被标 final、H24 弃用,从 78.3 到 79 要验证的 5 件事
2026-10-21 00:04:11
按「谁受影响 → 变更细节 → 怎么验证」梳理 ICU 78.3 到 79 的升级路径:ICU4C 要 C++17、ICU4J 最低 Java 11,79 计划把 UnicodeString 等类标 final、弃用 H24 并把周编号统一为 ISO,ICU4J 从 80 起不再保证跨版本 Java 序列化兼容;附 UnicodeSet pattern 解析变化、行断行反向迭代性能修复、tzdata 2026d 与数据裁剪手段。
ICU
Unicode
CLDR
国际化
i18n
升级迁移
CLDR locale 继承:en-GB 的父级是 en-001,不是 en
案例
CLDR locale 继承:en-GB 的父级是 en-001,不是 en
2026-10-20 00:07:16
CLDR 的 locale 继承不是删最后一个子标签:en-GB 的父级是 en-001,en-AT 要经过 en-150,es-MX 走 es-419,zh-Hant 直接回 und。本文用 5.8KB 的 parentLocales.json 给出真实映射、可运行的继承链代码,以及词条放在哪一层会影响哪些地区。
CLDR
locale
i18n
国际化
en-001
parentLocales
Node.js
Node 上 Intl 输出不一致:CLDR 48 的 unit ID 改名、周编号与 de-CH 分隔符
案例
Node 上 Intl 输出不一致:CLDR 48 的 unit ID 改名、周编号与 de-CH 分隔符
2026-10-20 00:04:18
同一段 Intl 代码在本地和线上输出不一致,多半不是代码问题,而是运行时打包了不同版本的 CLDR。本文给出 CLDR 48 的迁移清单:unit ID 从 permillion 改成 part-per-1e6、周编号改按 ISO、de-CH 分组符变 apostrophe、era code 与 territories 字段删除,并给出用 cldr-json 读数据、在 CI 里做版本与行为快照断言的做法。
CLDR
ICU
i18n
国际化
locale
Node.js
Intl
ICU MessageFormat 落地笔记:六个 CLDR 复数类别、`=N` 优先级与 MF2 技术预览(ICU 75.1)
编程
ICU MessageFormat 落地笔记:六个 CLDR 复数类别、`=N` 优先级与 MF2 技术预览(ICU 75.1)
2026-10-16 00:03:52
讲清 ICU MessageFormat 的工程细节:六个 CLDR 复数类别、other 必填与 =N 精确匹配的优先级、select/plural 嵌套顺序、花括号转义、skeleton 为何优于 string pattern,以及 MF2 在 ICU 75.1 的技术预览状态和 FormatJS/messageformat 两个实现库。
i18n
国际化
ICU
MessageFormat
CLDR
前端
Vue 3 聊天组件 Advanced Chat Components V3 RC:ESM-only、数据层自备、不是 v2 的 drop-in 替换
代码
Vue 3 聊天组件 Advanced Chat Components V3 RC:ESM-only、数据层自备、不是 v2 的 drop-in 替换
2026-10-08 21:31:46
Advanced Chat Components V3 RC 是一套带类型的 Vue 3 聊天组件库,同时提供框架无关的 Web Component 入口。本文按 README 讲清安装、Vue 与 Web Component 两种用法、mention 的 <@id> 序列化与附件 localUrl 所有权,以及"后端无关、数据层自己实现""V3 不是 v2 drop-in 替换"这两个关键取舍。
Vue
Web
Component
聊天组件库
TypeScript
国际化
主题
Varlet:70+ 组件的 Vue3 移动端组件库,用 touch-emulator 跑到桌面
编程
Varlet:70+ 组件的 Vue3 移动端组件库,用 touch-emulator 跑到桌面
2026-09-24 21:30:49
Varlet 是 varletjs 维护的 Vue3 组件库,基于 Material Design 2/3,面向移动端并可借 @varlet/touch-emulator 在桌面运行,提供 70+ 组件、按需引入、主题定制、SSR/Nuxt 与 90%+ 单测覆盖。给出项目地址、CDN 与 Vite 安装方式及官方生态清单。
Vue
Vue3
组件库
Material
Design
移动端
桌面端
国际化
Clarify:把 Mintlify 式文档站体验带回 Git 仓库,用 MDX/OpenAPI 构建静态站点
代码
Clarify:把 Mintlify 式文档站体验带回 Git 仓库,用 MDX/OpenAPI 构建静态站点
2026-09-06 21:34:33
Clarify 是开源可自托管的文档站点引擎:MDX+OpenAPI 3.0/3.1 渲染成多语言静态站,内容留 Git、本地 build。含 Pagefind 全文检索、typed 配置、React/Tailwind 渲染器与 llms.txt,作为 Mintlify 的自托管替代。
文档
OpenAPI
TypeScript
开发者工具
自托管
国际化
Wot UI:star,80+组件!官方Skill加持的uni-app多端组件库,轻量美观
案例
Wot UI:star,80+组件!官方Skill加持的uni-app多端组件库,轻量美观
2026-05-09 10:31:38
Wot UI:star,80+组件的uni-app多端组件库。覆盖微信/支付宝/钉钉/H5/APP,使用TypeScript构建,支持CSS变量主题定制和暗黑模式,内置15种语言包。最亮眼的是官方Skill文件,可直接加载到Cursor/Claude Code等AI编码助手,让AI生成符合组件规范的代码。vs TDesign:uni-app版本bug多,Wot UI更稳定实用。
uni-app
组件库
多端开发
TypeScript
CSS变量
暗色模式
国际化
小程序
H5
APP
开源
AI Skill
UI框架
图鸟UI
Vue3中如何实现国际化(i18n)?
编程
Vue3中如何实现国际化(i18n)?
2024-11-19 06:35:21
本文介绍了如何在Vue3中实现国际化(i18n)功能,包括安装VueI18n、配置、创建语言文件、在组件中使用翻译以及动态切换语言的实现。通过示例代码,读者可以学习如何支持多语言,从而提升用户体验。
前端开发
国际化
Vue框架
Web应用
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调