PackageTrack
Sign in Get early access

slang

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

4.19.0 292K downloads/mo #700 most downloaded on pub.dev source

What this package is like to depend on

Last release 17 days ago

06 Aug 2026

Release timing varies

gaps range from 8 days to 2 months

Nearly every release is documented

notes for 91 of 92 stable releases

Nothing withdrawn

no release was ever pulled

4 years old

100 releases · first in 2022

17 releases in the last 12 months

see the full history below

Release timeline

100 releases · May 2022 to Aug 2026
2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 100
  1. 4.19.0 06 Aug 2026
    Release notes
    • feat: add relative linked translations (@:.sibling resolves against the siblings of the current translation)
    • feat: add Hebraic plural resolver
    Open source →
  2. 4.18.0 30 Jun 2026
    Release notes
    • feat: add slang_build_runner:legacy to restore old build_runner behaviour avoiding Asset already exists errors
    • fix: AppLocaleUtils.parse (and LocaleSettings.setLocaleRaw) ignored the country code of plain language-COUNTRY tags (e.g. en-US, en-GB)
    Open source →
  3. 4.17.0 29 Jun 2026
    Release notes
    • feat: replaced internal basicLocaleListResolution with custom (simpler) implementation
    • feat: slang_build_runner only applies to direct dependent
    • fix: respect wildcards when running slang configure
    Open source →
  4. 4.16.0 11 Jun 2026
    Release notes
    • feat: respect all locale preferences of the device instead of only the first locale
    • feat: add --preserve-order flag to slang apply
    • fix: compilation error when using region extension as a super set of the parent locale
    Open source →
    Release notes
    • feat: respect all locale preferences of the device instead of only the first locale
    • feat: add --preserve-order flag to slang apply
    • fix: compilation error when using region extension as a super set of the parent locale
    Open source →
  5. 4.15.0 25 May 2026
    Release notes
    • feat: Region Extensions, de-CH will fall back to de before falling back to the base locale
    • feat: Wildcard Locales, [any]-DE.json will spread to all existing language codes, useful to set a currency for a region without managing every combination of language and region (e.g. en-DE, fr-DE, de-DE)
    • feat: add Arabic plural resolver
    Open source →
    Release notes
    • feat: Region Extensions, de-CH will fall back to de before falling back to the base locale
    • feat: Wildcard Locales, [any]-DE.json will spread to all existing language codes, useful to set a currency for a region without managing every combination of language and region (e.g. en-DE, fr-DE, de-DE)
    • feat: add Arabic plural resolver
    Open source →
  6. 4.14.0 13 Mar 2026
    Release notes
    • feat: allow nested namespaces
    • feat: automatically fix common casing typos during slang wip apply based on existing translations and majority vote
    • feat(mcp): allow specifying @@notes in translation files to give LLMs more context
    Open source →
    Release notes
    • feat: allow nested namespaces
    • feat: automatically fix common casing typos during slang wip apply based on existing translations and majority vote
    • feat(mcp): allow specifying @@notes in translation files to give LLMs more context
    Open source →
  7. 4.13.0 05 Mar 2026
    Release notes
    • feat: add generate_mixin to interfaces config to allow predefined mixins instead of generating new ones (#347)
    • feat: support build_runner build --workspace, requires build_runner: ^2.12.1 (#348)
    • deps: replace csv with serial_csv
    • DEPRECATED: Do not specify paths for interfaces in config, use interface modifier in the translation keys instead (e.g. myKey(interface=MyInterface))
    Open source →
    Release notes
    • feat: add generate_mixin to interfaces config to allow predefined mixins instead of generating new ones (#347)
    • feat: support build_runner build --workspace, requires build_runner: ^2.12.1 (#348)
    • deps: replace csv with serial_csv
    • DEPRECATED: Do not specify paths for interfaces in config, use interface modifier in the translation keys instead (e.g. myKey(interface=MyInterface))
    Open source →
  8. 4.12.1 31 Jan 2026
    Release notes
    Open source →
    Release notes
    • feat: also format base locale when running slang normalize (#344) @adil192
    • feat: format yaml files like in Weblate (#343) @adil192
    • chore: migrate from GitHub to Codeberg: https://codeberg.org/Tienisto/slang
    Open source →
  9. 4.12.0 18 Jan 2026
    Release notes
    • feat: announcing slang_mcp, a new package to work with LLMs more efficiently
    • fix: $wip should handle nested parenthesis
    Open source →
    Release notes
    • feat: announcing slang_mcp, a new package to work with LLMs more efficiently
    • fix: $wip should handle nested parenthesis
    Open source →
  10. 4.11.2 09 Jan 2026
    Release notes
    • fix: do not throw an error on empty translation files (#335)
    • fix: slang analyze should handle maps with numbers or dots as keys (#339, #340)
    • fix: handle t.$wip(x) where x is a variable or a function call
    • fix: allow Icelandic as language code (#333)
    Open source →
  11. 4.11.1 07 Dec 2025
    Release notes
    • fix: handle edge cases in t.$wip detection (#330) (#331)
    Open source →
  12. 4.11.0 22 Nov 2025
    Release notes
    • feat: add t.$wip('Welcome $name') or t.$wip.welcome.title('Welcome $name') for key-less prototyping without code generation
    • feat: add dart run slang wip apply to add the translations to resources and update the Dart code accordingly
    • feat: generate the flat map in a single function (#325) @mrgnhnt96
    Open source →
    Release notes
    • feat: simplify ${arg} to $arg if possible
    • feat: make internal translation class instance final
    Open source →
    Release notes
    • feat: add t.$wip('Welcome $name') or t.$wip.welcome.title('Welcome $name') for key-less prototyping without code generation
    • feat: add dart run slang wip apply to add the translations to resources and update the Dart code accordingly
    • feat: generate the flat map in a single function (#325) @mrgnhnt96
    Open source →
  13. 4.10.1 17 Nov 2025
    Release notes
    • fix: when L10n and linked translations are used together, the L10n parameter type got lost (#324)
    Open source →
  14. 4.10.0 11 Nov 2025
    Release notes
    • feat: add // dart format off for generated files (#320) @adil192
    • feat: flat map uses switch expressions instead of statements (#323) @mrgnhnt96
    Open source →
    Release notes

    Added support for custom contexts.
    Example:

    {
      "greet": {
        "male": "Hello Mr $name",
        "female": "Hello Ms $name"
      }
    }
    
    String a = t.greet(name: 'Anna', context: GenderContext.female);
    

    For more information, see README.

    Open source →
    Release notes
    • feat: add // dart format off for generated files (#320) @adil192
    • feat: flat map uses switch expressions instead of statements (#323) @mrgnhnt96
    Open source →
  15. 4.9.2 22 Oct 2025
    Release notes
    • fix: call setLocale without WidgetsBinding
    • docs: update README
    Open source →
    Release notes
    • fix: split flat map into multiple switch blocks instead of a HashMap which caused StackOverflow on linked translations (#319)
    Open source →
  16. 4.9.1 17 Oct 2025
    Release notes

    Fix: generate default plural resolvers when auto pluralization is used

    Open source →
    Release notes
    • fix: generate the flat map as a HashMap instead of a switch. Dart AOT compiler is unable to compile large switch statements (#318)
    Open source →
  17. 4.9.0 04 Oct 2025
    Release notes
    • feat: combine namespaced and non-namespaced translations (#311)
    • feat: reduce CLI logging (#315)
    Open source →
    Release notes

    Detect pluralization automatically, configure it via pluralization->auto: cardinal / ordinal

    Open source →
    Release notes
    • feat: combine namespaced and non-namespaced translations (#311)
    • feat: reduce CLI logging (#315)
    Open source →
  18. 4.8.1 01 Aug 2025
    Release notes
    • fix: remove new line in autodoc output
    Open source →
  19. 4.8.0 01 Aug 2025
    Release notes
    • feat: add autodoc feature enabled by default that generates the base translation as documentation for the translation keys (#218)
    • feat: slang analyze supports --source-dirs (#309) @khoadng
    • feat: slang configure supports --source-dirs (#308) @khoadng
    • fix: correctly preserve identation of YAML output (#299) @adil192
    • deps: loosen build constraint in slang_build_runner
    Open source →
    Release notes
    • feat: add option to turn off flat map generation via flat_map: false
    • feat: add fallback_strategy configuration, possible values strict (default), base_locale
    • feat: auto rebuild flutter pub run fast_i18n watch (experimental)
    • fix: escape parameters with backslash correctly
    Open source →
    Release notes
    • feat: add autodoc feature enabled by default that generates the base translation as documentation for the translation keys (#218)
    • feat: slang analyze supports --source-dirs (#309) @khoadng
    • feat: slang configure supports --source-dirs (#308) @khoadng
    • fix: correctly preserve identation of YAML output (#299) @adil192
    • deps: loosen build constraint in slang_build_runner (#314)
    Open source →
  20. 4.7.3 07 Jul 2025
    Release notes
    • fix: add override to reserved keywords so it will be sanitized as well (#303)
    • fix: do not generate empty classes (#305)
    Open source →
  21. 4.7.2 25 May 2025
    Release notes

    Handle string interpolation at the beginning (for braces and double_braces)

    Open source →
    Release notes
    • fix: indentation of YAML output when using multiline strings (#299)
    Open source →
  22. 4.7.1 13 Apr 2025
    Release notes

    New string_interpolation configuration. Possible values: dart (default), braces and double_braces.

    dart:          Hello $name or ${name2}
    braces:        Hello {name}
    double_braces: Hello {{name}}
    

    Fixes in build_runner.

    Open source →
    Release notes

    The legacy version of 4.7.1.

    Built on build 1.3.0, glob 1.2.0, yaml 2.2.1 and build_runner 1.10.2.

    Open source →
    Release notes
    • fix: handle more edge cases in the YAML writer
    Open source →
  23. 4.7.0 13 Apr 2025
    Release notes
    • feat: remove json2yaml dependency, reimplement a simple opinionated YAML writer
    Open source →
    Release notes
    • feat: remove json2yaml dependency, reimplement a simple opinionated YAML writer
    Open source →
  24. 4.6.1 10 Apr 2025
    Release notes
    • fix: automatically initialize the locale when overriding an uninitialized locale (#294)
    Open source →
  25. 4.6.0 19 Mar 2025
    Release notes
    • feat: add Translations.$copyWith() and TranslationMetadata.getOverride to allow adding custom behavior (#287)
    • feat: add Japanese plural resolver (#289)
    Open source →
    Release notes
    • feat: add Translations.$copyWith() and TranslationMetadata.getOverride to allow adding custom behavior (#287)
    • feat: add Japanese plural resolver (#289)
    Open source →
  26. 4.5.0 26 Feb 2025
    Release notes
    • feat: add dart run slang configure to configure CFBundleLocalizations in Info.plist based on existing translation files
    • feat: add -h / --help / help command
    • feat: add global generate_enum config (#283)
    • fix: add unused_element_parameter to avoid warnings in Dart 3.7 (#282)
    Open source →
    Release notes
    • feat: remove hint when overriding plural resolvers (were too verbose)
    • feat: generated plural resolvers fallback to default quantity if null
    • feat: add zero quantity to cs, de, en and vi (not breaking)
    • docs: it is now recommended to put this library into dev_dependencies
    Open source →
    Release notes
    • feat: add dart run slang configure to configure CFBundleLocalizations in Info.plist based on existing translation files
    • feat: add -h / --help / help command
    • feat: add global generate_enum config (#283)
    • fix: add unused_element_parameter to avoid warnings in Dart 3.7 (#282)
    Open source →
  27. 4.4.1 02 Jan 2025
    Release notes
    • fix: @ for required missing (Flutter 1.x.x)
    • fix: null_safety is true by default (as intended in 4.4.0)
    Open source →
    Release notes
    • fix: also sanitize of when used as root key
    Open source →
  28. 4.4.0 15 Dec 2024
    Release notes
    • feat: add (fallback) modifier to fallback entries within a map (#268)
    • fix: empty strings in base translations should not be removed when using fallback_strategy: base_locale_empty_string
    Open source →
    Release notes
    • feat: add Flutter 1.x.x support, build_runner detects this automatically, otherwise set null_safety: false in build.yaml
    • feat: flutter pub run fast_i18n ignores build.yaml files without fast_i18n entry
    • fix: add type hint for _renderedResolvers
    Open source →
    Release notes
    • feat: add (fallback) modifier to fallback entries within a map (#268)
    • fix: empty strings in base translations should not be removed when using fallback_strategy: base_locale_empty_string
    Open source →
  29. 4.3.0 29 Nov 2024
    Release notes
    • feat: simplify file names without namespaces (#267)
    • DEPRECATED: Do not use namespaces in file names when namespaces are disabled: strings_de.json -> de.json
    • DEPRECATED: Always specify the locale in the file name (namespace enabled): strings.json -> strings_en.json, except the locale is specified in the directory name

    Note: This might make the files order in your IDE less pleasant if input and output files are in the same directory.
    You can specify the output directory to a subdirectory to avoid this.
    For example, output_directory: lib/i18n/gen

    Open source →
    Release notes
    • feat: plural resolvers can now be overwritten
    • fix: make params distinct
    • fix: sort locales correctly (base first, then alphabetically)
    Open source →
    Release notes
    • feat: simplify file names without namespaces (#267)
    • DEPRECATED: Do not use namespaces in file names when namespaces are disabled: strings_de.json -> de.json
    • DEPRECATED: Always specify the locale in the file name (namespace enabled): strings.json -> strings_en.json, except the locale is specified in the directory name

    Note: This might make the files order in your IDE less pleasant if input and output files are in the same directory. You can specify the output directory to a subdirectory to avoid this. For example, output_directory: lib/i18n/gen

    Open source →
  30. 4.2.1 16 Nov 2024
    Release notes
    • fix: do not sanitize keys in maps
    Open source →
  31. 4.2.0 15 Nov 2024
    Release notes
    • feat: automatically sanitize invalid keys (e.g. continue, 123) (#257)
    • fix: do not override locale in L10n format definition
    Open source →
    Release notes
    • feat: add pluralization support
    • feat: AppLocale has a new property called flutterLocale
    • feat: new command flutter pub run fast_i18n which is much faster than flutter pub run build_runner build --delete-conflicting-outputs
    Open source →
    Release notes
    • feat: automatically sanitize invalid keys (e.g. continue, 123) (#257)
    • fix: do not override locale in L10n format definition
    Open source →
  32. 4.1.0 23 Oct 2024
    Release notes
    • feat: add format config to automatically format generated files (#184)
    • fix: correctly generate with enum_name and class_name different from AppLocale / Translations (#254)
    Open source →
    Release notes

    A rebuild is needed: flutter pub run build_runner build.

    • feat: the generated file is now self-contained, it works even if you remove this library!
    • feat: add stats and timestamp to the generated file
    • fix: parse files with underscore only (e.g. strings_en_US)
    • fix: parse files with script tag (e.g. strings_zh-Hant-TW)
    • perf: generate LocaleSettings.supportedLocales statically without library call
    • perf: remove switch call in Translations.of(context).
    • docs: updates in generated file
    • docs: update README
    Open source →
    Release notes
    • feat: add format config to automatically format generated files (#184)
    • fix: correctly generate with enum_name and class_name different from AppLocale / Translations (#254)
    Open source →
  33. 4.0.0 21 Oct 2024
    Release notes

    DateFormat, NumberFormat, and Lazy loading

    Format translations with DateFormat and NumberFormat:

    Hello {name}, today is {today: yMd}. You have {money: currency(symbol: '€')}.

    On web, Deferred loading is used to reduce initial load time.

    • feat: add DateFormat and NumberFormat support (#112)
    • feat: add lazy: true config which is enabled by default (#135)
    • fix: slang analyze should not treat translations as unused if they are used in linked translations (#231)
    • fix: slang analyze should detect missing enums (#234)
    • fix: trim enum keys in compressed format while parsing (e.g. "male, female": "..." to "male,female": "...") (#247)
    • fix: compilation error on web when using large interfaces (#251)
    • fix: correctly transform keys with modifiers when key_case is set (#253)
    • Breaking: Require Dart 3.3 and Flutter 3.19
    • Breaking: setLocale, setLocaleRaw, and useDeviceLocale returns a Future, use -Sync suffix for synchronous calls
    • Breaking: output_format removed, always generates multiple files now
    • Breaking: deprecated functions in LocaleSettings (supportedLocales, supportedLocalesRaw) removed
    • Breaking: defining contexts (enums) is no longer allowed in build.yaml or slang.yaml (deprecated in v3.19.0)
    • Breaking: enums specified in context are no longer transformed into pascal case keeping the original case

    You can read the detailed migration guide here.

    Open source →
    Release notes

    The typed version is now first class.

    • Breaking: setLocale -> setLocaleRaw, setLocaleTyped -> setLocale
    • Breaking: locales -> supportedLocalesRaw
    • Breaking: AppLocale.toLanguageTag -> AppLocale.languageTag
    • Breaking: translation classes are now private by default, you can configure it via translation_class_visibility in build.yaml (in most cases just keep it private!)
    • plain strings are now implemented using getters, edit -> rebuild i18n -> hot reload works now for faster development
    Open source →
    Release notes

    DateFormat, NumberFormat, and Lazy loading

    Format translations with DateFormat and NumberFormat:

    Hello {name}, today is {today: yMd}. You have {money: currency(symbol: '€')}.

    On web, Deferred loading is used to reduce initial load time.

    • feat: add DateFormat and NumberFormat support (#112)
    • feat: add lazy: true config which is enabled by default (#135)
    • fix: slang analyze should not treat translations as unused if they are used in linked translations (#231)
    • fix: slang analyze should detect missing enums (#234)
    • fix: trim enum keys in compressed format while parsing (e.g. "male, female": "..." to "male,female": "...") (#247)
    • fix: compilation error on web when using large interfaces (#251)
    • fix: correctly transform keys with modifiers when key_case is set (#253)
    • Breaking: Require Dart 3.3 and Flutter 3.19
    • Breaking: setLocale, setLocaleRaw, and useDeviceLocale returns a Future, use -Sync suffix for synchronous calls
    • Breaking: output_format removed, always generates multiple files now
    • Breaking: deprecated functions in LocaleSettings (supportedLocales, supportedLocalesRaw) removed
    • Breaking: defining contexts (enums) is no longer allowed in build.yaml or slang.yaml (deprecated in v3.19.0)
    • Breaking: enums specified in context are no longer transformed into pascal case keeping the original case

    You can read the detailed migration guide here.

    Open source →
  34. 4.0.0-dev.1 21 Oct 2024 pre-release

    Nothing published for this version

  35. 4.0.0-dev.0 21 Oct 2024 pre-release

    Nothing published for this version

  36. 3.32.0 01 Oct 2024
    Release notes
    • feat: add syntax to escape linked translations (#248) @Fasust
    • i18n: add Polish plural resolver (#245) @0rzech
    • docs: broken Unicode CLDR link (#246) @0rzech
    Open source →
  37. 3.31.2 29 Aug 2024
    Release notes
    • fix: should match first language code if there are no matches by country code and at least one match by language code (#241) @Tienisto
    Open source →
  38. 3.31.1 22 Jun 2024
    Release notes
    • fix: "translation overrides" do not work with parameterized linked translations (#226) @Tienisto
    • fix: linked translations should not be unused when running dart run slang analyze (#222) @Tienisto
    Open source →
  39. 3.31.0 23 May 2024
    Release notes
    • feat: add dart run slang normalize to normalize translations based on base locale @Tienisto
    • feat: add parameter type support (introduced 3.30.0) to ARB files (#214) @Tienisto
    • feat: sort translation files for reproducible console output (#210) @poppingmoon
    Open source →
    Release notes
    • feat: add dart run slang normalize to normalize translations based on base locale @Tienisto
    • feat: add parameter type support (introduced 3.30.0) to ARB files (#214) @Tienisto
    • feat: sort translation files for reproducible console output (#210) @poppingmoon
    Open source →
  40. 3.30.2 25 Mar 2024
    Release notes
    • fix: commented out translations should be declared as unused during slang analyze (#200) @nikaera
    • fix: should use interpolation for strings with a single parameter (#207) @Tienisto
    • fix: encode csv files correctly (#202) @nikaera
    Open source →
  41. 3.30.1 03 Mar 2024
    Release notes
    • fix: when applying translations with dart run slang apply, only modifiers from the base locale should be used (#192)
    Open source →
  42. 3.30.0 03 Mar 2024
    Release notes
    • feat: add parameter types (e.g. Hello {name: String}, you are {age: int} years old); is Object by default @Tienisto
    • fix: handle nested interfaces (#191) @Tienisto
    • refactor: move code to src folder @Tienisto
    Open source →
    Release notes
    • feat: add parameter types (e.g. Hello {name: String}, you are {age: int} years old); is Object by default @Tienisto
    • fix: handle nested interfaces (#191) @Tienisto
    • refactor: move code to src folder @Tienisto
    Open source →
  43. 3.29.0 21 Jan 2024
    Release notes
    • feat: dart run slang analyze supports csv files (#185) @nikaera
    • feat: also add linter and coverage ignore to part files (#188) @cmenkemeller
    • fix: generate base translations as fallback when using context enums where some enum values are missing (#182) @Tienisto
    • fix: generate correct part of directive when using a custom dart file extension (#187) @cmenkemeller
    Open source →
    Release notes
    • feat: dart run slang analyze supports csv files (#185) @nikaera
    • feat: also add linter and coverage ignore to part files (#188) @cmenkemeller
    • fix: generate base translations as fallback when using context enums where some enum values are missing (#182) @Tienisto
    • fix: generate correct part of directive when using a custom dart file extension (#187) @cmenkemeller
    Open source →
  44. 3.28.0 21 Dec 2023
    Release notes
    • feat: add fallback_strategy: base_locale_empty_string to also treat empty strings as missing translations (#180)
    • fix: special case where linked translations had invalid parenthesis (#181)
    Open source →
    Release notes
    • feat: add fallback_strategy: base_locale_empty_string to also treat empty strings as missing translations (#180)
    • fix: special case where linked translations had invalid parenthesis (#181)
    Open source →
  45. 3.27.0 16 Dec 2023
    Release notes
    • feat: add support for ARB files (#179)
    Open source →
    Release notes
    • feat: add support for ARB files (#179)
    Open source →
  46. 3.26.2 07 Dec 2023
    Release notes
    • fix: should not escape special characters when parsed via the "Translation Overrides" feature (#177)
    Open source →
    Release notes
    • fix: should not escape special characters when parsed via the "Translation Overrides" feature (#177)
    Open source →
  47. 3.26.1 04 Dec 2023
    Release notes
    • fix: generate correct compatibility typedef for Translations class (#176)
    Open source →
    Release notes
    • fix: generate correct compatibility typedef for Translations class (#176)
    Open source →
  48. 3.26.0 04 Dec 2023
    Release notes
    • feat: base translation class is named Translations so that Translations.of(context) returns the same type (#169)
    • feat: the name Translations can be configured via class_name (@bjernie, #174)
    • feat: add statistics configuration (similar to timestamp) to hide statistics in generated file
    Open source →
    Release notes
    • feat: base translation class is named Translations so that Translations.of(context) returns the same type (#169)
    • feat: the name Translations can be configured via class_name (@bjernie, #174)
    • feat: add statistics configuration (similar to timestamp) to hide statistics in generated file
    Open source →
  49. 3.25.0 16 Oct 2023
    Release notes
    • feat: add dart run slang clean to remove unused translations after running slang analyze (#141)
    • feat: add --exit-if-changed to slang analyze to fail CI if there are missing / unused translations (#141)
    • fix: code generator should not crash if context is not included in i18n (#165)
    • fix: should not generate contextBuilder and nBuilder parameter in rich text if not needed (#168)
    Open source →
    Release notes
    • feat: add dart run slang clean to remove unused translations after running slang analyze (#141)
    • feat: add --exit-if-changed to slang analyze to fail CI if there are missing / unused translations (#141)
    • fix: code generator should not crash if context is not included in i18n (#165)
    • fix: should not generate contextBuilder and nBuilder parameter in rich text if not needed (#168)
    Open source →
  50. 3.24.0 27 Sep 2023
    Release notes
    • feat: slang edit add respects order in base locale (@adil192)
    • feat: slang edit add works without a specified locale, it will add the string to all locales
    • feat: use WidgetsBinding.instance.platformDispatcher instead of PlatformDispatcher.instance in findDeviceLocale implementation
    • fix: correctly obfuscate line breaks and single quotes
    Open source →
    Release notes
    • feat: slang edit add respects order in base locale (@adil192)
    • feat: slang edit add works without a specified locale, it will add the string to all locales
    • feat: use WidgetsBinding.instance.platformDispatcher instead of PlatformDispatcher.instance in findDeviceLocale implementation
    • fix: correctly obfuscate line breaks and single quotes
    Open source →
  51. 3.23.0 18 Aug 2023
    Release notes
    • feat: support multiple TranslationProvider at the same time when using multiple packages
    • fix: trailing slash in config does not work with build_runner
    • i18n: Swedish plural resolver improvement

    Contributions

    • fix: Handle negative values properly in Swedish. (#156) @lohnn
    Open source →
    Release notes
    • feat: support multiple TranslationProvider at the same time when using multiple packages
    • fix: trailing slash in config does not work with build_runner
    • i18n: Swedish plural resolver improvement (by @lohnn)
    Open source →
  52. 3.22.0 25 Jul 2023
    Release notes
    • feat: announcing slang_gpt, a new package to generate translations with GPT
    Open source →
    Release notes
    • feat: announcing slang_gpt, a new package to generate translations with GPT
    Open source →
  53. 3.21.0 17 Jul 2023
    Release notes
    • feat: add input directory as comment to generated files
    • fix: migrate away from deprecated WidgetsBinding.instance.window in findDeviceLocale implementation
    • fix: handle empty maps in _missing_translations in yaml format (#152) (by @adil192)
    Open source →
    Release notes
    • feat: add input directory as comment to generated files
    • fix: migrate away from deprecated WidgetsBinding.instance.window in findDeviceLocale implementation
    • fix: handle empty maps in _missing_translations in yaml format (by @adil192)
    Open source →
  54. 3.20.0 09 Jul 2023
    Release notes
    • feat: add slang edit add (short: slang add) to add new translations (#150) (by @adil192)
    Open source →
    Release notes
    • feat: add slang add to add new translations (by @adil192)
    Open source →
  55. 3.19.0 21 Jun 2023
    Release notes
    • feat: add enum value inference (no need to specify enum in the config anymore)
    • feat: add slang edit copy to copy translations
    • feat: namespaces may contain underscores if at least one file of same directory uses locale from directory name
    • DEPRECATED: Use explicit context modifier instead of relying on the config file (see migration guide)
    Open source →
    Release notes
    • feat: add enum value inference (no need to specify enum in the config anymore)
    • feat: add slang edit copy to copy translations
    • feat: namespaces may contain underscores if at least one file of same directory uses locale from directory name
    • DEPRECATED: Use explicit context modifier instead of relying on the config file (see migration guide)
    Open source →
  56. 3.18.1 03 Jun 2023
    Release notes
    • chore: add logo
    Open source →
  57. 3.18.0 01 Jun 2023
    Release notes
    • feat: add slang edit to move or delete translations over all locales
    • fix: avoid infinite loop of symlinks
    Open source →
    Release notes
    • feat: add slang edit to move or delete translations over all locales
    • fix: avoid infinite loop of symlinks
    Open source →
  58. 3.17.0 02 May 2023
    Release notes
    • fix: setLocale does not work when Locale enum is from two packages (by @fzyzcjy)
    • fix: slang outdated should skip missing translations instead of throwing an error
    Open source →
    Release notes
    • fix: setLocale does not work when Locale enum is from two packages (by @fzyzcjy)
    • fix: slang outdated should skip missing translations instead of throwing an error
    Open source →
  59. 3.16.2 24 Apr 2023
    Release notes
    • fix: handle dynamic keys when fallback_strategy: base_locale is used
    Open source →
    Release notes
    • fix: handle dynamic keys when fallback_strategy: base_locale is used
    Open source →
  60. 3.16.1 13 Apr 2023
    Release notes
    • fix: handle interpolation when obfuscation is enabled
    Open source →
    Release notes
    • fix: handle interpolation when obfuscation is enabled
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive