前端国际化实现:别再只支持中文了

前端国际化实现:别再只支持中文了

前端国际化实现:别再只支持中文了

毒舌时刻

这代码写得跟网红滤镜似的——仅供参考。

各位前端同行,咱们今天聊聊前端国际化。别告诉我你的应用只支持中文,那感觉就像只卖一种口味的冰淇淋——单调又无趣。

为什么你需要国际化

最近看到一个项目,所有文本都硬编码在代码里,要支持英文时傻眼了,我差点当场去世。我就想问:你是在开发应用还是在开发中文专用软件?

反面教材

// 反面教材:硬编码文本 function LoginForm() { return ( <form> <h1>登录</h1> <input placeholder="请输入邮箱" /> <input placeholder="请输入密码" type="password" /> <button>登录</button> <p>还没有账号?<a href="/register">立即注册</a></p> </form> ); } 

毒舌点评:这代码,我看了都替你的海外用户着急。硬编码中文,你是想让外国用户看天书吗?

前端国际化的正确姿势

1. 使用i18next

// 正确姿势:使用i18next // i18n/index.js import i18n from 'i18next'; import { initReactI18next } from 'react-i18next'; import zh from './locales/zh.json'; import en from './locales/en.json'; i18n .use(initReactI18next) .init({ resources: { zh: { translation: zh }, en: { translation: en } }, lng: 'zh', fallbackLng: 'zh', interpolation: { escapeValue: false } }); export default i18n; // locales/zh.json { "login": { "title": "登录", "email": "请输入邮箱", "password": "请输入密码", "button": "登录", "noAccount": "还没有账号?", "register": "立即注册" } } // locales/en.json { "login": { "title": "Login", "email": "Please enter email", "password": "Please enter password", "button": "Login", "noAccount": "No account?", "register": "Register now" } } // 使用 import { useTranslation } from 'react-i18next'; function LoginForm() { const { t, i18n } = useTranslation(); const changeLanguage = (lng) => { i18n.changeLanguage(lng); }; return ( <form> <h1>{t('login.title')}</h1> <input placeholder={t('login.email')} /> <input placeholder={t('login.password')} type="password" /> <button>{t('login.button')}</button> <p> {t('login.noAccount')} <a href="/register">{t('login.register')}</a> </p> <button onClick={() => changeLanguage('zh')}>中文</button> <button onClick={() => changeLanguage('en')}>English</button> </form> ); } 

2. Vue3中使用vue-i18n

// 正确姿势:Vue3国际化 // i18n/index.js import { createI18n } from 'vue-i18n'; const messages = { zh: { message: { hello: '你好', welcome: '欢迎, {name}!' } }, en: { message: { hello: 'Hello', welcome: 'Welcome, {name}!' } } }; const i18n = createI18n({ locale: 'zh', fallbackLocale: 'en', messages }); export default i18n; // main.js import { createApp } from 'vue'; import App from './App.vue'; import i18n from './i18n'; const app = createApp(App); app.use(i18n); app.mount('#app'); // 使用 <template> <p>{{ $t('message.hello') }}</p> <p>{{ $t('message.welcome', { name: '张三' }) }}</p> <button @click="$i18n.locale = 'en'">English</button> </template> 

毒舌点评:早这么国际化,你的应用早就走向国际了。别告诉我你还只支持中文,那你还是趁早去开发国内市场吧。

实战技巧:国际化指南

1. 国际化最佳实践

  1. 提前规划:项目初期就考虑国际化
  2. 提取文本:所有用户可见文本都要提取
  3. 格式化:日期、数字、货币都要本地化
  4. RTL支持:阿拉伯语等从右到左的语言

2. 常用工具

  • i18next:React国际化
  • vue-i18n:Vue国际化
  • FormatJS:格式化库
  • react-intl:React国际化

最后想说的

国际化不是可选项,是必选项。别再只支持中文了——国际化一下,你的应用会走向更广阔的市场。

国际化就像学外语,一开始觉得麻烦,但学会后世界大门就打开了。别做井底之蛙,做世界公民。

Read more

MK米客方德SD NAND:无人机存储的高效解决方案

MK米客方德SD NAND:无人机存储的高效解决方案

在无人机技术迅猛发展的当下,飞控系统的数据记录对于飞行性能剖析、故障排查以及飞行安全保障极为关键。以往,SD 卡是飞控 LOG 记录常见的存储介质,但随着技术的革新,新的存储方案不断涌现。本文聚焦于以 ESP32 芯片为主控制器的无人机,创新性采用 SD NAND 芯片 MKDV32GCL-STPA 芯片进行 SD NAND 存储,测试其在飞控 LOG 记录功能中的表现。 米客方德 SD NAND 芯片特性 免驱动优势:与普通存储设备不同,在该应用场景下,SD NAND 无需编写复杂的驱动程序。这极大地简化了开发流程,缩短了开发周期,减少了潜在的驱动兼容性问题,让开发者能够更专注于实现核心功能。 自带坏块管理功能:存储设备出现坏块难以避免,而 MKDV32GCL - STPA 芯片自带的坏块管理机制可自动检测并处理坏块。这确保了数据存储的可靠性,避免因坏块导致的数据丢失或错误写入,提升了整个存储系统的稳定性。 尺寸小巧与强兼容性:

搭建自己的AI API对话机器人UI程序完全指南(有完整代码,在Python3.13环境下即拿即用)

搭建自己的AI API对话机器人UI程序完全指南(有完整代码,在Python3.13环境下即拿即用)

目录 第一章 项目概述与核心特性 1.1 项目背景与意义 1.2 核心功能特性 第二章 环境与依赖准备 2.1 系统需求与Python环境 2.2 必需的Python库安装 2.3 API服务账户注册与配置 第三章 应用架构与核心代码解析 3.1 整体架构设计与类结构 3.2 Markdown处理引擎 3.3 UI界面构建与布局设计 3.4 核心通信机制 第四章 免费模型与基础使用 4.1 可用的免费模型列表 4.2 基础使用流程与最佳实践 第五章 付费模型配置与进阶使用 5.1 付费模型的种类与定价体系 5.2 修改代码以使用付费模型

openclaw飞书机器人权限管理

为了确保 OpenClaw 既能顺畅运行,又不至于因权限过大导致安全隐患,建议在飞书开发者后台 - 权限管理中,按照以下清单进行勾选。 这份清单分为基础必备和进阶功能两部分: 1. 基础必备权限(无论个人还是团队,必须开启) 这些权限保证机器人能“听到”指令并“开口”说话: * im:message:p2p_msg:readonly (接收单聊消息) —— 允许机器人和你 1 对 1 聊天。 * im:message:group_at_msg:readonly (接收群聊中@机器人的消息) —— 团队场景下,机器人只响应被 @ 的内容,保护群隐私。 * im:message.p2p_msg:send (发送单聊消息) —— 机器人回复你的基础。 * im:message.

AI绘画:解锁商业设计新宇宙(6/10)

AI绘画:解锁商业设计新宇宙(6/10)

1.AI 绘画:商业领域的潜力新星 近年来,AI 绘画技术以惊人的速度发展,从最初简单的图像生成,逐渐演变为能够创造出高度逼真、富有创意的艺术作品。随着深度学习算法的不断优化,AI 绘画工具如 Midjourney、Stable Diffusion 等的出现,更是让这一技术走进了大众的视野,引发了广泛的关注和讨论。这些工具不仅操作简便,而且能够在短时间内生成多种风格的绘画作品,大大降低了绘画创作的门槛。 AI 绘画在商业领域展现出了巨大的潜力。据相关数据显示,2021 年中国 AI 绘画市场规模仅为 0.1 亿元,而预计到 2026 年将激增至 154.66 亿元 ,年复合增长率高达 244.1%。这一迅猛的增长趋势,反映出 AI 绘画在商业应用中的广阔前景。越来越多的企业开始认识到 AI 绘画的价值,并将其应用到广告、插画、