Index: pkg/intl/test/message_extraction/sample_with_messages.dart |
diff --git a/pkg/intl/test/message_extraction/sample_with_messages.dart b/pkg/intl/test/message_extraction/sample_with_messages.dart |
deleted file mode 100644 |
index 47cfc182f916f9af90cb294a5655531af79fd071..0000000000000000000000000000000000000000 |
--- a/pkg/intl/test/message_extraction/sample_with_messages.dart |
+++ /dev/null |
@@ -1,239 +0,0 @@ |
-// 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. |
- |
-/** |
- * This is a program with various [Intl.message] messages. It just prints |
- * all of them, and is used for testing of message extraction, translation, |
- * and code generation. |
- */ |
-library sample; |
- |
-import "package:intl/intl.dart"; |
-import "foo_messages_all.dart"; |
-import "print_to_list.dart"; |
-import "dart:async"; |
-import "package:unittest/unittest.dart"; |
- |
-part 'part_of_sample_with_messages.dart'; |
- |
-message1() => Intl.message("This is a message", name: 'message1', desc: 'foo' ); |
- |
-message2(x) => Intl.message("Another message with parameter $x", |
- name: 'message2', desc: 'Description 2', args: [x], examples: {'x' : 3}); |
- |
-// A string with multiple adjacent strings concatenated together, verify |
-// that the parser handles this properly. |
-multiLine() => Intl.message("This " |
- "string " |
- "extends " |
- "across " |
- "multiple " |
- "lines.", |
- name: "multiLine"); |
- |
-// Have types on the enclosing function's arguments. |
-types(int a, String b, List c) => Intl.message("$a, $b, $c", name: 'types', |
- args: [a, b, c]); |
- |
-// This string will be printed with a French locale, so it will always show |
-// up in the French version, regardless of the current locale. |
-alwaysTranslated() => |
- Intl.message("This string is always translated", locale: 'fr', |
- name: 'alwaysTranslated'); |
- |
-// Test interpolation with curly braces around the expression, but it must |
-// still be just a variable reference. |
-trickyInterpolation(s) => |
- Intl.message("Interpolation is tricky when it ends a sentence like ${s}.", |
- name: 'trickyInterpolation', args: [s]); |
- |
-get leadingQuotes => Intl.message("\"So-called\"", name: 'leadingQuotes'); |
- |
-// A message with characters not in the basic multilingual plane. |
-originalNotInBMP() => Intl.message("Ancient Greek hangman characters: 𐅆𐅇.", |
- name: "originalNotInBMP"); |
- |
-// A string for which we don't provide all translations. |
-notAlwaysTranslated() => Intl.message("This is missing some translations", |
- name: "notAlwaysTranslated"); |
- |
-// This is invalid and should be recognized as such, because the message has |
-// to be a literal. Otherwise, interpolations would be outside of the function |
-// scope. |
-var someString = "No, it has to be a literal string"; |
-noVariables() => Intl.message(someString, name: "noVariables"); |
- |
-// This is unremarkable in English, but the translated versions will contain |
-// characters that ought to be escaped during code generation. |
-escapable() => Intl.message("Escapable characters here: ", name: "escapable"); |
- |
-outerPlural(n) => Intl.plural(n, zero: 'none', one: 'one', other: 'some', |
- name: 'outerPlural', desc: 'A plural with no enclosing message', args: [n]); |
- |
-outerGender(g) => Intl.gender(g, male: 'm', female: 'f', other: 'o', |
- name: 'outerGender', desc: 'A gender with no enclosing message', args: [g]); |
- |
-pluralThatFailsParsing(noOfThings) => Intl.plural(noOfThings, |
- one: "1 thing:", |
- other: "$noOfThings things:", |
- name: "pluralThatFailsParsing", |
- args: [noOfThings], |
- desc: "How many things are there?"); |
- |
-// A standalone gender message where we don't provide name or args. This should |
-// be rejected by validation code. |
-invalidOuterGender(g) => Intl.gender(g, other: 'o'); |
- |
-// A general select |
-outerSelect(currency, amount) => Intl.select(currency, |
- { |
- "CDN" : "$amount Canadian dollars", |
- "other" : "$amount some currency or other." |
- }, |
- name: "outerSelect", |
- args: [currency, amount]); |
- |
-// A select with a plural inside the expressions. |
-nestedSelect(currency, amount) => Intl.select(currency, |
- { |
- "CDN" : """${Intl.plural(amount, one: '$amount Canadian dollar', |
- other: '$amount Canadian dollars')}""", |
- "other" : "Whatever", |
- }, |
- name: "nestedSelect", |
- args: [currency, amount]); |
- |
-// A trivial nested plural/gender where both are done directly rather than |
-// in interpolations. |
-nestedOuter(number, gen) => Intl.plural(number, |
- other: Intl.gender(gen, male: "$number male", other: "$number other"), |
- name: 'nestedOuter', |
- args: [number, gen]); |
- |
-sameContentsDifferentName() => Intl.message("Hello World", |
- name: "sameContentsDifferentName", |
- desc: "One of two messages with the same contents, but different names"); |
- |
-differentNameSameContents() => Intl.message("Hello World", |
- name: "differentNameSameContents", |
- desc: "One of two messages with the same contents, but different names"); |
- |
-/// Distinguish two messages with identical text using the meaning parameter. |
-rentToBePaid() => Intl.message("rent", name: "rentToBePaid", |
- meaning: 'Money for rent', desc: "Money to be paid for rent"); |
- |
-rentAsVerb() => Intl.message("rent", name: "rentAsVerb", |
- meaning: 'rent as a verb', desc: "The action of renting, as in rent a car"); |
- |
-printStuff(Intl locale) { |
- |
- // Use a name that's not a literal so this will get skipped. Then we have |
- // a name that's not in the original but we include it in the French |
- // translation. Because it's not in the original it shouldn't get included |
- // in the generated catalog and shouldn't get translated. |
- if (locale.locale == 'fr') { |
- var badName = "thisNameIsNotInTheOriginal"; |
- var notInOriginal = Intl.message("foo", name: badName); |
- if (notInOriginal != "foo") { |
- throw "You shouldn't be able to introduce a new message in a translation"; |
- } |
- } |
- |
- // A function that is assigned to a variable. It's also nested |
- // within another function definition. |
- message3(a, b, c) => Intl.message( |
- "Characters that need escaping, e.g slashes \\ dollars \${ (curly braces " |
- "are ok) and xml reserved characters <& and quotes \" " |
- "parameters $a, $b, and $c", |
- name: 'message3', |
- args: [a, b, c]); |
- var messageVariable = message3; |
- |
- printOut("-------------------------------------------"); |
- printOut("Printing messages for ${locale.locale}"); |
- Intl.withLocale(locale.locale, () { |
- printOut(message1()); |
- printOut(message2("hello")); |
- printOut(messageVariable(1,2,3)); |
- printOut(multiLine()); |
- printOut(types(1, "b", ["c", "d"])); |
- printOut(leadingQuotes); |
- printOut(alwaysTranslated()); |
- printOut(trickyInterpolation("this")); |
- var thing = new YouveGotMessages(); |
- printOut(thing.method()); |
- printOut(thing.nonLambda()); |
- var x = YouveGotMessages.staticMessage(); |
- printOut(YouveGotMessages.staticMessage()); |
- printOut(notAlwaysTranslated()); |
- printOut(originalNotInBMP()); |
- printOut(escapable()); |
- |
- printOut(thing.plurals(0)); |
- printOut(thing.plurals(1)); |
- printOut(thing.plurals(2)); |
- printOut(thing.plurals(3)); |
- printOut(thing.plurals(4)); |
- printOut(thing.plurals(5)); |
- printOut(thing.plurals(6)); |
- printOut(thing.plurals(7)); |
- printOut(thing.plurals(8)); |
- printOut(thing.plurals(9)); |
- printOut(thing.plurals(10)); |
- printOut(thing.plurals(11)); |
- printOut(thing.plurals(20)); |
- printOut(thing.plurals(100)); |
- printOut(thing.plurals(101)); |
- printOut(thing.plurals(100000)); |
- var alice = new Person("Alice", "female"); |
- var bob = new Person("Bob", "male"); |
- var cat = new Person("cat", null); |
- printOut(thing.whereTheyWent(alice, "house")); |
- printOut(thing.whereTheyWent(bob, "house")); |
- printOut(thing.whereTheyWent(cat, "litter box")); |
- printOut(thing.nested([alice, bob], "magasin")); |
- printOut(thing.nested([alice], "magasin")); |
- printOut(thing.nested([], "magasin")); |
- printOut(thing.nested([bob, bob], "magasin")); |
- printOut(thing.nested([alice, alice], "magasin")); |
- |
- printOut(outerPlural(0)); |
- printOut(outerPlural(1)); |
- printOut(outerGender("male")); |
- printOut(outerGender("female")); |
- printOut(nestedOuter(7, "male")); |
- printOut(outerSelect("CDN", 7)); |
- printOut(outerSelect("EUR", 5)); |
- printOut(nestedSelect("CDN", 1)); |
- printOut(nestedSelect("CDN", 2)); |
- printOut(pluralThatFailsParsing(1)); |
- printOut(pluralThatFailsParsing(2)); |
- printOut(differentNameSameContents()); |
- printOut(sameContentsDifferentName()); |
- printOut(rentAsVerb()); |
- printOut(rentToBePaid()); |
- }); |
-} |
- |
-var localeToUse = 'en_US'; |
- |
-main() { |
- var fr = new Intl("fr"); |
- var english = new Intl("en_US"); |
- var de = new Intl("de_DE"); |
- // Throw in an initialize of a null locale to make sure it doesn't throw. |
- initializeMessages(null); |
- |
- // Verify that a translated message isn't initially present. |
- var messageInGerman = Intl.withLocale('de_DE', message1); |
- expect(messageInGerman, "This is a message"); |
- |
- var f1 = initializeMessages(fr.locale) |
- // Since English has the one message which is always translated, we |
- // can't print it until French is ready. |
- .then((_) => printStuff(english)) |
- .then((_) => printStuff(fr)); |
- var f2 = initializeMessages('de-de').then((_) => printStuff(de)); |
- return Future.wait([f1, f2]); |
-} |