Unverified Commit 9b3754d5 authored by Hans Muller's avatar Hans Muller Committed by GitHub

Extend the gen_l10n integration test (#51375)

parent eb00c562
......@@ -76,29 +76,32 @@ void main() {
await l10nEnd.future;
await subscription.cancel();
expect(stdout.toString(),
'#l10n 0 (Hello World)\n'
'#l10n 1 (Hello World)\n'
'#l10n 2 (Hello World)\n'
'#l10n 3 (Hello World on Friday, January 1, 1960)\n'
'#l10n 4 (Hello world argument on 1/1/1960 at 00:00)\n'
'#l10n 5 (Hello World from 1960 to 2020)\n'
'#l10n 6 (Hello for 123)\n'
'#l10n 7 (Hello for price USD123.00)\n'
'#l10n 8 (Hello)\n'
'#l10n 9 (Hello World)\n'
'#l10n 10 (Hello two worlds)\n'
'#l10n 11 (Hello on Friday, January 1, 1960)\n'
'#l10n 12 (Hello World, on Friday, January 1, 1960)\n'
'#l10n 13 (Hello two worlds, on Friday, January 1, 1960)\n'
'#l10n 14 (Hello)\n'
'#l10n 15 (Hello new World)\n'
'#l10n 16 (Hello two new worlds)\n'
'#l10n 17 (Hello other 0 worlds, with a total of 100 citizens)\n'
'#l10n 18 (Hello World of 101 citizens)\n'
'#l10n 19 (Hello two worlds with 102 total citizens)\n'
'#l10n 20 ([Hello] #World#)\n'
'#l10n 21 ([Hello] -World- #123#)\n'
'#l10n END\n'
'#l10n 0 (CA Hello World)\n'
'#l10n 1 (Hello CA fallback World)\n'
'#l10n 2 (GB Hello World)\n'
'#l10n 3 (Hello GB fallback World)\n'
'#l10n 4 (Hello World)\n'
'#l10n 5 (Hello World)\n'
'#l10n 6 (Hello World)\n'
'#l10n 7 (Hello World on Friday, January 1, 1960)\n'
'#l10n 8 (Hello world argument on 1/1/1960 at 00:00)\n'
'#l10n 9 (Hello World from 1960 to 2020)\n'
'#l10n 10 (Hello for 123)\n'
'#l10n 11 (Hello for price USD123.00)\n'
'#l10n 12 (Hello)\n'
'#l10n 13 (Hello World)\n'
'#l10n 14 (Hello two worlds)\n'
'#l10n 15 (Hello)\n'
'#l10n 16 (Hello new World)\n'
'#l10n 17 (Hello two new worlds)\n'
'#l10n 18 (Hello on Friday, January 1, 1960)\n'
'#l10n 19 (Hello World, on Friday, January 1, 1960)\n'
'#l10n 20 (Hello two worlds, on Friday, January 1, 1960)\n'
'#l10n 21 (Hello other 0 worlds, with a total of 100 citizens)\n'
'#l10n 22 (Hello World of 101 citizens)\n'
'#l10n 23 (Hello two worlds with 102 total citizens)\n'
'#l10n 24 ([Hello] -World- #123#)\n'
'#l10n END\n'
);
});
}
......@@ -16,6 +16,8 @@ class GenL10nProject extends Project {
Future<void> setUpIn(Directory dir) {
this.dir = dir;
writeFile(globals.fs.path.join(dir.path, 'lib', 'l10n', 'app_en.arb'), appEn);
writeFile(globals.fs.path.join(dir.path, 'lib', 'l10n', 'app_en_CA.arb'), appEnCa);
writeFile(globals.fs.path.join(dir.path, 'lib', 'l10n', 'app_en_GB.arb'), appEnGb);
return super.setUpIn(dir);
}
......@@ -40,44 +42,85 @@ import 'package:flutter/material.dart';
import 'l10n/app_localizations.dart';
class LocaleBuilder extends StatelessWidget {
const LocaleBuilder({ Key key, this.locale, this.callback }) : super(key: key);
final Locale locale;
final void Function (BuildContext context) callback;
@override build(BuildContext context) {
return Localizations.override(
locale: locale,
context: context,
child: Builder(
builder: (BuildContext context) {
callback(context);
return Container();
},
),
);
}
}
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
try {
final AppLocalizations localizations = AppLocalizations.of(context);
final List<String> results = <String>[
'${localizations.helloWorld}',
'${localizations.hello("World")}',
'${localizations.greeting("Hello", "World")}',
'${localizations.helloWorldOn(DateTime(1960))}',
'${localizations.helloOn("world argument", DateTime(1960), DateTime(1960))}',
'${localizations.helloWorldDuring(DateTime(1960), DateTime(2020))}',
'${localizations.helloFor(123)}',
'${localizations.helloCost("price", 123)}',
'${localizations.helloWorlds(0)}',
'${localizations.helloWorlds(1)}',
'${localizations.helloWorlds(2)}',
'${localizations.helloWorldsOn(0, DateTime(1960))}',
'${localizations.helloWorldsOn(1, DateTime(1960))}',
'${localizations.helloWorldsOn(2, DateTime(1960))}',
'${localizations.helloAdjectiveWorlds(0, "new")}',
'${localizations.helloAdjectiveWorlds(1, "new")}',
'${localizations.helloAdjectiveWorlds(2, "new")}',
'${localizations.helloWorldPopulation(0, 100)}',
'${localizations.helloWorldPopulation(1, 101)}',
'${localizations.helloWorldPopulation(2, 102)}',
'${localizations.helloWorldInterpolation("Hello", "World")}',
'${localizations.helloWorldsInterpolation(123, "Hello", "World")}',
];
int n = 0;
for (final String result in results) {
print('#l10n $n ($result)\n');
n += 1;
}
} finally {
print('#l10n END\n');
}
return Container();
final List<String> results = [];
return Row(
children: <Widget>[
LocaleBuilder(
locale: Locale('en', 'CA'),
callback: (BuildContext context) {
results.add(AppLocalizations.of(context).helloWorld);
results.add(AppLocalizations.of(context).hello("CA fallback World"));
},
),
LocaleBuilder(
locale: Locale('en', 'GB'),
callback: (BuildContext context) {
results.add(AppLocalizations.of(context).helloWorld);
results.add(AppLocalizations.of(context).hello("GB fallback World"));
},
),
LocaleBuilder(
locale: Locale('en'),
callback: (BuildContext context) {
int n = 0;
try {
final AppLocalizations localizations = AppLocalizations.of(context);
results.addAll(<String>[
'${localizations.helloWorld}',
'${localizations.hello("World")}',
'${localizations.greeting("Hello", "World")}',
'${localizations.helloWorldOn(DateTime(1960))}',
'${localizations.helloOn("world argument", DateTime(1960), DateTime(1960))}',
'${localizations.helloWorldDuring(DateTime(1960), DateTime(2020))}',
'${localizations.helloFor(123)}',
'${localizations.helloCost("price", 123)}',
'${localizations.helloWorlds(0)}',
'${localizations.helloWorlds(1)}',
'${localizations.helloWorlds(2)}',
'${localizations.helloAdjectiveWorlds(0, "new")}',
'${localizations.helloAdjectiveWorlds(1, "new")}',
'${localizations.helloAdjectiveWorlds(2, "new")}',
'${localizations.helloWorldsOn(0, DateTime(1960))}',
'${localizations.helloWorldsOn(1, DateTime(1960))}',
'${localizations.helloWorldsOn(2, DateTime(1960))}',
'${localizations.helloWorldPopulation(0, 100)}',
'${localizations.helloWorldPopulation(1, 101)}',
'${localizations.helloWorldPopulation(2, 102)}',
'${localizations.helloWorldsInterpolation(123, "Hello", "World")}',
]);
for (final String result in results) {
print('#l10n $n ($result)\n');
n += 1;
}
}
finally {
print('#l10n END\n');
}
},
),
],
);
}
}
......@@ -245,5 +288,19 @@ void main() {
}
}
}
''';
final String appEnCa = r'''
{
"@@locale": "en_CA",
"helloWorld": "CA Hello World"
}
''';
final String appEnGb = r'''
{
"@@locale": "en_GB",
"helloWorld": "GB Hello World"
}
''';
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment