feat: Allow changing languages (#1488)

Co-authored-by: validcube <pun.butrach@gmail.com>
This commit is contained in:
Ushie
2024-02-12 02:22:25 +03:00
committed by GitHub
parent c498cff096
commit f82c439b26
64 changed files with 1302 additions and 1488 deletions

View File

@ -1,5 +1,5 @@
import 'package:flutter/material.dart' hide SearchBar;
import 'package:flutter_i18n/flutter_i18n.dart';
import 'package:revanced_manager/gen/strings.g.dart';
import 'package:revanced_manager/ui/views/app_selector/app_selector_viewmodel.dart';
import 'package:revanced_manager/ui/widgets/appSelectorView/app_skeleton_loader.dart';
import 'package:revanced_manager/ui/widgets/appSelectorView/installed_app_item.dart';
@ -25,7 +25,7 @@ class _AppSelectorViewState extends State<AppSelectorView> {
viewModelBuilder: () => AppSelectorViewModel(),
builder: (context, model, child) => Scaffold(
floatingActionButton: HapticFloatingActionButtonExtended(
label: I18nText('appSelectorView.storageButton'),
label: Text(t.appSelectorView.storageButton),
icon: const Icon(Icons.sd_storage),
onPressed: () {
model.selectAppFromStorage(context);
@ -36,8 +36,8 @@ class _AppSelectorViewState extends State<AppSelectorView> {
SliverAppBar(
pinned: true,
floating: true,
title: I18nText(
'appSelectorView.viewTitle',
title: Text(
t.appSelectorView.viewTitle,
),
titleTextStyle: TextStyle(
fontSize: 22.0,
@ -58,10 +58,7 @@ class _AppSelectorViewState extends State<AppSelectorView> {
horizontal: 12.0,
),
child: SearchBar(
hintText: FlutterI18n.translate(
context,
'appSelectorView.searchBarHint',
),
hintText: t.appSelectorView.searchBarHint,
onQueryChanged: (searchQuery) {
setState(() {
_query = searchQuery;
@ -74,14 +71,10 @@ class _AppSelectorViewState extends State<AppSelectorView> {
SliverToBoxAdapter(
child: model.noApps
? Center(
child: I18nText(
'appSelectorCard.noAppsLabel',
child: Text(
'',
style: TextStyle(
color:
Theme.of(context).textTheme.titleLarge!.color,
),
child: Text(
t.appSelectorCard.noAppsLabel,
style: TextStyle(
color: Theme.of(context).textTheme.titleLarge!.color,
),
),
)

View File

@ -5,8 +5,8 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_file_dialog/flutter_file_dialog.dart';
import 'package:flutter_i18n/flutter_i18n.dart';
import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/gen/strings.g.dart';
import 'package:revanced_manager/models/patch.dart';
import 'package:revanced_manager/models/patched_application.dart';
import 'package:revanced_manager/services/manager_api.dart';
@ -168,25 +168,22 @@ class AppSelectorViewModel extends BaseViewModel {
return showDialog(
context: context,
builder: (context) => AlertDialog(
title: I18nText('warning'),
content: I18nText(
'appSelectorView.requireSuggestedAppVersionDialogText',
translationParams: {
'suggested': suggestedVersion,
'selected': selectedVersion,
},
child: const Text(
'',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
),
title: Text(t.warning),
content: Text(
t.appSelectorView.requireSuggestedAppVersionDialogText(
suggested: suggestedVersion,
selected: selectedVersion,
),
style: const TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
),
),
actions: [
FilledButton(
onPressed: () => Navigator.of(context).pop(),
child: I18nText('okButton'),
child: Text(t.okButton),
),
],
),
@ -208,26 +205,20 @@ class AppSelectorViewModel extends BaseViewModel {
color: Theme.of(innerContext).colorScheme.primary,
),
const SizedBox(height: 20),
I18nText(
'appSelectorView.featureNotAvailable',
child: const Text(
'',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
wordSpacing: 1.5,
),
Text(
t.appSelectorView.featureNotAvailable,
textAlign: TextAlign.center,
style: const TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
wordSpacing: 1.5,
),
),
const SizedBox(height: 20),
I18nText(
'appSelectorView.featureNotAvailableText',
child: const Text(
'',
style: TextStyle(
fontSize: 14,
),
Text(
t.appSelectorView.featureNotAvailableText,
style: const TextStyle(
fontSize: 14,
),
),
const SizedBox(height: 30),
@ -241,7 +232,7 @@ class AppSelectorViewModel extends BaseViewModel {
children: [
const Icon(Icons.sd_card),
const SizedBox(width: 10),
I18nText('appSelectorView.selectFromStorageButton'),
Text(t.appSelectorView.selectFromStorageButton),
],
),
),
@ -254,7 +245,7 @@ class AppSelectorViewModel extends BaseViewModel {
mainAxisAlignment: MainAxisAlignment.center,
children: [
const SizedBox(width: 10),
I18nText('cancelButton'),
Text(t.cancelButton),
],
),
),
@ -295,7 +286,7 @@ class AppSelectorViewModel extends BaseViewModel {
if (kDebugMode) {
print(e);
}
_toast.showBottom('appSelectorView.errorMessage');
_toast.showBottom(t.appSelectorView.errorMessage);
}
}
@ -323,5 +314,5 @@ class AppSelectorViewModel extends BaseViewModel {
}
void showDownloadToast() =>
_toast.showBottom('appSelectorView.downloadToast');
_toast.showBottom(t.appSelectorView.downloadToast);
}