{"id":22831555,"url":"https://github.com/phrase/phrase-flutter-sdk","last_synced_at":"2026-02-13T05:02:19.688Z","repository":{"id":150336931,"uuid":"463488656","full_name":"phrase/phrase-flutter-sdk","owner":"phrase","description":"Phrase Flutter SDK","archived":false,"fork":false,"pushed_at":"2025-07-21T09:34:49.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-09-05T19:13:56.010Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phrase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.txt","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-02-25T10:21:08.000Z","updated_at":"2025-07-21T09:34:52.000Z","dependencies_parsed_at":"2024-12-12T20:33:50.627Z","dependency_job_id":"bc2d69bf-b685-4558-8d2b-3dac3cbabb84","html_url":"https://github.com/phrase/phrase-flutter-sdk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phrase/phrase-flutter-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phrase%2Fphrase-flutter-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phrase%2Fphrase-flutter-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phrase%2Fphrase-flutter-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phrase%2Fphrase-flutter-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phrase","download_url":"https://codeload.github.com/phrase/phrase-flutter-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phrase%2Fphrase-flutter-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29396847,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T04:26:15.637Z","status":"ssl_error","status_checked_at":"2026-02-13T04:16:29.732Z","response_time":78,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-12T20:26:33.522Z","updated_at":"2026-02-13T05:02:19.651Z","avatar_url":"https://github.com/phrase.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Phrase Over the Air SDK for Flutter\n\nPublish your translations faster and simpler than ever before. Stop waiting for the next deployment and start publishing all your translations in real-time directly in Phrase.\n\nHead over to the Phrase Help Center to learn about this feature and how to use it in your apps: https://support.phrase.com/hc/en-us/articles/5804059067804\n\n## Instructions\n\nWith the SDK, the app regularly checks for updated translations and downloads them in the background.\n\nExample [app](https://github.com/phrase/flutter_sdk_example)\n\n### Requirements\n\nThis library depends on 0.18.0 or greater of Flutter's [intl](https://pub.dev/packages/intl) library. Follow [their guide](https://docs.flutter.dev/ui/accessibility-and-internationalization/internationalization) to add localizations support to the app.\n\n### Installation\n\nAdd Phrase to the pubspec.yaml:\n\n\n```yaml\ndependencies:\n  phrase: ^2.5.2\n  ...\n  intl: ^0.19.0\n  flutter_localizations:\n    sdk: flutter\n  ...\n\nflutter:\n  generate: true\n  ...\n```\n\nLike in the `intl` library, code generation is used to process ARB files. Run this command to update:\n```\nflutter pub run phrase\n```\n\nUsing build_runner:\n```\nflutter pub run build_runner watch\n```\n\n### Usage\n\nInitialize Phrase in the `main.dart` file:\n\n```dart\nimport 'package:flutter/material.dart';\nimport 'package:flutter_gen/gen_l10n/app_localizations.dart';\nimport 'package:flutter_gen/gen_l10n/phrase_localizations.dart';\nimport 'package:phrase/phrase.dart';\n\nvoid main() {\n  Phrase.setup(\"[DISTRIBUTION_ID]\", \"[ENVIRONMENT_ID]\");\n  runApp(MyApp());\n}\n\nclass MyApp extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      title: 'Flutter Demo',\n      //..\n      localizationsDelegates: PhraseLocalizations.localizationsDelegates,\n      supportedLocales: PhraseLocalizations.supportedLocales,\n    );\n  }\n}\n```\n\nAccess messages with:\n```dart\nText(AppLocalizations.of(context)!.helloWorld);\n```\n\n### Update behavior\nOTA translations are updated every time the app launches. To disable this:\n```dart\nPhrase.setup(\"[DISTRIBUTION_ID]\", \"[ENVIRONMENT_ID]\", checkForUpdates: false);\n```\n\nTo update manually:\n```dart\nPhrase.updateTranslations(context).then((_) =\u003e print(\"Done!\"));\n```\n\n### Custom app version\nThe SDK uses the app version by default to return a release which matches the release constraints for the min and max version. The app version must use semantic versioning otherwise no translation update will be returned. In case app does not use semantic versioning, the app version can be manually overridden: it is possible to manually override the app version:\n\n```dart\nPhrase.setup(\"[DISTRIBUTION_ID]\", \"[ENVIRONMENT_ID]\", customAppVersion: \"1.2.3\");\n```\n\n### Configure US data center\n\nPhrase US data center is also supported. The US data center can be selected by passing the relevant API hostname parameter in the SDK configuration:\n\n```dart\nPhrase.setup(\"[DISTRIBUTION_ID]\", \"[ENVIRONMENT_ID]\", host: PhraseHost.us);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphrase%2Fphrase-flutter-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphrase%2Fphrase-flutter-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphrase%2Fphrase-flutter-sdk/lists"}