Skip to content

Commit 69ed529

Browse files
committed
Multi Lang working
1 parent 0942b83 commit 69ed529

File tree

7 files changed

+107
-22
lines changed

7 files changed

+107
-22
lines changed

ios/Podfile.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ PODS:
5454
- path_provider_foundation (0.0.1):
5555
- Flutter
5656
- FlutterMacOS
57-
- permission_handler_apple (9.1.1):
57+
- permission_handler_apple (9.0.4):
5858
- Flutter
5959
- ReachabilitySwift (5.0.0)
6060
- SDWebImage (5.19.0):
@@ -134,8 +134,8 @@ SPEC CHECKSUMS:
134134
flutter_native_timezone: 5f05b2de06c9776b4cc70e1839f03de178394d22
135135
home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57
136136
package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85
137-
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
138-
permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6
137+
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
138+
permission_handler_apple: 44366e37eaf29454a1e7b1b7d736c2cceaeb17ce
139139
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
140140
SDWebImage: 981fd7e860af070920f249fd092420006014c3eb
141141
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
@@ -144,4 +144,4 @@ SPEC CHECKSUMS:
144144

145145
PODFILE CHECKSUM: c4c93c5f6502fe2754f48404d3594bf779584011
146146

147-
COCOAPODS: 1.15.2
147+
COCOAPODS: 1.14.3

lib/app/modules/settings/controllers/settings_controller.dart

+11-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import 'package:get/get_rx/get_rx.dart';
88
import 'package:google_fonts/google_fonts.dart';
99

1010
import 'package:shared_preferences/shared_preferences.dart';
11-
import 'package:taskwarrior/app/utils/constants/supported_language.dart';
11+
import 'package:taskwarrior/app/modules/home/controllers/home_controller.dart';
12+
import 'package:taskwarrior/app/utils/language/sentences.dart';
13+
import 'package:taskwarrior/app/utils/language/supported_language.dart';
1214
import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart';
1315
import 'package:taskwarrior/app/utils/constants/utilites.dart';
1416

@@ -26,6 +28,8 @@ class SettingsController extends GetxController {
2628
void setSelectedLanguage(SupportedLanguage language) async {
2729
await SelectedLanguage.saveSelectedLanguage(language);
2830
selectedLanguage.value = language;
31+
AppSettings.selectedLanguage = language;
32+
Get.find<HomeController>().update();
2933
}
3034

3135
Future<String> getBaseDirectory() async {
@@ -160,6 +164,11 @@ class SettingsController extends GetxController {
160164
RxBool isSyncOnTaskCreateActivel = false.obs;
161165
RxBool delaytask = false.obs;
162166
RxBool change24hr = false.obs;
167+
RxBool isDarkModeOn = false.obs;
168+
169+
void initDarkMode() {
170+
isDarkModeOn.value = AppSettings.isDarkMode;
171+
}
163172

164173
@override
165174
void onInit() async {
@@ -169,6 +178,7 @@ class SettingsController extends GetxController {
169178
prefs.getBool('sync-OnTaskCreate') ?? false;
170179
delaytask.value = prefs.getBool('delaytask') ?? false;
171180
change24hr.value = prefs.getBool('24hourformate') ?? false;
181+
initDarkMode();
172182
super.onInit();
173183
}
174184
}

lib/app/modules/settings/views/settings_page_select_the_language_trailing.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:flutter/material.dart';
22
import 'package:get/get.dart';
33
import 'package:taskwarrior/app/modules/settings/controllers/settings_controller.dart';
4-
import 'package:taskwarrior/app/utils/constants/supported_language.dart';
4+
import 'package:taskwarrior/app/utils/language/supported_language.dart';
55

66
class SettingsPageSelectTheLanguageTrailing extends StatelessWidget {
77
final SettingsController controller;

lib/app/modules/settings/views/settings_view.dart

+24-15
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ import 'package:flutter/material.dart';
55
import 'package:get/get.dart';
66
import 'package:google_fonts/google_fonts.dart';
77
import 'package:taskwarrior/app/modules/settings/views/settings_page_body.dart';
8+
import 'package:taskwarrior/app/routes/app_pages.dart';
89
import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart';
910

11+
import 'package:taskwarrior/app/utils/language/sentences.dart';
12+
1013
import '../controllers/settings_controller.dart';
1114

1215
import 'package:taskwarrior/app/utils/constants/palette.dart';
1316
import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart';
14-
import 'package:taskwarrior/app/utils/theme/app_settings.dart';
1517

1618
class SettingsView extends GetView<SettingsController> {
1719
const SettingsView({super.key});
@@ -25,35 +27,42 @@ class SettingsView extends GetView<SettingsController> {
2527
mainAxisAlignment: MainAxisAlignment.start,
2628
crossAxisAlignment: CrossAxisAlignment.start,
2729
children: [
28-
Text(
29-
'Settings',
30-
style: GoogleFonts.poppins(
31-
color: TaskWarriorColors.white,
32-
fontSize: TaskWarriorFonts.fontSizeLarge,
30+
Obx(
31+
() => Text(
32+
SentenceManager(
33+
currentLanguage: controller.selectedLanguage.value)
34+
.sentences
35+
.settingsPageTitle,
36+
style: GoogleFonts.poppins(
37+
color: TaskWarriorColors.white,
38+
fontSize: TaskWarriorFonts.fontSizeLarge,
39+
),
3340
),
3441
),
35-
Text(
36-
'Configure your preferences',
37-
style: GoogleFonts.poppins(
38-
color: TaskWarriorColors.white,
39-
fontSize: TaskWarriorFonts.fontSizeSmall,
42+
Obx(
43+
() => Text(
44+
SentenceManager(
45+
currentLanguage: controller.selectedLanguage.value)
46+
.sentences
47+
.settingsPageSubtitle,
48+
style: GoogleFonts.poppins(
49+
color: TaskWarriorColors.white,
50+
fontSize: TaskWarriorFonts.fontSizeSmall,
51+
),
4052
),
4153
),
4254
],
4355
),
4456
leading: GestureDetector(
4557
onTap: () {
46-
Navigator.pop(context);
58+
Get.offAllNamed(Routes.SPLASH);
4759
},
4860
child: Icon(
4961
Icons.chevron_left,
5062
color: TaskWarriorColors.white,
5163
),
5264
),
5365
),
54-
backgroundColor: AppSettings.isDarkMode
55-
? TaskWarriorColors.kprimaryBackgroundColor
56-
: TaskWarriorColors.white,
5766
body: SettingsPageBody(controller: controller),
5867
);
5968
}

lib/app/utils/language/sentences.dart

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
2+
import 'package:taskwarrior/app/utils/language/supported_language.dart';
3+
4+
abstract class Sentences {
5+
String get helloWorld;
6+
String get homePageTitle;
7+
String get settingsPageTitle;
8+
String get settingsPageSubtitle;
9+
}
10+
11+
12+
13+
class EnglishSentences extends Sentences {
14+
@override
15+
String get helloWorld => 'Hello, World!';
16+
@override
17+
String get homePageTitle => 'Home Page';
18+
@override
19+
String get settingsPageTitle => 'Settings Page';
20+
@override
21+
String get settingsPageSubtitle => 'Configure your preferences';
22+
}
23+
24+
25+
class HindiSentences extends Sentences {
26+
@override
27+
String get helloWorld => 'नमस्ते दुनिया!';
28+
@override
29+
String get homePageTitle => 'होम पेज';
30+
@override
31+
String get settingsPageTitle => 'सेटिंग्स पेज';
32+
@override
33+
String get settingsPageSubtitle => 'अपनी पसंद सेट करें';
34+
}
35+
36+
37+
38+
class MarathiSentences extends Sentences {
39+
@override
40+
String get helloWorld => 'नमस्कार, जग!';
41+
@override
42+
String get homePageTitle => 'होम पेज';
43+
@override
44+
String get settingsPageTitle => 'सेटिंग्स पेज';
45+
@override
46+
String get settingsPageSubtitle => 'तुमची पसंती सेट करा';
47+
}
48+
49+
50+
class SentenceManager {
51+
final SupportedLanguage currentLanguage;
52+
53+
SentenceManager({required this.currentLanguage});
54+
55+
Sentences get sentences {
56+
switch (currentLanguage) {
57+
case SupportedLanguage.hindi:
58+
return HindiSentences();
59+
case SupportedLanguage.marathi:
60+
return MarathiSentences();
61+
case SupportedLanguage.english:
62+
default:
63+
return EnglishSentences();
64+
}
65+
}
66+
}

lib/app/utils/theme/app_settings.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import 'package:shared_preferences/shared_preferences.dart';
2-
import 'package:taskwarrior/app/utils/constants/supported_language.dart';
2+
import 'package:taskwarrior/app/utils/language/supported_language.dart';
33

44
class SelectedTheme {
55
static SharedPreferences? _preferences;

0 commit comments

Comments
 (0)