slang-i18n / slang

Type-safe i18n for Dart and Flutter
https://pub.dev/packages/slang
MIT License
459 stars 39 forks source link

Analyze command ignores untranslated values in partially-translated enums #234

Open ChaserVasya opened 2 months ago

ChaserVasya commented 2 months ago

project

pubspec.yaml

  slang: ^3.31.1
  slang_flutter: ^3.31.0

data.dart

enum EmployeePermission {
  canSell,
  canBuy,
}

build.yaml

targets:
  $default:
    builders:
      slang_build_runner:
        options:
          base_locale: ru
          fallback_strategy: base_locale
          input_directory: lib/i18n
          input_file_pattern: .i18n.json
          output_directory: lib/i18n
          output_file_name: translations.g.dart
          translate_var: tr
          timestamp: false
          statistics: false
          imports:
            - package:untitled/data.dart
          contexts:
            EmployeePermission:
              generate_enum: false

tr_en.i18n.dart

{
  "employeePermissionTitleMap(context=EmployeePermission, param=perm)": {
    "canSell": "Can sell"
  }
}

tr_ru.i18n.dart

{
  "employeePermissionTitleMap(context=EmployeePermission, param=perm)": {
    "canSell": "Продавать услуги",
    "canBuy": "Покупать услуги"
  }
}

problem

dart run slang analyze result:

{
  "@@info": [
    "Here are translations that exist in <ru> but not in secondary locales.",
    "After editing this file, you can run 'dart run slang apply' to quickly apply the newly added translations."
  ],
  "en": {}
}
ChaserVasya commented 2 months ago

https://github.com/slang-i18n/slang/issues/225