【HarmonyOS NEXT】FAQ之应用框架(无障碍本地化开发)

1、如何遍历rawfiles中的文件

A:使用Native API中的OH_ResourceManager_OpenRawDir()方法获取到rawfile的根目录,然后对其进行遍历。

2、怎么读取rawfile里的文件

A:引用rawfile下资源时使用"$rawfile('filename')"的形式,filename需要表示为rawfile目录下的文件相对路径,文件名需要包含后缀,路径开头不可以以"/"开头。

3、如何读取rawfile中的xml文件并转化为String类型

A:通过resourceManager的getRawFileContent接口获取xml数据,再通过util工具函数中的decodeWithStream接口将获取的数据转化为String类型。

4、如何通过接口获取resource目录的路径

A:由于应用以HAP形式进行安装,安装完成后不会解压HAP包,所以在程序运行时无法获取resource路径。

可以考虑如下两种方式获取资源文件:

  • 使用$r或者$rawfile访问。适合静态访问,程序运行时不改变资源路径。

  • 使用ResourceManage访问。适合动态访问,程序运行时可动态改变资源路径。

5、资源管理内的getPluralString方法获取value值有误

A:getPluralString接口只支持英文系统,不支持中文。

6、如何获取resources目录中自定义的string字段

A:使用ResourceManager模块的getStringValue方法获取。

7、Resource类型如何转为String

A:Resource为string支持限定词目录使用this.context.resourceManager.getStringSync($r('app.string.test').id),可以同步转换,不支持$r('app.string.test', 2)方式。

8、数字支持货币分隔符显示吗

A:可以通过NumberFormat去设置数字的显示格式

let numfmt = new Intl.NumberFormat(); 
console.info(`numfmt: ${numfmt.format(1000000)}`);

9、$r() 这个获取资源的接口的参数只能是固定的字符串,不能使用字符串类型的变量吗

A:$r()是编译时处理,不支持程序运行时动态改变,运行时推荐使用ResourceManage对资源文件进行访问。

10、如何使用实现汉字转拼音

A:可以通过Transliterator来转换汉字成拼音。

参考代码如下:

import { i18n } from '@kit.LocalizationKit';  
let transliterator = i18n.Transliterator.getInstance("Any-Latn");  
let res: string = transliterator.transform("中国"); // res = "zhōng guó"

11、如何将文件转换成字符串

A:如下

  • 获取resources/rawfile目录下对应的rawfile文件内容。

  • 调用util模块的TextDecoder将字节数组解码为字符串。

  • 对Uint8Array解码。

更多详情查看:文档中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值