mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-06 17:15:50 -06:00
feat: Add new translations, add list of existing accounts to login page
This commit is contained in:
@@ -5,6 +5,3 @@ files: [
|
|||||||
"type" : "arb",
|
"type" : "arb",
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
# Add your credentials here
|
|
||||||
"project_id": "568557"
|
|
||||||
"api_token_env": "CROWDIN_PAPERLESS_MOBILE_API_TOKEN"
|
|
||||||
@@ -47,9 +47,9 @@ class _SelectFileTypeDialogState extends State<SelectFileTypeDialog> {
|
|||||||
value: _rememberSelection,
|
value: _rememberSelection,
|
||||||
onChanged: (value) => setState(() => _rememberSelection = value ?? false),
|
onChanged: (value) => setState(() => _rememberSelection = value ?? false),
|
||||||
title: Text(
|
title: Text(
|
||||||
"Remember my decision",
|
S.of(context)!.rememberDecision,
|
||||||
style: Theme.of(context).textTheme.labelMedium,
|
style: Theme.of(context).textTheme.labelMedium,
|
||||||
), //TODO: INTL
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -316,7 +316,7 @@ class _DocumentDetailsPageState extends State<DocumentDetailsPage> {
|
|||||||
).paddedOnly(right: 4.0),
|
).paddedOnly(right: 4.0),
|
||||||
DocumentShareButton(document: state.document),
|
DocumentShareButton(document: state.document),
|
||||||
IconButton(
|
IconButton(
|
||||||
tooltip: "Print", //TODO: INTL
|
tooltip: S.of(context)!.print, //TODO: INTL
|
||||||
onPressed: () => context.read<DocumentDetailsCubit>().printDocument(),
|
onPressed: () => context.read<DocumentDetailsCubit>().printDocument(),
|
||||||
icon: const Icon(Icons.print),
|
icon: const Icon(Icons.print),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -115,10 +115,7 @@ class _DocumentSearchBarState extends State<DocumentSearchBar> {
|
|||||||
valueListenable: Hive.box<LocalUserAccount>(HiveBoxes.localUserAccount).listenable(),
|
valueListenable: Hive.box<LocalUserAccount>(HiveBoxes.localUserAccount).listenable(),
|
||||||
builder: (context, box, _) {
|
builder: (context, box, _) {
|
||||||
final account = box.get(settings.currentLoggedInUser!)!;
|
final account = box.get(settings.currentLoggedInUser!)!;
|
||||||
return UserAvatar(
|
return UserAvatar(account: account);
|
||||||
userId: settings.currentLoggedInUser!,
|
|
||||||
account: account,
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -140,20 +140,14 @@ class AuthenticationCubit extends Cubit<AuthenticationState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> removeAccount(String userId) async {
|
Future<void> removeAccount(String userId) async {
|
||||||
final globalSettings = Hive.box<GlobalSettings>(HiveBoxes.globalSettings).getValue()!;
|
|
||||||
final userAccountBox = Hive.box<LocalUserAccount>(HiveBoxes.localUserAccount);
|
final userAccountBox = Hive.box<LocalUserAccount>(HiveBoxes.localUserAccount);
|
||||||
final userAppStateBox = Hive.box<LocalUserAppState>(HiveBoxes.localUserAppState);
|
final userAppStateBox = Hive.box<LocalUserAppState>(HiveBoxes.localUserAppState);
|
||||||
final currentUser = globalSettings.currentLoggedInUser;
|
|
||||||
|
|
||||||
await userAccountBox.delete(userId);
|
await userAccountBox.delete(userId);
|
||||||
await userAppStateBox.delete(userId);
|
await userAppStateBox.delete(userId);
|
||||||
await withEncryptedBox(HiveBoxes.localUserCredentials, (box) {
|
await withEncryptedBox<UserCredentials, void>(HiveBoxes.localUserCredentials, (box) {
|
||||||
box.delete(userId);
|
box.delete(userId);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (currentUser == userId) {
|
|
||||||
return logout();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -209,10 +203,10 @@ class AuthenticationCubit extends Cubit<AuthenticationState> {
|
|||||||
Future<void> logout() async {
|
Future<void> logout() async {
|
||||||
await _resetExternalState();
|
await _resetExternalState();
|
||||||
final globalSettings = Hive.box<GlobalSettings>(HiveBoxes.globalSettings).getValue()!;
|
final globalSettings = Hive.box<GlobalSettings>(HiveBoxes.globalSettings).getValue()!;
|
||||||
|
emit(const AuthenticationState.unauthenticated());
|
||||||
globalSettings
|
globalSettings
|
||||||
..currentLoggedInUser = null
|
..currentLoggedInUser = null
|
||||||
..save();
|
..save();
|
||||||
emit(const AuthenticationState.unauthenticated());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _resetExternalState() async {
|
Future<void> _resetExternalState() async {
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:flutter_form_builder/flutter_form_builder.dart';
|
import 'package:flutter_form_builder/flutter_form_builder.dart';
|
||||||
|
import 'package:hive_flutter/adapters.dart';
|
||||||
|
import 'package:paperless_mobile/core/config/hive/hive_config.dart';
|
||||||
|
import 'package:paperless_mobile/core/database/tables/local_user_account.dart';
|
||||||
|
import 'package:paperless_mobile/features/login/cubit/authentication_cubit.dart';
|
||||||
import 'package:paperless_mobile/features/login/model/client_certificate.dart';
|
import 'package:paperless_mobile/features/login/model/client_certificate.dart';
|
||||||
import 'package:paperless_mobile/features/login/model/client_certificate_form_model.dart';
|
import 'package:paperless_mobile/features/login/model/client_certificate_form_model.dart';
|
||||||
import 'package:paperless_mobile/features/login/model/login_form_credentials.dart';
|
import 'package:paperless_mobile/features/login/model/login_form_credentials.dart';
|
||||||
@@ -7,6 +12,8 @@ import 'package:paperless_mobile/features/login/view/widgets/form_fields/client_
|
|||||||
import 'package:paperless_mobile/features/login/view/widgets/form_fields/server_address_form_field.dart';
|
import 'package:paperless_mobile/features/login/view/widgets/form_fields/server_address_form_field.dart';
|
||||||
import 'package:paperless_mobile/features/login/view/widgets/form_fields/user_credentials_form_field.dart';
|
import 'package:paperless_mobile/features/login/view/widgets/form_fields/user_credentials_form_field.dart';
|
||||||
import 'package:paperless_mobile/features/login/view/widgets/login_pages/server_connection_page.dart';
|
import 'package:paperless_mobile/features/login/view/widgets/login_pages/server_connection_page.dart';
|
||||||
|
import 'package:paperless_mobile/features/users/view/widgets/user_account_list_tile.dart';
|
||||||
|
import 'package:paperless_mobile/generated/l10n/app_localizations.dart';
|
||||||
|
|
||||||
import 'widgets/login_pages/server_login_page.dart';
|
import 'widgets/login_pages/server_login_page.dart';
|
||||||
import 'widgets/never_scrollable_scroll_behavior.dart';
|
import 'widgets/never_scrollable_scroll_behavior.dart';
|
||||||
@@ -23,11 +30,14 @@ class LoginPage extends StatefulWidget {
|
|||||||
final String submitText;
|
final String submitText;
|
||||||
final String titleString;
|
final String titleString;
|
||||||
|
|
||||||
|
final bool showLocalAccounts;
|
||||||
|
|
||||||
const LoginPage({
|
const LoginPage({
|
||||||
Key? key,
|
Key? key,
|
||||||
required this.onSubmit,
|
required this.onSubmit,
|
||||||
required this.submitText,
|
required this.submitText,
|
||||||
required this.titleString,
|
required this.titleString,
|
||||||
|
this.showLocalAccounts = false,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -41,6 +51,7 @@ class _LoginPageState extends State<LoginPage> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final localAccounts = Hive.box<LocalUserAccount>(HiveBoxes.localUserAccount);
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
resizeToAvoidBottomInset: false,
|
resizeToAvoidBottomInset: false,
|
||||||
body: FormBuilder(
|
body: FormBuilder(
|
||||||
@@ -49,6 +60,42 @@ class _LoginPageState extends State<LoginPage> {
|
|||||||
controller: _pageController,
|
controller: _pageController,
|
||||||
scrollBehavior: NeverScrollableScrollBehavior(),
|
scrollBehavior: NeverScrollableScrollBehavior(),
|
||||||
children: [
|
children: [
|
||||||
|
if (widget.showLocalAccounts && localAccounts.isNotEmpty)
|
||||||
|
Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
title: Text(S.of(context)!.logInToExistingAccount),
|
||||||
|
),
|
||||||
|
bottomNavigationBar: BottomAppBar(
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
|
children: [
|
||||||
|
FilledButton(
|
||||||
|
child: Text(S.of(context)!.goToLogin),
|
||||||
|
onPressed: () {
|
||||||
|
_pageController.nextPage(
|
||||||
|
duration: const Duration(milliseconds: 300),
|
||||||
|
curve: Curves.easeInOut,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
body: ListView.builder(
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
final account = localAccounts.values.elementAt(index);
|
||||||
|
return Card(
|
||||||
|
child: UserAccountListTile(
|
||||||
|
account: account,
|
||||||
|
onTap: () {
|
||||||
|
context.read<AuthenticationCubit>().switchAccount(account.id);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
itemCount: localAccounts.length,
|
||||||
|
),
|
||||||
|
),
|
||||||
ServerConnectionPage(
|
ServerConnectionPage(
|
||||||
titleString: widget.titleString,
|
titleString: widget.titleString,
|
||||||
formBuilderKey: _formKey,
|
formBuilderKey: _formKey,
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import 'package:paperless_mobile/features/settings/view/dialogs/switch_account_d
|
|||||||
import 'package:paperless_mobile/features/settings/view/pages/switching_accounts_page.dart';
|
import 'package:paperless_mobile/features/settings/view/pages/switching_accounts_page.dart';
|
||||||
import 'package:paperless_mobile/features/settings/view/widgets/global_settings_builder.dart';
|
import 'package:paperless_mobile/features/settings/view/widgets/global_settings_builder.dart';
|
||||||
import 'package:paperless_mobile/features/settings/view/widgets/user_avatar.dart';
|
import 'package:paperless_mobile/features/settings/view/widgets/user_avatar.dart';
|
||||||
|
import 'package:paperless_mobile/features/users/view/widgets/user_account_list_tile.dart';
|
||||||
import 'package:paperless_mobile/generated/l10n/app_localizations.dart';
|
import 'package:paperless_mobile/generated/l10n/app_localizations.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
@@ -22,6 +23,11 @@ class ManageAccountsPage extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return GlobalSettingsBuilder(
|
return GlobalSettingsBuilder(
|
||||||
builder: (context, globalSettings) {
|
builder: (context, globalSettings) {
|
||||||
|
// This is one of the few places where the currentLoggedInUser can be null
|
||||||
|
// (exactly after loggin out as the current user to be precise).
|
||||||
|
if (globalSettings.currentLoggedInUser == null) {
|
||||||
|
return SizedBox.shrink();
|
||||||
|
}
|
||||||
return ValueListenableBuilder(
|
return ValueListenableBuilder(
|
||||||
valueListenable: Hive.box<LocalUserAccount>(HiveBoxes.localUserAccount).listenable(),
|
valueListenable: Hive.box<LocalUserAccount>(HiveBoxes.localUserAccount).listenable(),
|
||||||
builder: (context, box, _) {
|
builder: (context, box, _) {
|
||||||
@@ -46,16 +52,78 @@ class ManageAccountsPage extends StatelessWidget {
|
|||||||
borderRadius: BorderRadius.circular(24),
|
borderRadius: BorderRadius.circular(24),
|
||||||
),
|
),
|
||||||
children: [
|
children: [
|
||||||
_buildAccountTile(context, globalSettings.currentLoggedInUser!,
|
Card(
|
||||||
box.get(globalSettings.currentLoggedInUser!)!, globalSettings),
|
child: UserAccountListTile(
|
||||||
|
account: box.get(globalSettings.currentLoggedInUser!)!,
|
||||||
|
trailing: PopupMenuButton(
|
||||||
|
icon: const Icon(Icons.more_vert),
|
||||||
|
itemBuilder: (context) => [
|
||||||
|
PopupMenuItem(
|
||||||
|
child: ListTile(
|
||||||
|
title: Text(S.of(context)!.logout),
|
||||||
|
leading: const Icon(
|
||||||
|
Icons.person_remove,
|
||||||
|
color: Colors.red,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
value: 0,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
onSelected: (value) async {
|
||||||
|
if (value == 0) {
|
||||||
|
await context
|
||||||
|
.read<AuthenticationCubit>()
|
||||||
|
.removeAccount(globalSettings.currentLoggedInUser!);
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
context.read<AuthenticationCubit>().logout();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
Column(
|
Column(
|
||||||
children: [
|
children: [
|
||||||
for (int index = 0; index < otherAccounts.length; index++)
|
for (int index = 0; index < otherAccounts.length; index++)
|
||||||
_buildAccountTile(
|
UserAccountListTile(
|
||||||
|
account: box.get(otherAccounts[index])!,
|
||||||
|
trailing: PopupMenuButton(
|
||||||
|
icon: const Icon(Icons.more_vert),
|
||||||
|
itemBuilder: (context) {
|
||||||
|
return [
|
||||||
|
PopupMenuItem(
|
||||||
|
child: ListTile(
|
||||||
|
title: Text(S.of(context)!.switchAccount),
|
||||||
|
leading: const Icon(Icons.switch_account_rounded),
|
||||||
|
),
|
||||||
|
value: 0,
|
||||||
|
),
|
||||||
|
PopupMenuItem(
|
||||||
|
child: ListTile(
|
||||||
|
title: Text(S.of(context)!.remove),
|
||||||
|
leading: const Icon(
|
||||||
|
Icons.person_remove,
|
||||||
|
color: Colors.red,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
value: 1,
|
||||||
|
)
|
||||||
|
];
|
||||||
|
},
|
||||||
|
onSelected: (value) async {
|
||||||
|
if (value == 0) {
|
||||||
|
// Switch
|
||||||
|
_onSwitchAccount(
|
||||||
context,
|
context,
|
||||||
|
globalSettings.currentLoggedInUser!,
|
||||||
otherAccounts[index],
|
otherAccounts[index],
|
||||||
box.get(otherAccounts[index])!,
|
);
|
||||||
globalSettings,
|
} else if (value == 1) {
|
||||||
|
await context
|
||||||
|
.read<AuthenticationCubit>()
|
||||||
|
.removeAccount(otherAccounts[index]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -68,9 +136,9 @@ class ManageAccountsPage extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
if (context.watch<ApiVersion>().hasMultiUserSupport)
|
if (context.watch<ApiVersion>().hasMultiUserSupport)
|
||||||
const ListTile(
|
ListTile(
|
||||||
leading: Icon(Icons.admin_panel_settings),
|
leading: const Icon(Icons.admin_panel_settings),
|
||||||
title: Text("Manage permissions"), //TODO: INTL
|
title: Text(S.of(context)!.managePermissions),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
@@ -80,93 +148,6 @@ class ManageAccountsPage extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildAccountTile(
|
|
||||||
BuildContext context,
|
|
||||||
String userId,
|
|
||||||
LocalUserAccount account,
|
|
||||||
GlobalSettings settings,
|
|
||||||
) {
|
|
||||||
final isLoggedIn = userId == settings.currentLoggedInUser;
|
|
||||||
final theme = Theme.of(context);
|
|
||||||
final child = SizedBox(
|
|
||||||
width: double.maxFinite,
|
|
||||||
child: ListTile(
|
|
||||||
title: Text(account.paperlessUser.username),
|
|
||||||
subtitle: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
if (account.paperlessUser.fullName != null) Text(account.paperlessUser.fullName!),
|
|
||||||
Text(
|
|
||||||
account.serverUrl.replaceFirst(RegExp(r'https://?'), ''),
|
|
||||||
style: TextStyle(color: theme.colorScheme.primary),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
isThreeLine: account.paperlessUser.fullName != null,
|
|
||||||
leading: UserAvatar(
|
|
||||||
account: account,
|
|
||||||
userId: userId,
|
|
||||||
),
|
|
||||||
trailing: PopupMenuButton(
|
|
||||||
icon: const Icon(Icons.more_vert),
|
|
||||||
itemBuilder: (context) {
|
|
||||||
return [
|
|
||||||
if (!isLoggedIn)
|
|
||||||
PopupMenuItem(
|
|
||||||
child: ListTile(
|
|
||||||
title: Text(S.of(context)!.switchAccount),
|
|
||||||
leading: const Icon(Icons.switch_account_rounded),
|
|
||||||
),
|
|
||||||
value: 0,
|
|
||||||
),
|
|
||||||
if (!isLoggedIn)
|
|
||||||
PopupMenuItem(
|
|
||||||
child: ListTile(
|
|
||||||
title: Text(S.of(context)!.remove),
|
|
||||||
leading: const Icon(
|
|
||||||
Icons.person_remove,
|
|
||||||
color: Colors.red,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
value: 1,
|
|
||||||
)
|
|
||||||
else
|
|
||||||
PopupMenuItem(
|
|
||||||
child: ListTile(
|
|
||||||
title: Text(S.of(context)!.logout),
|
|
||||||
leading: const Icon(
|
|
||||||
Icons.person_remove,
|
|
||||||
color: Colors.red,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
value: 1,
|
|
||||||
),
|
|
||||||
];
|
|
||||||
},
|
|
||||||
onSelected: (value) async {
|
|
||||||
if (value == 0) {
|
|
||||||
// Switch
|
|
||||||
_onSwitchAccount(context, settings.currentLoggedInUser!, userId);
|
|
||||||
} else if (value == 1) {
|
|
||||||
// Remove
|
|
||||||
final shouldPop = userId == settings.currentLoggedInUser;
|
|
||||||
await context.read<AuthenticationCubit>().removeAccount(userId);
|
|
||||||
if (shouldPop) {
|
|
||||||
Navigator.pop(context);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
if (isLoggedIn) {
|
|
||||||
return Card(
|
|
||||||
child: child,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> _onAddAccount(BuildContext context, String currentUser) async {
|
Future<void> _onAddAccount(BuildContext context, String currentUser) async {
|
||||||
final userId = await Navigator.push(
|
final userId = await Navigator.push(
|
||||||
context,
|
context,
|
||||||
@@ -202,9 +183,10 @@ class ManageAccountsPage extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_onSwitchAccount(BuildContext context, String currentUser, String newUser) async {
|
void _onSwitchAccount(BuildContext context, String currentUser, String newUser) async {
|
||||||
if (currentUser == newUser) return;
|
if (currentUser == newUser) return;
|
||||||
|
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
context.read<AuthenticationCubit>().switchAccount(newUser);
|
await context.read<AuthenticationCubit>().switchAccount(newUser);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class SettingsPage extends StatelessWidget {
|
|||||||
builder: (context, snapshot) {
|
builder: (context, snapshot) {
|
||||||
if (snapshot.hasError) {
|
if (snapshot.hasError) {
|
||||||
return Text(
|
return Text(
|
||||||
"Something went wrong while retrieving server data.", //TODO: INTL
|
S.of(context)!.errorRetrievingServerVersion,
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.labelSmall
|
.labelSmall
|
||||||
@@ -40,7 +40,7 @@ class SettingsPage extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
if (!snapshot.hasData) {
|
if (!snapshot.hasData) {
|
||||||
return Text(
|
return Text(
|
||||||
"Loading server information...", //TODO: INTL
|
S.of(context)!.resolvingServerVersion,
|
||||||
style: Theme.of(context).textTheme.labelSmall,
|
style: Theme.of(context).textTheme.labelSmall,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,18 +2,16 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:paperless_mobile/core/database/tables/local_user_account.dart';
|
import 'package:paperless_mobile/core/database/tables/local_user_account.dart';
|
||||||
|
|
||||||
class UserAvatar extends StatelessWidget {
|
class UserAvatar extends StatelessWidget {
|
||||||
final String userId;
|
|
||||||
final LocalUserAccount account;
|
final LocalUserAccount account;
|
||||||
|
|
||||||
const UserAvatar({
|
const UserAvatar({
|
||||||
super.key,
|
super.key,
|
||||||
required this.userId,
|
|
||||||
required this.account,
|
required this.account,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final backgroundColor = Colors.primaries[userId.hashCode % Colors.primaries.length];
|
final backgroundColor = Colors.primaries[account.id.hashCode % Colors.primaries.length];
|
||||||
final foregroundColor = backgroundColor.computeLuminance() > 0.5 ? Colors.black : Colors.white;
|
final foregroundColor = backgroundColor.computeLuminance() > 0.5 ? Colors.black : Colors.white;
|
||||||
return CircleAvatar(
|
return CircleAvatar(
|
||||||
child: Text((account.paperlessUser.fullName ?? account.paperlessUser.username)
|
child: Text((account.paperlessUser.fullName ?? account.paperlessUser.username)
|
||||||
|
|||||||
41
lib/features/users/view/widgets/user_account_list_tile.dart
Normal file
41
lib/features/users/view/widgets/user_account_list_tile.dart
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:paperless_mobile/core/database/tables/local_user_account.dart';
|
||||||
|
import 'package:paperless_mobile/features/settings/view/widgets/user_avatar.dart';
|
||||||
|
|
||||||
|
class UserAccountListTile extends StatelessWidget {
|
||||||
|
final LocalUserAccount account;
|
||||||
|
|
||||||
|
final Widget? trailing;
|
||||||
|
final VoidCallback? onTap;
|
||||||
|
const UserAccountListTile({
|
||||||
|
super.key,
|
||||||
|
required this.account,
|
||||||
|
this.trailing,
|
||||||
|
this.onTap,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
final theme = Theme.of(context);
|
||||||
|
return SizedBox(
|
||||||
|
width: double.maxFinite,
|
||||||
|
child: ListTile(
|
||||||
|
onTap: onTap,
|
||||||
|
title: Text(account.paperlessUser.username),
|
||||||
|
subtitle: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
if (account.paperlessUser.fullName != null) Text(account.paperlessUser.fullName!),
|
||||||
|
Text(
|
||||||
|
account.serverUrl.replaceFirst(RegExp(r'https://?'), ''),
|
||||||
|
style: TextStyle(color: theme.colorScheme.primary),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
isThreeLine: account.paperlessUser.fullName != null,
|
||||||
|
leading: UserAvatar(account: account),
|
||||||
|
trailing: trailing,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -762,22 +762,54 @@
|
|||||||
"@switchToNewAccount": {
|
"@switchToNewAccount": {
|
||||||
"description": "Content of the dialog shown after adding an account, asking the user whether to switch to the newly added account or not."
|
"description": "Content of the dialog shown after adding an account, asking the user whether to switch to the newly added account or not."
|
||||||
},
|
},
|
||||||
"sourceCode": "Source Code",
|
"sourceCode": "Codi Font",
|
||||||
"findTheSourceCodeOn": "Find the source code on",
|
"findTheSourceCodeOn": "Troba el codi font a",
|
||||||
"@findTheSourceCodeOn": {
|
"@findTheSourceCodeOn": {
|
||||||
"description": "Text before link to Paperless Mobile GitHub"
|
"description": "Text before link to Paperless Mobile GitHub"
|
||||||
},
|
},
|
||||||
"rememberDecision": "Remember my decision",
|
"rememberDecision": "Recorda la selecció",
|
||||||
"defaultDownloadFileType": "Default Download File Type",
|
"defaultDownloadFileType": "Tipus de Fitxer a descarregar per defecte",
|
||||||
"@defaultDownloadFileType": {
|
"@defaultDownloadFileType": {
|
||||||
"description": "Label indicating the default filetype to download (one of archived, original and always ask)"
|
"description": "Label indicating the default filetype to download (one of archived, original and always ask)"
|
||||||
},
|
},
|
||||||
"defaultShareFileType": "Default Share File Type",
|
"defaultShareFileType": "Tipus compartició de fitxer per defecte",
|
||||||
"@defaultShareFileType": {
|
"@defaultShareFileType": {
|
||||||
"description": "Label indicating the default filetype to share (one of archived, original and always ask)"
|
"description": "Label indicating the default filetype to share (one of archived, original and always ask)"
|
||||||
},
|
},
|
||||||
"alwaysAsk": "Always ask",
|
"alwaysAsk": "Pregunta sempre",
|
||||||
"@alwaysAsk": {
|
"@alwaysAsk": {
|
||||||
"description": "Option to choose when the app should always ask the user which filetype to use"
|
"description": "Option to choose when the app should always ask the user which filetype to use"
|
||||||
|
},
|
||||||
|
"disableMatching": "Do not tag documents automatically",
|
||||||
|
"@disableMatching": {
|
||||||
|
"description": "One of the options for automatic tagging of documents"
|
||||||
|
},
|
||||||
|
"none": "None",
|
||||||
|
"@none": {
|
||||||
|
"description": "One of available enum values of matching algorithm for tags"
|
||||||
|
},
|
||||||
|
"logInToExistingAccount": "Log in to existing account",
|
||||||
|
"@logInToExistingAccount": {
|
||||||
|
"description": "Title shown on login page if at least one user is already known to the app."
|
||||||
|
},
|
||||||
|
"print": "Print",
|
||||||
|
"@print": {
|
||||||
|
"description": "Tooltip for print button"
|
||||||
|
},
|
||||||
|
"managePermissions": "Manage permissions",
|
||||||
|
"@managePermissions": {
|
||||||
|
"description": "Button which leads user to manage permissions page"
|
||||||
|
},
|
||||||
|
"errorRetrievingServerVersion": "An error occurred trying to resolve the server version.",
|
||||||
|
"@errorRetrievingServerVersion": {
|
||||||
|
"description": "Message shown at the bottom of the settings page when the remote server version could not be resolved."
|
||||||
|
},
|
||||||
|
"resolvingServerVersion": "Resolving server version...",
|
||||||
|
"@resolvingServerVersion": {
|
||||||
|
"description": "Message shown while the app is loading the remote server version."
|
||||||
|
},
|
||||||
|
"goToLogin": "Go to login",
|
||||||
|
"@goToLogin": {
|
||||||
|
"description": "Label of the button shown on the login page to skip logging in to existing accounts and navigate user to login page"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -779,5 +779,37 @@
|
|||||||
"alwaysAsk": "Always ask",
|
"alwaysAsk": "Always ask",
|
||||||
"@alwaysAsk": {
|
"@alwaysAsk": {
|
||||||
"description": "Option to choose when the app should always ask the user which filetype to use"
|
"description": "Option to choose when the app should always ask the user which filetype to use"
|
||||||
|
},
|
||||||
|
"disableMatching": "Do not tag documents automatically",
|
||||||
|
"@disableMatching": {
|
||||||
|
"description": "One of the options for automatic tagging of documents"
|
||||||
|
},
|
||||||
|
"none": "None",
|
||||||
|
"@none": {
|
||||||
|
"description": "One of available enum values of matching algorithm for tags"
|
||||||
|
},
|
||||||
|
"logInToExistingAccount": "Log in to existing account",
|
||||||
|
"@logInToExistingAccount": {
|
||||||
|
"description": "Title shown on login page if at least one user is already known to the app."
|
||||||
|
},
|
||||||
|
"print": "Print",
|
||||||
|
"@print": {
|
||||||
|
"description": "Tooltip for print button"
|
||||||
|
},
|
||||||
|
"managePermissions": "Manage permissions",
|
||||||
|
"@managePermissions": {
|
||||||
|
"description": "Button which leads user to manage permissions page"
|
||||||
|
},
|
||||||
|
"errorRetrievingServerVersion": "An error occurred trying to resolve the server version.",
|
||||||
|
"@errorRetrievingServerVersion": {
|
||||||
|
"description": "Message shown at the bottom of the settings page when the remote server version could not be resolved."
|
||||||
|
},
|
||||||
|
"resolvingServerVersion": "Resolving server version...",
|
||||||
|
"@resolvingServerVersion": {
|
||||||
|
"description": "Message shown while the app is loading the remote server version."
|
||||||
|
},
|
||||||
|
"goToLogin": "Go to login",
|
||||||
|
"@goToLogin": {
|
||||||
|
"description": "Label of the button shown on the login page to skip logging in to existing accounts and navigate user to login page"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -779,5 +779,37 @@
|
|||||||
"alwaysAsk": "Immer fragen",
|
"alwaysAsk": "Immer fragen",
|
||||||
"@alwaysAsk": {
|
"@alwaysAsk": {
|
||||||
"description": "Option to choose when the app should always ask the user which filetype to use"
|
"description": "Option to choose when the app should always ask the user which filetype to use"
|
||||||
|
},
|
||||||
|
"disableMatching": "Deaktiviere automatische Zuweisung",
|
||||||
|
"@disableMatching": {
|
||||||
|
"description": "One of the options for automatic tagging of documents"
|
||||||
|
},
|
||||||
|
"none": "Keine",
|
||||||
|
"@none": {
|
||||||
|
"description": "One of available enum values of matching algorithm for tags"
|
||||||
|
},
|
||||||
|
"logInToExistingAccount": "Mit bestehendem Account anmelden",
|
||||||
|
"@logInToExistingAccount": {
|
||||||
|
"description": "Title shown on login page if at least one user is already known to the app."
|
||||||
|
},
|
||||||
|
"print": "Drucken",
|
||||||
|
"@print": {
|
||||||
|
"description": "Tooltip for print button"
|
||||||
|
},
|
||||||
|
"managePermissions": "Berechtigungen verwalten",
|
||||||
|
"@managePermissions": {
|
||||||
|
"description": "Button which leads user to manage permissions page"
|
||||||
|
},
|
||||||
|
"errorRetrievingServerVersion": "Beim Laden der Server-Version ist ein Fehler aufgetreten.",
|
||||||
|
"@errorRetrievingServerVersion": {
|
||||||
|
"description": "Message shown at the bottom of the settings page when the remote server version could not be resolved."
|
||||||
|
},
|
||||||
|
"resolvingServerVersion": "Lade Server-Version...",
|
||||||
|
"@resolvingServerVersion": {
|
||||||
|
"description": "Message shown while the app is loading the remote server version."
|
||||||
|
},
|
||||||
|
"goToLogin": "Gehe zur Anmeldung",
|
||||||
|
"@goToLogin": {
|
||||||
|
"description": "Label of the button shown on the login page to skip logging in to existing accounts and navigate user to login page"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -779,5 +779,37 @@
|
|||||||
"alwaysAsk": "Always ask",
|
"alwaysAsk": "Always ask",
|
||||||
"@alwaysAsk": {
|
"@alwaysAsk": {
|
||||||
"description": "Option to choose when the app should always ask the user which filetype to use"
|
"description": "Option to choose when the app should always ask the user which filetype to use"
|
||||||
|
},
|
||||||
|
"disableMatching": "Do not tag documents automatically",
|
||||||
|
"@disableMatching": {
|
||||||
|
"description": "One of the options for automatic tagging of documents"
|
||||||
|
},
|
||||||
|
"none": "None",
|
||||||
|
"@none": {
|
||||||
|
"description": "One of available enum values of matching algorithm for tags"
|
||||||
|
},
|
||||||
|
"logInToExistingAccount": "Log in to existing account",
|
||||||
|
"@logInToExistingAccount": {
|
||||||
|
"description": "Title shown on login page if at least one user is already known to the app."
|
||||||
|
},
|
||||||
|
"print": "Print",
|
||||||
|
"@print": {
|
||||||
|
"description": "Tooltip for print button"
|
||||||
|
},
|
||||||
|
"managePermissions": "Manage permissions",
|
||||||
|
"@managePermissions": {
|
||||||
|
"description": "Button which leads user to manage permissions page"
|
||||||
|
},
|
||||||
|
"errorRetrievingServerVersion": "An error occurred trying to resolve the server version.",
|
||||||
|
"@errorRetrievingServerVersion": {
|
||||||
|
"description": "Message shown at the bottom of the settings page when the remote server version could not be resolved."
|
||||||
|
},
|
||||||
|
"resolvingServerVersion": "Resolving server version...",
|
||||||
|
"@resolvingServerVersion": {
|
||||||
|
"description": "Message shown while the app is loading the remote server version."
|
||||||
|
},
|
||||||
|
"goToLogin": "Go to login",
|
||||||
|
"@goToLogin": {
|
||||||
|
"description": "Label of the button shown on the login page to skip logging in to existing accounts and navigate user to login page"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -678,106 +678,138 @@
|
|||||||
"@dynamicColorScheme": {},
|
"@dynamicColorScheme": {},
|
||||||
"classicColorScheme": "Classique",
|
"classicColorScheme": "Classique",
|
||||||
"@classicColorScheme": {},
|
"@classicColorScheme": {},
|
||||||
"notificationDownloadComplete": "Download complete",
|
"notificationDownloadComplete": "Téléchargement terminé",
|
||||||
"@notificationDownloadComplete": {
|
"@notificationDownloadComplete": {
|
||||||
"description": "Notification title when a download has been completed."
|
"description": "Notification title when a download has been completed."
|
||||||
},
|
},
|
||||||
"notificationDownloadingDocument": "Downloading document",
|
"notificationDownloadingDocument": "Téléchargement du document",
|
||||||
"@notificationDownloadingDocument": {
|
"@notificationDownloadingDocument": {
|
||||||
"description": "Notification title shown when a document download is pending"
|
"description": "Notification title shown when a document download is pending"
|
||||||
},
|
},
|
||||||
"archiveSerialNumberUpdated": "Archive Serial Number updated.",
|
"archiveSerialNumberUpdated": "Numéro de série de l’archive mis à jour.",
|
||||||
"@archiveSerialNumberUpdated": {
|
"@archiveSerialNumberUpdated": {
|
||||||
"description": "Message shown when the ASN has been updated."
|
"description": "Message shown when the ASN has been updated."
|
||||||
},
|
},
|
||||||
"donateCoffee": "Buy me a coffee",
|
"donateCoffee": "Soutenez-moi",
|
||||||
"@donateCoffee": {
|
"@donateCoffee": {
|
||||||
"description": "Label displayed in the app drawer"
|
"description": "Label displayed in the app drawer"
|
||||||
},
|
},
|
||||||
"thisFieldIsRequired": "This field is required!",
|
"thisFieldIsRequired": "Ce champ est obligatoire !",
|
||||||
"@thisFieldIsRequired": {
|
"@thisFieldIsRequired": {
|
||||||
"description": "Message shown below the form field when a required field has not been filled out."
|
"description": "Message shown below the form field when a required field has not been filled out."
|
||||||
},
|
},
|
||||||
"confirm": "Confirm",
|
"confirm": "Confirmer",
|
||||||
"confirmAction": "Confirm action",
|
"confirmAction": "Confirmer l’action",
|
||||||
"@confirmAction": {
|
"@confirmAction": {
|
||||||
"description": "Typically used as a title to confirm a previously selected action"
|
"description": "Typically used as a title to confirm a previously selected action"
|
||||||
},
|
},
|
||||||
"areYouSureYouWantToContinue": "Are you sure you want to continue?",
|
"areYouSureYouWantToContinue": "Etes-vous sûr(e) de vouloir continuer?",
|
||||||
"bulkEditTagsAddMessage": "{count, plural, one{This operation will add the tags {tags} to the selected document.} other{This operation will add the tags {tags} to {count} selected documents.}}",
|
"bulkEditTagsAddMessage": "{count, plural, one{Cette opération va ajouter les balises {tags} au document sélectionné} other{Cette opération va ajouter les balises {tags} à {count} documents sélectionnés!}}",
|
||||||
"@bulkEditTagsAddMessage": {
|
"@bulkEditTagsAddMessage": {
|
||||||
"description": "Message of the confirmation dialog when bulk adding tags."
|
"description": "Message of the confirmation dialog when bulk adding tags."
|
||||||
},
|
},
|
||||||
"bulkEditTagsRemoveMessage": "{count, plural, one{This operation will remove the tags {tags} from the selected document.} other{This operation will remove the tags {tags} from {count} selected documents.}}",
|
"bulkEditTagsRemoveMessage": "{count, plural, one{Cette opération supprimera les balises {tags} du document sélectionné.} other{Cette opération supprimera les balises {tags} de {count} documents sélectionnés!}}",
|
||||||
"@bulkEditTagsRemoveMessage": {
|
"@bulkEditTagsRemoveMessage": {
|
||||||
"description": "Message of the confirmation dialog when bulk removing tags."
|
"description": "Message of the confirmation dialog when bulk removing tags."
|
||||||
},
|
},
|
||||||
"bulkEditTagsModifyMessage": "{count, plural, one{This operation will add the tags {addTags} and remove the tags {removeTags} from the selected document.} other{This operation will add the tags {addTags} and remove the tags {removeTags} from {count} selected documents.}}",
|
"bulkEditTagsModifyMessage": "{count, plural, one{Cette opération va ajouter les balises {addTags} et supprimer les balises {removeTags} du document sélectionné} other{Cette opération va ajouter les balises {addTags} et supprimer les balises {removeTags} de {count} documents sélectionnés.}}",
|
||||||
"@bulkEditTagsModifyMessage": {
|
"@bulkEditTagsModifyMessage": {
|
||||||
"description": "Message of the confirmation dialog when both adding and removing tags."
|
"description": "Message of the confirmation dialog when both adding and removing tags."
|
||||||
},
|
},
|
||||||
"bulkEditCorrespondentAssignMessage": "{count, plural, one{This operation will assign the correspondent {correspondent} to the selected document.} other{This operation will assign the correspondent {correspondent} to {count} selected documents.}}",
|
"bulkEditCorrespondentAssignMessage": "{count, plural, one{Cette opération assignera le correspondant {correspondent} au document sélectionné} other{Cette opération va assigner le correspondant {correspondent} à {count} documents sélectionnés!}}",
|
||||||
"bulkEditDocumentTypeAssignMessage": "{count, plural, one{This operation will assign the document type {docType} to the selected document.} other{This operation will assign the documentType {docType} to {count} selected documents.}}",
|
"bulkEditDocumentTypeAssignMessage": "{count, plural, one{Cette opération assignera le type de document {docType} au document sélectionné.} other{Cette opération va assigner le documentType {docType} à {count} documents sélectionnés.}}",
|
||||||
"bulkEditStoragePathAssignMessage": "{count, plural, one{This operation will assign the storage path {path} to the selected document.} other{This operation will assign the storage path {path} to {count} selected documents.}}",
|
"bulkEditStoragePathAssignMessage": "{count, plural, one{Cette opération assignera le chemin de stockage {path} au document sélectionné.} other{Cette opération va assigner le chemin de stockage {path} à {count} documents sélectionnés.}}",
|
||||||
"bulkEditCorrespondentRemoveMessage": "{count, plural, one{This operation will remove the correspondent from the selected document.} other{This operation will remove the correspondent from {count} selected documents.}}",
|
"bulkEditCorrespondentRemoveMessage": "{count, plural, one{Cette opération va supprimer le correspondant du document sélectionné.} other{Cette opération va supprimer le correspondant de {count} documents sélectionnés.}}",
|
||||||
"bulkEditDocumentTypeRemoveMessage": "{count, plural, one{This operation will remove the document type from the selected document.} other{This operation will remove the document type from {count} selected documents.}}",
|
"bulkEditDocumentTypeRemoveMessage": "{count, plural, one{Cette opération va supprimer le type de document du document sélectionné.} other{Cette opération va supprimer le type de document de {count} documents sélectionnés.}}",
|
||||||
"bulkEditStoragePathRemoveMessage": "{count, plural, one{This operation will remove the storage path from the selected document.} other{This operation will remove the storage path from {count} selected documents.}}",
|
"bulkEditStoragePathRemoveMessage": "{count, plural, one{Cette opération supprimera le chemin de stockage du document sélectionné.} other{Cette opération supprimera le chemin de stockage de {count} documents sélectionnés.}}",
|
||||||
"anyTag": "Any",
|
"anyTag": "Tous",
|
||||||
"@anyTag": {
|
"@anyTag": {
|
||||||
"description": "Label shown when any tag should be filtered"
|
"description": "Label shown when any tag should be filtered"
|
||||||
},
|
},
|
||||||
"allTags": "All",
|
"allTags": "Tous",
|
||||||
"@allTags": {
|
"@allTags": {
|
||||||
"description": "Label shown when a document has to be assigned to all selected tags"
|
"description": "Label shown when a document has to be assigned to all selected tags"
|
||||||
},
|
},
|
||||||
"switchingAccountsPleaseWait": "Switching accounts. Please wait...",
|
"switchingAccountsPleaseWait": "Changement de compte. Veuillez patienter...",
|
||||||
"@switchingAccountsPleaseWait": {
|
"@switchingAccountsPleaseWait": {
|
||||||
"description": "Message shown while switching accounts is in progress."
|
"description": "Message shown while switching accounts is in progress."
|
||||||
},
|
},
|
||||||
"testConnection": "Test connection",
|
"testConnection": "Vérifier la connexion",
|
||||||
"@testConnection": {
|
"@testConnection": {
|
||||||
"description": "Button label shown on login page. Allows user to test whether the server is reachable or not."
|
"description": "Button label shown on login page. Allows user to test whether the server is reachable or not."
|
||||||
},
|
},
|
||||||
"accounts": "Accounts",
|
"accounts": "Comptes",
|
||||||
"@accounts": {
|
"@accounts": {
|
||||||
"description": "Title of the account management dialog"
|
"description": "Title of the account management dialog"
|
||||||
},
|
},
|
||||||
"addAccount": "Add account",
|
"addAccount": "Ajouter un compte",
|
||||||
"@addAccount": {
|
"@addAccount": {
|
||||||
"description": "Label of add account action"
|
"description": "Label of add account action"
|
||||||
},
|
},
|
||||||
"switchAccount": "Switch",
|
"switchAccount": "Basculer",
|
||||||
"@switchAccount": {
|
"@switchAccount": {
|
||||||
"description": "Label for switch account action"
|
"description": "Label for switch account action"
|
||||||
},
|
},
|
||||||
"logout": "Logout",
|
"logout": "Déconnexion",
|
||||||
"@logout": {
|
"@logout": {
|
||||||
"description": "Generic Logout label"
|
"description": "Generic Logout label"
|
||||||
},
|
},
|
||||||
"switchAccountTitle": "Switch account",
|
"switchAccountTitle": "Changer de compte",
|
||||||
"@switchAccountTitle": {
|
"@switchAccountTitle": {
|
||||||
"description": "Title of the dialog shown after adding an account, asking the user whether to switch to the newly added account or not."
|
"description": "Title of the dialog shown after adding an account, asking the user whether to switch to the newly added account or not."
|
||||||
},
|
},
|
||||||
"switchToNewAccount": "Do you want to switch to the new account? You can switch back at any time.",
|
"switchToNewAccount": "Voulez-vous basculer vers le nouveau compte ? Vous pouvez revenir à tout moment.",
|
||||||
"@switchToNewAccount": {
|
"@switchToNewAccount": {
|
||||||
"description": "Content of the dialog shown after adding an account, asking the user whether to switch to the newly added account or not."
|
"description": "Content of the dialog shown after adding an account, asking the user whether to switch to the newly added account or not."
|
||||||
},
|
},
|
||||||
"sourceCode": "Source Code",
|
"sourceCode": "Code source",
|
||||||
"findTheSourceCodeOn": "Find the source code on",
|
"findTheSourceCodeOn": "Trouvez le code source sur",
|
||||||
"@findTheSourceCodeOn": {
|
"@findTheSourceCodeOn": {
|
||||||
"description": "Text before link to Paperless Mobile GitHub"
|
"description": "Text before link to Paperless Mobile GitHub"
|
||||||
},
|
},
|
||||||
"rememberDecision": "Remember my decision",
|
"rememberDecision": "Se souvenir de mon choix",
|
||||||
"defaultDownloadFileType": "Default Download File Type",
|
"defaultDownloadFileType": "Type de fichier par défaut",
|
||||||
"@defaultDownloadFileType": {
|
"@defaultDownloadFileType": {
|
||||||
"description": "Label indicating the default filetype to download (one of archived, original and always ask)"
|
"description": "Label indicating the default filetype to download (one of archived, original and always ask)"
|
||||||
},
|
},
|
||||||
"defaultShareFileType": "Default Share File Type",
|
"defaultShareFileType": "Type de fichier par défaut de partage",
|
||||||
"@defaultShareFileType": {
|
"@defaultShareFileType": {
|
||||||
"description": "Label indicating the default filetype to share (one of archived, original and always ask)"
|
"description": "Label indicating the default filetype to share (one of archived, original and always ask)"
|
||||||
},
|
},
|
||||||
"alwaysAsk": "Always ask",
|
"alwaysAsk": "Toujours demander",
|
||||||
"@alwaysAsk": {
|
"@alwaysAsk": {
|
||||||
"description": "Option to choose when the app should always ask the user which filetype to use"
|
"description": "Option to choose when the app should always ask the user which filetype to use"
|
||||||
|
},
|
||||||
|
"disableMatching": "Do not tag documents automatically",
|
||||||
|
"@disableMatching": {
|
||||||
|
"description": "One of the options for automatic tagging of documents"
|
||||||
|
},
|
||||||
|
"none": "None",
|
||||||
|
"@none": {
|
||||||
|
"description": "One of available enum values of matching algorithm for tags"
|
||||||
|
},
|
||||||
|
"logInToExistingAccount": "Log in to existing account",
|
||||||
|
"@logInToExistingAccount": {
|
||||||
|
"description": "Title shown on login page if at least one user is already known to the app."
|
||||||
|
},
|
||||||
|
"print": "Print",
|
||||||
|
"@print": {
|
||||||
|
"description": "Tooltip for print button"
|
||||||
|
},
|
||||||
|
"managePermissions": "Manage permissions",
|
||||||
|
"@managePermissions": {
|
||||||
|
"description": "Button which leads user to manage permissions page"
|
||||||
|
},
|
||||||
|
"errorRetrievingServerVersion": "An error occurred trying to resolve the server version.",
|
||||||
|
"@errorRetrievingServerVersion": {
|
||||||
|
"description": "Message shown at the bottom of the settings page when the remote server version could not be resolved."
|
||||||
|
},
|
||||||
|
"resolvingServerVersion": "Resolving server version...",
|
||||||
|
"@resolvingServerVersion": {
|
||||||
|
"description": "Message shown while the app is loading the remote server version."
|
||||||
|
},
|
||||||
|
"goToLogin": "Go to login",
|
||||||
|
"@goToLogin": {
|
||||||
|
"description": "Label of the button shown on the login page to skip logging in to existing accounts and navigate user to login page"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"@addAnotherAccount": {},
|
"@addAnotherAccount": {},
|
||||||
"account": "Konto",
|
"account": "Konto",
|
||||||
"@account": {},
|
"@account": {},
|
||||||
"addCorrespondent": "New Correspondent",
|
"addCorrespondent": "Dodaj korespondenta",
|
||||||
"@addCorrespondent": {
|
"@addCorrespondent": {
|
||||||
"description": "Title when adding a new correspondent"
|
"description": "Title when adding a new correspondent"
|
||||||
},
|
},
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
"@addDocumentType": {
|
"@addDocumentType": {
|
||||||
"description": "Title when adding a new document type"
|
"description": "Title when adding a new document type"
|
||||||
},
|
},
|
||||||
"addStoragePath": "New Storage Path",
|
"addStoragePath": "Dodaj ścieżkę zapisu",
|
||||||
"@addStoragePath": {
|
"@addStoragePath": {
|
||||||
"description": "Title when adding a new storage path"
|
"description": "Title when adding a new storage path"
|
||||||
},
|
},
|
||||||
@@ -43,13 +43,13 @@
|
|||||||
"@reportABug": {},
|
"@reportABug": {},
|
||||||
"settings": "Ustawienia",
|
"settings": "Ustawienia",
|
||||||
"@settings": {},
|
"@settings": {},
|
||||||
"authenticateOnAppStart": "Authenticate on app start",
|
"authenticateOnAppStart": "Uwierzytelnij przy starcie aplikacji",
|
||||||
"@authenticateOnAppStart": {
|
"@authenticateOnAppStart": {
|
||||||
"description": "Description of the biometric authentication settings tile"
|
"description": "Description of the biometric authentication settings tile"
|
||||||
},
|
},
|
||||||
"biometricAuthentication": "Biometric authentication",
|
"biometricAuthentication": "Uwierzytelnianie biometryczne",
|
||||||
"@biometricAuthentication": {},
|
"@biometricAuthentication": {},
|
||||||
"authenticateToToggleBiometricAuthentication": "{mode, select, enable{Authenticate to enable biometric authentication} disable{Authenticate to disable biometric authentication} other{}}",
|
"authenticateToToggleBiometricAuthentication": "{mode, select, enable{Uwierzytelnij, aby włączyć uwierzytelnianie biometryczne} disable{Uwierzytelnij, aby wyłączyć uwierzytelnianie biometryczne} other{}}",
|
||||||
"@authenticateToToggleBiometricAuthentication": {
|
"@authenticateToToggleBiometricAuthentication": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"mode": {}
|
"mode": {}
|
||||||
@@ -59,29 +59,29 @@
|
|||||||
"@documents": {},
|
"@documents": {},
|
||||||
"inbox": "Skrzynka odbiorcza",
|
"inbox": "Skrzynka odbiorcza",
|
||||||
"@inbox": {},
|
"@inbox": {},
|
||||||
"labels": "Labels",
|
"labels": "Etykiety",
|
||||||
"@labels": {},
|
"@labels": {},
|
||||||
"scanner": "Scanner",
|
"scanner": "Skaner",
|
||||||
"@scanner": {},
|
"@scanner": {},
|
||||||
"startTyping": "Zacznij pisać...",
|
"startTyping": "Zacznij pisać...",
|
||||||
"@startTyping": {},
|
"@startTyping": {},
|
||||||
"doYouReallyWantToDeleteThisView": "Do you really want to delete this view?",
|
"doYouReallyWantToDeleteThisView": "Czy na pewno chcesz usunąć ten widok?",
|
||||||
"@doYouReallyWantToDeleteThisView": {},
|
"@doYouReallyWantToDeleteThisView": {},
|
||||||
"deleteView": "Usuń widok ",
|
"deleteView": "Usuń widok ",
|
||||||
"@deleteView": {},
|
"@deleteView": {},
|
||||||
"addedAt": "Added at",
|
"addedAt": "Dodano",
|
||||||
"@addedAt": {},
|
"@addedAt": {},
|
||||||
"archiveSerialNumber": "Numer Seryjny Archiwum",
|
"archiveSerialNumber": "Numer Seryjny Archiwum",
|
||||||
"@archiveSerialNumber": {},
|
"@archiveSerialNumber": {},
|
||||||
"asn": "ASN",
|
"asn": "ASN",
|
||||||
"@asn": {},
|
"@asn": {},
|
||||||
"correspondent": "Correspondent",
|
"correspondent": "Korespondent",
|
||||||
"@correspondent": {},
|
"@correspondent": {},
|
||||||
"createdAt": "Created at",
|
"createdAt": "Utworzono",
|
||||||
"@createdAt": {},
|
"@createdAt": {},
|
||||||
"documentSuccessfullyDeleted": "Dokument pomyślnie usunięty.",
|
"documentSuccessfullyDeleted": "Dokument pomyślnie usunięty.",
|
||||||
"@documentSuccessfullyDeleted": {},
|
"@documentSuccessfullyDeleted": {},
|
||||||
"assignAsn": "Assign ASN",
|
"assignAsn": "Przypisz ASN",
|
||||||
"@assignAsn": {},
|
"@assignAsn": {},
|
||||||
"deleteDocumentTooltip": "Usuń",
|
"deleteDocumentTooltip": "Usuń",
|
||||||
"@deleteDocumentTooltip": {
|
"@deleteDocumentTooltip": {
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
"@editDocumentTooltip": {
|
"@editDocumentTooltip": {
|
||||||
"description": "Tooltip shown for the edit button on details page"
|
"description": "Tooltip shown for the edit button on details page"
|
||||||
},
|
},
|
||||||
"loadFullContent": "Load full content",
|
"loadFullContent": "Załaduj pełną treść",
|
||||||
"@loadFullContent": {},
|
"@loadFullContent": {},
|
||||||
"noAppToDisplayPDFFilesFound": "Nie znaleziono aplikacji do wyświetlania plików PDF",
|
"noAppToDisplayPDFFilesFound": "Nie znaleziono aplikacji do wyświetlania plików PDF",
|
||||||
"@noAppToDisplayPDFFilesFound": {},
|
"@noAppToDisplayPDFFilesFound": {},
|
||||||
@@ -129,17 +129,17 @@
|
|||||||
},
|
},
|
||||||
"documentType": "Rodzaj dokumentu",
|
"documentType": "Rodzaj dokumentu",
|
||||||
"@documentType": {},
|
"@documentType": {},
|
||||||
"archivedPdf": "Archived (pdf)",
|
"archivedPdf": "Zarchiwizowany (pdf)",
|
||||||
"@archivedPdf": {
|
"@archivedPdf": {
|
||||||
"description": "Option to chose when downloading a document"
|
"description": "Option to chose when downloading a document"
|
||||||
},
|
},
|
||||||
"chooseFiletype": "Choose filetype",
|
"chooseFiletype": "Wybierz typ pliku",
|
||||||
"@chooseFiletype": {},
|
"@chooseFiletype": {},
|
||||||
"original": "Original",
|
"original": "Oryginał",
|
||||||
"@original": {
|
"@original": {
|
||||||
"description": "Option to chose when downloading a document"
|
"description": "Option to chose when downloading a document"
|
||||||
},
|
},
|
||||||
"documentSuccessfullyDownloaded": "Document successfully downloaded.",
|
"documentSuccessfullyDownloaded": "Pobieranie dokumentu udane.",
|
||||||
"@documentSuccessfullyDownloaded": {},
|
"@documentSuccessfullyDownloaded": {},
|
||||||
"suggestions": "Sugestie: ",
|
"suggestions": "Sugestie: ",
|
||||||
"@suggestions": {},
|
"@suggestions": {},
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
"@advanced": {},
|
"@advanced": {},
|
||||||
"apply": "Zastosuj",
|
"apply": "Zastosuj",
|
||||||
"@apply": {},
|
"@apply": {},
|
||||||
"extended": "Extended",
|
"extended": "Rozszerz",
|
||||||
"@extended": {},
|
"@extended": {},
|
||||||
"titleAndContent": "Tytuł i treść",
|
"titleAndContent": "Tytuł i treść",
|
||||||
"@titleAndContent": {},
|
"@titleAndContent": {},
|
||||||
@@ -157,19 +157,19 @@
|
|||||||
"@title": {},
|
"@title": {},
|
||||||
"reset": "Zresetuj",
|
"reset": "Zresetuj",
|
||||||
"@reset": {},
|
"@reset": {},
|
||||||
"filterDocuments": "Filter Documents",
|
"filterDocuments": "Filtrowanie dokumentów",
|
||||||
"@filterDocuments": {
|
"@filterDocuments": {
|
||||||
"description": "Title of the document filter"
|
"description": "Title of the document filter"
|
||||||
},
|
},
|
||||||
"originalMD5Checksum": "Original MD5-Checksum",
|
"originalMD5Checksum": "MD5-Checksum (suma kontrolna) oryginału",
|
||||||
"@originalMD5Checksum": {},
|
"@originalMD5Checksum": {},
|
||||||
"mediaFilename": "Nazwa pliku",
|
"mediaFilename": "Nazwa pliku",
|
||||||
"@mediaFilename": {},
|
"@mediaFilename": {},
|
||||||
"originalFileSize": "Original File Size",
|
"originalFileSize": "Rozmiar oryginalnego pliku",
|
||||||
"@originalFileSize": {},
|
"@originalFileSize": {},
|
||||||
"originalMIMEType": "Original MIME-Type",
|
"originalMIMEType": "MIME-Type oryginału",
|
||||||
"@originalMIMEType": {},
|
"@originalMIMEType": {},
|
||||||
"modifiedAt": "Modified at",
|
"modifiedAt": "Zmodyfikowano",
|
||||||
"@modifiedAt": {},
|
"@modifiedAt": {},
|
||||||
"preview": "Podgląd",
|
"preview": "Podgląd",
|
||||||
"@preview": {
|
"@preview": {
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
},
|
},
|
||||||
"scanADocument": "Zeskanuj dokument",
|
"scanADocument": "Zeskanuj dokument",
|
||||||
"@scanADocument": {},
|
"@scanADocument": {},
|
||||||
"noDocumentsScannedYet": "No documents scanned yet.",
|
"noDocumentsScannedYet": "Brak zeskanowanych dokumentów.",
|
||||||
"@noDocumentsScannedYet": {},
|
"@noDocumentsScannedYet": {},
|
||||||
"or": "lub",
|
"or": "lub",
|
||||||
"@or": {
|
"@or": {
|
||||||
@@ -185,11 +185,11 @@
|
|||||||
},
|
},
|
||||||
"deleteAllScans": "Usuń wszystkie skany",
|
"deleteAllScans": "Usuń wszystkie skany",
|
||||||
"@deleteAllScans": {},
|
"@deleteAllScans": {},
|
||||||
"uploadADocumentFromThisDevice": "Upload a document from this device",
|
"uploadADocumentFromThisDevice": "Prześlij dokument z tego urządzenia",
|
||||||
"@uploadADocumentFromThisDevice": {
|
"@uploadADocumentFromThisDevice": {
|
||||||
"description": "Button label on scanner page"
|
"description": "Button label on scanner page"
|
||||||
},
|
},
|
||||||
"noMatchesFound": "No matches found.",
|
"noMatchesFound": "Nie znaleziono pasujących elementów.",
|
||||||
"@noMatchesFound": {
|
"@noMatchesFound": {
|
||||||
"description": "Displayed when no documents were found in the document search."
|
"description": "Displayed when no documents were found in the document search."
|
||||||
},
|
},
|
||||||
@@ -199,50 +199,50 @@
|
|||||||
"@results": {
|
"@results": {
|
||||||
"description": "Label displayed above search results in document search."
|
"description": "Label displayed above search results in document search."
|
||||||
},
|
},
|
||||||
"searchDocuments": "Search documents",
|
"searchDocuments": "Szukaj dokumentów",
|
||||||
"@searchDocuments": {},
|
"@searchDocuments": {},
|
||||||
"resetFilter": "Zresetuj filtr",
|
"resetFilter": "Zresetuj filtr",
|
||||||
"@resetFilter": {},
|
"@resetFilter": {},
|
||||||
"lastMonth": "Last Month",
|
"lastMonth": "Ostatni Miesiąc",
|
||||||
"@lastMonth": {},
|
"@lastMonth": {},
|
||||||
"last7Days": "Last 7 Days",
|
"last7Days": "Ostatnie 7 dni",
|
||||||
"@last7Days": {},
|
"@last7Days": {},
|
||||||
"last3Months": "Last 3 Months",
|
"last3Months": "Ostatnie 3 miesiące",
|
||||||
"@last3Months": {},
|
"@last3Months": {},
|
||||||
"lastYear": "Last Year",
|
"lastYear": "Ostatni rok",
|
||||||
"@lastYear": {},
|
"@lastYear": {},
|
||||||
"search": "Szukaj",
|
"search": "Szukaj",
|
||||||
"@search": {},
|
"@search": {},
|
||||||
"documentsSuccessfullyDeleted": "Dokument pomyślnie usunięty.",
|
"documentsSuccessfullyDeleted": "Dokument pomyślnie usunięty.",
|
||||||
"@documentsSuccessfullyDeleted": {},
|
"@documentsSuccessfullyDeleted": {},
|
||||||
"thereSeemsToBeNothingHere": "There seems to be nothing here...",
|
"thereSeemsToBeNothingHere": "Wygląda na to, że nic tu nie ma...",
|
||||||
"@thereSeemsToBeNothingHere": {},
|
"@thereSeemsToBeNothingHere": {},
|
||||||
"oops": "Ups.",
|
"oops": "Ups.",
|
||||||
"@oops": {},
|
"@oops": {},
|
||||||
"newDocumentAvailable": "New document available!",
|
"newDocumentAvailable": "Nowy dokument dostępny!",
|
||||||
"@newDocumentAvailable": {},
|
"@newDocumentAvailable": {},
|
||||||
"orderBy": "Sortuj według",
|
"orderBy": "Sortuj według",
|
||||||
"@orderBy": {},
|
"@orderBy": {},
|
||||||
"thisActionIsIrreversibleDoYouWishToProceedAnyway": "This action is irreversible. Do you wish to proceed anyway?",
|
"thisActionIsIrreversibleDoYouWishToProceedAnyway": "Ta czynność jest nieodwracalna. Czy mimo to chcesz kontynuować?",
|
||||||
"@thisActionIsIrreversibleDoYouWishToProceedAnyway": {},
|
"@thisActionIsIrreversibleDoYouWishToProceedAnyway": {},
|
||||||
"confirmDeletion": "Potwierdź usunięcie",
|
"confirmDeletion": "Potwierdź usunięcie",
|
||||||
"@confirmDeletion": {},
|
"@confirmDeletion": {},
|
||||||
"areYouSureYouWantToDeleteTheFollowingDocuments": "{count, plural, one{Are you sure you want to delete the following document?} other{Are you sure you want to delete the following documents?}}",
|
"areYouSureYouWantToDeleteTheFollowingDocuments": "{count,plural, one{Czy na pewno chcesz usunąć ten plik?} few {Czy na pewno chcesz usunąć {count} pliki?} other {Czy na pewno chcesz usunąć {count} plików?}}",
|
||||||
"@areYouSureYouWantToDeleteTheFollowingDocuments": {
|
"@areYouSureYouWantToDeleteTheFollowingDocuments": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"countSelected": "{count} selected",
|
"countSelected": "Wybrano {count}",
|
||||||
"@countSelected": {
|
"@countSelected": {
|
||||||
"description": "Displayed in the appbar when at least one document is selected.",
|
"description": "Displayed in the appbar when at least one document is selected.",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"storagePath": "Storage Path",
|
"storagePath": "Ścieżka zapisu",
|
||||||
"@storagePath": {},
|
"@storagePath": {},
|
||||||
"prepareDocument": "Prepare document",
|
"prepareDocument": "Przygotuj dokument",
|
||||||
"@prepareDocument": {},
|
"@prepareDocument": {},
|
||||||
"tags": "Tagi",
|
"tags": "Tagi",
|
||||||
"@tags": {},
|
"@tags": {},
|
||||||
@@ -250,97 +250,97 @@
|
|||||||
"@documentSuccessfullyUpdated": {},
|
"@documentSuccessfullyUpdated": {},
|
||||||
"fileName": "Nazwa Pliku",
|
"fileName": "Nazwa Pliku",
|
||||||
"@fileName": {},
|
"@fileName": {},
|
||||||
"synchronizeTitleAndFilename": "Synchronize title and filename",
|
"synchronizeTitleAndFilename": "Synchronizuj tytuł i nazwę pliku",
|
||||||
"@synchronizeTitleAndFilename": {},
|
"@synchronizeTitleAndFilename": {},
|
||||||
"reload": "Odśwież",
|
"reload": "Odśwież",
|
||||||
"@reload": {},
|
"@reload": {},
|
||||||
"documentSuccessfullyUploadedProcessing": "Dokument pomyślnie przesłany, przetwarzam...",
|
"documentSuccessfullyUploadedProcessing": "Dokument pomyślnie przesłany, przetwarzam...",
|
||||||
"@documentSuccessfullyUploadedProcessing": {},
|
"@documentSuccessfullyUploadedProcessing": {},
|
||||||
"deleteLabelWarningText": "This label contains references to other documents. By deleting this label, all references will be removed. Continue?",
|
"deleteLabelWarningText": "Ta etykieta zawiera odniesienia do innych dokumentów. Usuwając tę etykietę, wszystkie odniesienia zostaną usunięte. Kontynuować?",
|
||||||
"@deleteLabelWarningText": {},
|
"@deleteLabelWarningText": {},
|
||||||
"couldNotAcknowledgeTasks": "Could not acknowledge tasks.",
|
"couldNotAcknowledgeTasks": "Nie udało się potwierdzić zadań.",
|
||||||
"@couldNotAcknowledgeTasks": {},
|
"@couldNotAcknowledgeTasks": {},
|
||||||
"authenticationFailedPleaseTryAgain": "Authentication failed, please try again.",
|
"authenticationFailedPleaseTryAgain": "Uwierzytelnienie nie powiodło się, spróbuj ponownie.",
|
||||||
"@authenticationFailedPleaseTryAgain": {},
|
"@authenticationFailedPleaseTryAgain": {},
|
||||||
"anErrorOccurredWhileTryingToAutocompleteYourQuery": "An error ocurred while trying to autocomplete your query.",
|
"anErrorOccurredWhileTryingToAutocompleteYourQuery": "Wystąpił błąd podczas próby automatycznego uzupełniania zapytania.",
|
||||||
"@anErrorOccurredWhileTryingToAutocompleteYourQuery": {},
|
"@anErrorOccurredWhileTryingToAutocompleteYourQuery": {},
|
||||||
"biometricAuthenticationFailed": "Biometric authentication failed.",
|
"biometricAuthenticationFailed": "Uwierzytelnianie biometryczne nie powiodło się.",
|
||||||
"@biometricAuthenticationFailed": {},
|
"@biometricAuthenticationFailed": {},
|
||||||
"biometricAuthenticationNotSupported": "Biometric authentication not supported on this device.",
|
"biometricAuthenticationNotSupported": "Uwierzytelnianie biometryczne nie jest obsługiwane na tym urządzeniu.",
|
||||||
"@biometricAuthenticationNotSupported": {},
|
"@biometricAuthenticationNotSupported": {},
|
||||||
"couldNotBulkEditDocuments": "Could not bulk edit documents.",
|
"couldNotBulkEditDocuments": "Nie udało się edytować wielu dokumentów.",
|
||||||
"@couldNotBulkEditDocuments": {},
|
"@couldNotBulkEditDocuments": {},
|
||||||
"couldNotCreateCorrespondent": "Could not create correspondent, please try again.",
|
"couldNotCreateCorrespondent": "Nie udało się utworzyć korespondenta, spróbuj ponownie.",
|
||||||
"@couldNotCreateCorrespondent": {},
|
"@couldNotCreateCorrespondent": {},
|
||||||
"couldNotLoadCorrespondents": "Could not load correspondents.",
|
"couldNotLoadCorrespondents": "Nie udało się załadować korespondentów.",
|
||||||
"@couldNotLoadCorrespondents": {},
|
"@couldNotLoadCorrespondents": {},
|
||||||
"couldNotCreateSavedView": "Could not create saved view, please try again.",
|
"couldNotCreateSavedView": "Nie udało się utworzyć zapisanego widoku, spróbuj ponownie.",
|
||||||
"@couldNotCreateSavedView": {},
|
"@couldNotCreateSavedView": {},
|
||||||
"couldNotDeleteSavedView": "Could not delete saved view, please try again",
|
"couldNotDeleteSavedView": "Nie udało się usunąć zapisanego widoku, spróbuj ponownie",
|
||||||
"@couldNotDeleteSavedView": {},
|
"@couldNotDeleteSavedView": {},
|
||||||
"youAreCurrentlyOffline": "You are currently offline. Please make sure you are connected to the internet.",
|
"youAreCurrentlyOffline": "Jesteś obecnie w trybie offline. Upewnij się, że jesteś połączony z Internetem.",
|
||||||
"@youAreCurrentlyOffline": {},
|
"@youAreCurrentlyOffline": {},
|
||||||
"couldNotAssignArchiveSerialNumber": "Could not assign archive serial number.",
|
"couldNotAssignArchiveSerialNumber": "Nie udało się przypisać numeru seryjnego archiwum (ASN).",
|
||||||
"@couldNotAssignArchiveSerialNumber": {},
|
"@couldNotAssignArchiveSerialNumber": {},
|
||||||
"couldNotDeleteDocument": "Could not delete document, please try again.",
|
"couldNotDeleteDocument": "Nie udało się usunąć dokumentu, spróbuj ponownie.",
|
||||||
"@couldNotDeleteDocument": {},
|
"@couldNotDeleteDocument": {},
|
||||||
"couldNotLoadDocuments": "Could not load documents, please try again.",
|
"couldNotLoadDocuments": "Nie udało się załadować dokumentów, spróbuj ponownie.",
|
||||||
"@couldNotLoadDocuments": {},
|
"@couldNotLoadDocuments": {},
|
||||||
"couldNotLoadDocumentPreview": "Could not load document preview.",
|
"couldNotLoadDocumentPreview": "Nie udało się załadować podglądu dokumentu.",
|
||||||
"@couldNotLoadDocumentPreview": {},
|
"@couldNotLoadDocumentPreview": {},
|
||||||
"couldNotCreateDocument": "Could not create document, please try again.",
|
"couldNotCreateDocument": "Nie udało się utworzyć dokumentu, spróbuj ponownie.",
|
||||||
"@couldNotCreateDocument": {},
|
"@couldNotCreateDocument": {},
|
||||||
"couldNotLoadDocumentTypes": "Could not load document types, please try again.",
|
"couldNotLoadDocumentTypes": "Nie udało się załadować typów dokumentów, spróbuj ponownie.",
|
||||||
"@couldNotLoadDocumentTypes": {},
|
"@couldNotLoadDocumentTypes": {},
|
||||||
"couldNotUpdateDocument": "Could not update document, please try again.",
|
"couldNotUpdateDocument": "Nie udało się zmodyfikować dokumentu, spróbuj ponownie.",
|
||||||
"@couldNotUpdateDocument": {},
|
"@couldNotUpdateDocument": {},
|
||||||
"couldNotUploadDocument": "Could not upload document, please try again.",
|
"couldNotUploadDocument": "Nie udało się przesłać dokumentu, spróbuj ponownie.",
|
||||||
"@couldNotUploadDocument": {},
|
"@couldNotUploadDocument": {},
|
||||||
"invalidCertificateOrMissingPassphrase": "Invalid certificate or missing passphrase, please try again",
|
"invalidCertificateOrMissingPassphrase": "Certyfikat jest nieprawidłowy lub brakuje hasła, spróbuj ponownie",
|
||||||
"@invalidCertificateOrMissingPassphrase": {},
|
"@invalidCertificateOrMissingPassphrase": {},
|
||||||
"couldNotLoadSavedViews": "Could not load saved views.",
|
"couldNotLoadSavedViews": "Nie udało się załadować zapisanych widoków.",
|
||||||
"@couldNotLoadSavedViews": {},
|
"@couldNotLoadSavedViews": {},
|
||||||
"aClientCertificateWasExpectedButNotSent": "A client certificate was expected but not sent. Please provide a valid client certificate.",
|
"aClientCertificateWasExpectedButNotSent": "Nie otrzymano oczekiwanego certyfikatu klienta. Proszę podać prawidłowy certyfikat.",
|
||||||
"@aClientCertificateWasExpectedButNotSent": {},
|
"@aClientCertificateWasExpectedButNotSent": {},
|
||||||
"userIsNotAuthenticated": "User is not authenticated.",
|
"userIsNotAuthenticated": "Użytkownik nie jest uwierzytelniony.",
|
||||||
"@userIsNotAuthenticated": {},
|
"@userIsNotAuthenticated": {},
|
||||||
"requestTimedOut": "The request to the server timed out.",
|
"requestTimedOut": "Przekroczono limit czasu żądania do serwera.",
|
||||||
"@requestTimedOut": {},
|
"@requestTimedOut": {},
|
||||||
"anErrorOccurredRemovingTheScans": "An error occurred removing the scans.",
|
"anErrorOccurredRemovingTheScans": "Wystąpił błąd podczas usuwania skanów.",
|
||||||
"@anErrorOccurredRemovingTheScans": {},
|
"@anErrorOccurredRemovingTheScans": {},
|
||||||
"couldNotReachYourPaperlessServer": "Could not reach your Paperless server, is it up and running?",
|
"couldNotReachYourPaperlessServer": "Nie można połączyć się z Twoim serwerem Paperless, czy jest on uruchomiony i dostępny?",
|
||||||
"@couldNotReachYourPaperlessServer": {},
|
"@couldNotReachYourPaperlessServer": {},
|
||||||
"couldNotLoadSimilarDocuments": "Could not load similar documents.",
|
"couldNotLoadSimilarDocuments": "Nie udało się wczytać podobnych dokumentów.",
|
||||||
"@couldNotLoadSimilarDocuments": {},
|
"@couldNotLoadSimilarDocuments": {},
|
||||||
"couldNotCreateStoragePath": "Could not create storage path, please try again.",
|
"couldNotCreateStoragePath": "Nie udało się utworzyć ścieżki zapisu, spróbuj ponownie.",
|
||||||
"@couldNotCreateStoragePath": {},
|
"@couldNotCreateStoragePath": {},
|
||||||
"couldNotLoadStoragePaths": "Could not load storage paths.",
|
"couldNotLoadStoragePaths": "Nie udało się załadować ścieżek zapisu.",
|
||||||
"@couldNotLoadStoragePaths": {},
|
"@couldNotLoadStoragePaths": {},
|
||||||
"couldNotLoadSuggestions": "Could not load suggestions.",
|
"couldNotLoadSuggestions": "Nie udało się załadować sugestii.",
|
||||||
"@couldNotLoadSuggestions": {},
|
"@couldNotLoadSuggestions": {},
|
||||||
"couldNotCreateTag": "Could not create tag, please try again.",
|
"couldNotCreateTag": "Nie udało się utworzyć taga, spróbuj ponownie.",
|
||||||
"@couldNotCreateTag": {},
|
"@couldNotCreateTag": {},
|
||||||
"couldNotLoadTags": "Could not load tags.",
|
"couldNotLoadTags": "Nie udało się załadować tagów.",
|
||||||
"@couldNotLoadTags": {},
|
"@couldNotLoadTags": {},
|
||||||
"anUnknownErrorOccurred": "An unknown error occurred.",
|
"anUnknownErrorOccurred": "Wystąpił nieznany błąd.",
|
||||||
"@anUnknownErrorOccurred": {},
|
"@anUnknownErrorOccurred": {},
|
||||||
"fileFormatNotSupported": "This file format is not supported.",
|
"fileFormatNotSupported": "Ten format pliku nie jest obsługiwany.",
|
||||||
"@fileFormatNotSupported": {},
|
"@fileFormatNotSupported": {},
|
||||||
"report": "REPORT",
|
"report": "ZGŁOSZENIE",
|
||||||
"@report": {},
|
"@report": {},
|
||||||
"absolute": "Absolute",
|
"absolute": "Bezwzględna",
|
||||||
"@absolute": {},
|
"@absolute": {},
|
||||||
"hintYouCanAlsoSpecifyRelativeValues": "Hint: Apart from concrete dates, you can also specify a time range relative to the current date.",
|
"hintYouCanAlsoSpecifyRelativeValues": "Wskazówka: Poza konkretnymi datami, możesz również określić zakres czasowy w stosunku do bieżącej daty.",
|
||||||
"@hintYouCanAlsoSpecifyRelativeValues": {
|
"@hintYouCanAlsoSpecifyRelativeValues": {
|
||||||
"description": "Displayed in the extended date range picker"
|
"description": "Displayed in the extended date range picker"
|
||||||
},
|
},
|
||||||
"amount": "Amount",
|
"amount": "Ilość",
|
||||||
"@amount": {},
|
"@amount": {},
|
||||||
"relative": "Relative",
|
"relative": "Względna",
|
||||||
"@relative": {},
|
"@relative": {},
|
||||||
"last": "Last",
|
"last": "Ostatnie",
|
||||||
"@last": {},
|
"@last": {},
|
||||||
"timeUnit": "Time unit",
|
"timeUnit": "Jednostka czasu",
|
||||||
"@timeUnit": {},
|
"@timeUnit": {},
|
||||||
"selectDateRange": "Wybierz zakres dat",
|
"selectDateRange": "Wybierz zakres dat",
|
||||||
"@selectDateRange": {},
|
"@selectDateRange": {},
|
||||||
@@ -348,167 +348,167 @@
|
|||||||
"@after": {},
|
"@after": {},
|
||||||
"before": "Przed",
|
"before": "Przed",
|
||||||
"@before": {},
|
"@before": {},
|
||||||
"days": "{count, plural, zero{days} one{day} other{days}}",
|
"days": "{count, plural, one{dzień} other{dni}}",
|
||||||
"@days": {
|
"@days": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lastNDays": "{count, plural, zero{} one{Yesterday} other{Last {count} days}}",
|
"lastNDays": "{count, plural, one{Wczoraj} other{Ostatnie {count} dni}}",
|
||||||
"@lastNDays": {
|
"@lastNDays": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lastNMonths": "{count, plural, zero{} one{Last month} other{Last {count} months}}",
|
"lastNMonths": "{count, plural, one{Ostatni miesiąc} other{Ostatnie {count} miesiące}}",
|
||||||
"@lastNMonths": {
|
"@lastNMonths": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lastNWeeks": "{count, plural, zero{} one{Last week} other{Last {count} weeks}}",
|
"lastNWeeks": "{count, plural, one{Ostatni tydzień} other{Ostatnie {count} tygodnie}}",
|
||||||
"@lastNWeeks": {
|
"@lastNWeeks": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lastNYears": "{count, plural, zero{} one{Last year} other{Last {count} years}}",
|
"lastNYears": "{count, plural, one {Ostatni rok} few {Ostatnie {count} lata} many {Ostatnie {count} lat} other {Ostatnie {count} lat}}",
|
||||||
"@lastNYears": {
|
"@lastNYears": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"months": "{count, plural, zero{} one{month} other{months}}",
|
"months": "{count, plural, one{Miesiąc} other{Miesiące}}",
|
||||||
"@months": {
|
"@months": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"weeks": "{count, plural, zero{} one{week} other{weeks}}",
|
"weeks": "{count, plural, one{tydzień} few {tygodnie} many {tygodnie} other{tygodnie}}",
|
||||||
"@weeks": {
|
"@weeks": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"years": "{count, plural, zero{} one{year} other{years}}",
|
"years": "{count, plural, one{rok} few {lat} many {lat} other{lat}}",
|
||||||
"@years": {
|
"@years": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gotIt": "Got it!",
|
"gotIt": "OK!",
|
||||||
"@gotIt": {},
|
"@gotIt": {},
|
||||||
"cancel": "Cancel",
|
"cancel": "Anuluj",
|
||||||
"@cancel": {},
|
"@cancel": {},
|
||||||
"close": "Close",
|
"close": "Zamknij",
|
||||||
"@close": {},
|
"@close": {},
|
||||||
"create": "Create",
|
"create": "Dodaj",
|
||||||
"@create": {},
|
"@create": {},
|
||||||
"delete": "Delete",
|
"delete": "Usuń",
|
||||||
"@delete": {},
|
"@delete": {},
|
||||||
"edit": "Edit",
|
"edit": "Edytuj",
|
||||||
"@edit": {},
|
"@edit": {},
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"@ok": {},
|
"@ok": {},
|
||||||
"save": "Save",
|
"save": "Zapisz",
|
||||||
"@save": {},
|
"@save": {},
|
||||||
"select": "Select",
|
"select": "Wybierz",
|
||||||
"@select": {},
|
"@select": {},
|
||||||
"saveChanges": "Zapisz zmiany",
|
"saveChanges": "Zapisz zmiany",
|
||||||
"@saveChanges": {},
|
"@saveChanges": {},
|
||||||
"upload": "Upload",
|
"upload": "Wyślij",
|
||||||
"@upload": {},
|
"@upload": {},
|
||||||
"youreOffline": "Jesteście w trybie offline.",
|
"youreOffline": "Jesteście w trybie offline.",
|
||||||
"@youreOffline": {},
|
"@youreOffline": {},
|
||||||
"deleteDocument": "Delete document",
|
"deleteDocument": "Usuń dokument",
|
||||||
"@deleteDocument": {
|
"@deleteDocument": {
|
||||||
"description": "Used as an action label on each inbox item"
|
"description": "Used as an action label on each inbox item"
|
||||||
},
|
},
|
||||||
"removeDocumentFromInbox": "Dokument usunięty ze skrzynki odbiorczej",
|
"removeDocumentFromInbox": "Dokument usunięty ze skrzynki odbiorczej",
|
||||||
"@removeDocumentFromInbox": {},
|
"@removeDocumentFromInbox": {},
|
||||||
"areYouSureYouWantToMarkAllDocumentsAsSeen": "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?",
|
"areYouSureYouWantToMarkAllDocumentsAsSeen": "Czy na pewno chcesz oznaczyć wszystkie dokumenty jako przeczytane? Spowoduje to edycję wszystkich dokumentów, usuwając znaczniki skrzynki odbiorczej. Ta akcja nie jest odwracalna! Czy na pewno chcesz kontynuować?",
|
||||||
"@areYouSureYouWantToMarkAllDocumentsAsSeen": {},
|
"@areYouSureYouWantToMarkAllDocumentsAsSeen": {},
|
||||||
"markAllAsSeen": "Mark all as seen?",
|
"markAllAsSeen": "Oznaczyć wszystkie jako przeczytane?",
|
||||||
"@markAllAsSeen": {},
|
"@markAllAsSeen": {},
|
||||||
"allSeen": "All seen",
|
"allSeen": "Wszystkie dokumenty zostały przeczytane",
|
||||||
"@allSeen": {},
|
"@allSeen": {},
|
||||||
"markAsSeen": "Mark as seen",
|
"markAsSeen": "Oznacz jako przeczytane",
|
||||||
"@markAsSeen": {},
|
"@markAsSeen": {},
|
||||||
"refresh": "Odświerz",
|
"refresh": "Odświerz",
|
||||||
"@refresh": {},
|
"@refresh": {},
|
||||||
"youDoNotHaveUnseenDocuments": "You do not have unseen documents.",
|
"youDoNotHaveUnseenDocuments": "Nie masz nieprzeczytanych dokumentów.",
|
||||||
"@youDoNotHaveUnseenDocuments": {},
|
"@youDoNotHaveUnseenDocuments": {},
|
||||||
"quickAction": "Quick Action",
|
"quickAction": "Szybka akcja",
|
||||||
"@quickAction": {},
|
"@quickAction": {},
|
||||||
"suggestionSuccessfullyApplied": "Suggestion successfully applied.",
|
"suggestionSuccessfullyApplied": "Pomyślnie zastosowano sugestię.",
|
||||||
"@suggestionSuccessfullyApplied": {},
|
"@suggestionSuccessfullyApplied": {},
|
||||||
"today": "Dzisiaj",
|
"today": "Dzisiaj",
|
||||||
"@today": {},
|
"@today": {},
|
||||||
"undo": "Cofnij",
|
"undo": "Cofnij",
|
||||||
"@undo": {},
|
"@undo": {},
|
||||||
"nUnseen": "{count} unseen",
|
"nUnseen": "{count} nieprzeczytane",
|
||||||
"@nUnseen": {
|
"@nUnseen": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"swipeLeftToMarkADocumentAsSeen": "Hint: Swipe left to mark a document as seen and remove all inbox tags from the document.",
|
"swipeLeftToMarkADocumentAsSeen": "Wskazówka: Przesuń palcem w lewo, aby oznaczyć dokument jako przeczytany i usunąć wszystkie znaczniki skrzynki odbiorczej z dokumentu.",
|
||||||
"@swipeLeftToMarkADocumentAsSeen": {},
|
"@swipeLeftToMarkADocumentAsSeen": {},
|
||||||
"yesterday": "Wczoraj",
|
"yesterday": "Wczoraj",
|
||||||
"@yesterday": {},
|
"@yesterday": {},
|
||||||
"anyAssigned": "Any assigned",
|
"anyAssigned": "Przypisano etykietę",
|
||||||
"@anyAssigned": {},
|
"@anyAssigned": {},
|
||||||
"noItemsFound": "No items found!",
|
"noItemsFound": "Nie znaleziono żadnych rekordów!",
|
||||||
"@noItemsFound": {},
|
"@noItemsFound": {},
|
||||||
"caseIrrelevant": "Case Irrelevant",
|
"caseIrrelevant": "Nie rozróżniaj wielkich i małych liter",
|
||||||
"@caseIrrelevant": {},
|
"@caseIrrelevant": {},
|
||||||
"matchingAlgorithm": "Matching Algorithm",
|
"matchingAlgorithm": "Algorytm dopasowania",
|
||||||
"@matchingAlgorithm": {},
|
"@matchingAlgorithm": {},
|
||||||
"match": "Match",
|
"match": "Dopasowanie",
|
||||||
"@match": {},
|
"@match": {},
|
||||||
"name": "Nazwa",
|
"name": "Nazwa",
|
||||||
"@name": {},
|
"@name": {},
|
||||||
"notAssigned": "Not assigned",
|
"notAssigned": "Nie przypisano",
|
||||||
"@notAssigned": {},
|
"@notAssigned": {},
|
||||||
"addNewCorrespondent": "Add new correspondent",
|
"addNewCorrespondent": "Dodaj nowego korespondenta",
|
||||||
"@addNewCorrespondent": {},
|
"@addNewCorrespondent": {},
|
||||||
"noCorrespondentsSetUp": "You don't seem to have any correspondents set up.",
|
"noCorrespondentsSetUp": "Nie masz żadnych ustawionych korespondentów.",
|
||||||
"@noCorrespondentsSetUp": {},
|
"@noCorrespondentsSetUp": {},
|
||||||
"correspondents": "Correspondents",
|
"correspondents": "Korespondenci",
|
||||||
"@correspondents": {},
|
"@correspondents": {},
|
||||||
"addNewDocumentType": "Dodaj nowy rodzaj dokumentu",
|
"addNewDocumentType": "Dodaj nowy rodzaj dokumentu",
|
||||||
"@addNewDocumentType": {},
|
"@addNewDocumentType": {},
|
||||||
"noDocumentTypesSetUp": "You don't seem to have any document types set up.",
|
"noDocumentTypesSetUp": "Nie masz skonfigurowanych typów dokumentów.",
|
||||||
"@noDocumentTypesSetUp": {},
|
"@noDocumentTypesSetUp": {},
|
||||||
"documentTypes": "Rodzaje dokumentów",
|
"documentTypes": "Rodzaje dokumentów",
|
||||||
"@documentTypes": {},
|
"@documentTypes": {},
|
||||||
"addNewStoragePath": "Add new storage path",
|
"addNewStoragePath": "Dodaj nową ścieżkę zapisu",
|
||||||
"@addNewStoragePath": {},
|
"@addNewStoragePath": {},
|
||||||
"noStoragePathsSetUp": "You don't seem to have any storage paths set up.",
|
"noStoragePathsSetUp": "Wygląda na to, że nie masz ustawionych ścieżek zapisu.",
|
||||||
"@noStoragePathsSetUp": {},
|
"@noStoragePathsSetUp": {},
|
||||||
"storagePaths": "Storage Paths",
|
"storagePaths": "Ścieżki zapisu",
|
||||||
"@storagePaths": {},
|
"@storagePaths": {},
|
||||||
"addNewTag": "Add new tag",
|
"addNewTag": "Dodaj nowy tag",
|
||||||
"@addNewTag": {},
|
"@addNewTag": {},
|
||||||
"noTagsSetUp": "You don't seem to have any tags set up.",
|
"noTagsSetUp": "Wygląda na to, że nie masz skonfigurowanych tagów.",
|
||||||
"@noTagsSetUp": {},
|
"@noTagsSetUp": {},
|
||||||
"linkedDocuments": "Linked Documents",
|
"linkedDocuments": "Powiązane dokumenty",
|
||||||
"@linkedDocuments": {},
|
"@linkedDocuments": {},
|
||||||
"advancedSettings": "Advanced Settings",
|
"advancedSettings": "Ustawienia zaawansowane",
|
||||||
"@advancedSettings": {},
|
"@advancedSettings": {},
|
||||||
"passphrase": "Passphrase",
|
"passphrase": "Hasło",
|
||||||
"@passphrase": {},
|
"@passphrase": {},
|
||||||
"configureMutualTLSAuthentication": "Configure Mutual TLS Authentication",
|
"configureMutualTLSAuthentication": "Skonfiguruj wzajemne uwierzytelnianie TLS",
|
||||||
"@configureMutualTLSAuthentication": {},
|
"@configureMutualTLSAuthentication": {},
|
||||||
"invalidCertificateFormat": "Invalid certificate format, only .pfx is allowed",
|
"invalidCertificateFormat": "Nieprawidłowy format certyfikatu, dozwolony jest tylko .pfx",
|
||||||
"@invalidCertificateFormat": {},
|
"@invalidCertificateFormat": {},
|
||||||
"clientcertificate": "Client Certificate",
|
"clientcertificate": "Certyfikat klienta",
|
||||||
"@clientcertificate": {},
|
"@clientcertificate": {},
|
||||||
"selectFile": "Select file...",
|
"selectFile": "Wybierz plik...",
|
||||||
"@selectFile": {},
|
"@selectFile": {},
|
||||||
"continueLabel": "Kontynuuj",
|
"continueLabel": "Kontynuuj",
|
||||||
"@continueLabel": {},
|
"@continueLabel": {},
|
||||||
"incorrectOrMissingCertificatePassphrase": "Incorrect or missing certificate passphrase.",
|
"incorrectOrMissingCertificatePassphrase": "Błędne lub brakujące hasło certyfikatu.",
|
||||||
"@incorrectOrMissingCertificatePassphrase": {},
|
"@incorrectOrMissingCertificatePassphrase": {},
|
||||||
"connect": "Polącz",
|
"connect": "Polącz",
|
||||||
"@connect": {},
|
"@connect": {},
|
||||||
@@ -516,97 +516,97 @@
|
|||||||
"@password": {},
|
"@password": {},
|
||||||
"passwordMustNotBeEmpty": "Hasło nie może być puste.",
|
"passwordMustNotBeEmpty": "Hasło nie może być puste.",
|
||||||
"@passwordMustNotBeEmpty": {},
|
"@passwordMustNotBeEmpty": {},
|
||||||
"connectionTimedOut": "Connection timed out.",
|
"connectionTimedOut": "Upłynął czas połączenia.",
|
||||||
"@connectionTimedOut": {},
|
"@connectionTimedOut": {},
|
||||||
"loginPageReachabilityMissingClientCertificateText": "A client certificate was expected but not sent. Please provide a certificate.",
|
"loginPageReachabilityMissingClientCertificateText": "Nie otrzymano oczekiwanego certyfikatu klienta. Proszę podać prawidłowy certyfikat.",
|
||||||
"@loginPageReachabilityMissingClientCertificateText": {},
|
"@loginPageReachabilityMissingClientCertificateText": {},
|
||||||
"couldNotEstablishConnectionToTheServer": "Could not establish a connection to the server.",
|
"couldNotEstablishConnectionToTheServer": "Nie udało się nawiązać połączenia z serwerem.",
|
||||||
"@couldNotEstablishConnectionToTheServer": {},
|
"@couldNotEstablishConnectionToTheServer": {},
|
||||||
"connectionSuccessfulylEstablished": "Connection successfully established.",
|
"connectionSuccessfulylEstablished": "Połączenie zostało ustanowione pomyślnie.",
|
||||||
"@connectionSuccessfulylEstablished": {},
|
"@connectionSuccessfulylEstablished": {},
|
||||||
"hostCouldNotBeResolved": "Host could not be resolved. Please check the server address and your internet connection. ",
|
"hostCouldNotBeResolved": "Nie udało się ustalić hosta. Sprawdź adres serwera i połączenie z Internetem. ",
|
||||||
"@hostCouldNotBeResolved": {},
|
"@hostCouldNotBeResolved": {},
|
||||||
"serverAddress": "Adres serwera",
|
"serverAddress": "Adres serwera",
|
||||||
"@serverAddress": {},
|
"@serverAddress": {},
|
||||||
"invalidAddress": "Invalid address.",
|
"invalidAddress": "Nieprawidłowy adres.",
|
||||||
"@invalidAddress": {},
|
"@invalidAddress": {},
|
||||||
"serverAddressMustIncludeAScheme": "Server address must include a scheme.",
|
"serverAddressMustIncludeAScheme": "Adres serwera musi zawierać schemat.",
|
||||||
"@serverAddressMustIncludeAScheme": {},
|
"@serverAddressMustIncludeAScheme": {},
|
||||||
"serverAddressMustNotBeEmpty": "Server address must not be empty.",
|
"serverAddressMustNotBeEmpty": "Adres serwera nie może być pusty.",
|
||||||
"@serverAddressMustNotBeEmpty": {},
|
"@serverAddressMustNotBeEmpty": {},
|
||||||
"signIn": "Sign In",
|
"signIn": "Zaloguj się",
|
||||||
"@signIn": {},
|
"@signIn": {},
|
||||||
"loginPageSignInTitle": "Sign In",
|
"loginPageSignInTitle": "Zaloguj się",
|
||||||
"@loginPageSignInTitle": {},
|
"@loginPageSignInTitle": {},
|
||||||
"signInToServer": "Sign in to {serverAddress}",
|
"signInToServer": "Zaloguj się do {serverAddress}",
|
||||||
"@signInToServer": {
|
"@signInToServer": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"serverAddress": {}
|
"serverAddress": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"connectToPaperless": "Connect to Paperless",
|
"connectToPaperless": "Połącz z Paperless",
|
||||||
"@connectToPaperless": {},
|
"@connectToPaperless": {},
|
||||||
"username": "Username",
|
"username": "Nazwa użytkownika",
|
||||||
"@username": {},
|
"@username": {},
|
||||||
"usernameMustNotBeEmpty": "Username must not be empty.",
|
"usernameMustNotBeEmpty": "Nazwa użytkownika nie może być pusta.",
|
||||||
"@usernameMustNotBeEmpty": {},
|
"@usernameMustNotBeEmpty": {},
|
||||||
"documentContainsAllOfTheseWords": "Document contains all of these words",
|
"documentContainsAllOfTheseWords": "Dokument zawiera wszystkie poniższe słowa",
|
||||||
"@documentContainsAllOfTheseWords": {},
|
"@documentContainsAllOfTheseWords": {},
|
||||||
"all": "All",
|
"all": "Wszystkie",
|
||||||
"@all": {},
|
"@all": {},
|
||||||
"documentContainsAnyOfTheseWords": "Document contains any of these words",
|
"documentContainsAnyOfTheseWords": "Dokument zawiera którekolwiek z poniższych słów",
|
||||||
"@documentContainsAnyOfTheseWords": {},
|
"@documentContainsAnyOfTheseWords": {},
|
||||||
"any": "Any",
|
"any": "Dowolny",
|
||||||
"@any": {},
|
"@any": {},
|
||||||
"learnMatchingAutomatically": "Learn matching automatically",
|
"learnMatchingAutomatically": "Ucz się automatycznie dopasowywania",
|
||||||
"@learnMatchingAutomatically": {},
|
"@learnMatchingAutomatically": {},
|
||||||
"auto": "Auto",
|
"auto": "Auto",
|
||||||
"@auto": {},
|
"@auto": {},
|
||||||
"documentContainsThisString": "Document contains this string",
|
"documentContainsThisString": "Dokładne: Dokument zawiera ten ciąg znaków",
|
||||||
"@documentContainsThisString": {},
|
"@documentContainsThisString": {},
|
||||||
"exact": "Exact",
|
"exact": "Dokładne",
|
||||||
"@exact": {},
|
"@exact": {},
|
||||||
"documentContainsAWordSimilarToThisWord": "Document contains a word similar to this word",
|
"documentContainsAWordSimilarToThisWord": "Dokument zawiera słowo podobne do tego słowa",
|
||||||
"@documentContainsAWordSimilarToThisWord": {},
|
"@documentContainsAWordSimilarToThisWord": {},
|
||||||
"fuzzy": "Fuzzy",
|
"fuzzy": "Przybliżone (Fuzzy)",
|
||||||
"@fuzzy": {},
|
"@fuzzy": {},
|
||||||
"documentMatchesThisRegularExpression": "Document matches this regular expression",
|
"documentMatchesThisRegularExpression": "Dokument pasuje do wyrażenia regularnego",
|
||||||
"@documentMatchesThisRegularExpression": {},
|
"@documentMatchesThisRegularExpression": {},
|
||||||
"regularExpression": "Regular Expression",
|
"regularExpression": "Wyrażenie regularne",
|
||||||
"@regularExpression": {},
|
"@regularExpression": {},
|
||||||
"anInternetConnectionCouldNotBeEstablished": "Nie można było nawiązać połączenia internetowego.",
|
"anInternetConnectionCouldNotBeEstablished": "Nie można było nawiązać połączenia internetowego.",
|
||||||
"@anInternetConnectionCouldNotBeEstablished": {},
|
"@anInternetConnectionCouldNotBeEstablished": {},
|
||||||
"done": "Done",
|
"done": "Wykonano",
|
||||||
"@done": {},
|
"@done": {},
|
||||||
"next": "Następne",
|
"next": "Następne",
|
||||||
"@next": {},
|
"@next": {},
|
||||||
"couldNotAccessReceivedFile": "Could not access the received file. Please try to open the app before sharing.",
|
"couldNotAccessReceivedFile": "Nie można uzyskać dostępu do otrzymanego pliku. Spróbuj otworzyć aplikację przed udostępnieniem.",
|
||||||
"@couldNotAccessReceivedFile": {},
|
"@couldNotAccessReceivedFile": {},
|
||||||
"newView": "New View",
|
"newView": "Nowy widok",
|
||||||
"@newView": {},
|
"@newView": {},
|
||||||
"createsASavedViewBasedOnTheCurrentFilterCriteria": "Creates a new view based on the current filter criteria.",
|
"createsASavedViewBasedOnTheCurrentFilterCriteria": "Tworzy nowy widok oparty na aktualnych kryteriach filtrowania.",
|
||||||
"@createsASavedViewBasedOnTheCurrentFilterCriteria": {},
|
"@createsASavedViewBasedOnTheCurrentFilterCriteria": {},
|
||||||
"createViewsToQuicklyFilterYourDocuments": "Create views to quickly filter your documents.",
|
"createViewsToQuicklyFilterYourDocuments": "Utwórz widoki aby szybko filtrować dokumenty.",
|
||||||
"@createViewsToQuicklyFilterYourDocuments": {},
|
"@createViewsToQuicklyFilterYourDocuments": {},
|
||||||
"nFiltersSet": "{count, plural, zero{{count} filters set} one{{count} filter set} other{{count} filters set}}",
|
"nFiltersSet": "{count, plural, one{{count} filtr ustawiony} few {{count} filtry ustawione} many {{count} filtry ustawione} other{{count} filtry ustawione}}",
|
||||||
"@nFiltersSet": {
|
"@nFiltersSet": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {}
|
"count": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"showInSidebar": "Show in sidebar",
|
"showInSidebar": "Pokaż w panelu bocznym",
|
||||||
"@showInSidebar": {},
|
"@showInSidebar": {},
|
||||||
"showOnDashboard": "Show on dashboard",
|
"showOnDashboard": "Pokaż na pulpicie",
|
||||||
"@showOnDashboard": {},
|
"@showOnDashboard": {},
|
||||||
"views": "Views",
|
"views": "Widoki",
|
||||||
"@views": {},
|
"@views": {},
|
||||||
"clearAll": "Clear all",
|
"clearAll": "Wyczyść wszystko",
|
||||||
"@clearAll": {},
|
"@clearAll": {},
|
||||||
"scan": "Skanuj",
|
"scan": "Skanuj",
|
||||||
"@scan": {},
|
"@scan": {},
|
||||||
"previewScan": "Preview",
|
"previewScan": "Podgląd",
|
||||||
"@previewScan": {},
|
"@previewScan": {},
|
||||||
"scrollToTop": "Scroll to top",
|
"scrollToTop": "Przewiń do góry",
|
||||||
"@scrollToTop": {},
|
"@scrollToTop": {},
|
||||||
"paperlessServerVersion": "Wersja serwera Paperless",
|
"paperlessServerVersion": "Wersja serwera Paperless",
|
||||||
"@paperlessServerVersion": {},
|
"@paperlessServerVersion": {},
|
||||||
@@ -622,9 +622,9 @@
|
|||||||
"@languageAndVisualAppearance": {},
|
"@languageAndVisualAppearance": {},
|
||||||
"applicationSettings": "Aplikacja",
|
"applicationSettings": "Aplikacja",
|
||||||
"@applicationSettings": {},
|
"@applicationSettings": {},
|
||||||
"colorSchemeHint": "Choose between a classic color scheme inspired by a traditional Paperless green or use the dynamic color scheme based on your system theme.",
|
"colorSchemeHint": "Wybierz między klasycznym schematem kolorów zainspirowanym tradycyjnym zielonym Paperless, lub użyj dynamicznego schematu kolorów na podstawie motywu systemu.",
|
||||||
"@colorSchemeHint": {},
|
"@colorSchemeHint": {},
|
||||||
"colorSchemeNotSupportedWarning": "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.",
|
"colorSchemeNotSupportedWarning": "Dynamiczny motyw jest obsługiwany tylko dla urządzeń z systemem Android 12 i nowszym. Wybór opcji 'Dynamiczny' może nie mieć żadnego wpływu w zależności od implementacji systemu operacyjnego.",
|
||||||
"@colorSchemeNotSupportedWarning": {},
|
"@colorSchemeNotSupportedWarning": {},
|
||||||
"colors": "Kolory",
|
"colors": "Kolory",
|
||||||
"@colors": {},
|
"@colors": {},
|
||||||
@@ -632,9 +632,9 @@
|
|||||||
"@language": {},
|
"@language": {},
|
||||||
"security": "Zabezpieczenia",
|
"security": "Zabezpieczenia",
|
||||||
"@security": {},
|
"@security": {},
|
||||||
"mangeFilesAndStorageSpace": "Manage files and storage space",
|
"mangeFilesAndStorageSpace": "Zarządzaj plikami i przestrzenią dyskową",
|
||||||
"@mangeFilesAndStorageSpace": {},
|
"@mangeFilesAndStorageSpace": {},
|
||||||
"storage": "Storage",
|
"storage": "Pamięć",
|
||||||
"@storage": {},
|
"@storage": {},
|
||||||
"dark": "Ciemny",
|
"dark": "Ciemny",
|
||||||
"@dark": {},
|
"@dark": {},
|
||||||
@@ -642,9 +642,9 @@
|
|||||||
"@light": {},
|
"@light": {},
|
||||||
"system": "System",
|
"system": "System",
|
||||||
"@system": {},
|
"@system": {},
|
||||||
"ascending": "Ascending",
|
"ascending": "Rosnąco",
|
||||||
"@ascending": {},
|
"@ascending": {},
|
||||||
"descending": "Descending",
|
"descending": "Malejąco",
|
||||||
"@descending": {},
|
"@descending": {},
|
||||||
"storagePathDay": "dzień",
|
"storagePathDay": "dzień",
|
||||||
"@storagePathDay": {},
|
"@storagePathDay": {},
|
||||||
@@ -654,130 +654,162 @@
|
|||||||
"@storagePathYear": {},
|
"@storagePathYear": {},
|
||||||
"color": "Kolor",
|
"color": "Kolor",
|
||||||
"@color": {},
|
"@color": {},
|
||||||
"filterTags": "Filter tags...",
|
"filterTags": "Filtruj tagi...",
|
||||||
"@filterTags": {},
|
"@filterTags": {},
|
||||||
"inboxTag": "Tag skrzynki odbiorczej",
|
"inboxTag": "Tag skrzynki odbiorczej",
|
||||||
"@inboxTag": {},
|
"@inboxTag": {},
|
||||||
"uploadInferValuesHint": "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.",
|
"uploadInferValuesHint": "Jeśli określisz wartości dla tych pól, Twoja instancja Paperless nie będzie automatycznie ustalać ich wartości. Jeśli chcesz, aby te wartości były automatycznie wypełniane przez serwer, pozostaw puste pola.",
|
||||||
"@uploadInferValuesHint": {},
|
"@uploadInferValuesHint": {},
|
||||||
"useTheConfiguredBiometricFactorToAuthenticate": "Use the configured biometric factor to authenticate and unlock your documents.",
|
"useTheConfiguredBiometricFactorToAuthenticate": "Użyj skonfigurowanego czynnika biometrycznego, aby uwierzytelnić i odblokować dokumenty.",
|
||||||
"@useTheConfiguredBiometricFactorToAuthenticate": {},
|
"@useTheConfiguredBiometricFactorToAuthenticate": {},
|
||||||
"verifyYourIdentity": "Verify your identity",
|
"verifyYourIdentity": "Zweryfikuj swoją tożsamość",
|
||||||
"@verifyYourIdentity": {},
|
"@verifyYourIdentity": {},
|
||||||
"verifyIdentity": "Verify Identity",
|
"verifyIdentity": "Zweryfikuj tożsamość",
|
||||||
"@verifyIdentity": {},
|
"@verifyIdentity": {},
|
||||||
"detailed": "Detailed",
|
"detailed": "Widok szczegółowy",
|
||||||
"@detailed": {},
|
"@detailed": {},
|
||||||
"grid": "Grid",
|
"grid": "Siatka",
|
||||||
"@grid": {},
|
"@grid": {},
|
||||||
"list": "List",
|
"list": "Lista",
|
||||||
"@list": {},
|
"@list": {},
|
||||||
"remove": "Remove",
|
"remove": "Usuń",
|
||||||
"removeQueryFromSearchHistory": "Remove query from search history?",
|
"removeQueryFromSearchHistory": "Usunąć zapytanie z historii wyszukiwania?",
|
||||||
"dynamicColorScheme": "Dynamic",
|
"dynamicColorScheme": "Dynamiczny",
|
||||||
"@dynamicColorScheme": {},
|
"@dynamicColorScheme": {},
|
||||||
"classicColorScheme": "Classic",
|
"classicColorScheme": "Klasyczny",
|
||||||
"@classicColorScheme": {},
|
"@classicColorScheme": {},
|
||||||
"notificationDownloadComplete": "Download complete",
|
"notificationDownloadComplete": "Pobieranie ukończone",
|
||||||
"@notificationDownloadComplete": {
|
"@notificationDownloadComplete": {
|
||||||
"description": "Notification title when a download has been completed."
|
"description": "Notification title when a download has been completed."
|
||||||
},
|
},
|
||||||
"notificationDownloadingDocument": "Downloading document",
|
"notificationDownloadingDocument": "Pobieranie dokumentu",
|
||||||
"@notificationDownloadingDocument": {
|
"@notificationDownloadingDocument": {
|
||||||
"description": "Notification title shown when a document download is pending"
|
"description": "Notification title shown when a document download is pending"
|
||||||
},
|
},
|
||||||
"archiveSerialNumberUpdated": "Archive Serial Number updated.",
|
"archiveSerialNumberUpdated": "Numer ASN zmodyfikowany.",
|
||||||
"@archiveSerialNumberUpdated": {
|
"@archiveSerialNumberUpdated": {
|
||||||
"description": "Message shown when the ASN has been updated."
|
"description": "Message shown when the ASN has been updated."
|
||||||
},
|
},
|
||||||
"donateCoffee": "Buy me a coffee",
|
"donateCoffee": "Kup mi kawę",
|
||||||
"@donateCoffee": {
|
"@donateCoffee": {
|
||||||
"description": "Label displayed in the app drawer"
|
"description": "Label displayed in the app drawer"
|
||||||
},
|
},
|
||||||
"thisFieldIsRequired": "This field is required!",
|
"thisFieldIsRequired": "To pole jest wymagane!",
|
||||||
"@thisFieldIsRequired": {
|
"@thisFieldIsRequired": {
|
||||||
"description": "Message shown below the form field when a required field has not been filled out."
|
"description": "Message shown below the form field when a required field has not been filled out."
|
||||||
},
|
},
|
||||||
"confirm": "Confirm",
|
"confirm": "Potwierdź",
|
||||||
"confirmAction": "Confirm action",
|
"confirmAction": "Zatwierdź akcje",
|
||||||
"@confirmAction": {
|
"@confirmAction": {
|
||||||
"description": "Typically used as a title to confirm a previously selected action"
|
"description": "Typically used as a title to confirm a previously selected action"
|
||||||
},
|
},
|
||||||
"areYouSureYouWantToContinue": "Are you sure you want to continue?",
|
"areYouSureYouWantToContinue": "Czy na pewno chcesz kontynuować?",
|
||||||
"bulkEditTagsAddMessage": "{count, plural, one{This operation will add the tags {tags} to the selected document.} other{This operation will add the tags {tags} to {count} selected documents.}}",
|
"bulkEditTagsAddMessage": "{count, plural, one{Ta operacja doda tagi {tags} do wybranego dokumentu} few {Ta operacja doda tagi {tags} do {count} wybranych dokumentów} many {Ta operacja doda tagi {tags} do {count} wybranych dokumentów} other{Ta operacja doda tagi {tags} do {count} wybranych dokumentów}}",
|
||||||
"@bulkEditTagsAddMessage": {
|
"@bulkEditTagsAddMessage": {
|
||||||
"description": "Message of the confirmation dialog when bulk adding tags."
|
"description": "Message of the confirmation dialog when bulk adding tags."
|
||||||
},
|
},
|
||||||
"bulkEditTagsRemoveMessage": "{count, plural, one{This operation will remove the tags {tags} from the selected document.} other{This operation will remove the tags {tags} from {count} selected documents.}}",
|
"bulkEditTagsRemoveMessage": "{count, plural, one{Ta operacja usunie tagi {tags} z wybranego dokumentu.} other{Ta operacja usunie tagi {tags} z {count} wybranych dokumentów.}}",
|
||||||
"@bulkEditTagsRemoveMessage": {
|
"@bulkEditTagsRemoveMessage": {
|
||||||
"description": "Message of the confirmation dialog when bulk removing tags."
|
"description": "Message of the confirmation dialog when bulk removing tags."
|
||||||
},
|
},
|
||||||
"bulkEditTagsModifyMessage": "{count, plural, one{This operation will add the tags {addTags} and remove the tags {removeTags} from the selected document.} other{This operation will add the tags {addTags} and remove the tags {removeTags} from {count} selected documents.}}",
|
"bulkEditTagsModifyMessage": "{count, plural, one{Ta operacja doda znaczniki {addTags} i usunie znaczniki {removeTags} z wybranego dokumentu.} other{Ta operacja doda tagi {addTags} i usunie tagi {removeTags} z {count} wybranych dokumentów.}}",
|
||||||
"@bulkEditTagsModifyMessage": {
|
"@bulkEditTagsModifyMessage": {
|
||||||
"description": "Message of the confirmation dialog when both adding and removing tags."
|
"description": "Message of the confirmation dialog when both adding and removing tags."
|
||||||
},
|
},
|
||||||
"bulkEditCorrespondentAssignMessage": "{count, plural, one{This operation will assign the correspondent {correspondent} to the selected document.} other{This operation will assign the correspondent {correspondent} to {count} selected documents.}}",
|
"bulkEditCorrespondentAssignMessage": "{count, plural, one{Ta operacja przypisze korespondenta {correspondent} do wybranego dokumentu.} other{Ta operacja przypisze korespondenta {correspondent} do {count} wybranych dokumentów}}",
|
||||||
"bulkEditDocumentTypeAssignMessage": "{count, plural, one{This operation will assign the document type {docType} to the selected document.} other{This operation will assign the documentType {docType} to {count} selected documents.}}",
|
"bulkEditDocumentTypeAssignMessage": "{count, plural, one{Ta operacja przypisze typ dokumentu {docType} do wybranego dokumentu.} other{Ta operacja przypisze typ dokumentu {docType} do {count} wybranych dokumentów}}",
|
||||||
"bulkEditStoragePathAssignMessage": "{count, plural, one{This operation will assign the storage path {path} to the selected document.} other{This operation will assign the storage path {path} to {count} selected documents.}}",
|
"bulkEditStoragePathAssignMessage": "{count, plural, one{Ta operacja przypisze ścieżkę zapisu {path} do wybranego dokumentu.} other{Ta operacja przypisze ścieżkę zapisu {path} do {count} wybranych dokumentów}}",
|
||||||
"bulkEditCorrespondentRemoveMessage": "{count, plural, one{This operation will remove the correspondent from the selected document.} other{This operation will remove the correspondent from {count} selected documents.}}",
|
"bulkEditCorrespondentRemoveMessage": "{count, plural, one{Ta operacja usunie korespondenta z wybranego dokumentu.} other{Ta operacja usunie korespondenta z {count} wybranych dokumentów}}",
|
||||||
"bulkEditDocumentTypeRemoveMessage": "{count, plural, one{This operation will remove the document type from the selected document.} other{This operation will remove the document type from {count} selected documents.}}",
|
"bulkEditDocumentTypeRemoveMessage": "{count, plural, one{Ta operacja usunie typ dokumentu z wybranego dokumentu.} other{Ta operacja usunie typ dokumentu z {count} wybranych dokumentów.}}",
|
||||||
"bulkEditStoragePathRemoveMessage": "{count, plural, one{This operation will remove the storage path from the selected document.} other{This operation will remove the storage path from {count} selected documents.}}",
|
"bulkEditStoragePathRemoveMessage": "{count, plural, one{Ta operacja usunie tagi z wybranego dokumentu.} other{Ta operacja usunie tagi z {count} wybranych dokumentów.}}",
|
||||||
"anyTag": "Any",
|
"anyTag": "Dowolny",
|
||||||
"@anyTag": {
|
"@anyTag": {
|
||||||
"description": "Label shown when any tag should be filtered"
|
"description": "Label shown when any tag should be filtered"
|
||||||
},
|
},
|
||||||
"allTags": "All",
|
"allTags": "Wszystkie",
|
||||||
"@allTags": {
|
"@allTags": {
|
||||||
"description": "Label shown when a document has to be assigned to all selected tags"
|
"description": "Label shown when a document has to be assigned to all selected tags"
|
||||||
},
|
},
|
||||||
"switchingAccountsPleaseWait": "Switching accounts. Please wait...",
|
"switchingAccountsPleaseWait": "Przełączanie kont. Proszę czekać...",
|
||||||
"@switchingAccountsPleaseWait": {
|
"@switchingAccountsPleaseWait": {
|
||||||
"description": "Message shown while switching accounts is in progress."
|
"description": "Message shown while switching accounts is in progress."
|
||||||
},
|
},
|
||||||
"testConnection": "Test connection",
|
"testConnection": "Test połączenia",
|
||||||
"@testConnection": {
|
"@testConnection": {
|
||||||
"description": "Button label shown on login page. Allows user to test whether the server is reachable or not."
|
"description": "Button label shown on login page. Allows user to test whether the server is reachable or not."
|
||||||
},
|
},
|
||||||
"accounts": "Accounts",
|
"accounts": "Konta",
|
||||||
"@accounts": {
|
"@accounts": {
|
||||||
"description": "Title of the account management dialog"
|
"description": "Title of the account management dialog"
|
||||||
},
|
},
|
||||||
"addAccount": "Add account",
|
"addAccount": "Dodaj konto",
|
||||||
"@addAccount": {
|
"@addAccount": {
|
||||||
"description": "Label of add account action"
|
"description": "Label of add account action"
|
||||||
},
|
},
|
||||||
"switchAccount": "Switch",
|
"switchAccount": "Przełącz",
|
||||||
"@switchAccount": {
|
"@switchAccount": {
|
||||||
"description": "Label for switch account action"
|
"description": "Label for switch account action"
|
||||||
},
|
},
|
||||||
"logout": "Logout",
|
"logout": "Wyloguj się",
|
||||||
"@logout": {
|
"@logout": {
|
||||||
"description": "Generic Logout label"
|
"description": "Generic Logout label"
|
||||||
},
|
},
|
||||||
"switchAccountTitle": "Switch account",
|
"switchAccountTitle": "Zmień konto",
|
||||||
"@switchAccountTitle": {
|
"@switchAccountTitle": {
|
||||||
"description": "Title of the dialog shown after adding an account, asking the user whether to switch to the newly added account or not."
|
"description": "Title of the dialog shown after adding an account, asking the user whether to switch to the newly added account or not."
|
||||||
},
|
},
|
||||||
"switchToNewAccount": "Do you want to switch to the new account? You can switch back at any time.",
|
"switchToNewAccount": "Czy chcesz przełączyć się na nowe konto? Możesz przełączyć się w dowolnym momencie.",
|
||||||
"@switchToNewAccount": {
|
"@switchToNewAccount": {
|
||||||
"description": "Content of the dialog shown after adding an account, asking the user whether to switch to the newly added account or not."
|
"description": "Content of the dialog shown after adding an account, asking the user whether to switch to the newly added account or not."
|
||||||
},
|
},
|
||||||
"sourceCode": "Source Code",
|
"sourceCode": "Kod źródłowy",
|
||||||
"findTheSourceCodeOn": "Find the source code on",
|
"findTheSourceCodeOn": "Znajdź kod źródłowy na",
|
||||||
"@findTheSourceCodeOn": {
|
"@findTheSourceCodeOn": {
|
||||||
"description": "Text before link to Paperless Mobile GitHub"
|
"description": "Text before link to Paperless Mobile GitHub"
|
||||||
},
|
},
|
||||||
"rememberDecision": "Remember my decision",
|
"rememberDecision": "Zapamiętaj mój wybór",
|
||||||
"defaultDownloadFileType": "Default Download File Type",
|
"defaultDownloadFileType": "Domyślny typ pliku do pobrania",
|
||||||
"@defaultDownloadFileType": {
|
"@defaultDownloadFileType": {
|
||||||
"description": "Label indicating the default filetype to download (one of archived, original and always ask)"
|
"description": "Label indicating the default filetype to download (one of archived, original and always ask)"
|
||||||
},
|
},
|
||||||
"defaultShareFileType": "Default Share File Type",
|
"defaultShareFileType": "Domyślny typ udostępnianego pliku",
|
||||||
"@defaultShareFileType": {
|
"@defaultShareFileType": {
|
||||||
"description": "Label indicating the default filetype to share (one of archived, original and always ask)"
|
"description": "Label indicating the default filetype to share (one of archived, original and always ask)"
|
||||||
},
|
},
|
||||||
"alwaysAsk": "Always ask",
|
"alwaysAsk": "Zawsze pytaj",
|
||||||
"@alwaysAsk": {
|
"@alwaysAsk": {
|
||||||
"description": "Option to choose when the app should always ask the user which filetype to use"
|
"description": "Option to choose when the app should always ask the user which filetype to use"
|
||||||
|
},
|
||||||
|
"disableMatching": "Do not tag documents automatically",
|
||||||
|
"@disableMatching": {
|
||||||
|
"description": "One of the options for automatic tagging of documents"
|
||||||
|
},
|
||||||
|
"none": "None",
|
||||||
|
"@none": {
|
||||||
|
"description": "One of available enum values of matching algorithm for tags"
|
||||||
|
},
|
||||||
|
"logInToExistingAccount": "Log in to existing account",
|
||||||
|
"@logInToExistingAccount": {
|
||||||
|
"description": "Title shown on login page if at least one user is already known to the app."
|
||||||
|
},
|
||||||
|
"print": "Print",
|
||||||
|
"@print": {
|
||||||
|
"description": "Tooltip for print button"
|
||||||
|
},
|
||||||
|
"managePermissions": "Manage permissions",
|
||||||
|
"@managePermissions": {
|
||||||
|
"description": "Button which leads user to manage permissions page"
|
||||||
|
},
|
||||||
|
"errorRetrievingServerVersion": "An error occurred trying to resolve the server version.",
|
||||||
|
"@errorRetrievingServerVersion": {
|
||||||
|
"description": "Message shown at the bottom of the settings page when the remote server version could not be resolved."
|
||||||
|
},
|
||||||
|
"resolvingServerVersion": "Resolving server version...",
|
||||||
|
"@resolvingServerVersion": {
|
||||||
|
"description": "Message shown while the app is loading the remote server version."
|
||||||
|
},
|
||||||
|
"goToLogin": "Go to login",
|
||||||
|
"@goToLogin": {
|
||||||
|
"description": "Label of the button shown on the login page to skip logging in to existing accounts and navigate user to login page"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -779,5 +779,37 @@
|
|||||||
"alwaysAsk": "Always ask",
|
"alwaysAsk": "Always ask",
|
||||||
"@alwaysAsk": {
|
"@alwaysAsk": {
|
||||||
"description": "Option to choose when the app should always ask the user which filetype to use"
|
"description": "Option to choose when the app should always ask the user which filetype to use"
|
||||||
|
},
|
||||||
|
"disableMatching": "Do not tag documents automatically",
|
||||||
|
"@disableMatching": {
|
||||||
|
"description": "One of the options for automatic tagging of documents"
|
||||||
|
},
|
||||||
|
"none": "None",
|
||||||
|
"@none": {
|
||||||
|
"description": "One of available enum values of matching algorithm for tags"
|
||||||
|
},
|
||||||
|
"logInToExistingAccount": "Log in to existing account",
|
||||||
|
"@logInToExistingAccount": {
|
||||||
|
"description": "Title shown on login page if at least one user is already known to the app."
|
||||||
|
},
|
||||||
|
"print": "Print",
|
||||||
|
"@print": {
|
||||||
|
"description": "Tooltip for print button"
|
||||||
|
},
|
||||||
|
"managePermissions": "Manage permissions",
|
||||||
|
"@managePermissions": {
|
||||||
|
"description": "Button which leads user to manage permissions page"
|
||||||
|
},
|
||||||
|
"errorRetrievingServerVersion": "An error occurred trying to resolve the server version.",
|
||||||
|
"@errorRetrievingServerVersion": {
|
||||||
|
"description": "Message shown at the bottom of the settings page when the remote server version could not be resolved."
|
||||||
|
},
|
||||||
|
"resolvingServerVersion": "Resolving server version...",
|
||||||
|
"@resolvingServerVersion": {
|
||||||
|
"description": "Message shown while the app is loading the remote server version."
|
||||||
|
},
|
||||||
|
"goToLogin": "Go to login",
|
||||||
|
"@goToLogin": {
|
||||||
|
"description": "Label of the button shown on the login page to skip logging in to existing accounts and navigate user to login page"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -779,5 +779,37 @@
|
|||||||
"alwaysAsk": "Always ask",
|
"alwaysAsk": "Always ask",
|
||||||
"@alwaysAsk": {
|
"@alwaysAsk": {
|
||||||
"description": "Option to choose when the app should always ask the user which filetype to use"
|
"description": "Option to choose when the app should always ask the user which filetype to use"
|
||||||
|
},
|
||||||
|
"disableMatching": "Do not tag documents automatically",
|
||||||
|
"@disableMatching": {
|
||||||
|
"description": "One of the options for automatic tagging of documents"
|
||||||
|
},
|
||||||
|
"none": "None",
|
||||||
|
"@none": {
|
||||||
|
"description": "One of available enum values of matching algorithm for tags"
|
||||||
|
},
|
||||||
|
"logInToExistingAccount": "Log in to existing account",
|
||||||
|
"@logInToExistingAccount": {
|
||||||
|
"description": "Title shown on login page if at least one user is already known to the app."
|
||||||
|
},
|
||||||
|
"print": "Print",
|
||||||
|
"@print": {
|
||||||
|
"description": "Tooltip for print button"
|
||||||
|
},
|
||||||
|
"managePermissions": "Manage permissions",
|
||||||
|
"@managePermissions": {
|
||||||
|
"description": "Button which leads user to manage permissions page"
|
||||||
|
},
|
||||||
|
"errorRetrievingServerVersion": "An error occurred trying to resolve the server version.",
|
||||||
|
"@errorRetrievingServerVersion": {
|
||||||
|
"description": "Message shown at the bottom of the settings page when the remote server version could not be resolved."
|
||||||
|
},
|
||||||
|
"resolvingServerVersion": "Resolving server version...",
|
||||||
|
"@resolvingServerVersion": {
|
||||||
|
"description": "Message shown while the app is loading the remote server version."
|
||||||
|
},
|
||||||
|
"goToLogin": "Go to login",
|
||||||
|
"@goToLogin": {
|
||||||
|
"description": "Label of the button shown on the login page to skip logging in to existing accounts and navigate user to login page"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -278,6 +278,7 @@ class _AuthenticationWrapperState extends State<AuthenticationWrapper> {
|
|||||||
titleString: S.of(context)!.connectToPaperless,
|
titleString: S.of(context)!.connectToPaperless,
|
||||||
submitText: S.of(context)!.signIn,
|
submitText: S.of(context)!.signIn,
|
||||||
onSubmit: _onLogin,
|
onSubmit: _onLogin,
|
||||||
|
showLocalAccounts: true,
|
||||||
),
|
),
|
||||||
requriresLocalAuthentication: () => const VerifyIdentityPage(),
|
requriresLocalAuthentication: () => const VerifyIdentityPage(),
|
||||||
authenticated: (localUserId, apiVersion) => HomeRoute(
|
authenticated: (localUserId, apiVersion) => HomeRoute(
|
||||||
|
|||||||
Reference in New Issue
Block a user