diff --git a/lib/app/modules/about/views/about_page_body.dart b/lib/app/modules/about/views/about_page_body.dart index e068912d..e0712b98 100644 --- a/lib/app/modules/about/views/about_page_body.dart +++ b/lib/app/modules/about/views/about_page_body.dart @@ -79,7 +79,11 @@ class AboutPageBody extends StatelessWidget { text: TextSpan( children: [ TextSpan( - text: 'Version: ', + text: SentenceManager( + currentLanguage: aboutController + .selectedLanguage.value) + .sentences + .version, style: TextStyle( fontFamily: FontFamily.poppins, fontWeight: TaskWarriorFonts.bold, @@ -110,7 +114,11 @@ class AboutPageBody extends StatelessWidget { text: TextSpan( children: [ TextSpan( - text: 'Package: ', + text: SentenceManager( + currentLanguage: aboutController + .selectedLanguage.value) + .sentences + .package, style: TextStyle( fontFamily: FontFamily.poppins, fontWeight: TaskWarriorFonts.bold, diff --git a/lib/app/modules/detailRoute/views/dateTimePicker.dart b/lib/app/modules/detailRoute/views/dateTimePicker.dart index 944c5c7a..d11413ab 100644 --- a/lib/app/modules/detailRoute/views/dateTimePicker.dart +++ b/lib/app/modules/detailRoute/views/dateTimePicker.dart @@ -7,6 +7,7 @@ import 'package:intl/intl.dart'; import 'package:taskwarrior/app/utils/constants/constants.dart'; import 'package:taskwarrior/app/utils/gen/fonts.gen.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class DateTimeWidget extends StatelessWidget { const DateTimeWidget({ @@ -60,7 +61,10 @@ class DateTimeWidget extends StatelessWidget { ), ), TextSpan( - text: value ?? "not selected", + text: value ?? + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences.notSelected, // style: GoogleFonts.poppins( // fontSize: TaskWarriorFonts.fontSizeMedium, // color: AppSettings.isDarkMode @@ -168,7 +172,9 @@ class DateTimeWidget extends StatelessWidget { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text( - "Can't set times in the past", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage, + ).sentences.cantSetTimeinPast, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -242,7 +248,9 @@ class StartWidget extends StatelessWidget { ), ), TextSpan( - text: value ?? "not selected", + text: value ?? SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences.notSelected, // style: GoogleFonts.poppins( // fontSize: TaskWarriorFonts.fontSizeMedium, // color: AppSettings.isDarkMode diff --git a/lib/app/modules/detailRoute/views/description_widget.dart b/lib/app/modules/detailRoute/views/description_widget.dart index e4018a75..d11300f4 100644 --- a/lib/app/modules/detailRoute/views/description_widget.dart +++ b/lib/app/modules/detailRoute/views/description_widget.dart @@ -6,6 +6,7 @@ import 'package:taskwarrior/app/utils/constants/constants.dart'; import 'package:taskwarrior/app/utils/constants/utilites.dart'; import 'package:taskwarrior/app/utils/gen/fonts.gen.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class DescriptionWidget extends StatelessWidget { const DescriptionWidget( @@ -54,7 +55,11 @@ class DescriptionWidget extends StatelessWidget { ), ), TextSpan( - text: value ?? "not selected", + text: value ?? + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .notSelected, // style: GoogleFonts.poppins( // fontSize: TaskWarriorFonts.fontSizeMedium, // color: AppSettings.isDarkMode @@ -84,7 +89,9 @@ class DescriptionWidget extends StatelessWidget { builder: (context) => Utils.showAlertDialog( scrollable: true, title: Text( - 'Edit description', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .editDescription, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -108,7 +115,10 @@ class DescriptionWidget extends StatelessWidget { Get.back(); }, child: Text( - 'Cancel', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .cancel, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -127,7 +137,10 @@ class DescriptionWidget extends StatelessWidget { } }, child: Text( - 'Submit', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .submit, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.black @@ -191,7 +204,11 @@ class ProjectWidget extends StatelessWidget { ), ), TextSpan( - text: value ?? "not selected", + text: value ?? + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .notSelected, // style: GoogleFonts.poppins( // fontSize: TaskWarriorFonts.fontSizeMedium, // color: AppSettings.isDarkMode @@ -221,7 +238,9 @@ class ProjectWidget extends StatelessWidget { builder: (context) => Utils.showAlertDialog( scrollable: true, title: Text( - 'Edit project', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .editProject, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -245,7 +264,10 @@ class ProjectWidget extends StatelessWidget { Get.back(); }, child: Text( - 'Cancel', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .cancel, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -265,7 +287,10 @@ class ProjectWidget extends StatelessWidget { } }, child: Text( - 'Submit', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .submit, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.black diff --git a/lib/app/modules/detailRoute/views/detail_route_view.dart b/lib/app/modules/detailRoute/views/detail_route_view.dart index 478da44f..ef24aae8 100644 --- a/lib/app/modules/detailRoute/views/detail_route_view.dart +++ b/lib/app/modules/detailRoute/views/detail_route_view.dart @@ -39,7 +39,9 @@ class DetailRouteView extends GetView { ? TaskWarriorColors.kdialogBackGroundColor : TaskWarriorColors.kLightDialogBackGroundColor, title: Text( - 'Do you want to save changes?', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .saveChangesConfirmation, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -55,7 +57,10 @@ class DetailRouteView extends GetView { Get.back(); }, child: Text( - 'Yes', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .yes, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -70,7 +75,10 @@ class DetailRouteView extends GetView { Get.back(); }, child: Text( - 'No', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .no, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -83,7 +91,10 @@ class DetailRouteView extends GetView { Get.back(); }, child: Text( - 'Cancel', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .cancel, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -165,7 +176,7 @@ class DetailRouteView extends GetView { return AlertDialog( scrollable: true, title: Text( - 'Review changes:', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.reviewChanges}:', style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -177,8 +188,8 @@ class DetailRouteView extends GetView { child: Text( controller.modify.changes.entries .map((entry) => '${entry.key}:\n' - ' old: ${entry.value['old']}\n' - ' new: ${entry.value['new']}') + ' ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.oldChanges}: ${entry.value['old']}\n' + ' ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.newChanges}: ${entry.value['new']}') .toList() .join('\n'), style: TextStyle( @@ -194,7 +205,11 @@ class DetailRouteView extends GetView { Get.back(); }, child: Text( - 'Cancel', + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .cancel, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -207,7 +222,11 @@ class DetailRouteView extends GetView { controller.saveChanges(); }, child: Text( - 'Submit', + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .submit, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.black @@ -333,7 +352,11 @@ class AttributeWidget extends StatelessWidget { ), ), Text( - localValue?.toString() ?? "not selected", + localValue?.toString() ?? + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .notSelected, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -396,7 +419,7 @@ class TagsWidget extends StatelessWidget { ), TextSpan( text: - '${(value as ListBuilder?)?.build() ?? 'not selected'}', + '${(value as ListBuilder?)?.build() ?? SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.notSelected}', style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white diff --git a/lib/app/modules/detailRoute/views/status_widget.dart b/lib/app/modules/detailRoute/views/status_widget.dart index 87bc6d8f..e3265d1c 100644 --- a/lib/app/modules/detailRoute/views/status_widget.dart +++ b/lib/app/modules/detailRoute/views/status_widget.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:taskwarrior/app/utils/constants/constants.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class StatusWidget extends StatelessWidget { @@ -46,7 +47,7 @@ class StatusWidget extends StatelessWidget { ), ), TextSpan( - text: value ?? "not selected", + text: value ?? SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.notSelected, style: GoogleFonts.poppins( fontSize: TaskWarriorFonts.fontSizeMedium, color: AppSettings.isDarkMode diff --git a/lib/app/modules/detailRoute/views/tags_widget.dart b/lib/app/modules/detailRoute/views/tags_widget.dart index c4906d59..69f2f2b9 100644 --- a/lib/app/modules/detailRoute/views/tags_widget.dart +++ b/lib/app/modules/detailRoute/views/tags_widget.dart @@ -10,6 +10,7 @@ import 'package:taskwarrior/app/modules/home/controllers/home_controller.dart'; import 'package:taskwarrior/app/utils/constants/constants.dart'; import 'package:taskwarrior/app/utils/constants/utilites.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; import 'package:taskwarrior/app/utils/taskfunctions/validate.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; @@ -120,7 +121,9 @@ class TagsRouteState extends State { appBar: AppBar( backgroundColor: TaskWarriorColors.kprimaryBackgroundColor, title: Text( - 'Tags', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .tags, style: GoogleFonts.poppins(color: TaskWarriorColors.white), ), leading: BackButton( @@ -153,7 +156,9 @@ class TagsRouteState extends State { Padding( padding: const EdgeInsets.fromLTRB(15, 18, 0, 10), child: Text( - 'Added tags will appear here', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage, + ).sentences.addedTagsWillAppearHere, style: GoogleFonts.poppins( fontStyle: FontStyle.italic, color: AppSettings.isDarkMode @@ -200,7 +205,9 @@ class TagsRouteState extends State { builder: (context) => Utils.showAlertDialog( scrollable: true, title: Text( - 'Add tag', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage, + ).sentences.addTag, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -234,7 +241,9 @@ class TagsRouteState extends State { Get.back(); }, child: Text( - 'Cancel', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage, + ).sentences.cancel, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -256,7 +265,9 @@ class TagsRouteState extends State { } }, child: Text( - 'Submit', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage, + ).sentences.submit, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.black diff --git a/lib/app/modules/home/views/add_task_to_taskc_bottom_sheet.dart b/lib/app/modules/home/views/add_task_to_taskc_bottom_sheet.dart index ae29a077..9081c17d 100644 --- a/lib/app/modules/home/views/add_task_to_taskc_bottom_sheet.dart +++ b/lib/app/modules/home/views/add_task_to_taskc_bottom_sheet.dart @@ -8,6 +8,7 @@ import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart'; import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class AddTaskToTaskcBottomSheet extends StatelessWidget { final HomeController homeController; @@ -15,7 +16,6 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { @override Widget build(BuildContext context) { - const title = 'Add Task'; return Scaffold( backgroundColor: Colors.transparent, body: Center( @@ -32,7 +32,9 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { : TaskWarriorColors.kLightDialogBackGroundColor, title: Center( child: Text( - title, + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .addTaskTitle, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -78,7 +80,10 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { : TaskWarriorColors.black, ), decoration: InputDecoration( - hintText: 'Enter Task', + hintText: + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .addTaskEnterTask, hintStyle: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -86,7 +91,9 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { ), ), validator: (name) => name != null && name.isEmpty - ? 'You cannot leave this field empty!' + ? SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .addTaskFieldCannotBeEmpty : null, ); @@ -99,7 +106,10 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { : TaskWarriorColors.black, ), decoration: InputDecoration( - hintText: 'Enter Project', + hintText: + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .enterProject, hintStyle: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -111,7 +121,7 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { Widget buildDueDate(BuildContext context) => Row( children: [ Text( - "Due : ", + "${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.addTaskDue} : ", style: GoogleFonts.poppins( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -137,7 +147,10 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { : null, ), decoration: InputDecoration( - hintText: 'Select due date', + hintText: SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .addTaskSelectDueDate, hintStyle: homeController.inThePast.value ? TextStyle(color: TaskWarriorColors.red) : TextStyle( @@ -241,7 +254,11 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( - "The selected time is in the past.", + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .addTaskTimeInPast, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -272,7 +289,7 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - 'Priority : ', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.addTaskPriority} : ', style: GoogleFonts.poppins( fontWeight: TaskWarriorFonts.bold, color: AppSettings.isDarkMode @@ -316,7 +333,9 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { Widget buildCancelButton(BuildContext context) => TextButton( child: Text( - 'Cancel', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .addTaskCancel, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -329,7 +348,9 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { Widget buildAddButton(BuildContext context) { return TextButton( child: Text( - "Add", + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .addTaskAdd, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -358,7 +379,9 @@ class AddTaskToTaskcBottomSheet extends StatelessWidget { homeController.projectcontroller.text = ''; ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( - 'Task Added Successfully!', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .addTaskTaskAddedSuccessfully, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor diff --git a/lib/app/modules/home/views/filter_drawer_home_page.dart b/lib/app/modules/home/views/filter_drawer_home_page.dart index fe2f95a3..5b25aaa7 100644 --- a/lib/app/modules/home/views/filter_drawer_home_page.dart +++ b/lib/app/modules/home/views/filter_drawer_home_page.dart @@ -217,8 +217,12 @@ class FilterDrawer extends StatelessWidget { ), ); } else { - return const Center( - child: Text('No projects available.')); + return Center( + child: Text(SentenceManager( + currentLanguage: + homeController.selectedLanguage.value) + .sentences + .filterDrawerNoProjectsAvailable)); } }, ), diff --git a/lib/app/modules/home/views/home_page_app_bar.dart b/lib/app/modules/home/views/home_page_app_bar.dart index a59b7b40..b992c8ba 100644 --- a/lib/app/modules/home/views/home_page_app_bar.dart +++ b/lib/app/modules/home/views/home_page_app_bar.dart @@ -118,10 +118,16 @@ class HomePageAppBar extends StatelessWidget implements PreferredSizeWidget { key: controller.searchKey1, icon: (controller.searchVisible.value) ? Tooltip( - message: 'Cancel', + message: SentenceManager( + currentLanguage: controller.selectedLanguage.value) + .sentences + .homePageCancelSearchTooltip, child: Icon(Icons.cancel, color: TaskWarriorColors.white)) : Tooltip( - message: 'Search', + message: SentenceManager( + currentLanguage: controller.selectedLanguage.value) + .sentences + .homePageSearchTooltip, child: Icon(Icons.search, color: TaskWarriorColors.white)), onPressed: controller.toggleSearch, ), diff --git a/lib/app/modules/home/views/home_page_body.dart b/lib/app/modules/home/views/home_page_body.dart index 5f1a3700..5b1e9868 100644 --- a/lib/app/modules/home/views/home_page_body.dart +++ b/lib/app/modules/home/views/home_page_body.dart @@ -8,6 +8,7 @@ import 'package:taskwarrior/app/modules/home/views/tasks_builder.dart'; import 'package:taskwarrior/app/utils/constants/palette.dart'; import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; import '../controllers/home_controller.dart'; @@ -20,7 +21,11 @@ class HomePageBody extends StatelessWidget { controller.initInAppTour(); controller.showInAppTour(context); return DoubleBackToCloseApp( - snackBar: const SnackBar(content: Text('Tap back again to exit')), + snackBar: SnackBar( + content: Text(SentenceManager( + currentLanguage: controller.selectedLanguage.value) + .sentences + .homePageTapBackToExit)), child: Container( color: AppSettings.isDarkMode ? Palette.kToDark.shade200 @@ -85,7 +90,11 @@ class HomePageBody extends StatelessWidget { ) ], - hintText: 'Search', + hintText: SentenceManager( + currentLanguage: + controller.selectedLanguage.value) + .sentences + .homePageSearchHint, ), ), Visibility( diff --git a/lib/app/modules/home/views/home_page_floating_action_button.dart b/lib/app/modules/home/views/home_page_floating_action_button.dart index 8a0c32aa..4651e348 100644 --- a/lib/app/modules/home/views/home_page_floating_action_button.dart +++ b/lib/app/modules/home/views/home_page_floating_action_button.dart @@ -5,6 +5,7 @@ import 'package:taskwarrior/app/modules/home/views/add_task_to_taskc_bottom_shee import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; import '../controllers/home_controller.dart'; @@ -21,7 +22,10 @@ class HomePageFloatingActionButton extends StatelessWidget { ? TaskWarriorColors.kLightPrimaryBackgroundColor : TaskWarriorColors.kprimaryBackgroundColor, child: Tooltip( - message: 'Add Task', + message: SentenceManager( + currentLanguage: controller.selectedLanguage.value) + .sentences + .homePageAddTaskTooltip, child: Icon( Icons.add, color: AppSettings.isDarkMode diff --git a/lib/app/modules/home/views/nav_drawer.dart b/lib/app/modules/home/views/nav_drawer.dart index 0a3d36dc..bb33f8ef 100644 --- a/lib/app/modules/home/views/nav_drawer.dart +++ b/lib/app/modules/home/views/nav_drawer.dart @@ -139,7 +139,10 @@ class NavDrawer extends StatelessWidget { actions: [ TextButton( child: Text( - 'Cancel', + SentenceManager( + currentLanguage: + homeController.selectedLanguage.value, + ).sentences.homePageCancel, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -152,7 +155,10 @@ class NavDrawer extends StatelessWidget { ), TextButton( child: Text( - 'Confirm', + SentenceManager( + currentLanguage: + homeController.selectedLanguage.value, + ).sentences.navDrawerConfirm, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white diff --git a/lib/app/modules/home/views/project_column_home_page.dart b/lib/app/modules/home/views/project_column_home_page.dart index bfc1c665..b3f09979 100644 --- a/lib/app/modules/home/views/project_column_home_page.dart +++ b/lib/app/modules/home/views/project_column_home_page.dart @@ -5,6 +5,7 @@ import 'package:google_fonts/google_fonts.dart'; import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart'; import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart'; import 'package:taskwarrior/app/utils/gen/fonts.gen.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; import 'package:taskwarrior/app/utils/taskfunctions/projects.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; @@ -31,7 +32,7 @@ class ProjectsColumn extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - "Project : ", + "${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.project} : ", style: TextStyle( fontFamily: FontFamily.poppins, fontWeight: TaskWarriorFonts.bold, @@ -49,7 +50,7 @@ class ProjectsColumn extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - projectFilter == "" ? "Not selected" : projectFilter, + projectFilter == "" ? SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.notSelected : projectFilter, style: TextStyle( fontFamily: FontFamily.poppins, fontSize: TaskWarriorFonts.fontSizeSmall, @@ -70,7 +71,8 @@ class ProjectsColumn extends StatelessWidget { child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Text("All Projects", + Text(SentenceManager( + currentLanguage: AppSettings.selectedLanguage).sentences.allProjects, style: TextStyle( fontFamily: FontFamily.poppins, fontSize: TaskWarriorFonts.fontSizeSmall, @@ -94,7 +96,10 @@ class ProjectsColumn extends StatelessWidget { Column( children: [ Text( - "No Projects Found", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .noProjectsFound, style: TextStyle( fontFamily: FontFamily.poppins, fontSize: TaskWarriorFonts.fontSizeSmall, diff --git a/lib/app/modules/home/views/project_column_taskc.dart b/lib/app/modules/home/views/project_column_taskc.dart index 0e357aa9..cfaf903a 100644 --- a/lib/app/modules/home/views/project_column_taskc.dart +++ b/lib/app/modules/home/views/project_column_taskc.dart @@ -4,6 +4,7 @@ import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart'; import 'package:taskwarrior/app/utils/gen/fonts.gen.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class ProjectColumnTaskc extends StatelessWidget { const ProjectColumnTaskc({ @@ -28,7 +29,9 @@ class ProjectColumnTaskc extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - "Project : ", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage, + ).sentences.project, style: TextStyle( fontFamily: FontFamily.poppins, fontWeight: TaskWarriorFonts.bold, @@ -45,7 +48,12 @@ class ProjectColumnTaskc extends StatelessWidget { child: SingleChildScrollView( scrollDirection: Axis.horizontal, child: Text( - projectFilter.isEmpty ? "Not selected" : projectFilter, + projectFilter.isEmpty + ? SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .notSelected + : projectFilter, style: TextStyle( fontFamily: FontFamily.poppins, fontSize: TaskWarriorFonts.fontSizeSmall, @@ -60,7 +68,9 @@ class ProjectColumnTaskc extends StatelessWidget { ), ), ProjectTileTaskc( - project: 'All Projects', + project: SentenceManager( + currentLanguage: AppSettings.selectedLanguage, + ).sentences.allProjects, projectFilter: projectFilter, callback: callback), if (projects.isNotEmpty) @@ -73,7 +83,9 @@ class ProjectColumnTaskc extends StatelessWidget { Column( children: [ Text( - "No Projects Found", + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .noProjectsFound, style: TextStyle( fontFamily: FontFamily.poppins, fontSize: TaskWarriorFonts.fontSizeSmall, diff --git a/lib/app/modules/home/views/show_details.dart b/lib/app/modules/home/views/show_details.dart index b85daeb2..fc17ce27 100644 --- a/lib/app/modules/home/views/show_details.dart +++ b/lib/app/modules/home/views/show_details.dart @@ -1,5 +1,6 @@ // ignore_for_file: deprecated_member_use, use_build_context_synchronously +import 'package:date_format/date_format.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:intl/intl.dart'; @@ -7,6 +8,7 @@ import 'package:taskwarrior/api_service.dart'; import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart'; import 'package:taskwarrior/app/utils/constants/utilites.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class TaskDetails extends StatefulWidget { final Tasks task; @@ -70,7 +72,7 @@ class _TaskDetailsState extends State { foregroundColor: TaskWarriorColors.lightGrey, backgroundColor: TaskWarriorColors.kprimaryBackgroundColor, title: Text( - 'Task: ${widget.task.description}', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.task}: ${widget.task.description}', style: GoogleFonts.poppins(color: TaskWarriorColors.white), ), ), @@ -78,43 +80,53 @@ class _TaskDetailsState extends State { padding: const EdgeInsets.all(16.0), child: ListView( children: [ - _buildEditableDetail('Description:', description, (value) { + _buildEditableDetail( + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageDescription}:', + description, (value) { setState(() { description = value; hasChanges = true; }); }), - _buildEditableDetail('Project:', project, (value) { + _buildEditableDetail( + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.project}:', + project, (value) { setState(() { project = value; hasChanges = true; }); }), _buildSelectableDetail( - 'Status:', status, ['pending', 'completed'], (value) { + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageStatus}:', + status, + ['pending', 'completed'], (value) { setState(() { status = value; hasChanges = true; }); }), - _buildSelectableDetail('Priority:', priority, ['H', 'M', 'L'], - (value) { + _buildSelectableDetail( + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPagePriority}:', + priority, + ['H', 'M', 'L'], (value) { setState(() { priority = value; hasChanges = true; }); }), - _buildDatePickerDetail('Due:', due, (value) { + _buildDatePickerDetail( + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.homePageDue}:', + due, (value) { setState(() { due = value; hasChanges = true; }); }), _buildDetail('UUID:', widget.task.uuid!), - _buildDetail('Urgency:', widget.task.urgency.toString()), - _buildDetail('End:', _buildDate(widget.task.end)), - _buildDetail('Entry:', _buildDate(widget.task.entry)), - _buildDetail('Modified:', _buildDate(widget.task.modified)), + _buildDetail('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageUrgency}:', widget.task.urgency.toString()), + _buildDetail('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageEnd}:', _buildDate(widget.task.end)), + _buildDetail('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageEntry}:', _buildDate(widget.task.entry)), + _buildDetail('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageModified}:', _buildDate(widget.task.modified)), ], ), ), @@ -265,7 +277,7 @@ class _TaskDetailsState extends State { builder: (context) { return Utils.showAlertDialog( title: Text( - 'Edit $label', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.edit} $label', style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -278,7 +290,8 @@ class _TaskDetailsState extends State { : TaskWarriorColors.kLightPrimaryTextColor), controller: controller, decoration: InputDecoration( - hintText: 'Enter new $label', + hintText: + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.enterNew} $label', hintStyle: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -291,7 +304,9 @@ class _TaskDetailsState extends State { Navigator.of(context).pop(); }, child: Text( - 'Cancel', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .cancel, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -303,7 +318,9 @@ class _TaskDetailsState extends State { Navigator.of(context).pop(controller.text); }, child: Text( - 'Save', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .save, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -323,7 +340,7 @@ class _TaskDetailsState extends State { builder: (context) { return Utils.showAlertDialog( title: Text( - 'Select $label', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.select} $label', style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -375,14 +392,18 @@ class _TaskDetailsState extends State { builder: (BuildContext context) { return Utils.showAlertDialog( title: Text( - 'Unsaved Changes', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .unsavedChanges, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor : TaskWarriorColors.kLightPrimaryTextColor), ), content: Text( - 'You have unsaved changes. What would you like to do?', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .unsavedChangesWarning, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -393,19 +414,28 @@ class _TaskDetailsState extends State { onPressed: () { Navigator.of(context).pop(UnsavedChangesAction.cancel); }, - child: const Text('Cancel'), + child: Text( + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .cancel), ), TextButton( onPressed: () { Navigator.of(context).pop(UnsavedChangesAction.discard); }, - child: const Text('Don\'t Save'), + child: Text( + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .dontSave), ), TextButton( onPressed: () { Navigator.of(context).pop(UnsavedChangesAction.save); }, - child: const Text('Save'), + child: Text( + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .save), ), ], ); diff --git a/lib/app/modules/home/views/show_tasks.dart b/lib/app/modules/home/views/show_tasks.dart index da694964..f1f0c08e 100644 --- a/lib/app/modules/home/views/show_tasks.dart +++ b/lib/app/modules/home/views/show_tasks.dart @@ -10,6 +10,7 @@ import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart'; import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class TaskViewBuilder extends StatelessWidget { const TaskViewBuilder({ @@ -87,7 +88,10 @@ class TaskViewBuilder extends StatelessWidget { padding: const EdgeInsets.all(16.0), child: Center( child: Text( - 'Click on the bottom right button to start adding tasks', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .clickOnBottomRightButtonToStartAddingTasks, textAlign: TextAlign.center, style: GoogleFonts.poppins( fontSize: TaskWarriorFonts.fontSizeLarge, @@ -119,7 +123,11 @@ class TaskViewBuilder extends StatelessWidget { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text( - 'Task Marked As Completed. Refresh to view changes!', + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .taskMarkedAsCompleted, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -131,7 +139,10 @@ class TaskViewBuilder extends StatelessWidget { ); }, icon: Icons.done, - label: "COMPLETE", + label: SentenceManager(currentLanguage: + AppSettings.selectedLanguage) + .sentences + .complete, backgroundColor: TaskWarriorColors.green, ), ], @@ -145,7 +156,11 @@ class TaskViewBuilder extends StatelessWidget { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text( - 'Task Marked As Deleted. Refresh to view changes!', + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .taskMarkedAsDeleted, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -157,7 +172,10 @@ class TaskViewBuilder extends StatelessWidget { ); }, icon: Icons.delete, - label: "DELETE", + label: SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .delete, backgroundColor: TaskWarriorColors.red, ), ], @@ -213,7 +231,7 @@ class TaskViewBuilder extends StatelessWidget { ), ), subtitle: Text( - 'Urgency: ${task.urgency!.floorToDouble()} | Status: ${task.status}', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageUrgency}: ${task.urgency!.floorToDouble()} | ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageStatus}: ${task.status}', style: GoogleFonts.poppins( color: AppSettings.isDarkMode ? TaskWarriorColors.ksecondaryTextColor diff --git a/lib/app/modules/home/views/tas_list_item.dart b/lib/app/modules/home/views/tas_list_item.dart index 38911a47..4b765331 100644 --- a/lib/app/modules/home/views/tas_list_item.dart +++ b/lib/app/modules/home/views/tas_list_item.dart @@ -40,7 +40,9 @@ class TaskListItem extends StatelessWidget { ); ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( - 'Task Updated', + SentenceManager(currentLanguage: selectedLanguage) + .sentences + .taskUpdated, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor diff --git a/lib/app/modules/home/views/tasks_builder.dart b/lib/app/modules/home/views/tasks_builder.dart index d17c5875..73c9ae02 100644 --- a/lib/app/modules/home/views/tasks_builder.dart +++ b/lib/app/modules/home/views/tasks_builder.dart @@ -62,7 +62,9 @@ class TasksBuilder extends StatelessWidget { ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( - 'Task Updated', + SentenceManager(currentLanguage: selectedLanguage) + .sentences + .taskUpdated, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -74,11 +76,10 @@ class TasksBuilder extends StatelessWidget { : TaskWarriorColors.kLightSecondaryBackgroundColor, duration: const Duration(seconds: 2), action: SnackBarAction( - label: 'Undo', + label: + SentenceManager(currentLanguage: selectedLanguage).sentences.undo, onPressed: () { - undoChanges( - context, id, 'pending'); - + undoChanges(context, id, 'pending'); }, ), )); @@ -198,7 +199,9 @@ class TasksBuilder extends StatelessWidget { } }, icon: Icons.done, - label: "COMPLETE", + label: SentenceManager(currentLanguage: selectedLanguage) + .sentences + .complete, backgroundColor: TaskWarriorColors.green, ), ], @@ -225,7 +228,9 @@ class TasksBuilder extends StatelessWidget { } }, icon: Icons.delete, - label: "DELETE", + label: SentenceManager(currentLanguage: selectedLanguage) + .sentences + .delete, backgroundColor: TaskWarriorColors.red, ), ], diff --git a/lib/app/modules/manageTaskServer/views/manage_task_server_page_app_bar.dart b/lib/app/modules/manageTaskServer/views/manage_task_server_page_app_bar.dart index a7ab40c1..9e6574ba 100644 --- a/lib/app/modules/manageTaskServer/views/manage_task_server_page_app_bar.dart +++ b/lib/app/modules/manageTaskServer/views/manage_task_server_page_app_bar.dart @@ -94,7 +94,10 @@ class ManageTaskServerPageAppBar extends StatelessWidget builder: (context) { return Utils.showAlertDialog( title: Text( - 'Fetching statistics...', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .fetchingStatistics, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -107,7 +110,10 @@ class ManageTaskServerPageAppBar extends StatelessWidget const CircularProgressIndicator(), const SizedBox(height: 16), Text( - 'Please wait...', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .pleaseWait, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -139,9 +145,12 @@ class ManageTaskServerPageAppBar extends StatelessWidget context: context, builder: (context) => Utils.showAlertDialog( scrollable: true, - title: const Text( - 'Statistics:', - style: TextStyle(), + title: Text( + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .statistics, + style: const TextStyle(), ), content: SingleChildScrollView( scrollDirection: Axis.horizontal, @@ -179,7 +188,10 @@ class ManageTaskServerPageAppBar extends StatelessWidget Get.back(); }, child: Text( - 'Ok', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .ok, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.black @@ -199,7 +211,10 @@ class ManageTaskServerPageAppBar extends StatelessWidget ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( trace.toString().startsWith("#0") - ? "Please set up your TaskServer." + ? SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .pleaseSetupTaskServer : e.toString(), style: TextStyle( color: AppSettings.isDarkMode diff --git a/lib/app/modules/manageTaskServer/views/manage_task_server_page_body.dart b/lib/app/modules/manageTaskServer/views/manage_task_server_page_body.dart index 25e2a76d..42a32aa0 100644 --- a/lib/app/modules/manageTaskServer/views/manage_task_server_page_body.dart +++ b/lib/app/modules/manageTaskServer/views/manage_task_server_page_body.dart @@ -291,7 +291,10 @@ class ManageTaskServerPageBody extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - "TaskD Server Info", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .taskServerInfo, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -317,7 +320,11 @@ class ManageTaskServerPageBody extends StatelessWidget { children: [ controller.server == null ? Text( - 'Not Configured', + SentenceManager( + currentLanguage: AppSettings + .selectedLanguage) + .sentences + .notConfigured, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -374,7 +381,10 @@ class ManageTaskServerPageBody extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - "TaskD Server Credentials", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .taskServerCredentials, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -399,7 +409,11 @@ class ManageTaskServerPageBody extends StatelessWidget { children: [ controller.credentialsString == null ? Text( - 'Not Configured', + SentenceManager( + currentLanguage: AppSettings + .selectedLanguage) + .sentences + .notConfigured, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white diff --git a/lib/app/modules/onboarding/views/onboarding_page_start_button.dart b/lib/app/modules/onboarding/views/onboarding_page_start_button.dart index 5933e3bb..4eaa7cb7 100644 --- a/lib/app/modules/onboarding/views/onboarding_page_start_button.dart +++ b/lib/app/modules/onboarding/views/onboarding_page_start_button.dart @@ -4,6 +4,8 @@ import 'package:taskwarrior/app/modules/onboarding/controllers/onboarding_contro import 'package:taskwarrior/app/routes/app_pages.dart'; import 'package:taskwarrior/app/utils/constants/constants.dart'; import 'package:taskwarrior/app/utils/gen/fonts.gen.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; +import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; class OnboardingPageStartButton extends StatelessWidget { final OnboardingController controller; @@ -32,7 +34,9 @@ class OnboardingPageStartButton extends StatelessWidget { ), ), child: Text( - "Start", + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .onboardingStart, style: TextStyle( fontWeight: TaskWarriorFonts.light, fontSize: (Get.width <= 550) ? 17 : 17, diff --git a/lib/app/modules/onboarding/views/onborading_page_next_button.dart b/lib/app/modules/onboarding/views/onborading_page_next_button.dart index f5ddf80b..ba5bd088 100644 --- a/lib/app/modules/onboarding/views/onborading_page_next_button.dart +++ b/lib/app/modules/onboarding/views/onborading_page_next_button.dart @@ -2,10 +2,12 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:taskwarrior/app/utils/constants/constants.dart'; import 'package:taskwarrior/app/utils/gen/fonts.gen.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; +import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; class OnboardingPageNextButton extends StatelessWidget { final PageController pageController; - const OnboardingPageNextButton({super.key , required this.pageController}); + const OnboardingPageNextButton({super.key, required this.pageController}); @override Widget build(BuildContext context) { @@ -26,7 +28,9 @@ class OnboardingPageNextButton extends StatelessWidget { ), ), child: Text( - "Skip", + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .onboardingSkip, style: TextStyle( fontWeight: TaskWarriorFonts.bold, color: TaskWarriorColors.black, @@ -54,14 +58,15 @@ class OnboardingPageNextButton extends StatelessWidget { textStyle: TextStyle(fontSize: (Get.width <= 550) ? 13 : 17), ), child: Text( - "Next", + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .onboardingNext, style: TextStyle( fontWeight: TaskWarriorFonts.light, color: TaskWarriorColors.white, fontFamily: FontFamily.poppins, fontSize: (Get.width <= 550) ? 12 : 12, ), - ), ), ], diff --git a/lib/app/modules/permission/views/permission_view.dart b/lib/app/modules/permission/views/permission_view.dart index 70537e40..eff315d1 100644 --- a/lib/app/modules/permission/views/permission_view.dart +++ b/lib/app/modules/permission/views/permission_view.dart @@ -6,6 +6,7 @@ import 'package:taskwarrior/app/modules/permission/views/permission_section.dart import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart'; import '../controllers/permission_controller.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class PermissionView extends GetView { const PermissionView({super.key}); @@ -34,7 +35,9 @@ class PermissionView extends GetView { children: [ const SizedBox(height: 24), Text( - 'Why We Need Your Permission', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .permissionPageTitle, style: Theme.of(context).textTheme.headlineMedium?.copyWith( fontWeight: FontWeight.bold, color: isDarkMode @@ -54,26 +57,34 @@ class PermissionView extends GetView { const SizedBox(height: 32), PermissionSection( icon: Icons.folder_outlined, - title: 'Storage Permission', - description: - 'We use storage access to save your tasks, preferences, ' - 'and app data securely on your device. This ensures that you can ' - 'pick up where you left off seamlessly, even offline.', + title: SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .storagePermissionTitle, + description: SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .storagePermissionDescription, isDarkMode: isDarkMode, ), const SizedBox(height: 24), PermissionSection( icon: Icons.notifications_outlined, - title: 'Notification Permission', - description: - 'Notifications keep you updated with important reminders ' - 'and updates, ensuring you stay on top of your tasks effortlessly.', + title: SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .notificationPermissionTitle, + description: SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .notificationPermissionDescription, isDarkMode: isDarkMode, ), const SizedBox(height: 24), Text( - 'Your privacy is our top priority. We never access or share your ' - 'personal files or data without your consent.', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .privacyStatement, style: Theme.of(context).textTheme.bodyMedium?.copyWith( color: AppSettings.isDarkMode ? TaskWarriorColors.black @@ -105,7 +116,11 @@ class PermissionView extends GetView { : TaskWarriorColors.white, ) : Text( - 'Grant Permissions', + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .grantPermissions, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -122,7 +137,10 @@ class PermissionView extends GetView { WidgetStateProperty.all(TaskWarriorColors.grey), ), child: Text( - 'You can manage your permissions anytime later in Settings', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .managePermissionsLater, style: Theme.of(context).textTheme.bodySmall?.copyWith( color: AppSettings.isDarkMode ? TaskWarriorColors.black diff --git a/lib/app/modules/profile/views/deleteprofiledialog.dart b/lib/app/modules/profile/views/deleteprofiledialog.dart index 0ccdc9a0..a8b76394 100644 --- a/lib/app/modules/profile/views/deleteprofiledialog.dart +++ b/lib/app/modules/profile/views/deleteprofiledialog.dart @@ -25,10 +25,9 @@ class DeleteProfileDialog extends StatelessWidget { child: Utils.showAlertDialog( scrollable: true, title: Text( - SentenceManager( - currentLanguage: AppSettings.selectedLanguage) - .sentences - .profilePageDeleteProfile, + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .profilePageDeleteProfile, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -43,7 +42,9 @@ class DeleteProfileDialog extends StatelessWidget { Get.back(); }, child: Text( - 'Cancel', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .cancel, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -60,7 +61,7 @@ class DeleteProfileDialog extends StatelessWidget { Get.back(); ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( - 'Profile: ${profile.characters} Deleted Successfully', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.profilePageProfile}: ${profile.characters} ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.profileDeletedSuccessfully}', style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -74,7 +75,7 @@ class DeleteProfileDialog extends StatelessWidget { } catch (e) { ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( - 'Profile: ${profile.characters} Deletion Failed', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.profilePageProfile}: ${profile.characters} ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.profileDeletionFailed}', style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -88,7 +89,9 @@ class DeleteProfileDialog extends StatelessWidget { } }, child: Text( - 'Confirm', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .profileDeleteConfirmation, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.black diff --git a/lib/app/modules/profile/views/profile_view.dart b/lib/app/modules/profile/views/profile_view.dart index 8a224b6d..282cfc6c 100644 --- a/lib/app/modules/profile/views/profile_view.dart +++ b/lib/app/modules/profile/views/profile_view.dart @@ -104,9 +104,9 @@ class ProfileView extends GetView { return Utils.showAlertDialog( title: Text( SentenceManager( - currentLanguage: AppSettings.selectedLanguage) - .sentences - .profilePageExportTasksDialogueTitle, + currentLanguage: AppSettings.selectedLanguage) + .sentences + .profilePageExportTasksDialogueTitle, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -115,9 +115,9 @@ class ProfileView extends GetView { ), content: Text( SentenceManager( - currentLanguage: AppSettings.selectedLanguage) - .sentences - .profilePageExportTasksDialogueSubtitle, + currentLanguage: AppSettings.selectedLanguage) + .sentences + .profilePageExportTasksDialogueSubtitle, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -173,7 +173,10 @@ class ProfileView extends GetView { ); ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( - 'Profile Config Copied', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .profileConfigCopied, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -187,7 +190,10 @@ class ProfileView extends GetView { } catch (e) { ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( - 'Profile Config Copy Failed', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .profileConfigCopyFailed, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -281,7 +287,10 @@ class ProfilesColumn extends StatelessWidget { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text( - 'Profile Added Successfully', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .profileAddedSuccessfully, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -298,7 +307,10 @@ class ProfilesColumn extends StatelessWidget { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text( - 'Profile Additon Failed', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .profileAdditionFailed, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -325,11 +337,9 @@ class ProfilesColumn extends StatelessWidget { ? TaskWarriorColors.deepPurpleAccent : TaskWarriorColors.deepPurple), label: Text( - SentenceManager( - currentLanguage: AppSettings.selectedLanguage) - .sentences - .profilePageAddNewProfile, - + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .profilePageAddNewProfile, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.white diff --git a/lib/app/modules/profile/views/selectprofile.dart b/lib/app/modules/profile/views/selectprofile.dart index 4b192cc8..d0eff3c9 100644 --- a/lib/app/modules/profile/views/selectprofile.dart +++ b/lib/app/modules/profile/views/selectprofile.dart @@ -46,11 +46,10 @@ class SelectProfile extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - SentenceManager( - currentLanguage: AppSettings.selectedLanguage) - .sentences - .profilePageCurrentProfile, - key : currentProfileKey, + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .profilePageCurrentProfile, + key: currentProfileKey, overflow: TextOverflow.fade, style: GoogleFonts.poppins( fontWeight: TaskWarriorFonts.bold, @@ -81,10 +80,12 @@ class SelectProfile extends StatelessWidget { child: Row( children: [ Text( - 'All Profiles:', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .profileAllProfiles, overflow: TextOverflow.fade, style: GoogleFonts.poppins( - fontWeight: TaskWarriorFonts.bold, fontSize: TaskWarriorFonts.fontSizeMedium, color: AppSettings.isDarkMode @@ -139,7 +140,7 @@ class SelectProfileListTile extends StatelessWidget { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text( - 'Switched to Profile ${alias ?? uuid}', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.profileSwitchedToProfile} ${alias ?? uuid}', style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -176,11 +177,10 @@ class SelectProfileListTile extends StatelessWidget { alias!, overflow: TextOverflow.fade, style: GoogleFonts.poppins( - color: AppSettings.isDarkMode - ? TaskWarriorColors.ksecondaryTextColor - : TaskWarriorColors.kLightSecondaryTextColor, - fontSize: TaskWarriorFonts.fontSizeMedium - ), + color: AppSettings.isDarkMode + ? TaskWarriorColors.ksecondaryTextColor + : TaskWarriorColors.kLightSecondaryTextColor, + fontSize: TaskWarriorFonts.fontSizeMedium), ), ), ), @@ -190,11 +190,10 @@ class SelectProfileListTile extends StatelessWidget { child: Text( uuid, style: GoogleFonts.poppins( - color: AppSettings.isDarkMode - ? TaskWarriorColors.ksecondaryTextColor - : TaskWarriorColors.kLightSecondaryTextColor, - fontSize: TaskWarriorFonts.fontSizeSmall - ), + color: AppSettings.isDarkMode + ? TaskWarriorColors.ksecondaryTextColor + : TaskWarriorColors.kLightSecondaryTextColor, + fontSize: TaskWarriorFonts.fontSizeSmall), ), ), ], diff --git a/lib/app/modules/reports/views/burn_down_daily_taskc.dart b/lib/app/modules/reports/views/burn_down_daily_taskc.dart index c67e9c16..38482330 100644 --- a/lib/app/modules/reports/views/burn_down_daily_taskc.dart +++ b/lib/app/modules/reports/views/burn_down_daily_taskc.dart @@ -9,6 +9,7 @@ import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart'; import 'package:taskwarrior/app/utils/constants/utilites.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class BurnDownDailyTaskc extends StatelessWidget { BurnDownDailyTaskc({super.key}); @@ -32,13 +33,13 @@ class BurnDownDailyTaskc extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ Text( - 'Date: $date', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.reportsDate}: $date', style: GoogleFonts.poppins( fontWeight: TaskWarriorFonts.bold, ), ), - Text('Pending: $pendingCount'), - Text('Completed: $completedCount'), + Text('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.reportsPending}: $pendingCount'), + Text('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.reportsCompleted}: $completedCount'), ], ), ); @@ -91,7 +92,7 @@ class BurnDownDailyTaskc extends StatelessWidget { } if (snapshot.hasError) { - return Center(child: Text('Error: ${snapshot.error}')); + return Center(child: Text('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.reportsError}: ${snapshot.error}')); } Map> dailyInfo = snapshot.data ?? {}; diff --git a/lib/app/modules/reports/views/burn_down_monthly_taskc.dart b/lib/app/modules/reports/views/burn_down_monthly_taskc.dart index 8107e455..cd461a61 100644 --- a/lib/app/modules/reports/views/burn_down_monthly_taskc.dart +++ b/lib/app/modules/reports/views/burn_down_monthly_taskc.dart @@ -9,6 +9,7 @@ import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart'; import 'package:taskwarrior/app/utils/constants/utilites.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class BurnDownMonthlyTaskc extends StatelessWidget { BurnDownMonthlyTaskc({super.key}); @@ -32,16 +33,22 @@ class BurnDownMonthlyTaskc extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ Text( - 'Month-Year: $monthYear', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsMonthYear}: $monthYear', style: const TextStyle( fontWeight: TaskWarriorFonts.bold, ), ), Text( - 'Pending: $pendingCount', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsPending}: $pendingCount', ), Text( - 'Completed: $completedCount', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsCompleted}: $completedCount', ), ], ), @@ -98,7 +105,11 @@ class BurnDownMonthlyTaskc extends StatelessWidget { } if (snapshot.hasError) { - return Center(child: Text('Error: ${snapshot.error}')); + return Center( + child: Text('${SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsError}: ${snapshot.error}')); } Map> monthlyInfo = snapshot.data ?? {}; diff --git a/lib/app/modules/reports/views/burn_down_weekly_taskc.dart b/lib/app/modules/reports/views/burn_down_weekly_taskc.dart index cc6f39ae..4fc8a5ac 100644 --- a/lib/app/modules/reports/views/burn_down_weekly_taskc.dart +++ b/lib/app/modules/reports/views/burn_down_weekly_taskc.dart @@ -9,6 +9,7 @@ import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart'; import 'package:taskwarrior/app/utils/constants/utilites.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class BurnDownWeeklyTask extends StatelessWidget { BurnDownWeeklyTask({super.key}); @@ -38,10 +39,14 @@ class BurnDownWeeklyTask extends StatelessWidget { ), ), Text( - 'Pending: $pendingCount', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsPending}: $pendingCount', ), Text( - 'Completed: $completedCount', + '${SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsCompleted}: $completedCount', ), ], ), @@ -105,7 +110,11 @@ class BurnDownWeeklyTask extends StatelessWidget { } if (snapshot.hasError) { - return Center(child: Text('Error: ${snapshot.error}')); + return Center( + child: Text('${SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsError}: ${snapshot.error}')); } Map> weeklyInfo = snapshot.data ?? {}; diff --git a/lib/app/modules/reports/views/reports_view_taskc.dart b/lib/app/modules/reports/views/reports_view_taskc.dart index 5056e4e1..cce95806 100644 --- a/lib/app/modules/reports/views/reports_view_taskc.dart +++ b/lib/app/modules/reports/views/reports_view_taskc.dart @@ -10,6 +10,7 @@ import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart'; import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; import 'package:taskwarrior/api_service.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; class ReportsHomeTaskc extends StatelessWidget { final ReportsController reportsController = Get.put(ReportsController()); @@ -36,7 +37,9 @@ class ReportsHomeTaskc extends StatelessWidget { appBar: AppBar( backgroundColor: TaskWarriorColors.kprimaryBackgroundColor, title: Text( - 'Reports', + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsPageTitle, style: GoogleFonts.poppins(color: TaskWarriorColors.white), ), leading: GestureDetector( @@ -67,19 +70,28 @@ class ReportsHomeTaskc extends StatelessWidget { Tab( key: reportsController.daily, icon: const Icon(Icons.schedule), - text: 'Daily', + text: SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsPageDaily, iconMargin: const EdgeInsets.only(bottom: 0.0), ), Tab( key: reportsController.weekly, icon: const Icon(Icons.today), - text: 'Weekly', + text: SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsPageWeekly, iconMargin: const EdgeInsets.only(bottom: 0.0), ), Tab( key: reportsController.monthly, icon: const Icon(Icons.date_range), - text: 'Monthly', + text: SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .reportsPageMonthly, iconMargin: const EdgeInsets.only(bottom: 0.0), ), ], @@ -106,7 +118,11 @@ class ReportsHomeTaskc extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'No Task found', + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .reportsPageNoTasksFound, style: GoogleFonts.poppins( fontWeight: TaskWarriorFonts.medium, fontSize: TaskWarriorFonts.fontSizeSmall, @@ -121,7 +137,11 @@ class ReportsHomeTaskc extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Add a task to see reports', + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .reportsPageAddTasksToSeeReports, style: GoogleFonts.poppins( fontWeight: TaskWarriorFonts.light, fontSize: TaskWarriorFonts.fontSizeSmall, diff --git a/lib/app/modules/settings/views/settings_page_select_directory_list_tile.dart b/lib/app/modules/settings/views/settings_page_select_directory_list_tile.dart index ae7f7cd5..6a133a6e 100644 --- a/lib/app/modules/settings/views/settings_page_select_directory_list_tile.dart +++ b/lib/app/modules/settings/views/settings_page_select_directory_list_tile.dart @@ -66,7 +66,10 @@ class SettingsPageSelectDirectoryListTile extends StatelessWidget { if (await controller.getBaseDirectory() == "Default") { ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( - 'Already default', + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .settingsAlreadyDefault, style: TextStyle( color: AppSettings.isDarkMode ? TaskWarriorColors.kprimaryTextColor @@ -83,7 +86,11 @@ class SettingsPageSelectDirectoryListTile extends StatelessWidget { builder: (BuildContext context) { return Utils.showAlertDialog( title: Text( - 'Reset to default', + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .settingsResetToDefault, style: GoogleFonts.poppins( fontWeight: FontWeight.bold, fontSize: TaskWarriorFonts.fontSizeMedium, @@ -93,7 +100,11 @@ class SettingsPageSelectDirectoryListTile extends StatelessWidget { ), ), content: Text( - "Are you sure you want to reset the directory to the default?", + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .settingsConfirmReset, style: GoogleFonts.poppins( color: TaskWarriorColors.grey, fontSize: TaskWarriorFonts.fontSizeMedium, @@ -105,7 +116,11 @@ class SettingsPageSelectDirectoryListTile extends StatelessWidget { Navigator.pop(context); }, child: Text( - 'No', + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .settingsNoButton, style: GoogleFonts.poppins( color: AppSettings.isDarkMode ? TaskWarriorColors.white @@ -140,7 +155,11 @@ class SettingsPageSelectDirectoryListTile extends StatelessWidget { }); }, child: Text( - 'Yes', + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage) + .sentences + .settingsYesButton, style: GoogleFonts.poppins( color: AppSettings.isDarkMode ? TaskWarriorColors.white diff --git a/lib/app/modules/splash/views/splash_view.dart b/lib/app/modules/splash/views/splash_view.dart index d34a7494..3692f9ee 100644 --- a/lib/app/modules/splash/views/splash_view.dart +++ b/lib/app/modules/splash/views/splash_view.dart @@ -5,6 +5,8 @@ import 'package:get/get.dart'; import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart'; import 'package:taskwarrior/app/utils/gen/assets.gen.dart'; import 'package:taskwarrior/app/utils/gen/fonts.gen.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; +import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; import '../controllers/splash_controller.dart'; @@ -26,9 +28,11 @@ class SplashView extends GetView { const SizedBox(height: 30.0), const CircularProgressIndicator(), const SizedBox(height: 16.0), - const Text( - "Setting up the app...", - style: TextStyle( + Text( + SentenceManager(currentLanguage: AppSettings.selectedLanguage) + .sentences + .splashSettingUpApp, + style: const TextStyle( fontFamily: FontFamily.poppins, fontSize: TaskWarriorFonts.fontSizeLarge, ), diff --git a/lib/app/tour/details_page_tour.dart b/lib/app/tour/details_page_tour.dart index 19ed2c48..56f95e13 100644 --- a/lib/app/tour/details_page_tour.dart +++ b/lib/app/tour/details_page_tour.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:tutorial_coach_mark/tutorial_coach_mark.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; +import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; List addDetailsPage({ required GlobalKey dueKey, @@ -26,7 +28,10 @@ List addDetailsPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "This signifies the due date of the task", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourDetailsDue, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -57,7 +62,10 @@ List addDetailsPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "This signifies the waiting date of the task \n Task will be visible after this date", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourDetailsWait, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -88,7 +96,10 @@ List addDetailsPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "This shows the last date of the task", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourDetailsUntil, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -119,7 +130,10 @@ List addDetailsPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "This is the priority of the Tasks \n L -> Low \n M -> Medium \n H -> Hard", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourDetailsPriority, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, diff --git a/lib/app/tour/filter_drawer_tour.dart b/lib/app/tour/filter_drawer_tour.dart index 4ddcfaaf..9ad6913e 100644 --- a/lib/app/tour/filter_drawer_tour.dart +++ b/lib/app/tour/filter_drawer_tour.dart @@ -2,6 +2,8 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart'; import 'package:tutorial_coach_mark/tutorial_coach_mark.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; +import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; List filterDrawer({ required GlobalKey statusKey, @@ -30,7 +32,10 @@ List filterDrawer({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Filter tasks based on their completion status", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourFilterStatus, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: TaskWarriorColors.white, @@ -63,7 +68,10 @@ List filterDrawer({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Filter tasks based on the projects", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourFilterProjects, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: TaskWarriorColors.white, @@ -96,7 +104,10 @@ List filterDrawer({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Filter tasks based on the projects", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourFilterProjects, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: TaskWarriorColors.white, @@ -129,7 +140,10 @@ List filterDrawer({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Toggle between AND and OR tag union types", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourFilterTagUnion, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: TaskWarriorColors.white, @@ -162,7 +176,10 @@ List filterDrawer({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Sort tasks based on time of creation, urgency, due date, start date, etc.", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourFilterSort, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: TaskWarriorColors.white, diff --git a/lib/app/tour/home_page_tour.dart b/lib/app/tour/home_page_tour.dart index 07bcfde1..451463ca 100644 --- a/lib/app/tour/home_page_tour.dart +++ b/lib/app/tour/home_page_tour.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:tutorial_coach_mark/tutorial_coach_mark.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; +import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; List addTargetsPage({ required GlobalKey addKey, @@ -29,7 +31,10 @@ List addTargetsPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Add a new task", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourHomeAddTask, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -62,7 +67,10 @@ List addTargetsPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Search for tasks", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourHomeSearch, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -95,7 +103,10 @@ List addTargetsPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Refresh or sync your tasks", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourHomeRefresh, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -128,7 +139,10 @@ List addTargetsPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Add filters to sort your tasks and projects", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourHomeFilter, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -161,7 +175,10 @@ List addTargetsPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Access additional settings here", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourHomeMenu, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, diff --git a/lib/app/tour/manage_task_server_page_tour.dart b/lib/app/tour/manage_task_server_page_tour.dart index e73904dd..7f9ed2f9 100644 --- a/lib/app/tour/manage_task_server_page_tour.dart +++ b/lib/app/tour/manage_task_server_page_tour.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:tutorial_coach_mark/tutorial_coach_mark.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; +import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; List addManageTaskServerPage({ required GlobalKey configureTaskRC, @@ -27,7 +29,10 @@ List addManageTaskServerPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Select the file named taskrc here or paste it's content", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourTaskServerTaskRC, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -42,7 +47,6 @@ List addManageTaskServerPage({ ), ); - targets.add( TargetFocus( keyTarget: configureYourCertificate, @@ -60,7 +64,10 @@ List addManageTaskServerPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Select file similarly named like .com.cert.pem here", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourTaskServerCertificate, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -92,7 +99,10 @@ List addManageTaskServerPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Select file similarly named like .key.pem here", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourTaskServerKey, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -124,7 +134,10 @@ List addManageTaskServerPage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Select file similarly named like letsencrypt_root_cert.pem here", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourTaskServerRootCert, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, diff --git a/lib/app/tour/profile_page_tour.dart b/lib/app/tour/profile_page_tour.dart index b0632801..33b6e604 100644 --- a/lib/app/tour/profile_page_tour.dart +++ b/lib/app/tour/profile_page_tour.dart @@ -1,10 +1,11 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:tutorial_coach_mark/tutorial_coach_mark.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; +import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; List addProfilePage({ required GlobalKey currentProfileKey, - required GlobalKey addNewProfileKey, required GlobalKey manageSelectedProfileKey, }) { @@ -27,7 +28,10 @@ List addProfilePage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "See your current profile here", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourProfileCurrent, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -42,7 +46,6 @@ List addProfilePage({ ), ); - //manage current profile targets.add( TargetFocus( @@ -60,7 +63,10 @@ List addProfilePage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Manage your current profile here", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourProfileManage, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -91,7 +97,10 @@ List addProfilePage({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Add a new profile here", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourProfileAddNew, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, diff --git a/lib/app/tour/reports_page_tour.dart b/lib/app/tour/reports_page_tour.dart index 51f17360..1a23722a 100644 --- a/lib/app/tour/reports_page_tour.dart +++ b/lib/app/tour/reports_page_tour.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:tutorial_coach_mark/tutorial_coach_mark.dart'; +import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; +import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; List reportsDrawer({ required GlobalKey daily, @@ -27,7 +29,10 @@ List reportsDrawer({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Access your daily task report here", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourReportsDaily, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -60,7 +65,10 @@ List reportsDrawer({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Access your weekly task reports here", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourReportsWeekly, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, @@ -93,7 +101,10 @@ List reportsDrawer({ mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Access your monthly task reports here", + SentenceManager( + currentLanguage: AppSettings.selectedLanguage) + .sentences + .tourReportsMonthly, textAlign: TextAlign.center, style: GoogleFonts.poppins( color: Colors.white, diff --git a/lib/app/utils/language/bengali_sentences.dart b/lib/app/utils/language/bengali_sentences.dart index 2513d836..b67cfbfe 100644 --- a/lib/app/utils/language/bengali_sentences.dart +++ b/lib/app/utils/language/bengali_sentences.dart @@ -323,4 +323,288 @@ class BengaliSentences extends Sentences { "এই প্রকল্পের লক্ষ্য Taskwarrior-এর জন্য একটি অ্যাপ তৈরি করা। এটি আপনার সকল প্ল্যাটফর্মে একটি টাস্ক ম্যানেজমেন্ট অ্যাপ। এটি আপনাকে আপনার কাজগুলি পরিচালনা করতে এবং আপনার প্রয়োজন অনুসারে সেগুলি ফিল্টার করতে সাহায্য করে।"; @override String get aboutPageAppBarTitle => "সম্পর্কিত"; + + @override + String get homePageSearchTooltip => 'অনুসন্ধান করুন'; + @override + String get homePageCancelSearchTooltip => 'বাতিল করুন'; + @override + String get homePageAddTaskTooltip => 'টাস্ক যোগ করুন'; + @override + String get homePageTapBackToExit => 'প্রস্থান করতে আবার ব্যাক চাপুন'; + @override + String get homePageSearchHint => 'অনুসন্ধান করুন'; + + @override + String get navDrawerConfirm => 'নিশ্চিত করুন'; + + @override + String get filterDrawerNoProjectsAvailable => 'কোনো প্রকল্প উপলব্ধ নেই।'; + + @override + String get version => "সংস্করণ"; + @override + String get package => "প্যাকেজ"; + + @override + String get notSelected => "নির্বাচিত নয়"; + @override + String get cantSetTimeinPast => "অতীতে সময় নির্ধারণ করা সম্ভব নয়"; + + @override + String get editDescription => "বিবরণ সম্পাদনা করুন"; + @override + String get editProject => "প্রকল্প সম্পাদনা করুন"; + @override + String get cancel => "বাতিল করুন"; + @override + String get submit => "জমা দিন"; + + @override + String get saveChangesConfirmation => + 'আপনি কি পরিবর্তনগুলি সংরক্ষণ করতে চান?'; + @override + String get yes => 'হ্যাঁ'; + @override + String get no => 'না'; + @override + String get reviewChanges => 'পরিবর্তন পর্যালোচনা করুন'; + @override + String get oldChanges => 'পুরানো'; + @override + String get newChanges => 'নতুন'; + + @override + String get tags => 'ট্যাগ'; + @override + String get addedTagsWillAppearHere => 'যোগ করা ট্যাগ এখানে প্রদর্শিত হবে'; + @override + String get addTag => 'ট্যাগ যোগ করুন'; + + @override + String get enterProject => 'প্রকল্প প্রবেশ করান'; + @override + String get allProjects => 'সমস্ত প্রকল্প'; + @override + String get noProjectsFound => 'কোনো প্রকল্প পাওয়া যায়নি'; + @override + String get project => 'প্রকল্প'; + + @override + String get select => 'নির্বাচন করুন'; + @override + String get save => 'সংরক্ষণ করুন'; + @override + String get dontSave => 'সংরক্ষণ করবেন না'; + @override + String get unsavedChanges => 'সংরক্ষিত নয় এমন পরিবর্তন'; + @override + String get unsavedChangesWarning => + 'আপনার পরিবর্তনগুলি সংরক্ষিত হয়নি। আপনি কি করতে চান?'; + @override + String get enterNew => 'নতুন লিখুন'; + @override + String get edit => 'সম্পাদনা করুন'; + @override + String get task => 'টাস্ক'; + +// task action strings + @override + String get confirmDeleteTask => 'মুছে ফেলার নিশ্চয়তা দিন'; + @override + String get taskUpdated => 'টাস্ক আপডেট হয়েছে'; + @override + String get undo => 'পূর্বাবস্থায় ফেরান'; + @override + String get taskMarkedAsCompleted => + 'টাস্ক সম্পন্ন হয়েছে। পরিবর্তন দেখতে রিফ্রেশ করুন!'; + @override + String get taskMarkedAsDeleted => + 'টাস্ক মুছে ফেলা হয়েছে। পরিবর্তন দেখতে রিফ্রেশ করুন!'; + @override + String get refreshToViewChanges => 'পরিবর্তন দেখতে রিফ্রেশ করুন'; + @override + String get clickOnBottomRightButtonToStartAddingTasks => + 'টাস্ক যোগ করতে নিচের ডানদিকের বোতামে ক্লিক করুন'; + @override + String get complete => 'সম্পন্ন'; + @override + String get delete => 'মুছে ফেলুন'; + +// task server management strings + @override + String get taskServerInfo => 'TaskD সার্ভারের তথ্য'; + @override + String get taskServerCredentials => 'TaskD সার্ভারের শংসাপত্র'; + @override + String get notConfigured => 'কনফিগার করা হয়নি'; + @override + String get fetchingStatistics => 'পরিসংখ্যান আনা হচ্ছে...'; + @override + String get pleaseWait => 'অনুগ্রহ করে অপেক্ষা করুন...'; + @override + String get statistics => 'পরিসংখ্যান:'; + @override + String get ok => 'ঠিক আছে'; + @override + String get pleaseSetupTaskServer => + 'অনুগ্রহ করে আপনার TaskD সার্ভার সেটআপ করুন।'; + +// onboarding strings + @override + String get onboardingSkip => 'এড়িয়ে যান'; + @override + String get onboardingNext => 'পরবর্তী'; + @override + String get onboardingStart => 'শুরু করুন'; + +// permission strings + @override + String get permissionPageTitle => 'আমাদের আপনার অনুমতি কেন দরকার'; + @override + String get storagePermissionTitle => 'সংগ্রহস্থল অনুমতি'; + @override + String get storagePermissionDescription => + 'আপনার ডিভাইসে টাস্ক, পছন্দ এবং অ্যাপের ডেটা নিরাপদে সংরক্ষণ করতে আমরা ' + 'সংগ্রহস্থল অ্যাক্সেস ব্যবহার করি। এটি নিশ্চিত করে যে আপনি অফলাইনে থাকলেও ' + 'আপনার কাজ অব্যাহত রাখতে পারবেন।'; + @override + String get notificationPermissionTitle => 'বিজ্ঞপ্তি অনুমতি'; + @override + String get notificationPermissionDescription => + 'বিজ্ঞপ্তি আপনাকে গুরুত্বপূর্ণ অনুস্মারক এবং আপডেটগুলির বিষয়ে অবহিত রাখে, ' + 'যাতে আপনি সহজেই আপনার কাজ পরিচালনা করতে পারেন।'; + @override + String get privacyStatement => + 'আপনার গোপনীয়তা আমাদের অগ্রাধিকার। আমরা আপনার ফাইল বা ব্যক্তিগত ডেটা ' + 'আপনার অনুমতি ছাড়া কখনও অ্যাক্সেস বা ভাগ করি না।'; + @override + String get grantPermissions => 'অনুমতি দিন'; + @override + String get managePermissionsLater => + 'আপনি পরে সেটিংস থেকে অনুমতিগুলি পরিচালনা করতে পারেন'; + +// Profile page strings + @override + String get profileAllProfiles => 'সমস্ত প্রোফাইল:'; + @override + String get profileSwitchedToProfile => 'প্রোফাইল পরিবর্তন করা হয়েছে'; + @override + String get profileAddedSuccessfully => 'প্রোফাইল সফলভাবে যোগ করা হয়েছে'; + @override + String get profileAdditionFailed => 'প্রোফাইল যোগ করা ব্যর্থ হয়েছে'; + @override + String get profileConfigCopied => 'প্রোফাইল কনফিগারেশন কপি করা হয়েছে'; + @override + String get profileConfigCopyFailed => 'প্রোফাইল কনফিগারেশন কপি ব্যর্থ হয়েছে'; + @override + String get profileDeletedSuccessfully => 'প্রোফাইল সফলভাবে মুছে ফেলা হয়েছে'; + @override + String get profileDeletionFailed => 'প্রোফাইল মুছে ফেলা ব্যর্থ হয়েছে'; + @override + String get profileDeleteConfirmation => 'আপনি কি প্রোফাইল মুছে ফেলতে চান?'; + +// Reports strings + @override + String get reportsDate => 'তারিখ'; + @override + String get reportsPending => 'অপেক্ষমান'; + @override + String get reportsCompleted => 'সম্পন্ন'; + @override + String get reportsMonthYear => 'মাস-বছর'; + @override + String get reportsWeek => 'সপ্তাহ'; + @override + String get reportsDay => 'দিন'; + @override + String get reportsYear => 'বছর'; + @override + String get reportsError => 'ত্রুটি'; + @override + String get reportsLoading => 'লোড হচ্ছে...'; + +// Settings strings + @override + String get settingsResetToDefault => 'ডিফল্টে রিসেট করুন'; + @override + String get settingsAlreadyDefault => 'ইতিমধ্যে ডিফল্ট অবস্থানে রয়েছে'; + @override + String get settingsConfirmReset => + 'আপনি কি নিশ্চিত যে আপনি সেটিংস ডিফল্টে রিসেট করতে চান?'; + @override + String get settingsNoButton => 'না'; + @override + String get settingsYesButton => 'হ্যাঁ'; + +// Splash screen strings + @override + String get splashSettingUpApp => "অ্যাপ সেটআপ করা হচ্ছে..."; + +// Tour strings + @override + String get tourHomeAddTask => "নতুন টাস্ক যোগ করুন"; + @override + String get tourHomeSearch => "টাস্ক অনুসন্ধান করুন"; + @override + String get tourHomeRefresh => "আপনার টাস্ক রিফ্রেশ বা সিঙ্ক করুন"; + @override + String get tourHomeFilter => "টাস্ক ও প্রকল্প ফিল্টার করুন"; + @override + String get tourHomeMenu => "অতিরিক্ত সেটিংস অ্যাক্সেস করুন"; + + @override + String get tourDetailsDue => "টাস্কের নির্ধারিত সময় দেখুন"; + + @override + String get tourDetailsPriority => "টাস্কের অগ্রাধিকার নির্ধারণ করুন"; + + @override + String get tourDetailsUntil => "টাস্কের শেষ তারিখ দেখুন"; + + @override + String get tourDetailsWait => "টাস্কের অপেক্ষার সময় দেখুন"; + + @override + String get tourFilterProjects => "আপনার প্রকল্প ফিল্টার করুন"; + + @override + String get tourFilterSort => "টাস্ক সাজানোর বিকল্প দেখুন"; + + @override + String get tourFilterStatus => "টাস্কের বর্তমান অবস্থা দেখুন"; + + @override + String get tourFilterTagUnion => "ট্যাগ ফিল্টার করার নিয়ম সেট করুন"; + + @override + String get tourProfileAddNew => "একটি নতুন প্রোফাইল যোগ করুন"; + + @override + String get tourProfileCurrent => "বর্তমান প্রোফাইল দেখুন"; + + @override + String get tourProfileManage => "আপনার প্রোফাইল পরিচালনা করুন"; + + @override + String get tourReportsDaily => "দৈনিক প্রতিবেদন দেখুন"; + + @override + String get tourReportsMonthly => "মাসিক প্রতিবেদন দেখুন"; + + @override + String get tourReportsWeekly => "সাপ্তাহিক প্রতিবেদন দেখুন"; + + @override + String get tourTaskServerCertificate => + "আপনার TaskD সার্ভারের সার্টিফিকেট যোগ করুন"; + + @override + String get tourTaskServerKey => "আপনার TaskD সার্ভারের কী সেট করুন"; + + @override + String get tourTaskServerRootCert => "Root সার্টিফিকেট কনফিগার করুন"; + + @override + String get tourTaskServerTaskRC => "আপনার TaskRC ফাইল সেট করুন"; } diff --git a/lib/app/utils/language/english_sentences.dart b/lib/app/utils/language/english_sentences.dart index 8a9ddf4f..6f21811f 100644 --- a/lib/app/utils/language/english_sentences.dart +++ b/lib/app/utils/language/english_sentences.dart @@ -34,6 +34,16 @@ class EnglishSentences extends Sentences { String get homePageSearchNotFound => 'Search Not Found'; @override String get homePageFetchingTasks => 'Fetching Tasks'; + @override + String get homePageSearchTooltip => 'Search'; + @override + String get homePageCancelSearchTooltip => 'Cancel'; + @override + String get homePageAddTaskTooltip => 'Add Task'; + @override + String get homePageTapBackToExit => 'Tap back again to exit'; + @override + String get homePageSearchHint => 'Search'; @override String get settingsPageTitle => 'Settings Page'; @@ -87,6 +97,8 @@ class EnglishSentences extends Sentences { String get navDrawerSettings => 'Settings'; @override String get navDrawerExit => 'Exit'; + @override + String get navDrawerConfirm => 'Confirm'; @override String get detailPageDescription => 'Description'; @@ -156,6 +168,8 @@ class EnglishSentences extends Sentences { @override String get filterDrawerStatus => 'Status'; @override + String get filterDrawerNoProjectsAvailable => 'No projects available.'; + @override String get reportsPageTitle => 'Reports'; @override String get reportsPageCompleted => 'Completed'; @@ -316,4 +330,268 @@ class EnglishSentences extends Sentences { "This project aims to build an app for Taskwarrior. It is your task management app across all platforms. It helps you manage your tasks and filter them as per your needs."; @override String get aboutPageAppBarTitle => "About"; + + @override + String get version => "Version"; + @override + String get package => "Package"; + + @override + String get notSelected => "Not Selected"; + @override + String get cantSetTimeinPast => "Can't set times in the past"; + + @override + String get editDescription => "Edit Description"; + @override + String get editProject => "Edit Project"; + @override + String get cancel => "Cancel"; + @override + String get submit => "Submit"; + + @override + String get saveChangesConfirmation => 'Do you want to save changes?'; + @override + String get yes => 'Yes'; + @override + String get no => 'No'; + @override + String get reviewChanges => 'Review Changes'; + @override + String get oldChanges => 'Old'; + @override + String get newChanges => 'New'; + + @override + String get tags => 'Tags'; + @override + String get addedTagsWillAppearHere => 'Added tags will appear here'; + @override + String get addTag => 'Add Tag'; + + @override + String get enterProject => 'Enter Project'; + @override + String get allProjects => 'All Projects'; + @override + String get noProjectsFound => 'No Projects Found'; + @override + String get project => 'Project'; + + @override + String get select => 'Select'; + @override + String get save => 'Save'; + @override + String get dontSave => 'Don\'t Save'; + @override + String get unsavedChanges => 'Unsaved Changes'; + @override + String get unsavedChangesWarning => + 'You have unsaved changes. What would you like to do?'; + @override + String get enterNew => 'Enter New'; + @override + String get edit => 'Edit'; + @override + String get task => 'Task'; + + // task action strings + @override + String get confirmDeleteTask => 'Confirm Delete'; + @override + String get taskUpdated => 'Task Updated'; + @override + String get undo => 'Undo'; + @override + String get taskMarkedAsCompleted => + 'Task Marked As Completed. Refresh to view changes!'; + @override + String get taskMarkedAsDeleted => + 'Task Marked As Deleted. Refresh to view changes!'; + @override + String get refreshToViewChanges => 'Refresh to view changes'; + @override + String get clickOnBottomRightButtonToStartAddingTasks => + 'Click on the bottom right button to start adding tasks'; + @override + String get complete => 'COMPLETE'; + @override + String get delete => 'DELETE'; + + // task server management strings + @override + String get taskServerInfo => 'TaskD Server Info'; + @override + String get taskServerCredentials => 'TaskD Server Credentials'; + @override + String get notConfigured => 'Not Configured'; + @override + String get fetchingStatistics => 'Fetching statistics...'; + @override + String get pleaseWait => 'Please wait...'; + @override + String get statistics => 'Statistics:'; + @override + String get ok => 'Ok'; + @override + String get pleaseSetupTaskServer => 'Please set up your TaskServer.'; + + // onboarding strings + @override + String get onboardingSkip => 'Skip'; + @override + String get onboardingNext => 'Next'; + @override + String get onboardingStart => 'Start'; + + // permission strings + @override + String get permissionPageTitle => 'Why We Need Your Permission'; + @override + String get storagePermissionTitle => 'Storage Permission'; + @override + String get storagePermissionDescription => + 'We use storage access to save your tasks, preferences, ' + 'and app data securely on your device. This ensures that you can ' + 'pick up where you left off seamlessly, even offline.'; + @override + String get notificationPermissionTitle => 'Notification Permission'; + @override + String get notificationPermissionDescription => + 'Notifications keep you updated with important reminders ' + 'and updates, ensuring you stay on top of your tasks effortlessly.'; + @override + String get privacyStatement => + 'Your privacy is our top priority. We never access or share your ' + 'personal files or data without your consent.'; + @override + String get grantPermissions => 'Grant Permissions'; + @override + String get managePermissionsLater => + 'You can manage your permissions anytime later in Settings'; + + // Profile page strings + @override + String get profileAllProfiles => 'All Profiles:'; + @override + String get profileSwitchedToProfile => 'Switched to Profile'; + @override + String get profileAddedSuccessfully => 'Profile Added Successfully'; + @override + String get profileAdditionFailed => 'Profile Addition Failed'; + @override + String get profileConfigCopied => 'Profile Config Copied'; + @override + String get profileConfigCopyFailed => 'Profile Config Copy Failed'; + @override + String get profileDeletedSuccessfully => 'Deleted Successfully'; + @override + String get profileDeletionFailed => 'Deletion Failed'; + @override + String get profileDeleteConfirmation => 'Confirm'; + + // Reports strings + @override + String get reportsDate => 'Date'; + @override + String get reportsPending => 'Pending'; + @override + String get reportsCompleted => 'Completed'; + @override + String get reportsMonthYear => 'Month-Year'; + @override + String get reportsWeek => 'Week'; + @override + String get reportsDay => 'Day'; + @override + String get reportsYear => 'Year'; + @override + String get reportsError => 'Error'; + @override + String get reportsLoading => 'Loading...'; + + // Settings strings + @override + String get settingsResetToDefault => 'Reset to default'; + @override + String get settingsAlreadyDefault => 'Already default'; + @override + String get settingsConfirmReset => + 'Are you sure you want to reset the directory to the default?'; + @override + String get settingsNoButton => 'No'; + @override + String get settingsYesButton => 'Yes'; + + // Splash screen strings + @override + String get splashSettingUpApp => "Setting up the app..."; + + // Tour strings - reports + @override + String get tourReportsDaily => "Access your daily task report here"; + @override + String get tourReportsWeekly => "Access your weekly task reports here"; + @override + String get tourReportsMonthly => "Access your monthly task reports here"; + + // Tour strings - profile + @override + String get tourProfileCurrent => "See your current profile here"; + @override + String get tourProfileManage => "Manage your current profile here"; + @override + String get tourProfileAddNew => "Add a new profile here"; + + // Tour strings - task server + @override + String get tourTaskServerTaskRC => + "Select the file named taskrc here or paste it's content"; + @override + String get tourTaskServerCertificate => + "Select file similarly named like .com.cert.pem here"; + @override + String get tourTaskServerKey => + "Select file similarly named like .key.pem here"; + @override + String get tourTaskServerRootCert => + "Select file similarly named like letsencrypt_root_cert.pem here"; + + // Tour strings - home page + @override + String get tourHomeAddTask => "Add a new task"; + @override + String get tourHomeSearch => "Search for tasks"; + @override + String get tourHomeRefresh => "Refresh or sync your tasks"; + @override + String get tourHomeFilter => "Add filters to sort your tasks and projects"; + @override + String get tourHomeMenu => "Access additional settings here"; + + // Tour strings - filter drawer + @override + String get tourFilterStatus => + "Filter tasks based on their completion status"; + @override + String get tourFilterProjects => "Filter tasks based on the projects"; + @override + String get tourFilterTagUnion => "Toggle between AND and OR tag union types"; + @override + String get tourFilterSort => + "Sort tasks based on time of creation, urgency, due date, start date, etc."; + + // Tour strings - details page + @override + String get tourDetailsDue => "This signifies the due date of the task"; + @override + String get tourDetailsWait => + "This signifies the waiting date of the task \n Task will be visible after this date"; + @override + String get tourDetailsUntil => "This shows the last date of the task"; + @override + String get tourDetailsPriority => + "This is the priority of the Tasks \n L -> Low \n M -> Medium \n H -> Hard"; } diff --git a/lib/app/utils/language/french_sentences.dart b/lib/app/utils/language/french_sentences.dart index a2a800eb..124f61f2 100644 --- a/lib/app/utils/language/french_sentences.dart +++ b/lib/app/utils/language/french_sentences.dart @@ -324,4 +324,298 @@ class FrenchSentences extends Sentences { "Ce projet vise à créer une application pour Taskwarrior. C'est votre application de gestion des tâches sur toutes les plateformes. Elle vous aide à gérer vos tâches et à les filtrer selon vos besoins."; @override String get aboutPageAppBarTitle => "À propos"; + + @override + String get homePageSearchTooltip => 'Rechercher'; + @override + String get homePageCancelSearchTooltip => 'Annuler'; + @override + String get homePageAddTaskTooltip => 'Ajouter une tâche'; + @override + String get homePageTapBackToExit => 'Appuyez de nouveau pour quitter'; + @override + String get homePageSearchHint => 'Rechercher'; + + @override + String get navDrawerConfirm => 'Confirmer'; + + @override + String get filterDrawerNoProjectsAvailable => 'Aucun projet disponible.'; + + @override + String get version => "Version"; + @override + String get package => "Package"; + + @override + String get notSelected => "Non sélectionné"; + @override + String get cantSetTimeinPast => "Impossible de définir une date passée"; + + @override + String get editDescription => "Modifier la description"; + @override + String get editProject => "Modifier le projet"; + @override + String get cancel => "Annuler"; + @override + String get submit => "Soumettre"; + + @override + String get saveChangesConfirmation => + 'Voulez-vous enregistrer les modifications ?'; + @override + String get yes => 'Oui'; + @override + String get no => 'Non'; + @override + String get reviewChanges => 'Revoir les modifications'; + @override + String get oldChanges => 'Ancien'; + @override + String get newChanges => 'Nouveau'; + + @override + String get tags => 'Tags'; + @override + String get addedTagsWillAppearHere => 'Les tags ajoutés apparaîtront ici'; + @override + String get addTag => 'Ajouter un tag'; + + @override + String get enterProject => 'Entrer un projet'; + @override + String get allProjects => 'Tous les projets'; + @override + String get noProjectsFound => 'Aucun projet trouvé'; + @override + String get project => 'Projet'; + + @override + String get select => 'Sélectionner'; + @override + String get save => 'Enregistrer'; + @override + String get dontSave => 'Ne pas enregistrer'; + @override + String get unsavedChanges => 'Modifications non enregistrées'; + @override + String get unsavedChangesWarning => + 'Vous avez des modifications non enregistrées. Que souhaitez-vous faire ?'; + @override + String get enterNew => 'Entrer une nouvelle'; + @override + String get edit => 'Modifier'; + @override + String get task => 'Tâche'; + +// Chaînes d'actions des tâches + @override + String get confirmDeleteTask => 'Confirmer la suppression'; + @override + String get taskUpdated => 'Tâche mise à jour'; + @override + String get undo => 'Annuler'; + @override + String get taskMarkedAsCompleted => + 'Tâche marquée comme terminée. Rafraîchissez pour voir les modifications !'; + @override + String get taskMarkedAsDeleted => + 'Tâche marquée comme supprimée. Rafraîchissez pour voir les modifications !'; + @override + String get refreshToViewChanges => 'Rafraîchir pour voir les modifications'; + @override + String get clickOnBottomRightButtonToStartAddingTasks => + 'Cliquez sur le bouton en bas à droite pour commencer à ajouter des tâches'; + @override + String get complete => 'TERMINER'; + @override + String get delete => 'SUPPRIMER'; + +// Gestion du serveur de tâches + @override + String get taskServerInfo => 'Informations du serveur TaskD'; + @override + String get taskServerCredentials => 'Identifiants du serveur TaskD'; + @override + String get notConfigured => 'Non configuré'; + @override + String get fetchingStatistics => 'Récupération des statistiques...'; + @override + String get pleaseWait => 'Veuillez patienter...'; + @override + String get statistics => 'Statistiques :'; + @override + String get ok => 'Ok'; + @override + String get pleaseSetupTaskServer => + 'Veuillez configurer votre serveur TaskD.'; + +// Chaînes d'intégration + @override + String get onboardingSkip => 'Passer'; + @override + String get onboardingNext => 'Suivant'; + @override + String get onboardingStart => 'Commencer'; + +// Chaînes des permissions + @override + String get permissionPageTitle => + 'Pourquoi avons-nous besoin de votre autorisation'; + @override + String get storagePermissionTitle => 'Autorisation de stockage'; + @override + String get storagePermissionDescription => + 'Nous utilisons l\'accès au stockage pour enregistrer vos tâches, ' + 'préférences et données de l\'application en toute sécurité sur votre appareil. ' + 'Cela vous permet de reprendre votre travail là où vous l\'avez laissé, même hors ligne.'; + @override + String get notificationPermissionTitle => 'Autorisation de notifications'; + @override + String get notificationPermissionDescription => + 'Les notifications vous tiennent informé des rappels importants et des mises à jour, ' + 'vous aidant à rester organisé sans effort.'; + @override + String get privacyStatement => + 'Votre vie privée est notre priorité. Nous n\'accédons jamais à vos fichiers personnels ' + 'ni ne partageons vos données sans votre consentement.'; + @override + String get grantPermissions => 'Accorder les autorisations'; + @override + String get managePermissionsLater => + 'Vous pouvez gérer vos autorisations plus tard dans les paramètres'; + +// Chaînes de la page de profil + @override + String get profileAllProfiles => 'Tous les profils :'; + @override + String get profileSwitchedToProfile => 'Changé de profil'; + @override + String get profileAddedSuccessfully => 'Profil ajouté avec succès'; + @override + String get profileAdditionFailed => 'Échec de l\'ajout du profil'; + @override + String get profileConfigCopied => 'Configuration du profil copiée'; + @override + String get profileConfigCopyFailed => + 'Échec de la copie de la configuration du profil'; + @override + String get profileDeletedSuccessfully => 'Supprimé avec succès'; + @override + String get profileDeletionFailed => 'Échec de la suppression'; + @override + String get profileDeleteConfirmation => 'Confirmer'; + +// Chaînes des rapports + @override + String get reportsDate => 'Date'; + @override + String get reportsPending => 'En attente'; + @override + String get reportsCompleted => 'Terminé'; + @override + String get reportsMonthYear => 'Mois-Année'; + @override + String get reportsWeek => 'Semaine'; + @override + String get reportsDay => 'Jour'; + @override + String get reportsYear => 'Année'; + @override + String get reportsError => 'Erreur'; + @override + String get reportsLoading => 'Chargement...'; + +// Chaînes des paramètres + @override + String get settingsResetToDefault => 'Réinitialiser par défaut'; + @override + String get settingsAlreadyDefault => 'Déjà par défaut'; + @override + String get settingsConfirmReset => + 'Êtes-vous sûr de vouloir réinitialiser le répertoire aux paramètres par défaut ?'; + @override + String get settingsNoButton => 'Non'; + @override + String get settingsYesButton => 'Oui'; + +// Chaînes de l'écran de démarrage + @override + String get splashSettingUpApp => "Configuration de l'application..."; + +// Chaînes du tour - rapports + @override + String get tourReportsDaily => + "Accédez à votre rapport quotidien des tâches ici"; + @override + String get tourReportsWeekly => + "Accédez à vos rapports hebdomadaires des tâches ici"; + @override + String get tourReportsMonthly => + "Accédez à vos rapports mensuels des tâches ici"; + +// Chaînes du tour - profil + @override + String get tourProfileCurrent => "Voir votre profil actuel ici"; + @override + String get tourProfileManage => "Gérez votre profil actuel ici"; + @override + String get tourProfileAddNew => "Ajoutez un nouveau profil ici"; + +// Chaînes du tour - serveur de tâches + @override + String get tourTaskServerTaskRC => + "Sélectionnez le fichier nommé taskrc ici ou collez son contenu"; + @override + String get tourTaskServerCertificate => + "Sélectionnez le fichier nommé comme .com.cert.pem ici"; + @override + String get tourTaskServerKey => + "Sélectionnez le fichier nommé comme .key.pem ici"; + @override + String get tourTaskServerRootCert => + "Sélectionnez le fichier nommé comme letsencrypt_root_cert.pem ici"; + +// Chaînes du tour - page d'accueil + @override + String get tourHomeAddTask => "Ajouter une nouvelle tâche"; + @override + String get tourHomeSearch => "Rechercher des tâches"; + @override + String get tourHomeRefresh => "Rafraîchir ou synchroniser vos tâches"; + @override + String get tourHomeFilter => + "Ajouter des filtres pour trier vos tâches et projets"; + @override + String get tourHomeMenu => "Accéder aux paramètres supplémentaires ici"; + + @override + String get tourDetailsDue => "Cela signifie la date d'échéance de la tâche"; + + @override + String get tourDetailsPriority => + "Ceci est la priorité des tâches \n L -> Faible \n M -> Moyenne \n H -> Élevée"; + + @override + String get tourDetailsUntil => "Cela montre la dernière date de la tâche"; + + @override + String get tourDetailsWait => + "Cela signifie la date d'attente de la tâche \n La tâche sera visible après cette date"; + + @override + String get tourFilterProjects => "Filtrer les tâches en fonction des projets"; + + @override + String get tourFilterSort => + "Trier les tâches en fonction de la date de création, de l'urgence, de la date d'échéance, de la date de début, etc."; + + @override + String get tourFilterStatus => + "Filtrer les tâches en fonction de leur état d'achèvement"; + + @override + String get tourFilterTagUnion => + "Basculer entre les types d'union de balises ET et OU"; } diff --git a/lib/app/utils/language/hindi_sentences.dart b/lib/app/utils/language/hindi_sentences.dart index 3584daaf..f1850160 100644 --- a/lib/app/utils/language/hindi_sentences.dart +++ b/lib/app/utils/language/hindi_sentences.dart @@ -33,6 +33,17 @@ class HindiSentences extends Sentences { String get homePageSearchNotFound => 'खोजने पर नहीं मिला'; @override String get homePageFetchingTasks => 'कार्य लाये जा रहे हैं'; + @override + String get homePageSearchTooltip => 'खोजें'; + @override + String get homePageCancelSearchTooltip => 'रद्द करें'; + @override + String get homePageAddTaskTooltip => 'कार्य जोड़ें'; + @override + String get homePageTapBackToExit => 'बाहर निकलने के लिए फिर से वापस दबाएं'; + @override + String get homePageSearchHint => 'खोजें'; + @override String get settingsPageTitle => 'सेटिंग्स पेज'; @override @@ -87,6 +98,8 @@ class HindiSentences extends Sentences { String get navDrawerSettings => 'सेटिंग्स'; @override String get navDrawerExit => 'बाहर जाओ'; + @override + String get navDrawerConfirm => 'पुष्टि करें'; @override String get detailPageDescription => 'विवरण'; @@ -156,6 +169,8 @@ class HindiSentences extends Sentences { @override String get filterDrawerStatus => 'स्थिती'; @override + String get filterDrawerNoProjectsAvailable => 'कोई परियोजना उपलब्ध नहीं।'; + @override String get reportsPageTitle => 'रिपोर्ट्स'; @override String get reportsPageCompleted => 'पूर्ण'; @@ -321,4 +336,252 @@ class HindiSentences extends Sentences { "यह परियोजना Taskwarrior के लिए एक ऐप बनाने का लक्ष्य रखती है। यह आपके सभी प्लेटफार्मों पर कार्य प्रबंधन ऐप है। यह आपको अपने कार्यों को प्रबंधित करने और उन्हें अपनी आवश्यकताओं के अनुसार छानने में मदद करता है।"; @override String get aboutPageAppBarTitle => "के बारे में"; + + @override + String get version => "संस्करण"; + @override + String get package => "पैकेज"; + + @override + String get notSelected => "चयनित नहीं"; + @override + String get cantSetTimeinPast => "पिछले समय को सेट नहीं कर सकते"; + + @override + String get editDescription => "विवरण संपादित करें"; + @override + String get editProject => "परियोजना संपादित करें"; + @override + String get cancel => "रद्द करें"; + @override + String get submit => "जमा करें"; + + @override + String get saveChangesConfirmation => 'क्या आप परिवर्तन सहेजना चाहते हैं?'; + @override + String get yes => 'हाँ'; + @override + String get no => 'नहीं'; + @override + String get reviewChanges => 'परिवर्तनों की समीक्षा करें'; + @override + String get oldChanges => 'पुराना'; + @override + String get newChanges => 'नया'; + + @override + String get tags => 'टैग'; + @override + String get addedTagsWillAppearHere => 'जोड़े गए टैग यहाँ दिखाई देंगे'; + @override + String get addTag => 'टैग जोड़ें'; + + @override + String get enterProject => 'परियोजना दर्ज करें'; + @override + String get allProjects => 'सभी परियोजनाएँ'; + @override + String get noProjectsFound => 'कोई परियोजना नहीं मिली'; + @override + String get project => 'परियोजना'; + + @override + String get select => 'चुनें'; + @override + String get save => 'सहेजें'; + @override + String get dontSave => 'सहेजें नहीं'; + @override + String get unsavedChanges => 'असहेजित परिवर्तन'; + @override + String get unsavedChangesWarning => + 'आपके पास असहेजित परिवर्तन हैं। आप क्या करना चाहेंगे?'; + @override + String get enterNew => 'नया दर्ज करें'; + @override + String get edit => 'संपादित करें'; + @override + String get task => 'कार्य'; + + @override + String get confirmDeleteTask => 'हटाने की पुष्टि करें'; + @override + String get taskUpdated => 'कार्य अपडेट किया गया'; + @override + String get undo => 'पूर्ववत करें'; + @override + String get taskMarkedAsCompleted => + 'कार्य को पूर्ण रूप में चिह्नित किया गया। परिवर्तनों को देखने के लिए रिफ्रेश करें!'; + @override + String get taskMarkedAsDeleted => + 'कार्य को हटाए गए रूप में चिह्नित किया गया। परिवर्तनों को देखने के लिए रिफ्रेश करें!'; + @override + String get refreshToViewChanges => 'परिवर्तनों को देखने के लिए रिफ्रेश करें'; + @override + String get clickOnBottomRightButtonToStartAddingTasks => + 'कार्य जोड़ने के लिए नीचे दाईं ओर बटन पर क्लिक करें'; + @override + String get complete => 'पूर्ण'; + @override + String get delete => 'हटाएँ'; + + @override + String get taskServerInfo => 'टास्क सर्वर जानकारी'; + @override + String get taskServerCredentials => 'टास्क सर्वर क्रेडेंशियल'; + @override + String get notConfigured => 'कॉन्फ़िगर नहीं किया गया'; + @override + String get fetchingStatistics => 'सांख्यिकी लाया जा रहा है...'; + @override + String get pleaseWait => 'कृपया प्रतीक्षा करें...'; + @override + String get statistics => 'सांख्यिकी:'; + @override + String get ok => 'ठीक'; + @override + String get pleaseSetupTaskServer => 'कृपया अपना टास्क सर्वर सेट करें।'; + + @override + String get onboardingSkip => 'छोड़ें'; + @override + String get onboardingNext => 'अगला'; + @override + String get onboardingStart => 'शुरू करें'; + + @override + String get permissionPageTitle => 'हमें आपकी अनुमति की आवश्यकता क्यों है'; + @override + String get storagePermissionTitle => 'संग्रहण अनुमति'; + @override + String get storagePermissionDescription => + 'हम आपके कार्य, प्राथमिकताएँ, और ऐप डेटा सुरक्षित रूप से सहेजने के लिए ' + 'संग्रहण पहुँच का उपयोग करते हैं, जिससे आप किसी भी समय ऑफ़लाइन भी कार्य जारी रख सकते हैं।'; + @override + String get notificationPermissionTitle => 'सूचना अनुमति'; + @override + String get notificationPermissionDescription => + 'सूचनाएँ आपको महत्वपूर्ण अनुस्मारक और अपडेट देती हैं, जिससे आप अपने कार्यों को आसानी से प्रबंधित कर सकते हैं।'; + @override + String get privacyStatement => + 'आपकी गोपनीयता हमारी प्राथमिकता है। हम आपकी व्यक्तिगत फ़ाइलें या डेटा आपकी सहमति के बिना कभी भी एक्सेस या साझा नहीं करते।'; + @override + String get grantPermissions => 'अनुमतियाँ दें'; + @override + String get managePermissionsLater => + 'आप बाद में सेटिंग्स में अपनी अनुमतियाँ प्रबंधित कर सकते हैं'; + + @override + String get profileAllProfiles => 'सभी प्रोफाइल:'; + @override + String get profileSwitchedToProfile => 'प्रोफ़ाइल पर स्विच किया गया'; + @override + String get profileAddedSuccessfully => 'प्रोफ़ाइल सफलतापूर्वक जोड़ी गई'; + @override + String get profileAdditionFailed => 'प्रोफ़ाइल जोड़ना विफल रहा'; + @override + String get profileConfigCopied => 'प्रोफ़ाइल कॉन्फ़िग कॉपी किया गया'; + @override + String get profileConfigCopyFailed => 'प्रोफ़ाइल कॉन्फ़िग कॉपी विफल'; + @override + String get profileDeletedSuccessfully => 'सफलतापूर्वक हटाया गया'; + @override + String get profileDeletionFailed => 'हटाने में विफल'; + @override + String get profileDeleteConfirmation => 'पुष्टि करें'; + + @override + String get reportsDate => 'तारीख'; + @override + String get reportsPending => 'लंबित'; + @override + String get reportsCompleted => 'पूर्ण'; + @override + String get reportsMonthYear => 'महीना-वर्ष'; + @override + String get reportsWeek => 'सप्ताह'; + @override + String get reportsDay => 'दिन'; + @override + String get reportsYear => 'वर्ष'; + @override + String get reportsError => 'त्रुटि'; + @override + String get reportsLoading => 'लोड हो रहा है...'; + + @override + String get settingsResetToDefault => 'डिफ़ॉल्ट पर रीसेट करें'; + @override + String get settingsAlreadyDefault => 'पहले से डिफ़ॉल्ट'; + @override + String get settingsConfirmReset => + 'क्या आप वाकई निर्देशिका को डिफ़ॉल्ट पर रीसेट करना चाहते हैं?'; + @override + String get settingsNoButton => 'नहीं'; + @override + String get settingsYesButton => 'हाँ'; + + @override + String get splashSettingUpApp => "ऐप सेटअप किया जा रहा है..."; + + @override + String get tourReportsDaily => "यहाँ अपनी दैनिक कार्य रिपोर्ट देखें"; + @override + String get tourReportsWeekly => "यहाँ अपनी साप्ताहिक कार्य रिपोर्ट देखें"; + @override + String get tourReportsMonthly => "यहाँ अपनी मासिक कार्य रिपोर्ट देखें"; + + @override + String get tourProfileCurrent => "यहाँ अपनी वर्तमान प्रोफ़ाइल देखें"; + @override + String get tourProfileManage => "यहाँ अपनी वर्तमान प्रोफ़ाइल प्रबंधित करें"; + @override + String get tourProfileAddNew => "यहाँ नई प्रोफ़ाइल जोड़ें"; + + @override + String get tourHomeAddTask => "नया कार्य जोड़ें"; + @override + String get tourHomeSearch => "कार्य खोजें"; + @override + String get tourHomeRefresh => "अपने कार्यों को ताज़ा करें या सिंक करें"; + @override + String get tourHomeFilter => "कार्य और परियोजनाओं को फ़िल्टर करें"; + @override + String get tourHomeMenu => "यहाँ अतिरिक्त सेटिंग्स एक्सेस करें"; + + @override + String get tourFilterStatus => + "कार्य की पूर्णता स्थिति के आधार पर फ़िल्टर करें"; + @override + String get tourFilterProjects => "परियोजनाओं के आधार पर कार्य फ़िल्टर करें"; + @override + String get tourFilterTagUnion => + "AND और OR टैग यूनियन प्रकारों के बीच टॉगल करें"; + @override + String get tourFilterSort => + "निर्माण समय, तात्कालिकता, नियत तिथि, प्रारंभ तिथि आदि के आधार पर कार्यों को क्रमबद्ध करें।"; + + @override + String get tourDetailsDue => "यह कार्य की नियत तिथि को दर्शाता है"; + @override + String get tourDetailsWait => + "यह कार्य की प्रतीक्षा तिथि को दर्शाता है \n कार्य इस तिथि के बाद दिखाई देगा"; + @override + String get tourDetailsUntil => "यह कार्य की अंतिम तिथि को दर्शाता है"; + @override + String get tourDetailsPriority => + "यह कार्यों की प्राथमिकता है \n L -> निम्न \n M -> मध्यम \n H -> उच्च"; + + @override + String get tourTaskServerTaskRC => + "यहां 'taskrc' नामक फ़ाइल चुनें या इसकी सामग्री पेस्ट करें"; + @override + String get tourTaskServerCertificate => + "इसी तरह नामित फ़ाइल चुनें, जैसे .com.cert.pem"; + @override + String get tourTaskServerKey => + "इसी तरह नामित फ़ाइल चुनें, जैसे .key.pem"; + @override + String get tourTaskServerRootCert => + "इसी तरह नामित फ़ाइल चुनें, जैसे letsencrypt_root_cert.pem"; } diff --git a/lib/app/utils/language/marathi_sentences.dart b/lib/app/utils/language/marathi_sentences.dart index 39907b5d..f774be44 100644 --- a/lib/app/utils/language/marathi_sentences.dart +++ b/lib/app/utils/language/marathi_sentences.dart @@ -320,4 +320,290 @@ class MarathiSentences extends Sentences { "या प्रकल्पाचे उद्दिष्ट Taskwarrior साठी एक अॅप तयार करणे आहे. हे आपल्या सर्व प्लॅटफॉर्मवरील कार्य व्यवस्थापन अॅप आहे. हे आपल्याला आपल्या कार्यांचे व्यवस्थापन करण्यात आणि त्यांना आपल्या गरजेनुसार फिल्टर करण्यात मदत करते."; @override String get aboutPageAppBarTitle => "विषयक"; + + // मुख्य पृष्ठ + @override + String get homePageSearchTooltip => 'शोधा'; + @override + String get homePageCancelSearchTooltip => 'रद्द करा'; + @override + String get homePageAddTaskTooltip => 'कार्य जोडा'; + @override + String get homePageTapBackToExit => 'बाहेर पडण्यासाठी पुन्हा मागे टॅप करा'; + @override + String get homePageSearchHint => 'शोधा'; + +// नेव्हिगेशन ड्रॉवर + @override + String get navDrawerConfirm => 'निश्चित करा'; + +// फिल्टर ड्रॉवर + @override + String get filterDrawerNoProjectsAvailable => 'कोणतेही प्रकल्प उपलब्ध नाहीत.'; + +// सामान्य सेटिंग्ज + @override + String get version => "आवृत्ती"; + @override + String get package => "पॅकेज"; + + @override + String get notSelected => "निवडलेले नाही"; + @override + String get cantSetTimeinPast => "मागील वेळ सेट करू शकत नाही"; + + @override + String get editDescription => "वर्णन संपादित करा"; + @override + String get editProject => "प्रकल्प संपादित करा"; + @override + String get cancel => "रद्द करा"; + @override + String get submit => "सबमिट करा"; + + @override + String get saveChangesConfirmation => 'तुम्हाला बदल जतन करायचे आहेत का?'; + @override + String get yes => 'होय'; + @override + String get no => 'नाही'; + @override + String get reviewChanges => 'बदल पहा'; + @override + String get oldChanges => 'जुने'; + @override + String get newChanges => 'नवीन'; + + @override + String get tags => 'टॅग्स'; + @override + String get addedTagsWillAppearHere => 'जोडलेले टॅग येथे दिसतील'; + @override + String get addTag => 'टॅग जोडा'; + + @override + String get enterProject => 'प्रकल्प प्रविष्ट करा'; + @override + String get allProjects => 'सर्व प्रकल्प'; + @override + String get noProjectsFound => 'प्रकल्प सापडले नाहीत'; + @override + String get project => 'प्रकल्प'; + + @override + String get select => 'निवडा'; + @override + String get save => 'जतन करा'; + @override + String get dontSave => 'जतन करू नका'; + @override + String get unsavedChanges => 'जतन न केलेले बदल'; + @override + String get unsavedChangesWarning => + 'तुमच्याकडे जतन न केलेले बदल आहेत. तुम्हाला काय करायचे आहे?'; + @override + String get enterNew => 'नवीन प्रविष्ट करा'; + @override + String get edit => 'संपादित करा'; + @override + String get task => 'कार्य'; + +// कार्य क्रिया + @override + String get confirmDeleteTask => 'हटवण्याची खात्री करा'; + @override + String get taskUpdated => 'कार्य अद्यतनित झाले'; + @override + String get undo => 'पूर्ववत करा'; + @override + String get taskMarkedAsCompleted => + 'कार्य पूर्ण म्हणून चिन्हांकित केले. बदल पाहण्यासाठी रीफ्रेश करा!'; + @override + String get taskMarkedAsDeleted => 'कार्य हटवले. बदल पाहण्यासाठी रीफ्रेश करा!'; + @override + String get refreshToViewChanges => 'बदल पाहण्यासाठी रीफ्रेश करा'; + @override + String get clickOnBottomRightButtonToStartAddingTasks => + 'कार्ये जोडण्यास सुरुवात करण्यासाठी खालील उजव्या कोपऱ्यातील बटणावर क्लिक करा'; + @override + String get complete => 'पूर्ण'; + @override + String get delete => 'हटवा'; + +// कार्य सर्व्हर व्यवस्थापन + @override + String get taskServerInfo => 'TaskD सर्व्हर माहिती'; + @override + String get taskServerCredentials => 'TaskD सर्व्हर क्रेडेन्शियल्स'; + @override + String get notConfigured => 'संयोजित नाही'; + @override + String get fetchingStatistics => 'आकडेवारी मिळवत आहोत...'; + @override + String get pleaseWait => 'कृपया प्रतीक्षा करा...'; + @override + String get statistics => 'आकडेवारी:'; + @override + String get ok => 'ठीक आहे'; + @override + String get pleaseSetupTaskServer => 'कृपया TaskServer सेटअप करा.'; + +// ऑनबोर्डिंग + @override + String get onboardingSkip => 'वगळा'; + @override + String get onboardingNext => 'पुढे'; + @override + String get onboardingStart => 'सुरु करा'; + +// परवानगी सेटिंग्ज + @override + String get permissionPageTitle => 'आम्हाला तुमच्या परवानगीची गरज का आहे'; + @override + String get storagePermissionTitle => 'साठवण परवानगी'; + @override + String get storagePermissionDescription => + 'तुमचे कार्य, प्राधान्ये आणि अ‍ॅप डेटा सुरक्षित ठेवण्यासाठी आम्ही स्टोरेज प्रवेशाचा उपयोग करतो.'; + @override + String get notificationPermissionTitle => 'सूचना परवानगी'; + @override + String get notificationPermissionDescription => + 'महत्वाच्या आठवणी आणि अद्यतनांसाठी सूचना आवश्यक आहेत.'; + @override + String get privacyStatement => + 'तुमचा गोपनीयता आमच्यासाठी महत्त्वाची आहे. आम्ही तुमचा डेटा शेअर करत नाही.'; + @override + String get grantPermissions => 'परवानगी द्या'; + @override + String get managePermissionsLater => + 'तुम्ही नंतर सेटिंग्जमध्ये परवानग्या व्यवस्थापित करू शकता'; + +// प्रोफाइल पृष्ठ + @override + String get profileAllProfiles => 'सर्व प्रोफाइल:'; + @override + String get profileSwitchedToProfile => 'प्रोफाइल स्विच केले'; + @override + String get profileAddedSuccessfully => 'प्रोफाइल यशस्वीरित्या जोडले'; + @override + String get profileAdditionFailed => 'प्रोफाइल जोडण्यात अयशस्वी'; + @override + String get profileConfigCopied => 'प्रोफाइल कॉन्फिगरेशन कॉपी केले'; + @override + String get profileConfigCopyFailed => + 'प्रोफाइल कॉन्फिगरेशन कॉपी करण्यात अयशस्वी'; + @override + String get profileDeletedSuccessfully => 'प्रोफाइल हटवले'; + @override + String get profileDeletionFailed => 'प्रोफाइल हटवण्यात अयशस्वी'; + @override + String get profileDeleteConfirmation => 'खात्री करा'; + +// अहवाल + @override + String get reportsDate => 'तारीख'; + @override + String get reportsPending => 'प्रलंबित'; + @override + String get reportsCompleted => 'पूर्ण झाले'; + @override + String get reportsMonthYear => 'महिना-वर्ष'; + @override + String get reportsWeek => 'आठवडा'; + @override + String get reportsDay => 'दिवस'; + @override + String get reportsYear => 'वर्ष'; + @override + String get reportsError => 'त्रुटी'; + @override + String get reportsLoading => 'लोड करत आहे...'; + +// सेटिंग्ज + @override + String get settingsResetToDefault => 'मूळ सेटिंग्जवर पुनर्स्थित करा'; + @override + String get settingsAlreadyDefault => 'मूळ सेटिंग्जमध्ये आधीच आहेत'; + @override + String get settingsConfirmReset => + 'तुम्हाला सेटिंग्ज डिफॉल्टवर रीसेट करायच्या आहेत का?'; + @override + String get settingsNoButton => 'नाही'; + @override + String get settingsYesButton => 'होय'; + +// स्प्लॅश स्क्रीन + @override + String get splashSettingUpApp => "अ‍ॅप सेटअप करत आहे..."; + +// टूर - अहवाल + @override + String get tourReportsDaily => "येथे तुमचा दैनंदिन अहवाल पहा"; + @override + String get tourReportsWeekly => "येथे तुमचा साप्ताहिक अहवाल पहा"; + @override + String get tourReportsMonthly => "येथे तुमचा मासिक अहवाल पहा"; + +// टूर - प्रोफाइल + @override + String get tourProfileCurrent => "सध्याचे प्रोफाइल पहा"; + @override + String get tourProfileManage => "तुमचे प्रोफाइल व्यवस्थापित करा"; + @override + String get tourProfileAddNew => "नवीन प्रोफाइल जोडा"; + +// टूर - मुख्य पृष्ठ + @override + String get tourHomeAddTask => "नवीन कार्य जोडा"; + @override + String get tourHomeSearch => "कार्य शोधा"; + @override + String get tourHomeRefresh => "तुमची कार्ये रीफ्रेश किंवा समक्रमित करा"; + @override + String get tourHomeFilter => "कार्ये आणि प्रकल्प फिल्टर करा"; + @override + String get tourHomeMenu => "अतिरिक्त सेटिंग्ज पहा"; + +// टूर - कार्य तपशील + @override + String get tourDetailsDue => "हे कार्याची अंतिम मुदत दर्शवते"; + @override + String get tourDetailsPriority => "हे कार्याची प्राधान्यता दर्शवते"; + + @override + String get tourDetailsUntil => "ही कार्याची अंतिम तारीख दर्शवते"; + + @override + String get tourDetailsWait => + "ही कार्याची प्रतीक्षा तारीख दर्शवते \n हे कार्य या तारखेनंतर दिसेल"; + + @override + String get tourFilterProjects => "प्रकल्पांवर आधारित कार्य फिल्टर करा"; + + @override + String get tourFilterSort => + "निर्मिती वेळ, तातडी, मुदत, प्रारंभ तारीख इत्यादीवर आधारित कार्य क्रमवारी लावा"; + + @override + String get tourFilterStatus => "पूर्णता स्थितीनुसार कार्य फिल्टर करा"; + + @override + String get tourFilterTagUnion => + "AND आणि OR टॅग युनियन प्रकारांमध्ये टॉगल करा"; + + @override + String get tourTaskServerCertificate => + "येथे तुमच्या ईमेलसह नाव असलेली फाईल निवडा (उदा. <तुमचा ईमेल>.com.cert.pem)"; + + @override + String get tourTaskServerKey => + "येथे तुमच्या ईमेलसह नाव असलेली फाईल निवडा (उदा. <तुमचा ईमेल>.key.pem)"; + + @override + String get tourTaskServerRootCert => + "येथे letsencrypt_root_cert.pem नाव असलेली फाईल निवडा"; + + @override + String get tourTaskServerTaskRC => + "येथे taskrc नावाची फाईल निवडा किंवा तिची सामग्री पेस्ट करा"; } diff --git a/lib/app/utils/language/sentences.dart b/lib/app/utils/language/sentences.dart index 5402cc96..287e9235 100644 --- a/lib/app/utils/language/sentences.dart +++ b/lib/app/utils/language/sentences.dart @@ -1,3 +1,5 @@ +import 'package:flutter/material.dart'; + abstract class Sentences { String get helloWorld; @@ -16,6 +18,15 @@ abstract class Sentences { String get homePageSearchNotFound; String get homePageFetchingTasks; + // app bar tooltips + String get homePageSearchTooltip; + String get homePageCancelSearchTooltip; + + // floating action button & home page texts + String get homePageAddTaskTooltip; + String get homePageTapBackToExit; + String get homePageSearchHint; + String get settingsPageTitle; String get settingsPageSubtitle; String get settingsPageMovingDataToNewDirectory; @@ -52,6 +63,7 @@ abstract class Sentences { String get deleteTaskConfirmation; String get deleteTaskWarning; String get navDrawerExit; + String get navDrawerConfirm; String get detailPageDescription; String get detailPageStatus; @@ -87,6 +99,7 @@ abstract class Sentences { String get filterDrawerUrgency; String get filterDrawerResetSort; String get filterDrawerStatus; + String get filterDrawerNoProjectsAvailable; String get reportsPageTitle; String get reportsPageCompleted; @@ -158,4 +171,150 @@ abstract class Sentences { String get aboutPageGitHubLink; String get aboutPageProjectDescription; String get aboutPageAppBarTitle; + + // about page + String get version; + String get package; + + // date time picker + String get notSelected; + String get cantSetTimeinPast; + + //description widget + String get editDescription; + String get editProject; + String get cancel; + String get submit; + + //detail view + String get saveChangesConfirmation; + String get yes; + String get no; + String get reviewChanges; + String get oldChanges; + String get newChanges; + + //tags widget + String get tags; + String get addedTagsWillAppearHere; + String get addTag; + + String get enterProject; + + String get allProjects; + String get noProjectsFound; + String get project; + + String get select; + String get save; + String get dontSave; + String get unsavedChanges; + String get unsavedChangesWarning; + String get enterNew; + String get edit; + String get task; + + // task action strings + String get confirmDeleteTask; + String get taskUpdated; + String get undo; + String get taskMarkedAsCompleted; + String get taskMarkedAsDeleted; + String get refreshToViewChanges; + String get clickOnBottomRightButtonToStartAddingTasks; + String get complete; + String get delete; + + // task server management strings + String get taskServerInfo; + String get taskServerCredentials; + String get notConfigured; + String get fetchingStatistics; + String get pleaseWait; + String get statistics; + String get ok; + String get pleaseSetupTaskServer; + + // onboarding strings + String get onboardingSkip; + String get onboardingNext; + String get onboardingStart; + + // permission strings + String get permissionPageTitle; + String get storagePermissionTitle; + String get storagePermissionDescription; + String get notificationPermissionTitle; + String get notificationPermissionDescription; + String get privacyStatement; + String get grantPermissions; + String get managePermissionsLater; + + // Profile page strings + String get profileAllProfiles; + String get profileSwitchedToProfile; + String get profileAddedSuccessfully; + String get profileAdditionFailed; + String get profileConfigCopied; + String get profileConfigCopyFailed; + String get profileDeletedSuccessfully; + String get profileDeletionFailed; + String get profileDeleteConfirmation; + + // Reports strings + String get reportsDate; + String get reportsPending; + String get reportsCompleted; + String get reportsMonthYear; + String get reportsWeek; + String get reportsDay; + String get reportsYear; + String get reportsError; + String get reportsLoading; + + // Settings strings + String get settingsResetToDefault; + String get settingsAlreadyDefault; + String get settingsConfirmReset; + String get settingsNoButton; + String get settingsYesButton; + + // Splash screen strings + String get splashSettingUpApp; + + // Tour strings - reports + String get tourReportsDaily; + String get tourReportsWeekly; + String get tourReportsMonthly; + + // Tour strings - profile + String get tourProfileCurrent; + String get tourProfileManage; + String get tourProfileAddNew; + + // Tour strings - task server + String get tourTaskServerTaskRC; + String get tourTaskServerCertificate; + String get tourTaskServerKey; + String get tourTaskServerRootCert; + + // Tour strings - home page + String get tourHomeAddTask; + String get tourHomeSearch; + String get tourHomeRefresh; + String get tourHomeFilter; + String get tourHomeMenu; + + // Tour strings - filter drawer + String get tourFilterStatus; + String get tourFilterProjects; + String get tourFilterTagUnion; + String get tourFilterSort; + + // Tour strings - details page + String get tourDetailsDue; + String get tourDetailsWait; + String get tourDetailsUntil; + String get tourDetailsPriority; + } diff --git a/lib/app/utils/language/spanish_sentences.dart b/lib/app/utils/language/spanish_sentences.dart index b0fca2e8..997d625c 100644 --- a/lib/app/utils/language/spanish_sentences.dart +++ b/lib/app/utils/language/spanish_sentences.dart @@ -322,4 +322,291 @@ class SpanishSentences extends Sentences { "Este proyecto tiene como objetivo construir una aplicación para Taskwarrior. Es su aplicación de gestión de tareas en todas las plataformas. Le ayuda a gestionar sus tareas y a filtrarlas según sus necesidades."; @override String get aboutPageAppBarTitle => "Acerca de"; + + @override + String get homePageSearchTooltip => 'Buscar'; + @override + String get homePageCancelSearchTooltip => 'Cancelar'; + @override + String get homePageAddTaskTooltip => 'Agregar tarea'; + @override + String get homePageTapBackToExit => 'Toca atrás nuevamente para salir'; + @override + String get homePageSearchHint => 'Buscar'; + + @override + String get navDrawerConfirm => 'Confirmar'; + + @override + String get filterDrawerNoProjectsAvailable => 'No hay proyectos disponibles.'; + + @override + String get version => "Versión"; + @override + String get package => "Paquete"; + + @override + String get notSelected => "No seleccionado"; + @override + String get cantSetTimeinPast => + "No se pueden establecer horarios en el pasado"; + + @override + String get editDescription => "Editar descripción"; + @override + String get editProject => "Editar proyecto"; + @override + String get cancel => "Cancelar"; + @override + String get submit => "Enviar"; + + @override + String get saveChangesConfirmation => '¿Quieres guardar los cambios?'; + @override + String get yes => 'Sí'; + @override + String get no => 'No'; + @override + String get reviewChanges => 'Revisar cambios'; + @override + String get oldChanges => 'Antiguo'; + @override + String get newChanges => 'Nuevo'; + + @override + String get tags => 'Etiquetas'; + @override + String get addedTagsWillAppearHere => + 'Las etiquetas añadidas aparecerán aquí'; + @override + String get addTag => 'Agregar etiqueta'; + + @override + String get enterProject => 'Ingresar proyecto'; + @override + String get allProjects => 'Todos los proyectos'; + @override + String get noProjectsFound => 'No se encontraron proyectos'; + @override + String get project => 'Proyecto'; + + @override + String get select => 'Seleccionar'; + @override + String get save => 'Guardar'; + @override + String get dontSave => 'No guardar'; + @override + String get unsavedChanges => 'Cambios no guardados'; + @override + String get unsavedChangesWarning => + 'Tienes cambios no guardados. ¿Qué deseas hacer?'; + @override + String get enterNew => 'Ingresar nuevo'; + @override + String get edit => 'Editar'; + @override + String get task => 'Tarea'; + +// task action strings + @override + String get confirmDeleteTask => 'Confirmar eliminación'; + @override + String get taskUpdated => 'Tarea actualizada'; + @override + String get undo => 'Deshacer'; + @override + String get taskMarkedAsCompleted => + 'Tarea marcada como completada. ¡Actualiza para ver los cambios!'; + @override + String get taskMarkedAsDeleted => + 'Tarea marcada como eliminada. ¡Actualiza para ver los cambios!'; + @override + String get refreshToViewChanges => 'Actualizar para ver cambios'; + @override + String get clickOnBottomRightButtonToStartAddingTasks => + 'Haz clic en el botón inferior derecho para comenzar a agregar tareas'; + @override + String get complete => 'COMPLETADO'; + @override + String get delete => 'ELIMINAR'; + +// task server management strings + @override + String get taskServerInfo => 'Información del servidor TaskD'; + @override + String get taskServerCredentials => 'Credenciales del servidor TaskD'; + @override + String get notConfigured => 'No configurado'; + @override + String get fetchingStatistics => 'Obteniendo estadísticas...'; + @override + String get pleaseWait => 'Por favor, espera...'; + @override + String get statistics => 'Estadísticas:'; + @override + String get ok => 'Ok'; + @override + String get pleaseSetupTaskServer => 'Por favor, configura tu servidor TaskD.'; + +// onboarding strings + @override + String get onboardingSkip => 'Omitir'; + @override + String get onboardingNext => 'Siguiente'; + @override + String get onboardingStart => 'Comenzar'; + +// permission strings + @override + String get permissionPageTitle => 'Por qué necesitamos tu permiso'; + @override + String get storagePermissionTitle => 'Permiso de almacenamiento'; + @override + String get storagePermissionDescription => + 'Utilizamos el acceso al almacenamiento para guardar tus tareas, ' + 'preferencias y datos de la aplicación de forma segura en tu dispositivo. ' + 'Esto garantiza que puedas continuar donde lo dejaste, incluso sin conexión.'; + @override + String get notificationPermissionTitle => 'Permiso de notificaciones'; + @override + String get notificationPermissionDescription => + 'Las notificaciones te mantienen al tanto de recordatorios importantes ' + 'y actualizaciones, asegurando que gestiones tus tareas sin esfuerzo.'; + @override + String get privacyStatement => + 'Tu privacidad es nuestra máxima prioridad. Nunca accedemos ni compartimos ' + 'tus archivos o datos personales sin tu consentimiento.'; + @override + String get grantPermissions => 'Conceder permisos'; + @override + String get managePermissionsLater => + 'Puedes administrar tus permisos más tarde en Configuración'; + +// Profile page strings + @override + String get profileAllProfiles => 'Todos los perfiles:'; + @override + String get profileSwitchedToProfile => 'Cambiado al perfil'; + @override + String get profileAddedSuccessfully => 'Perfil agregado con éxito'; + @override + String get profileAdditionFailed => 'Error al agregar perfil'; + @override + String get profileConfigCopied => 'Configuración del perfil copiada'; + @override + String get profileConfigCopyFailed => + 'Error al copiar la configuración del perfil'; + @override + String get profileDeletedSuccessfully => 'Eliminado con éxito'; + @override + String get profileDeletionFailed => 'Error al eliminar'; + @override + String get profileDeleteConfirmation => 'Confirmar'; + +// Reports strings + @override + String get reportsDate => 'Fecha'; + @override + String get reportsPending => 'Pendiente'; + @override + String get reportsCompleted => 'Completado'; + @override + String get reportsMonthYear => 'Mes-Año'; + @override + String get reportsWeek => 'Semana'; + @override + String get reportsDay => 'Día'; + @override + String get reportsYear => 'Año'; + @override + String get reportsError => 'Error'; + @override + String get reportsLoading => 'Cargando...'; + +// Settings strings + @override + String get settingsResetToDefault => 'Restablecer a predeterminado'; + @override + String get settingsAlreadyDefault => 'Ya está predeterminado'; + @override + String get settingsConfirmReset => + '¿Estás seguro de que deseas restablecer el directorio a los valores predeterminados?'; + @override + String get settingsNoButton => 'No'; + @override + String get settingsYesButton => 'Sí'; + +// Splash screen strings + @override + String get splashSettingUpApp => "Configurando la aplicación..."; + +// Tour strings - reports + @override + String get tourReportsDaily => "Accede a tu informe de tareas diarias aquí"; + @override + String get tourReportsWeekly => "Accede a tus informes semanales aquí"; + @override + String get tourReportsMonthly => "Accede a tus informes mensuales aquí"; + +// Tour strings - profile + @override + String get tourProfileCurrent => "Consulta tu perfil actual aquí"; + @override + String get tourProfileManage => "Administra tu perfil actual aquí"; + @override + String get tourProfileAddNew => "Agrega un nuevo perfil aquí"; + +// Tour strings - task server + @override + String get tourTaskServerTaskRC => + "Selecciona el archivo llamado taskrc aquí o pega su contenido"; + @override + String get tourTaskServerCertificate => + "Selecciona un archivo con un nombre similar a .com.cert.pem aquí"; + @override + String get tourTaskServerKey => + "Selecciona un archivo con un nombre similar a .key.pem aquí"; + @override + String get tourTaskServerRootCert => + "Selecciona un archivo con un nombre similar a letsencrypt_root_cert.pem aquí"; + +// Tour strings - home page + @override + String get tourHomeAddTask => "Agregar una nueva tarea"; + @override + String get tourHomeSearch => "Buscar tareas"; + @override + String get tourHomeRefresh => "Actualizar o sincronizar tus tareas"; + @override + String get tourHomeFilter => + "Agregar filtros para ordenar tus tareas y proyectos"; + @override + String get tourHomeMenu => "Acceder a configuraciones adicionales aquí"; + +// Tour strings - filter drawer + @override + String get tourFilterStatus => + "Filtrar tareas según su estado de finalización"; + @override + String get tourFilterProjects => "Filtrar tareas según los proyectos"; + @override + String get tourFilterTagUnion => + "Alternar entre los tipos de unión de etiquetas AND y OR"; + @override + String get tourFilterSort => + "Ordenar tareas según el tiempo de creación, urgencia, fecha de vencimiento, fecha de inicio, etc."; + +// Tour strings - details page + @override + String get tourDetailsDue => + "Esto indica la fecha de vencimiento de la tarea"; + @override + String get tourDetailsWait => + "Esto indica la fecha de espera de la tarea\nLa tarea será visible después de esta fecha"; + @override + String get tourDetailsUntil => "Esto muestra la última fecha de la tarea"; + @override + String get tourDetailsPriority => + "Esta es la prioridad de las tareas\nL -> Baja\nM -> Media\nH -> Alta"; }