Giter Club home page Giter Club logo

flutter-sdk's People

Contributors

andrii-bodnar avatar flutterod avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

flutter-sdk's Issues

Remove uni_links from the project

The https://pub.dev/packages/uni_links package is almost deprecated - the last update was published 2 years ago. Since it is a transitive dependency in the crowdin-sdk, it causes some issues. E.g. for Android, apps cannot be migrated to Gradle 8.4. Are there any plans to remove this package and replace it with an alternative?

Localization gets stripped when it contains a plural form

Describe the bug
For instance, take the following localization: {rating} ({reviews, plural, =1{1 review} other{{reviews} reviews}}). CrowdinSDK returns this as only {reviews, plural, =1{1 review} other{{reviews} reviews}}.

Examples (how {rating} ({reviews, plural, =1{1 review} other{{reviews} reviews}}) is formatted):

Values Expected Actual
rating: "4.8", reviews: 50 4.8 (50 reviews) 50 reviews
rating: "3.5", reviews: 1 3.5 (1 review) 1 review

To Reproduce

  1. Having the rating value as "4.8" and the reviews value as 48...
  2. Add the following localization key to your Flutter project:
"profileRating": "{rating} ({reviews, plural, =1{1 review} other{{reviews} reviews}})",
"@profileRating": {
  "description": "Profile rating + number of reviews.",
  "placeholders": {
    "rating": {
      "type": "String",
      "example": "4.8"
    },
    "reviews": {
      "type": "int",
      "example": "48",
      "format": "compact"
    }
  }
},
  1. Use this key by passing the rating and reviews variables.
  2. Notice that the localization key is rendered correctly
  3. Translate the localization key in Crowdin, and distribute it via the over-the-air content delivery: {rating} ({reviews, plural, =1{1 review} other{{reviews} reviews}})
  4. Check the rendered result now. It is stripped and only the plural section of the key is rendered.

Environment

  • Crowdin Flutter SDK: 0.3.1
  • Flutter version: 3.13.9
  • Dart version: 3.1.5

Additional context
I don't think any additional info is needed, but let me know if you want something to be clarified.

Select options in Flutter ARB translation languages not working when using CDN

Describe the bug
When using the Flutter ARB file format for translations together with the CDN 'select' translations will not work for the translated languages. They are correctly displayed and formatted in Crowdin itself and work when exporting bundles, but not with the CDN.

To Reproduce
Steps to reproduce the behavior:

  1. Configure the SDK with correct distribution hash and load translations for a specific language.
  2. Load check 'select' translation in the Flutter app itself. E.g.
"roamingChoice": "{choice, select, month{For 1 month} unlimited{Unlimited} deactivate{Deactivate} other {}}",
  "@roamingChoice": {
    "placeholders": {
      "choice": {
        "type": "String"
      }
    }
  }

Expected behavior
Load in the translation select not as a static String.

Environment

  • Crowdin Flutter SDK: 0.5.1
  • Flutter version: 3.16.8
  • Dart version: 3.2.5

Screenshots
image

image

Smartphone (please complete the following information):

  • Device: Pixel 6
  • OS: Android 14

Timestamp issue? API issue?

Hi and thanks for the Flutter SDK,

I have an issue with it, knowing that I'm not using the real-time feature.
So basically, it's a call to https://distributions.crowdin.net/{distribution_hash}/content/{path_to_file}.

However, even if my distribution is updated, I still receive the old one.
If instead, I call https://distributions.crowdin.net/{distribution_hash}/content/{path_to_file}?timestamp={timestamp_from_manifest}, it's now OK.

Is-it an API issue or is there a specific reason you don't use the timestamp parameter?

The `OrganizationName` is not being passed to the `getMetadata` method

Method:

Future<Map<String, dynamic>?> getMetadata({

Place in code:

_metadata = await _getMetadata(credentials: credentials);

Config:


If the developer sets the OrganizationName in the config, we should also pass it to the getMetadata method to properly resolve the metadata endpoint.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.