parse method
Parses the given args
and returns the parsed results as a TranslateArgResults object.
Throws a FormatException if there is an unexpected positional argument. Returns a TranslateArgResults object containing the parsed results.
Implementation
TranslateArgResults parse(List<String> args) {
final rawResults = _parser.parse(args);
if (rawResults.rest.isNotEmpty) {
throw FormatException(
'Unexpected positional argument "${rawResults.rest.first}".',
);
}
final modelProvider = rawResults.wasParsed(_modelProviderKey)
? ModelProvider.values.firstWhereOrNull(
(provider) => provider.key == rawResults[_modelProviderKey],
)
: null;
final model = rawResults.wasParsed(_modelKey)
? Model.values.firstWhereOrNull(
(model) => model.key == rawResults[_modelKey],
)
: null;
final excludeLocales = rawResults.wasParsed(_excludeLocalesKey)
? rawResults[_excludeLocalesKey] as List<String>
: null;
return TranslateArgResults(
help: _getBoolIfParsed(rawResults, _helpKey),
modelProvider: modelProvider,
model: model,
apiKey: rawResults[_apiKeyKey] as String?,
vertexAiProjectUrl: rawResults[_vertexAiProjectUrlKey] as String?,
disableSafety: _getBoolIfParsed(rawResults, _disableSafetyKey),
context: rawResults[_contextKey] as String?,
excludeLocales: excludeLocales,
arbDir: rawResults[TranslateOptions.arbDirKey] as String?,
templateArbFile:
rawResults[TranslateOptions.templateArbFileKey] as String?,
useEscaping:
_getBoolIfParsed(rawResults, TranslateOptions.useEscapingKey),
relaxSyntax:
_getBoolIfParsed(rawResults, TranslateOptions.relaxSyntaxKey),
);
}