Skip to content

Commit 71c334f

Browse files
committed
feat(shared): add language adapter for picker integration
1 parent c1e174f commit 71c334f

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
}

0 commit comments

Comments
 (0)