Flutter波斯语需求支持插件persian_needs的使用

Flutter波斯语需求支持插件persian_needs的使用

Star on Github License: MIT

Utility工具用于波斯语开发者。包含有用的String、int扩展以及Jalali和DateTime类。

关键特性

  • 将数字转换为波斯文本:1,235,465 => یک میلیون و دویست و سی و پنج هزار و چهارصد و شصت و پنج
  • 显示文本中单词/字符的重复次数。
  • 查找文本中最/最少重复的单词/字符。
  • 将波斯数字转换为英文数字,反之亦然。
  • 集成了波斯文的Lorem Ipsum功能。
  • 可以生成随机假人名(带性别选项)=> randomPerson() => عرفان طباطبائی
  • 估计到现在的间隔时间,并以可读格式显示:dateTime.tillNow() => چهل و شش دقیقه پیش
  • 估计阅读文本所需的时间。
  • 计算从文本中发送短信所需的页数。
  • 将整数值转换为土曼/里亚尔字符串。25000.toTomanString(fromRial: true) => دو هزار و پانصد تومان
  • 将土曼/里亚尔转换为里亚尔/土曼。120.rial => 1200 / 120.toman => 12

问题与功能请求

如果您希望添加新功能或发现了问题,请在GitHub上提交一个issue,这样我可以了解您的需求。

索引

与字符串一起工作

字符串扩展
void main() {
    String text = loremParagraf; // Lorem文本
    text.timeToRead(); // 返回Duration()
    text.smsPageCount(); // 9
    text.mostWords(); // [{و: 13}]
    text.leastWords(); // [{کاربردهای: 1}, {ایپسوم: 1}, {متن: 1}, {ساختگی: 1}, {قرار: 1}, {تولید: 1}, ...]
    text.mostChars(); // [{ا: 96}]
    text.leastChars(); // [{ژ: 1}, {ذ: 1}, {،: 1}, {ئ: 1}]
    text.wordsRepetition(
      sorted: true,
      order: Order.descending,
    ); // {و: 13, در: 5, با: 4, طراحان: 3, مورد: 3, ... } <!>由于波斯词的原因,输出是反向的。
    text.charsRepetition(
      sorted: true,
      order: Order.descending,
    ); // {ا: 96, ر: 49, ی: 47, و: 44, د: 34, ... } <!>由于波斯词的原因,输出是反向的。
    text.wordsCount(); // 133
    text.words(); // [لورم, ایپسوم, متن, ساختگی, با, تولید, ...]
    '25000'.toRialString(fromToman: true); // 两百五十万零五千里亚尔
    '25000'.toTomanString(fromRial: true); // 两千五百土曼
}
字符串方法
void main() {
    String text = loremParagraf; // Lorem文本
    timeToRead(text); // 返回Duration()
    smsPageCount(text); // 9
    mostWords(text); // [{و: 13}]
    leastWords(text); // [{کاربردهای: 1}, {ایپسوم: 1}, {متن: 1}, {ساختگی: 1}, {قرار: 1}, {تولید: 1}, ...]
    mostChars(text); // [{ا: 96}]
    leastChars(text); // [{ژ: 1}, {ذ: 1}, {،: 1}, {ئ: 1}]
    wordsRepetition(
      text,
      sorted: true,
      order: Order.descending,
    ); // {و: 13, در: 5, با: 4, طراحان: 3, مورد: 3, ... } <!>由于波斯词的原因,输出是反向的。
    charsRepetition(
      text,
      sorted: true,
      order: Order.descending,
    ); // {ا: 96, ر: 49, ی: 47, و: 44, د: 34, ... } <!>由于波斯词的原因,输出是反向的。
    wordsCount(text); // 133
    words(text); // [لورم, ایپسوم, متن, ساختگی, با, تولید, ...]
    toRialString('25000', fromToman: true); // 两百五十万零五千里亚尔
    toTomanString('25000', fromRial: true); // 两千五百土曼
}

与数字一起工作

数字扩展
void main() {
    1234.farsi(); // ١۲۳۴
    1234.farsiString(); // 一千二百三十四
    12500.rial(); // 125000
    12500.toman(); // 1250
    '1235'.toFarsiNumber(); // ١۲۳۵
    '١۲۳۵'.toEnglishNumber(); //1235
    '122352'.toFarsiString(); //一百二十二万三千五百二
    '١۲۲۳۵۲'.toFarsiString(); //一百二十二万三千五百二
    '12۲3۵2'.toFarsiString(); //一百二十二万三千五百二
}
数字方法
void main() {
    digitToFarsi('1235'); // ١۲۳۵
    digitToEnglish('١۲۳۵'); //1235
    digitToFarsiString('122352'); //一百二十二万三千五百二
    digitToFarsiString('١۲۲۳۵۲'); //一百二十二万三千五百二
    digitToFarsiString('12۲3۵2'); //一百二十二万三千五百二
}

Lorem Ipsum

标准Lorem Ipsum功能
void main() {
    loremByParagrafCount(
        count:
            1); /* 洛伦姆·伊普苏姆文本,一段虚构的印刷和图形设计行业的常用填充文本。 */
    loremByWordCount(count: 5); // 洛伦姆·伊普苏姆文本,一段虚构的印刷和
    loremIpsumWord; // 洛伦姆·伊普苏姆
    loremParagraf; /* 洛伦姆·伊普苏姆文本,一段虚构的印刷和图形设计行业的常用填充文本。 */
    loremSentence; // 洛伦姆·伊普苏姆文本,一段虚构的印刷和图形设计行业的常用填充文本。
}  
模拟数据
void main() {
    randomPerson(gender: Gender.female); // 输出类似:梅琳娜·基安
    randomName(gender: Gender.random); // 特伦兰
    randomFamily; // 摩哈巴蒂
    randomSentence;
    /* 每一次我们呼吸,都是死亡在不断向我们伸出手。最终,我们必须战胜它,因为它是从出生就注定的一部分。 */
    randomMaleName; // 布纳
    randomFemaleName; // 维安娜
}

与时间一起工作

void main() {
    // 格里高利历:
    DateTime miladi = DateTime.now().subtract(const Duration(seconds: 53));
    miladi.tillNow(); // 五十三秒前
    miladi.tillNow(numeric: true); // 53秒前
    // 波斯/阳历:
    Jalali jalali = Jalali(1376);
    jalali.tillNow(); // 二十五年前
    jalali.tillNow(numeric: true); // 25年前
}

更多关于Flutter波斯语需求支持插件persian_needs的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter波斯语需求支持插件persian_needs的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,我可以为你提供一个关于如何在Flutter项目中集成和使用persian_needs插件的示例代码。persian_needs是一个专门用于支持波斯语(Farsi)需求的Flutter插件,通常用于处理日期、时间、数字以及文本方向的本地化问题。

首先,确保你的Flutter环境已经配置好,并且你的项目已经创建。接下来,你需要在pubspec.yaml文件中添加persian_needs依赖:

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

然后运行flutter pub get来获取依赖。

下面是一个简单的示例代码,展示了如何使用persian_needs插件来处理波斯语的日期和数字格式化:

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

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

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

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 使用PersianDate类来处理波斯语日期
    PersianDate persianDate = PersianDate.now();
    String formattedDate = persianDate.format(PersianDateFormat.full);

    // 使用PersianNumber类来处理波斯语数字
    double number = 1234567.89;
    String formattedNumber = PersianNumber.toPersianString(number);

    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Persian Needs Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Persian Date: $formattedDate',
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 20),
            Text(
              'Persian Number: $formattedNumber',
              style: TextStyle(fontSize: 20),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们使用了PersianDate类来获取当前的波斯日期并格式化它,以及使用PersianNumber类来将阿拉伯数字转换为波斯数字。

  • PersianDate.now():获取当前的波斯日期。
  • format(PersianDateFormat.full):将波斯日期格式化为完整格式。
  • PersianNumber.toPersianString(number):将阿拉伯数字转换为波斯数字字符串。

这个示例展示了如何在Flutter应用中集成和使用persian_needs插件来满足波斯语需求。根据你的具体需求,你可以进一步探索和使用persian_needs插件提供的其他功能。

回到顶部