mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-06-14 22:55:12 +10:00
feat: integrate link handling in chat screen with linkify support
- Added flutter_linkify package to auto-detect and linkify URLs in chat messages. - Implemented LinkHandler class to manage link tap confirmations and URL launching. - Updated chat_screen.dart to use Linkify for displaying message text with links. - Registered url_launcher plugin for handling URL launches across platforms. - Updated pubspec.yaml and pubspec.lock to include new dependencies. - Cleaned up untranslated.json by removing unused translations.
This commit is contained in:
@@ -67,5 +67,14 @@
|
|||||||
<action android:name="android.intent.action.PROCESS_TEXT"/>
|
<action android:name="android.intent.action.PROCESS_TEXT"/>
|
||||||
<data android:mimeType="text/plain"/>
|
<data android:mimeType="text/plain"/>
|
||||||
</intent>
|
</intent>
|
||||||
|
<!-- URL launcher intents for opening links -->
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.intent.action.VIEW"/>
|
||||||
|
<data android:scheme="http"/>
|
||||||
|
</intent>
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.intent.action.VIEW"/>
|
||||||
|
<data android:scheme="https"/>
|
||||||
|
</intent>
|
||||||
</queries>
|
</queries>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
@@ -55,5 +55,10 @@
|
|||||||
<string>This app uses Bluetooth to communicate with MeshCore devices.</string>
|
<string>This app uses Bluetooth to communicate with MeshCore devices.</string>
|
||||||
<key>NSCameraUsageDescription</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
<string>This app uses the camera to scan QR codes for joining communities.</string>
|
<string>This app uses the camera to scan QR codes for joining communities.</string>
|
||||||
|
<key>LSApplicationQueriesSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>http</string>
|
||||||
|
<string>https</string>
|
||||||
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -0,0 +1,76 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
import '../l10n/l10n.dart';
|
||||||
|
|
||||||
|
class LinkHandler {
|
||||||
|
static Future<void> handleLinkTap(BuildContext context, String url) async {
|
||||||
|
// Show confirmation dialog
|
||||||
|
final shouldOpen = await showDialog<bool>(
|
||||||
|
context: context,
|
||||||
|
builder: (context) => AlertDialog(
|
||||||
|
title: Text(context.l10n.chat_openLink),
|
||||||
|
content: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
context.l10n.chat_openLinkConfirmation,
|
||||||
|
style: const TextStyle(fontSize: 14),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
Container(
|
||||||
|
padding: const EdgeInsets.all(12),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Theme.of(context).colorScheme.surfaceContainerHighest,
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
),
|
||||||
|
child: SelectableText(
|
||||||
|
url,
|
||||||
|
style: const TextStyle(
|
||||||
|
fontSize: 12,
|
||||||
|
fontFamily: 'monospace',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
actions: [
|
||||||
|
TextButton(
|
||||||
|
onPressed: () => Navigator.pop(context, false),
|
||||||
|
child: Text(context.l10n.common_cancel),
|
||||||
|
),
|
||||||
|
FilledButton(
|
||||||
|
onPressed: () => Navigator.pop(context, true),
|
||||||
|
child: Text(context.l10n.chat_open),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (shouldOpen != true) return;
|
||||||
|
|
||||||
|
// Launch URL
|
||||||
|
try {
|
||||||
|
final uri = Uri.parse(url);
|
||||||
|
if (!await launchUrl(uri, mode: LaunchMode.externalApplication)) {
|
||||||
|
if (context.mounted) {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
content: Text(context.l10n.chat_couldNotOpenLink(url)),
|
||||||
|
backgroundColor: Colors.red,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
if (context.mounted) {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
content: Text(context.l10n.chat_invalidLink),
|
||||||
|
backgroundColor: Colors.red,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Отваряне на връзката?",
|
||||||
|
"chat_openLinkConfirmation": "Искате ли да отворите тази връзка в браузъра си?",
|
||||||
|
"chat_open": "Отвори",
|
||||||
|
"chat_couldNotOpenLink": "Не можа да се отвори връзката: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Невалиден формат на връзката",
|
||||||
"map_title": "Карта на възлите",
|
"map_title": "Карта на възлите",
|
||||||
"map_noNodesWithLocation": "Няма възли с данни за местоположение.",
|
"map_noNodesWithLocation": "Няма възли с данни за местоположение.",
|
||||||
"map_nodesNeedGps": "Възлагат се възлозите да споделят техните GPS координати,\nза да се появят на картата.",
|
"map_nodesNeedGps": "Възлагат се възлозите да споделят техните GPS координати,\nза да се появят на картата.",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "Това ще изтрие също {count} канал(а) и техните съобщения.",
|
"community_deleteChannelsWarning": "Това ще изтрие също {count} канал(а) и техните съобщения.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Остави общността \"{name}\"",
|
"community_deleted": "Остави общността \"{name}\"",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "Общ хаштаг (всеки може да се присъедини)",
|
"community_regularHashtagDesc": "Общ хаштаг (всеки може да се присъедини)",
|
||||||
"community_communityHashtag": "Общностен хаштаг",
|
"community_communityHashtag": "Общностен хаштаг",
|
||||||
"community_communityHashtagDesc": "Само за членове на общността",
|
"community_communityHashtagDesc": "Само за членове на общността",
|
||||||
"community_forCommunity": "За {name}"
|
"community_forCommunity": "За {name}",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_regenerateSecretConfirm": "Регенерация на секретния ключ за \"{name}\"? Всички членове ще трябва да сканират новия QR код, за да продължат комуникацията.",
|
||||||
|
"community_secretRegenerated": "Секретно презареждане за \"{name}\"",
|
||||||
|
"community_regenerateSecret": "Регенерейрай секрет",
|
||||||
|
"community_regenerate": "Регенерация",
|
||||||
|
"community_updateSecret": "Актуализирай тайна",
|
||||||
|
"community_scanToUpdateSecret": "Сканьорвайте новия QR код, за да актуализирате секрета за \"{name}\"",
|
||||||
|
"community_secretUpdated": "Секретно обновено за \"{name}\""
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Link öffnen?",
|
||||||
|
"chat_openLinkConfirmation": "Möchten Sie diesen Link in Ihrem Browser öffnen?",
|
||||||
|
"chat_open": "Öffnen",
|
||||||
|
"chat_couldNotOpenLink": "Link konnte nicht geöffnet werden: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Ungültiges Link-Format",
|
||||||
"map_title": "Karte",
|
"map_title": "Karte",
|
||||||
"map_noNodesWithLocation": "Keine Knoten mit Standortdaten",
|
"map_noNodesWithLocation": "Keine Knoten mit Standortdaten",
|
||||||
"map_nodesNeedGps": "Knoten müssen ihre GPS-Koordinaten teilen,\num auf der Karte zu erscheinen.",
|
"map_nodesNeedGps": "Knoten müssen ihre GPS-Koordinaten teilen,\num auf der Karte zu erscheinen.",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "Dies löscht auch {count} Kanal/Kanäle und deren Nachrichten.",
|
"community_deleteChannelsWarning": "Dies löscht auch {count} Kanal/Kanäle und deren Nachrichten.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Community \"{name}\" verlassen",
|
"community_deleted": "Community \"{name}\" verlassen",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "Öffentliches Hashtag (jeder kann teilnehmen)",
|
"community_regularHashtagDesc": "Öffentliches Hashtag (jeder kann teilnehmen)",
|
||||||
"community_communityHashtagDesc": "Nur für Mitglieder der Community",
|
"community_communityHashtagDesc": "Nur für Mitglieder der Community",
|
||||||
"community_forCommunity": "Für {name}",
|
"community_forCommunity": "Für {name}",
|
||||||
"community_communityHashtag": "Community Hashtag"
|
"community_communityHashtag": "Community Hashtag",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_regenerate": "Neu generieren",
|
||||||
|
"community_secretRegenerated": "Geheime Wiederherstellung für \"{name}\" erfolgreich",
|
||||||
|
"community_regenerateSecretConfirm": "Nehmen Sie den geheimen Schlüssel für \"{name}\" neu auf? Alle Mitglieder müssen den neuen QR-Code scannen, um die Kommunikation fortzusetzen.",
|
||||||
|
"community_regenerateSecret": "Neu generieren Sie das Geheimnis",
|
||||||
|
"community_secretUpdated": "Geheime für \"{name}\" aktualisiert",
|
||||||
|
"community_scanToUpdateSecret": "Scannen Sie den neuen QR-Code, um das Geheimnis für \"{name}\" zu aktualisieren.",
|
||||||
|
"community_updateSecret": "Aktualisieren Sie das Geheimnis"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -550,6 +550,16 @@
|
|||||||
"count": {"type": "int"}
|
"count": {"type": "int"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Open Link?",
|
||||||
|
"chat_openLinkConfirmation": "Do you want to open this link in your browser?",
|
||||||
|
"chat_open": "Open",
|
||||||
|
"chat_couldNotOpenLink": "Could not open link: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {"type": "String"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Invalid link format",
|
||||||
|
|
||||||
"map_title": "Node Map",
|
"map_title": "Node Map",
|
||||||
"map_noNodesWithLocation": "No nodes with location data",
|
"map_noNodesWithLocation": "No nodes with location data",
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "¿Abrir enlace?",
|
||||||
|
"chat_openLinkConfirmation": "¿Quiere abrir este enlace en su navegador?",
|
||||||
|
"chat_open": "Abrir",
|
||||||
|
"chat_couldNotOpenLink": "No se pudo abrir el enlace: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Formato de enlace no válido",
|
||||||
"map_title": "Mapa de Nodos",
|
"map_title": "Mapa de Nodos",
|
||||||
"map_noNodesWithLocation": "No hay nodos con datos de ubicación",
|
"map_noNodesWithLocation": "No hay nodos con datos de ubicación",
|
||||||
"map_nodesNeedGps": "Los nodos necesitan compartir sus coordenadas GPS\npara aparecer en el mapa",
|
"map_nodesNeedGps": "Los nodos necesitan compartir sus coordenadas GPS\npara aparecer en el mapa",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "Esto también eliminará {count} canal(es) y sus mensajes.",
|
"community_deleteChannelsWarning": "Esto también eliminará {count} canal(es) y sus mensajes.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Has salido de la comunidad \"{name}\"",
|
"community_deleted": "Has salido de la comunidad \"{name}\"",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "Hashtag público (cualquiera puede unirse)",
|
"community_regularHashtagDesc": "Hashtag público (cualquiera puede unirse)",
|
||||||
"community_communityHashtag": "Hashtag de la Comunidad",
|
"community_communityHashtag": "Hashtag de la Comunidad",
|
||||||
"community_communityHashtagDesc": "Exclusivo para miembros de la comunidad",
|
"community_communityHashtagDesc": "Exclusivo para miembros de la comunidad",
|
||||||
"community_forCommunity": "Para {name}"
|
"community_forCommunity": "Para {name}",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_regenerateSecret": "Regenerar Contraseña Secreta",
|
||||||
|
"community_regenerateSecretConfirm": "Regenerar la clave secreta para \"{name}\"? Todos los miembros deberán escanear el nuevo código QR para seguir comunicándose.",
|
||||||
|
"community_secretRegenerated": "Código secreto regenerado para \"{name}\"",
|
||||||
|
"community_regenerate": "Regenerar",
|
||||||
|
"community_secretUpdated": "Confidencialidad actualizada para \"{name}\"",
|
||||||
|
"community_scanToUpdateSecret": "Escanear el nuevo código QR para actualizar el secreto de \"{name}\"",
|
||||||
|
"community_updateSecret": "Actualizar Contraseña"
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Ouvrir le lien ?",
|
||||||
|
"chat_openLinkConfirmation": "Voulez-vous ouvrir ce lien dans votre navigateur ?",
|
||||||
|
"chat_open": "Ouvrir",
|
||||||
|
"chat_couldNotOpenLink": "Impossible d'ouvrir le lien : {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Format de lien invalide",
|
||||||
"map_title": "Carte des nœuds",
|
"map_title": "Carte des nœuds",
|
||||||
"map_noNodesWithLocation": "Aucun nœud avec des données de localisation",
|
"map_noNodesWithLocation": "Aucun nœud avec des données de localisation",
|
||||||
"map_nodesNeedGps": "Les nœuds doivent partager leurs coordonnées GPS\npour apparaître sur la carte.",
|
"map_nodesNeedGps": "Les nœuds doivent partager leurs coordonnées GPS\npour apparaître sur la carte.",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "Cela supprimera également {count} canal/canaux et leurs messages.",
|
"community_deleteChannelsWarning": "Cela supprimera également {count} canal/canaux et leurs messages.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Communauté \"{name}\" quittée",
|
"community_deleted": "Communauté \"{name}\" quittée",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "Hashtag public (tout le monde peut rejoindre)",
|
"community_regularHashtagDesc": "Hashtag public (tout le monde peut rejoindre)",
|
||||||
"community_communityHashtag": "Hashtag de la communauté",
|
"community_communityHashtag": "Hashtag de la communauté",
|
||||||
"community_communityHashtagDesc": "Exclusif aux membres de la communauté",
|
"community_communityHashtagDesc": "Exclusif aux membres de la communauté",
|
||||||
"community_forCommunity": "Pour {name}"
|
"community_forCommunity": "Pour {name}",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_regenerateSecret": "Régénérer le secret",
|
||||||
|
"community_regenerateSecretConfirm": "Régénérer la clé secrète pour \"{name}\" ? Tous les membres devront scanner le nouveau code QR pour continuer à communiquer.",
|
||||||
|
"community_regenerate": "Régénérer",
|
||||||
|
"community_secretRegenerated": "Mot de passe secret régénéré pour \"{name}\"",
|
||||||
|
"community_scanToUpdateSecret": "Scanner le nouveau code QR pour mettre à jour le mot de passe pour \"{name}\"",
|
||||||
|
"community_updateSecret": "Mettre à jour le secret",
|
||||||
|
"community_secretUpdated": "Modification secrète mise à jour pour \"{name}\""
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Aprire il link?",
|
||||||
|
"chat_openLinkConfirmation": "Vuoi aprire questo link nel tuo browser?",
|
||||||
|
"chat_open": "Apri",
|
||||||
|
"chat_couldNotOpenLink": "Impossibile aprire il link: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Formato di link non valido",
|
||||||
"map_title": "Mappa Nodi",
|
"map_title": "Mappa Nodi",
|
||||||
"map_noNodesWithLocation": "Nessun nodo con dati di posizione",
|
"map_noNodesWithLocation": "Nessun nodo con dati di posizione",
|
||||||
"map_nodesNeedGps": "I nodi devono condividere le loro coordinate GPS\nper apparire sulla mappa",
|
"map_nodesNeedGps": "I nodi devono condividere le loro coordinate GPS\nper apparire sulla mappa",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "Questo eliminerà anche {count} canale/i e i loro messaggi.",
|
"community_deleteChannelsWarning": "Questo eliminerà anche {count} canale/i e i loro messaggi.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Hai lasciato la comunità \"{name}\"",
|
"community_deleted": "Hai lasciato la comunità \"{name}\"",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "Hashtag pubblico (chiunque può unirsi)",
|
"community_regularHashtagDesc": "Hashtag pubblico (chiunque può unirsi)",
|
||||||
"community_communityHashtag": "Hashtag della Comunità",
|
"community_communityHashtag": "Hashtag della Comunità",
|
||||||
"community_communityHashtagDesc": "Visibile solo ai membri della comunità",
|
"community_communityHashtagDesc": "Visibile solo ai membri della comunità",
|
||||||
"community_forCommunity": "Per {name}"
|
"community_forCommunity": "Per {name}",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_regenerateSecretConfirm": "Regenera la chiave segreta per \"{name}\"? Tutti i membri dovranno scansionare il nuovo codice QR per continuare a comunicare.",
|
||||||
|
"community_regenerateSecret": "Ri genera la chiave segreta",
|
||||||
|
"community_regenerate": "Rigenera",
|
||||||
|
"community_secretRegenerated": "Codice segreto rigenerato per \"{name}\"",
|
||||||
|
"community_updateSecret": "Aggiorna Segreto",
|
||||||
|
"community_secretUpdated": "Segreto aggiornato per \"{name}\"",
|
||||||
|
"community_scanToUpdateSecret": "Scansiona il nuovo codice QR per aggiornare il segreto di \"{name}\""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2226,6 +2226,36 @@ abstract class AppLocalizations {
|
|||||||
/// **'Unread: {count}'**
|
/// **'Unread: {count}'**
|
||||||
String chat_unread(int count);
|
String chat_unread(int count);
|
||||||
|
|
||||||
|
/// No description provided for @chat_openLink.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Open Link?'**
|
||||||
|
String get chat_openLink;
|
||||||
|
|
||||||
|
/// No description provided for @chat_openLinkConfirmation.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Do you want to open this link in your browser?'**
|
||||||
|
String get chat_openLinkConfirmation;
|
||||||
|
|
||||||
|
/// No description provided for @chat_open.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Open'**
|
||||||
|
String get chat_open;
|
||||||
|
|
||||||
|
/// No description provided for @chat_couldNotOpenLink.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Could not open link: {url}'**
|
||||||
|
String chat_couldNotOpenLink(String url);
|
||||||
|
|
||||||
|
/// No description provided for @chat_invalidLink.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Invalid link format'**
|
||||||
|
String get chat_invalidLink;
|
||||||
|
|
||||||
/// No description provided for @map_title.
|
/// No description provided for @map_title.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
|
|||||||
@@ -1207,6 +1207,24 @@ class AppLocalizationsBg extends AppLocalizations {
|
|||||||
return 'Непрочетени: $count';
|
return 'Непрочетени: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Отваряне на връзката?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Искате ли да отворите тази връзка в браузъра си?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Отвори';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Не можа да се отвори връзката: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Невалиден формат на връзката';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Карта на възлите';
|
String get map_title => 'Карта на възлите';
|
||||||
|
|
||||||
@@ -2567,32 +2585,32 @@ class AppLocalizationsBg extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Регенерейрай секрет';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Регенерация на секретния ключ за \"$name\"? Всички членове ще трябва да сканират новия QR код, за да продължат комуникацията.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Регенерация';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Секретно презареждане за \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Актуализирай тайна';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Секретно обновено за \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Сканьорвайте новия QR код, за да актуализирате секрета за \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1206,6 +1206,24 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
return 'Ungelesen: $count';
|
return 'Ungelesen: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Link öffnen?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Möchten Sie diesen Link in Ihrem Browser öffnen?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Öffnen';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Link konnte nicht geöffnet werden: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Ungültiges Link-Format';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Karte';
|
String get map_title => 'Karte';
|
||||||
|
|
||||||
@@ -2570,32 +2588,32 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Neu generieren Sie das Geheimnis';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Nehmen Sie den geheimen Schlüssel für \"$name\" neu auf? Alle Mitglieder müssen den neuen QR-Code scannen, um die Kommunikation fortzusetzen.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Neu generieren';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Geheime Wiederherstellung für \"$name\" erfolgreich';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Aktualisieren Sie das Geheimnis';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Geheime für \"$name\" aktualisiert';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Scannen Sie den neuen QR-Code, um das Geheimnis für \"$name\" zu aktualisieren.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1186,6 +1186,24 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
return 'Unread: $count';
|
return 'Unread: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Open Link?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Do you want to open this link in your browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Open';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Could not open link: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Invalid link format';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Node Map';
|
String get map_title => 'Node Map';
|
||||||
|
|
||||||
|
|||||||
@@ -1204,6 +1204,24 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
return 'Sin leer: $count';
|
return 'Sin leer: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => '¿Abrir enlace?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'¿Quiere abrir este enlace en su navegador?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Abrir';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'No se pudo abrir el enlace: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Formato de enlace no válido';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Mapa de Nodos';
|
String get map_title => 'Mapa de Nodos';
|
||||||
|
|
||||||
@@ -2565,32 +2583,32 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Regenerar Contraseña Secreta';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Regenerar la clave secreta para \"$name\"? Todos los miembros deberán escanear el nuevo código QR para seguir comunicándose.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Regenerar';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Código secreto regenerado para \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Actualizar Contraseña';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Confidencialidad actualizada para \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Escanear el nuevo código QR para actualizar el secreto de \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1209,6 +1209,24 @@ class AppLocalizationsFr extends AppLocalizations {
|
|||||||
return 'Non lu : $count';
|
return 'Non lu : $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Ouvrir le lien ?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Voulez-vous ouvrir ce lien dans votre navigateur ?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Ouvrir';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Impossible d\'ouvrir le lien : $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Format de lien invalide';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Carte des nœuds';
|
String get map_title => 'Carte des nœuds';
|
||||||
|
|
||||||
@@ -2581,32 +2599,32 @@ class AppLocalizationsFr extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Régénérer le secret';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Régénérer la clé secrète pour \"$name\" ? Tous les membres devront scanner le nouveau code QR pour continuer à communiquer.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Régénérer';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Mot de passe secret régénéré pour \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Mettre à jour le secret';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Modification secrète mise à jour pour \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Scanner le nouveau code QR pour mettre à jour le mot de passe pour \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1203,6 +1203,24 @@ class AppLocalizationsIt extends AppLocalizations {
|
|||||||
return 'Non letti: $count';
|
return 'Non letti: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Aprire il link?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Vuoi aprire questo link nel tuo browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Apri';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Impossibile aprire il link: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Formato di link non valido';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Mappa Nodi';
|
String get map_title => 'Mappa Nodi';
|
||||||
|
|
||||||
@@ -2565,32 +2583,32 @@ class AppLocalizationsIt extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Ri genera la chiave segreta';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Regenera la chiave segreta per \"$name\"? Tutti i membri dovranno scansionare il nuovo codice QR per continuare a comunicare.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Rigenera';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Codice segreto rigenerato per \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Aggiorna Segreto';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Segreto aggiornato per \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Scansiona il nuovo codice QR per aggiornare il segreto di \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1199,6 +1199,24 @@ class AppLocalizationsNl extends AppLocalizations {
|
|||||||
return 'Nieuw: $count';
|
return 'Nieuw: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Link openen?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Wilt u deze link in uw browser openen?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Openen';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Kan link niet openen: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Ongeldig linkformaat';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Node Map';
|
String get map_title => 'Node Map';
|
||||||
|
|
||||||
@@ -2556,32 +2574,32 @@ class AppLocalizationsNl extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Regeneer Geheimwoord';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Regeneere de geheime sleutel voor \"$name\"? Alle leden moeten de nieuwe QR-code scannen om verder te communiceren.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Regeneer';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Geheim hersteld voor \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Bijwerken Geheime';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Geheim gewijzigd voor \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Scan de nieuwe QR-code om het geheim voor \"$name\" bij te werken';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1205,6 +1205,24 @@ class AppLocalizationsPl extends AppLocalizations {
|
|||||||
return 'Niezgłoszone: $count';
|
return 'Niezgłoszone: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Otworzyć link?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Czy chcesz otworzyć ten link w przeglądarce?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Otwórz';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Nie można otworzyć linku: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Nieprawidłowy format linku';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Mapa węzłów';
|
String get map_title => 'Mapa węzłów';
|
||||||
|
|
||||||
@@ -2564,32 +2582,32 @@ class AppLocalizationsPl extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Zregeneruj sekret';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Regeneruj tajny klucz dla \"$name\"? Wszyscy członkowie będą musieli zeskanować nowy kod QR, aby kontynuować komunikację.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Zregeneruj';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Hasło ponownie wygenerowane dla \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Zaktualizuj tajny klucz';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Hasło zaktualizowane dla \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Skanuj nowy kod QR, aby zaktualizować sekret dla \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1204,6 +1204,24 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||||||
return 'Não lido: $count';
|
return 'Não lido: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Abrir link?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Deseja abrir este link no seu navegador?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Abrir';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Não foi possível abrir o link: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Formato de link inválido';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Mapa de Nós';
|
String get map_title => 'Mapa de Nós';
|
||||||
|
|
||||||
@@ -2567,32 +2585,32 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Regenerar Senha Segura';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Regenerar a chave secreta para \"$name\"? Todos os membros precisarão escanear o novo código QR para continuar a comunicação.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Regenerar';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Senha secreta regenerada para \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Atualizar Segredo';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Segredo atualizado para \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Scanar o novo código QR para atualizar o segredo para \"$name\"\n\n\n+++++';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1200,6 +1200,24 @@ class AppLocalizationsSk extends AppLocalizations {
|
|||||||
return 'Nezriadené: $count';
|
return 'Nezriadené: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Otvoriť odkaz?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Chcete otvoriť tento odkaz v prehliadači?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Otvoriť';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Nepodarilo sa otvoriť odkaz: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Neplatný formát odkazu';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Mapa uzlov';
|
String get map_title => 'Mapa uzlov';
|
||||||
|
|
||||||
@@ -2553,32 +2571,32 @@ class AppLocalizationsSk extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Zobraziť nový tajný kód';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Znovu vygenerovať tajný kľúč pre \"$name\"? Všetci členovia budú musieť skanovať nový QR kód, aby mohli nadviazať komunikáciu.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Znovu vygenerovať';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Záznam pre \"$name\" bol regenerovaný tajne';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Aktualizovať tajné heslo';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Zmena tajnej slova pre \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Skáňte nový QR kód na aktualizáciu tajného hesla pre \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1197,6 +1197,24 @@ class AppLocalizationsSl extends AppLocalizations {
|
|||||||
return 'Nerešeno: $count';
|
return 'Nerešeno: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Odpreti povezavo?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Ali želite odpreti to povezavo v brskalniku?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Odpri';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Povezave ni bilo mogoče odpreti: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Neveljavna oblika povezave';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Mapa omrežja';
|
String get map_title => 'Mapa omrežja';
|
||||||
|
|
||||||
@@ -2557,32 +2575,32 @@ class AppLocalizationsSl extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Preberi nov tajni kôd';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Preberite novo tajno geslo za \"$name\"? Vsi članici morajo prebrati novo QR kodo, da lahko nadaljujejo s komunikacijo.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Preberi znova';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Tajna za \"$name\" ponovno ustvarjena';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Ažurniraj tajno';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Skrivnostno spremembo za \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Skeniraj nov kôd QR za posodabljanje tajne za $name';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1192,6 +1192,24 @@ class AppLocalizationsSv extends AppLocalizations {
|
|||||||
return 'Olästa: $count';
|
return 'Olästa: $count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => 'Öppna länk?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation =>
|
||||||
|
'Vill du öppna den här länken i din webbläsare?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => 'Öppna';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return 'Kunde inte öppna länken: $url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => 'Ogiltigt länkformat';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => 'Nodkarta';
|
String get map_title => 'Nodkarta';
|
||||||
|
|
||||||
@@ -2541,32 +2559,32 @@ class AppLocalizationsSv extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => 'Regenerera hemlig kod';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return 'Regenerera den hemliga nyckeln för \"$name\"? Alla medlemmar måste scanna den nya QR-koden för att fortsätta kommunicera.';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => 'Regenerera';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return 'Lösenord återskapad för \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => 'Uppdatera hemlighet';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return 'Hemlighet uppdaterad för \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return 'Skanna den nya QR-koden för att uppdatera hemligheten för \"$name\"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1148,6 +1148,23 @@ class AppLocalizationsZh extends AppLocalizations {
|
|||||||
return '未读:$count';
|
return '未读:$count';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLink => '打开链接?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_openLinkConfirmation => '您想在浏览器中打开此链接吗?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_open => '打开';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String chat_couldNotOpenLink(String url) {
|
||||||
|
return '无法打开链接:$url';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get chat_invalidLink => '链接格式无效';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get map_title => '节点地图';
|
String get map_title => '节点地图';
|
||||||
|
|
||||||
@@ -2425,32 +2442,32 @@ class AppLocalizationsZh extends AppLocalizations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerateSecret => 'Regenerate Secret';
|
String get community_regenerateSecret => '重新生成密钥';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_regenerateSecretConfirm(String name) {
|
String community_regenerateSecretConfirm(String name) {
|
||||||
return 'Regenerate the secret key for \"$name\"? All members will need to scan the new QR code to continue communicating.';
|
return '重新生成“$name”的秘密密钥?所有成员将需要扫描新的二维码才能继续沟通。';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_regenerate => 'Regenerate';
|
String get community_regenerate => '重新生成';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretRegenerated(String name) {
|
String community_secretRegenerated(String name) {
|
||||||
return 'Secret regenerated for \"$name\"';
|
return '密码已重置为“$name”';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get community_updateSecret => 'Update Secret';
|
String get community_updateSecret => '更新密钥';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_secretUpdated(String name) {
|
String community_secretUpdated(String name) {
|
||||||
return 'Secret updated for \"$name\"';
|
return '密码已更新为“$name”';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String community_scanToUpdateSecret(String name) {
|
String community_scanToUpdateSecret(String name) {
|
||||||
return 'Scan the new QR code to update the secret for \"$name\"';
|
return '扫描新的二维码更新\"$name\"的密码';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Link openen?",
|
||||||
|
"chat_openLinkConfirmation": "Wilt u deze link in uw browser openen?",
|
||||||
|
"chat_open": "Openen",
|
||||||
|
"chat_couldNotOpenLink": "Kan link niet openen: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Ongeldig linkformaat",
|
||||||
"map_title": "Node Map",
|
"map_title": "Node Map",
|
||||||
"map_noNodesWithLocation": "Geen nodes met locatiegegevens",
|
"map_noNodesWithLocation": "Geen nodes met locatiegegevens",
|
||||||
"map_nodesNeedGps": "Nodes moeten hun GPS-coördinaten delen\nom op de kaart te verschijnen",
|
"map_nodesNeedGps": "Nodes moeten hun GPS-coördinaten delen\nom op de kaart te verschijnen",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "Dit verwijdert ook {count} kanaal/kanalen en hun berichten.",
|
"community_deleteChannelsWarning": "Dit verwijdert ook {count} kanaal/kanalen en hun berichten.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Community \"{name}\" verlaten",
|
"community_deleted": "Community \"{name}\" verlaten",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "Open hashtag (iedereen kan deelnemen)",
|
"community_regularHashtagDesc": "Open hashtag (iedereen kan deelnemen)",
|
||||||
"community_communityHashtag": "Gemeenschappelijk Hashtag",
|
"community_communityHashtag": "Gemeenschappelijk Hashtag",
|
||||||
"community_communityHashtagDesc": "Alleen zichtbaar voor leden van de community",
|
"community_communityHashtagDesc": "Alleen zichtbaar voor leden van de community",
|
||||||
"community_forCommunity": "Voor {name}"
|
"community_forCommunity": "Voor {name}",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_secretRegenerated": "Geheim hersteld voor \"{name}\"",
|
||||||
|
"community_regenerateSecret": "Regeneer Geheimwoord",
|
||||||
|
"community_regenerateSecretConfirm": "Regeneere de geheime sleutel voor \"{name}\"? Alle leden moeten de nieuwe QR-code scannen om verder te communiceren.",
|
||||||
|
"community_regenerate": "Regeneer",
|
||||||
|
"community_updateSecret": "Bijwerken Geheime",
|
||||||
|
"community_secretUpdated": "Geheim gewijzigd voor \"{name}\"",
|
||||||
|
"community_scanToUpdateSecret": "Scan de nieuwe QR-code om het geheim voor \"{name}\" bij te werken"
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Otworzyć link?",
|
||||||
|
"chat_openLinkConfirmation": "Czy chcesz otworzyć ten link w przeglądarce?",
|
||||||
|
"chat_open": "Otwórz",
|
||||||
|
"chat_couldNotOpenLink": "Nie można otworzyć linku: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Nieprawidłowy format linku",
|
||||||
"map_title": "Mapa węzłów",
|
"map_title": "Mapa węzłów",
|
||||||
"map_noNodesWithLocation": "Brak węzłów z danymi lokalizacyjnymi",
|
"map_noNodesWithLocation": "Brak węzłów z danymi lokalizacyjnymi",
|
||||||
"map_nodesNeedGps": "Węzły muszą udostępniać swoje współrzędne GPS,\naby pojawić się na mapie.",
|
"map_nodesNeedGps": "Węzły muszą udostępniać swoje współrzędne GPS,\naby pojawić się na mapie.",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "Spowoduje to również usunięcie {count} kanału/kanałów i ich wiadomości.",
|
"community_deleteChannelsWarning": "Spowoduje to również usunięcie {count} kanału/kanałów i ich wiadomości.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Opuszczono społeczność \"{name}\"",
|
"community_deleted": "Opuszczono społeczność \"{name}\"",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "Publiczny hashtag (każdy może dołączyć)",
|
"community_regularHashtagDesc": "Publiczny hashtag (każdy może dołączyć)",
|
||||||
"community_communityHashtag": "Hashtag Społeczności",
|
"community_communityHashtag": "Hashtag Społeczności",
|
||||||
"community_communityHashtagDesc": "Dostępne tylko dla członków społeczności",
|
"community_communityHashtagDesc": "Dostępne tylko dla członków społeczności",
|
||||||
"community_forCommunity": "Dla {name}"
|
"community_forCommunity": "Dla {name}",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_regenerate": "Zregeneruj",
|
||||||
|
"community_secretRegenerated": "Hasło ponownie wygenerowane dla \"{name}\"",
|
||||||
|
"community_regenerateSecret": "Zregeneruj sekret",
|
||||||
|
"community_regenerateSecretConfirm": "Regeneruj tajny klucz dla \"{name}\"? Wszyscy członkowie będą musieli zeskanować nowy kod QR, aby kontynuować komunikację.",
|
||||||
|
"community_scanToUpdateSecret": "Skanuj nowy kod QR, aby zaktualizować sekret dla \"{name}\"",
|
||||||
|
"community_secretUpdated": "Hasło zaktualizowane dla \"{name}\"",
|
||||||
|
"community_updateSecret": "Zaktualizuj tajny klucz"
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Abrir link?",
|
||||||
|
"chat_openLinkConfirmation": "Deseja abrir este link no seu navegador?",
|
||||||
|
"chat_open": "Abrir",
|
||||||
|
"chat_couldNotOpenLink": "Não foi possível abrir o link: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Formato de link inválido",
|
||||||
"map_title": "Mapa de Nós",
|
"map_title": "Mapa de Nós",
|
||||||
"map_noNodesWithLocation": "Não existem nós com dados de localização.",
|
"map_noNodesWithLocation": "Não existem nós com dados de localização.",
|
||||||
"map_nodesNeedGps": "Os nós precisam partilhar as suas coordenadas GPS\npara aparecerem no mapa",
|
"map_nodesNeedGps": "Os nós precisam partilhar as suas coordenadas GPS\npara aparecerem no mapa",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "Isso também excluirá {count} canal/canais e suas mensagens.",
|
"community_deleteChannelsWarning": "Isso também excluirá {count} canal/canais e suas mensagens.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Saiu da comunidade \"{name}\"",
|
"community_deleted": "Saiu da comunidade \"{name}\"",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "Hashtag público (qualquer pessoa pode participar)",
|
"community_regularHashtagDesc": "Hashtag público (qualquer pessoa pode participar)",
|
||||||
"community_communityHashtag": "Hashtag da Comunidade",
|
"community_communityHashtag": "Hashtag da Comunidade",
|
||||||
"community_communityHashtagDesc": "Apenas para membros da comunidade",
|
"community_communityHashtagDesc": "Apenas para membros da comunidade",
|
||||||
"community_forCommunity": "Para {name}"
|
"community_forCommunity": "Para {name}",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_regenerateSecretConfirm": "Regenerar a chave secreta para \"{name}\"? Todos os membros precisarão escanear o novo código QR para continuar a comunicação.",
|
||||||
|
"community_regenerateSecret": "Regenerar Senha Segura",
|
||||||
|
"community_secretRegenerated": "Senha secreta regenerada para \"{name}\"",
|
||||||
|
"community_regenerate": "Regenerar",
|
||||||
|
"community_secretUpdated": "Segredo atualizado para \"{name}\"",
|
||||||
|
"community_scanToUpdateSecret": "Scanar o novo código QR para atualizar o segredo para \"{name}\"\n\n\n+++++",
|
||||||
|
"community_updateSecret": "Atualizar Segredo"
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Otvoriť odkaz?",
|
||||||
|
"chat_openLinkConfirmation": "Chcete otvoriť tento odkaz v prehliadači?",
|
||||||
|
"chat_open": "Otvoriť",
|
||||||
|
"chat_couldNotOpenLink": "Nepodarilo sa otvoriť odkaz: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Neplatný formát odkazu",
|
||||||
"map_title": "Mapa uzlov",
|
"map_title": "Mapa uzlov",
|
||||||
"map_noNodesWithLocation": "Žiadne uzly s údajmi o polohe",
|
"map_noNodesWithLocation": "Žiadne uzly s údajmi o polohe",
|
||||||
"map_nodesNeedGps": "Uholníky musia zdieľať svoje GPS súradnice, aby sa zobrazili na mape.",
|
"map_nodesNeedGps": "Uholníky musia zdieľať svoje GPS súradnice, aby sa zobrazili na mape.",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "Tým sa tiež vymaže {count} kanál/kanálov a ich správy.",
|
"community_deleteChannelsWarning": "Tým sa tiež vymaže {count} kanál/kanálov a ich správy.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Opustená komunita \"{name}\"",
|
"community_deleted": "Opustená komunita \"{name}\"",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "Veľký hashtag (ktočokoľvek sa môže pridať)",
|
"community_regularHashtagDesc": "Veľký hashtag (ktočokoľvek sa môže pridať)",
|
||||||
"community_communityHashtag": "Komunitný Hashtag",
|
"community_communityHashtag": "Komunitný Hashtag",
|
||||||
"community_communityHashtagDesc": "Špecifické pre členov komunity",
|
"community_communityHashtagDesc": "Špecifické pre členov komunity",
|
||||||
"community_forCommunity": "Pre {name}"
|
"community_forCommunity": "Pre {name}",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_secretRegenerated": "Záznam pre \"{name}\" bol regenerovaný tajne",
|
||||||
|
"community_regenerateSecretConfirm": "Znovu vygenerovať tajný kľúč pre \"{name}\"? Všetci členovia budú musieť skanovať nový QR kód, aby mohli nadviazať komunikáciu.",
|
||||||
|
"community_regenerate": "Znovu vygenerovať",
|
||||||
|
"community_regenerateSecret": "Zobraziť nový tajný kód",
|
||||||
|
"community_scanToUpdateSecret": "Skáňte nový QR kód na aktualizáciu tajného hesla pre \"{name}\"",
|
||||||
|
"community_updateSecret": "Aktualizovať tajné heslo",
|
||||||
|
"community_secretUpdated": "Zmena tajnej slova pre \"{name}\""
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Odpreti povezavo?",
|
||||||
|
"chat_openLinkConfirmation": "Ali želite odpreti to povezavo v brskalniku?",
|
||||||
|
"chat_open": "Odpri",
|
||||||
|
"chat_couldNotOpenLink": "Povezave ni bilo mogoče odpreti: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Neveljavna oblika povezave",
|
||||||
"map_title": "Mapa omrežja",
|
"map_title": "Mapa omrežja",
|
||||||
"map_noNodesWithLocation": "Nihče od notranjih elementov nima podatkov o lokaciji.",
|
"map_noNodesWithLocation": "Nihče od notranjih elementov nima podatkov o lokaciji.",
|
||||||
"map_nodesNeedGps": "Omrežje morajo deliti svoje GPS koordinate,\nda se prikazao na zemljeobrazniku.",
|
"map_nodesNeedGps": "Omrežje morajo deliti svoje GPS koordinate,\nda se prikazao na zemljeobrazniku.",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "To bo izbrisalo tudi {count} kanal/kanalov in njihova sporočila.",
|
"community_deleteChannelsWarning": "To bo izbrisalo tudi {count} kanal/kanalov in njihova sporočila.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Zapustil skupnost \"{name}\"",
|
"community_deleted": "Zapustil skupnost \"{name}\"",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "javna oznaka (kateri koli lahko sodelujejo)",
|
"community_regularHashtagDesc": "javna oznaka (kateri koli lahko sodelujejo)",
|
||||||
"community_communityHashtag": "Skupnostni hashtag",
|
"community_communityHashtag": "Skupnostni hashtag",
|
||||||
"community_communityHashtagDesc": "Izključeno za uporabnike skupnosti",
|
"community_communityHashtagDesc": "Izključeno za uporabnike skupnosti",
|
||||||
"community_forCommunity": "Za {name}"
|
"community_forCommunity": "Za {name}",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_secretRegenerated": "Tajna za \"{name}\" ponovno ustvarjena",
|
||||||
|
"community_regenerateSecret": "Preberi nov tajni kôd",
|
||||||
|
"community_regenerateSecretConfirm": "Preberite novo tajno geslo za \"{name}\"? Vsi članici morajo prebrati novo QR kodo, da lahko nadaljujejo s komunikacijo.",
|
||||||
|
"community_regenerate": "Preberi znova",
|
||||||
|
"community_scanToUpdateSecret": "Skeniraj nov kôd QR za posodabljanje tajne za {name}",
|
||||||
|
"community_updateSecret": "Ažurniraj tajno",
|
||||||
|
"community_secretUpdated": "Skrivnostno spremembo za \"{name}\""
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "Öppna länk?",
|
||||||
|
"chat_openLinkConfirmation": "Vill du öppna den här länken i din webbläsare?",
|
||||||
|
"chat_open": "Öppna",
|
||||||
|
"chat_couldNotOpenLink": "Kunde inte öppna länken: {url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "Ogiltigt länkformat",
|
||||||
"map_title": "Nodkarta",
|
"map_title": "Nodkarta",
|
||||||
"map_noNodesWithLocation": "Inga noder med platsinformation",
|
"map_noNodesWithLocation": "Inga noder med platsinformation",
|
||||||
"map_nodesNeedGps": "Noder måste dela sina GPS-koordinater\nför att visas på kartan",
|
"map_nodesNeedGps": "Noder måste dela sina GPS-koordinater\nför att visas på kartan",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "Detta kommer också att radera {count} kanal/kanaler och deras meddelanden.",
|
"community_deleteChannelsWarning": "Detta kommer också att radera {count} kanal/kanaler och deras meddelanden.",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "Lämnade community \"{name}\"",
|
"community_deleted": "Lämnade community \"{name}\"",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "Offentlig hashtag (alla kan gå med)",
|
"community_regularHashtagDesc": "Offentlig hashtag (alla kan gå med)",
|
||||||
"community_communityHashtagDesc": "Endast för medlemmar",
|
"community_communityHashtagDesc": "Endast för medlemmar",
|
||||||
"community_forCommunity": "För {name}",
|
"community_forCommunity": "För {name}",
|
||||||
"community_communityHashtag": "Community Hashtag"
|
"community_communityHashtag": "Community Hashtag",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_regenerate": "Regenerera",
|
||||||
|
"community_regenerateSecretConfirm": "Regenerera den hemliga nyckeln för \"{name}\"? Alla medlemmar måste scanna den nya QR-koden för att fortsätta kommunicera.",
|
||||||
|
"community_secretRegenerated": "Lösenord återskapad för \"{name}\"",
|
||||||
|
"community_regenerateSecret": "Regenerera hemlig kod",
|
||||||
|
"community_scanToUpdateSecret": "Skanna den nya QR-koden för att uppdatera hemligheten för \"{name}\"",
|
||||||
|
"community_secretUpdated": "Hemlighet uppdaterad för \"{name}\"",
|
||||||
|
"community_updateSecret": "Uppdatera hemlighet"
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-2
@@ -604,6 +604,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chat_openLink": "打开链接?",
|
||||||
|
"chat_openLinkConfirmation": "您想在浏览器中打开此链接吗?",
|
||||||
|
"chat_open": "打开",
|
||||||
|
"chat_couldNotOpenLink": "无法打开链接:{url}",
|
||||||
|
"@chat_couldNotOpenLink": {
|
||||||
|
"placeholders": {
|
||||||
|
"url": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chat_invalidLink": "链接格式无效",
|
||||||
"map_title": "节点地图",
|
"map_title": "节点地图",
|
||||||
"map_noNodesWithLocation": "没有具有位置数据的节点",
|
"map_noNodesWithLocation": "没有具有位置数据的节点",
|
||||||
"map_nodesNeedGps": "节点需要共享它们的 GPS 坐标\n才能在地图上显示",
|
"map_nodesNeedGps": "节点需要共享它们的 GPS 坐标\n才能在地图上显示",
|
||||||
@@ -1473,7 +1485,9 @@
|
|||||||
"community_deleteChannelsWarning": "这也将删除 {count} 个频道及其消息。",
|
"community_deleteChannelsWarning": "这也将删除 {count} 个频道及其消息。",
|
||||||
"@community_deleteChannelsWarning": {
|
"@community_deleteChannelsWarning": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {"type": "int"}
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"community_deleted": "已退出社区 \"{name}\"",
|
"community_deleted": "已退出社区 \"{name}\"",
|
||||||
@@ -1484,5 +1498,40 @@
|
|||||||
"community_regularHashtagDesc": "公共话题(任何人都可以加入)",
|
"community_regularHashtagDesc": "公共话题(任何人都可以加入)",
|
||||||
"community_communityHashtag": "社区标签",
|
"community_communityHashtag": "社区标签",
|
||||||
"community_communityHashtagDesc": "仅限社区成员使用",
|
"community_communityHashtagDesc": "仅限社区成员使用",
|
||||||
"community_forCommunity": "对于 {name}"
|
"community_forCommunity": "对于 {name}",
|
||||||
|
"@community_regenerateSecretConfirm": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretRegenerated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_secretUpdated": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@community_scanToUpdateSecret": {
|
||||||
|
"placeholders": {
|
||||||
|
"name": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"community_regenerateSecret": "重新生成密钥",
|
||||||
|
"community_secretRegenerated": "密码已重置为“{name}”",
|
||||||
|
"community_regenerate": "重新生成",
|
||||||
|
"community_regenerateSecretConfirm": "重新生成“{name}”的秘密密钥?所有成员将需要扫描新的二维码才能继续沟通。",
|
||||||
|
"community_scanToUpdateSecret": "扫描新的二维码更新\"{name}\"的密码",
|
||||||
|
"community_updateSecret": "更新密钥",
|
||||||
|
"community_secretUpdated": "密码已更新为“{name}”"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,13 @@ import 'dart:convert';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/scheduler.dart';
|
import 'package:flutter/scheduler.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_linkify/flutter_linkify.dart';
|
||||||
import 'package:latlong2/latlong.dart';
|
import 'package:latlong2/latlong.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../connector/meshcore_connector.dart';
|
import '../connector/meshcore_connector.dart';
|
||||||
import '../connector/meshcore_protocol.dart';
|
import '../connector/meshcore_protocol.dart';
|
||||||
|
import '../helpers/link_handler.dart';
|
||||||
import '../helpers/utf8_length_limiter.dart';
|
import '../helpers/utf8_length_limiter.dart';
|
||||||
import '../l10n/l10n.dart';
|
import '../l10n/l10n.dart';
|
||||||
import '../models/channel.dart';
|
import '../models/channel.dart';
|
||||||
@@ -280,9 +282,20 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
|
|||||||
: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.6),
|
: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.6),
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
Text(
|
Linkify(
|
||||||
message.text,
|
text: message.text,
|
||||||
style: const TextStyle(fontSize: 14),
|
style: const TextStyle(fontSize: 14),
|
||||||
|
linkStyle: const TextStyle(
|
||||||
|
fontSize: 14,
|
||||||
|
color: Colors.green,
|
||||||
|
decoration: TextDecoration.underline,
|
||||||
|
),
|
||||||
|
options: const LinkifyOptions(
|
||||||
|
humanize: false,
|
||||||
|
defaultToHttps: false,
|
||||||
|
),
|
||||||
|
linkifiers: const [UrlLinkifier()],
|
||||||
|
onOpen: (link) => LinkHandler.handleLinkTap(context, link.url),
|
||||||
),
|
),
|
||||||
if (displayPath.isNotEmpty) ...[
|
if (displayPath.isNotEmpty) ...[
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
|
|||||||
+431
-384
File diff suppressed because it is too large
Load Diff
@@ -5,11 +5,13 @@ import 'package:flutter/foundation.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/scheduler.dart';
|
import 'package:flutter/scheduler.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_linkify/flutter_linkify.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:latlong2/latlong.dart';
|
import 'package:latlong2/latlong.dart';
|
||||||
|
|
||||||
import '../connector/meshcore_connector.dart';
|
import '../connector/meshcore_connector.dart';
|
||||||
import '../connector/meshcore_protocol.dart';
|
import '../connector/meshcore_protocol.dart';
|
||||||
|
import '../helpers/link_handler.dart';
|
||||||
import '../helpers/utf8_length_limiter.dart';
|
import '../helpers/utf8_length_limiter.dart';
|
||||||
import '../models/channel_message.dart';
|
import '../models/channel_message.dart';
|
||||||
import '../models/contact.dart';
|
import '../models/contact.dart';
|
||||||
@@ -988,11 +990,21 @@ class _MessageBubble extends StatelessWidget {
|
|||||||
fallbackTextColor: textColor.withValues(alpha: 0.7),
|
fallbackTextColor: textColor.withValues(alpha: 0.7),
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
Text(
|
Linkify(
|
||||||
messageText,
|
text: messageText,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: textColor,
|
color: textColor,
|
||||||
),
|
),
|
||||||
|
linkStyle: const TextStyle(
|
||||||
|
color: Colors.green,
|
||||||
|
decoration: TextDecoration.underline,
|
||||||
|
),
|
||||||
|
options: const LinkifyOptions(
|
||||||
|
humanize: false,
|
||||||
|
defaultToHttps: false,
|
||||||
|
),
|
||||||
|
linkifiers: const [UrlLinkifier()],
|
||||||
|
onOpen: (link) => LinkHandler.handleLinkTap(context, link.url),
|
||||||
),
|
),
|
||||||
if (isOutgoing && message.retryCount > 0) ...[
|
if (isOutgoing && message.retryCount > 0) ...[
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
|
|||||||
@@ -6,6 +6,10 @@
|
|||||||
|
|
||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
|
#include <url_launcher_linux/url_launcher_plugin.h>
|
||||||
|
|
||||||
void fl_register_plugins(FlPluginRegistry* registry) {
|
void fl_register_plugins(FlPluginRegistry* registry) {
|
||||||
|
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
|
||||||
|
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
|
||||||
|
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
|
url_launcher_linux
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import package_info_plus
|
|||||||
import path_provider_foundation
|
import path_provider_foundation
|
||||||
import shared_preferences_foundation
|
import shared_preferences_foundation
|
||||||
import sqflite_darwin
|
import sqflite_darwin
|
||||||
|
import url_launcher_macos
|
||||||
import wakelock_plus
|
import wakelock_plus
|
||||||
|
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
@@ -22,5 +23,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
|||||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||||
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
||||||
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
||||||
|
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||||
WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin"))
|
WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin"))
|
||||||
}
|
}
|
||||||
|
|||||||
+82
-2
@@ -262,6 +262,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.13.1"
|
version: "0.13.1"
|
||||||
|
flutter_linkify:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: flutter_linkify
|
||||||
|
sha256: "74669e06a8f358fee4512b4320c0b80e51cffc496607931de68d28f099254073"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.0.0"
|
||||||
flutter_lints:
|
flutter_lints:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@@ -397,6 +405,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.2"
|
version: "3.0.2"
|
||||||
|
linkify:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: linkify
|
||||||
|
sha256: "4139ea77f4651ab9c315b577da2dd108d9aa0bd84b5d03d33323f1970c645832"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "5.0.0"
|
||||||
lints:
|
lints:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -818,6 +834,70 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.1"
|
version: "0.3.1"
|
||||||
|
url_launcher:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: url_launcher
|
||||||
|
sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.3.2"
|
||||||
|
url_launcher_android:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_android
|
||||||
|
sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.3.28"
|
||||||
|
url_launcher_ios:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_ios
|
||||||
|
sha256: cfde38aa257dae62ffe79c87fab20165dfdf6988c1d31b58ebf59b9106062aad
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.3.6"
|
||||||
|
url_launcher_linux:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_linux
|
||||||
|
sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.2.2"
|
||||||
|
url_launcher_macos:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_macos
|
||||||
|
sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.2.5"
|
||||||
|
url_launcher_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_platform_interface
|
||||||
|
sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.3.2"
|
||||||
|
url_launcher_web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_web
|
||||||
|
sha256: d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.2"
|
||||||
|
url_launcher_windows:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_windows
|
||||||
|
sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.5"
|
||||||
uuid:
|
uuid:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -907,5 +987,5 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.3"
|
version: "3.1.3"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.9.2 <4.0.0"
|
dart: ">=3.10.0 <4.0.0"
|
||||||
flutter: ">=3.35.0"
|
flutter: ">=3.38.0"
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ dependencies:
|
|||||||
package_info_plus: ^8.0.0
|
package_info_plus: ^8.0.0
|
||||||
mobile_scanner: ^6.0.0 # QR/barcode scanning
|
mobile_scanner: ^6.0.0 # QR/barcode scanning
|
||||||
qr_flutter: ^4.1.0 # QR code generation
|
qr_flutter: ^4.1.0 # QR code generation
|
||||||
|
url_launcher: ^6.3.0 # Launch URLs in system browser
|
||||||
|
flutter_linkify: ^6.0.0 # Auto-detect and linkify URLs in text
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
+1
-121
@@ -1,121 +1 @@
|
|||||||
{
|
{}
|
||||||
"bg": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"de": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"es": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"fr": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"it": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"nl": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"pl": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"pt": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"sk": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"sl": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"sv": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
],
|
|
||||||
|
|
||||||
"zh": [
|
|
||||||
"community_regenerateSecret",
|
|
||||||
"community_regenerateSecretConfirm",
|
|
||||||
"community_regenerate",
|
|
||||||
"community_secretRegenerated",
|
|
||||||
"community_updateSecret",
|
|
||||||
"community_secretUpdated",
|
|
||||||
"community_scanToUpdateSecret"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -7,8 +7,11 @@
|
|||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
#include <flutter_blue_plus_winrt/flutter_blue_plus_plugin.h>
|
#include <flutter_blue_plus_winrt/flutter_blue_plus_plugin.h>
|
||||||
|
#include <url_launcher_windows/url_launcher_windows.h>
|
||||||
|
|
||||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||||
FlutterBluePlusPluginRegisterWithRegistrar(
|
FlutterBluePlusPluginRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("FlutterBluePlusPlugin"));
|
registry->GetRegistrarForPlugin("FlutterBluePlusPlugin"));
|
||||||
|
UrlLauncherWindowsRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
flutter_blue_plus_winrt
|
flutter_blue_plus_winrt
|
||||||
|
url_launcher_windows
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||||
|
|||||||
Reference in New Issue
Block a user