slang 3.0.0-dev.0 copy "slang: ^3.0.0-dev.0" to clipboard
slang: ^3.0.0-dev.0 copied to clipboard

outdated

Localization / Internationalization (i18n) solution. Use JSON, YAML or CSV files to create typesafe translations via source generation.

3.0.0 #

Translation Overrides and Enhanced Modifiers

  • feat: it is now possible to override translations via LocaleSettings.overrideTranslations (checkout updated README)
  • Breaking: default plural parameter is now n; you can revert this by setting pluralization/default_parameter: count
  • Breaking: plural and context parameter flags must follow the syntax: myKey(param=appleCount)
  • feat: there is a new modifier syntax which allows for multiple modifiers e.g. myKey(plural, rich)
  • feat: improve file scan (now only checks top-level directory for any config files)

All breaking changes will result in a compile-time error, so don't worry for "hidden" bugs :)

You can read the detailed migration guide here.

2.8.0 #

  • feat: add AppLocaleUtils.parseLocaleParts
  • fix: LocaleSettings.useDeviceLocale now does not complain of weird locales on Linux
  • fix: rich text now handles all characters
  • fix: rich text properly applies param_case
  • fix: empty nodes are rendered as classes instead of claiming them as plurals

2.7.0 #

  • feat: ignore empty plural / context nodes when fallback_strategy: base_locale is used
  • feat: add coverage:ignore-file to generated file and ignore every lint

2.6.2 #

  • feat: add Russian plural resolver (thanks to @LuckyWins)
  • fix: parse rich text with interpolation braces and double_braces correctly

2.6.1 #

  • fix: remove const if rich text has links

2.6.0 #

  • feat: render context enum values as is, instead of forcing to camel case
  • feat: add additional lint ignores to generated file
  • fix: generate correct ordinal (plural) call
  • fix: handle rich texts containing linked translations

2.5.0 #

  • feat: add extension method shorthand (e.g. context.tr.someKey.anotherKey)
  • feat: add LocaleSettings.getLocaleStream to keep track of every locale change
  • feat: return more specific TextSpan instead of InlineSpan for rich texts

2.4.1 #

  • fix: do not export package:flutter/widgets.dart

2.4.0 #

  • feat: allow external enums for context feature (add generate_enum and imports config)
  • feat: add default context parameter name (default_parameter)
  • feat: add export statement in generated file to avoid imports of extension methods

2.3.1 #

  • fix: add missing fallback for flat map if configured

2.3.0 #

  • feat: use tight version for slang_flutter and slang_build_runner
  • fix: throw error if base locale not found
  • fix: TranslationProvider should use current locale
  • fix: use more strict locale regex to avoid false-positives when detecting locale of directory name

2.2.0 #

  • feat: locale can be moved from file name to directory name (e.g. i18n/fr/page1_fr.i18n.json to i18n/fr/page1.i18n.json)

2.1.0 #

  • feat: add slang.yaml support which has less boilerplate than build.yaml
  • fix: move internal build.yaml to correct package

2.0.0 #

Transition to a federated package structure

  • Breaking: rebranding to slang
  • Breaking: add slang_build_runner, slang_flutter depending on your use case
  • Breaking: remove output_file_pattern (was deprecated)
  • feat: dart-only support (flutter_integration: false)
  • feat: multiple package support
  • feat: RichText support

Thanks to @fzyzcjy.

You can read the detailed migration guide here.

532
likes
0
pub points
97%
popularity

Publisher

verified publishertienisto.com

Localization / Internationalization (i18n) solution. Use JSON, YAML or CSV files to create typesafe translations via source generation.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

collection, csv, yaml

More

Packages that depend on slang