Skip to content

Commit e5dcfa7

Browse files
committed
Add an example of a global modification of an existing translation.
1 parent 46562bd commit e5dcfa7

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

example/lib/main.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:example/override_form_builder_localizations_en.dart';
12
import 'package:flutter/material.dart';
23
import 'package:flutter_localizations/flutter_localizations.dart';
34
import 'package:form_builder_validators/form_builder_validators.dart';
@@ -22,6 +23,7 @@ class MyApp extends StatelessWidget {
2223
],
2324
localizationsDelegates: const [
2425
...GlobalMaterialLocalizations.delegates,
26+
OverrideFormBuilderLocalizationsEn.delegate,
2527
FormBuilderLocalizations.delegate,
2628
],
2729
);
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import 'package:flutter/foundation.dart';
2+
import 'package:flutter/material.dart';
3+
import 'package:form_builder_validators/form_builder_validators.dart';
4+
5+
/// Created by ipcjs on 2022/10/31.
6+
class OverrideFormBuilderLocalizationsEn
7+
extends FormBuilderLocalizationsImplEn {
8+
OverrideFormBuilderLocalizationsEn();
9+
10+
static const LocalizationsDelegate<FormBuilderLocalizationsImpl> delegate =
11+
_LocalizationsDelegate();
12+
13+
static const List<Locale> supportedLocales = [Locale('en')];
14+
15+
@override
16+
String get requiredErrorText => 'override: This field cannot be empty.';
17+
}
18+
19+
class _LocalizationsDelegate
20+
extends LocalizationsDelegate<FormBuilderLocalizationsImpl> {
21+
const _LocalizationsDelegate();
22+
23+
@override
24+
Future<FormBuilderLocalizationsImpl> load(Locale locale) {
25+
final instance = OverrideFormBuilderLocalizationsEn();
26+
// IMPORTANT!! must to invoke setCurrentInstance()
27+
FormBuilderLocalizations.setCurrentInstance(instance);
28+
return SynchronousFuture<FormBuilderLocalizationsImpl>(instance);
29+
}
30+
31+
@override
32+
bool isSupported(Locale locale) =>
33+
OverrideFormBuilderLocalizationsEn.supportedLocales.contains(locale);
34+
35+
@override
36+
bool shouldReload(_LocalizationsDelegate old) => false;
37+
}

0 commit comments

Comments
 (0)