/
example.dart
51 lines (36 loc) · 1.18 KB
/
example.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import 'package:intl_messages/intl_messages.dart';
import 'package:swiss_knife/swiss_knife.dart';
void main() {
var uriBase = getUriBase(); // expected `intl_messages/` source dirctory.
print('uriBase: $uriBase');
App();
App('fr');
}
class App {
final IntlMessagesLoader intlMessagesLoader =
IntlMessagesLoader('example', 'example/i18n/msgs-');
IntlMessages get messages => intlMessagesLoader.intlMessages;
String get msgWelcome => messages.msg('welcome').build();
String get msgLanguage => messages.msg('language').build();
String msgTotalEmails(int n, String user) =>
messages.msg('total_emails').build({'n': n, 'user': user});
final String? forceLocale;
App([this.forceLocale]) {
if (intlMessagesLoader.isLoaded) {
run();
} else {
intlMessagesLoader.onLoad.listen((event) => run());
}
}
void run() {
if (forceLocale != null) {
messages.setLocale(forceLocale);
}
print('----------------------------- ${messages.currentLocale}');
print(msgWelcome);
print('$msgLanguage: ${messages.currentLocale!.language}');
for (var i = 0; i <= 4; i++) {
print('$i> ${msgTotalEmails(i, 'Joe')}');
}
}
}