Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
b4175e9b
Unverified
Commit
b4175e9b
authored
Apr 20, 2021
by
Jenn Magder
Committed by
GitHub
Apr 20, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor LocalizationsGenerator initialize instance method into factory (#80605)
parent
42f21fd7
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
574 additions
and
685 deletions
+574
-685
localizations.dart
...ter_tools/lib/src/build_system/targets/localizations.dart
+1
-1
generate_localizations.dart
...lutter_tools/lib/src/commands/generate_localizations.dart
+19
-21
gen_l10n.dart
packages/flutter_tools/lib/src/localizations/gen_l10n.dart
+178
-162
localizations_test.dart
...eneral.shard/build_system/targets/localizations_test.dart
+0
-109
generate_localizations_test.dart
...tools/test/general.shard/generate_localizations_test.dart
+376
-392
No files found.
packages/flutter_tools/lib/src/build_system/targets/localizations.dart
View file @
b4175e9b
...
@@ -63,7 +63,7 @@ class GenerateLocalizationsTarget extends Target {
...
@@ -63,7 +63,7 @@ class GenerateLocalizationsTarget extends Target {
options:
options
,
options:
options
,
projectDir:
environment
.
projectDir
,
projectDir:
environment
.
projectDir
,
dependenciesDir:
environment
.
buildDir
,
dependenciesDir:
environment
.
buildDir
,
localizationsGenerator:
LocalizationsGenerator
(
environment
.
fileSystem
)
,
fileSystem:
environment
.
fileSystem
,
);
);
final
Map
<
String
,
Object
>
dependencies
=
json
.
decode
(
final
Map
<
String
,
Object
>
dependencies
=
json
.
decode
(
...
...
packages/flutter_tools/lib/src/commands/generate_localizations.dart
View file @
b4175e9b
...
@@ -212,7 +212,7 @@ class GenerateLocalizationsCommand extends FlutterCommand {
...
@@ -212,7 +212,7 @@ class GenerateLocalizationsCommand extends FlutterCommand {
options:
options
,
options:
options
,
projectDir:
_fileSystem
.
currentDirectory
,
projectDir:
_fileSystem
.
currentDirectory
,
dependenciesDir:
null
,
dependenciesDir:
null
,
localizationsGenerator:
LocalizationsGenerator
(
_fileSystem
)
,
fileSystem:
_fileSystem
,
);
);
return
FlutterCommandResult
.
success
();
return
FlutterCommandResult
.
success
();
}
}
...
@@ -233,29 +233,27 @@ class GenerateLocalizationsCommand extends FlutterCommand {
...
@@ -233,29 +233,27 @@ class GenerateLocalizationsCommand extends FlutterCommand {
final
bool
areResourceAttributesRequired
=
boolArg
(
'required-resource-attributes'
);
final
bool
areResourceAttributesRequired
=
boolArg
(
'required-resource-attributes'
);
final
bool
usesNullableGetter
=
boolArg
(
'nullable-getter'
);
final
bool
usesNullableGetter
=
boolArg
(
'nullable-getter'
);
final
LocalizationsGenerator
localizationsGenerator
=
LocalizationsGenerator
(
_fileSystem
);
precacheLanguageAndRegionTags
();
precacheLanguageAndRegionTags
();
try
{
try
{
localizationsGenerator
LocalizationsGenerator
(
..
initialize
(
fileSystem:
_fileSystem
,
inputPathString:
inputPathString
,
inputPathString:
inputPathString
,
outputPathString:
outputPathString
,
outputPathString:
outputPathString
,
templateArbFileName:
templateArbFileName
,
templateArbFileName:
templateArbFileName
,
outputFileString:
outputFileString
,
outputFileString:
outputFileString
,
classNameString:
classNameString
,
classNameString:
classNameString
,
preferredSupportedLocales:
preferredSupportedLocales
,
preferredSupportedLocales:
preferredSupportedLocales
,
headerString:
headerString
,
headerString:
headerString
,
headerFile:
headerFile
,
headerFile:
headerFile
,
useDeferredLoading:
useDeferredLoading
,
useDeferredLoading:
useDeferredLoading
,
inputsAndOutputsListPath:
inputsAndOutputsListPath
,
inputsAndOutputsListPath:
inputsAndOutputsListPath
,
useSyntheticPackage:
useSyntheticPackage
,
useSyntheticPackage:
useSyntheticPackage
,
projectPathString:
projectPathString
,
projectPathString:
projectPathString
,
areResourceAttributesRequired:
areResourceAttributesRequired
,
areResourceAttributesRequired:
areResourceAttributesRequired
,
untranslatedMessagesFile:
untranslatedMessagesFile
,
untranslatedMessagesFile:
untranslatedMessagesFile
,
usesNullableGetter:
usesNullableGetter
,
usesNullableGetter:
usesNullableGetter
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
_logger
);
..
writeOutputFiles
(
_logger
);
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
...
packages/flutter_tools/lib/src/localizations/gen_l10n.dart
View file @
b4175e9b
...
@@ -11,19 +11,18 @@ import '../base/file_system.dart';
...
@@ -11,19 +11,18 @@ import '../base/file_system.dart';
import
'../base/logger.dart'
;
import
'../base/logger.dart'
;
import
'../convert.dart'
;
import
'../convert.dart'
;
import
'../flutter_manifest.dart'
;
import
'../flutter_manifest.dart'
;
import
'../globals_null_migrated.dart'
as
globals
;
import
'gen_l10n_templates.dart'
;
import
'gen_l10n_templates.dart'
;
import
'gen_l10n_types.dart'
;
import
'gen_l10n_types.dart'
;
import
'localizations_utils.dart'
;
import
'localizations_utils.dart'
;
/// Run the localizations generation script with the configuration [options].
/// Run the localizations generation script with the configuration [options].
void
generateLocalizations
(
{
LocalizationsGenerator
generateLocalizations
(
{
@required
Directory
projectDir
,
@required
Directory
projectDir
,
@required
Directory
dependenciesDir
,
@required
Directory
dependenciesDir
,
@required
LocalizationOptions
options
,
@required
LocalizationOptions
options
,
@required
LocalizationsGenerator
localizationsGenerator
,
@required
Logger
logger
,
@required
Logger
logger
,
@required
FileSystem
fileSystem
,
})
{
})
{
// If generating a synthetic package, generate a warning if
// If generating a synthetic package, generate a warning if
// flutter: generate is not set.
// flutter: generate is not set.
...
@@ -45,45 +44,46 @@ void generateLocalizations({
...
@@ -45,45 +44,46 @@ void generateLocalizations({
precacheLanguageAndRegionTags
();
precacheLanguageAndRegionTags
();
final
String
inputPathString
=
options
?.
arbDirectory
?.
path
??
globals
.
fs
.
path
.
join
(
'lib'
,
'l10n'
);
final
String
inputPathString
=
options
?.
arbDirectory
?.
path
??
fileSystem
.
path
.
join
(
'lib'
,
'l10n'
);
final
String
templateArbFileName
=
options
?.
templateArbFile
?.
toFilePath
()
??
'app_en.arb'
;
final
String
templateArbFileName
=
options
?.
templateArbFile
?.
toFilePath
()
??
'app_en.arb'
;
final
String
outputFileString
=
options
?.
outputLocalizationsFile
?.
toFilePath
()
??
'app_localizations.dart'
;
final
String
outputFileString
=
options
?.
outputLocalizationsFile
?.
toFilePath
()
??
'app_localizations.dart'
;
LocalizationsGenerator
generator
;
try
{
try
{
localizationsGenerator
generator
=
LocalizationsGenerator
(
..
initialize
(
fileSystem:
fileSystem
,
inputsAndOutputsListPath:
dependenciesDir
?.
path
,
inputsAndOutputsListPath:
dependenciesDir
?.
path
,
projectPathString:
projectDir
.
path
,
projectPathString:
projectDir
.
path
,
inputPathString:
inputPathString
,
inputPathString:
inputPathString
,
templateArbFileName:
templateArbFileName
,
templateArbFileName:
templateArbFileName
,
outputFileString:
outputFileString
,
outputFileString:
outputFileString
,
outputPathString:
options
?.
outputDirectory
?.
path
,
outputPathString:
options
?.
outputDirectory
?.
path
,
classNameString:
options
.
outputClass
??
'AppLocalizations'
,
classNameString:
options
.
outputClass
??
'AppLocalizations'
,
preferredSupportedLocales:
options
.
preferredSupportedLocales
,
preferredSupportedLocales:
options
.
preferredSupportedLocales
,
headerString:
options
.
header
,
headerString:
options
.
header
,
headerFile:
options
?.
headerFile
?.
toFilePath
(),
headerFile:
options
?.
headerFile
?.
toFilePath
(),
useDeferredLoading:
options
.
deferredLoading
??
false
,
useDeferredLoading:
options
.
deferredLoading
??
false
,
useSyntheticPackage:
options
.
useSyntheticPackage
??
true
,
useSyntheticPackage:
options
.
useSyntheticPackage
??
true
,
areResourceAttributesRequired:
options
.
areResourceAttributesRequired
??
false
,
areResourceAttributesRequired:
options
.
areResourceAttributesRequired
??
false
,
untranslatedMessagesFile:
options
?.
untranslatedMessagesFile
?.
toFilePath
(),
untranslatedMessagesFile:
options
?.
untranslatedMessagesFile
?.
toFilePath
(),
usesNullableGetter:
options
?.
usesNullableGetter
??
true
,
usesNullableGetter:
options
?.
usesNullableGetter
??
true
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
logger
,
isFromYaml:
true
);
..
writeOutputFiles
(
logger
,
isFromYaml:
true
);
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
throwToolExit
(
e
.
message
);
throwToolExit
(
e
.
message
);
}
}
return
generator
;
}
}
/// The path for the synthetic package.
/// The path for the synthetic package.
final
String
defaultSyntheticPackagePath
=
globals
.
fs
.
path
.
join
(
'.dart_tool'
,
'flutter_gen'
);
String
_defaultSyntheticPackagePath
(
FileSystem
fileSystem
)
=>
fileSystem
.
path
.
join
(
'.dart_tool'
,
'flutter_gen'
);
/// The default path used when the `_useSyntheticPackage` setting is set to true
/// The default path used when the `_useSyntheticPackage` setting is set to true
/// in [LocalizationsGenerator].
/// in [LocalizationsGenerator].
///
///
/// See [LocalizationsGenerator.initialize] for where and how it is used by the
/// See [LocalizationsGenerator.initialize] for where and how it is used by the
/// localizations tool.
/// localizations tool.
final
String
syntheticL10nPackagePath
=
globals
.
fs
.
path
.
join
(
defaultSyntheticPackagePath
,
'gen_l10n'
);
String
_syntheticL10nPackagePath
(
FileSystem
fileSystem
)
=>
fileSystem
.
path
.
join
(
_defaultSyntheticPackagePath
(
fileSystem
)
,
'gen_l10n'
);
List
<
String
>
generateMethodParameters
(
Message
message
)
{
List
<
String
>
generateMethodParameters
(
Message
message
)
{
assert
(
message
.
placeholders
.
isNotEmpty
);
assert
(
message
.
placeholders
.
isNotEmpty
);
...
@@ -535,20 +535,88 @@ String _generateDelegateClass({
...
@@ -535,20 +535,88 @@ String _generateDelegateClass({
}
}
class
LocalizationsGenerator
{
class
LocalizationsGenerator
{
/// Initializes [inputDirectory], [outputDirectory], [templateArbFile],
/// [outputFile] and [className].
///
/// Throws an [L10nException] when a provided configuration is not allowed
/// by [LocalizationsGenerator].
///
/// Throws a [FileSystemException] when a file operation necessary for setting
/// up the [LocalizationsGenerator] cannot be completed.
factory
LocalizationsGenerator
({
@required
FileSystem
fileSystem
,
@required
String
inputPathString
,
String
outputPathString
,
@required
String
templateArbFileName
,
String
outputFileString
,
@required
String
classNameString
,
List
<
String
>
preferredSupportedLocales
,
String
headerString
,
String
headerFile
,
bool
useDeferredLoading
=
false
,
String
inputsAndOutputsListPath
,
bool
useSyntheticPackage
=
true
,
String
projectPathString
,
bool
areResourceAttributesRequired
=
false
,
String
untranslatedMessagesFile
,
bool
usesNullableGetter
=
true
,
})
{
final
Directory
projectDirectory
=
projectDirFromPath
(
fileSystem
,
projectPathString
);
final
Directory
inputDirectory
=
inputDirectoryFromPath
(
fileSystem
,
inputPathString
,
projectDirectory
);
final
Directory
outputDirectory
=
outputDirectoryFromPath
(
fileSystem
,
outputPathString
??
inputPathString
,
useSyntheticPackage
,
projectDirectory
);
return
LocalizationsGenerator
.
_
(
fileSystem
,
useSyntheticPackage:
useSyntheticPackage
,
usesNullableGetter:
usesNullableGetter
,
className:
classNameFromString
(
classNameString
),
projectDirectory:
projectDirectory
,
inputDirectory:
inputDirectory
,
outputDirectory:
outputDirectory
,
templateArbFile:
templateArbFileFromFileName
(
templateArbFileName
,
inputDirectory
),
baseOutputFile:
outputDirectory
.
childFile
(
outputFileString
),
preferredSupportedLocales:
preferredSupportedLocalesFromLocales
(
preferredSupportedLocales
),
header:
headerFromFile
(
headerString
,
headerFile
,
inputDirectory
),
useDeferredLoading:
useDeferredLoading
??
false
,
untranslatedMessagesFile:
_untranslatedMessagesFileFromPath
(
fileSystem
,
untranslatedMessagesFile
),
inputsAndOutputsListFile:
_inputsAndOutputsListFileFromPath
(
fileSystem
,
inputsAndOutputsListPath
),
areResourceAttributesRequired:
areResourceAttributesRequired
,
);
}
/// Creates an instance of the localizations generator class.
/// Creates an instance of the localizations generator class.
///
///
/// It takes in a [FileSystem] representation that the class will act upon.
/// It takes in a [FileSystem] representation that the class will act upon.
LocalizationsGenerator
(
this
.
_fs
);
LocalizationsGenerator
.
_
(
this
.
_fs
,
{
this
.
inputDirectory
,
@required
this
.
outputDirectory
,
@required
this
.
templateArbFile
,
@required
this
.
baseOutputFile
,
@required
this
.
className
,
this
.
preferredSupportedLocales
=
const
<
LocaleInfo
>[],
this
.
header
=
''
,
this
.
useDeferredLoading
=
false
,
this
.
inputsAndOutputsListFile
,
this
.
useSyntheticPackage
=
true
,
this
.
projectDirectory
,
this
.
areResourceAttributesRequired
=
false
,
this
.
untranslatedMessagesFile
,
this
.
usesNullableGetter
=
true
,
});
final
FileSystem
_fs
;
final
FileSystem
_fs
;
Iterable
<
Message
>
_allMessages
;
Iterable
<
Message
>
_allMessages
;
AppResourceBundleCollection
_allBundles
;
AppResourceBundleCollection
_allBundles
;
LocaleInfo
_templateArbLocale
;
LocaleInfo
_templateArbLocale
;
bool
_useSyntheticPackage
=
true
;
@visibleForTesting
final
bool
useSyntheticPackage
;
// Used to decide if the generated code is nullable or not
// Used to decide if the generated code is nullable or not
// (whether AppLocalizations? or AppLocalizations is returned from
// (whether AppLocalizations? or AppLocalizations is returned from
// `static {name}Localizations{?} of (BuildContext context))`
// `static {name}Localizations{?} of (BuildContext context))`
bool
_usesNullableGetter
=
true
;
@visibleForTesting
final
bool
usesNullableGetter
;
/// The directory that contains the project's arb files, as well as the
/// The directory that contains the project's arb files, as well as the
/// header file, if specified.
/// header file, if specified.
...
@@ -557,12 +625,12 @@ class LocalizationsGenerator {
...
@@ -557,12 +625,12 @@ class LocalizationsGenerator {
/// for translated messages, header file templates) will reside here.
/// for translated messages, header file templates) will reside here.
///
///
/// This directory is specified with the [initialize] method.
/// This directory is specified with the [initialize] method.
Directory
inputDirectory
;
final
Directory
inputDirectory
;
/// The Flutter project's root directory.
/// The Flutter project's root directory.
///
///
/// This directory is specified with the [initialize] method.
/// This directory is specified with the [initialize] method.
Directory
projectDirectory
;
final
Directory
projectDirectory
;
/// The directory to generate the project's localizations files in.
/// The directory to generate the project's localizations files in.
///
///
...
@@ -571,13 +639,13 @@ class LocalizationsGenerator {
...
@@ -571,13 +639,13 @@ class LocalizationsGenerator {
/// will reside here.
/// will reside here.
///
///
/// This directory is specified with the [initialize] method.
/// This directory is specified with the [initialize] method.
Directory
outputDirectory
;
final
Directory
outputDirectory
;
/// The input arb file which defines all of the messages that will be
/// The input arb file which defines all of the messages that will be
/// exported by the generated class that's written to [outputFile].
/// exported by the generated class that's written to [outputFile].
///
///
/// This file is specified with the [initialize] method.
/// This file is specified with the [initialize] method.
File
templateArbFile
;
final
File
templateArbFile
;
/// The file to write the generated abstract localizations and
/// The file to write the generated abstract localizations and
/// localizations delegate classes to. Separate localizations
/// localizations delegate classes to. Separate localizations
...
@@ -585,7 +653,7 @@ class LocalizationsGenerator {
...
@@ -585,7 +653,7 @@ class LocalizationsGenerator {
/// filename as a prefix and the locale as the suffix.
/// filename as a prefix and the locale as the suffix.
///
///
/// This file is specified with the [initialize] method.
/// This file is specified with the [initialize] method.
File
baseOutputFile
;
final
File
baseOutputFile
;
/// The class name to be used for the localizations class in [outputFile].
/// The class name to be used for the localizations class in [outputFile].
///
///
...
@@ -593,8 +661,7 @@ class LocalizationsGenerator {
...
@@ -593,8 +661,7 @@ class LocalizationsGenerator {
/// AppLocalizations will be used for localized message lookups.
/// AppLocalizations will be used for localized message lookups.
///
///
/// The class name is specified with the [initialize] method.
/// The class name is specified with the [initialize] method.
String
get
className
=>
_className
;
final
String
className
;
String
_className
;
/// The list of preferred supported locales.
/// The list of preferred supported locales.
///
///
...
@@ -608,8 +675,7 @@ class LocalizationsGenerator {
...
@@ -608,8 +675,7 @@ class LocalizationsGenerator {
/// ['es', 'en'] is passed in, the 'es' locale will take priority over 'en'.
/// ['es', 'en'] is passed in, the 'es' locale will take priority over 'en'.
///
///
/// The list of preferred locales is specified with the [initialize] method.
/// The list of preferred locales is specified with the [initialize] method.
List
<
LocaleInfo
>
get
preferredSupportedLocales
=>
_preferredSupportedLocales
;
final
List
<
LocaleInfo
>
preferredSupportedLocales
;
List
<
LocaleInfo
>
_preferredSupportedLocales
;
/// The list of all arb path strings in [inputDirectory].
/// The list of all arb path strings in [inputDirectory].
List
<
String
>
get
arbPathStrings
{
List
<
String
>
get
arbPathStrings
{
...
@@ -625,7 +691,7 @@ class LocalizationsGenerator {
...
@@ -625,7 +691,7 @@ class LocalizationsGenerator {
final
Set
<
LocaleInfo
>
supportedLocales
=
<
LocaleInfo
>{};
final
Set
<
LocaleInfo
>
supportedLocales
=
<
LocaleInfo
>{};
/// The header to be prepended to the generated Dart localization file.
/// The header to be prepended to the generated Dart localization file.
String
header
=
''
;
final
String
header
;
final
Map
<
LocaleInfo
,
List
<
String
>>
_unimplementedMessages
=
<
LocaleInfo
,
List
<
String
>>{};
final
Map
<
LocaleInfo
,
List
<
String
>>
_unimplementedMessages
=
<
LocaleInfo
,
List
<
String
>>{};
...
@@ -643,8 +709,7 @@ class LocalizationsGenerator {
...
@@ -643,8 +709,7 @@ class LocalizationsGenerator {
///
///
/// Note that this flag does not affect other platforms such as mobile or
/// Note that this flag does not affect other platforms such as mobile or
/// desktop.
/// desktop.
bool
get
useDeferredLoading
=>
_useDeferredLoading
;
final
bool
useDeferredLoading
;
bool
_useDeferredLoading
;
/// Contains a map of each output language file to its corresponding content in
/// Contains a map of each output language file to its corresponding content in
/// string format.
/// string format.
...
@@ -656,60 +721,22 @@ class LocalizationsGenerator {
...
@@ -656,60 +721,22 @@ class LocalizationsGenerator {
/// A generated file that will contain the list of messages for each locale
/// A generated file that will contain the list of messages for each locale
/// that do not have a translation yet.
/// that do not have a translation yet.
File
_untranslatedMessagesFile
;
@visibleForTesting
final
File
untranslatedMessagesFile
;
/// The file that contains the list of inputs and outputs for generating
/// The file that contains the list of inputs and outputs for generating
/// localizations.
/// localizations.
File
_inputsAndOutputsListFile
;
@visibleForTesting
List
<
String
>
_inputFileList
;
final
File
inputsAndOutputsListFile
;
List
<
String
>
_outputFileList
;
final
List
<
String
>
_inputFileList
=
<
String
>[];
final
List
<
String
>
_outputFileList
=
<
String
>[];
/// Whether or not resource attributes are required for each corresponding
/// Whether or not resource attributes are required for each corresponding
/// resource id.
/// resource id.
///
///
/// Resource attributes provide metadata about the message.
/// Resource attributes provide metadata about the message.
bool
_areResourceAttributesRequired
;
@visibleForTesting
final
bool
areResourceAttributesRequired
;
/// Initializes [inputDirectory], [outputDirectory], [templateArbFile],
/// [outputFile] and [className].
///
/// Throws an [L10nException] when a provided configuration is not allowed
/// by [LocalizationsGenerator].
///
/// Throws a [FileSystemException] when a file operation necessary for setting
/// up the [LocalizationsGenerator] cannot be completed.
void
initialize
({
String
inputPathString
,
String
outputPathString
,
String
templateArbFileName
,
String
outputFileString
,
String
classNameString
,
List
<
String
>
preferredSupportedLocales
,
String
headerString
,
String
headerFile
,
bool
useDeferredLoading
=
false
,
String
inputsAndOutputsListPath
,
bool
useSyntheticPackage
=
true
,
String
projectPathString
,
bool
areResourceAttributesRequired
=
false
,
String
untranslatedMessagesFile
,
bool
usesNullableGetter
=
true
,
})
{
_useSyntheticPackage
=
useSyntheticPackage
;
_usesNullableGetter
=
usesNullableGetter
;
setProjectDir
(
projectPathString
);
setInputDirectory
(
inputPathString
);
setOutputDirectory
(
outputPathString
??
inputPathString
);
setTemplateArbFile
(
templateArbFileName
);
setBaseOutputFile
(
outputFileString
);
setPreferredSupportedLocales
(
preferredSupportedLocales
);
_setHeader
(
headerString
,
headerFile
);
_setUseDeferredLoading
(
useDeferredLoading
);
_setUntranslatedMessagesFile
(
untranslatedMessagesFile
);
className
=
classNameString
;
_setInputsAndOutputsListFile
(
inputsAndOutputsListPath
);
_areResourceAttributesRequired
=
areResourceAttributesRequired
;
}
static
bool
_isNotReadable
(
FileStat
fileStat
)
{
static
bool
_isNotReadable
(
FileStat
fileStat
)
{
final
String
rawStatString
=
fileStat
.
modeString
();
final
String
rawStatString
=
fileStat
.
modeString
();
...
@@ -726,12 +753,12 @@ class LocalizationsGenerator {
...
@@ -726,12 +753,12 @@ class LocalizationsGenerator {
}
}
@visibleForTesting
@visibleForTesting
void
setProjectDir
(
String
projectPathString
)
{
static
Directory
projectDirFromPath
(
FileSystem
fileSystem
,
String
projectPathString
)
{
if
(
projectPathString
==
null
)
{
if
(
projectPathString
==
null
)
{
return
;
return
null
;
}
}
final
Directory
directory
=
_fs
.
directory
(
projectPathString
);
final
Directory
directory
=
fileSystem
.
directory
(
projectPathString
);
if
(!
directory
.
existsSync
())
{
if
(!
directory
.
existsSync
())
{
throw
L10nException
(
throw
L10nException
(
'Directory does not exist:
$directory
.
\n
'
'Directory does not exist:
$directory
.
\n
'
...
@@ -739,18 +766,18 @@ class LocalizationsGenerator {
...
@@ -739,18 +766,18 @@ class LocalizationsGenerator {
'resource files.'
'resource files.'
);
);
}
}
projectDirectory
=
directory
;
return
directory
;
}
}
/// Sets the reference [Directory] for [inputDirectory].
/// Sets the reference [Directory] for [inputDirectory].
@visibleForTesting
@visibleForTesting
void
setInputDirectory
(
String
inputPathString
)
{
static
Directory
inputDirectoryFromPath
(
FileSystem
fileSystem
,
String
inputPathString
,
Directory
projectDirectory
)
{
if
(
inputPathString
==
null
)
{
if
(
inputPathString
==
null
)
{
throw
L10nException
(
'inputPathString argument cannot be null'
);
throw
L10nException
(
'inputPathString argument cannot be null'
);
}
}
inputDirectory
=
_fs
.
directory
(
final
Directory
inputDirectory
=
fileSystem
.
directory
(
projectDirectory
!=
null
projectDirectory
!=
null
?
_getAbsoluteProjectPath
(
inputPathString
)
?
_getAbsoluteProjectPath
(
inputPathString
,
projectDirectory
)
:
inputPathString
:
inputPathString
);
);
...
@@ -768,18 +795,18 @@ class LocalizationsGenerator {
...
@@ -768,18 +795,18 @@ class LocalizationsGenerator {
'Please ensure that the user has read and write permissions.'
'Please ensure that the user has read and write permissions.'
);
);
}
}
return
inputDirectory
;
}
}
/// Sets the reference [Directory] for [outputDirectory].
/// Sets the reference [Directory] for [outputDirectory].
@visibleForTesting
@visibleForTesting
void
setOutputDirectory
(
static
Directory
outputDirectoryFromPath
(
FileSystem
fileSystem
,
String
outputPathString
,
bool
useSyntheticPackage
,
Directory
projectDirectory
)
{
String
outputPathString
,
Directory
outputDirectory
;
)
{
if
(
useSyntheticPackage
)
{
if
(
_useSyntheticPackage
)
{
outputDirectory
=
fileSystem
.
directory
(
outputDirectory
=
_fs
.
directory
(
projectDirectory
!=
null
projectDirectory
!=
null
?
_getAbsoluteProjectPath
(
syntheticL10nPackagePath
)
?
_getAbsoluteProjectPath
(
_syntheticL10nPackagePath
(
fileSystem
),
projectDirectory
)
:
syntheticL10nPackagePath
:
_syntheticL10nPackagePath
(
fileSystem
)
);
);
}
else
{
}
else
{
if
(
outputPathString
==
null
)
{
if
(
outputPathString
==
null
)
{
...
@@ -789,17 +816,18 @@ class LocalizationsGenerator {
...
@@ -789,17 +816,18 @@ class LocalizationsGenerator {
);
);
}
}
outputDirectory
=
_fs
.
directory
(
outputDirectory
=
fileSystem
.
directory
(
projectDirectory
!=
null
projectDirectory
!=
null
?
_getAbsoluteProjectPath
(
outputPathString
)
?
_getAbsoluteProjectPath
(
outputPathString
,
projectDirectory
)
:
outputPathString
:
outputPathString
);
);
}
}
return
outputDirectory
;
}
}
/// Sets the reference [File] for [templateArbFile].
/// Sets the reference [File] for [templateArbFile].
@visibleForTesting
@visibleForTesting
void
setTemplateArbFile
(
String
templateArbFileName
)
{
static
File
templateArbFileFromFileName
(
String
templateArbFileName
,
Directory
inputDirectory
)
{
if
(
templateArbFileName
==
null
)
{
if
(
templateArbFileName
==
null
)
{
throw
L10nException
(
'templateArbFileName argument cannot be null'
);
throw
L10nException
(
'templateArbFileName argument cannot be null'
);
}
}
...
@@ -807,7 +835,7 @@ class LocalizationsGenerator {
...
@@ -807,7 +835,7 @@ class LocalizationsGenerator {
throw
L10nException
(
'inputDirectory cannot be null when setting template arb file'
);
throw
L10nException
(
'inputDirectory cannot be null when setting template arb file'
);
}
}
templateArbFile
=
_fs
.
file
(
globals
.
fs
.
path
.
join
(
inputDirectory
.
path
,
templateArbFileName
)
);
final
File
templateArbFile
=
inputDirectory
.
childFile
(
templateArbFileName
);
final
String
templateArbFileStatModeString
=
templateArbFile
.
statSync
().
modeString
();
final
String
templateArbFileStatModeString
=
templateArbFile
.
statSync
().
modeString
();
if
(
templateArbFileStatModeString
[
0
]
==
'-'
&&
templateArbFileStatModeString
[
3
]
==
'-'
)
{
if
(
templateArbFileStatModeString
[
0
]
==
'-'
&&
templateArbFileStatModeString
[
3
]
==
'-'
)
{
throw
L10nException
(
throw
L10nException
(
...
@@ -815,15 +843,16 @@ class LocalizationsGenerator {
...
@@ -815,15 +843,16 @@ class LocalizationsGenerator {
'Please ensure that the user has read permissions.'
'Please ensure that the user has read permissions.'
);
);
}
}
return
templateArbFile
;
}
}
/// Sets the reference [File] for the localizations delegate [outputFile].
/// Sets the reference [File] for the localizations delegate [outputFile].
@visibleForTesting
@visibleForTesting
void
setBaseOutputFile
(
String
outputFileString
)
{
static
File
baseOutputFileFromOutputFile
(
FileSystem
fileSystem
,
String
outputFileString
,
Directory
outputDirectory
)
{
if
(
output
FileString
==
null
)
{
if
(
output
Directory
==
null
)
{
throw
L10nException
(
'outputFileString argument cannot be null'
);
throw
L10nException
(
'outputFileString argument cannot be null'
);
}
}
baseOutputFile
=
_fs
.
file
(
globals
.
fs
.
path
.
join
(
outputDirectory
.
path
,
outputFileString
)
);
return
outputDirectory
.
childFile
(
outputFileString
);
}
}
static
bool
_isValidClassName
(
String
className
)
{
static
bool
_isValidClassName
(
String
className
)
{
...
@@ -849,7 +878,7 @@ class LocalizationsGenerator {
...
@@ -849,7 +878,7 @@ class LocalizationsGenerator {
/// Sets the [className] for the localizations and localizations delegate
/// Sets the [className] for the localizations and localizations delegate
/// classes.
/// classes.
@visibleForTesting
@visibleForTesting
s
et
className
(
String
classNameString
)
{
s
tatic
String
classNameFromString
(
String
classNameString
)
{
if
(
classNameString
==
null
||
classNameString
.
isEmpty
)
{
if
(
classNameString
==
null
||
classNameString
.
isEmpty
)
{
throw
L10nException
(
'classNameString argument cannot be null or empty'
);
throw
L10nException
(
'classNameString argument cannot be null or empty'
);
}
}
...
@@ -858,23 +887,22 @@ class LocalizationsGenerator {
...
@@ -858,23 +887,22 @@ class LocalizationsGenerator {
"The 'output-class',
$classNameString
, is not a valid public Dart class name.
\n
"
"The 'output-class',
$classNameString
, is not a valid public Dart class name.
\n
"
);
);
}
}
_className
=
classNameString
;
return
classNameString
;
}
}
/// Sets [preferredSupportedLocales] so that this particular list of locales
/// Sets [preferredSupportedLocales] so that this particular list of locales
/// will take priority over the other locales.
/// will take priority over the other locales.
@visibleForTesting
@visibleForTesting
void
setPreferredSupported
Locales
(
List
<
String
>
inputLocales
)
{
static
List
<
LocaleInfo
>
preferredSupportedLocalesFrom
Locales
(
List
<
String
>
inputLocales
)
{
if
(
inputLocales
==
null
||
inputLocales
.
isEmpty
)
{
if
(
inputLocales
==
null
||
inputLocales
.
isEmpty
)
{
_preferredSupportedLocales
=
const
<
LocaleInfo
>[];
return
const
<
LocaleInfo
>[];
}
else
{
_preferredSupportedLocales
=
inputLocales
.
map
((
String
localeString
)
{
return
LocaleInfo
.
fromString
(
localeString
);
}).
toList
();
}
}
return
inputLocales
.
map
((
String
localeString
)
{
return
LocaleInfo
.
fromString
(
localeString
);
}).
toList
();
}
}
void
_setHeader
(
String
headerString
,
String
headerFile
)
{
static
String
headerFromFile
(
String
headerString
,
String
headerFile
,
Directory
inputDirectory
)
{
if
(
headerString
!=
null
&&
headerFile
!=
null
)
{
if
(
headerString
!=
null
&&
headerFile
!=
null
)
{
throw
L10nException
(
throw
L10nException
(
'Cannot accept both header and header file arguments.
\n
'
'Cannot accept both header and header file arguments.
\n
'
...
@@ -883,10 +911,10 @@ class LocalizationsGenerator {
...
@@ -883,10 +911,10 @@ class LocalizationsGenerator {
}
}
if
(
headerString
!=
null
)
{
if
(
headerString
!=
null
)
{
header
=
headerString
;
return
headerString
;
}
else
if
(
headerFile
!=
null
)
{
}
else
if
(
headerFile
!=
null
)
{
try
{
try
{
header
=
_fs
.
file
(
globals
.
fs
.
path
.
join
(
inputDirectory
.
path
,
headerFile
)
).
readAsStringSync
();
return
inputDirectory
.
childFile
(
headerFile
).
readAsStringSync
();
}
on
FileSystemException
catch
(
error
)
{
}
on
FileSystemException
catch
(
error
)
{
throw
L10nException
(
throw
L10nException
(
'Failed to read header file: "
$headerFile
".
\n
'
'Failed to read header file: "
$headerFile
".
\n
'
...
@@ -894,38 +922,28 @@ class LocalizationsGenerator {
...
@@ -894,38 +922,28 @@ class LocalizationsGenerator {
);
);
}
}
}
}
return
''
;
}
}
String
_getAbsoluteProjectPath
(
String
relativePath
)
=>
globals
.
fs
.
path
.
join
(
projectDirectory
.
path
,
relativePath
);
static
String
_getAbsoluteProjectPath
(
String
relativePath
,
Directory
projectDirectory
)
=>
projectDirectory
.
fileSystem
.
path
.
join
(
projectDirectory
.
path
,
relativePath
);
void
_setUseDeferredLoading
(
bool
useDeferredLoading
)
{
if
(
useDeferredLoading
==
null
)
{
throw
L10nException
(
'useDeferredLoading argument cannot be null.'
);
}
_useDeferredLoading
=
useDeferredLoading
;
}
void
_setUntranslatedMessagesFile
(
String
untranslatedMessagesFileString
)
{
static
File
_untranslatedMessagesFileFromPath
(
FileSystem
fileSystem
,
String
untranslatedMessagesFileString
)
{
if
(
untranslatedMessagesFileString
==
null
||
untranslatedMessagesFileString
.
isEmpty
)
{
if
(
untranslatedMessagesFileString
==
null
||
untranslatedMessagesFileString
.
isEmpty
)
{
return
;
return
null
;
}
}
_untranslatedMessagesFile
=
_fs
.
file
(
return
fileSystem
.
file
(
untranslatedMessagesFileString
);
globals
.
fs
.
path
.
join
(
untranslatedMessagesFileString
),
);
}
}
void
_setInputsAndOutputsListFile
(
String
inputsAndOutputsListPath
)
{
static
File
_inputsAndOutputsListFileFromPath
(
FileSystem
fileSystem
,
String
inputsAndOutputsListPath
)
{
if
(
inputsAndOutputsListPath
==
null
)
{
if
(
inputsAndOutputsListPath
==
null
)
{
return
;
return
null
;
}
}
_inputsAndOutputsListFile
=
_fs
.
file
(
return
fileSystem
.
file
(
globals
.
fs
.
path
.
join
(
inputsAndOutputsListPath
,
'gen_l10n_inputs_and_outputs.json'
),
fileSystem
.
path
.
join
(
inputsAndOutputsListPath
,
'gen_l10n_inputs_and_outputs.json'
),
);
);
_inputFileList
=
<
String
>[];
_outputFileList
=
<
String
>[];
}
}
static
bool
_isValidGetterAndMethodName
(
String
name
)
{
static
bool
_isValidGetterAndMethodName
(
String
name
)
{
...
@@ -954,7 +972,7 @@ class LocalizationsGenerator {
...
@@ -954,7 +972,7 @@ class LocalizationsGenerator {
final
AppResourceBundle
templateBundle
=
AppResourceBundle
(
templateArbFile
);
final
AppResourceBundle
templateBundle
=
AppResourceBundle
(
templateArbFile
);
_templateArbLocale
=
templateBundle
.
locale
;
_templateArbLocale
=
templateBundle
.
locale
;
_allMessages
=
templateBundle
.
resourceIds
.
map
((
String
id
)
=>
Message
(
_allMessages
=
templateBundle
.
resourceIds
.
map
((
String
id
)
=>
Message
(
templateBundle
.
resources
,
id
,
_
areResourceAttributesRequired
,
templateBundle
.
resources
,
id
,
areResourceAttributesRequired
,
));
));
for
(
final
String
resourceId
in
templateBundle
.
resourceIds
)
{
for
(
final
String
resourceId
in
templateBundle
.
resourceIds
)
{
if
(!
_isValidGetterAndMethodName
(
resourceId
))
{
if
(!
_isValidGetterAndMethodName
(
resourceId
))
{
...
@@ -968,7 +986,7 @@ class LocalizationsGenerator {
...
@@ -968,7 +986,7 @@ class LocalizationsGenerator {
}
}
_allBundles
=
AppResourceBundleCollection
(
inputDirectory
);
_allBundles
=
AppResourceBundleCollection
(
inputDirectory
);
if
(
_
inputsAndOutputsListFile
!=
null
)
{
if
(
inputsAndOutputsListFile
!=
null
)
{
_inputFileList
.
addAll
(
_allBundles
.
bundles
.
map
((
AppResourceBundle
bundle
)
{
_inputFileList
.
addAll
(
_allBundles
.
bundles
.
map
((
AppResourceBundle
bundle
)
{
return
bundle
.
file
.
absolute
.
path
;
return
bundle
.
file
.
absolute
.
path
;
}));
}));
...
@@ -1077,8 +1095,8 @@ class LocalizationsGenerator {
...
@@ -1077,8 +1095,8 @@ class LocalizationsGenerator {
.
map
((
AppResourceBundle
bundle
)
=>
bundle
.
locale
).
toList
();
.
map
((
AppResourceBundle
bundle
)
=>
bundle
.
locale
).
toList
();
}
}
final
String
directory
=
globals
.
fs
.
path
.
basename
(
outputDirectory
.
path
);
final
String
directory
=
_
fs
.
path
.
basename
(
outputDirectory
.
path
);
final
String
outputFileName
=
globals
.
fs
.
path
.
basename
(
baseOutputFile
.
path
);
final
String
outputFileName
=
_
fs
.
path
.
basename
(
baseOutputFile
.
path
);
final
Iterable
<
String
>
supportedLocalesCode
=
supportedLocales
.
map
((
LocaleInfo
locale
)
{
final
Iterable
<
String
>
supportedLocalesCode
=
supportedLocales
.
map
((
LocaleInfo
locale
)
{
final
String
languageCode
=
locale
.
languageCode
;
final
String
languageCode
=
locale
.
languageCode
;
...
@@ -1104,9 +1122,7 @@ class LocalizationsGenerator {
...
@@ -1104,9 +1122,7 @@ class LocalizationsGenerator {
final
String
fileName
=
outputFileName
.
split
(
'.'
)[
0
];
final
String
fileName
=
outputFileName
.
split
(
'.'
)[
0
];
for
(
final
LocaleInfo
locale
in
allLocales
)
{
for
(
final
LocaleInfo
locale
in
allLocales
)
{
if
(
isBaseClassLocale
(
locale
,
locale
.
languageCode
))
{
if
(
isBaseClassLocale
(
locale
,
locale
.
languageCode
))
{
final
File
languageMessageFile
=
_fs
.
file
(
final
File
languageMessageFile
=
outputDirectory
.
childFile
(
'
${fileName}
_
$locale
.dart'
);
globals
.
fs
.
path
.
join
(
outputDirectory
.
path
,
'
${fileName}
_
$locale
.dart'
),
);
// Generate the template for the base class file. Further string
// Generate the template for the base class file. Further string
// interpolation will be done to determine if there are
// interpolation will be done to determine if there are
...
@@ -1168,10 +1184,10 @@ class LocalizationsGenerator {
...
@@ -1168,10 +1184,10 @@ class LocalizationsGenerator {
.
replaceAll
(
'@(supportedLanguageCodes)'
,
supportedLanguageCodes
.
join
(
', '
))
.
replaceAll
(
'@(supportedLanguageCodes)'
,
supportedLanguageCodes
.
join
(
', '
))
.
replaceAll
(
'@(messageClassImports)'
,
sortedClassImports
.
join
(
'
\n
'
))
.
replaceAll
(
'@(messageClassImports)'
,
sortedClassImports
.
join
(
'
\n
'
))
.
replaceAll
(
'@(delegateClass)'
,
delegateClass
)
.
replaceAll
(
'@(delegateClass)'
,
delegateClass
)
.
replaceAll
(
'@(requiresFoundationImport)'
,
_
useDeferredLoading
?
''
:
"import 'package:flutter/foundation.dart';"
)
.
replaceAll
(
'@(requiresFoundationImport)'
,
useDeferredLoading
?
''
:
"import 'package:flutter/foundation.dart';"
)
.
replaceAll
(
'@(requiresIntlImport)'
,
_containsPluralMessage
()
?
"import 'package:intl/intl.dart' as intl;"
:
''
)
.
replaceAll
(
'@(requiresIntlImport)'
,
_containsPluralMessage
()
?
"import 'package:intl/intl.dart' as intl;"
:
''
)
.
replaceAll
(
'@(canBeNullable)'
,
_
usesNullableGetter
?
'?'
:
''
)
.
replaceAll
(
'@(canBeNullable)'
,
usesNullableGetter
?
'?'
:
''
)
.
replaceAll
(
'@(needsNullCheck)'
,
_
usesNullableGetter
?
''
:
'!'
);
.
replaceAll
(
'@(needsNullCheck)'
,
usesNullableGetter
?
''
:
'!'
);
}
}
bool
_containsPluralMessage
()
=>
_allMessages
.
any
((
Message
message
)
=>
message
.
isPlural
);
bool
_containsPluralMessage
()
=>
_allMessages
.
any
((
Message
message
)
=>
message
.
isPlural
);
...
@@ -1182,8 +1198,8 @@ class LocalizationsGenerator {
...
@@ -1182,8 +1198,8 @@ class LocalizationsGenerator {
// A pubspec.yaml file is required when using a synthetic package. If it does not
// A pubspec.yaml file is required when using a synthetic package. If it does not
// exist, create a blank one.
// exist, create a blank one.
if
(
_
useSyntheticPackage
)
{
if
(
useSyntheticPackage
)
{
final
Directory
syntheticPackageDirectory
=
_fs
.
directory
(
defaultSyntheticPackagePath
);
final
Directory
syntheticPackageDirectory
=
_fs
.
directory
(
_defaultSyntheticPackagePath
(
_fs
)
);
syntheticPackageDirectory
.
createSync
(
recursive:
true
);
syntheticPackageDirectory
.
createSync
(
recursive:
true
);
final
File
flutterGenPubspec
=
syntheticPackageDirectory
.
childFile
(
'pubspec.yaml'
);
final
File
flutterGenPubspec
=
syntheticPackageDirectory
.
childFile
(
'pubspec.yaml'
);
if
(!
flutterGenPubspec
.
existsSync
())
{
if
(!
flutterGenPubspec
.
existsSync
())
{
...
@@ -1207,14 +1223,14 @@ class LocalizationsGenerator {
...
@@ -1207,14 +1223,14 @@ class LocalizationsGenerator {
// Generate the required files for localizations.
// Generate the required files for localizations.
_languageFileMap
.
forEach
((
File
file
,
String
contents
)
{
_languageFileMap
.
forEach
((
File
file
,
String
contents
)
{
file
.
writeAsStringSync
(
contents
);
file
.
writeAsStringSync
(
contents
);
if
(
_
inputsAndOutputsListFile
!=
null
)
{
if
(
inputsAndOutputsListFile
!=
null
)
{
_outputFileList
.
add
(
file
.
absolute
.
path
);
_outputFileList
.
add
(
file
.
absolute
.
path
);
}
}
});
});
baseOutputFile
.
writeAsStringSync
(
_generatedLocalizationsFile
);
baseOutputFile
.
writeAsStringSync
(
_generatedLocalizationsFile
);
if
(
_
untranslatedMessagesFile
!=
null
)
{
if
(
untranslatedMessagesFile
!=
null
)
{
_generateUntranslatedMessagesFile
(
logger
);
_generateUntranslatedMessagesFile
(
logger
);
}
else
if
(
_unimplementedMessages
.
isNotEmpty
)
{
}
else
if
(
_unimplementedMessages
.
isNotEmpty
)
{
_unimplementedMessages
.
forEach
((
LocaleInfo
locale
,
List
<
String
>
messages
)
{
_unimplementedMessages
.
forEach
((
LocaleInfo
locale
,
List
<
String
>
messages
)
{
...
@@ -1242,15 +1258,15 @@ class LocalizationsGenerator {
...
@@ -1242,15 +1258,15 @@ class LocalizationsGenerator {
);
);
}
}
if
(
_
inputsAndOutputsListFile
!=
null
)
{
if
(
inputsAndOutputsListFile
!=
null
)
{
_outputFileList
.
add
(
baseOutputFile
.
absolute
.
path
);
_outputFileList
.
add
(
baseOutputFile
.
absolute
.
path
);
// Generate a JSON file containing the inputs and outputs of the gen_l10n script.
// Generate a JSON file containing the inputs and outputs of the gen_l10n script.
if
(!
_
inputsAndOutputsListFile
.
existsSync
())
{
if
(!
inputsAndOutputsListFile
.
existsSync
())
{
_
inputsAndOutputsListFile
.
createSync
(
recursive:
true
);
inputsAndOutputsListFile
.
createSync
(
recursive:
true
);
}
}
_
inputsAndOutputsListFile
.
writeAsStringSync
(
inputsAndOutputsListFile
.
writeAsStringSync
(
json
.
encode
(<
String
,
Object
>
{
json
.
encode
(<
String
,
Object
>
{
'inputs'
:
_inputFileList
,
'inputs'
:
_inputFileList
,
'outputs'
:
_outputFileList
,
'outputs'
:
_outputFileList
,
...
@@ -1267,9 +1283,9 @@ class LocalizationsGenerator {
...
@@ -1267,9 +1283,9 @@ class LocalizationsGenerator {
}
}
if
(
_unimplementedMessages
.
isEmpty
)
{
if
(
_unimplementedMessages
.
isEmpty
)
{
_
untranslatedMessagesFile
.
writeAsStringSync
(
'{}'
);
untranslatedMessagesFile
.
writeAsStringSync
(
'{}'
);
if
(
_
inputsAndOutputsListFile
!=
null
)
{
if
(
inputsAndOutputsListFile
!=
null
)
{
_outputFileList
.
add
(
_
untranslatedMessagesFile
.
absolute
.
path
);
_outputFileList
.
add
(
untranslatedMessagesFile
.
absolute
.
path
);
}
}
return
;
return
;
}
}
...
@@ -1297,9 +1313,9 @@ class LocalizationsGenerator {
...
@@ -1297,9 +1313,9 @@ class LocalizationsGenerator {
});
});
resultingFile
+=
'}
\n
'
;
resultingFile
+=
'}
\n
'
;
_
untranslatedMessagesFile
.
writeAsStringSync
(
resultingFile
);
untranslatedMessagesFile
.
writeAsStringSync
(
resultingFile
);
if
(
_
inputsAndOutputsListFile
!=
null
)
{
if
(
inputsAndOutputsListFile
!=
null
)
{
_outputFileList
.
add
(
_
untranslatedMessagesFile
.
absolute
.
path
);
_outputFileList
.
add
(
untranslatedMessagesFile
.
absolute
.
path
);
}
}
}
}
}
}
packages/flutter_tools/test/general.shard/build_system/targets/localizations_test.dart
View file @
b4175e9b
...
@@ -9,119 +9,12 @@ import 'package:flutter_tools/src/base/file_system.dart';
...
@@ -9,119 +9,12 @@ import 'package:flutter_tools/src/base/file_system.dart';
import
'package:flutter_tools/src/base/logger.dart'
;
import
'package:flutter_tools/src/base/logger.dart'
;
import
'package:flutter_tools/src/build_system/build_system.dart'
;
import
'package:flutter_tools/src/build_system/build_system.dart'
;
import
'package:flutter_tools/src/build_system/targets/localizations.dart'
;
import
'package:flutter_tools/src/build_system/targets/localizations.dart'
;
import
'package:flutter_tools/src/localizations/gen_l10n.dart'
;
import
'package:flutter_tools/src/localizations/localizations_utils.dart'
;
import
'package:flutter_tools/src/localizations/localizations_utils.dart'
;
import
'package:mockito/mockito.dart'
;
import
'../../../src/common.dart'
;
import
'../../../src/common.dart'
;
import
'../../../src/fake_process_manager.dart'
;
import
'../../../src/fake_process_manager.dart'
;
void
main
(
)
{
void
main
(
)
{
// Verifies that values are correctly passed through the localizations
// target, but does not validate them beyond the serialized data type.
testWithoutContext
(
'generateLocalizations forwards arguments correctly'
,
()
async
{
final
FileSystem
fileSystem
=
MemoryFileSystem
.
test
();
final
Logger
logger
=
BufferLogger
.
test
();
final
Directory
flutterProjectDirectory
=
fileSystem
.
directory
(
fileSystem
.
path
.
join
(
'path'
,
'to'
,
'flutter_project'
))
..
createSync
(
recursive:
true
);
final
Directory
arbDirectory
=
flutterProjectDirectory
.
childDirectory
(
'arb'
)
..
createSync
();
arbDirectory
.
childFile
(
'foo.arb'
).
createSync
();
arbDirectory
.
childFile
(
'bar.arb'
).
createSync
();
final
LocalizationOptions
options
=
LocalizationOptions
(
header:
'HEADER'
,
headerFile:
Uri
.
file
(
'header'
),
arbDirectory:
Uri
.
file
(
'arb'
),
deferredLoading:
true
,
outputClass:
'Foo'
,
outputLocalizationsFile:
Uri
.
file
(
'bar'
),
outputDirectory:
Uri
.
directory
(
fileSystem
.
path
.
join
(
'lib'
,
'l10n'
)),
preferredSupportedLocales:
<
String
>[
'en_US'
],
templateArbFile:
Uri
.
file
(
'example.arb'
),
untranslatedMessagesFile:
Uri
.
file
(
'untranslated'
),
useSyntheticPackage:
false
,
areResourceAttributesRequired:
true
,
usesNullableGetter:
false
,
);
final
LocalizationsGenerator
mockLocalizationsGenerator
=
MockLocalizationsGenerator
();
generateLocalizations
(
localizationsGenerator:
mockLocalizationsGenerator
,
options:
options
,
logger:
logger
,
projectDir:
fileSystem
.
currentDirectory
,
dependenciesDir:
fileSystem
.
currentDirectory
,
);
verify
(
mockLocalizationsGenerator
.
initialize
(
inputPathString:
'arb'
,
outputPathString:
fileSystem
.
path
.
join
(
'lib'
,
'l10n/'
),
templateArbFileName:
'example.arb'
,
outputFileString:
'bar'
,
classNameString:
'Foo'
,
preferredSupportedLocales:
<
String
>[
'en_US'
],
headerString:
'HEADER'
,
headerFile:
'header'
,
useDeferredLoading:
true
,
inputsAndOutputsListPath:
'/'
,
useSyntheticPackage:
false
,
projectPathString:
'/'
,
areResourceAttributesRequired:
true
,
untranslatedMessagesFile:
'untranslated'
,
usesNullableGetter:
false
,
),
).
called
(
1
);
verify
(
mockLocalizationsGenerator
.
loadResources
()).
called
(
1
);
verify
(
mockLocalizationsGenerator
.
writeOutputFiles
(
logger
,
isFromYaml:
true
)).
called
(
1
);
});
testWithoutContext
(
'generateLocalizations throws exception on missing flutter: generate: true flag'
,
()
async
{
final
FileSystem
fileSystem
=
MemoryFileSystem
.
test
();
final
BufferLogger
logger
=
BufferLogger
.
test
();
final
Directory
arbDirectory
=
fileSystem
.
directory
(
'arb'
)
..
createSync
();
arbDirectory
.
childFile
(
'foo.arb'
).
createSync
();
arbDirectory
.
childFile
(
'bar.arb'
).
createSync
();
// Missing flutter: generate: true should throw exception.
fileSystem
.
file
(
'pubspec.yaml'
).
writeAsStringSync
(
'''
flutter:
uses-material-design: true
'''
);
final
LocalizationOptions
options
=
LocalizationOptions
(
header:
'HEADER'
,
headerFile:
Uri
.
file
(
'header'
),
arbDirectory:
Uri
.
file
(
'arb'
),
deferredLoading:
true
,
outputClass:
'Foo'
,
outputLocalizationsFile:
Uri
.
file
(
'bar'
),
preferredSupportedLocales:
<
String
>[
'en_US'
],
templateArbFile:
Uri
.
file
(
'example.arb'
),
untranslatedMessagesFile:
Uri
.
file
(
'untranslated'
),
// Set synthetic package to true.
useSyntheticPackage:
true
,
);
final
LocalizationsGenerator
mockLocalizationsGenerator
=
MockLocalizationsGenerator
();
expect
(
()
=>
generateLocalizations
(
localizationsGenerator:
mockLocalizationsGenerator
,
options:
options
,
logger:
logger
,
projectDir:
fileSystem
.
currentDirectory
,
dependenciesDir:
fileSystem
.
currentDirectory
,
),
throwsToolExit
(
message:
'Attempted to generate localizations code without having the '
'flutter: generate flag turned on.'
,
),
);
});
testWithoutContext
(
'generateLocalizations is skipped if l10n.yaml does not exist.'
,
()
async
{
testWithoutContext
(
'generateLocalizations is skipped if l10n.yaml does not exist.'
,
()
async
{
final
FileSystem
fileSystem
=
MemoryFileSystem
.
test
();
final
FileSystem
fileSystem
=
MemoryFileSystem
.
test
();
final
Environment
environment
=
Environment
.
test
(
final
Environment
environment
=
Environment
.
test
(
...
@@ -207,5 +100,3 @@ use-deferred-loading: string
...
@@ -207,5 +100,3 @@ use-deferred-loading: string
);
);
});
});
}
}
class
MockLocalizationsGenerator
extends
Mock
implements
LocalizationsGenerator
{}
packages/flutter_tools/test/general.shard/generate_localizations_test.dart
View file @
b4175e9b
...
@@ -4,8 +4,6 @@
...
@@ -4,8 +4,6 @@
// @dart = 2.8
// @dart = 2.8
import
'dart:io'
;
import
'package:file/memory.dart'
;
import
'package:file/memory.dart'
;
import
'package:yaml/yaml.dart'
;
import
'package:yaml/yaml.dart'
;
...
@@ -77,9 +75,7 @@ void main() {
...
@@ -77,9 +75,7 @@ void main() {
String
syntheticL10nPackagePath
;
String
syntheticL10nPackagePath
;
setUp
(()
{
setUp
(()
{
fs
=
MemoryFileSystem
(
fs
=
MemoryFileSystem
.
test
();
style:
Platform
.
isWindows
?
FileSystemStyle
.
windows
:
FileSystemStyle
.
posix
);
defaultL10nPathString
=
fs
.
path
.
join
(
'lib'
,
'l10n'
);
defaultL10nPathString
=
fs
.
path
.
join
(
'lib'
,
'l10n'
);
syntheticPackagePath
=
fs
.
path
.
join
(
'.dart_tool'
,
'flutter_gen'
);
syntheticPackagePath
=
fs
.
path
.
join
(
'.dart_tool'
,
'flutter_gen'
);
...
@@ -89,9 +85,8 @@ void main() {
...
@@ -89,9 +85,8 @@ void main() {
group
(
'Setters'
,
()
{
group
(
'Setters'
,
()
{
testWithoutContext
(
'setInputDirectory fails if the directory does not exist'
,
()
{
testWithoutContext
(
'setInputDirectory fails if the directory does not exist'
,
()
{
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
setInputDirectory
(
'lib'
);
LocalizationsGenerator
.
inputDirectoryFromPath
(
fs
,
'lib'
,
fs
.
directory
(
'bogus'
)
);
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'Make sure that the correct path was provided'
));
expect
(
e
.
message
,
contains
(
'Make sure that the correct path was provided'
));
return
;
return
;
...
@@ -105,9 +100,8 @@ void main() {
...
@@ -105,9 +100,8 @@ void main() {
testWithoutContext
(
'setInputDirectory fails if input string is null'
,
()
{
testWithoutContext
(
'setInputDirectory fails if input string is null'
,
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
setInputDirectory
(
null
);
LocalizationsGenerator
.
inputDirectoryFromPath
(
fs
,
null
,
fs
.
directory
(
'bogus'
)
);
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'cannot be null'
));
expect
(
e
.
message
,
contains
(
'cannot be null'
));
return
;
return
;
...
@@ -124,10 +118,8 @@ void main() {
...
@@ -124,10 +118,8 @@ void main() {
'synthetic package option'
,
'synthetic package option'
,
()
{
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
useSyntheticPackage:
false
);
LocalizationsGenerator
.
outputDirectoryFromPath
(
fs
,
null
,
false
,
null
);
generator
.
setOutputDirectory
(
null
);
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'cannot be null'
));
expect
(
e
.
message
,
contains
(
'cannot be null'
));
return
;
return
;
...
@@ -141,9 +133,8 @@ void main() {
...
@@ -141,9 +133,8 @@ void main() {
);
);
testWithoutContext
(
'setTemplateArbFile fails if inputDirectory is null'
,
()
{
testWithoutContext
(
'setTemplateArbFile fails if inputDirectory is null'
,
()
{
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
setTemplateArbFile
(
defaultTemplateArbFileName
);
LocalizationsGenerator
.
templateArbFileFromFileName
(
defaultTemplateArbFileName
,
null
);
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'cannot be null'
));
expect
(
e
.
message
,
contains
(
'cannot be null'
));
return
;
return
;
...
@@ -157,9 +148,8 @@ void main() {
...
@@ -157,9 +148,8 @@ void main() {
testWithoutContext
(
'setTemplateArbFile fails if templateArbFileName is null'
,
()
{
testWithoutContext
(
'setTemplateArbFile fails if templateArbFileName is null'
,
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
setTemplateArbFile
(
null
);
LocalizationsGenerator
.
templateArbFileFromFileName
(
null
,
fs
.
directory
(
'bogus'
)
);
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'cannot be null'
));
expect
(
e
.
message
,
contains
(
'cannot be null'
));
return
;
return
;
...
@@ -171,43 +161,10 @@ void main() {
...
@@ -171,43 +161,10 @@ void main() {
);
);
});
});
testWithoutContext
(
'setTemplateArbFile fails if input string is null'
,
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
generator
.
setTemplateArbFile
(
null
);
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'cannot be null'
));
return
;
}
fail
(
'LocalizationsGenerator.setTemplateArbFile should fail if the '
'input string is null.'
);
});
testWithoutContext
(
'setBaseOutputFile fails if input string is null'
,
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
generator
.
setBaseOutputFile
(
null
);
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'cannot be null'
));
return
;
}
fail
(
'LocalizationsGenerator.setBaseOutputFile should fail if the '
'input string is null.'
);
});
testWithoutContext
(
'setting className fails if input string is null'
,
()
{
testWithoutContext
(
'setting className fails if input string is null'
,
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
className
=
null
;
LocalizationsGenerator
.
classNameFromString
(
null
)
;
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'cannot be null'
));
expect
(
e
.
message
,
contains
(
'cannot be null'
));
return
;
return
;
...
@@ -235,19 +192,19 @@ void main() {
...
@@ -235,19 +192,19 @@ void main() {
.
writeAsStringSync
(
singleEsMessageArbFileString
);
.
writeAsStringSync
(
singleEsMessageArbFileString
);
// Run localizations generator in specified absolute path.
// Run localizations generator in specified absolute path.
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
final
String
flutterProjectPath
=
fs
.
path
.
join
(
'absolute'
,
'path'
,
'to'
,
'flutter_project'
);
final
String
flutterProjectPath
=
fs
.
path
.
join
(
'absolute'
,
'path'
,
'to'
,
'flutter_project'
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
projectPathString:
flutterProjectPath
,
projectPathString:
flutterProjectPath
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
throw
TestFailure
(
'Unexpected failure during test setup:
${e.message}
'
);
throw
TestFailure
(
'Unexpected failure during test setup:
${e.message}
'
);
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
...
@@ -289,9 +246,9 @@ void main() {
...
@@ -289,9 +246,9 @@ void main() {
.
writeAsStringSync
(
singleEsMessageArbFileString
);
.
writeAsStringSync
(
singleEsMessageArbFileString
);
// Project path should be intentionally a directory that does not exist.
// Project path should be intentionally a directory that does not exist.
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
projectPathString:
'absolute/path/to/flutter_project'
,
projectPathString:
'absolute/path/to/flutter_project'
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
...
@@ -311,23 +268,13 @@ void main() {
...
@@ -311,23 +268,13 @@ void main() {
});
});
group
(
'className should only take valid Dart class names'
,
()
{
group
(
'className should only take valid Dart class names'
,
()
{
LocalizationsGenerator
generator
;
setUp
(()
{
setUp
(()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
generator
=
LocalizationsGenerator
(
fs
);
try
{
generator
.
setInputDirectory
(
defaultL10nPathString
);
generator
.
setOutputDirectory
(
null
);
generator
.
setTemplateArbFile
(
defaultTemplateArbFileName
);
generator
.
setBaseOutputFile
(
defaultOutputFileString
);
}
on
L10nException
catch
(
e
)
{
throw
TestFailure
(
'Unexpected failure during test setup:
${e.message}
'
);
}
});
});
testWithoutContext
(
'fails on string with spaces'
,
()
{
testWithoutContext
(
'fails on string with spaces'
,
()
{
try
{
try
{
generator
.
className
=
'String with spaces'
;
LocalizationsGenerator
.
classNameFromString
(
'String with spaces'
)
;
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'is not a valid public Dart class name'
));
expect
(
e
.
message
,
contains
(
'is not a valid public Dart class name'
));
return
;
return
;
...
@@ -340,7 +287,7 @@ void main() {
...
@@ -340,7 +287,7 @@ void main() {
testWithoutContext
(
'fails on non-alphanumeric symbols'
,
()
{
testWithoutContext
(
'fails on non-alphanumeric symbols'
,
()
{
try
{
try
{
generator
.
className
=
'TestClass@123'
;
LocalizationsGenerator
.
classNameFromString
(
'TestClass@123'
)
;
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'is not a valid public Dart class name'
));
expect
(
e
.
message
,
contains
(
'is not a valid public Dart class name'
));
return
;
return
;
...
@@ -353,7 +300,7 @@ void main() {
...
@@ -353,7 +300,7 @@ void main() {
testWithoutContext
(
'fails on camel-case'
,
()
{
testWithoutContext
(
'fails on camel-case'
,
()
{
try
{
try
{
generator
.
className
=
'camelCaseClassName'
;
LocalizationsGenerator
.
classNameFromString
(
'camelCaseClassName'
)
;
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'is not a valid public Dart class name'
));
expect
(
e
.
message
,
contains
(
'is not a valid public Dart class name'
));
return
;
return
;
...
@@ -366,7 +313,7 @@ void main() {
...
@@ -366,7 +313,7 @@ void main() {
testWithoutContext
(
'fails when starting with a number'
,
()
{
testWithoutContext
(
'fails when starting with a number'
,
()
{
try
{
try
{
generator
.
className
=
'123ClassName'
;
LocalizationsGenerator
.
classNameFromString
(
'123ClassName'
)
;
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'is not a valid public Dart class name'
));
expect
(
e
.
message
,
contains
(
'is not a valid public Dart class name'
));
return
;
return
;
...
@@ -384,8 +331,8 @@ void main() {
...
@@ -384,8 +331,8 @@ void main() {
LocalizationsGenerator
generator
;
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
generator
=
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
...
@@ -409,8 +356,8 @@ void main() {
...
@@ -409,8 +356,8 @@ void main() {
LocalizationsGenerator
generator
;
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
generator
=
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
...
@@ -432,11 +379,9 @@ void main() {
...
@@ -432,11 +379,9 @@ void main() {
.
writeAsStringSync
(
singleMessageArbFileString
);
.
writeAsStringSync
(
singleMessageArbFileString
);
l10nDirectory
.
childFile
(
'app_localizations_es.arb'
)
l10nDirectory
.
childFile
(
'app_localizations_es.arb'
)
.
writeAsStringSync
(
singleEsMessageArbFileString
);
.
writeAsStringSync
(
singleEsMessageArbFileString
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
templateArbFileName:
'app_localizations_en.arb'
,
templateArbFileName:
'app_localizations_en.arb'
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
...
@@ -461,17 +406,14 @@ void main() {
...
@@ -461,17 +406,14 @@ void main() {
.
writeAsStringSync
(
singleMessageArbFileString
);
.
writeAsStringSync
(
singleMessageArbFileString
);
l10nDirectory
.
childFile
(
'app_localizations_en_CA_foo.arb'
)
l10nDirectory
.
childFile
(
'app_localizations_en_CA_foo.arb'
)
.
writeAsStringSync
(
singleMessageArbFileString
);
.
writeAsStringSync
(
singleMessageArbFileString
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
templateArbFileName:
'app_localizations_en.arb'
,
templateArbFileName:
'app_localizations_en.arb'
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
).
loadResources
();
..
loadResources
();
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'The following .arb file
\'
s locale could not be determined'
));
expect
(
e
.
message
,
contains
(
'The following .arb file
\'
s locale could not be determined'
));
return
;
return
;
...
@@ -486,18 +428,16 @@ void main() {
...
@@ -486,18 +428,16 @@ void main() {
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
)
..
childFile
(
esArbFileName
).
writeAsStringSync
(
singleEsMessageArbFileString
);
..
childFile
(
esArbFileName
).
writeAsStringSync
(
singleEsMessageArbFileString
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
untranslatedMessagesFile:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'unimplemented_message_translations.json'
),
untranslatedMessagesFile:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'unimplemented_message_translations.json'
),
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
BufferLogger
.
test
());
..
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -524,19 +464,17 @@ void main() {
...
@@ -524,19 +464,17 @@ void main() {
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
)
..
childFile
(
esArbFileName
).
writeAsStringSync
(
singleEsMessageArbFileString
);
..
childFile
(
esArbFileName
).
writeAsStringSync
(
singleEsMessageArbFileString
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
useSyntheticPackage:
false
,
useSyntheticPackage:
false
,
untranslatedMessagesFile:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'unimplemented_message_translations.json'
),
untranslatedMessagesFile:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'unimplemented_message_translations.json'
),
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
BufferLogger
.
test
());
..
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -567,11 +505,9 @@ void main() {
...
@@ -567,11 +505,9 @@ void main() {
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
)
..
childFile
(
esArbFileName
).
writeAsStringSync
(
singleEsMessageArbFileString
);
..
childFile
(
esArbFileName
).
writeAsStringSync
(
singleEsMessageArbFileString
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
...
@@ -606,16 +542,14 @@ void main() {
...
@@ -606,16 +542,14 @@ void main() {
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
)
..
childFile
(
esArbFileName
).
writeAsStringSync
(
singleEsMessageArbFileString
);
..
childFile
(
esArbFileName
).
writeAsStringSync
(
singleEsMessageArbFileString
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
testLogger
,
isFromYaml:
true
);
..
writeOutputFiles
(
testLogger
,
isFromYaml:
true
);
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -643,17 +577,15 @@ void main() {
...
@@ -643,17 +577,15 @@ void main() {
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
)
..
childFile
(
esArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
);
..
childFile
(
esArbFileName
).
writeAsStringSync
(
twoMessageArbFileString
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
testLogger
);
..
writeOutputFiles
(
testLogger
);
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -667,18 +599,16 @@ void main() {
...
@@ -667,18 +599,16 @@ void main() {
testUsingContext
(
'untranslated messages file included in generated JSON list of outputs'
,
()
{
testUsingContext
(
'untranslated messages file included in generated JSON list of outputs'
,
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
inputsAndOutputsListPath:
syntheticL10nPackagePath
,
inputsAndOutputsListPath:
syntheticL10nPackagePath
,
untranslatedMessagesFile:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'unimplemented_message_translations.json'
),
untranslatedMessagesFile:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'unimplemented_message_translations.json'
),
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
BufferLogger
.
test
());
..
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -702,18 +632,16 @@ void main() {
...
@@ -702,18 +632,16 @@ void main() {
'null while not using the synthetic package option'
,
'null while not using the synthetic package option'
,
()
{
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
// outputPathString is intentionally not defined
// outputPathString is intentionally not defined
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
useSyntheticPackage:
false
,
useSyntheticPackage:
false
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
BufferLogger
.
test
());
..
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -745,18 +673,16 @@ void main() {
...
@@ -745,18 +673,16 @@ void main() {
.
childFile
(
esArbFileName
)
.
childFile
(
esArbFileName
)
.
writeAsStringSync
(
singleEsMessageArbFileString
);
.
writeAsStringSync
(
singleEsMessageArbFileString
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'output'
),
outputPathString:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'output'
),
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
useSyntheticPackage:
false
,
useSyntheticPackage:
false
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
BufferLogger
.
test
());
..
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -777,11 +703,9 @@ void main() {
...
@@ -777,11 +703,9 @@ void main() {
()
{
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'output'
),
outputPathString:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'output'
),
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
...
@@ -809,18 +733,16 @@ void main() {
...
@@ -809,18 +733,16 @@ void main() {
()
{
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'output'
),
outputPathString:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'output'
),
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
useSyntheticPackage:
false
,
useSyntheticPackage:
false
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
BufferLogger
.
test
());
..
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -846,19 +768,17 @@ void main() {
...
@@ -846,19 +768,17 @@ void main() {
()
{
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'output'
),
outputPathString:
fs
.
path
.
join
(
'lib'
,
'l10n'
,
'output'
),
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
useSyntheticPackage:
false
,
useSyntheticPackage:
false
,
usesNullableGetter:
false
,
usesNullableGetter:
false
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
BufferLogger
.
test
());
..
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -882,17 +802,15 @@ void main() {
...
@@ -882,17 +802,15 @@ void main() {
testUsingContext
(
'creates list of inputs and outputs when file path is specified'
,
()
{
testUsingContext
(
'creates list of inputs and outputs when file path is specified'
,
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
inputsAndOutputsListPath:
syntheticL10nPackagePath
,
inputsAndOutputsListPath:
syntheticL10nPackagePath
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
BufferLogger
.
test
());
..
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -924,10 +842,9 @@ void main() {
...
@@ -924,10 +842,9 @@ void main() {
..
childFile
(
esArbFileName
).
writeAsStringSync
(
singleEsMessageArbFileString
)
..
childFile
(
esArbFileName
).
writeAsStringSync
(
singleEsMessageArbFileString
)
..
childFile
(
'header.txt'
).
writeAsStringSync
(
'/// Sample header in a text file'
);
..
childFile
(
'header.txt'
).
writeAsStringSync
(
'/// Sample header in a text file'
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
...
@@ -954,10 +871,9 @@ void main() {
...
@@ -954,10 +871,9 @@ void main() {
l10nDirectory
.
childFile
(
'header.txt'
)
l10nDirectory
.
childFile
(
'header.txt'
)
.
writeAsStringSync
(
'/// Sample header in a text file'
);
.
writeAsStringSync
(
'/// Sample header in a text file'
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
...
@@ -973,27 +889,104 @@ void main() {
...
@@ -973,27 +889,104 @@ void main() {
fail
(
'Setting headerFile that does not exist should fail'
);
fail
(
'Setting headerFile that does not exist should fail'
);
});
});
testUsingContext
(
'setting useDefferedLoading to null should fail'
,
()
{
group
(
'generateLocalizations'
,
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
testWithoutContext
(
'forwards arguments correctly'
,
()
async
{
_standardFlutterDirectoryL10nSetup
(
fs
);
final
LocalizationOptions
options
=
LocalizationOptions
(
header:
'HEADER'
,
arbDirectory:
Uri
.
directory
(
defaultL10nPathString
),
deferredLoading:
true
,
outputClass:
'Foo'
,
outputLocalizationsFile:
Uri
.
file
(
'bar'
,
windows:
false
),
outputDirectory:
Uri
.
directory
(
defaultL10nPathString
,
windows:
false
),
preferredSupportedLocales:
<
String
>[
'es'
],
templateArbFile:
Uri
.
file
(
defaultTemplateArbFileName
,
windows:
false
),
untranslatedMessagesFile:
Uri
.
file
(
'untranslated'
,
windows:
false
),
useSyntheticPackage:
false
,
areResourceAttributesRequired:
true
,
usesNullableGetter:
false
,
);
LocalizationsGenerator
generator
;
// Verify that values are correctly passed through the localizations target.
try
{
final
LocalizationsGenerator
generator
=
generateLocalizations
(
generator
=
LocalizationsGenerator
(
fs
);
fileSystem:
fs
,
generator
.
initialize
(
options:
options
,
inputPathString:
defaultL10nPathString
,
logger:
BufferLogger
.
test
(),
outputPathString:
defaultL10nPathString
,
projectDir:
fs
.
currentDirectory
,
templateArbFileName:
defaultTemplateArbFileName
,
dependenciesDir:
fs
.
currentDirectory
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
headerString:
'/// Sample header'
,
useDeferredLoading:
null
,
);
);
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'useDeferredLoading argument cannot be null.'
));
return
;
}
fail
(
'Setting useDefferedLoading to null should fail'
);
expect
(
generator
.
inputDirectory
.
path
,
'/lib/l10n/'
);
expect
(
generator
.
outputDirectory
.
path
,
'/lib/l10n/'
);
expect
(
generator
.
templateArbFile
.
path
,
'/lib/l10n/app_en.arb'
);
expect
(
generator
.
baseOutputFile
.
path
,
'/lib/l10n/bar'
);
expect
(
generator
.
className
,
'Foo'
);
expect
(
generator
.
preferredSupportedLocales
.
single
,
LocaleInfo
.
fromString
(
'es'
));
expect
(
generator
.
header
,
'HEADER'
);
expect
(
generator
.
useDeferredLoading
,
isTrue
);
expect
(
generator
.
inputsAndOutputsListFile
.
path
,
'/gen_l10n_inputs_and_outputs.json'
);
expect
(
generator
.
useSyntheticPackage
,
isFalse
);
expect
(
generator
.
projectDirectory
.
path
,
'/'
);
expect
(
generator
.
areResourceAttributesRequired
,
isTrue
);
expect
(
generator
.
untranslatedMessagesFile
.
path
,
'untranslated'
);
expect
(
generator
.
usesNullableGetter
,
isFalse
);
// Just validate one file.
expect
(
fs
.
file
(
'/lib/l10n/bar_en.dart'
).
readAsStringSync
(),
'''
HEADER
import '
bar
';
/// The translations for English (`en`).
class FooEn extends Foo {
FooEn([String locale = '
en
']) : super(locale);
@override
String get title => '
Title
';
}
'''
);
});
testWithoutContext
(
'throws exception on missing flutter: generate: true flag'
,
()
async
{
_standardFlutterDirectoryL10nSetup
(
fs
);
// Missing flutter: generate: true should throw exception.
fs
.
file
(
fs
.
path
.
join
(
syntheticPackagePath
,
'pubspec.yaml'
))
..
createSync
(
recursive:
true
)
..
writeAsStringSync
(
'''
flutter:
uses-material-design: true
'''
);
final
LocalizationOptions
options
=
LocalizationOptions
(
header:
'HEADER'
,
headerFile:
Uri
.
file
(
'header'
,
windows:
false
),
arbDirectory:
Uri
.
file
(
'arb'
,
windows:
false
),
deferredLoading:
true
,
outputClass:
'Foo'
,
outputLocalizationsFile:
Uri
.
file
(
'bar'
,
windows:
false
),
preferredSupportedLocales:
<
String
>[
'en_US'
],
templateArbFile:
Uri
.
file
(
'example.arb'
,
windows:
false
),
untranslatedMessagesFile:
Uri
.
file
(
'untranslated'
,
windows:
false
),
// Set synthetic package to true.
useSyntheticPackage:
true
,
);
expect
(
()
=>
generateLocalizations
(
fileSystem:
fs
,
options:
options
,
logger:
BufferLogger
.
test
(),
projectDir:
fs
.
currentDirectory
,
dependenciesDir:
fs
.
currentDirectory
,
),
throwsToolExit
(
message:
'Attempted to generate localizations code without having the '
'flutter: generate flag turned on.'
,
),
);
});
});
});
group
(
'loadResources'
,
()
{
group
(
'loadResources'
,
()
{
...
@@ -1002,15 +995,14 @@ void main() {
...
@@ -1002,15 +995,14 @@ void main() {
LocalizationsGenerator
generator
;
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
generator
=
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
);
)..
loadResources
();
generator
.
loadResources
();
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
fail
(
'Setting language and locales should not fail:
\n
${e.message}
'
);
fail
(
'Setting language and locales should not fail:
\n
${e.message}
'
);
}
}
...
@@ -1032,8 +1024,8 @@ void main() {
...
@@ -1032,8 +1024,8 @@ void main() {
LocalizationsGenerator
generator
;
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
generator
=
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
...
@@ -1063,8 +1055,8 @@ void main() {
...
@@ -1063,8 +1055,8 @@ void main() {
const
List
<
String
>
preferredSupportedLocale
=
<
String
>[
'zh'
,
'es'
];
const
List
<
String
>
preferredSupportedLocale
=
<
String
>[
'zh'
,
'es'
];
LocalizationsGenerator
generator
;
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
generator
=
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
...
@@ -1097,18 +1089,16 @@ void main() {
...
@@ -1097,18 +1089,16 @@ void main() {
.
writeAsStringSync
(
singleZhMessageArbFileString
);
.
writeAsStringSync
(
singleZhMessageArbFileString
);
const
List
<
String
>
preferredSupportedLocale
=
<
String
>[
'am'
,
'es'
];
const
List
<
String
>
preferredSupportedLocale
=
<
String
>[
'am'
,
'es'
];
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
preferredSupportedLocales:
preferredSupportedLocale
,
preferredSupportedLocales:
preferredSupportedLocale
,
);
).
loadResources
();
generator
.
loadResources
();
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
expect
(
e
.
message
,
e
.
message
,
...
@@ -1137,8 +1127,8 @@ void main() {
...
@@ -1137,8 +1127,8 @@ void main() {
LocalizationsGenerator
generator
;
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
generator
=
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
...
@@ -1183,8 +1173,8 @@ void main() {
...
@@ -1183,8 +1173,8 @@ void main() {
LocalizationsGenerator
generator
;
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
generator
=
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
'first_file.arb'
,
templateArbFileName:
'first_file.arb'
,
...
@@ -1228,8 +1218,8 @@ void main() {
...
@@ -1228,8 +1218,8 @@ void main() {
LocalizationsGenerator
generator
;
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
generator
=
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
'app_es.arb'
,
templateArbFileName:
'app_es.arb'
,
...
@@ -1254,8 +1244,8 @@ void main() {
...
@@ -1254,8 +1244,8 @@ void main() {
..
childFile
(
'app.arb'
)
..
childFile
(
'app.arb'
)
.
writeAsStringSync
(
singleMessageArbFileString
);
.
writeAsStringSync
(
singleMessageArbFileString
);
try
{
try
{
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
'app.arb'
,
templateArbFileName:
'app.arb'
,
...
@@ -1289,15 +1279,14 @@ void main() {
...
@@ -1289,15 +1279,14 @@ void main() {
.
writeAsStringSync
(
secondMessageArbFileString
);
.
writeAsStringSync
(
secondMessageArbFileString
);
try
{
try
{
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
'app_en.arb'
,
templateArbFileName:
'app_en.arb'
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
);
).
loadResources
();
generator
.
loadResources
();
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
"Multiple arb files with the same 'en' locale detected"
));
expect
(
e
.
message
,
contains
(
"Multiple arb files with the same 'en' locale detected"
));
return
;
return
;
...
@@ -1316,15 +1305,14 @@ void main() {
...
@@ -1316,15 +1305,14 @@ void main() {
.
writeAsStringSync
(
singleMessageArbFileString
);
.
writeAsStringSync
(
singleMessageArbFileString
);
try
{
try
{
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
.
initialize
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
'app_en_US.arb'
,
templateArbFileName:
'app_en_US.arb'
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
);
).
loadResources
();
generator
.
loadResources
();
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'Arb file for a fallback, en, does not exist'
));
expect
(
e
.
message
,
contains
(
'Arb file for a fallback, en, does not exist'
));
return
;
return
;
...
@@ -1340,18 +1328,18 @@ void main() {
...
@@ -1340,18 +1328,18 @@ void main() {
group
(
'writeOutputFiles'
,
()
{
group
(
'writeOutputFiles'
,
()
{
testUsingContext
(
'message without placeholders - should generate code comment with description and template message translation'
,
()
{
testUsingContext
(
'message without placeholders - should generate code comment with description and template message translation'
,
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
final
BufferLogger
testLogger
=
BufferLogger
.
test
();
final
BufferLogger
testLogger
=
BufferLogger
.
test
();
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
testLogger
);
.
.
writeOutputFiles
(
testLogger
);
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
fail
(
'Generating output files should not fail:
$e
'
);
fail
(
'Generating output files should not fail:
$e
'
);
}
}
...
@@ -1384,19 +1372,19 @@ void main() {
...
@@ -1384,19 +1372,19 @@ void main() {
l10nDirectory
.
childFile
(
esArbFileName
)
l10nDirectory
.
childFile
(
esArbFileName
)
.
writeAsStringSync
(
singleEsMessageArbFileString
);
.
writeAsStringSync
(
singleEsMessageArbFileString
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
final
BufferLogger
testLogger
=
BufferLogger
.
test
();
final
BufferLogger
testLogger
=
BufferLogger
.
test
();
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
testLogger
);
.
.
writeOutputFiles
(
testLogger
);
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
fail
(
'Generating output files should not fail:
$e
'
);
fail
(
'Generating output files should not fail:
$e
'
);
}
}
...
@@ -1438,18 +1426,18 @@ void main() {
...
@@ -1438,18 +1426,18 @@ void main() {
"price": "el precio de este artículo es:
${price}
"
"price": "el precio de este artículo es:
${price}
"
}'''
);
}'''
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
final
BufferLogger
testLogger
=
BufferLogger
.
test
();
final
BufferLogger
testLogger
=
BufferLogger
.
test
();
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
testLogger
);
.
.
writeOutputFiles
(
testLogger
);
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
final
L10nException
exception
=
e
as
L10nException
;
final
L10nException
exception
=
e
as
L10nException
;
print
(
exception
.
message
);
print
(
exception
.
message
);
...
@@ -1479,17 +1467,17 @@ void main() {
...
@@ -1479,17 +1467,17 @@ void main() {
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
singleMessageArbFileString
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
singleMessageArbFileString
)
..
childFile
(
'app_en_CA.arb'
).
writeAsStringSync
(
singleEnCaMessageArbFileString
);
..
childFile
(
'app_en_CA.arb'
).
writeAsStringSync
(
singleEnCaMessageArbFileString
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
fail
(
'Generating output files should not fail:
$e
'
);
fail
(
'Generating output files should not fail:
$e
'
);
}
}
...
@@ -1511,18 +1499,18 @@ void main() {
...
@@ -1511,18 +1499,18 @@ void main() {
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
singleEsMessageArbFileString
);
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
singleEsMessageArbFileString
);
const
List
<
String
>
preferredSupportedLocale
=
<
String
>[
'zh'
];
const
List
<
String
>
preferredSupportedLocale
=
<
String
>[
'zh'
];
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
preferredSupportedLocales:
preferredSupportedLocale
,
preferredSupportedLocales:
preferredSupportedLocale
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
fail
(
'Generating output files should not fail:
$e
'
);
fail
(
'Generating output files should not fail:
$e
'
);
}
}
...
@@ -1542,17 +1530,17 @@ import 'output-localization-file_zh.dart';
...
@@ -1542,17 +1530,17 @@ import 'output-localization-file_zh.dart';
fs
.
currentDirectory
.
childDirectory
(
'lib'
).
childDirectory
(
'l10n'
)..
createSync
(
recursive:
true
)
fs
.
currentDirectory
.
childDirectory
(
'lib'
).
childDirectory
(
'l10n'
)..
createSync
(
recursive:
true
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
singleMessageArbFileString
);
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
singleMessageArbFileString
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
useDeferredLoading:
true
,
useDeferredLoading:
true
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
fail
(
'Generating output files should not fail:
$e
'
);
fail
(
'Generating output files should not fail:
$e
'
);
}
}
...
@@ -1588,16 +1576,16 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1588,16 +1576,16 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
singleDateMessageArbFileString
);
.
writeAsStringSync
(
singleDateMessageArbFileString
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'asdf'
));
expect
(
e
.
message
,
contains
(
'asdf'
));
expect
(
e
.
message
,
contains
(
'springStartDate'
));
expect
(
e
.
message
,
contains
(
'springStartDate'
));
...
@@ -1626,17 +1614,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1626,17 +1614,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
singleDateMessageArbFileString
);
.
writeAsStringSync
(
singleDateMessageArbFileString
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'the "format" attribute needs to be set'
));
expect
(
e
.
message
,
contains
(
'the "format" attribute needs to be set'
));
return
;
return
;
...
@@ -1664,17 +1652,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1664,17 +1652,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
singleDateMessageArbFileString
);
.
writeAsStringSync
(
singleDateMessageArbFileString
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'asdf'
));
expect
(
e
.
message
,
contains
(
'asdf'
));
expect
(
e
.
message
,
contains
(
'progress'
));
expect
(
e
.
message
,
contains
(
'progress'
));
...
@@ -1701,17 +1689,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1701,17 +1689,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
pluralMessageWithoutPlaceholdersAttribute
);
.
writeAsStringSync
(
pluralMessageWithoutPlaceholdersAttribute
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'Check to see if the plural message is in the proper ICU syntax format'
));
expect
(
e
.
message
,
contains
(
'Check to see if the plural message is in the proper ICU syntax format'
));
return
;
return
;
...
@@ -1734,17 +1722,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1734,17 +1722,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
pluralMessageWithEmptyPlaceholdersMap
);
.
writeAsStringSync
(
pluralMessageWithEmptyPlaceholdersMap
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'Check to see if the plural message is in the proper ICU syntax format'
));
expect
(
e
.
message
,
contains
(
'Check to see if the plural message is in the proper ICU syntax format'
));
return
;
return
;
...
@@ -1763,17 +1751,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1763,17 +1751,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
pluralMessageWithoutResourceAttributes
);
.
writeAsStringSync
(
pluralMessageWithoutResourceAttributes
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'Resource attribute "@helloWorlds" was not found'
));
expect
(
e
.
message
,
contains
(
'Resource attribute "@helloWorlds" was not found'
));
return
;
return
;
...
@@ -1795,17 +1783,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1795,17 +1783,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
pluralMessageWithIncorrectPlaceholderFormat
);
.
writeAsStringSync
(
pluralMessageWithIncorrectPlaceholderFormat
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'is not properly formatted'
));
expect
(
e
.
message
,
contains
(
'is not properly formatted'
));
expect
(
e
.
message
,
contains
(
'Ensure that it is a map with string valued keys'
));
expect
(
e
.
message
,
contains
(
'Ensure that it is a map with string valued keys'
));
...
@@ -1820,17 +1808,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1820,17 +1808,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
singleMessageArbFileString
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
singleMessageArbFileString
)
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
singleEsMessageArbFileString
);
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
singleEsMessageArbFileString
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
fail
(
'Generating output files should not fail:
$e
'
);
fail
(
'Generating output files should not fail:
$e
'
);
}
}
...
@@ -1864,17 +1852,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1864,17 +1852,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
pluralMessageArb
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
pluralMessageArb
)
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
pluralMessageEsArb
);
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
pluralMessageEsArb
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
fail
(
'Generating output files should not fail:
$e
'
);
fail
(
'Generating output files should not fail:
$e
'
);
}
}
...
@@ -1890,18 +1878,18 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1890,18 +1878,18 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
singleMessageArbFileString
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
singleMessageArbFileString
)
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
singleEsMessageArbFileString
);
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
singleEsMessageArbFileString
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
useDeferredLoading:
true
,
useDeferredLoading:
true
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
fail
(
'Generating output files should not fail:
$e
'
);
fail
(
'Generating output files should not fail:
$e
'
);
}
}
...
@@ -1917,18 +1905,18 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -1917,18 +1905,18 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
singleMessageArbFileString
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
singleMessageArbFileString
)
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
singleEsMessageArbFileString
);
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
singleEsMessageArbFileString
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
useDeferredLoading:
false
,
useDeferredLoading:
false
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
fail
(
'Generating output files should not fail:
$e
'
);
fail
(
'Generating output files should not fail:
$e
'
);
}
}
...
@@ -2046,17 +2034,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -2046,17 +2034,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
enArbCheckList
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
enArbCheckList
)
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
esArbCheckList
);
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
esArbCheckList
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
if
(
e
is
L10nException
)
{
if
(
e
is
L10nException
)
{
print
(
e
.
message
);
print
(
e
.
message
);
...
@@ -2112,17 +2100,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -2112,17 +2100,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
enArbCheckList
)
..
childFile
(
defaultTemplateArbFileName
).
writeAsStringSync
(
enArbCheckList
)
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
esArbCheckList
);
..
childFile
(
'app_es.arb'
).
writeAsStringSync
(
esArbCheckList
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
Exception
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
if
(
e
is
L10nException
)
{
if
(
e
is
L10nException
)
{
print
(
e
.
message
);
print
(
e
.
message
);
...
@@ -2160,17 +2148,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -2160,17 +2148,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
arbFileWithTrailingComma
);
.
writeAsStringSync
(
arbFileWithTrailingComma
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'app_en.arb'
));
expect
(
e
.
message
,
contains
(
'app_en.arb'
));
expect
(
e
.
message
,
contains
(
'FormatException'
));
expect
(
e
.
message
,
contains
(
'FormatException'
));
...
@@ -2195,18 +2183,18 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -2195,18 +2183,18 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
arbFileWithMissingResourceAttribute
);
.
writeAsStringSync
(
arbFileWithMissingResourceAttribute
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
areResourceAttributesRequired:
true
,
areResourceAttributesRequired:
true
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'Resource attribute "@title" was not found'
));
expect
(
e
.
message
,
contains
(
'Resource attribute "@title" was not found'
));
return
;
return
;
...
@@ -2232,17 +2220,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -2232,17 +2220,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
nonAlphaNumericArbFile
);
.
writeAsStringSync
(
nonAlphaNumericArbFile
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'Invalid ARB resource name'
));
expect
(
e
.
message
,
contains
(
'Invalid ARB resource name'
));
return
;
return
;
...
@@ -2264,17 +2252,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -2264,17 +2252,17 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
nonAlphaNumericArbFile
);
.
writeAsStringSync
(
nonAlphaNumericArbFile
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
outputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'Invalid ARB resource name'
));
expect
(
e
.
message
,
contains
(
'Invalid ARB resource name'
));
return
;
return
;
...
@@ -2296,16 +2284,16 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -2296,16 +2284,16 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
l10nDirectory
.
childFile
(
defaultTemplateArbFileName
)
.
writeAsStringSync
(
nonAlphaNumericArbFile
);
.
writeAsStringSync
(
nonAlphaNumericArbFile
);
final
LocalizationsGenerator
generator
=
LocalizationsGenerator
(
fs
);
try
{
try
{
generator
.
initialize
(
LocalizationsGenerator
(
fileSystem:
fs
,
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
;
)
generator
.
loadResources
();
..
loadResources
()
generator
.
writeOutputFiles
(
BufferLogger
.
test
());
.
.
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
expect
(
e
.
message
,
contains
(
'Invalid ARB resource name'
));
expect
(
e
.
message
,
contains
(
'Invalid ARB resource name'
));
return
;
return
;
...
@@ -2318,16 +2306,14 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -2318,16 +2306,14 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
testUsingContext
(
'should generate a valid pubspec.yaml file when using synthetic package if it does not already exist'
,
()
{
testUsingContext
(
'should generate a valid pubspec.yaml file when using synthetic package if it does not already exist'
,
()
{
_standardFlutterDirectoryL10nSetup
(
fs
);
_standardFlutterDirectoryL10nSetup
(
fs
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
BufferLogger
.
test
());
..
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
@@ -2354,16 +2340,14 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
...
@@ -2354,16 +2340,14 @@ import 'output-localization-file_en.dart' deferred as output-localization-file_e
..
createSync
(
recursive:
true
)
..
createSync
(
recursive:
true
)
..
writeAsStringSync
(
'abcd'
);
..
writeAsStringSync
(
'abcd'
);
LocalizationsGenerator
generator
;
try
{
try
{
generator
=
LocalizationsGenerator
(
fs
);
LocalizationsGenerator
(
generator
fileSystem:
fs
,
..
initialize
(
inputPathString:
defaultL10nPathString
,
inputPathString:
defaultL10nPathString
,
templateArbFileName:
defaultTemplateArbFileName
,
templateArbFileName:
defaultTemplateArbFileName
,
outputFileString:
defaultOutputFileString
,
outputFileString:
defaultOutputFileString
,
classNameString:
defaultClassNameString
,
classNameString:
defaultClassNameString
,
)
)
..
loadResources
()
..
loadResources
()
..
writeOutputFiles
(
BufferLogger
.
test
());
..
writeOutputFiles
(
BufferLogger
.
test
());
}
on
L10nException
catch
(
e
)
{
}
on
L10nException
catch
(
e
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment