uni-app uni.chooseImage API 国际化不生效

发布于 1周前 作者 htzhanglong 来自 Uni-App

uni-app uni.chooseImage API 国际化不生效

操作步骤:

  1. uni.chooseImage选择相册,弹出是否允许访问相册,点击拒绝;
  2. 再次点击uni.chooseImage选择相册弹出无法访问相册中所有照片…里面的“前往系统设置”,“取消”两个按钮没有国际化;
  3. 选择“继续访问部分图片”按钮进到选择相册页面里的“预览”、“原图”、“完成”三个按钮没有国际化;

预期结果:

uni.chooseImage能国际化

实际结果:

  1. uni.chooseImage选择相册,弹出是否允许访问相册,点击拒绝;
  2. 再次点击uni.chooseImage选择相册弹出无法访问相册中所有照片…里面的“前往系统设置”,“取消”两个按钮没有国际化;
  3. 选择“继续访问部分图片”按钮进到选择相册页面里的“预览”、“原图”、“完成”三个按钮没有国际化;

bug描述:

使用uni.chooseImage API 国际化不完全生效

相关图片

Image 1 Image 2 Image 3

项目信息

项目信息 详细信息
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本号 10/22H2
HBuilderX类型 正式
HBuilderX版本号 4.29
手机系统 iOS
手机系统版本号 iOS 16
手机厂商 苹果
手机机型 iPhone 8 Plus
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

3 回复

你是离线SDK 还是云打包


针对您提到的 uni-appuni.chooseImage API 国际化不生效的问题,这通常涉及到 API 本身是否支持国际化,以及如何在代码中正确处理国际化资源。uni.chooseImage API 本身并不直接涉及界面文本的国际化,因为它主要是一个用于选择图片的文件选择接口。然而,如果您遇到的问题是在选择图片过程中出现的系统提示或按钮文本没有按照预期进行国际化,那么可能需要在应用层面进行额外处理。

首先,确保您的 uni-app 项目已经正确配置了国际化支持。以下是一个基本的国际化配置示例,以及如何在页面中引用国际化资源的代码。

1. 配置国际化资源

在项目的 pages.jsonmanifest.json 中,您可以配置国际化资源路径:

{
  "i18n": {
    "locales": {
      "en": {
        "path": "static/locales/en.json",
        "desc": "English"
      },
      "zh": {
        "path": "static/locales/zh.json",
        "desc": "中文"
      }
    },
    "currentLocale": "zh", // 当前语言
    "syncLocale": true // 是否自动同步系统语言
  }
}

2. 定义国际化资源文件

static/locales/ 目录下创建 en.jsonzh.json 文件,定义国际化文本:

// en.json
{
  "chooseImage": "Choose Image"
}

// zh.json
{
  "chooseImage": "选择图片"
}

3. 在页面中使用国际化资源

在页面中,您可以通过 $t 方法访问国际化资源:

<template>
  <view>
    <button @click="chooseImage">{{ $t('chooseImage') }}</button>
  </view>
</template>

<script>
export default {
  methods: {
    chooseImage() {
      uni.chooseImage({
        count: 1,
        success: (res) => {
          console.log(res.tempFilePaths);
        }
      });
    }
  }
}
</script>

注意事项

  • 确保国际化资源文件正确加载。
  • 检查 currentLocale 是否正确设置,并根据需要动态更新。
  • uni.chooseImage API 的系统提示(如权限请求、取消按钮等)通常由系统控制,无法通过 uni-app 直接修改。如果需要修改这些提示,可能需要考虑原生插件开发或使用其他方法绕过。

以上代码示例展示了如何在 uni-app 中配置和使用国际化资源,但请注意,uni.chooseImage 的系统级提示文本通常不由开发者控制。如果确实需要修改这些文本,可能需要探索更底层的原生开发方案。

回到顶部