Unverified Commit 509c2dde authored by Albert Wolszon's avatar Albert Wolszon Committed by GitHub

Add decimalPatternDigits to gen-l10n valid NumberFormats (#122682)

`intl` [0.18.0 added](https://pub.dev/packages/intl/changelog#0180) a
[`NumberFormat.decimalPatternDigits`](https://pub.dev/documentation/intl/latest/intl/NumberFormat/NumberFormat.decimalPatternDigits.html)
pattern that allows `decimalDigits` param.

Fixes #122785

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [ ] ~I updated/added relevant documentation (doc comments with
`///`).~
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
parent 93308e82
...@@ -94,6 +94,7 @@ const Set<String> _validNumberFormats = <String>{ ...@@ -94,6 +94,7 @@ const Set<String> _validNumberFormats = <String>{
'compactLong', 'compactLong',
'currency', 'currency',
'decimalPattern', 'decimalPattern',
'decimalPatternDigits',
'decimalPercentPattern', 'decimalPercentPattern',
'percentPattern', 'percentPattern',
'scientificPattern', 'scientificPattern',
...@@ -118,6 +119,7 @@ const Set<String> _numberFormatsWithNamedParameters = <String>{ ...@@ -118,6 +119,7 @@ const Set<String> _numberFormatsWithNamedParameters = <String>{
'compactSimpleCurrency', 'compactSimpleCurrency',
'compactLong', 'compactLong',
'currency', 'currency',
'decimalPatternDigits',
'decimalPercentPattern', 'decimalPercentPattern',
'simpleCurrency', 'simpleCurrency',
}; };
......
...@@ -3196,4 +3196,52 @@ AppLocalizations lookupAppLocalizations(Locale locale) { ...@@ -3196,4 +3196,52 @@ AppLocalizations lookupAppLocalizations(Locale locale) {
..writeOutputFiles(); ..writeOutputFiles();
expect(logger.hadWarningOutput, isFalse); expect(logger.hadWarningOutput, isFalse);
}); });
testWithoutContext('can use decimalPatternDigits with decimalDigits optional parameter', () {
const String arbFile = '''
{
"treeHeight": "Tree height is {height}m.",
"@treeHeight": {
"placeholders": {
"height": {
"type": "double",
"format": "decimalPatternDigits",
"optionalParameters": {
"decimalDigits": 3
}
}
}
}
}''';
final Directory l10nDirectory = fs.currentDirectory.childDirectory('lib').childDirectory('l10n')
..createSync(recursive: true);
l10nDirectory.childFile(defaultTemplateArbFileName)
.writeAsStringSync(arbFile);
LocalizationsGenerator(
fileSystem: fs,
inputPathString: defaultL10nPathString,
outputPathString: defaultL10nPathString,
templateArbFileName: defaultTemplateArbFileName,
outputFileString: defaultOutputFileString,
classNameString: defaultClassNameString,
logger: logger,
)
..loadResources()
..writeOutputFiles();
final String localizationsFile = fs.file(
fs.path.join(syntheticL10nPackagePath, 'output-localization-file_en.dart'),
).readAsStringSync();
expect(localizationsFile, containsIgnoringWhitespace(r'''
String treeHeight(double height) {
'''));
expect(localizationsFile, containsIgnoringWhitespace(r'''
NumberFormat.decimalPatternDigits(
locale: localeName,
decimalDigits: 3
);
'''));
});
} }
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