Android多语言适配核心是按locale提供values-xx目录下的strings.xml,系统自动加载;需统一key、保留格式符、正确转义特殊字符,并通过目录命名(如values-zh-rCN)区分语言地区。

Android 的 strings.xml 实现多语言适配,核心是**按语言区域(locale)提供不同目录下的资源文件**,系统会根据设备语言设置自动加载对应版本。不需要代码判断,靠资源目录结构和命名规则就能完成。
按语言代码创建资源目录
在 app/src/main/res/ 下,为每种语言新建以 values-xx 命名的目录,其中 xx 是语言代码(ISO 639-1),可加地区后缀(如 zh-rCN 表示简体中文-中国):
-
values/→ 默认语言(通常为英文,strings.xml必须存在) -
values-zh-rCN/→ 简体中文(中国) -
values-zh-rTW/→ 繁体中文(台湾) -
values-ja/→ 日文 -
values-ko/→ 韩文 -
values-es/→ 西班牙语
每个目录下放一份 strings.xml,内容结构一致,仅翻译文本值。例如:
My App
在 values-zh-rCN/strings.xml 中写成:
我的应用
确保 key 名称完全一致
所有语言的 strings.xml 中,name 属性必须严格相同,否则运行时找不到字符串,可能崩溃或回退到默认值。建议:
主要特性: 1、支持多种语言 BEES支持多种语言,后台添加自动生成,可为每种语言分配网站风格。 2、功能强大灵活 BEES除内置的文章、产品等模型外,还可以自定义生成其它模型,满足不同的需求 3、自定义表单系统 BEES可自定义表单系统,后台按需要生成,将生成的标签加到模板中便可使用。 4、模板制作方便 采用MVC设计模式实现了程序与模板完全分离,分别适合美工和程序员使用。 5、用户体验好 前台
- 先写好
values/strings.xml,再复制到其他目录逐个翻译 - 用 Android Studio 的 Translation Editor(右键 strings.xml → Open Translation Editor)统一管理,避免漏翻、错 key
- 不要在某语言文件里删掉某个
,缺失项会回退到默认 values,可能造成混用
处理特殊字符与格式化字符串
翻译中需注意保留占位符和转义:
- 含参数的字符串要保持
%s、%d等格式符不变,顺序可按目标语言调整(用%1$s显式编号更安全) - 单引号需写成
''(两个单引号),否则 XML 解析报错 - 换行用
\n,但 XML 中建议直接写或用包裹大段含符号文本 - 避免硬编码数字、单位、日期格式——这些应通过
java.text或android.text.format动态格式化
测试与调试技巧
验证多语言是否生效,不用反复改手机系统语言:
- Android Studio 模拟器:设置 → System → Languages & input → Languages → 添加并置顶目标语言
- 真机调试:用 ADB 强制切换(需开启开发者选项):
adb shell am force-stop com.yourpackage && adb shell am start -n com.yourpackage/.MainActivity,再配合adb shell settings put global sys_language zh_CN(部分厂商支持) - 在代码中临时强制使用某语言(仅限调试):
用Configuration+Resources.updateConfiguration()(API 24+ 推荐用createConfigurationContext()) - 检查未翻译项:AS 的 Translation Editor 会标黄提示缺失翻译
基本上就这些。关键是目录命名规范、key 统一、格式符保留,剩下的交给系统自动匹配。不复杂但容易忽略细节,比如繁简中文分目录、单引号转义、参数顺序本地化——这些都影响最终体验。









