@ai4bharat/indic-transliterate

中文文档
1.3.8发布于 2024/09/20MITTypeScriptESM + CJS近 30 天下载 2136

React 的转写组件

中文使用文档
文档目录19 节
  1. 目录
  2. 1. 关于
  3. 2. 演示
  4. 3. 安装
  5. 4. 使用费
  6. 4.1. 基本实例
  7. 4.2. 有定制部分
  8. 4.3. 有类型脚本
  9. 4.4. 与材料UI
  10. 4.5. 与外部API进行转写
  11. 5. 获得转写建议
  12. 5.1. 独立的例子
  13. 5.2. 自定义触发键
  14. 5.3. 道具
  15. 6. 语文
  16. 6.1. 获得支持的语言
  17. 6.2. 语言代码清单
  18. 7. 新地物:为经常使用的字进行缓存
  19. 8. 许可证

翻译

支持21种印地语的React的转写组件. 使用来自 AI4-Bharat IndictXlit 数据。 。 。 .

NPM

目录

1. 关于

这是一个前端库,使您的用户能够以南亚的许多不同语言输入,并且可以被集成到任何基于反应的应用程序中. 这个图书馆是一个叉子 反应-翻译,它使用Google Translaterate API,支持全球约40种语言. 在这个模块中,我们的重点是为印地语,特别是克什米尔语,马尼普里语等低资源语言(Google不支持这些语言)提供高质量的转写-ug建议. 请检查url=值 (帮助) AI4Bhārat 印度语-Xlit语。 。 。 .

2. 演示

点击这里试试我们的演示!

该演示的出处可见于 example 文件夹 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你还得去吗.

3. 安装

npm install --save @ai4bharat/indic-transliterate

OR

yarn add @ai4bharat/indic-transliterate

4. 使用费

4.1. 基本实例

import React, { useState } from "react";

import { IndicTransliterate } from "@ai4bharat/indic-transliterate";
import "@ai4bharat/indic-transliterate/dist/index.css";

const App = () => {
  const [text, setText] = useState("");

  return (
    <IndicTransliterate
      value={text}
      onChangeText={(text) => {
        setText(text);
      }}
      lang="hi"
    />
  );
};

export default App;

4.2. 有定制部分

import React, { useState } from "react";

import { IndicTransliterate } from "@ai4bharat/indic-transliterate";
import "@ai4bharat/indic-transliterate/dist/index.css";

const App = () => {
  const [text, setText] = useState("");

  return (
    <IndicTransliterate
      renderComponent={(props) => <textarea {...props} />}
      value={text}
      onChangeText={(text) => {
        setText(text);
      }}
      lang="hi"
    />
  );
};

export default App;

4.3. 有类型脚本

import React, { useState } from "react";

import { IndicTransliterate, Language } from "@ai4bharat/indic-transliterate";
import "@ai4bharat/indic-transliterate/dist/index.css";

const App = () => {
  const [text, setText] = useState("");
  const [lang, setLang] = useState<Language>("hi");

  return (
    <IndicTransliterate
      renderComponent={(props) => <textarea {...props} />}
      value={text}
      onChangeText={(text) => {
        setText(text);
      }}
      lang={lang}
    />
  );
};

export default App;

4.4. 与材料UI

import React, { useState } from "react";

import { IndicTransliterate, Language } from "@ai4bharat/indic-transliterate";
import "@ai4bharat/indic-transliterate/dist/index.css";

import Input from "@material-ui/core/Input";

const App = () => {
  const [text, setText] = useState("");
  const [lang, setLang] = useState<Language>("hi");

  return (
    <IndicTransliterate
      renderComponent={(props) => {
        const inputRef = props.ref;
        delete props["ref"];
        return <Input {...props} inputRef={inputRef} />;
      }}
      value={text}
      onChangeText={(text) => {
        setText(text);
      }}
      lang={lang}
    />
  );
};

export default App;

4.5. 与外部API进行转写

import { IndicTransliterate } from "@ai4bharat/indic-transliterate";
import "@ai4bharat/indic-transliterate/dist/index.css";

const App = () => {
  const [text, setText] = useState("");

  return (
    <IndicTransliterate
      value={text}
      onChangeText={(text) => {
        setText(text);
      }}
      lang="hi"
      customApiURL="https://your-custom-transliteration-api/{language}/{text}"
    />
  );
};

export default App;

这使得用户可以整合自己的API,而不是依赖默认的转写API,只要外部API是一个 GET 下列格式的 API : https://your-custom-transliteration-api/{language}/{text} 并返回此格式的响应 :

{
  "result": [
    "suggestion-1",
    "suggestion-2",
    "suggestion-3",
    "suggestion-4",
    "suggestion-5",
    ...
  ],
  ...
}

5. 获得转写建议

5.1. 独立的例子

import { getTransliterateSuggestions } from "@ai4bharat/indic-transliterate";

const data = await getTransliterateSuggestions(
  word, // word to fetch suggestions for
  {
    numOptions: 5, // number of suggestions to fetch
    showCurrentWordAsLastSuggestion: true, // add the word as the last suggestion
    lang: "hi", // target language
  },
);

5.2. 自定义触发键

按下键后将当前选择输入文本框

翻译使用 event.keycode 属性以检测密钥。 这里有一些可以使用的预定义密钥 。 或者,你可以输入任何其它键的整数代码 作为触发器

import React, { useState } from "react";

import { IndicTransliterate, TriggerKeys } from "@ai4bharat/indic-transliterate";
import "@ai4bharat/indic-transliterate/dist/index.css";

import Input from "@material-ui/core/Input";

const App = () => {
  const [text, setText] = useState("");

  return (
    <IndicTransliterate
      value={text}
      onChangeText={(text) => {
        setText(text);
      }}
      lang="hi"
      triggerKeys={[
        TriggerKeys.KEY_RETURN,
        TriggerKeys.KEY_ENTER,
        TriggerKeys.KEY_SPACE,
        TriggerKeys.KEY_TAB,
      ]}
    />
  );
};

export default App;

5.3. 道具

Prop需要吗?默认说明
更改文本对组件当前值的收听器 . (text: string) => void
价值对value 传递给组件的道具
启用真实控制是否应显示建议
组件(props) => <input {...props} />组件要完成。 您可以通过组件库中的组件作为此道具
朗语顿语言想通相. 语言代码见下一节
最大选项页:1在帮助中显示的最大建议数
页:10 个帮助者顶部和护身符底部之间的额外空间
页:10 个助手的护身符和左侧的间隔
容器分类Name空字符串类名传递到组件的容器
容器样式{}CSS 样式对象传递到容器
活动项目样式{}CSS 样式对象传递到活动项目 <li> 标签
隐藏 Mobile Devices 上的建议框falseGboard 和 Swiftkey 等键盘支持多种语言的打字, 如果建议在移动设备上可见
隐藏建议框断点450个类型 : number时使用 hideSuggestionBoxOnMobileDevices 这是真的。 在此设备宽度下不会显示建议框
触发键KEY_SPACE, KEY_ENTER, KEY_TAB, KEY_RETURN按下键后将当前选择输入文本框
插入当前选择true如果插入当前选择时 blur 发生事件
显示当前 WordAs Last 建议true将当前输入显示为建议框中的最后选项
水平视图false何时 true 建议并列出现,使更喜欢紧凑布局的用户更容易读取和获取
自定义ApiURLindic 转写 api灵活使用外部 API 进行转写, 只要响应结构遵循要求的格式, 无缝整合 4.5 国家

6. 语文

6.1. 获得支持的语言

import { getTransliterationLanguages } from "@ai4bharat/indic-transliterate";

const data = await getTransliterationLanguages();

6.2. 语言代码清单

目前支持来自印度次大陆的下列21种语言:

ISO 639 代码语言
作为阿萨姆语 - অসমীয়া
bn 时孟加拉语 - বাংলা
brx 颜色波罗 - बड़ो
宽古吉拉特语
顿印地语 - QQ
单位n坎纳达 - ಕನ್ನಡ
千岁克什米尔人-
刚Konkani Goan - \\\\ n
母亲迈蒂利 - मैथिली
门l马来亚拉姆语
门尼马尼普里-
老师马拉地语 - मराठी -
无尼泊尔-
或者说欧里亚 - ଓଡ଼ିଆ
父亲潘贾比 - ਪੰਜਾਬੀ
萨梵语 - संस्कृतम्
页:1信德语 - QQ
对僧伽罗语 - සිංහල - සිංහල
ta泰米尔语 - தமிழ்
电话泰卢固语 - QQ
我们乌尔都语 - اُردُو

7. 新地物:为经常使用的字进行缓存

概览:
该模块现在支持每个语言可高达一万个字的缓存来通过减少API调用来提高性能. 缓存机制存储了单词及其相应的建议,提高了生成建议的速度和效率,特别是对于常用的单词.

如何运作:

  • 缓存初始化 :
    当用户开始打字时,工具会获取每个单词的建议. 如果第一次使用一个单词,则在缓存中加上其建议并初始频率计数: 1。 。 。 .

  • 缓存结构 :
    缓存按语言排列,每种语言都有自己的词典及其建议:

    {
      language-1: {
        word-1: {
          suggestions: string[],
          frequency: number
        },
        word-2: {
          suggestions: string[],
          frequency: number
        },
        word-3: {
          suggestions: string[],
          frequency: number
        },
        ...
      },
      language-2:{
      ...
      },
      ...
    }
    
  • 快取查询 :

    • 当一个单词被打入时,工具首先在缓存中查找.
    • 如果找到,建议会被取回,频率计数会被递增.
    • 如果找不到,该工具会从API中获取建议,将单词添加到缓存中,并初始化频率计数为 1.
  • 缓存管理 :

    • 缓存限为一万个单词.
    • 当特定语言的缓存超过一万字时,会去掉最常用的词来为新条目提供空间.
  • 示例工作流程 :

    1. 用户开始输入一个单词( 如"你好" ) :
      • 工具检查缓存是否为单词 .
      • 如果找到"你好",则取出建议,并增加频率.
      • 如果找不到"你好",则从API中取出建议,将"你好"加入到缓存中,频率为1.
    2. 缓存大小超过一万字 :
      • 使用最少的词被新词及其建议所取代.
  • 主要惠益:

    • 改进性能:通过对常用单词使用缓存建议来减少API的调用.
    • 适应性缓存:自动调整用户行为,增加常用单词的频数.
    • 高效存储:用得最少的单词被替换,以保持最佳缓存大小.

8. 许可证

麻省理工学院 ai4 图片

真诚感谢 布尔汉努日 他的工作是开源的!

版本与发布记录

@ai4bharat/indic-transliterate 共发布 25 个版本,首次发布于 2022/08/12;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.3.8latest2024/09/202 年前
1.3.72024/07/312 年前
1.3.62024/07/242 年前
1.3.52024/07/232 年前
1.3.32024/07/022 年前
1.3.22024/04/272 年前

关于 @ai4bharat/indic-transliterate 的常见问题

@ai4bharat/indic-transliterate 是什么?

React 的转写组件

如何安装 @ai4bharat/indic-transliterate?

在项目目录运行 npm install @ai4bharat/indic-transliterate,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^16.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@ai4bharat/indic-transliterate 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ai4bharat/indic-transliterate 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@ai4bharat/indic-transliterate 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=10。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@ai4bharat/indic-transliterate 可以商用吗?

@ai4bharat/indic-transliterate 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ai4bharat/indic-transliterate 的下载量有多少?

根据 npm 官方下载统计,@ai4bharat/indic-transliterate 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,136 次,日均约 71 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ai4bharat/indic-transliterate 还在维护吗?

最新版本 1.3.8 发布于 2024/09/20(2 年前);至今共发布 25 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/08/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。