File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change
1
+ import 'package:language_picker/languages.dart' ;
2
+
3
+ /// Adapts a [Language] object from the `language_picker` package to a
4
+ /// language code string (e.g., 'en', 'ar').
5
+ ///
6
+ /// This is used to convert the selected language from the UI picker into the
7
+ /// format expected by the `Source` model in the core package.
8
+ String adaptPackageLanguageToLanguageCode (Language language) {
9
+ return language.isoCode;
10
+ }
11
+
12
+ /// Adapts a language code string (e.g., 'en', 'ar') to a [Language] object
13
+ /// from the `language_picker` package.
14
+ ///
15
+ /// This is used to convert the language code from a `Source` model into an
16
+ /// object that can be used to set the initial value of the language picker.
17
+ ///
18
+ /// Returns `null` if the language code is not found.
19
+ Language ? adaptLanguageCodeToPackageLanguage (String languageCode) {
20
+ try {
21
+ return Languages .defaultLanguages.firstWhere (
22
+ (lang) => lang.isoCode.toLowerCase () == languageCode.toLowerCase (),
23
+ );
24
+ } catch (_) {
25
+ // Return null if no matching language is found
26
+ return null ;
27
+ }
28
+ }
You can’t perform that action at this time.
0 commit comments