[l10n] Project import generated by Copybara.
PiperOrigin-RevId: 265138710
Change-Id: Ib38dc976aa4c7f7095311ac8bd31655277dfab4f
diff --git a/examples/ui/localized_mod/lib/localization/messages_all.dart b/examples/ui/localized_mod/lib/localization/messages_all.dart
old mode 100644
new mode 100755
index a91b228..ec428cb
--- a/examples/ui/localized_mod/lib/localization/messages_all.dart
+++ b/examples/ui/localized_mod/lib/localization/messages_all.dart
@@ -9,21 +9,33 @@
// ignore: implementation_imports
import 'package:intl/src/intl_helpers.dart';
-import 'messages_messages.dart' deferred as messages_messages;
-import 'messages_he.dart' deferred as messages_he;
+import 'messages_ar-XB.dart' deferred as messages_ar_xb;
+import 'messages_en-XA.dart' deferred as messages_en_xa;
+import 'messages_en-XC.dart' deferred as messages_en_xc;
+import 'messages_sr-Latn.dart' deferred as messages_sr_latn;
+import 'messages_sr.dart' deferred as messages_sr;
typedef Future<dynamic> LibraryLoader();
Map<String, LibraryLoader> _deferredLibraries = {
- 'messages': () => messages_messages.loadLibrary(),
- 'he': () => messages_he.loadLibrary(),
+ 'ar_XB': messages_ar_xb.loadLibrary,
+ 'en_XA': messages_en_xa.loadLibrary,
+ 'en_XC': messages_en_xc.loadLibrary,
+ 'sr_Latn': messages_sr_latn.loadLibrary,
+ 'sr': messages_sr.loadLibrary,
};
MessageLookupByLibrary _findExact(localeName) {
switch (localeName) {
- case 'messages':
- return messages_messages.messages;
- case 'he':
- return messages_he.messages;
+ case 'ar_XB':
+ return messages_ar_xb.messages;
+ case 'en_XA':
+ return messages_en_xa.messages;
+ case 'en_XC':
+ return messages_en_xc.messages;
+ case 'sr_Latn':
+ return messages_sr_latn.messages;
+ case 'sr':
+ return messages_sr.messages;
default:
return null;
}
@@ -32,21 +44,20 @@
/// User programs should call this before using [localeName] for messages.
Future<bool> initializeMessages(String localeName) async {
var availableLocale = Intl.verifiedLocale(
- localeName,
- (locale) => _deferredLibraries[locale] != null,
- onFailure: (_) => null);
+ localeName, (locale) => _deferredLibraries[locale] != null,
+ onFailure: (_) => null);
if (availableLocale == null) {
// ignore: unnecessary_new
- return Future.value(false);
+ return new Future.value(false);
}
var lib = _deferredLibraries[availableLocale];
// ignore: unnecessary_new
- await (lib == null ? Future.value(false) : lib());
+ await (lib == null ? new Future.value(false) : lib());
// ignore: unnecessary_new
- initializeInternalMessageLookup(() => CompositeMessageLookup());
+ initializeInternalMessageLookup(() => new CompositeMessageLookup());
messageLookup.addLocale(availableLocale, _findGeneratedMessagesFor);
// ignore: unnecessary_new
- return Future.value(true);
+ return new Future.value(true);
}
bool _messagesExistFor(String locale) {
@@ -58,8 +69,67 @@
}
MessageLookupByLibrary _findGeneratedMessagesFor(locale) {
- var actualLocale = Intl.verifiedLocale(locale, _messagesExistFor,
- onFailure: (_) => null);
+ var actualLocale =
+ Intl.verifiedLocale(locale, _messagesExistFor, onFailure: (_) => null);
if (actualLocale == null) return null;
return _findExact(actualLocale);
}
+
+/// Turn the JSON template into a string.
+///
+/// We expect one of the following forms for the template.
+/// * null -> null
+/// * String s -> s
+/// * int n -> '${args[n]}'
+/// * List list, one of
+/// * ['Intl.plural', int howMany, (templates for zero, one, ...)]
+/// * ['Intl.gender', String gender, (templates for female, male, other)]
+/// * ['Intl.select', String choice, { 'case' : template, ...} ]
+/// * ['text alternating with ', 0 , ' indexes in the argument list']
+String evaluateJsonTemplate(Object input, List<dynamic> args) {
+ if (input == null) return null;
+ if (input is String) return input;
+ if (input is int) {
+ return "${args[input]}";
+ }
+
+ List<dynamic> template = input;
+ var messageName = template.first;
+ if (messageName == "Intl.plural") {
+ var howMany = args[template[1]];
+ return evaluateJsonTemplate(
+ Intl.pluralLogic(howMany,
+ zero: template[2],
+ one: template[3],
+ two: template[4],
+ few: template[5],
+ many: template[6],
+ other: template[7]),
+ args);
+ }
+ if (messageName == "Intl.gender") {
+ var gender = args[template[1]];
+ return evaluateJsonTemplate(
+ Intl.genderLogic(gender,
+ female: template[2], male: template[3], other: template[4]),
+ args);
+ }
+ if (messageName == "Intl.select") {
+ var select = args[template[1]];
+ var choices = template[2];
+ return evaluateJsonTemplate(Intl.selectLogic(select, choices), args);
+ }
+
+ // If we get this far, then we are a basic interpolation, just strings and
+ // ints.
+ // ignore: unnecessary_new
+ var output = new StringBuffer();
+ for (var entry in template) {
+ if (entry is int) {
+ output.write("${args[entry]}");
+ } else {
+ output.write("$entry");
+ }
+ }
+ return output.toString();
+}
diff --git a/examples/ui/localized_mod/lib/localization/messages_ar-XB.dart b/examples/ui/localized_mod/lib/localization/messages_ar-XB.dart
new file mode 100755
index 0000000..2945433
--- /dev/null
+++ b/examples/ui/localized_mod/lib/localization/messages_ar-XB.dart
@@ -0,0 +1,34 @@
+// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
+// This is a library that provides messages for a ar_XB locale. All the
+// messages from the main program should be duplicated here with the same
+// function name.
+
+// ignore_for_file: unnecessary_brace_in_string_interps
+
+import 'package:intl/intl.dart';
+import 'package:intl/message_lookup_by_library.dart';
+import 'dart:convert';
+import 'messages_all.dart' show evaluateJsonTemplate;
+
+// ignore: unnecessary_new
+final messages = new MessageLookup();
+
+// ignore: unused_element
+final _keepAnalysisHappy = Intl.defaultLocale;
+
+// ignore: non_constant_identifier_names
+typedef MessageIfAbsent(String message_str, List<dynamic> args);
+
+class MessageLookup extends MessageLookupByLibrary {
+ get localeName => 'ar_XB';
+
+ String evaluateMessage(translation, List<dynamic> args) {
+ return evaluateJsonTemplate(translation, args);
+ }
+
+ var _messages;
+ // ignore: unnecessary_new
+ get messages => _messages ??= new JsonDecoder().convert(messageText);
+ static final messageText = r'''
+{"appTitle":"Localized Mod","bodyText":["Intl.plural",0,"There are no messages.","There is one message.",["There are ",0," messages."],["There are ",0," messages."],["There are ",0," messages."],["There are ",0," messages."]],"footer":"Coming soon: actually reading those messages!"}''';
+}
diff --git a/examples/ui/localized_mod/lib/localization/messages_en-XA.dart b/examples/ui/localized_mod/lib/localization/messages_en-XA.dart
new file mode 100755
index 0000000..fdd77f1
--- /dev/null
+++ b/examples/ui/localized_mod/lib/localization/messages_en-XA.dart
@@ -0,0 +1,34 @@
+// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
+// This is a library that provides messages for a en_XA locale. All the
+// messages from the main program should be duplicated here with the same
+// function name.
+
+// ignore_for_file: unnecessary_brace_in_string_interps
+
+import 'package:intl/intl.dart';
+import 'package:intl/message_lookup_by_library.dart';
+import 'dart:convert';
+import 'messages_all.dart' show evaluateJsonTemplate;
+
+// ignore: unnecessary_new
+final messages = new MessageLookup();
+
+// ignore: unused_element
+final _keepAnalysisHappy = Intl.defaultLocale;
+
+// ignore: non_constant_identifier_names
+typedef MessageIfAbsent(String message_str, List<dynamic> args);
+
+class MessageLookup extends MessageLookupByLibrary {
+ get localeName => 'en_XA';
+
+ String evaluateMessage(translation, List<dynamic> args) {
+ return evaluateJsonTemplate(translation, args);
+ }
+
+ var _messages;
+ // ignore: unnecessary_new
+ get messages => _messages ??= new JsonDecoder().convert(messageText);
+ static final messageText = r'''
+{"appTitle":"[Ļöçåļîžéð Möð one two]","bodyText":["Intl.plural",0,"[Ţĥéŕé åŕé ñö méššåĝéš. one two three four five]","[Ţĥéŕé îš öñé méššåĝé. one two three four five]",null,null,null,["[Ţĥéŕé åŕé ᐅ",0,"ᐊ méššåĝéš. one two three four five]"]],"footer":"[Çömîñĝ šööñ: åçţûåļļý ŕéåðîñĝ ţĥöšé méššåĝéš¡ one two three four five six seven eight nine]"}''';
+}
diff --git a/examples/ui/localized_mod/lib/localization/messages_en-XC.dart b/examples/ui/localized_mod/lib/localization/messages_en-XC.dart
new file mode 100755
index 0000000..dd7a49f
--- /dev/null
+++ b/examples/ui/localized_mod/lib/localization/messages_en-XC.dart
@@ -0,0 +1,34 @@
+// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
+// This is a library that provides messages for a en_XC locale. All the
+// messages from the main program should be duplicated here with the same
+// function name.
+
+// ignore_for_file: unnecessary_brace_in_string_interps
+
+import 'package:intl/intl.dart';
+import 'package:intl/message_lookup_by_library.dart';
+import 'dart:convert';
+import 'messages_all.dart' show evaluateJsonTemplate;
+
+// ignore: unnecessary_new
+final messages = new MessageLookup();
+
+// ignore: unused_element
+final _keepAnalysisHappy = Intl.defaultLocale;
+
+// ignore: non_constant_identifier_names
+typedef MessageIfAbsent(String message_str, List<dynamic> args);
+
+class MessageLookup extends MessageLookupByLibrary {
+ get localeName => 'en_XC';
+
+ String evaluateMessage(translation, List<dynamic> args) {
+ return evaluateJsonTemplate(translation, args);
+ }
+
+ var _messages;
+ // ignore: unnecessary_new
+ get messages => _messages ??= new JsonDecoder().convert(messageText);
+ static final messageText = r'''
+{"appTitle":"Localized Mod","bodyText":["Intl.plural",0,"There are no messages.","There is one message.",null,null,null,["There are ",0," messages."]],"footer":"Coming soon: actually reading those messages!"}''';
+}
diff --git a/examples/ui/localized_mod/lib/localization/messages_messages.dart b/examples/ui/localized_mod/lib/localization/messages_messages.dart
deleted file mode 100644
index c2d2c2c..0000000
--- a/examples/ui/localized_mod/lib/localization/messages_messages.dart
+++ /dev/null
@@ -1,29 +0,0 @@
-// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
-// This is a library that provides messages for a messages locale. All the
-// messages from the main program should be duplicated here with the same
-// function name.
-
-import 'package:intl/intl.dart';
-import 'package:intl/message_lookup_by_library.dart';
-
-// ignore: unnecessary_new
-final messages = MessageLookup();
-
-// ignore: unused_element
-final _keepAnalysisHappy = Intl.defaultLocale;
-
-// ignore: non_constant_identifier_names
-typedef MessageIfAbsent(String message_str, List args);
-
-class MessageLookup extends MessageLookupByLibrary {
- get localeName => 'messages';
-
- static m0(itemCount) => "${Intl.plural(itemCount, zero: 'There are no messages.', one: 'There is one message.', other: 'There are ${itemCount} messages.')}";
-
- final messages = _notInlinedMessages(_notInlinedMessages);
- static _notInlinedMessages(_) => <String, Function> {
- "appTitle" : MessageLookupByLibrary.simpleMessage("Localized Mod"),
- "bodyText" : m0,
- "footer" : MessageLookupByLibrary.simpleMessage("Coming soon: actually reading those messages!")
- };
-}
diff --git a/examples/ui/localized_mod/lib/localization/messages_sr-Latn.dart b/examples/ui/localized_mod/lib/localization/messages_sr-Latn.dart
new file mode 100755
index 0000000..8e0d562
--- /dev/null
+++ b/examples/ui/localized_mod/lib/localization/messages_sr-Latn.dart
@@ -0,0 +1,34 @@
+// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
+// This is a library that provides messages for a sr_Latn locale. All the
+// messages from the main program should be duplicated here with the same
+// function name.
+
+// ignore_for_file: unnecessary_brace_in_string_interps
+
+import 'package:intl/intl.dart';
+import 'package:intl/message_lookup_by_library.dart';
+import 'dart:convert';
+import 'messages_all.dart' show evaluateJsonTemplate;
+
+// ignore: unnecessary_new
+final messages = new MessageLookup();
+
+// ignore: unused_element
+final _keepAnalysisHappy = Intl.defaultLocale;
+
+// ignore: non_constant_identifier_names
+typedef MessageIfAbsent(String message_str, List<dynamic> args);
+
+class MessageLookup extends MessageLookupByLibrary {
+ get localeName => 'sr_Latn';
+
+ String evaluateMessage(translation, List<dynamic> args) {
+ return evaluateJsonTemplate(translation, args);
+ }
+
+ var _messages;
+ // ignore: unnecessary_new
+ get messages => _messages ??= new JsonDecoder().convert(messageText);
+ static final messageText = r'''
+{"appTitle":"Lokalizovani mod","bodyText":["Intl.plural",0,"Nema poruka.","Jedna poruka.",null,[0," poruke."],null,[0," poruka."]],"footer":"Dolazi uskoro: zapravo čitanje ovih poruka!"}''';
+}
diff --git a/examples/ui/localized_mod/lib/localization/messages_sr.dart b/examples/ui/localized_mod/lib/localization/messages_sr.dart
new file mode 100755
index 0000000..c7aa735
--- /dev/null
+++ b/examples/ui/localized_mod/lib/localization/messages_sr.dart
@@ -0,0 +1,34 @@
+// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
+// This is a library that provides messages for a sr locale. All the
+// messages from the main program should be duplicated here with the same
+// function name.
+
+// ignore_for_file: unnecessary_brace_in_string_interps
+
+import 'package:intl/intl.dart';
+import 'package:intl/message_lookup_by_library.dart';
+import 'dart:convert';
+import 'messages_all.dart' show evaluateJsonTemplate;
+
+// ignore: unnecessary_new
+final messages = new MessageLookup();
+
+// ignore: unused_element
+final _keepAnalysisHappy = Intl.defaultLocale;
+
+// ignore: non_constant_identifier_names
+typedef MessageIfAbsent(String message_str, List<dynamic> args);
+
+class MessageLookup extends MessageLookupByLibrary {
+ get localeName => 'sr';
+
+ String evaluateMessage(translation, List<dynamic> args) {
+ return evaluateJsonTemplate(translation, args);
+ }
+
+ var _messages;
+ // ignore: unnecessary_new
+ get messages => _messages ??= new JsonDecoder().convert(messageText);
+ static final messageText = r'''
+{"appTitle":"Локализовани мод","bodyText":["Intl.plural",0,"Нема порука.","Једна порука.",null,[0," поруке."],null,[0," порука."]],"footer":"Долази ускоро: заправо читање ових порука!"}''';
+}