| Index: packages/intl/test/message_extraction/part_of_sample_with_messages.dart
|
| diff --git a/packages/intl/test/message_extraction/part_of_sample_with_messages.dart b/packages/intl/test/message_extraction/part_of_sample_with_messages.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..31cddccd12257bf3d27306be795638f0bcb40217
|
| --- /dev/null
|
| +++ b/packages/intl/test/message_extraction/part_of_sample_with_messages.dart
|
| @@ -0,0 +1,76 @@
|
| +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.part of sample;
|
| +
|
| +part of sample;
|
| +
|
| +class Person {
|
| + String name;
|
| + String gender;
|
| + Person(this.name, this.gender);
|
| +}
|
| +
|
| +class YouveGotMessages {
|
| +
|
| + // A static message, rather than a standalone function.
|
| + static staticMessage() =>
|
| + Intl.message("This comes from a static method", name: 'staticMessage');
|
| +
|
| + // An instance method, rather than a standalone function.
|
| + method() => Intl.message("This comes from a method",
|
| + name: 'YouveGotMessages_method', desc: 'This is a method with a '
|
| + 'long description which spans '
|
| + 'multiple lines.');
|
| +
|
| + // A non-lambda, i.e. not using => syntax, and with an additional statement
|
| + // before the Intl.message call.
|
| + nonLambda() {
|
| + var aTrueValue = true;
|
| + var msg = Intl.message("This method is not a lambda", name: 'nonLambda');
|
| + expect(aTrueValue, isTrue,
|
| + reason: 'Parser should not fail with additional code.');
|
| + return msg;
|
| + }
|
| +
|
| + plurals(num) => Intl.message("""${Intl.plural(num,
|
| + zero : 'Is zero plural?',
|
| + one : 'This is singular.',
|
| + other : 'This is plural ($num).')
|
| + }""", name: "plurals", args: [num], desc: "Basic plurals");
|
| +
|
| + whereTheyWent(Person person, String place) =>
|
| + whereTheyWentMessage(person.name, person.gender, place);
|
| +
|
| + whereTheyWentMessage(String name, String gender, String place) {
|
| + return Intl.message("${Intl.gender(gender,
|
| + male: '$name went to his $place',
|
| + female: '$name went to her $place',
|
| + other: '$name went to its $place')
|
| + }",
|
| + name: "whereTheyWentMessage",
|
| + args: [name, gender, place],
|
| + desc: 'A person went to some place that they own, e.g. their room');
|
| + }
|
| +
|
| + // English doesn't do enough with genders, so this example is French.
|
| + nested(List people, String place) {
|
| + var names = people.map((x) => x.name).join(", ");
|
| + var number = people.length;
|
| + var combinedGender =
|
| + people.every((x) => x.gender == "female") ? "female" : "other";
|
| + if (number == 0) combinedGender = "other";
|
| +
|
| + nestedMessage(names, number, combinedGender, place) => Intl.message(
|
| + '''${Intl.gender(combinedGender,
|
| + other: '${Intl.plural(number,
|
| + zero: "Personne n'est allé au $place",
|
| + one: "${names} est allé au $place",
|
| + other: "${names} sont allés au $place")}',
|
| + female: '${Intl.plural(number,
|
| + one: "$names est allée au $place",
|
| + other: "$names sont allées au $place")}'
|
| + )}''',
|
| + name: "nestedMessage", args: [names, number, combinedGender, place]);
|
| + return nestedMessage(names, number, combinedGender, place);
|
| + }
|
| +}
|
|
|