parseQualifiers function

ResourceQualifiers parseQualifiers(
  1. String filePath,
  2. Map<String, List<String>> qualifiers
)

从文件路径中解析资源限定符

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);
}