Flutter文字转写插件cyrtranslit的使用

Flutter 文字转写插件 cyrtranslit 的使用

什么是 CyrTranslit?

CyrTranslit 是一个用于双向转写的 Dart 包,可以将西里尔字母转换为拉丁字母,反之亦然。默认情况下,它适用于塞尔维亚语。可以通过设置语言标志来支持保加利亚语、黑山语、马其顿语、蒙古语、俄语、塞尔维亚语、塔吉克语和乌克兰语。

什么是转写?

转写是将文本从一种书写系统转换为另一种的过程。例如,塞尔维亚语短语 “Мој ховеркрафт је пун јегуља” 的拉丁字母转写形式为 “Moj hoverkraft je pun jegulja”。

引用

该包基于由 Open Data Kosovo 开发的 Python 项目 cyrillic-transliteration。

如果你在研究出版物中使用了 CyrTranslit,请引用以下内容:

@software{georges_labreche_2023_7734906,
  author       = {Georges Labrèche},
  title        = {CyrTranslit},
  month        = mar,
  year         = 2023,
  note         = {{A Python package for bi-directional 
                   transliteration of Cyrillic script to Latin script
                   and vice versa. Supports transliteration for
                   Bulgarian, Montenegrin, Macedonian, Mongolian,
                   Russian, Serbian, Tajik, and Ukrainian.}},
  publisher    = {Zenodo},
  version      = {v1.1.1},
  doi          = {10.5281/zenodo.7734906},
  url          = {https://doi.org/10.5281/zenodo.7734906}
}

支持的研究

CyrTranslit 被广泛用于各种研究项目中,包括但不限于:

  • Ljajić, Adela & Prodanović, Nikola & Medvecki, Darija & Bašaragin, Bojana & Mitrović, Jelena. (2022). “Topic Modeling Technique on Covid19 Tweets in Serbian,” in 12th International Conference on Information Society and Technology (ICIST), Kopaonik, Serbia.
  • Mussylmanbay, Meiirgali. (2022). “Addresses Standardization and Geocoding using Natural Language Processing,” Nazarbayev University, Kazakhstan.

如何安装

CyrTranslit 可以通过 Dart pub 仓库进行安装。你可以使用 pub add 命令添加到你的项目中:

dart pub add cyrtranslit          # 最新版本
dart pub add cyrtranslit:version   # 特定版本
dart pub add cyrtranslit:'^version'  # 最小版本

你也可以直接在 pubspec.yaml 文件中添加依赖:

dependencies:
  cyrtranslit: ^1.0.0

支持的语言

CyrTranslit 目前支持以下语言的双向转写:保加利亚语、黑山语、马其顿语、蒙古语、俄语、塞尔维亚语、塔吉克语和乌克兰语。

import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit;
print(cyrtranslit.supported());
// 输出 ['bg', 'me', 'mk', 'mn', 'ru', 'sr', 'tj', 'ua']

如何使用

保加利亚语

import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit;
print(cyrtranslit.cyr2Lat("Съединението прави силата!", langCode: "bg"));
// 输出 "Săedinenieto pravi silata!"
print(cyrtranslit.lat2Cyr("Săedinenieto pravi silata!", langCode: "bg"));
// 输出 "Съединението прави силата!"

黑山语

import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit;
print(cyrtranslit.cyr2Lat("Република", langCode: "me"));
// 输出 "Republika"
print(cyrtranslit.lat2Cyr("Republika", langCode: "me"));
// 输出 "Република"

马其顿语

import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit;
print(cyrtranslit.cyr2Lat("Моето летачко возило е полно со јагули", langCode: "mk"));
// 输出 "Moeto letačko vozilo e polno so jaguli"
print(cyrtranslit.lat2Cyr("Moeto letačko vozilo e polno so jaguli", langCode: "mk"));
// 输出 "Моето летачко возило е полно со јагули"

蒙古语

import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit;
print(cyrtranslit.cyr2Lat("Амрагаа Сүнжидмаагаа гэсээр ирлээ дээ хө-хө-хө", langCode: "mn"));
// 输出 "Amragaa Sünjidmaagaa geseer irlee dee khö-khö-khö"
print(cyrtranslit.lat2Cyr("Amragaa Sünjidmaagaa geseer irlee dee khö-khö-khö", langCode: "mn"));
// 输出 "Амрагаа Сүнжидмаагаа гэсээр ирлээ дээ хө-хө-хө"

俄语

import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit;
print(cyrtranslit.cyr2Lat("Моё судно на воздушной подушке полно угрей", langCode: "ru"));
// 输出 "Moyo sudno na vozdushnoj podushke polno ugrej"
print(cyrtranslit.lat2Cyr("Moyo sudno na vozdushnoj podushke polno ugrej", langCode: "ru"));
// 输出 "Моё судно на воздушной подушке полно угрей"

塞尔维亚语

import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit;
print(cyrtranslit.cyr2Lat("Мој ховеркрафт је пун јегуља"));
// 输出 "Moj hoverkraft je pun jegulja"
print(cyrtranslit.lat2Cyr("Moj hoverkraft je pun jegulja"));
// 输出 "Мој ховеркрафт је пун јегуља"

塔吉克语

import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit;
print(cyrtranslit.cyr2Lat("Ман мактуб навишта истодам", langCode: "tj"));
// 输出 "Man maktub navišta istodam"
print(cyrtranslit.lat2Cyr("Man maktub navišta istodam", langCode: "tj"));
// 输出 "Ман мактуб навишта истодам"

乌克兰语

import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit;
print(cyrtranslit.cyr2Lat("Під лежачий камінь вода не тече", langCode: "ua"));
// 输出 "Pid ležačyj kamin' voda ne teče"
print(cyrtranslit.lat2Cyr("Pid ležačyj kamin' voda ne teče", langCode: "ua"));
// 输出 "Під лежачий камінь вода не тече"

更多关于Flutter文字转写插件cyrtranslit的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter文字转写插件cyrtranslit的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用cyrtranslit插件来进行文字转写的示例代码。cyrtranslit插件通常用于将西里尔字母(如俄语)转换为拉丁字母(如英语)。

1. 添加依赖

首先,在你的Flutter项目的pubspec.yaml文件中添加cyrtranslit依赖:

dependencies:
  flutter:
    sdk: flutter
  cyrtranslit: ^最新版本号  # 请替换为实际最新版本号

然后运行以下命令来安装依赖:

flutter pub get

2. 导入插件

在你的Dart文件中导入cyrtranslit插件:

import 'package:cyrtranslit/cyrtranslit.dart';

3. 使用插件进行文字转写

以下是一个简单的示例,展示如何将西里尔字母转换为拉丁字母:

import 'package:flutter/material.dart';
import 'package:cyrtranslit/cyrtranslit.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'CyrTranslit Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final TextEditingController _controller = TextEditingController();
  String _translatedText = '';

  void _translateText() {
    // 使用cyrtranslit插件进行文字转写
    setState(() {
      _translatedText = cyrillicToLatin(_controller.text);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('CyrTranslit Example'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            TextField(
              controller: _controller,
              decoration: InputDecoration(
                labelText: 'Enter Cyrillic Text',
              ),
            ),
            SizedBox(height: 16),
            ElevatedButton(
              onPressed: _translateText,
              child: Text('Translate to Latin'),
            ),
            SizedBox(height: 16),
            Text(
              'Translated Text: $_translatedText',
              style: TextStyle(fontSize: 18),
            ),
          ],
        ),
      ),
    );
  }
}

4. 运行应用

现在你可以运行你的Flutter应用,并在界面中输入西里尔字母,点击“Translate to Latin”按钮后,你会看到转写后的拉丁字母。

注意事项

  • 确保你使用的cyrtranslit插件版本与Flutter SDK兼容。
  • cyrillicToLatin函数是cyrtranslit插件提供的核心功能,用于将西里尔字母转换为拉丁字母。
  • 你可以根据需求自定义UI和交互逻辑。

希望这个示例能帮你顺利在Flutter项目中使用cyrtranslit插件进行文字转写。

回到顶部