Skip to content

Commit e3a8051

Browse files
committed
Merge feat/setting_page+adapter_telegrambot: resolve localization and plugin conflicts, update pubspec and lock files
2 parents 71c6e40 + 992ccdf commit e3a8051

13 files changed

Lines changed: 189 additions & 107 deletions

lib/l10n/app_en.arb

Lines changed: 0 additions & 26 deletions
This file was deleted.

lib/l10n/app_ru.arb

Lines changed: 0 additions & 26 deletions
This file was deleted.

lib/l10n/app_th.arb

Lines changed: 0 additions & 26 deletions
This file was deleted.

lib/l10n/app_zh.arb

Lines changed: 0 additions & 26 deletions
This file was deleted.

lib/main.dart

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,33 @@
11
import 'package:flutter/material.dart';
2+
<<<<<<< HEAD
23
import 'package:flutter_localizations/flutter_localizations.dart';
34
import 'package:vpn_client/l10n/app_localizations.dart';
5+
=======
6+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
47
import 'package:provider/provider.dart';
58
import 'package:vpn_client/pages/apps/apps_page.dart';
9+
import 'dart:ui' as ui;
610
import 'package:vpn_client/pages/main/main_page.dart';
711
import 'package:vpn_client/pages/settings/setting_page.dart';
812
import 'package:vpn_client/pages/servers/servers_page.dart';
913
import 'package:vpn_client/theme_provider.dart';
14+
<<<<<<< HEAD
15+
=======
16+
import 'package:flutter_localizations/flutter_localizations.dart';
17+
import 'package:vpn_client/vpn_state.dart';
18+
import 'package:vpn_client/localization_service.dart';
19+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
1020

1121
import 'design/colors.dart';
1222
import 'nav_bar.dart';
1323

14-
void main() {
24+
void main() async {
25+
WidgetsFlutterBinding.ensureInitialized();
26+
27+
Locale userLocale =
28+
ui.PlatformDispatcher.instance.locale; // <-- Get the system locale
29+
await LocalizationService.load(userLocale);
30+
1531
runApp(
1632
ChangeNotifierProvider(create: (_) => ThemeProvider(), child: const App()),
1733
);
@@ -25,13 +41,19 @@ class App extends StatelessWidget {
2541
final themeProvider = Provider.of<ThemeProvider>(context);
2642
final Locale? manualLocale = null;
2743
return MaterialApp(
44+
localizationsDelegates: const [
45+
GlobalMaterialLocalizations.delegate,
46+
GlobalWidgetsLocalizations.delegate,
47+
GlobalCupertinoLocalizations.delegate,
48+
],
2849
debugShowCheckedModeBanner: false,
2950
title: 'VPN Client',
3051
theme: lightTheme,
3152
darkTheme: darkTheme,
3253
locale: manualLocale,
33-
localeResolutionCallback: (locale, supportedLocales) {
54+
localeResolutionCallback: (locale, _) {
3455
if (locale == null) return const Locale('en');
56+
<<<<<<< HEAD
3557
for (var supportedLocale in supportedLocales) {
3658
if (supportedLocale.languageCode == locale.languageCode &&
3759
(supportedLocale.countryCode == null ||
@@ -43,11 +65,19 @@ class App extends StatelessWidget {
4365
return supportedLocales.contains(const Locale('zh'))
4466
? const Locale('zh')
4567
: const Locale('en');
68+
=======
69+
70+
// Check for exact match
71+
final supported = ['en', 'ru', 'th', 'zh'];
72+
if (supported.contains(locale.languageCode)) {
73+
return Locale(locale.languageCode);
74+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
4675
}
4776
return const Locale('en');
4877
},
4978
themeMode: themeProvider.themeMode,
5079
home: const MainScreen(),
80+
<<<<<<< HEAD
5181
localizationsDelegates: const [
5282
AppLocalizations.delegate,
5383
GlobalMaterialLocalizations.delegate,
@@ -60,6 +90,8 @@ class App extends StatelessWidget {
6090
Locale('th'),
6191
Locale('zh'),
6292
],
93+
=======
94+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
6395
);
6496
}
6597
}

lib/pages/apps/apps_page.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import 'package:flutter/material.dart';
22
import 'package:vpn_client/pages/apps/apps_list.dart';
33
import 'package:vpn_client/search_dialog.dart';
4+
<<<<<<< HEAD
45
import 'package:vpn_client/l10n/app_localizations.dart';
6+
=======
7+
import 'package:vpn_client/localization_service.dart';
8+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
59

610
class AppsPage extends StatefulWidget {
711
const AppsPage({super.key});

lib/pages/main/location_widget.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_svg/svg.dart';
3+
<<<<<<< HEAD
34
import 'package:vpn_client/l10n/app_localizations.dart';
5+
=======
6+
import 'package:vpn_client/localization_service.dart';
7+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
48

59
class LocationWidget extends StatelessWidget {
610
final Map<String, dynamic>? selectedServer;
@@ -27,7 +31,11 @@ class LocationWidget extends StatelessWidget {
2731
crossAxisAlignment: CrossAxisAlignment.start,
2832
children: [
2933
Text(
34+
<<<<<<< HEAD
3035
AppLocalizations.of(context).your_location,
36+
=======
37+
LocalizationService.to('your_location'),
38+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
3139
style: TextStyle(
3240
fontSize: 14,
3341
fontWeight: FontWeight.w400,

lib/pages/main/main_btn.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ class MainBtnState extends State<MainBtn> with SingleTickerProviderStateMixin {
8686
ConnectionStatus.disconnecting: LocalizationService.to('disconnecting'),
8787
ConnectionStatus.connecting: LocalizationService.to('connecting'),
8888
}[vpnState.connectionStatus]!;
89+
<<<<<<< HEAD
8990
}
9091

9192
void startTimer() {
@@ -117,6 +118,8 @@ class MainBtnState extends State<MainBtn> with SingleTickerProviderStateMixin {
117118
case VpnConnectionState.disconnecting:
118119
return connectionStatusDisconnecting;
119120
}
121+
=======
122+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
120123
}
121124

122125
Future<void> _toggleConnection(BuildContext context) async {
@@ -218,7 +221,11 @@ class MainBtnState extends State<MainBtn> with SingleTickerProviderStateMixin {
218221
),
219222
const SizedBox(height: 20),
220223
Text(
224+
<<<<<<< HEAD
221225
currentStatusText,
226+
=======
227+
connectionStatusText(context),
228+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
222229
style: TextStyle(
223230
fontSize: 16,
224231
fontWeight: FontWeight.w500,

lib/pages/main/main_page.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ import 'dart:convert';
44
import 'package:vpn_client/pages/main/main_btn.dart';
55
import 'package:vpn_client/pages/main/location_widget.dart';
66
import 'package:vpn_client/pages/main/stat_bar.dart';
7+
<<<<<<< HEAD
78
import 'package:vpn_client/l10n/app_localizations.dart';
9+
=======
10+
import 'package:vpn_client/localization_service.dart';
11+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
812

913
class MainPage extends StatefulWidget {
1014
const MainPage({super.key});
@@ -55,7 +59,11 @@ class MainPageState extends State<MainPage> {
5559
Widget build(BuildContext context) {
5660
return Scaffold(
5761
appBar: AppBar(
62+
<<<<<<< HEAD
5863
title: Text(AppLocalizations.of(context).appName),
64+
=======
65+
title: Text(LocalizationService.to('app_name')),
66+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
5967
centerTitle: true,
6068
titleTextStyle: TextStyle(
6169
color: Theme.of(context).colorScheme.primary,

lib/pages/servers/servers_list.dart

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import 'package:flutter/material.dart';
22
import 'package:shared_preferences/shared_preferences.dart';
33
import 'package:vpn_client/pages/servers/servers_list_item.dart';
4+
<<<<<<< HEAD
45
import 'package:vpn_client/l10n/app_localizations.dart';
6+
=======
7+
import 'package:vpn_client/localization_service.dart';
8+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
59
import 'dart:convert';
610
import 'package:vpn_client/core/constants/storage_keys.dart';
711

@@ -86,25 +90,42 @@ class ServersListState extends State<ServersList> {
8690
List<Map<String, dynamic>> serversList = [
8791
{
8892
'icon': 'assets/images/flags/auto.svg',
93+
<<<<<<< HEAD
8994
'text': localizations.auto_select,
9095
'ping': localizations.fastest,
96+
=======
97+
'text': LocalizationService.to('auto_select'),
98+
'ping': LocalizationService.to('fastest'),
99+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
91100
'isActive': true,
92101
},
93102
{
94103
'icon': 'assets/images/flags/Kazahstan.svg',
104+
<<<<<<< HEAD
95105
'text': localizations.kazakhstan,
106+
=======
107+
'text': LocalizationService.to('kazakhstan'),
108+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
96109
'ping': '48',
97110
'isActive': false,
98111
},
99112
{
100113
'icon': 'assets/images/flags/Turkey.svg',
114+
<<<<<<< HEAD
101115
'text': localizations.turkey,
116+
=======
117+
'text': LocalizationService.to('turkey'),
118+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
102119
'ping': '142',
103120
'isActive': false,
104121
},
105122
{
106123
'icon': 'assets/images/flags/Poland.svg',
124+
<<<<<<< HEAD
107125
'text': localizations.poland,
126+
=======
127+
'text': LocalizationService.to('poland'),
128+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
108129
'ping': '298',
109130
'isActive': false,
110131
},
@@ -221,11 +242,16 @@ class ServersListState extends State<ServersList> {
221242
bottom: 5,
222243
), // Adicionado espaçamento
223244
child: Text(
245+
<<<<<<< HEAD
224246
AppLocalizations.of(context)!.selected_server,
225247
style: TextStyle(
226248
color: Theme.of(context).colorScheme.secondary,
227249
fontSize: 14, // Consistência de tamanho
228250
),
251+
=======
252+
LocalizationService.to('selected_server'),
253+
style: TextStyle(color: Colors.grey),
254+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
229255
),
230256
),
231257
...activeServers.map((server) {
@@ -246,11 +272,16 @@ class ServersListState extends State<ServersList> {
246272
bottom: 5,
247273
), // Adicionado espaçamento
248274
child: Text(
275+
<<<<<<< HEAD
249276
AppLocalizations.of(context)!.all_servers,
250277
style: TextStyle(
251278
color: Theme.of(context).colorScheme.secondary,
252279
fontSize: 14, // Consistência de tamanho
253280
),
281+
=======
282+
LocalizationService.to('all_servers'),
283+
style: TextStyle(color: Colors.grey),
284+
>>>>>>> origin/feat/setting_page+adapter_telegrambot
254285
),
255286
),
256287
...inactiveServers.map((server) {

0 commit comments

Comments
 (0)