Skip to content

Commit d393e9c

Browse files
authored
defer localization imports (#50)
* defer localization imports * fix
1 parent 790c825 commit d393e9c

7 files changed

Lines changed: 126 additions & 62 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 2.0.3
2+
3+
- Use deferred imports for localizations
4+
5+
16
## 2.0.2
27

38
- Fix Spanish country name translations (China, Turkey, Togo, Isle of Man, Jordan, Guyana, Libya, Iran, French Polynesia and others were mistranslated or misspelled)

example/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
*.swp
66
.DS_Store
77
.atom/
8+
.build/
89
.buildlog/
910
.history
1011
.svn/
12+
.swiftpm/
1113
migrate_working_dir/
1214

1315
# IntelliJ related

example/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ packages:
100100
path: ".."
101101
relative: true
102102
source: path
103-
version: "2.0.0"
103+
version: "2.0.3"
104104
flutter_lints:
105105
dependency: "direct dev"
106106
description:

example/pubspec.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ dependencies:
3737
cupertino_icons: ^1.0.2
3838
flutter_country_selector:
3939
path: ../
40-
4140
material_ui: any
4241
dev_dependencies:
4342
flutter_test:

l10n.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ output-class: CountrySelectorLocalization
55
output-dir: lib/src/localization/generated
66
format: true
77
untranslated-messages-file: untranslated-messages.txt
8+
use-deferred-loading: true

lib/src/localization/generated/country_selector_localization.dart

Lines changed: 116 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,61 @@
11
import 'dart:async';
22

3-
import 'package:flutter/foundation.dart';
3+
import 'package:flutter/widgets.dart';
4+
import 'package:flutter_localizations/flutter_localizations.dart';
45
import 'package:intl/intl.dart' as intl;
5-
import 'package:material_ui/material_ui.dart';
6-
7-
import 'country_selector_localization_ar.dart';
8-
import 'country_selector_localization_ca.dart';
9-
import 'country_selector_localization_ckb.dart';
10-
import 'country_selector_localization_de.dart';
11-
import 'country_selector_localization_el.dart';
12-
import 'country_selector_localization_en.dart';
13-
import 'country_selector_localization_es.dart';
14-
import 'country_selector_localization_fa.dart';
15-
import 'country_selector_localization_fr.dart';
16-
import 'country_selector_localization_he.dart';
17-
import 'country_selector_localization_hi.dart';
18-
import 'country_selector_localization_hu.dart';
19-
import 'country_selector_localization_it.dart';
20-
import 'country_selector_localization_ku.dart';
21-
import 'country_selector_localization_nb.dart';
22-
import 'country_selector_localization_nl.dart';
23-
import 'country_selector_localization_pl.dart';
24-
import 'country_selector_localization_pt.dart';
25-
import 'country_selector_localization_ru.dart';
26-
import 'country_selector_localization_sv.dart';
27-
import 'country_selector_localization_tr.dart';
28-
import 'country_selector_localization_uk.dart';
29-
import 'country_selector_localization_ur.dart';
30-
import 'country_selector_localization_uz.dart';
31-
import 'country_selector_localization_vi.dart';
32-
import 'country_selector_localization_zh.dart';
6+
7+
import 'country_selector_localization_ar.dart'
8+
deferred as country_selector_localization_ar;
9+
import 'country_selector_localization_ca.dart'
10+
deferred as country_selector_localization_ca;
11+
import 'country_selector_localization_ckb.dart'
12+
deferred as country_selector_localization_ckb;
13+
import 'country_selector_localization_de.dart'
14+
deferred as country_selector_localization_de;
15+
import 'country_selector_localization_el.dart'
16+
deferred as country_selector_localization_el;
17+
import 'country_selector_localization_en.dart'
18+
deferred as country_selector_localization_en;
19+
import 'country_selector_localization_es.dart'
20+
deferred as country_selector_localization_es;
21+
import 'country_selector_localization_fa.dart'
22+
deferred as country_selector_localization_fa;
23+
import 'country_selector_localization_fr.dart'
24+
deferred as country_selector_localization_fr;
25+
import 'country_selector_localization_he.dart'
26+
deferred as country_selector_localization_he;
27+
import 'country_selector_localization_hi.dart'
28+
deferred as country_selector_localization_hi;
29+
import 'country_selector_localization_hu.dart'
30+
deferred as country_selector_localization_hu;
31+
import 'country_selector_localization_it.dart'
32+
deferred as country_selector_localization_it;
33+
import 'country_selector_localization_ku.dart'
34+
deferred as country_selector_localization_ku;
35+
import 'country_selector_localization_nb.dart'
36+
deferred as country_selector_localization_nb;
37+
import 'country_selector_localization_nl.dart'
38+
deferred as country_selector_localization_nl;
39+
import 'country_selector_localization_pl.dart'
40+
deferred as country_selector_localization_pl;
41+
import 'country_selector_localization_pt.dart'
42+
deferred as country_selector_localization_pt;
43+
import 'country_selector_localization_ru.dart'
44+
deferred as country_selector_localization_ru;
45+
import 'country_selector_localization_sv.dart'
46+
deferred as country_selector_localization_sv;
47+
import 'country_selector_localization_tr.dart'
48+
deferred as country_selector_localization_tr;
49+
import 'country_selector_localization_uk.dart'
50+
deferred as country_selector_localization_uk;
51+
import 'country_selector_localization_ur.dart'
52+
deferred as country_selector_localization_ur;
53+
import 'country_selector_localization_uz.dart'
54+
deferred as country_selector_localization_uz;
55+
import 'country_selector_localization_vi.dart'
56+
deferred as country_selector_localization_vi;
57+
import 'country_selector_localization_zh.dart'
58+
deferred as country_selector_localization_zh;
3359

3460
// ignore_for_file: type=lint
3561

@@ -109,7 +135,12 @@ abstract class CountrySelectorLocalization {
109135
/// MaterialApp. This list does not have to be used at all if a custom list
110136
/// of delegates is preferred or required.
111137
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
112-
GlobalMaterialLocalizations.delegates;
138+
<LocalizationsDelegate<dynamic>>[
139+
delegate,
140+
GlobalMaterialLocalizations.delegate,
141+
GlobalCupertinoLocalizations.delegate,
142+
GlobalWidgetsLocalizations.delegate,
143+
];
113144

114145
/// A list of this localizations delegate's supported locales.
115146
static const List<Locale> supportedLocales = <Locale>[
@@ -1666,8 +1697,7 @@ class _CountrySelectorLocalizationDelegate
16661697

16671698
@override
16681699
Future<CountrySelectorLocalization> load(Locale locale) {
1669-
return SynchronousFuture<CountrySelectorLocalization>(
1670-
lookupCountrySelectorLocalization(locale));
1700+
return lookupCountrySelectorLocalization(locale);
16711701
}
16721702

16731703
@override
@@ -1704,61 +1734,88 @@ class _CountrySelectorLocalizationDelegate
17041734
bool shouldReload(_CountrySelectorLocalizationDelegate old) => false;
17051735
}
17061736

1707-
CountrySelectorLocalization lookupCountrySelectorLocalization(Locale locale) {
1737+
Future<CountrySelectorLocalization> lookupCountrySelectorLocalization(
1738+
Locale locale) {
17081739
// Lookup logic when only language code is specified.
17091740
switch (locale.languageCode) {
17101741
case 'ar':
1711-
return CountrySelectorLocalizationAr();
1742+
return country_selector_localization_ar.loadLibrary().then((dynamic _) =>
1743+
country_selector_localization_ar.CountrySelectorLocalizationAr());
17121744
case 'ca':
1713-
return CountrySelectorLocalizationCa();
1745+
return country_selector_localization_ca.loadLibrary().then((dynamic _) =>
1746+
country_selector_localization_ca.CountrySelectorLocalizationCa());
17141747
case 'ckb':
1715-
return CountrySelectorLocalizationCkb();
1748+
return country_selector_localization_ckb.loadLibrary().then((dynamic _) =>
1749+
country_selector_localization_ckb.CountrySelectorLocalizationCkb());
17161750
case 'de':
1717-
return CountrySelectorLocalizationDe();
1751+
return country_selector_localization_de.loadLibrary().then((dynamic _) =>
1752+
country_selector_localization_de.CountrySelectorLocalizationDe());
17181753
case 'el':
1719-
return CountrySelectorLocalizationEl();
1754+
return country_selector_localization_el.loadLibrary().then((dynamic _) =>
1755+
country_selector_localization_el.CountrySelectorLocalizationEl());
17201756
case 'en':
1721-
return CountrySelectorLocalizationEn();
1757+
return country_selector_localization_en.loadLibrary().then((dynamic _) =>
1758+
country_selector_localization_en.CountrySelectorLocalizationEn());
17221759
case 'es':
1723-
return CountrySelectorLocalizationEs();
1760+
return country_selector_localization_es.loadLibrary().then((dynamic _) =>
1761+
country_selector_localization_es.CountrySelectorLocalizationEs());
17241762
case 'fa':
1725-
return CountrySelectorLocalizationFa();
1763+
return country_selector_localization_fa.loadLibrary().then((dynamic _) =>
1764+
country_selector_localization_fa.CountrySelectorLocalizationFa());
17261765
case 'fr':
1727-
return CountrySelectorLocalizationFr();
1766+
return country_selector_localization_fr.loadLibrary().then((dynamic _) =>
1767+
country_selector_localization_fr.CountrySelectorLocalizationFr());
17281768
case 'he':
1729-
return CountrySelectorLocalizationHe();
1769+
return country_selector_localization_he.loadLibrary().then((dynamic _) =>
1770+
country_selector_localization_he.CountrySelectorLocalizationHe());
17301771
case 'hi':
1731-
return CountrySelectorLocalizationHi();
1772+
return country_selector_localization_hi.loadLibrary().then((dynamic _) =>
1773+
country_selector_localization_hi.CountrySelectorLocalizationHi());
17321774
case 'hu':
1733-
return CountrySelectorLocalizationHu();
1775+
return country_selector_localization_hu.loadLibrary().then((dynamic _) =>
1776+
country_selector_localization_hu.CountrySelectorLocalizationHu());
17341777
case 'it':
1735-
return CountrySelectorLocalizationIt();
1778+
return country_selector_localization_it.loadLibrary().then((dynamic _) =>
1779+
country_selector_localization_it.CountrySelectorLocalizationIt());
17361780
case 'ku':
1737-
return CountrySelectorLocalizationKu();
1781+
return country_selector_localization_ku.loadLibrary().then((dynamic _) =>
1782+
country_selector_localization_ku.CountrySelectorLocalizationKu());
17381783
case 'nb':
1739-
return CountrySelectorLocalizationNb();
1784+
return country_selector_localization_nb.loadLibrary().then((dynamic _) =>
1785+
country_selector_localization_nb.CountrySelectorLocalizationNb());
17401786
case 'nl':
1741-
return CountrySelectorLocalizationNl();
1787+
return country_selector_localization_nl.loadLibrary().then((dynamic _) =>
1788+
country_selector_localization_nl.CountrySelectorLocalizationNl());
17421789
case 'pl':
1743-
return CountrySelectorLocalizationPl();
1790+
return country_selector_localization_pl.loadLibrary().then((dynamic _) =>
1791+
country_selector_localization_pl.CountrySelectorLocalizationPl());
17441792
case 'pt':
1745-
return CountrySelectorLocalizationPt();
1793+
return country_selector_localization_pt.loadLibrary().then((dynamic _) =>
1794+
country_selector_localization_pt.CountrySelectorLocalizationPt());
17461795
case 'ru':
1747-
return CountrySelectorLocalizationRu();
1796+
return country_selector_localization_ru.loadLibrary().then((dynamic _) =>
1797+
country_selector_localization_ru.CountrySelectorLocalizationRu());
17481798
case 'sv':
1749-
return CountrySelectorLocalizationSv();
1799+
return country_selector_localization_sv.loadLibrary().then((dynamic _) =>
1800+
country_selector_localization_sv.CountrySelectorLocalizationSv());
17501801
case 'tr':
1751-
return CountrySelectorLocalizationTr();
1802+
return country_selector_localization_tr.loadLibrary().then((dynamic _) =>
1803+
country_selector_localization_tr.CountrySelectorLocalizationTr());
17521804
case 'uk':
1753-
return CountrySelectorLocalizationUk();
1805+
return country_selector_localization_uk.loadLibrary().then((dynamic _) =>
1806+
country_selector_localization_uk.CountrySelectorLocalizationUk());
17541807
case 'ur':
1755-
return CountrySelectorLocalizationUr();
1808+
return country_selector_localization_ur.loadLibrary().then((dynamic _) =>
1809+
country_selector_localization_ur.CountrySelectorLocalizationUr());
17561810
case 'uz':
1757-
return CountrySelectorLocalizationUz();
1811+
return country_selector_localization_uz.loadLibrary().then((dynamic _) =>
1812+
country_selector_localization_uz.CountrySelectorLocalizationUz());
17581813
case 'vi':
1759-
return CountrySelectorLocalizationVi();
1814+
return country_selector_localization_vi.loadLibrary().then((dynamic _) =>
1815+
country_selector_localization_vi.CountrySelectorLocalizationVi());
17601816
case 'zh':
1761-
return CountrySelectorLocalizationZh();
1817+
return country_selector_localization_zh.loadLibrary().then((dynamic _) =>
1818+
country_selector_localization_zh.CountrySelectorLocalizationZh());
17621819
}
17631820

17641821
throw FlutterError(

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: flutter_country_selector
22
description: how a country picker to select a country
3-
version: 2.0.2
3+
version: 2.0.3
44
repository: https://github.com/cedvdb/flutter_country_selector
55
homepage: https://github.com/cedvdb/flutter_country_selector
66

0 commit comments

Comments
 (0)