自己封装的一个实现选择图片弹框国际化的方法,返回的格式与 uni.chooseImage,因此可以把 uni.chooseImage 替换掉,在main.js挂到了Vue原型上:
/** 封装国际化选择图片
* @param {Object} self 组件中的 this
* @param {Object} params 配置参数
*/
Vue.prototype.selectImage = (self, params = {}) => {
let count = params.count || 1; // 数量
let sizeType = params.sizeType || ['original', 'compressed']; // 原图和压缩图
let sourceType = params.sourceType || ['album', 'camera']; // 相册和相机
let success = params.success || function success(){}; // 成功回调
let fail = params.fail || function fail(){}; // 失败回调
let option = {
cancel: self.$t('prompt.btn2'), // i18n取消文字
buttons: [{
title: self.$t('prompt.imgBtn1') // i18n相机文字
},
{
title: self.$t('prompt.imgBtn2') // i18n相册文字
}
]
};
if(!sourceType.includes('album')) delete option.buttons[0];
if(!sourceType.includes('camera')) delete option.buttons[1];
plus.nativeUI.actionSheet(option,
async (tap) => {
if(tap.index === 1) {
// 拍照
const cmr = plus.camera.getCamera();
cmr.captureImage((path) => {
plus.io.getFileInfo({
filePath: path,
success: res => {
let result = {
errMsg: "chooseImage:ok",
tempFilePaths: [path],
tempFiles: [{
path: path,
size: res.size
}]
};
success(result);
},
fail: err => fail(err)
});
}, (err) => {fail(err)});
} else if (tap.index === 2) {
// 从相册选择
plus.gallery.pick(
(res) => {
let filesList = res.files;
let tempFiles = [];
for (let path of filesList) {
plus.io.getFileInfo({
filePath: path,
success: r => {
console.log(r);
tempFiles.push({
path: path,
size: r.size
});
if(tempFiles.length === filesList.length) {
success({
errMsg: "chooseImage:ok",
tempFilePaths: filesList,
tempFiles
})
}
},
fail: err => fail(err)
});
}
}, (err) => {fail(err)},{
filter: "image",
multiple: true,
maximum: count,
system: false,
});
}
});
}
10 个回复
最佳回复
DCloud_UNI_GSQ
uni-app 内置国际化方案说明 https://ask.dcloud.net.cn/article/38821
DCloud_UNI_GSQ
感谢反馈,后续会处理
TTOOMM (作者)
谢谢,还有Picker的取消和确认
2020-02-10 15:26
3***@qq.com
最近项目也遇到选择图片的国际化问题了,希望能尽快处理,或者给出临时解决方案,谢谢。
2020-03-06 21:25
l***@thinmoo.com
处理好了?被国外用户吐槽,受不了了
2020-06-30 14:43
DCloud_UNI_GSQ
回复 l***@thinmoo.com: iOS还是安卓,具体哪里?
2020-07-01 16:51
英盟
相册选择图片国际化,有解决方案吗?
2020-08-11 09:47
Meaty
希望早点解决
2020-12-11 11:48
l***@aol.com
一年了,这个问题处理一下这么难么?就算不能用户自定义,至少根据系统语言切换一下啊?或者你好歹默认个英文行不行?
2021-02-27 16:12
3***@qq.com - 80H
顶一个,希望能尽快解决,项目中使用了,发现n多的坑,有点悔不当初
QiuXc
自己封装的一个实现选择图片弹框国际化的方法,返回的格式与 uni.chooseImage,因此可以把 uni.chooseImage 替换掉,在main.js挂到了Vue原型上:
远夏
大佬,我用你这个的话,我要怎么处理选中图片之后的逻辑呢?
2020-12-22 15:57
刀塔之妖
这个有进展吗?
我的天
TTOOMM (作者)
不清楚,我自己写了一个
2020-09-01 12:34
TTOOMM (作者)
还有一个webview的国际化问题
帖子如下:
https://ask.dcloud.net.cn/question/103786
c***@fjtjhwlkjwwgc.onexmail.com
顶一个
l***@aol.com
一年了,这个问题处理一下这么难么?就算不能用户自定义,至少根据系统语言切换一下啊?或者你好歹默认个英文行不行?
DCloud_UNI_GSQ
莫慌,国际化进度已经统一开始了
2021-03-01 14:49
1***@qq.com
回复 DCloud_UNI_GSQ: 急用
2021-03-25 10:14
DCloud_UNI_GSQ
回复 1***@qq.com: 3.1.6 alpha
2021-03-25 17:16
Sea121
我的默认是个英文的,问题是换不回来了,我需要的是中文啊啊啊啊
DCloud_UNI_GSQ
https://ask.dcloud.net.cn/article/38821
2021-05-19 15:33
1***@qq.com
1123