如何在Android Studio中创建uz_Cyrl等自定义新Locale?
Android Studio 自定义uz_Cyrl语言区域的实现方法
Android Studio内置的语言选择弹窗确实未预置西里尔字母版本的乌兹别克语选项,但完全可以通过手动配置创建可用的uz_Cyrl语言区域,所有配置不依赖AS的内置Locale枚举列表。
操作流程
- 在项目的
app/src/main/res/路径下,手动创建带脚本限定符的资源目录,uz_Cyrl对应的合法目录名为values-uz-b+Cyrl。注意脚本限定符必须携带b+前缀,否则会被AS判定为无效目录,无法识别对应翻译资源。 - 向上述新建目录中放入适配西里尔字母的翻译资源文件(如
strings.xml),AS会自动扫描识别合法资源目录,不会因为该Locale未出现在内置选择列表中报错。 - 在代码中手动构建对应Locale实例,规避系统内置Locale枚举缺失的问题,示例代码:
// 构建uz_Cyrl标准Locale对象 val uzCyrlLocale = Locale.Builder() .setLanguage("uz") .setScript("Cyrl") .build() - 应用的Locale切换逻辑中,将上述构建的Locale对象传入系统配置参数,系统会自动匹配加载
values-uz-b+Cyrl目录下的翻译内容。 - 配置完成后,AS的资源预览面板会自动识别已建立的uz_Cyrl资源选项,可直接切换语言环境查看布局渲染效果。
兼容注意事项
- API 24以下的系统不支持脚本限定符的自动识别,这类场景下可通过自定义资源映射逻辑,将uz_Cyrl的Locale配置手动关联到对应资源目录,保证低版本设备也能正常加载西里尔字母翻译内容。
- 注意和AS内置的拉丁版乌兹别克语资源做严格隔离,不要将西里尔版本的翻译写入拉丁版uz资源目录,避免出现资源串用问题。
内容的提问来源于stack exchange,提问作者Azizjon
相关产品推荐
相关产品推荐

