diff --git a/lib/core/widgets/hint_card.dart b/lib/core/widgets/hint_card.dart index d32ff04..03a5120 100644 --- a/lib/core/widgets/hint_card.dart +++ b/lib/core/widgets/hint_card.dart @@ -36,13 +36,16 @@ class HintCard extends StatelessWidget { hintIcon, color: Theme.of(context).hintColor, ).padded(), - Align( - alignment: Alignment.center, - child: Text( - hintText, - softWrap: true, - textAlign: TextAlign.center, - style: Theme.of(context).textTheme.bodySmall, + Padding( + padding: const EdgeInsets.all(8.0), + child: Align( + alignment: Alignment.center, + child: Text( + hintText, + softWrap: true, + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.bodySmall, + ), ), ), if (onHintAcknowledged != null) diff --git a/lib/features/document_search/view/document_search_page.dart b/lib/features/document_search/view/document_search_page.dart index 9608dfb..71b94ad 100644 --- a/lib/features/document_search/view/document_search_page.dart +++ b/lib/features/document_search/view/document_search_page.dart @@ -51,7 +51,7 @@ class _DocumentSearchPageState extends State { hintStyle: theme.textTheme.bodyLarge?.apply( color: theme.colorScheme.onSurfaceVariant, ), - hintText: "Search documents", //TODO: INTL + hintText: S.of(context).documentSearchSearchDocuments, border: InputBorder.none, ), controller: _queryController, @@ -143,8 +143,10 @@ class _DocumentSearchPageState extends State { slivers: [ SliverToBoxAdapter(child: header), if (state.hasLoaded && !state.isLoading && state.documents.isEmpty) - const SliverToBoxAdapter( - child: Center(child: Text("No documents found.")), //TODO: INTL + SliverToBoxAdapter( + child: Center( + child: Text(S.of(context).documentSearchNoMatchesFound), + ), ) else SliverAdaptiveDocumentsView( diff --git a/lib/features/documents/bloc/documents_cubit.dart b/lib/features/documents/bloc/documents_cubit.dart index 51c6b02..41dc04b 100644 --- a/lib/features/documents/bloc/documents_cubit.dart +++ b/lib/features/documents/bloc/documents_cubit.dart @@ -47,9 +47,7 @@ class DocumentsCubit extends HydratedCubit ), ); } else { - emit( - state.copyWith(selection: [...state.selection, model]), - ); + emit(state.copyWith(selection: [...state.selection, model])); } } diff --git a/lib/features/documents/view/pages/document_edit_page.dart b/lib/features/documents/view/pages/document_edit_page.dart index b854897..9238a3e 100644 --- a/lib/features/documents/view/pages/document_edit_page.dart +++ b/lib/features/documents/view/pages/document_edit_page.dart @@ -291,7 +291,7 @@ class _DocumentEditPageState extends State { label: Text(S.of(context).documentCreatedPropertyLabel), ), initialValue: initialCreatedAtDate, - format: DateFormat("dd. MMMM yyyy"), //TODO: Localized date format + format: DateFormat.yMMMMd(), initialEntryMode: DatePickerEntryMode.calendar, ), if (_filteredSuggestions.hasSuggestedDates) diff --git a/lib/features/documents/view/pages/documents_page.dart b/lib/features/documents/view/pages/documents_page.dart index 1f1c3d7..201f1b7 100644 --- a/lib/features/documents/view/pages/documents_page.dart +++ b/lib/features/documents/view/pages/documents_page.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/bloc/connectivity_cubit.dart'; +import 'package:paperless_mobile/extensions/flutter_extensions.dart'; import 'package:paperless_mobile/features/app_drawer/view/app_drawer.dart'; import 'package:paperless_mobile/features/document_search/view/document_search_page.dart'; import 'package:paperless_mobile/features/documents/bloc/documents_cubit.dart'; @@ -12,6 +13,7 @@ import 'package:paperless_mobile/features/documents/view/widgets/adaptive_docume import 'package:paperless_mobile/features/documents/view/widgets/documents_empty_state.dart'; import 'package:paperless_mobile/features/documents/view/widgets/search/document_filter_panel.dart'; import 'package:paperless_mobile/features/documents/view/widgets/selection/bulk_delete_confirmation_dialog.dart'; +import 'package:paperless_mobile/features/documents/view/widgets/sort_documents_button.dart'; import 'package:paperless_mobile/features/labels/bloc/providers/labels_bloc_provider.dart'; import 'package:paperless_mobile/features/saved_view/cubit/saved_view_cubit.dart'; import 'package:paperless_mobile/features/saved_view/view/add_saved_view_page.dart'; @@ -19,6 +21,7 @@ import 'package:paperless_mobile/features/saved_view/view/saved_view_list.dart'; import 'package:paperless_mobile/features/search_app_bar/view/search_app_bar.dart'; import 'package:paperless_mobile/features/settings/bloc/application_settings_cubit.dart'; import 'package:paperless_mobile/features/settings/bloc/application_settings_state.dart'; +import 'package:paperless_mobile/features/settings/model/view_type.dart'; import 'package:paperless_mobile/features/tasks/cubit/task_status_cubit.dart'; import 'package:paperless_mobile/generated/l10n.dart'; import 'package:paperless_mobile/helpers/message_helpers.dart'; @@ -147,7 +150,6 @@ class _DocumentsPageState extends State return false; }, child: NestedScrollView( - floatHeaderSlivers: true, headerSliverBuilder: (context, innerBoxIsScrolled) => [ SliverOverlapAbsorber( // This widget takes the overlapping behavior of the SliverAppBar, @@ -160,17 +162,41 @@ class _DocumentsPageState extends State handle: NestedScrollView.sliverOverlapAbsorberHandleFor( context, ), - sliver: SearchAppBar( - hintText: "Search documents", //TODO: INTL - onOpenSearch: showDocumentSearchPage, - bottom: TabBar( - controller: _tabController, - isScrollable: true, - tabs: [ - Tab(text: S.of(context).documentsPageTitle), - Tab(text: S.of(context).savedViewsLabel), - ], - ), + sliver: BlocBuilder( + builder: (context, state) { + if (state.selection.isNotEmpty) { + return SliverAppBar( + floating: false, + pinned: true, + leading: IconButton( + icon: const Icon(Icons.close), + onPressed: () => context + .read() + .resetSelection(), + ), + title: Text( + "${state.selection.length} ${S.of(context).documentsSelectedText}", + ), + actions: [ + IconButton( + icon: const Icon(Icons.delete), + onPressed: () => _onDelete(state), + ), + ], + ); + } + return SearchAppBar( + hintText: S.of(context).documentSearchSearchDocuments, + onOpenSearch: showDocumentSearchPage, + bottom: TabBar( + controller: _tabController, + tabs: [ + Tab(text: S.of(context).documentsPageTitle), + Tab(text: S.of(context).savedViewsLabel), + ], + ), + ); + }, ), ), ], @@ -186,7 +212,7 @@ class _DocumentsPageState extends State _currentTab != desiredTab) { setState(() => _currentTab = desiredTab); } - return true; + return false; }, child: NotificationListener( onNotification: (notification) { @@ -213,7 +239,7 @@ class _DocumentsPageState extends State ), ); } - return true; + return false; }, child: TabBarView( controller: _tabController, @@ -233,6 +259,7 @@ class _DocumentsPageState extends State .sliverOverlapAbsorberHandleFor( context), ), + _buildViewActions(), BlocBuilder( buildWhen: (previous, current) => !const ListEquality().equals( @@ -324,8 +351,33 @@ class _DocumentsPageState extends State ); } - //TODO: Add app bar... - void _onDelete(BuildContext context, DocumentsState documentsState) async { + Widget _buildViewActions() { + return SliverToBoxAdapter( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const SortDocumentsButton(), + BlocBuilder( + builder: (context, state) { + return IconButton( + icon: Icon( + state.preferredViewType == ViewType.list + ? Icons.grid_view_rounded + : Icons.list, + ), + onPressed: () => + context.read().setViewType( + state.preferredViewType.toggle(), + ), + ); + }, + ) + ], + ).paddedSymmetrically(horizontal: 8, vertical: 4), + ); + } + + void _onDelete(DocumentsState documentsState) async { final shouldDelete = await showDialog( context: context, builder: (context) => diff --git a/lib/features/home/view/home_page.dart b/lib/features/home/view/home_page.dart index b09a647..ae5311b 100644 --- a/lib/features/home/view/home_page.dart +++ b/lib/features/home/view/home_page.dart @@ -20,15 +20,14 @@ import 'package:paperless_mobile/features/document_upload/view/document_upload_p import 'package:paperless_mobile/features/documents/bloc/documents_cubit.dart'; import 'package:paperless_mobile/features/documents/view/pages/documents_page.dart'; import 'package:paperless_mobile/features/home/view/route_description.dart'; -import 'package:paperless_mobile/features/home/view/widget/_app_drawer.dart'; import 'package:paperless_mobile/features/inbox/bloc/inbox_cubit.dart'; +import 'package:paperless_mobile/features/inbox/bloc/state/inbox_state.dart'; import 'package:paperless_mobile/features/inbox/view/pages/inbox_page.dart'; import 'package:paperless_mobile/features/labels/view/pages/labels_page.dart'; import 'package:paperless_mobile/features/notifications/services/local_notification_service.dart'; import 'package:paperless_mobile/features/saved_view/cubit/saved_view_cubit.dart'; import 'package:paperless_mobile/features/scan/bloc/document_scanner_cubit.dart'; import 'package:paperless_mobile/features/scan/view/scanner_page.dart'; -import 'package:paperless_mobile/features/settings/view/settings_page.dart'; import 'package:paperless_mobile/features/sharing/share_intent_queue.dart'; import 'package:paperless_mobile/features/tasks/cubit/task_status_cubit.dart'; import 'package:paperless_mobile/generated/l10n.dart'; @@ -189,13 +188,24 @@ class _HomePageState extends State { label: S.of(context).bottomNavLabelsPageLabel, ), RouteDescription( - icon: const Icon(Icons.inbox_outlined), - selectedIcon: Icon( - Icons.inbox, - color: Theme.of(context).colorScheme.primary, - ), - label: S.of(context).bottomNavInboxPageLabel, - ), + icon: const Icon(Icons.inbox_outlined), + selectedIcon: Icon( + Icons.inbox, + color: Theme.of(context).colorScheme.primary, + ), + label: S.of(context).bottomNavInboxPageLabel, + badgeBuilder: (icon) => BlocBuilder( + bloc: _inboxCubit, + builder: (context, state) { + if (state.itemsInInboxCount > 0) { + return Badge.count( + count: state.itemsInInboxCount, + child: icon, + ); + } + return icon; + }, + )), ]; final routes = [ MultiBlocProvider( diff --git a/lib/features/home/view/route_description.dart b/lib/features/home/view/route_description.dart index 6fc36a6..367c41a 100644 --- a/lib/features/home/view/route_description.dart +++ b/lib/features/home/view/route_description.dart @@ -16,8 +16,8 @@ class RouteDescription { NavigationDestination toNavigationDestination() { return NavigationDestination( label: label, - icon: icon, - selectedIcon: selectedIcon, + icon: badgeBuilder?.call(icon) ?? icon, + selectedIcon: badgeBuilder?.call(selectedIcon) ?? selectedIcon, ); } diff --git a/lib/features/inbox/bloc/inbox_cubit.dart b/lib/features/inbox/bloc/inbox_cubit.dart index cef27e1..f35d57f 100644 --- a/lib/features/inbox/bloc/inbox_cubit.dart +++ b/lib/features/inbox/bloc/inbox_cubit.dart @@ -115,6 +115,7 @@ class InboxCubit extends HydratedCubit with PagedDocumentsMixin { document.copyWith(tags: updatedTags), ); await remove(document); + emit(state.copyWith(itemsInInboxCount: state.itemsInInboxCount - 1)); return tagsToRemove; } @@ -129,6 +130,7 @@ class InboxCubit extends HydratedCubit with PagedDocumentsMixin { tags: {...document.tags, ...removedTags}, ); await _documentsApi.update(updatedDoc); + emit(state.copyWith(itemsInInboxCount: state.itemsInInboxCount + 1)); return reload(); } @@ -147,6 +149,7 @@ class InboxCubit extends HydratedCubit with PagedDocumentsMixin { emit(state.copyWith( hasLoaded: true, value: [], + itemsInInboxCount: 0, )); } finally { emit(state.copyWith(isLoading: false)); @@ -160,6 +163,7 @@ class InboxCubit extends HydratedCubit with PagedDocumentsMixin { } else { // Remove document from inbox. remove(document); + emit(state.copyWith(itemsInInboxCount: state.itemsInInboxCount - 1)); } } diff --git a/lib/features/inbox/view/pages/inbox_page.dart b/lib/features/inbox/view/pages/inbox_page.dart index 301ac97..11cb7d2 100644 --- a/lib/features/inbox/view/pages/inbox_page.dart +++ b/lib/features/inbox/view/pages/inbox_page.dart @@ -76,78 +76,81 @@ class _InboxPageState extends State { ); }, ), - body: NestedScrollView( - headerSliverBuilder: (context, innerBoxIsScrolled) => [ - SearchAppBar( - hintText: "Search documents", - onOpenSearch: showDocumentSearchPage), - ], - body: BlocBuilder( - builder: (context, state) { - if (!state.hasLoaded) { - return const CustomScrollView( - physics: NeverScrollableScrollPhysics(), - slivers: [DocumentsListLoadingWidget()], - ); - } + body: RefreshIndicator( + edgeOffset: 78, + onRefresh: () => context.read().initializeInbox(), + child: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SearchAppBar( + hintText: S.of(context).documentSearchSearchDocuments, + onOpenSearch: showDocumentSearchPage, + ), + ], + body: BlocBuilder( + builder: (context, state) { + if (!state.hasLoaded) { + return const CustomScrollView( + physics: NeverScrollableScrollPhysics(), + slivers: [DocumentsListLoadingWidget()], + ); + } - if (state.documents.isEmpty) { - return InboxEmptyWidget( - emptyStateRefreshIndicatorKey: _emptyStateRefreshIndicatorKey, - ); - } + if (state.documents.isEmpty) { + return InboxEmptyWidget( + emptyStateRefreshIndicatorKey: _emptyStateRefreshIndicatorKey, + ); + } - // Build a list of slivers alternating between SliverToBoxAdapter - // (group header) and a SliverList (inbox items). - final List slivers = _groupByDate(state.documents) - .entries - .map( - (entry) => [ - SliverToBoxAdapter( - child: Align( - alignment: Alignment.centerLeft, - child: ClipRRect( - borderRadius: BorderRadius.circular(32.0), - child: Text( - entry.key, - style: Theme.of(context).textTheme.bodySmall, - textAlign: TextAlign.center, - ).padded(), - ), - ).paddedOnly(top: 8.0), - ), - SliverList( - delegate: SliverChildBuilderDelegate( - childCount: entry.value.length, - (context, index) { - if (index < entry.value.length - 1) { - return Column( - children: [ - _buildListItem( - entry.value[index], - ), - const Divider( - indent: 16, - endIndent: 16, - ), - ], - ); - } - return _buildListItem( - entry.value[index], - ); - }, + // Build a list of slivers alternating between SliverToBoxAdapter + // (group header) and a SliverList (inbox items). + final List slivers = _groupByDate(state.documents) + .entries + .map( + (entry) => [ + SliverToBoxAdapter( + child: Align( + alignment: Alignment.centerLeft, + child: ClipRRect( + borderRadius: BorderRadius.circular(32.0), + child: Text( + entry.key, + style: Theme.of(context).textTheme.bodySmall, + textAlign: TextAlign.center, + ).padded(), + ), + ).paddedOnly(top: 8.0), ), - ), - ], - ) - .flattened - .toList() - ..add(const SliverToBoxAdapter(child: SizedBox(height: 78))); + SliverList( + delegate: SliverChildBuilderDelegate( + childCount: entry.value.length, + (context, index) { + if (index < entry.value.length - 1) { + return Column( + children: [ + _buildListItem( + entry.value[index], + ), + const Divider( + indent: 16, + endIndent: 16, + ), + ], + ); + } + return _buildListItem( + entry.value[index], + ); + }, + ), + ), + ], + ) + .flattened + .toList() + ..add(const SliverToBoxAdapter(child: SizedBox(height: 78))); + // edgeOffset: kToolbarHeight, - return RefreshIndicator( - onRefresh: () => context.read().initializeInbox(), - child: CustomScrollView( + return CustomScrollView( controller: _scrollController, slivers: [ SliverToBoxAdapter( @@ -160,9 +163,9 @@ class _InboxPageState extends State { ), ...slivers, ], - ), - ); - }, + ); + }, + ), ), ), ); diff --git a/lib/features/labels/tags/view/widgets/tags_widget.dart b/lib/features/labels/tags/view/widgets/tags_widget.dart index 49a41b8..63aa04f 100644 --- a/lib/features/labels/tags/view/widgets/tags_widget.dart +++ b/lib/features/labels/tags/view/widgets/tags_widget.dart @@ -51,9 +51,7 @@ class TagsWidget extends StatelessWidget { } else { return SingleChildScrollView( scrollDirection: Axis.horizontal, - child: Row( - children: children, - ), + child: Row(children: children), ); } }, diff --git a/lib/features/labels/view/widgets/label_form_field.dart b/lib/features/labels/view/widgets/label_form_field.dart index a43f18d..024576c 100644 --- a/lib/features/labels/view/widgets/label_form_field.dart +++ b/lib/features/labels/view/widgets/label_form_field.dart @@ -85,7 +85,6 @@ class _LabelFormFieldState extends State> { TextStyle(color: Theme.of(context).disabledColor, fontSize: 18.0), ), ), - getImmediateSuggestions: true, loadingBuilder: (context) => Container(), initialValue: widget.initialValue ?? const IdQueryParameter.unset(), name: widget.name, @@ -108,7 +107,6 @@ class _LabelFormFieldState extends State> { shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(16), ), - style: ListTileStyle.list, ), suggestionsCallback: (pattern) { final List suggestions = widget.labelOptions.entries diff --git a/lib/features/saved_view/view/saved_view_list.dart b/lib/features/saved_view/view/saved_view_list.dart index c6648c2..0c4b7a4 100644 --- a/lib/features/saved_view/view/saved_view_list.dart +++ b/lib/features/saved_view/view/saved_view_list.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:paperless_mobile/core/widgets/hint_card.dart'; import 'package:paperless_mobile/extensions/flutter_extensions.dart'; -import 'package:paperless_mobile/features/documents/view/widgets/documents_empty_state.dart'; import 'package:paperless_mobile/features/saved_view/cubit/saved_view_cubit.dart'; import 'package:paperless_mobile/features/saved_view/cubit/saved_view_details_cubit.dart'; import 'package:paperless_mobile/features/saved_view/cubit/saved_view_state.dart'; @@ -17,10 +17,11 @@ class SavedViewList extends StatelessWidget { return BlocBuilder( builder: (context, state) { if (state.value.isEmpty) { - return Text( - S.of(context).savedViewsEmptyStateText, - textAlign: TextAlign.center, - ).padded(); + return SliverToBoxAdapter( + child: HintCard( + hintText: S.of(context).savedViewsEmptyStateText, + ), + ); } return SliverList( delegate: SliverChildBuilderDelegate( @@ -29,8 +30,10 @@ class SavedViewList extends StatelessWidget { return ListTile( title: Text(view.name), subtitle: Text( - "${view.filterRules.length} filter(s) set", - ), //TODO: INTL w/ placeholder + S + .of(context) + .savedViewsFiltersSetCount(view.filterRules.length), + ), onTap: () { Navigator.of(context).push( MaterialPageRoute( @@ -42,7 +45,6 @@ class SavedViewList extends StatelessWidget { savedView: view, ), ), - BlocProvider.value(value: savedViewCubit), ], child: SavedViewPage( onDelete: savedViewCubit.remove, diff --git a/lib/features/scan/view/scanner_page.dart b/lib/features/scan/view/scanner_page.dart index 9f8740a..29a3952 100644 --- a/lib/features/scan/view/scanner_page.dart +++ b/lib/features/scan/view/scanner_page.dart @@ -65,7 +65,7 @@ class _ScannerPageState extends State floatHeaderSlivers: false, headerSliverBuilder: (context, innerBoxIsScrolled) => [ SearchAppBar( - hintText: "Search documents", //TODO: INTL + hintText: S.of(context).documentSearchSearchDocuments, onOpenSearch: showDocumentSearchPage, bottom: PreferredSize( child: _buildActions(connectedState.isConnected), @@ -101,7 +101,7 @@ class _ScannerPageState extends State BlocBuilder>( builder: (context, state) { return TextButton.icon( - label: Text("Preview"), //TODO: INTL + label: Text(S.of(context).scannerPagePreviewLabel), onPressed: state.isNotEmpty ? () => Navigator.of(context).push( MaterialPageRoute( @@ -121,7 +121,7 @@ class _ScannerPageState extends State BlocBuilder>( builder: (context, state) { return TextButton.icon( - label: Text("Clear all"), //TODO: INTL + label: Text(S.of(context).scannerPageClearAllLabel), onPressed: state.isEmpty ? null : () => _reset(context), icon: const Icon(Icons.delete_sweep_outlined), ); @@ -130,7 +130,7 @@ class _ScannerPageState extends State BlocBuilder>( builder: (context, state) { return TextButton.icon( - label: Text("Upload"), //TODO: INTL + label: Text(S.of(context).scannerPageUploadLabel), onPressed: state.isEmpty || !isConnected ? null : () => _onPrepareDocumentUpload(context), diff --git a/lib/features/settings/view/dialogs/account_settings_dialog.dart b/lib/features/settings/view/dialogs/account_settings_dialog.dart index 530078b..d3ed33c 100644 --- a/lib/features/settings/view/dialogs/account_settings_dialog.dart +++ b/lib/features/settings/view/dialogs/account_settings_dialog.dart @@ -11,7 +11,7 @@ import 'package:paperless_mobile/core/repository/state/impl/document_type_reposi import 'package:paperless_mobile/core/repository/state/impl/storage_path_repository_state.dart'; import 'package:paperless_mobile/core/repository/state/impl/tag_repository_state.dart'; import 'package:paperless_mobile/core/widgets/hint_card.dart'; -import 'package:paperless_mobile/core/widgets/paperless_logo.dart'; +import 'package:paperless_mobile/extensions/flutter_extensions.dart'; import 'package:paperless_mobile/features/login/bloc/authentication_cubit.dart'; import 'package:paperless_mobile/features/settings/bloc/application_settings_cubit.dart'; import 'package:paperless_mobile/generated/l10n.dart'; @@ -25,8 +25,12 @@ class AccountSettingsDialog extends StatelessWidget { return AlertDialog( scrollable: true, contentPadding: EdgeInsets.zero, - icon: const PaperlessLogo.green(), - title: const Text(" Your Accounts"), + title: Row( + children: [ + const CloseButton(), + Text(S.of(context).accountSettingsTitle), + ], + ), content: BlocBuilder( builder: (context, state) { @@ -55,28 +59,27 @@ class AccountSettingsDialog extends StatelessWidget { onTap: () {}, ), Divider(), - OutlinedButton( + FilledButton( + style: ButtonStyle( + backgroundColor: MaterialStatePropertyAll( + Theme.of(context).colorScheme.error, + ), + ), child: Text( S.of(context).appDrawerLogoutLabel, style: TextStyle( - color: Theme.of(context).colorScheme.error, + color: Theme.of(context).colorScheme.onError, ), ), onPressed: () async { await _onLogout(context); Navigator.of(context).maybePop(); }, - ), + ).padded(16), ], ); }, ), - actions: [ - TextButton( - child: Text(S.of(context).genericActionCloseLabel), - onPressed: () => Navigator.pop(context), - ), - ], ); } diff --git a/lib/features/settings/view/widgets/language_selection_setting.dart b/lib/features/settings/view/widgets/language_selection_setting.dart index b141612..15a5ed3 100644 --- a/lib/features/settings/view/widgets/language_selection_setting.dart +++ b/lib/features/settings/view/widgets/language_selection_setting.dart @@ -47,11 +47,11 @@ class _LanguageSelectionSettingState extends State { ), RadioOption( value: 'cs', - label: _languageOptions['cs']! + " *", + label: _languageOptions['cs']! + "*", ), RadioOption( value: 'tr', - label: _languageOptions['tr']! + " *", + label: _languageOptions['tr']! + "*", ) ], initialValue: context diff --git a/lib/l10n/intl_cs.arb b/lib/l10n/intl_cs.arb index b83ca4b..ddfe2d9 100644 --- a/lib/l10n/intl_cs.arb +++ b/lib/l10n/intl_cs.arb @@ -6,6 +6,8 @@ "name": {} } }, + "accountSettingsTitle": "Account", + "@accountSettingsTitle": {}, "addCorrespondentPageTitle": "Nový korespondent", "@addCorrespondentPageTitle": {}, "addDocumentTypePageTitle": "Nový typ dokumentu", @@ -44,9 +46,9 @@ "@bottomNavLabelsPageLabel": {}, "bottomNavScannerPageLabel": "Skener", "@bottomNavScannerPageLabel": {}, - "colorSchemeOptionClassic": "Classic", + "colorSchemeOptionClassic": "Klasicky", "@colorSchemeOptionClassic": {}, - "colorSchemeOptionDynamic": "Dynamic", + "colorSchemeOptionDynamic": "Dynamicky", "@colorSchemeOptionDynamic": {}, "correspondentFormFieldSearchHintText": "Začni psát...", "@correspondentFormFieldSearchHintText": {}, @@ -68,23 +70,23 @@ "@documentDeleteSuccessMessage": {}, "documentDetailsPageAssignAsnButtonLabel": "Přiřadit", "@documentDetailsPageAssignAsnButtonLabel": {}, - "documentDetailsPageDeleteTooltip": "Delete", + "documentDetailsPageDeleteTooltip": "Smazat", "@documentDetailsPageDeleteTooltip": {}, - "documentDetailsPageDownloadTooltip": "Download", + "documentDetailsPageDownloadTooltip": "Stáhnout", "@documentDetailsPageDownloadTooltip": {}, - "documentDetailsPageEditTooltip": "Edit", + "documentDetailsPageEditTooltip": "Upravit", "@documentDetailsPageEditTooltip": {}, "documentDetailsPageLoadFullContentLabel": "Načíst celý obsah", "@documentDetailsPageLoadFullContentLabel": {}, - "documentDetailsPageNoPdfViewerFoundErrorMessage": "No app to display PDF files found!", + "documentDetailsPageNoPdfViewerFoundErrorMessage": "Aplikace pro otevírání PDF souborů nenalezena.", "@documentDetailsPageNoPdfViewerFoundErrorMessage": {}, - "documentDetailsPageOpenInSystemViewerTooltip": "Open in system viewer", + "documentDetailsPageOpenInSystemViewerTooltip": "Otevřít v systémovém prohlížeči", "@documentDetailsPageOpenInSystemViewerTooltip": {}, - "documentDetailsPageOpenPdfPermissionDeniedErrorMessage": "Could not open file: Permission denied.", + "documentDetailsPageOpenPdfPermissionDeniedErrorMessage": "Soubor nelze otevřít: přístup zamítnut.", "@documentDetailsPageOpenPdfPermissionDeniedErrorMessage": {}, - "documentDetailsPagePreviewTooltip": "Preview", + "documentDetailsPagePreviewTooltip": "Náhled", "@documentDetailsPagePreviewTooltip": {}, - "documentDetailsPageShareTooltip": "Share", + "documentDetailsPageShareTooltip": "Sdílet", "@documentDetailsPageShareTooltip": {}, "documentDetailsPageSimilarDocumentsLabel": "Podobné dokumenty", "@documentDetailsPageSimilarDocumentsLabel": {}, @@ -94,7 +96,7 @@ "@documentDetailsPageTabMetaDataLabel": {}, "documentDetailsPageTabOverviewLabel": "Přehled", "@documentDetailsPageTabOverviewLabel": {}, - "documentDetailsPageTabSimilarDocumentsLabel": "Similar Documents", + "documentDetailsPageTabSimilarDocumentsLabel": "Podobné dokumenty", "@documentDetailsPageTabSimilarDocumentsLabel": {}, "documentDocumentTypePropertyLabel": "Typ dokumentu", "@documentDocumentTypePropertyLabel": {}, @@ -148,12 +150,16 @@ "@documentScannerPageUploadButtonTooltip": {}, "documentScannerPageUploadFromThisDeviceButtonLabel": "Nahrát jeden dokument z tohoto zařízení", "@documentScannerPageUploadFromThisDeviceButtonLabel": {}, - "documentSearchHistory": "History", + "documentSearchHistory": "Historie", "@documentSearchHistory": {}, - "documentSearchPageRemoveFromHistory": "Remove from search history?", + "documentSearchNoMatchesFound": "No matches found.", + "@documentSearchNoMatchesFound": {}, + "documentSearchPageRemoveFromHistory": "Odstranit z historie vyhledávání?", "@documentSearchPageRemoveFromHistory": {}, - "documentSearchResults": "Results", + "documentSearchResults": "Výsledky", "@documentSearchResults": {}, + "documentSearchSearchDocuments": "Search documents", + "@documentSearchSearchDocuments": {}, "documentsEmptyStateResetFilterLabel": "Zrušit", "@documentsEmptyStateResetFilterLabel": {}, "documentsFilterPageAdvancedLabel": "Rozšířené", @@ -370,6 +376,8 @@ "@genericAcknowledgeLabel": {}, "genericActionCancelLabel": "Zrušit", "@genericActionCancelLabel": {}, + "genericActionCloseLabel": "Close", + "@genericActionCloseLabel": {}, "genericActionCreateLabel": "Vytvořit", "@genericActionCreateLabel": {}, "genericActionDeleteLabel": "Smazat", @@ -558,14 +566,26 @@ "@savedViewNameLabel": {}, "savedViewsEmptyStateText": "Vytvoře si různé náhledy pro rychlé filtrování dokumentů.", "@savedViewsEmptyStateText": {}, + "savedViewsFiltersSetCount": "{count, plural, zero{{count} filters set} one{{count} filter set} other{{count} filters set}}", + "@savedViewsFiltersSetCount": { + "placeholders": { + "count": {} + } + }, "savedViewShowInSidebarLabel": "Zobrazit v postranní liště", "@savedViewShowInSidebarLabel": {}, "savedViewShowOnDashboardLabel": "Zobrazit na hlavním panelu", "@savedViewShowOnDashboardLabel": {}, "savedViewsLabel": "Uložené náhledy", "@savedViewsLabel": {}, + "scannerPageClearAllLabel": "Clear all", + "@scannerPageClearAllLabel": {}, "scannerPageImagePreviewTitle": "Sken", "@scannerPageImagePreviewTitle": {}, + "scannerPagePreviewLabel": "Preview", + "@scannerPagePreviewLabel": {}, + "scannerPageUploadLabel": "Upload", + "@scannerPageUploadLabel": {}, "serverInformationPaperlessVersionText": "Verze Paperless serveru", "@serverInformationPaperlessVersionText": {}, "settingsPageAppearanceSettingDarkThemeLabel": "Tmavý vzhled", @@ -584,7 +604,7 @@ "@settingsPageColorSchemeSettingDialogDescription": {}, "settingsPageColorSchemeSettingDynamicThemeingVersionMismatchWarning": "Dynamic theming is only supported for devices running Android 12 and above. Selecting the 'Dynamic' option might not have any effect depending on your OS implementation.", "@settingsPageColorSchemeSettingDynamicThemeingVersionMismatchWarning": {}, - "settingsPageColorSchemeSettingLabel": "Colors", + "settingsPageColorSchemeSettingLabel": "Barvy", "@settingsPageColorSchemeSettingLabel": {}, "settingsPageLanguageSettingLabel": "Jazyk", "@settingsPageLanguageSettingLabel": {}, @@ -602,9 +622,9 @@ "@settingsThemeModeLightLabel": {}, "settingsThemeModeSystemLabel": "Systémový", "@settingsThemeModeSystemLabel": {}, - "sortDocumentAscending": "Ascending", + "sortDocumentAscending": "Vzestupně", "@sortDocumentAscending": {}, - "sortDocumentDescending": "Descending", + "sortDocumentDescending": "Sestupně", "@sortDocumentDescending": {}, "storagePathParameterDayLabel": "den", "@storagePathParameterDayLabel": {}, @@ -627,6 +647,5 @@ "verifyIdentityPageTitle": "Ověř svou identitu", "@verifyIdentityPageTitle": {}, "verifyIdentityPageVerifyIdentityButtonLabel": "Ověřit identitu", - "@verifyIdentityPageVerifyIdentityButtonLabel": {}, - "genericActionCloseLabel": "Close" + "@verifyIdentityPageVerifyIdentityButtonLabel": {} } \ No newline at end of file diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb index 3c75572..6be28f4 100644 --- a/lib/l10n/intl_de.arb +++ b/lib/l10n/intl_de.arb @@ -6,6 +6,8 @@ "name": {} } }, + "accountSettingsTitle": "Account", + "@accountSettingsTitle": {}, "addCorrespondentPageTitle": "Neuer Korrespondent", "@addCorrespondentPageTitle": {}, "addDocumentTypePageTitle": "Neuer Dokumenttyp", @@ -150,10 +152,14 @@ "@documentScannerPageUploadFromThisDeviceButtonLabel": {}, "documentSearchHistory": "Verlauf", "@documentSearchHistory": {}, + "documentSearchNoMatchesFound": "Keine Treffer.", + "@documentSearchNoMatchesFound": {}, "documentSearchPageRemoveFromHistory": "Aus dem Suchverlauf entfernen?", "@documentSearchPageRemoveFromHistory": {}, "documentSearchResults": "Ergebnisse", "@documentSearchResults": {}, + "documentSearchSearchDocuments": "Durchsuche Dokumente", + "@documentSearchSearchDocuments": {}, "documentsEmptyStateResetFilterLabel": "Filter zurücksetzen", "@documentsEmptyStateResetFilterLabel": {}, "documentsFilterPageAdvancedLabel": "Erweitert", @@ -268,7 +274,7 @@ "@errorMessageDocumentUploadFailed": {}, "errorMessageInvalidClientCertificateConfiguration": "Ungültiges Zertifikat oder fehlende Passphrase, bitte versuche es erneut.", "@errorMessageInvalidClientCertificateConfiguration": {}, - "errorMessageLoadSavedViewsError": "Gespeicherte Ansichten konnten nicht geladen werden.", + "errorMessageLoadSavedViewsError": "Ansichten konnten nicht geladen werden.", "@errorMessageLoadSavedViewsError": {}, "errorMessageMissingClientCertificate": "Ein Client Zerfitikat wurde erwartet, aber nicht gesendet. Bitte konfiguriere ein gültiges Zertifikat.", "@errorMessageMissingClientCertificate": {}, @@ -370,6 +376,8 @@ "@genericAcknowledgeLabel": {}, "genericActionCancelLabel": "Abbrechen", "@genericActionCancelLabel": {}, + "genericActionCloseLabel": "Schließen", + "@genericActionCloseLabel": {}, "genericActionCreateLabel": "Erstellen", "@genericActionCreateLabel": {}, "genericActionDeleteLabel": "Löschen", @@ -558,14 +566,26 @@ "@savedViewNameLabel": {}, "savedViewsEmptyStateText": "Lege Ansichten an, um Dokumente schneller zu finden.", "@savedViewsEmptyStateText": {}, + "savedViewsFiltersSetCount": "{count, plural, zero{{count} Filter gesetzt} one{{count} Filter gesetzt} other{{count} Filter gesetzt}}", + "@savedViewsFiltersSetCount": { + "placeholders": { + "count": {} + } + }, "savedViewShowInSidebarLabel": "In Seitenleiste zeigen", "@savedViewShowInSidebarLabel": {}, "savedViewShowOnDashboardLabel": "Auf Startseite zeigen", "@savedViewShowOnDashboardLabel": {}, - "savedViewsLabel": "Gespeicherte Ansichten", + "savedViewsLabel": "Ansichten", "@savedViewsLabel": {}, + "scannerPageClearAllLabel": "Alle löschen", + "@scannerPageClearAllLabel": {}, "scannerPageImagePreviewTitle": "Aufnahme", "@scannerPageImagePreviewTitle": {}, + "scannerPagePreviewLabel": "Vorschau", + "@scannerPagePreviewLabel": {}, + "scannerPageUploadLabel": "Hochladen", + "@scannerPageUploadLabel": {}, "serverInformationPaperlessVersionText": "Paperless Server-Version", "@serverInformationPaperlessVersionText": {}, "settingsPageAppearanceSettingDarkThemeLabel": "Dunkler Modus", @@ -627,6 +647,5 @@ "verifyIdentityPageTitle": "Verifiziere deine Identität", "@verifyIdentityPageTitle": {}, "verifyIdentityPageVerifyIdentityButtonLabel": "Identität verifizieren", - "@verifyIdentityPageVerifyIdentityButtonLabel": {}, - "genericActionCloseLabel": "Close" + "@verifyIdentityPageVerifyIdentityButtonLabel": {} } \ No newline at end of file diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index a90f39b..8ab7807 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -6,6 +6,8 @@ "name": {} } }, + "accountSettingsTitle": "Account", + "@accountSettingsTitle": {}, "addCorrespondentPageTitle": "New Correspondent", "@addCorrespondentPageTitle": {}, "addDocumentTypePageTitle": "New Document Type", @@ -150,10 +152,14 @@ "@documentScannerPageUploadFromThisDeviceButtonLabel": {}, "documentSearchHistory": "History", "@documentSearchHistory": {}, + "documentSearchNoMatchesFound": "No matches found.", + "@documentSearchNoMatchesFound": {}, "documentSearchPageRemoveFromHistory": "Remove from search history?", "@documentSearchPageRemoveFromHistory": {}, "documentSearchResults": "Results", "@documentSearchResults": {}, + "documentSearchSearchDocuments": "Search documents", + "@documentSearchSearchDocuments": {}, "documentsEmptyStateResetFilterLabel": "Reset filter", "@documentsEmptyStateResetFilterLabel": {}, "documentsFilterPageAdvancedLabel": "Advanced", @@ -268,7 +274,7 @@ "@errorMessageDocumentUploadFailed": {}, "errorMessageInvalidClientCertificateConfiguration": "Invalid certificate or missing passphrase, please try again", "@errorMessageInvalidClientCertificateConfiguration": {}, - "errorMessageLoadSavedViewsError": "Could not load saved views.", + "errorMessageLoadSavedViewsError": "Could not load views.", "@errorMessageLoadSavedViewsError": {}, "errorMessageMissingClientCertificate": "A client certificate was expected but not sent. Please provide a valid client certificate.", "@errorMessageMissingClientCertificate": {}, @@ -370,6 +376,8 @@ "@genericAcknowledgeLabel": {}, "genericActionCancelLabel": "Cancel", "@genericActionCancelLabel": {}, + "genericActionCloseLabel": "Close", + "@genericActionCloseLabel": {}, "genericActionCreateLabel": "Create", "@genericActionCreateLabel": {}, "genericActionDeleteLabel": "Delete", @@ -558,14 +566,26 @@ "@savedViewNameLabel": {}, "savedViewsEmptyStateText": "Create views to quickly filter your documents.", "@savedViewsEmptyStateText": {}, + "savedViewsFiltersSetCount": "{count, plural, zero{{count} filters set} one{{count} filter set} other{{count} filters set}}", + "@savedViewsFiltersSetCount": { + "placeholders": { + "count": {} + } + }, "savedViewShowInSidebarLabel": "Show in sidebar", "@savedViewShowInSidebarLabel": {}, "savedViewShowOnDashboardLabel": "Show on dashboard", "@savedViewShowOnDashboardLabel": {}, - "savedViewsLabel": "Saved Views", + "savedViewsLabel": "Views", "@savedViewsLabel": {}, + "scannerPageClearAllLabel": "Clear all", + "@scannerPageClearAllLabel": {}, "scannerPageImagePreviewTitle": "Scan", "@scannerPageImagePreviewTitle": {}, + "scannerPagePreviewLabel": "Preview", + "@scannerPagePreviewLabel": {}, + "scannerPageUploadLabel": "Upload", + "@scannerPageUploadLabel": {}, "serverInformationPaperlessVersionText": "Paperless server version", "@serverInformationPaperlessVersionText": {}, "settingsPageAppearanceSettingDarkThemeLabel": "Dark Theme", @@ -627,6 +647,5 @@ "verifyIdentityPageTitle": "Verify your identity", "@verifyIdentityPageTitle": {}, "verifyIdentityPageVerifyIdentityButtonLabel": "Verify Identity", - "@verifyIdentityPageVerifyIdentityButtonLabel": {}, - "genericActionCloseLabel": "Close" + "@verifyIdentityPageVerifyIdentityButtonLabel": {} } \ No newline at end of file diff --git a/lib/l10n/intl_pl.arb b/lib/l10n/intl_pl.arb new file mode 100644 index 0000000..d8e6a7f --- /dev/null +++ b/lib/l10n/intl_pl.arb @@ -0,0 +1,651 @@ +{ + "@@locale": "pl", + "aboutDialogDevelopedByText": "Developed by {name}", + "@aboutDialogDevelopedByText": { + "placeholders": { + "name": {} + } + }, + "accountSettingsTitle": "Account", + "@accountSettingsTitle": {}, + "addCorrespondentPageTitle": "New Correspondent", + "@addCorrespondentPageTitle": {}, + "addDocumentTypePageTitle": "Nowy rodzaj dokumentu", + "@addDocumentTypePageTitle": {}, + "addStoragePathPageTitle": "New Storage Path", + "@addStoragePathPageTitle": {}, + "addTagPageTitle": "Nowy tag", + "@addTagPageTitle": {}, + "appDrawerAboutInfoLoadingText": "Retrieving application information...", + "@appDrawerAboutInfoLoadingText": {}, + "appDrawerAboutLabel": "O aplikacji", + "@appDrawerAboutLabel": {}, + "appDrawerHeaderLoggedInAsText": "Zalogowano jako", + "@appDrawerHeaderLoggedInAsText": {}, + "appDrawerLogoutLabel": "Disconnect", + "@appDrawerLogoutLabel": {}, + "appDrawerReportBugLabel": "Report a Bug", + "@appDrawerReportBugLabel": {}, + "appDrawerSettingsLabel": "Ustawienia", + "@appDrawerSettingsLabel": {}, + "appSettingsBiometricAuthenticationDescriptionText": "Authenticate on app start", + "@appSettingsBiometricAuthenticationDescriptionText": {}, + "appSettingsBiometricAuthenticationLabel": "Biometric authentication", + "@appSettingsBiometricAuthenticationLabel": {}, + "appSettingsDisableBiometricAuthenticationReasonText": "Authenticate to disable biometric authentication", + "@appSettingsDisableBiometricAuthenticationReasonText": {}, + "appSettingsEnableBiometricAuthenticationReasonText": "Authenticate to enable biometric authentication", + "@appSettingsEnableBiometricAuthenticationReasonText": {}, + "appTitleText": "Paperless Mobile", + "@appTitleText": {}, + "bottomNavDocumentsPageLabel": "Documents", + "@bottomNavDocumentsPageLabel": {}, + "bottomNavInboxPageLabel": "Skrzynka odbiorcza", + "@bottomNavInboxPageLabel": {}, + "bottomNavLabelsPageLabel": "Labels", + "@bottomNavLabelsPageLabel": {}, + "bottomNavScannerPageLabel": "Scanner", + "@bottomNavScannerPageLabel": {}, + "colorSchemeOptionClassic": "Classic", + "@colorSchemeOptionClassic": {}, + "colorSchemeOptionDynamic": "Dynamic", + "@colorSchemeOptionDynamic": {}, + "correspondentFormFieldSearchHintText": "Zacznij pisać...", + "@correspondentFormFieldSearchHintText": {}, + "deleteViewDialogContentText": "Do you really want to delete this view?", + "@deleteViewDialogContentText": {}, + "deleteViewDialogTitleText": "Delete view ", + "@deleteViewDialogTitleText": {}, + "documentAddedPropertyLabel": "Added at", + "@documentAddedPropertyLabel": {}, + "documentArchiveSerialNumberPropertyLongLabel": "Numer Seryjny Archiwum", + "@documentArchiveSerialNumberPropertyLongLabel": {}, + "documentArchiveSerialNumberPropertyShortLabel": "ASN", + "@documentArchiveSerialNumberPropertyShortLabel": {}, + "documentCorrespondentPropertyLabel": "Correspondent", + "@documentCorrespondentPropertyLabel": {}, + "documentCreatedPropertyLabel": "Created at", + "@documentCreatedPropertyLabel": {}, + "documentDeleteSuccessMessage": "Dokument pomyślnie usunięty.", + "@documentDeleteSuccessMessage": {}, + "documentDetailsPageAssignAsnButtonLabel": "Assign", + "@documentDetailsPageAssignAsnButtonLabel": {}, + "documentDetailsPageDeleteTooltip": "Usuń", + "@documentDetailsPageDeleteTooltip": {}, + "documentDetailsPageDownloadTooltip": "Pobierz", + "@documentDetailsPageDownloadTooltip": {}, + "documentDetailsPageEditTooltip": "Edytuj", + "@documentDetailsPageEditTooltip": {}, + "documentDetailsPageLoadFullContentLabel": "Load full content", + "@documentDetailsPageLoadFullContentLabel": {}, + "documentDetailsPageNoPdfViewerFoundErrorMessage": "Nie znaleziono aplikacji do wyświetlania plików PDF", + "@documentDetailsPageNoPdfViewerFoundErrorMessage": {}, + "documentDetailsPageOpenInSystemViewerTooltip": "Otwórz w przeglądarce systemowej", + "@documentDetailsPageOpenInSystemViewerTooltip": {}, + "documentDetailsPageOpenPdfPermissionDeniedErrorMessage": "Nie można otworzyć pliku: ", + "@documentDetailsPageOpenPdfPermissionDeniedErrorMessage": {}, + "documentDetailsPagePreviewTooltip": "Podgląd", + "@documentDetailsPagePreviewTooltip": {}, + "documentDetailsPageShareTooltip": "Udostępnij", + "@documentDetailsPageShareTooltip": {}, + "documentDetailsPageSimilarDocumentsLabel": "Podobne Dokumenty", + "@documentDetailsPageSimilarDocumentsLabel": {}, + "documentDetailsPageTabContentLabel": "Treść", + "@documentDetailsPageTabContentLabel": {}, + "documentDetailsPageTabMetaDataLabel": "Meta dane", + "@documentDetailsPageTabMetaDataLabel": {}, + "documentDetailsPageTabOverviewLabel": "Przegląd", + "@documentDetailsPageTabOverviewLabel": {}, + "documentDetailsPageTabSimilarDocumentsLabel": "Podobne Dokumenty", + "@documentDetailsPageTabSimilarDocumentsLabel": {}, + "documentDocumentTypePropertyLabel": "Rodzaj dokumentu", + "@documentDocumentTypePropertyLabel": {}, + "documentDownloadSuccessMessage": "Document successfully downloaded.", + "@documentDownloadSuccessMessage": {}, + "documentEditPageSuggestionsLabel": "Suggestions: ", + "@documentEditPageSuggestionsLabel": {}, + "documentEditPageTitle": "Edytuj Dokument", + "@documentEditPageTitle": {}, + "documentFilterAdvancedLabel": "Advanced", + "@documentFilterAdvancedLabel": {}, + "documentFilterApplyFilterLabel": "Apply", + "@documentFilterApplyFilterLabel": {}, + "documentFilterQueryOptionsAsnLabel": "ASN", + "@documentFilterQueryOptionsAsnLabel": {}, + "documentFilterQueryOptionsExtendedLabel": "Extended", + "@documentFilterQueryOptionsExtendedLabel": {}, + "documentFilterQueryOptionsTitleAndContentLabel": "Tytuł i treść", + "@documentFilterQueryOptionsTitleAndContentLabel": {}, + "documentFilterQueryOptionsTitleLabel": "Tytuł", + "@documentFilterQueryOptionsTitleLabel": {}, + "documentFilterResetLabel": "Reset", + "@documentFilterResetLabel": {}, + "documentFilterSearchLabel": "Szukaj", + "@documentFilterSearchLabel": {}, + "documentFilterTitle": "Filter Documents", + "@documentFilterTitle": {}, + "documentMetaDataChecksumLabel": "Original MD5-Checksum", + "@documentMetaDataChecksumLabel": {}, + "documentMetaDataMediaFilenamePropertyLabel": "Media Filename", + "@documentMetaDataMediaFilenamePropertyLabel": {}, + "documentMetaDataOriginalFileSizeLabel": "Original File Size", + "@documentMetaDataOriginalFileSizeLabel": {}, + "documentMetaDataOriginalMimeTypeLabel": "Original MIME-Type", + "@documentMetaDataOriginalMimeTypeLabel": {}, + "documentModifiedPropertyLabel": "Modified at", + "@documentModifiedPropertyLabel": {}, + "documentPreviewPageTitle": "Podgląd", + "@documentPreviewPageTitle": {}, + "documentScannerPageAddScanButtonLabel": "Zeskanuj dokument", + "@documentScannerPageAddScanButtonLabel": {}, + "documentScannerPageEmptyStateText": "No documents scanned yet.", + "@documentScannerPageEmptyStateText": {}, + "documentScannerPageOrText": "lub", + "@documentScannerPageOrText": {}, + "documentScannerPageResetButtonTooltipText": "Delete all scans", + "@documentScannerPageResetButtonTooltipText": {}, + "documentScannerPageTitle": "Skanuj", + "@documentScannerPageTitle": {}, + "documentScannerPageUploadButtonTooltip": "Prześlij dokument z tego urządzenia", + "@documentScannerPageUploadButtonTooltip": {}, + "documentScannerPageUploadFromThisDeviceButtonLabel": "Upload a document from this device", + "@documentScannerPageUploadFromThisDeviceButtonLabel": {}, + "documentSearchHistory": "Historia", + "@documentSearchHistory": {}, + "documentSearchNoMatchesFound": "No matches found.", + "@documentSearchNoMatchesFound": {}, + "documentSearchPageRemoveFromHistory": "Usunąć z historii wyszukiwania?", + "@documentSearchPageRemoveFromHistory": {}, + "documentSearchResults": "Wyniki", + "@documentSearchResults": {}, + "documentSearchSearchDocuments": "Search documents", + "@documentSearchSearchDocuments": {}, + "documentsEmptyStateResetFilterLabel": "Reset filter", + "@documentsEmptyStateResetFilterLabel": {}, + "documentsFilterPageAdvancedLabel": "Advanced", + "@documentsFilterPageAdvancedLabel": {}, + "documentsFilterPageApplyFilterLabel": "Apply", + "@documentsFilterPageApplyFilterLabel": {}, + "documentsFilterPageDateRangeLastMonthLabel": "Last Month", + "@documentsFilterPageDateRangeLastMonthLabel": {}, + "documentsFilterPageDateRangeLastSevenDaysLabel": "Last 7 Days", + "@documentsFilterPageDateRangeLastSevenDaysLabel": {}, + "documentsFilterPageDateRangeLastThreeMonthsLabel": "Last 3 Months", + "@documentsFilterPageDateRangeLastThreeMonthsLabel": {}, + "documentsFilterPageDateRangeLastYearLabel": "Last Year", + "@documentsFilterPageDateRangeLastYearLabel": {}, + "documentsFilterPageQueryOptionsAsnLabel": "ASN", + "@documentsFilterPageQueryOptionsAsnLabel": {}, + "documentsFilterPageQueryOptionsExtendedLabel": "Extended", + "@documentsFilterPageQueryOptionsExtendedLabel": {}, + "documentsFilterPageQueryOptionsTitleAndContentLabel": "Title & Content", + "@documentsFilterPageQueryOptionsTitleAndContentLabel": {}, + "documentsFilterPageQueryOptionsTitleLabel": "Title", + "@documentsFilterPageQueryOptionsTitleLabel": {}, + "documentsFilterPageSearchLabel": "Szukaj", + "@documentsFilterPageSearchLabel": {}, + "documentsFilterPageTitle": "Filter Documents", + "@documentsFilterPageTitle": {}, + "documentsPageBulkDeleteSuccessfulText": "Dokument pomyślnie usunięty.", + "@documentsPageBulkDeleteSuccessfulText": {}, + "documentsPageEmptyStateNothingHereText": "There seems to be nothing here...", + "@documentsPageEmptyStateNothingHereText": {}, + "documentsPageEmptyStateOopsText": "Ups.", + "@documentsPageEmptyStateOopsText": {}, + "documentsPageNewDocumentAvailableText": "New document available!", + "@documentsPageNewDocumentAvailableText": {}, + "documentsPageOrderByLabel": "Order By", + "@documentsPageOrderByLabel": {}, + "documentsPageSelectionBulkDeleteDialogContinueText": "This action is irreversible. Do you wish to proceed anyway?", + "@documentsPageSelectionBulkDeleteDialogContinueText": {}, + "documentsPageSelectionBulkDeleteDialogTitle": "Potwierdź usunięcie", + "@documentsPageSelectionBulkDeleteDialogTitle": {}, + "documentsPageSelectionBulkDeleteDialogWarningTextMany": "Are you sure you want to delete the following documents?", + "@documentsPageSelectionBulkDeleteDialogWarningTextMany": {}, + "documentsPageSelectionBulkDeleteDialogWarningTextOne": "Are you sure you want to delete the following document?", + "@documentsPageSelectionBulkDeleteDialogWarningTextOne": {}, + "documentsPageTitle": "Documents", + "@documentsPageTitle": {}, + "documentsSelectedText": "selected", + "@documentsSelectedText": {}, + "documentStoragePathPropertyLabel": "Storage Path", + "@documentStoragePathPropertyLabel": {}, + "documentsUploadPageTitle": "Prepare document", + "@documentsUploadPageTitle": {}, + "documentTagsPropertyLabel": "Tagi", + "@documentTagsPropertyLabel": {}, + "documentTitlePropertyLabel": "Tytuł", + "@documentTitlePropertyLabel": {}, + "documentTypeFormFieldSearchHintText": "Zacznij pisać...", + "@documentTypeFormFieldSearchHintText": {}, + "documentUpdateSuccessMessage": "Dokument został pomyślnie zaktualizowany ", + "@documentUpdateSuccessMessage": {}, + "documentUploadFileNameLabel": "Nazwa Pliku", + "@documentUploadFileNameLabel": {}, + "documentUploadPageSynchronizeTitleAndFilenameLabel": "Synchronize title and filename", + "@documentUploadPageSynchronizeTitleAndFilenameLabel": {}, + "documentUploadProcessingSuccessfulReloadActionText": "Reload", + "@documentUploadProcessingSuccessfulReloadActionText": {}, + "documentUploadProcessingSuccessfulText": "Dokument pomyślnie przetworzony.", + "@documentUploadProcessingSuccessfulText": {}, + "documentUploadSuccessText": "Dokument pomyślnie przesłany, przetwarzam...", + "@documentUploadSuccessText": {}, + "editLabelPageConfirmDeletionDialogTitle": "Potwierdź usunięcie", + "@editLabelPageConfirmDeletionDialogTitle": {}, + "editLabelPageDeletionDialogText": "This label contains references to other documents. By deleting this label, all references will be removed. Continue?", + "@editLabelPageDeletionDialogText": {}, + "errorMessageAcknowledgeTasksError": "Could not acknowledge tasks.", + "@errorMessageAcknowledgeTasksError": {}, + "errorMessageAuthenticationFailed": "Authentication failed, please try again.", + "@errorMessageAuthenticationFailed": {}, + "errorMessageAutocompleteQueryError": "An error ocurred while trying to autocomplete your query.", + "@errorMessageAutocompleteQueryError": {}, + "errorMessageBiometricAuthenticationFailed": "Biometric authentication failed.", + "@errorMessageBiometricAuthenticationFailed": {}, + "errorMessageBiotmetricsNotSupported": "Biometric authentication not supported on this device.", + "@errorMessageBiotmetricsNotSupported": {}, + "errorMessageBulkActionFailed": "Could not bulk edit documents.", + "@errorMessageBulkActionFailed": {}, + "errorMessageCorrespondentCreateFailed": "Could not create correspondent, please try again.", + "@errorMessageCorrespondentCreateFailed": {}, + "errorMessageCorrespondentLoadFailed": "Could not load correspondents.", + "@errorMessageCorrespondentLoadFailed": {}, + "errorMessageCreateSavedViewError": "Could not create saved view, please try again.", + "@errorMessageCreateSavedViewError": {}, + "errorMessageDeleteSavedViewError": "Could not delete saved view, please try again", + "@errorMessageDeleteSavedViewError": {}, + "errorMessageDeviceOffline": "You are currently offline. Please make sure you are connected to the internet.", + "@errorMessageDeviceOffline": {}, + "errorMessageDocumentAsnQueryFailed": "Could not assign archive serial number.", + "@errorMessageDocumentAsnQueryFailed": {}, + "errorMessageDocumentDeleteFailed": "Could not delete document, please try again.", + "@errorMessageDocumentDeleteFailed": {}, + "errorMessageDocumentLoadFailed": "Could not load documents, please try again.", + "@errorMessageDocumentLoadFailed": {}, + "errorMessageDocumentPreviewFailed": "Could not load document preview.", + "@errorMessageDocumentPreviewFailed": {}, + "errorMessageDocumentTypeCreateFailed": "Could not create document, please try again.", + "@errorMessageDocumentTypeCreateFailed": {}, + "errorMessageDocumentTypeLoadFailed": "Could not load document types, please try again.", + "@errorMessageDocumentTypeLoadFailed": {}, + "errorMessageDocumentUpdateFailed": "Could not update document, please try again.", + "@errorMessageDocumentUpdateFailed": {}, + "errorMessageDocumentUploadFailed": "Could not upload document, please try again.", + "@errorMessageDocumentUploadFailed": {}, + "errorMessageInvalidClientCertificateConfiguration": "Invalid certificate or missing passphrase, please try again", + "@errorMessageInvalidClientCertificateConfiguration": {}, + "errorMessageLoadSavedViewsError": "Could not load views.", + "@errorMessageLoadSavedViewsError": {}, + "errorMessageMissingClientCertificate": "A client certificate was expected but not sent. Please provide a valid client certificate.", + "@errorMessageMissingClientCertificate": {}, + "errorMessageNotAuthenticated": "User is not authenticated.", + "@errorMessageNotAuthenticated": {}, + "errorMessageRequestTimedOut": "The request to the server timed out.", + "@errorMessageRequestTimedOut": {}, + "errorMessageScanRemoveFailed": "An error occurred removing the scans.", + "@errorMessageScanRemoveFailed": {}, + "errorMessageServerUnreachable": "Could not reach your Paperless server, is it up and running?", + "@errorMessageServerUnreachable": {}, + "errorMessageSimilarQueryError": "Could not load similar documents.", + "@errorMessageSimilarQueryError": {}, + "errorMessageStoragePathCreateFailed": "Could not create storage path, please try again.", + "@errorMessageStoragePathCreateFailed": {}, + "errorMessageStoragePathLoadFailed": "Could not load storage paths.", + "@errorMessageStoragePathLoadFailed": {}, + "errorMessageSuggestionsQueryError": "Could not load suggestions.", + "@errorMessageSuggestionsQueryError": {}, + "errorMessageTagCreateFailed": "Could not create tag, please try again.", + "@errorMessageTagCreateFailed": {}, + "errorMessageTagLoadFailed": "Could not load tags.", + "@errorMessageTagLoadFailed": {}, + "errorMessageUnknonwnError": "An unknown error occurred.", + "@errorMessageUnknonwnError": {}, + "errorMessageUnsupportedFileFormat": "This file format is not supported.", + "@errorMessageUnsupportedFileFormat": {}, + "errorReportLabel": "REPORT", + "@errorReportLabel": {}, + "extendedDateRangeDialogAbsoluteLabel": "Absolute", + "@extendedDateRangeDialogAbsoluteLabel": {}, + "extendedDateRangeDialogHintText": "Hint: Apart from concrete dates, you can also specify a time range relative to the current date.", + "@extendedDateRangeDialogHintText": {}, + "extendedDateRangeDialogRelativeAmountLabel": "Amount", + "@extendedDateRangeDialogRelativeAmountLabel": {}, + "extendedDateRangeDialogRelativeLabel": "Relative", + "@extendedDateRangeDialogRelativeLabel": {}, + "extendedDateRangeDialogRelativeLastLabel": "Last", + "@extendedDateRangeDialogRelativeLastLabel": {}, + "extendedDateRangeDialogRelativeTimeUnitLabel": "Time unit", + "@extendedDateRangeDialogRelativeTimeUnitLabel": {}, + "extendedDateRangeDialogTitle": "Wybierz zakres dat", + "@extendedDateRangeDialogTitle": {}, + "extendedDateRangePickerAfterLabel": "Po", + "@extendedDateRangePickerAfterLabel": {}, + "extendedDateRangePickerBeforeLabel": "Przed", + "@extendedDateRangePickerBeforeLabel": {}, + "extendedDateRangePickerDayText": "{count, plural, zero{days} one{day} other{days}}", + "@extendedDateRangePickerDayText": { + "placeholders": { + "count": {} + } + }, + "extendedDateRangePickerLastDaysLabel": "{count, plural, zero{} one{Yesterday} other{Last {count} days}}", + "@extendedDateRangePickerLastDaysLabel": { + "placeholders": { + "count": {} + } + }, + "extendedDateRangePickerLastMonthsLabel": "{count, plural, zero{} one{Last month} other{Last {count} months}}", + "@extendedDateRangePickerLastMonthsLabel": { + "placeholders": { + "count": {} + } + }, + "extendedDateRangePickerLastText": "Last", + "@extendedDateRangePickerLastText": {}, + "extendedDateRangePickerLastWeeksLabel": "{count, plural, zero{} one{Last week} other{Last {count} weeks}}", + "@extendedDateRangePickerLastWeeksLabel": { + "placeholders": { + "count": {} + } + }, + "extendedDateRangePickerLastYearsLabel": "{count, plural, zero{} one{Last year} other{Last {count} years}}", + "@extendedDateRangePickerLastYearsLabel": { + "placeholders": { + "count": {} + } + }, + "extendedDateRangePickerMonthText": "{count, plural, zero{} one{month} other{months}}", + "@extendedDateRangePickerMonthText": { + "placeholders": { + "count": {} + } + }, + "extendedDateRangePickerWeekText": "{count, plural, zero{} one{week} other{weeks}}", + "@extendedDateRangePickerWeekText": { + "placeholders": { + "count": {} + } + }, + "extendedDateRangePickerYearText": "{count, plural, zero{} one{year} other{years}}", + "@extendedDateRangePickerYearText": { + "placeholders": { + "count": {} + } + }, + "genericAcknowledgeLabel": "Got it!", + "@genericAcknowledgeLabel": {}, + "genericActionCancelLabel": "Cancel", + "@genericActionCancelLabel": {}, + "genericActionCloseLabel": "Close", + "@genericActionCloseLabel": {}, + "genericActionCreateLabel": "Create", + "@genericActionCreateLabel": {}, + "genericActionDeleteLabel": "Delete", + "@genericActionDeleteLabel": {}, + "genericActionEditLabel": "Edit", + "@genericActionEditLabel": {}, + "genericActionOkLabel": "Ok", + "@genericActionOkLabel": {}, + "genericActionSaveLabel": "Save", + "@genericActionSaveLabel": {}, + "genericActionSelectText": "Select", + "@genericActionSelectText": {}, + "genericActionUpdateLabel": "Zapisz zmiany", + "@genericActionUpdateLabel": {}, + "genericActionUploadLabel": "Upload", + "@genericActionUploadLabel": {}, + "genericMessageOfflineText": "Jesteście w trybie offline.", + "@genericMessageOfflineText": {}, + "inboxPageAssignAsnLabel": "Assign ASN", + "@inboxPageAssignAsnLabel": {}, + "inboxPageDocumentRemovedMessageText": "Dokument usunięty ze skrzynki odbiorczej", + "@inboxPageDocumentRemovedMessageText": {}, + "inboxPageMarkAllAsSeenConfirmationDialogText": "Are you sure you want to mark all documents as seen? This will perform a bulk edit operation removing all inbox tags from the documents. This action is not reversible! Are you sure you want to continue?", + "@inboxPageMarkAllAsSeenConfirmationDialogText": {}, + "inboxPageMarkAllAsSeenConfirmationDialogTitleText": "Mark all as seen?", + "@inboxPageMarkAllAsSeenConfirmationDialogTitleText": {}, + "inboxPageMarkAllAsSeenLabel": "All seen", + "@inboxPageMarkAllAsSeenLabel": {}, + "inboxPageMarkAsSeenText": "Mark as seen", + "@inboxPageMarkAsSeenText": {}, + "inboxPageNoNewDocumentsRefreshLabel": "Odświerz", + "@inboxPageNoNewDocumentsRefreshLabel": {}, + "inboxPageNoNewDocumentsText": "You do not have unseen documents.", + "@inboxPageNoNewDocumentsText": {}, + "inboxPageQuickActionsLabel": "Quick Action", + "@inboxPageQuickActionsLabel": {}, + "inboxPageSuggestionSuccessfullyAppliedMessage": "Suggestion successfully applied.", + "@inboxPageSuggestionSuccessfullyAppliedMessage": {}, + "inboxPageTodayText": "Dzisiaj", + "@inboxPageTodayText": {}, + "inboxPageUndoRemoveText": "Cofnij", + "@inboxPageUndoRemoveText": {}, + "inboxPageUnseenText": "unseen", + "@inboxPageUnseenText": {}, + "inboxPageUsageHintText": "Hint: Swipe left to mark a document as seen and remove all inbox tags from the document.", + "@inboxPageUsageHintText": {}, + "inboxPageYesterdayText": "Wczoraj", + "@inboxPageYesterdayText": {}, + "labelAnyAssignedText": "Any assigned", + "@labelAnyAssignedText": {}, + "labelFormFieldNoItemsFoundText": "No items found!", + "@labelFormFieldNoItemsFoundText": {}, + "labelIsInsensivitePropertyLabel": "Case Irrelevant", + "@labelIsInsensivitePropertyLabel": {}, + "labelMatchingAlgorithmPropertyLabel": "Matching Algorithm", + "@labelMatchingAlgorithmPropertyLabel": {}, + "labelMatchPropertyLabel": "Match", + "@labelMatchPropertyLabel": {}, + "labelNamePropertyLabel": "Nazwa", + "@labelNamePropertyLabel": {}, + "labelNotAssignedText": "Not assigned", + "@labelNotAssignedText": {}, + "labelsPageCorrespondentEmptyStateAddNewLabel": "Add new correspondent", + "@labelsPageCorrespondentEmptyStateAddNewLabel": {}, + "labelsPageCorrespondentEmptyStateDescriptionText": "You don't seem to have any correspondents set up.", + "@labelsPageCorrespondentEmptyStateDescriptionText": {}, + "labelsPageCorrespondentsTitleText": "Correspondents", + "@labelsPageCorrespondentsTitleText": {}, + "labelsPageDocumentTypeEmptyStateAddNewLabel": "Dodaj nowy rodzaj dokumentu", + "@labelsPageDocumentTypeEmptyStateAddNewLabel": {}, + "labelsPageDocumentTypeEmptyStateDescriptionText": "You don't seem to have any document types set up.", + "@labelsPageDocumentTypeEmptyStateDescriptionText": {}, + "labelsPageDocumentTypesTitleText": "Rodzaje dokumentów", + "@labelsPageDocumentTypesTitleText": {}, + "labelsPageStoragePathEmptyStateAddNewLabel": "Add new storage path", + "@labelsPageStoragePathEmptyStateAddNewLabel": {}, + "labelsPageStoragePathEmptyStateDescriptionText": "You don't seem to have any storage paths set up.", + "@labelsPageStoragePathEmptyStateDescriptionText": {}, + "labelsPageStoragePathTitleText": "Storage Paths", + "@labelsPageStoragePathTitleText": {}, + "labelsPageTagsEmptyStateAddNewLabel": "Dodaj nowy tag", + "@labelsPageTagsEmptyStateAddNewLabel": {}, + "labelsPageTagsEmptyStateDescriptionText": "You don't seem to have any tags set up.", + "@labelsPageTagsEmptyStateDescriptionText": {}, + "labelsPageTagsTitleText": "Tagi", + "@labelsPageTagsTitleText": {}, + "linkedDocumentsPageTitle": "Linked Documents", + "@linkedDocumentsPageTitle": {}, + "loginPageAdvancedLabel": "Advanced Settings", + "@loginPageAdvancedLabel": {}, + "loginPageClientCertificatePassphraseLabel": "Passphrase", + "@loginPageClientCertificatePassphraseLabel": {}, + "loginPageClientCertificateSettingDescriptionText": "Configure Mutual TLS Authentication", + "@loginPageClientCertificateSettingDescriptionText": {}, + "loginPageClientCertificateSettingInvalidFileFormatValidationText": "Invalid certificate format, only .pfx is allowed", + "@loginPageClientCertificateSettingInvalidFileFormatValidationText": {}, + "loginPageClientCertificateSettingLabel": "Client Certificate", + "@loginPageClientCertificateSettingLabel": {}, + "loginPageClientCertificateSettingSelectFileText": "Select file...", + "@loginPageClientCertificateSettingSelectFileText": {}, + "loginPageContinueLabel": "Kontynuuj", + "@loginPageContinueLabel": {}, + "loginPageIncorrectOrMissingCertificatePassphraseErrorMessageText": "Incorrect or missing certificate passphrase.", + "@loginPageIncorrectOrMissingCertificatePassphraseErrorMessageText": {}, + "loginPageLoginButtonLabel": "Polącz", + "@loginPageLoginButtonLabel": {}, + "loginPagePasswordFieldLabel": "Hasło", + "@loginPagePasswordFieldLabel": {}, + "loginPagePasswordValidatorMessageText": "Hasło nie może być puste.", + "@loginPagePasswordValidatorMessageText": {}, + "loginPageReachabilityConnectionTimeoutText": "Connection timed out.", + "@loginPageReachabilityConnectionTimeoutText": {}, + "loginPageReachabilityInvalidClientCertificateConfigurationText": "Incorrect or missing client certificate passphrase.", + "@loginPageReachabilityInvalidClientCertificateConfigurationText": {}, + "loginPageReachabilityMissingClientCertificateText": "A client certificate was expected but not sent. Please provide a certificate.", + "@loginPageReachabilityMissingClientCertificateText": {}, + "loginPageReachabilityNotReachableText": "Could not establish a connection to the server.", + "@loginPageReachabilityNotReachableText": {}, + "loginPageReachabilitySuccessText": "Connection successfully established.", + "@loginPageReachabilitySuccessText": {}, + "loginPageReachabilityUnresolvedHostText": "Host could not be resolved. Please check the server address and your internet connection. ", + "@loginPageReachabilityUnresolvedHostText": {}, + "loginPageServerUrlFieldLabel": "Adres serwera", + "@loginPageServerUrlFieldLabel": {}, + "loginPageServerUrlValidatorMessageInvalidAddressText": "Invalid address.", + "@loginPageServerUrlValidatorMessageInvalidAddressText": {}, + "loginPageServerUrlValidatorMessageMissingSchemeText": "Server address must include a scheme.", + "@loginPageServerUrlValidatorMessageMissingSchemeText": {}, + "loginPageServerUrlValidatorMessageRequiredText": "Server address must not be empty.", + "@loginPageServerUrlValidatorMessageRequiredText": {}, + "loginPageSignInButtonLabel": "Sign In", + "@loginPageSignInButtonLabel": {}, + "loginPageSignInTitle": "Sign In", + "@loginPageSignInTitle": {}, + "loginPageSignInToPrefixText": "Sign in to {serverAddress}", + "@loginPageSignInToPrefixText": { + "placeholders": { + "serverAddress": {} + } + }, + "loginPageTitle": "Connect to Paperless", + "@loginPageTitle": {}, + "loginPageUsernameLabel": "Username", + "@loginPageUsernameLabel": {}, + "loginPageUsernameValidatorMessageText": "Username must not be empty.", + "@loginPageUsernameValidatorMessageText": {}, + "matchingAlgorithmAllDescription": "Document contains all of these words", + "@matchingAlgorithmAllDescription": {}, + "matchingAlgorithmAllName": "All", + "@matchingAlgorithmAllName": {}, + "matchingAlgorithmAnyDescription": "Document contains any of these words", + "@matchingAlgorithmAnyDescription": {}, + "matchingAlgorithmAnyName": "Any", + "@matchingAlgorithmAnyName": {}, + "matchingAlgorithmAutoDescription": "Learn matching automatically", + "@matchingAlgorithmAutoDescription": {}, + "matchingAlgorithmAutoName": "Auto", + "@matchingAlgorithmAutoName": {}, + "matchingAlgorithmExactDescription": "Document contains this string", + "@matchingAlgorithmExactDescription": {}, + "matchingAlgorithmExactName": "Exact", + "@matchingAlgorithmExactName": {}, + "matchingAlgorithmFuzzyDescription": "Document contains a word similar to this word", + "@matchingAlgorithmFuzzyDescription": {}, + "matchingAlgorithmFuzzyName": "Fuzzy", + "@matchingAlgorithmFuzzyName": {}, + "matchingAlgorithmRegexDescription": "Document matches this regular expression", + "@matchingAlgorithmRegexDescription": {}, + "matchingAlgorithmRegexName": "Regular Expression", + "@matchingAlgorithmRegexName": {}, + "offlineWidgetText": "Nie można było nawiązać połączenia internetowego.", + "@offlineWidgetText": {}, + "onboardingDoneButtonLabel": "Done", + "@onboardingDoneButtonLabel": {}, + "onboardingNextButtonLabel": "Następne", + "@onboardingNextButtonLabel": {}, + "receiveSharedFilePermissionDeniedMessage": "Could not access the received file. Please try to open the app before sharing.", + "@receiveSharedFilePermissionDeniedMessage": {}, + "referencedDocumentsReadOnlyHintText": "This is a read-only view! You cannot edit or remove documents. A maximum of 100 referenced documents will be loaded.", + "@referencedDocumentsReadOnlyHintText": {}, + "savedViewCreateNewLabel": "New View", + "@savedViewCreateNewLabel": {}, + "savedViewCreateTooltipText": "Creates a new view based on the current filter criteria.", + "@savedViewCreateTooltipText": {}, + "savedViewNameLabel": "Nazwa", + "@savedViewNameLabel": {}, + "savedViewsEmptyStateText": "Create views to quickly filter your documents.", + "@savedViewsEmptyStateText": {}, + "savedViewsFiltersSetCount": "{count, plural, zero{{count} filters set} one{{count} filter set} other{{count} filters set}}", + "@savedViewsFiltersSetCount": { + "placeholders": { + "count": {} + } + }, + "savedViewShowInSidebarLabel": "Show in sidebar", + "@savedViewShowInSidebarLabel": {}, + "savedViewShowOnDashboardLabel": "Show on dashboard", + "@savedViewShowOnDashboardLabel": {}, + "savedViewsLabel": "Views", + "@savedViewsLabel": {}, + "scannerPageClearAllLabel": "Clear all", + "@scannerPageClearAllLabel": {}, + "scannerPageImagePreviewTitle": "Skanuj", + "@scannerPageImagePreviewTitle": {}, + "scannerPagePreviewLabel": "Preview", + "@scannerPagePreviewLabel": {}, + "scannerPageUploadLabel": "Upload", + "@scannerPageUploadLabel": {}, + "serverInformationPaperlessVersionText": "Wersja serwera Paperless", + "@serverInformationPaperlessVersionText": {}, + "settingsPageAppearanceSettingDarkThemeLabel": "Motyw ciemny", + "@settingsPageAppearanceSettingDarkThemeLabel": {}, + "settingsPageAppearanceSettingLightThemeLabel": "Motyw jasny", + "@settingsPageAppearanceSettingLightThemeLabel": {}, + "settingsPageAppearanceSettingSystemThemeLabel": "Użyj motywu systemu", + "@settingsPageAppearanceSettingSystemThemeLabel": {}, + "settingsPageAppearanceSettingTitle": "Wygląd", + "@settingsPageAppearanceSettingTitle": {}, + "settingsPageApplicationSettingsDescriptionText": "Język i wygląd", + "@settingsPageApplicationSettingsDescriptionText": {}, + "settingsPageApplicationSettingsLabel": "Aplikacja", + "@settingsPageApplicationSettingsLabel": {}, + "settingsPageColorSchemeSettingDialogDescription": "Choose between a classic color scheme inspired by a traditional Paperless green or use the dynamic color scheme based on your system theme.", + "@settingsPageColorSchemeSettingDialogDescription": {}, + "settingsPageColorSchemeSettingDynamicThemeingVersionMismatchWarning": "Dynamic theming is only supported for devices running Android 12 and above. Selecting the 'Dynamic' option might not have any effect depending on your OS implementation.", + "@settingsPageColorSchemeSettingDynamicThemeingVersionMismatchWarning": {}, + "settingsPageColorSchemeSettingLabel": "Kolory", + "@settingsPageColorSchemeSettingLabel": {}, + "settingsPageLanguageSettingLabel": "Język", + "@settingsPageLanguageSettingLabel": {}, + "settingsPageSecuritySettingsDescriptionText": "Uwierzytelnianie biometryczne", + "@settingsPageSecuritySettingsDescriptionText": {}, + "settingsPageSecuritySettingsLabel": "Zabezpieczenia", + "@settingsPageSecuritySettingsLabel": {}, + "settingsPageStorageSettingsDescriptionText": "Manage files and storage space", + "@settingsPageStorageSettingsDescriptionText": {}, + "settingsPageStorageSettingsLabel": "Storage", + "@settingsPageStorageSettingsLabel": {}, + "settingsThemeModeDarkLabel": "Ciemny", + "@settingsThemeModeDarkLabel": {}, + "settingsThemeModeLightLabel": "Jasny", + "@settingsThemeModeLightLabel": {}, + "settingsThemeModeSystemLabel": "System", + "@settingsThemeModeSystemLabel": {}, + "sortDocumentAscending": "Ascending", + "@sortDocumentAscending": {}, + "sortDocumentDescending": "Descending", + "@sortDocumentDescending": {}, + "storagePathParameterDayLabel": "dzień", + "@storagePathParameterDayLabel": {}, + "storagePathParameterMonthLabel": "miesiąc", + "@storagePathParameterMonthLabel": {}, + "storagePathParameterYearLabel": "rok", + "@storagePathParameterYearLabel": {}, + "tagColorPropertyLabel": "Kolor", + "@tagColorPropertyLabel": {}, + "tagFormFieldSearchHintText": "Filter tags...", + "@tagFormFieldSearchHintText": {}, + "tagInboxTagPropertyLabel": "Tag skrzynki odbiorczej", + "@tagInboxTagPropertyLabel": {}, + "uploadPageAutomaticallInferredFieldsHintText": "If you specify values for these fields, your paperless instance will not automatically derive a value. If you want these values to be automatically populated by your server, leave the fields blank.", + "@uploadPageAutomaticallInferredFieldsHintText": {}, + "verifyIdentityPageDescriptionText": "Use the configured biometric factor to authenticate and unlock your documents.", + "@verifyIdentityPageDescriptionText": {}, + "verifyIdentityPageLogoutButtonLabel": "Disconnect", + "@verifyIdentityPageLogoutButtonLabel": {}, + "verifyIdentityPageTitle": "Verify your identity", + "@verifyIdentityPageTitle": {}, + "verifyIdentityPageVerifyIdentityButtonLabel": "Verify Identity", + "@verifyIdentityPageVerifyIdentityButtonLabel": {} +} \ No newline at end of file diff --git a/lib/l10n/intl_tr.arb b/lib/l10n/intl_tr.arb index f9a6e61..3451880 100644 --- a/lib/l10n/intl_tr.arb +++ b/lib/l10n/intl_tr.arb @@ -6,6 +6,8 @@ "name": {} } }, + "accountSettingsTitle": "Account", + "@accountSettingsTitle": {}, "addCorrespondentPageTitle": "Yeni ek yazar", "@addCorrespondentPageTitle": {}, "addDocumentTypePageTitle": "Yeni Belge Türü", @@ -150,10 +152,14 @@ "@documentScannerPageUploadFromThisDeviceButtonLabel": {}, "documentSearchHistory": "History", "@documentSearchHistory": {}, + "documentSearchNoMatchesFound": "No matches found.", + "@documentSearchNoMatchesFound": {}, "documentSearchPageRemoveFromHistory": "Remove from search history?", "@documentSearchPageRemoveFromHistory": {}, "documentSearchResults": "Results", "@documentSearchResults": {}, + "documentSearchSearchDocuments": "Search documents", + "@documentSearchSearchDocuments": {}, "documentsEmptyStateResetFilterLabel": "Filtreyi sıfırla", "@documentsEmptyStateResetFilterLabel": {}, "documentsFilterPageAdvancedLabel": "Gelişmiş", @@ -370,6 +376,8 @@ "@genericAcknowledgeLabel": {}, "genericActionCancelLabel": "İptal", "@genericActionCancelLabel": {}, + "genericActionCloseLabel": "Close", + "@genericActionCloseLabel": {}, "genericActionCreateLabel": "Yarat", "@genericActionCreateLabel": {}, "genericActionDeleteLabel": "Sil", @@ -558,14 +566,26 @@ "@savedViewNameLabel": {}, "savedViewsEmptyStateText": "Belgelerinizi hızla filtrelemek için görünümler oluşturun.", "@savedViewsEmptyStateText": {}, + "savedViewsFiltersSetCount": "{count, plural, zero{{count} filters set} one{{count} filter set} other{{count} filters set}}", + "@savedViewsFiltersSetCount": { + "placeholders": { + "count": {} + } + }, "savedViewShowInSidebarLabel": "Kenar çubuğunda göster", "@savedViewShowInSidebarLabel": {}, "savedViewShowOnDashboardLabel": "Kontrol panelinde göster", "@savedViewShowOnDashboardLabel": {}, "savedViewsLabel": "Kayıtlı Görünümler", "@savedViewsLabel": {}, + "scannerPageClearAllLabel": "Clear all", + "@scannerPageClearAllLabel": {}, "scannerPageImagePreviewTitle": "Tara", "@scannerPageImagePreviewTitle": {}, + "scannerPagePreviewLabel": "Preview", + "@scannerPagePreviewLabel": {}, + "scannerPageUploadLabel": "Upload", + "@scannerPageUploadLabel": {}, "serverInformationPaperlessVersionText": "Paperless sunucu versiyonu", "@serverInformationPaperlessVersionText": {}, "settingsPageAppearanceSettingDarkThemeLabel": "Koyu Tema", @@ -627,6 +647,5 @@ "verifyIdentityPageTitle": "Kimliğinizi doğrulayın", "@verifyIdentityPageTitle": {}, "verifyIdentityPageVerifyIdentityButtonLabel": "Kimliği Doğrula", - "@verifyIdentityPageVerifyIdentityButtonLabel": {}, - "genericActionCloseLabel": "Close" + "@verifyIdentityPageVerifyIdentityButtonLabel": {} } \ No newline at end of file diff --git a/lib/theme.dart b/lib/theme.dart index 27ec7cb..adee91d 100644 --- a/lib/theme.dart +++ b/lib/theme.dart @@ -46,5 +46,10 @@ ThemeData buildTheme({ appBarTheme: AppBarTheme( scrolledUnderElevation: 0, ), + chipTheme: ChipThemeData( + backgroundColor: colorScheme.surfaceVariant, + checkmarkColor: colorScheme.onSurfaceVariant, + deleteIconColor: colorScheme.onSurfaceVariant, + ), ); } diff --git a/packages/paperless_api/lib/src/models/paperless_server_statistics_model.dart b/packages/paperless_api/lib/src/models/paperless_server_statistics_model.dart index d5ac901..77cd188 100644 --- a/packages/paperless_api/lib/src/models/paperless_server_statistics_model.dart +++ b/packages/paperless_api/lib/src/models/paperless_server_statistics_model.dart @@ -8,6 +8,6 @@ class PaperlessServerStatisticsModel { }); PaperlessServerStatisticsModel.fromJson(Map json) - : documentsTotal = json['documents_total'], - documentsInInbox = json['documents_inbox']; + : documentsTotal = json['documents_total'] ?? 0, + documentsInInbox = json['documents_inbox'] ?? 0; } diff --git a/pubspec.lock b/pubspec.lock index 4bb00ce..7be9f14 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -714,10 +714,10 @@ packages: dependency: "direct main" description: name: flutter_typeahead - sha256: "0ec56e1deac7556f3616f3cd53c9a25bf225dc8b72e9f44b5a7717e42bb467b5" + sha256: "73eb76fa640ea630e2d957e7b469ab2b91e4da6c4950d6032fab7009275637b7" url: "https://pub.dev" source: hosted - version: "4.1.1" + version: "4.3.3" flutter_web_plugins: dependency: transitive description: flutter diff --git a/pubspec.yaml b/pubspec.yaml index d10f818..eea5a10 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -68,7 +68,7 @@ dependencies: mime: ^1.0.2 receive_sharing_intent: ^1.4.5 uuid: ^3.0.6 - flutter_typeahead: ^4.1.1 + flutter_typeahead: ^4.3.3 fluttertoast: ^8.1.1 paperless_api: path: packages/paperless_api