You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改form_builder_validators中的默认阿拉伯语错误提示文本

全局替换FormBuilderValidators的阿拉伯语默认错误提示

要在Flutter应用中全局替换form_builder_validators组件的阿拉伯语默认错误提示,可通过自定义本地化类并全局注册的方式实现,步骤如下:

1. 创建自定义阿拉伯语本地化类

继承FormBuilderLocalizations类,重写需要自定义的错误提示文本:

import 'package:form_builder_validators/form_builder_validators.dart';
import 'package:flutter/widgets.dart';

class CustomArabicFormBuilderLocalizations extends FormBuilderLocalizations {
  CustomArabicFormBuilderLocalizations(String locale) : super(locale);

  static CustomArabicFormBuilderLocalizations? of(BuildContext context) {
    return Localizations.of<CustomArabicFormBuilderLocalizations>(
      context,
      CustomArabicFormBuilderLocalizations,
    );
  }

  @override
  String get requiredError => '* هذا الحقل مطلوب'; // 自定义必填错误提示
  @override
  String get emailError => '* الرجاء إدخال بريد إلكتروني صحيح'; // 自定义邮箱错误提示
  @override
  String get numericError => '* الرجاء إدخال قيمة رقمية'; // 自定义数字错误提示
  // 按需重写其他错误提示方法,如urlError、minLengthError、maxLengthError等
}

2. 创建本地化代理

实现LocalizationsDelegate,用于加载自定义的阿拉伯语本地化资源:

class CustomArabicLocalizationsDelegate
    extends LocalizationsDelegate<FormBuilderLocalizations> {
  const CustomArabicLocalizationsDelegate();

  @override
  bool isSupported(Locale locale) => locale.languageCode == 'ar';

  @override
  Future<FormBuilderLocalizations> load(Locale locale) async {
    return CustomArabicFormBuilderLocalizations(locale.languageCode);
  }

  @override
  bool shouldReload(CustomArabicLocalizationsDelegate old) => false;
}

3. 在MaterialApp中全局注册

将自定义的本地化代理添加到应用的localizationsDelegates列表中,并配置支持阿拉伯语环境:

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: const [
        CustomArabicLocalizationsDelegate(),
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: const [
        Locale('ar'),
        Locale('en'),
      ],
      locale: const Locale('ar'), // 可选:设置默认语言为阿拉伯语
      home: const YourHomeScreen(),
    );
  }
}

验证效果

完成配置后,应用内所有使用form_builder_validators的组件(如FormBuilderTextField搭配validators参数),触发校验错误时都会显示你自定义的阿拉伯语提示文本。

内容的提问来源于stack exchange,提问作者Mohamed Elkilany

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:05:25