跳到主要内容

国际化 (i18n)

@blocklet/uploader 组件在设计时考虑到了全球用户,为多种语言和文本定制提供了强大的支持。这使您能够创建无缝的用户体验,让您的用户无论身在何处都能感到亲切自然。

本指南将说明如何在内置语言之间切换,以及如何提供您自己的自定义翻译。

切换内置语言

该组件附带了英语 (en) 和中文 (zh) 的预配置语言包。更改显示语言最简单的方法是使用 locale 属性。

Uploader with Chinese locale

jsx
import { Uploader } from '@blocklet/uploader/react';

function MyComponent() {
  return <Uploader locale="zh" />;
}

设置 locale="zh" 将自动将整个用户界面翻译成中文。默认语言是英语 (en)。

自定义文本和添加新语言

为了实现更高级的控制,例如覆盖特定的文本字符串或添加对新语言的支持,您可以向 Uploader 提供一个自定义的 locale 对象。这可以通过 coreProps.locale 属性完成,它让您能够直接访问底层 Uppy 实例的配置。

一个 locale 对象包含一个 strings 键,该键包含了 UI 中使用的所有文本。

覆盖现有字符串

您可以轻松更改任何文本,以更好地匹配您应用程序的语气或术语。例如,让我们更改主要的拖放提示。

首先,从包中导入一个基础 locale 对象,然后合并您的更改。

Customizing the drop hint text

javascript
import { Uploader } from '@blocklet/uploader/react';
import { locales } from '@blocklet/uploader/i18n';
import merge from 'lodash/merge';

// 创建默认英语 locale 的深拷贝
const customEnglishLocale = merge({}, locales.en);

// 覆盖您想要更改的特定字符串
customEnglishLocale.strings.dropHint = 'Drop your awesome files here!';

function MyComponent() {
  return (
    <Uploader
      coreProps={{
        locale: customEnglishLocale,
      }}
    />
  );
}

添加新语言

要添加默认未包含的语言,您需要创建一个完整的 locale 对象。推荐的方法是从 Uppy 的庞大集合中导入一个基础 locale,然后将其与 @blocklet/uploader 特有的自定义字符串的翻译进行合并。

以下是如何创建一个基础法语 locale 的示例:

Adding a French locale

javascript
import { Uploader } from '@blocklet/uploader/react';
import fr_FR from '@uppy/locales/lib/fr_FR'; // 基础 Uppy locale
import merge from 'lodash/merge';

// 通过合并 Uppy 的法语包创建一个自定义 locale 对象
// 并加入我们自定义字符串的翻译。
const customFrenchLocale = merge({}, fr_FR, {
  strings: {
    // 来自 @blocklet/uploader 的自定义字符串
    aiKitRequired: 'Veuillez installer et configurer le kit AI',
    aiImageGenerate: 'Générer',
    aiImageGenerating: 'Génération en cours...',
    browseFiles: 'parcourir les fichiers',
    browseFolders: 'parcourir les dossiers',
    dropHint: 'Déposez vos fichiers ici',
    // ... 等等,适用于所有其他自定义字符串
  },
});

function MyComponent() {
  return (
    <Uploader
      coreProps={{
        locale: customFrenchLocale,
      }}
    />
  );
}

可自定义的字符串

虽然 @blocklet/uploader 从 Uppy 生态系统继承了大部分字符串,但它也为其独特功能添加了几个自定义字符串。以下是您可以覆盖的这些特定键的列表。

默认(英语)描述
aiKitRequired当使用 AI 图像插件但未配置 AI Kit 时显示的文本。
aiImageSelectedUse用于确认使用所选 AI 生成图像的按钮文本。
aiImageSelectedTip提示用户选择一张图片的提示信息。
aiImagePromptAI 图像提示输入字段的标签。
aiImagePromptTip提示输入的占位符文本。
aiImageSize图像尺寸选择器的标签。
aiImageModel图像模型选择器的标签。
aiImageNumber用于生成图像数量的标签。
aiImageGenerate开始生成图像的按钮文本。
aiImageGenerating生成图像时显示的文本。
browseFolders“浏览文件夹”链接的文本。
dropHint拖放区域显示的主要文本。
dropPasteBoth当文件和文件夹都可以浏览时,拖放区域的文本。
dropPasteFiles当只能浏览文件时,拖放区域的文本。
dropPasteFolders当只能浏览文件夹时,拖放区域的文本。
cancel“返回”或“取消”按钮的文本。
loadingStatus检查 Media Kit 状态时显示的文本。
aspectRatioMessage对于不符合所需宽高比的图像的警告消息。
editorLoading图像编辑器加载时显示的消息。
downloadRemoteFileFailure当远程文件(例如,来自 URL 的文件)下载失败时的错误消息。
noAllowedFileTypesallowedFileTypes 为空数组时显示的消息。
allowedFileTypes允许文件类型列表的前缀。
error常规初始化错误消息。

有关可供翻译的所有字符串的完整列表,请参阅官方 Uppy locale 文档。

通过利用这个灵活的 i18n 系统,您可以确保您应用程序的文件上传器对所有用户都易于访问和直观。有关 Uppy 配置的更多详细信息,请参阅 与 Uppy 集成 指南。