mirror of
https://github.com/ReVanced/revanced-manager.git
synced 2024-11-10 01:01:56 +01:00
feat: add i18n
This commit is contained in:
parent
ab9b91b975
commit
89b642772c
15 changed files with 259 additions and 123 deletions
40
assets/i18n/en.json
Normal file
40
assets/i18n/en.json
Normal file
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"main": {
|
||||
"dashboardTab": "Dashboard",
|
||||
"patcherTab": "Patcher"
|
||||
},
|
||||
"homeView": {
|
||||
"widgetTitle": "Dashboard",
|
||||
"updatesSubtitle": "ReVanced Updates",
|
||||
"patchedSubtitle": "Patched Applications"
|
||||
},
|
||||
"availableUpdatesCard": {
|
||||
"widgetTitle": "Updates Available",
|
||||
"patchButton": "Patch All",
|
||||
"changelogLabel": "Changelog"
|
||||
},
|
||||
"applicationItem": {
|
||||
"patchButton": "Patch"
|
||||
},
|
||||
"installedAppsCard": {
|
||||
"widgetTitle": "Total Installed",
|
||||
"changelogLabel": "Changelog"
|
||||
},
|
||||
"latestCommitCard": {
|
||||
"loadingLabel": "Loading",
|
||||
"patcherLabel": "Patcher: ",
|
||||
"managerLabel": "Manager: ",
|
||||
"updateButton": "Update Manager"
|
||||
},
|
||||
"patcherView": {
|
||||
"widgetTitle": "Patcher"
|
||||
},
|
||||
"appSelectorCard": {
|
||||
"widgetTitle": "Select application",
|
||||
"widgetSubtitle": "No application selected."
|
||||
},
|
||||
"patchSelectorCard": {
|
||||
"widgetTitle": "Select patches",
|
||||
"widgetSubtitle": "Select an application first."
|
||||
}
|
||||
}
|
|
@ -11,6 +11,6 @@ const pink40 = Color(0xFF7D5260);
|
|||
final interTextStyle = GoogleFonts.inter();
|
||||
final robotoTextStyle = GoogleFonts.roboto();
|
||||
|
||||
const ghOrg = "revanced";
|
||||
const patchesRepo = "revanced-patches";
|
||||
const integrationsRepo = "revanced-integrations";
|
||||
const ghOrg = 'revanced';
|
||||
const patchesRepo = 'revanced-patches';
|
||||
const integrationsRepo = 'revanced-integrations';
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_i18n/flutter_i18n.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:revanced_manager/app/app.locator.dart';
|
||||
import 'package:revanced_manager/app/app.router.dart';
|
||||
import 'package:revanced_manager/main_viewmodel.dart';
|
||||
|
@ -27,6 +29,16 @@ class MyApp extends StatelessWidget {
|
|||
navigatorKey: StackedService.navigatorKey,
|
||||
onGenerateRoute: StackedRouter().onGenerateRoute,
|
||||
home: const Navigation(),
|
||||
localizationsDelegates: [
|
||||
FlutterI18nDelegate(
|
||||
translationLoader: FileTranslationLoader(
|
||||
fallbackFile: 'en',
|
||||
basePath: 'assets/i18n',
|
||||
),
|
||||
),
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -43,14 +55,20 @@ class Navigation extends StatelessWidget {
|
|||
bottomNavigationBar: NavigationBar(
|
||||
onDestinationSelected: model.setIndex,
|
||||
selectedIndex: model.currentIndex,
|
||||
destinations: const <Widget>[
|
||||
destinations: <Widget>[
|
||||
NavigationDestination(
|
||||
icon: Icon(Icons.dashboard),
|
||||
label: "Dashboard",
|
||||
icon: const Icon(Icons.dashboard),
|
||||
label: FlutterI18n.translate(
|
||||
context,
|
||||
'main.dashboardTab',
|
||||
),
|
||||
),
|
||||
NavigationDestination(
|
||||
icon: Icon(Icons.build),
|
||||
label: "Patcher",
|
||||
icon: const Icon(Icons.build),
|
||||
label: FlutterI18n.translate(
|
||||
context,
|
||||
'main.patcherTab',
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
|
@ -6,8 +6,9 @@ class GithubAPI {
|
|||
var github = GitHub();
|
||||
|
||||
Future<String?> latestRelease(String org, repoName) async {
|
||||
var latestRelease = await github.repositories
|
||||
.getLatestRelease(RepositorySlug(org, repoName));
|
||||
var latestRelease = await github.repositories.getLatestRelease(
|
||||
RepositorySlug(org, repoName),
|
||||
);
|
||||
var dlurl = latestRelease.assets
|
||||
?.firstWhere((asset) =>
|
||||
asset.name != null &&
|
||||
|
@ -18,32 +19,10 @@ class GithubAPI {
|
|||
return dlurl;
|
||||
}
|
||||
|
||||
Future latestCommitTime(String org, repoName) async {
|
||||
var repo =
|
||||
await github.repositories.getRepository(RepositorySlug(org, repoName));
|
||||
|
||||
var commitTime = repo.pushedAt?.difference(
|
||||
DateTime.now().toLocal(),
|
||||
Future<DateTime?> latestCommitTime(String org, repoName) async {
|
||||
var repo = await github.repositories.getRepository(
|
||||
RepositorySlug(org, repoName),
|
||||
);
|
||||
|
||||
final hours = commitTime!.inHours.abs();
|
||||
|
||||
if (hours > 24) {
|
||||
var days = (commitTime.inDays).abs().toString();
|
||||
return "$days days";
|
||||
} else if (hours > 1 && hours < 24) {
|
||||
var hours = (commitTime.inHours).abs().toString();
|
||||
return "$hours hours";
|
||||
} else {
|
||||
var minutes = (commitTime.inMinutes).abs().toString();
|
||||
return "$minutes mins";
|
||||
}
|
||||
}
|
||||
|
||||
Future contributors(String org, repoName) async {
|
||||
var contributors =
|
||||
github.repositories.listContributors(RepositorySlug(org, repoName));
|
||||
contributors.forEach((contributor) {});
|
||||
return contributors;
|
||||
return repo.pushedAt;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ class ManagerAPI {
|
|||
Future<String?> getPath() async {
|
||||
final path = await p.getApplicationSupportDirectory();
|
||||
final workDir = Directory('${path.path}/revanced').createSync();
|
||||
final workDirPath = "${path.path}/revanced";
|
||||
final workDirPath = '${path.path}/revanced';
|
||||
return workDirPath;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_i18n/flutter_i18n.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:revanced_manager/ui/widgets/available_updates_card.dart';
|
||||
import 'package:revanced_manager/ui/widgets/installed_apps_card.dart';
|
||||
|
@ -33,26 +34,35 @@ class HomeView extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
const SizedBox(height: 60),
|
||||
Text(
|
||||
"Dashboard",
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 28,
|
||||
I18nText(
|
||||
'homeView.widgetTitle',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 28,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 23),
|
||||
Text(
|
||||
"ReVanced Updates",
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 18,
|
||||
I18nText(
|
||||
'homeView.updatesSubtitle',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 18,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
const LatestCommitCard(),
|
||||
const SizedBox(height: 14),
|
||||
Text(
|
||||
"Patched Applications",
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 18,
|
||||
I18nText(
|
||||
'homeView.patchedSubtitle',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 18,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 14),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_i18n/flutter_i18n.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:revanced_manager/ui/views/app_selector/app_selector_view.dart';
|
||||
import 'package:revanced_manager/ui/widgets/app_selector_card.dart';
|
||||
|
@ -29,11 +30,14 @@ class PatcherView extends StatelessWidget {
|
|||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
"Patcher",
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 28,
|
||||
fontWeight: FontWeight.w500,
|
||||
I18nText(
|
||||
'patcherView.widgetTitle',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 28,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 23),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_i18n/flutter_i18n.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:revanced_manager/constants.dart';
|
||||
|
||||
|
@ -23,17 +24,23 @@ class AppSelectorCard extends StatelessWidget {
|
|||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Select application",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w500,
|
||||
I18nText(
|
||||
'appSelectorCard.widgetTitle',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"No application selected",
|
||||
style: robotoTextStyle,
|
||||
I18nText(
|
||||
'appSelectorCard.widgetSubtitle',
|
||||
child: Text(
|
||||
'',
|
||||
style: robotoTextStyle,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_i18n/flutter_i18n.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:revanced_manager/constants.dart';
|
||||
|
@ -20,7 +21,7 @@ class ApplicationItem extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isSVG = asset.endsWith(".svg");
|
||||
final isSVG = asset.endsWith('.svg');
|
||||
return ListTile(
|
||||
horizontalTitleGap: 12.0,
|
||||
leading: isSVG
|
||||
|
@ -45,7 +46,10 @@ class ApplicationItem extends StatelessWidget {
|
|||
style: robotoTextStyle,
|
||||
),
|
||||
trailing: PatchTextButton(
|
||||
text: "Patch",
|
||||
text: FlutterI18n.translate(
|
||||
context,
|
||||
'applicationItem.patchButton',
|
||||
),
|
||||
onPressed: onPressed,
|
||||
),
|
||||
);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_i18n/flutter_i18n.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:revanced_manager/ui/widgets/application_item.dart';
|
||||
import 'package:revanced_manager/ui/widgets/patch_text_button.dart';
|
||||
|
@ -21,51 +22,60 @@ class AvailableUpdatesCard extends StatelessWidget {
|
|||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"Updates Available(2)",
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 16,
|
||||
color: const Color(0xff7792BA),
|
||||
fontWeight: FontWeight.w500,
|
||||
I18nText(
|
||||
'availableUpdatesCard.widgetTitle',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 16,
|
||||
color: const Color(0xff7792BA),
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
PatchTextButton(
|
||||
text: "Patch all",
|
||||
text: FlutterI18n.translate(
|
||||
context,
|
||||
'availableUpdatesCard.patchButton',
|
||||
),
|
||||
onPressed: () {},
|
||||
backgroundColor: const Color(0xff7792BA),
|
||||
),
|
||||
],
|
||||
),
|
||||
ApplicationItem(
|
||||
asset: "assets/images/revanced.svg",
|
||||
name: "ReVanced",
|
||||
releaseDate: "2 days ago",
|
||||
asset: 'assets/images/revanced.svg',
|
||||
name: 'ReVanced',
|
||||
releaseDate: '2 days ago',
|
||||
onPressed: () {},
|
||||
),
|
||||
ApplicationItem(
|
||||
asset: "assets/images/reddit.png",
|
||||
name: "ReReddit",
|
||||
releaseDate: "Released 1 month ago",
|
||||
asset: 'assets/images/reddit.png',
|
||||
name: 'ReReddit',
|
||||
releaseDate: 'Released 1 month ago',
|
||||
onPressed: () {},
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
"Changelog",
|
||||
style: GoogleFonts.roboto(
|
||||
color: const Color(0xff8691A0),
|
||||
fontWeight: FontWeight.w700,
|
||||
I18nText(
|
||||
'availableUpdatesCard.changelogLabel',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.roboto(
|
||||
color: const Color(0xff8691A0),
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
"fix: we made the player even worse (you love)",
|
||||
'fix: we made the player even worse (you love)',
|
||||
style: GoogleFonts.roboto(
|
||||
color: const Color(0xff8691A0),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
"chore: guhhughghu",
|
||||
'chore: guhhughghu',
|
||||
style: GoogleFonts.roboto(
|
||||
color: const Color(0xff8691A0),
|
||||
),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_i18n/flutter_i18n.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:revanced_manager/ui/widgets/application_item.dart';
|
||||
|
||||
|
@ -17,37 +18,43 @@ class InstalledAppsCard extends StatelessWidget {
|
|||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Total Installed(3)",
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 16,
|
||||
color: const Color(0xff7792BA),
|
||||
fontWeight: FontWeight.w500,
|
||||
I18nText(
|
||||
'installedAppsCard.widgetTitle',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 16,
|
||||
color: const Color(0xff7792BA),
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
ApplicationItem(
|
||||
asset: "assets/images/revanced.svg",
|
||||
name: "ReVanced",
|
||||
releaseDate: "2 days ago",
|
||||
asset: 'assets/images/revanced.svg',
|
||||
name: 'ReVanced',
|
||||
releaseDate: '2 days ago',
|
||||
onPressed: () {},
|
||||
),
|
||||
Text(
|
||||
"Changelog",
|
||||
style: GoogleFonts.roboto(
|
||||
color: const Color(0xff8691A0),
|
||||
fontWeight: FontWeight.w700,
|
||||
I18nText(
|
||||
'installedAppsCard.changelogLabel',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.roboto(
|
||||
color: const Color(0xff8691A0),
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
"fix: we made the player even worse (you love)",
|
||||
'fix: we made the player even worse (you love)',
|
||||
style: GoogleFonts.roboto(
|
||||
color: const Color(0xff8691A0),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
"chore: guhhughghu",
|
||||
'chore: guhhughghu',
|
||||
style: GoogleFonts.roboto(
|
||||
color: const Color(0xff8691A0),
|
||||
),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_i18n/flutter_i18n.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:revanced_manager/services/github_api.dart';
|
||||
import 'package:revanced_manager/constants.dart';
|
||||
|
@ -13,14 +14,14 @@ class LatestCommitCard extends StatefulWidget {
|
|||
|
||||
class _LatestCommitCardState extends State<LatestCommitCard> {
|
||||
GithubAPI githubAPI = GithubAPI();
|
||||
String lastPatcherCommit = "Loading...";
|
||||
String lastManagerCommit = "Loading...";
|
||||
String lastPatcherCommit = 'Loading...';
|
||||
String lastManagerCommit = 'Loading...';
|
||||
|
||||
void latestCommit() async {
|
||||
// lastPatcherCommit =
|
||||
// await githubAPI.latestCommitTime("revanced", "revanced-patcher");
|
||||
// await githubAPI.latestCommitTime('revanced', 'revanced-patcher');
|
||||
// lastManagerCommit =
|
||||
// await githubAPI.latestCommitTime("revanced", "revanced-manager");
|
||||
// await githubAPI.latestCommitTime('revanced', 'revanced-manager');
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -47,28 +48,34 @@ class _LatestCommitCardState extends State<LatestCommitCard> {
|
|||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
"Patcher: ",
|
||||
style: GoogleFonts.roboto(
|
||||
fontWeight: FontWeight.w700,
|
||||
I18nText(
|
||||
'latestCommitCard.patcherLabel',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.roboto(
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"$lastPatcherCommit ago",
|
||||
'$lastPatcherCommit ago',
|
||||
style: robotoTextStyle,
|
||||
)
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
"Manager: ",
|
||||
style: GoogleFonts.roboto(
|
||||
fontWeight: FontWeight.w700,
|
||||
I18nText(
|
||||
'latestCommitCard.managerLabel',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.roboto(
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"$lastManagerCommit ago",
|
||||
'$lastManagerCommit ago',
|
||||
style: robotoTextStyle,
|
||||
)
|
||||
],
|
||||
|
@ -76,7 +83,10 @@ class _LatestCommitCardState extends State<LatestCommitCard> {
|
|||
],
|
||||
),
|
||||
PatchTextButton(
|
||||
text: "Update Manager",
|
||||
text: FlutterI18n.translate(
|
||||
context,
|
||||
'latestCommitCard.updateButton',
|
||||
),
|
||||
onPressed: () {},
|
||||
backgroundColor: const Color(0xff7792BA),
|
||||
),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_i18n/flutter_i18n.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:revanced_manager/constants.dart';
|
||||
|
||||
|
@ -23,17 +24,23 @@ class PatchSelectorCard extends StatelessWidget {
|
|||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Select patches",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w500,
|
||||
I18nText(
|
||||
'patchSelectorCard.widgetTitle',
|
||||
child: Text(
|
||||
'',
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"Select an application first.",
|
||||
style: robotoTextStyle,
|
||||
I18nText(
|
||||
'patchSelectorCard.widgetSubtitle',
|
||||
child: Text(
|
||||
'',
|
||||
style: robotoTextStyle,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
38
pubspec.lock
38
pubspec.lock
|
@ -216,6 +216,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.3.0"
|
||||
flutter_i18n:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_i18n
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.32.4"
|
||||
flutter_lints:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
|
@ -223,6 +230,11 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
flutter_localizations:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_svg:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -235,6 +247,11 @@ packages:
|
|||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_web_plugins:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
frontend_server_client:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -326,6 +343,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.1"
|
||||
intl:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: intl
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.17.0"
|
||||
io:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -702,6 +726,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
toml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: toml
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.13.1"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -765,6 +796,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.1.0"
|
||||
xml2json:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xml2json
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.3.4"
|
||||
yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
@ -16,6 +16,7 @@ dependencies:
|
|||
flutter:
|
||||
sdk: flutter
|
||||
flutter_cache_manager: ^3.3.0
|
||||
flutter_i18n: ^0.32.4
|
||||
flutter_svg: ^1.1.1+1
|
||||
get_it: ^7.2.0
|
||||
github: ^9.4.0
|
||||
|
@ -41,3 +42,4 @@ flutter:
|
|||
uses-material-design: true
|
||||
assets:
|
||||
- assets/images/
|
||||
- assets/i18n/
|
||||
|
|
Loading…
Reference in a new issue