mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 02:27:08 -04:00 
			
		
		
		
	fix(mobile): search filter translation + fixes (#11141)
translation + fixes
This commit is contained in:
		
							parent
							
								
									f92aee204e
								
							
						
					
					
						commit
						4b2bc8e4ce
					
				| @ -3,6 +3,8 @@ | ||||
|   "action_common_cancel": "Cancel", | ||||
|   "action_common_clear": "Clear", | ||||
|   "action_common_confirm": "Confirm", | ||||
|   "action_common_save": "Save", | ||||
|   "action_common_select": "Select", | ||||
|   "action_common_update": "Update", | ||||
|   "add_to_album_bottom_sheet_added": "Added to {album}", | ||||
|   "add_to_album_bottom_sheet_already_exists": "Already in {album}", | ||||
| @ -146,6 +148,7 @@ | ||||
|   "common_create_new_album": "Create new album", | ||||
|   "common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.", | ||||
|   "common_shared": "Shared", | ||||
|   "contextual_search": "Sunrise on the beach", | ||||
|   "control_bottom_app_bar_add_to_album": "Add to album", | ||||
|   "control_bottom_app_bar_album_info": "{} items", | ||||
|   "control_bottom_app_bar_album_info_shared": "{} items · Shared", | ||||
| @ -203,6 +206,7 @@ | ||||
|   "experimental_settings_title": "Experimental", | ||||
|   "favorites_page_no_favorites": "No favorite assets found", | ||||
|   "favorites_page_title": "Favorites", | ||||
|   "filename_search": "File name or extension", | ||||
|   "haptic_feedback_switch": "Enable haptic feedback", | ||||
|   "haptic_feedback_title": "Haptic Feedback", | ||||
|   "header_settings_add_header_tip": "Add Header", | ||||
| @ -230,6 +234,8 @@ | ||||
|   "image_viewer_page_state_provider_download_started": "Download Started", | ||||
|   "image_viewer_page_state_provider_download_success": "Download Success", | ||||
|   "image_viewer_page_state_provider_share_error": "Share Error", | ||||
|   "invalid_date": "Invalid date", | ||||
|   "invalid_date_format": "Invalid date format", | ||||
|   "library_page_albums": "Albums", | ||||
|   "library_page_archive": "Archive", | ||||
|   "library_page_device_albums": "Albums on Device", | ||||
| @ -311,6 +317,7 @@ | ||||
|   "multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping", | ||||
|   "multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping", | ||||
|   "no_assets_to_show": "No assets to show", | ||||
|   "no_name": "No name", | ||||
|   "notification_permission_dialog_cancel": "Cancel", | ||||
|   "notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.", | ||||
|   "notification_permission_dialog_settings": "Settings", | ||||
| @ -354,17 +361,30 @@ | ||||
|   "scaffold_body_error_occurred": "Error occurred", | ||||
|   "search_bar_hint": "Search your photos", | ||||
|   "search_filter_apply": "Apply filter", | ||||
|   "search_filter_camera": "Camera", | ||||
|   "search_filter_camera_make": "Make", | ||||
|   "search_filter_camera_model": "Model", | ||||
|   "search_filter_camera_title": "Select camera type", | ||||
|   "search_filter_date": "Date", | ||||
|   "search_filter_date_interval": "{start} to {end}", | ||||
|   "search_filter_date_title": "Select a date range", | ||||
|   "search_filter_display_option_archive": "Archive", | ||||
|   "search_filter_display_option_favorite": "Favorite", | ||||
|   "search_filter_display_option_not_in_album": "Not in album", | ||||
|   "search_filter_display_options": "Display Options", | ||||
|   "search_filter_display_options_title": "Display options", | ||||
|   "search_filter_location": "Location", | ||||
|   "search_filter_location_city": "City", | ||||
|   "search_filter_location_country": "Country", | ||||
|   "search_filter_location_state": "State", | ||||
|   "search_filter_location_title": "Select location", | ||||
|   "search_filter_media_type": "Media Type", | ||||
|   "search_filter_media_type_all": "All", | ||||
|   "search_filter_media_type_image": "Image", | ||||
|   "search_filter_media_type_title": "Select media type", | ||||
|   "search_filter_media_type_video": "Video", | ||||
|   "search_filter_people": "People", | ||||
|   "search_filter_people_title": "Select people", | ||||
|   "search_page_categories": "Categories", | ||||
|   "search_page_favorites": "Favorites", | ||||
|   "search_page_motion_photos": "Motion Photos", | ||||
| @ -418,15 +438,18 @@ | ||||
|   "setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)", | ||||
|   "setting_notifications_total_progress_title": "Show background backup total progress", | ||||
|   "setting_pages_app_bar_settings": "Settings", | ||||
|   "settings_require_restart": "Please restart Immich to apply this setting", | ||||
|   "setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.", | ||||
|   "setting_video_viewer_looping_title": "Looping", | ||||
|   "setting_video_viewer_title": "Videos", | ||||
|   "settings_require_restart": "Please restart Immich to apply this setting", | ||||
|   "share_add": "Add", | ||||
|   "share_add_photos": "Add photos", | ||||
|   "share_add_title": "Add a title", | ||||
|   "share_assets_selected": "{} selected", | ||||
|   "share_create_album": "Create album", | ||||
|   "share_dialog_preparing": "Preparing...", | ||||
|   "share_done": "Done", | ||||
|   "share_invite": "Invite to album", | ||||
|   "shared_album_activities_input_disable": "Comment is disabled", | ||||
|   "shared_album_activities_input_hint": "Say something", | ||||
|   "shared_album_activity_remove_content": "Do you want to delete this activity?", | ||||
| @ -438,7 +461,6 @@ | ||||
|   "shared_album_section_people_action_remove_user": "Remove user from album", | ||||
|   "shared_album_section_people_owner_label": "Owner", | ||||
|   "shared_album_section_people_title": "PEOPLE", | ||||
|   "share_dialog_preparing": "Preparing...", | ||||
|   "shared_link_app_bar_title": "Shared Links", | ||||
|   "shared_link_clipboard_copied_massage": "Copied to clipboard", | ||||
|   "shared_link_clipboard_text": "Link: {}\nPassword: {}", | ||||
| @ -484,14 +506,12 @@ | ||||
|   "shared_link_info_chip_upload": "Upload", | ||||
|   "shared_link_manage_links": "Manage Shared links", | ||||
|   "shared_link_public_album": "Public album", | ||||
|   "share_done": "Done", | ||||
|   "share_invite": "Invite to album", | ||||
|   "sharing_page_album": "Shared albums", | ||||
|   "sharing_page_description": "Create shared albums to share photos and videos with people in your network.", | ||||
|   "sharing_page_empty_list": "EMPTY LIST", | ||||
|   "sharing_silver_appbar_create_shared_album": "New shared album", | ||||
|   "sharing_silver_appbar_shared_links": "Shared links", | ||||
|   "sharing_silver_appbar_share_partner": "Share with partner", | ||||
|   "sharing_silver_appbar_shared_links": "Shared links", | ||||
|   "tab_controller_nav_library": "Library", | ||||
|   "tab_controller_nav_photos": "Photos", | ||||
|   "tab_controller_nav_search": "Search", | ||||
|  | ||||
| @ -1,6 +1,7 @@ | ||||
| import 'dart:async'; | ||||
| 
 | ||||
| import 'package:auto_route/auto_route.dart'; | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_hooks/flutter_hooks.dart'; | ||||
| import 'package:hooks_riverpod/hooks_riverpod.dart'; | ||||
| @ -114,7 +115,7 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|         ); | ||||
| 
 | ||||
|         peopleCurrentFilterWidget.value = Text( | ||||
|           value.map((e) => e.name != '' ? e.name : "No name").join(', '), | ||||
|           value.map((e) => e.name != '' ? e.name : 'no_name'.tr()).join(', '), | ||||
|           style: context.textTheme.labelLarge, | ||||
|         ); | ||||
|       } | ||||
| @ -134,7 +135,7 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|         child: FractionallySizedBox( | ||||
|           heightFactor: 0.8, | ||||
|           child: FilterBottomSheetScaffold( | ||||
|             title: 'Select people', | ||||
|             title: 'search_filter_people_title'.tr(), | ||||
|             expanded: true, | ||||
|             onSearch: search, | ||||
|             onClear: handleClear, | ||||
| @ -190,7 +191,7 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|         isScrollControlled: true, | ||||
|         isDismissible: false, | ||||
|         child: FilterBottomSheetScaffold( | ||||
|           title: 'Select location', | ||||
|           title: 'search_filter_location_title'.tr(), | ||||
|           onSearch: search, | ||||
|           onClear: handleClear, | ||||
|           child: Padding( | ||||
| @ -241,7 +242,7 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|         isScrollControlled: true, | ||||
|         isDismissible: false, | ||||
|         child: FilterBottomSheetScaffold( | ||||
|           title: 'Select camera type', | ||||
|           title: 'search_filter_camera_title'.tr(), | ||||
|           onSearch: search, | ||||
|           onClear: handleClear, | ||||
|           child: Padding( | ||||
| @ -268,14 +269,14 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|           start: filter.value.date.takenAfter ?? lastDate, | ||||
|           end: filter.value.date.takenBefore ?? lastDate, | ||||
|         ), | ||||
|         helpText: 'Select a date range', | ||||
|         cancelText: 'Cancel', | ||||
|         confirmText: 'Select', | ||||
|         saveText: 'Save', | ||||
|         errorFormatText: 'Invalid date format', | ||||
|         errorInvalidText: 'Invalid date', | ||||
|         fieldStartHintText: 'Start date', | ||||
|         fieldEndHintText: 'End date', | ||||
|         helpText: 'search_filter_date_title'.tr(), | ||||
|         cancelText: 'action_common_cancel'.tr(), | ||||
|         confirmText: 'action_common_select'.tr(), | ||||
|         saveText: 'action_common_save'.tr(), | ||||
|         errorFormatText: 'invalid_date_format'.tr(), | ||||
|         errorInvalidText: 'invalid_date'.tr(), | ||||
|         fieldStartHintText: 'start_date'.tr(), | ||||
|         fieldEndHintText: 'end_date'.tr(), | ||||
|         initialEntryMode: DatePickerEntryMode.input, | ||||
|       ); | ||||
| 
 | ||||
| @ -305,12 +306,17 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|       // If date range is less than 24 hours, set the end date to the end of the day | ||||
|       if (date.end.difference(date.start).inHours < 24) { | ||||
|         dateRangeCurrentFilterWidget.value = Text( | ||||
|           date.start.toLocal().toIso8601String().split('T').first, | ||||
|           DateFormat.yMMMd().format(date.start.toLocal()), | ||||
|           style: context.textTheme.labelLarge, | ||||
|         ); | ||||
|       } else { | ||||
|         dateRangeCurrentFilterWidget.value = Text( | ||||
|           '${date.start.toLocal().toIso8601String().split('T').first} to ${date.end.toLocal().toIso8601String().split('T').first}', | ||||
|           'search_filter_date_interval'.tr( | ||||
|             namedArgs: { | ||||
|               "start": DateFormat.yMMMd().format(date.start.toLocal()), | ||||
|               "end": DateFormat.yMMMd().format(date.end.toLocal()), | ||||
|             }, | ||||
|           ), | ||||
|           style: context.textTheme.labelLarge, | ||||
|         ); | ||||
|       } | ||||
| @ -326,7 +332,11 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|         ); | ||||
| 
 | ||||
|         mediaTypeCurrentFilterWidget.value = Text( | ||||
|           assetType == AssetType.image ? 'Image' : 'Video', | ||||
|           assetType == AssetType.image | ||||
|               ? 'search_filter_media_type_image'.tr() | ||||
|               : assetType == AssetType.video | ||||
|                   ? 'search_filter_media_type_video'.tr() | ||||
|                   : 'search_filter_media_type_all'.tr(), | ||||
|           style: context.textTheme.labelLarge, | ||||
|         ); | ||||
|       } | ||||
| @ -343,7 +353,7 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|       showFilterBottomSheet( | ||||
|         context: context, | ||||
|         child: FilterBottomSheetScaffold( | ||||
|           title: 'Select media type', | ||||
|           title: 'search_filter_media_type_title'.tr(), | ||||
|           onSearch: search, | ||||
|           onClear: handleClear, | ||||
|           child: MediaTypePicker( | ||||
| @ -367,7 +377,10 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|                   isNotInAlbum: value, | ||||
|                 ), | ||||
|               ); | ||||
|               if (value) filterText.add('Not in album'); | ||||
|               if (value) { | ||||
|                 filterText | ||||
|                     .add('search_filter_display_option_not_in_album'.tr()); | ||||
|               } | ||||
|               break; | ||||
|             case DisplayOption.archive: | ||||
|               filter.value = filter.value.copyWith( | ||||
| @ -375,7 +388,9 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|                   isArchive: value, | ||||
|                 ), | ||||
|               ); | ||||
|               if (value) filterText.add('Archive'); | ||||
|               if (value) { | ||||
|                 filterText.add('search_filter_display_option_archive'.tr()); | ||||
|               } | ||||
|               break; | ||||
|             case DisplayOption.favorite: | ||||
|               filter.value = filter.value.copyWith( | ||||
| @ -383,7 +398,9 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|                   isFavorite: value, | ||||
|                 ), | ||||
|               ); | ||||
|               if (value) filterText.add('Favorite'); | ||||
|               if (value) { | ||||
|                 filterText.add('search_filter_display_option_favorite'.tr()); | ||||
|               } | ||||
|               break; | ||||
|           } | ||||
|         }); | ||||
| @ -410,7 +427,7 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|       showFilterBottomSheet( | ||||
|         context: context, | ||||
|         child: FilterBottomSheetScaffold( | ||||
|           title: 'Display options', | ||||
|           title: 'search_filter_display_options_title'.tr(), | ||||
|           onSearch: search, | ||||
|           onClear: handleClear, | ||||
|           child: DisplayOptionPicker( | ||||
| @ -489,8 +506,8 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|           controller: textSearchController, | ||||
|           decoration: InputDecoration( | ||||
|             hintText: isContextualSearch.value | ||||
|                 ? 'Sunrise on the beach' | ||||
|                 : 'File name or extension', | ||||
|                 ? 'contextual_search'.tr() | ||||
|                 : 'filename_search'.tr(), | ||||
|             hintStyle: context.textTheme.bodyLarge?.copyWith( | ||||
|               color: context.themeData.colorScheme.onSurface.withOpacity(0.75), | ||||
|               fontWeight: FontWeight.w500, | ||||
| @ -519,37 +536,37 @@ class SearchInputPage extends HookConsumerWidget { | ||||
|                   SearchFilterChip( | ||||
|                     icon: Icons.people_alt_rounded, | ||||
|                     onTap: showPeoplePicker, | ||||
|                     label: 'People', | ||||
|                     label: 'search_filter_people'.tr(), | ||||
|                     currentFilter: peopleCurrentFilterWidget.value, | ||||
|                   ), | ||||
|                   SearchFilterChip( | ||||
|                     icon: Icons.location_pin, | ||||
|                     onTap: showLocationPicker, | ||||
|                     label: 'Location', | ||||
|                     label: 'search_filter_location'.tr(), | ||||
|                     currentFilter: locationCurrentFilterWidget.value, | ||||
|                   ), | ||||
|                   SearchFilterChip( | ||||
|                     icon: Icons.camera_alt_rounded, | ||||
|                     onTap: showCameraPicker, | ||||
|                     label: 'Camera', | ||||
|                     label: 'search_filter_camera'.tr(), | ||||
|                     currentFilter: cameraCurrentFilterWidget.value, | ||||
|                   ), | ||||
|                   SearchFilterChip( | ||||
|                     icon: Icons.date_range_rounded, | ||||
|                     onTap: showDatePicker, | ||||
|                     label: 'Date', | ||||
|                     label: 'search_filter_date'.tr(), | ||||
|                     currentFilter: dateRangeCurrentFilterWidget.value, | ||||
|                   ), | ||||
|                   SearchFilterChip( | ||||
|                     icon: Icons.video_collection_outlined, | ||||
|                     onTap: showMediaTypePicker, | ||||
|                     label: 'Media Type', | ||||
|                     label: 'search_filter_media_type'.tr(), | ||||
|                     currentFilter: mediaTypeCurrentFilterWidget.value, | ||||
|                   ), | ||||
|                   SearchFilterChip( | ||||
|                     icon: Icons.display_settings_outlined, | ||||
|                     onTap: showDisplayOptionPicker, | ||||
|                     label: 'Display Options', | ||||
|                     label: 'search_filter_display_options'.tr(), | ||||
|                     currentFilter: displayOptionCurrentFilterWidget.value, | ||||
|                   ), | ||||
|                 ], | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user