This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
"general": {
|
||||
"appTitle": "Umbrix",
|
||||
"reset": "Reset",
|
||||
"cancel": "Cancel",
|
||||
"toggle": {
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled"
|
||||
@@ -505,6 +506,15 @@
|
||||
},
|
||||
"bugReport": {
|
||||
"title": "Report a Problem",
|
||||
"description": "Send bug report to support with automatic logs"
|
||||
"description": "Describe the problem you encountered. We automatically collect diagnostic information (logs, connection status, delay).",
|
||||
"pleaseDescribe": "Please describe the problem",
|
||||
"problemDescription": "Problem description *",
|
||||
"hint": "For example: \"Cannot connect to server, timeout error\"",
|
||||
"helper": "The more details, the better",
|
||||
"includeLogs": "Include logs",
|
||||
"logsHelper": "Send log files for diagnostics",
|
||||
"privacyNote": "We do not collect personal data. Only technical information.",
|
||||
"send": "Send",
|
||||
"sending": "Sending..."
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
"general": {
|
||||
"appTitle": "Umbrix",
|
||||
"reset": "Сброс",
|
||||
"cancel": "Отмена",
|
||||
"toggle": {
|
||||
"enabled": "Включено",
|
||||
"disabled": "Отключено"
|
||||
@@ -505,6 +506,15 @@
|
||||
},
|
||||
"bugReport": {
|
||||
"title": "Сообщить о проблеме",
|
||||
"description": "Отправить багрепорт в техподдержку с автоматическими логами"
|
||||
"description": "Опишите проблему, с которой вы столкнулись. Мы автоматически соберём диагностическую информацию (логи, статус подключения, задержку).",
|
||||
"pleaseDescribe": "Пожалуйста, опишите проблему",
|
||||
"problemDescription": "Описание проблемы *",
|
||||
"hint": "Например: \"Не могу подключиться к серверу, ошибка таймаута\"",
|
||||
"helper": "Чем подробнее, тем лучше",
|
||||
"includeLogs": "Включить логи",
|
||||
"logsHelper": "Отправить файлы логов для диагностики",
|
||||
"privacyNote": "Мы не собираем личные данные. Только техническая информация.",
|
||||
"send": "Отправить",
|
||||
"sending": "Отправка..."
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,7 @@ class BugReportDialog extends HookConsumerWidget {
|
||||
|
||||
Future<void> sendReport() async {
|
||||
if (descriptionController.text.trim().isEmpty) {
|
||||
CustomToast.error('Пожалуйста, опишите проблему').show(context);
|
||||
CustomToast.error(t.bugReport.pleaseDescribe).show(context);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -60,17 +60,18 @@ class BugReportDialog extends HookConsumerWidget {
|
||||
color: theme.colorScheme.error,
|
||||
),
|
||||
const Gap(12),
|
||||
const Text('Сообщить о проблеме'),
|
||||
Text(t.bugReport.title),
|
||||
],
|
||||
),
|
||||
content: SizedBox(
|
||||
width: 500,
|
||||
child: Column(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Опишите проблему, с которой вы столкнулись. Мы автоматически соберём диагностическую информацию (логи, статус подключения, задержку).',
|
||||
t.bugReport.description,
|
||||
style: theme.textTheme.bodyMedium?.copyWith(
|
||||
color: theme.colorScheme.onSurfaceVariant,
|
||||
),
|
||||
@@ -81,17 +82,17 @@ class BugReportDialog extends HookConsumerWidget {
|
||||
maxLines: 6,
|
||||
enabled: !isSending.value,
|
||||
decoration: InputDecoration(
|
||||
labelText: 'Описание проблемы *',
|
||||
hintText: 'Например: "Не могу подключиться к серверу, ошибка таймаута"',
|
||||
labelText: t.bugReport.problemDescription,
|
||||
hintText: t.bugReport.hint,
|
||||
border: const OutlineInputBorder(),
|
||||
helperText: 'Чем подробнее, тем лучше',
|
||||
helperText: t.bugReport.helper,
|
||||
),
|
||||
),
|
||||
const Gap(16),
|
||||
CheckboxListTile(
|
||||
title: const Text('Включить логи'),
|
||||
title: Text(t.bugReport.includeLogs),
|
||||
subtitle: Text(
|
||||
'Отправить файлы логов для диагностики',
|
||||
t.bugReport.logsHelper,
|
||||
style: theme.textTheme.bodySmall,
|
||||
),
|
||||
value: includeLogs.value,
|
||||
@@ -120,7 +121,7 @@ class BugReportDialog extends HookConsumerWidget {
|
||||
const Gap(8),
|
||||
Expanded(
|
||||
child: Text(
|
||||
'Мы не собираем личные данные. Только техническая информация.',
|
||||
t.bugReport.privacyNote,
|
||||
style: theme.textTheme.bodySmall?.copyWith(
|
||||
color: theme.colorScheme.onSurface,
|
||||
),
|
||||
@@ -131,11 +132,12 @@ class BugReportDialog extends HookConsumerWidget {
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: isSending.value ? null : () => Navigator.of(context).pop(),
|
||||
child: const Text('Отмена'),
|
||||
child: Text(t.general.cancel),
|
||||
),
|
||||
FilledButton.icon(
|
||||
onPressed: isSending.value ? null : sendReport,
|
||||
@@ -146,7 +148,7 @@ class BugReportDialog extends HookConsumerWidget {
|
||||
child: CircularProgressIndicator(strokeWidth: 2),
|
||||
)
|
||||
: const Icon(FluentIcons.send_20_regular),
|
||||
label: Text(isSending.value ? 'Отправка...' : 'Отправить'),
|
||||
label: Text(isSending.value ? t.bugReport.sending : t.bugReport.send),
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user