parseQualifiers function
从文件路径中解析资源限定符
filePath 文件路径
qualifiers 限定符映射表
返回解析出的资源限定符
Implementation
ResourceQualifiers parseQualifiers(
String filePath,
Map<String, List<String>> qualifiers,
) {
final fileName = path.basenameWithoutExtension(filePath);
final Map<String, String> qualifierMap = {};
// 从文件名中提取限定符
// 例如: strings_en.xml -> en, colors_dark.xml -> dark
var baseName = fileName;
// 移除已知的限定符后缀
for (final qualifier in qualifiers.entries) {
final qualifierType = qualifier.key;
final possibleValues = qualifier.value;
for (final value in possibleValues) {
final suffix = '_$value';
if (baseName.endsWith(suffix)) {
qualifierMap[qualifierType] = value;
baseName = baseName.substring(0, baseName.length - suffix.length);
break;
}
}
}
return ResourceQualifiers(qualifierMap);
}