LanguageTag.parse constructor
LanguageTag.parse(
- String languageTag
Implementation
factory LanguageTag.parse(String languageTag) {
if (unfilled(languageTag)) {
throw ArgumentError('Invalid language tag to be parsed (null or blank)');
}
var subtags = languageTag.split(RegExp(r'[-_]'));
var language = '';
var extlang = '';
var script = '';
var region = '';
var variant = '';
var insertionIndex = 0;
for (var subtag in subtags) {
if (insertionIndex == 0) {
if (_isCorrectLanguage(subtag)) {
language = subtag;
insertionIndex++;
continue;
} else {
throw ArgumentError('Incorrect language subtag $subtag');
}
}
if (insertionIndex == 1) {
insertionIndex++;
if (_isCorrectExtlang(subtag)) {
extlang = subtag;
continue;
}
}
if (insertionIndex == 2) {
insertionIndex++;
if (_isCorrectScript(subtag)) {
script = subtag;
continue;
}
}
if (insertionIndex == 3) {
insertionIndex++;
if (_isCorrectRegion(subtag)) {
region = subtag;
continue;
}
}
if (insertionIndex == 4) {
insertionIndex++;
if (_isCorrectVariant(subtag)) {
variant = subtag;
continue;
}
}
throw ArgumentError('Incorrect subtag $subtag');
}
return LanguageTag(language,
extlang: extlang, script: script, region: region, variant: variant);
}