chore(#427): localize the log-share strings (App + BLE screens)

Route LogExport's Share tooltip, share subject, and file-logging-unavailable
snackbar through context.l10n instead of hardcoded English. Adds four keys to
app_en.arb (debugLog_shareLog, debugLog_openLogsFolder, debugLog_shareSubject,
debugLog_fileLoggingUnavailable) and regenerates all locales (English fallback
until translated). Resolves the deferred Gemini finding from #393.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
pull/436/head
Strycher 2 months ago
parent 7539465f70
commit 2565f0a880

@ -756,6 +756,10 @@
"debugLog_bleTitle": "BLE Debug Log",
"debugLog_copyLog": "Copy log",
"debugLog_clearLog": "Clear log",
"debugLog_shareLog": "Share logs",
"debugLog_openLogsFolder": "Open logs folder",
"debugLog_shareSubject": "Offband Meshcore logs",
"debugLog_fileLoggingUnavailable": "File logging is unavailable on this platform",
"debugLog_copied": "Debug log copied",
"debugLog_bleCopied": "BLE log copied",
"debugLog_noEntries": "No debug logs yet",

@ -2800,6 +2800,30 @@ abstract class AppLocalizations {
/// **'Clear log'**
String get debugLog_clearLog;
/// No description provided for @debugLog_shareLog.
///
/// In en, this message translates to:
/// **'Share logs'**
String get debugLog_shareLog;
/// No description provided for @debugLog_openLogsFolder.
///
/// In en, this message translates to:
/// **'Open logs folder'**
String get debugLog_openLogsFolder;
/// No description provided for @debugLog_shareSubject.
///
/// In en, this message translates to:
/// **'Offband Meshcore logs'**
String get debugLog_shareSubject;
/// No description provided for @debugLog_fileLoggingUnavailable.
///
/// In en, this message translates to:
/// **'File logging is unavailable on this platform'**
String get debugLog_fileLoggingUnavailable;
/// No description provided for @debugLog_copied.
///
/// In en, this message translates to:

@ -1520,6 +1520,19 @@ class AppLocalizationsBg extends AppLocalizations {
@override
String get debugLog_clearLog => 'Изчисти логовете';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Копирано лого за отстраняване на грешки';

@ -1517,6 +1517,19 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get debugLog_clearLog => 'Protokoll löschen';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Debug-Protokoll kopiert';

@ -1489,6 +1489,19 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get debugLog_clearLog => 'Clear log';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Debug log copied';

@ -1516,6 +1516,19 @@ class AppLocalizationsEs extends AppLocalizations {
@override
String get debugLog_clearLog => 'Borrar registro';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Registro de depuración copiado';

@ -1521,6 +1521,19 @@ class AppLocalizationsFr extends AppLocalizations {
@override
String get debugLog_clearLog => 'Effacer le journal';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Journal de débogage copié';

@ -1524,6 +1524,19 @@ class AppLocalizationsHu extends AppLocalizations {
@override
String get debugLog_clearLog => 'Jelzett napló';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Hibajelentő napló másolva';

@ -1518,6 +1518,19 @@ class AppLocalizationsIt extends AppLocalizations {
@override
String get debugLog_clearLog => 'Cancella log';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Log di debug copiato';

@ -1455,6 +1455,19 @@ class AppLocalizationsJa extends AppLocalizations {
@override
String get debugLog_clearLog => '詳細なログ';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'デバッグログをコピー';

@ -1450,6 +1450,19 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get debugLog_clearLog => '명확한 로그';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => '디버깅 로그 복사';

@ -1506,6 +1506,19 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get debugLog_clearLog => 'Log wissen';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Debuglog gekopieerd';

@ -1528,6 +1528,19 @@ class AppLocalizationsPl extends AppLocalizations {
@override
String get debugLog_clearLog => 'Wyczyść dziennik';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Skopiowano dziennik debugowania';

@ -1515,6 +1515,19 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get debugLog_clearLog => 'Limpar log';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Log de depuração copiado';

@ -1516,6 +1516,19 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get debugLog_clearLog => 'Очистить журнал';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Журнал отладки скопирован';

@ -1506,6 +1506,19 @@ class AppLocalizationsSk extends AppLocalizations {
@override
String get debugLog_clearLog => 'Vymažať záznam';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Záznam ladenia skopírovaný';

@ -1504,6 +1504,19 @@ class AppLocalizationsSl extends AppLocalizations {
@override
String get debugLog_clearLog => 'Briši log';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Beležka kopirana.';

@ -1498,6 +1498,19 @@ class AppLocalizationsSv extends AppLocalizations {
@override
String get debugLog_clearLog => 'Rensa logg';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Felsökningslogg kopierad';

@ -1510,6 +1510,19 @@ class AppLocalizationsUk extends AppLocalizations {
@override
String get debugLog_clearLog => 'Очистити журнал';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => 'Журнал налагодження скопійовано';

@ -1436,6 +1436,19 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get debugLog_clearLog => '清除日志';
@override
String get debugLog_shareLog => 'Share logs';
@override
String get debugLog_openLogsFolder => 'Open logs folder';
@override
String get debugLog_shareSubject => 'Offband Meshcore logs';
@override
String get debugLog_fileLoggingUnavailable =>
'File logging is unavailable on this platform';
@override
String get debugLog_copied => '调试日志已复制';

@ -24,7 +24,7 @@ class AppDebugLogScreen extends StatelessWidget {
centerTitle: true,
actions: [
IconButton(
tooltip: LogExport.tooltip,
tooltip: LogExport.tooltip(context),
icon: Icon(LogExport.icon),
onPressed: () => LogExport.shareLogs(context),
),

@ -35,7 +35,7 @@ class _BleDebugLogScreenState extends State<BleDebugLogScreen> {
title: AdaptiveAppBarTitle(context.l10n.debugLog_bleTitle),
actions: [
IconButton(
tooltip: LogExport.tooltip,
tooltip: LogExport.tooltip(context),
icon: Icon(LogExport.icon),
onPressed: () => LogExport.shareLogs(context),
),

@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:share_plus/share_plus.dart';
import 'package:url_launcher/url_launcher.dart';
import '../l10n/l10n.dart';
import '../services/file_log_service.dart';
/// Shared log export for the App-log and BLE-log screens (#393, #97).
@ -25,28 +26,25 @@ class LogExport {
? Icons.ios_share
: Icons.folder_open;
static String get tooltip => _isMobile ? 'Share logs' : 'Open logs folder';
static String tooltip(BuildContext context) => _isMobile
? context.l10n.debugLog_shareLog
: context.l10n.debugLog_openLogsFolder;
/// Flush the on-disk log and hand it to the OS share sheet (mobile), or open
/// the logs folder in the file manager (desktop). Shows a snackbar if file
/// logging is unavailable (e.g. web).
static Future<void> shareLogs(BuildContext context) async {
final messenger = ScaffoldMessenger.of(context);
final unavailableMessage = context.l10n.debugLog_fileLoggingUnavailable;
final subject = context.l10n.debugLog_shareSubject;
final file = await FileLogService.instance.flushAndGetActiveFile();
if (file == null) {
messenger.showSnackBar(
const SnackBar(
content: Text('File logging is unavailable on this platform'),
),
);
messenger.showSnackBar(SnackBar(content: Text(unavailableMessage)));
return;
}
if (_isMobile) {
await SharePlus.instance.share(
ShareParams(
subject: 'Offband Meshcore logs',
files: [XFile(file.path)],
),
ShareParams(subject: subject, files: [XFile(file.path)]),
);
} else {
final dir = FileLogService.instance.logDir;

Loading…
Cancel
Save

Powered by TurnKey Linux.