capitalization

This commit is contained in:
callebtc 2026-07-27 02:57:22 +02:00
parent 15d56715b9
commit fc1c23314b
3 changed files with 150 additions and 150 deletions

View File

@ -829,7 +829,7 @@ fun PrivateChatSheet(
val name = if (fullPubkey.isNotEmpty()) {
viewModel.geohashViewModel.displayNameForGeohashConversation(fullPubkey, gh)
} else {
peerNicknames[peerID] ?: "unknown"
peerNicknames[peerID] ?: "Unknown"
}
"#$gh/@$name"
} else {

View File

@ -61,13 +61,13 @@ fun MeshTopologySection(
Column(Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) {
Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp)) {
Icon(Icons.Filled.SettingsEthernet, contentDescription = null, tint = Color(0xFF8E8E93))
Text("mesh topology", fontFamily = FontFamily.Monospace, fontSize = 14.sp, fontWeight = FontWeight.Medium)
Text("Mesh topology", fontFamily = FontFamily.Monospace, fontSize = 14.sp, fontWeight = FontWeight.Medium)
}
val nodes = snapshot.nodes
val edges = snapshot.edges
val empty = nodes.isEmpty()
if (empty) {
Text("no gossip yet", fontFamily = FontFamily.Monospace, fontSize = 11.sp, color = colorScheme.onSurface.copy(alpha = 0.6f))
Text("No gossip yet", fontFamily = FontFamily.Monospace, fontSize = 11.sp, color = colorScheme.onSurface.copy(alpha = 0.6f))
} else {
ForceDirectedMeshGraph(
nodes = nodes,
@ -88,7 +88,7 @@ fun MeshTopologySection(
verticalArrangement = Arrangement.spacedBy(4.dp)
) {
nodes.forEach { node ->
val label = "${node.peerID.take(8)}${node.nickname ?: "unknown"}"
val label = "${node.peerID.take(8)}${node.nickname ?: "Unknown"}"
Text(
text = label,
fontFamily = FontFamily.Monospace,
@ -388,7 +388,7 @@ fun DebugSettingsSheet(
}
Row(verticalAlignment = Alignment.CenterVertically) {
Spacer(Modifier.width(24.dp))
Text("WiFi Aware verbose", fontFamily = FontFamily.Monospace, modifier = Modifier.weight(1f))
Text("WiFi Aware verbose logging", fontFamily = FontFamily.Monospace, modifier = Modifier.weight(1f))
Switch(checked = wifiAwareVerbose, onCheckedChange = { manager.setWifiAwareVerbose(it) })
}
}
@ -719,7 +719,7 @@ fun DebugSettingsSheet(
Column(Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(10.dp)) {
Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp)) {
Icon(Icons.Filled.SettingsEthernet, contentDescription = null, tint = Color(0xFF9C27B0))
Text("sync settings", fontFamily = FontFamily.Monospace, fontSize = 14.sp, fontWeight = FontWeight.Medium)
Text("Sync settings", fontFamily = FontFamily.Monospace, fontSize = 14.sp, fontWeight = FontWeight.Medium)
}
Text(stringResource(R.string.debug_max_packets_per_sync_fmt, seenCapacity), fontFamily = FontFamily.Monospace, fontSize = 11.sp, color = colorScheme.onSurface.copy(alpha = 0.7f))
Slider(value = seenCapacity.toFloat(), onValueChange = { manager.setSeenPacketCapacity(it.toInt()) }, valueRange = 10f..1000f, steps = 99)
@ -745,7 +745,7 @@ fun DebugSettingsSheet(
val localAddr = remember { meshService.connectionManager.getLocalAdapterAddress() }
Text(stringResource(R.string.debug_our_device_id_fmt, localAddr ?: stringResource(R.string.unknown)), fontFamily = FontFamily.Monospace, fontSize = 11.sp, color = colorScheme.onSurface.copy(alpha = 0.7f))
if (connectedDevices.isEmpty()) {
Text("none", fontFamily = FontFamily.Monospace, fontSize = 11.sp, color = colorScheme.onSurface.copy(alpha = 0.6f))
Text("None", fontFamily = FontFamily.Monospace, fontSize = 11.sp, color = colorScheme.onSurface.copy(alpha = 0.6f))
} else {
connectedDevices.forEach { dev ->
Surface(shape = RoundedCornerShape(8.dp), color = colorScheme.surface.copy(alpha = 0.6f)) {

View File

@ -4,8 +4,8 @@
<string name="permission_bluetooth_rationale">Bluetooth permission is required for peer-to-peer messaging without internet.</string>
<string name="permission_location_rationale">Location permission is required to discover nearby devices via Bluetooth.</string>
<string name="permission_notification_rationale">Notification permission is required to alert you of new messages.</string>
<string name="nickname_hint">nickname</string>
<string name="message_hint">type a message…</string>
<string name="nickname_hint">Nickname</string>
<string name="message_hint">Type a message…</string>
<string name="channel_password_hint">Password</string>
<string name="join_channel">Join Channel</string>
<string name="leave_channel">Leave</string>
@ -54,7 +54,7 @@
<string name="notification_messages_in">Messages in %1$s</string>
<string name="notification_joined_conversation">%1$s joined the conversation</string>
<string name="notification_geohash_summary_title_mentions">bitchat - %1$d mentions</string>
<string name="notification_geohash_summary_title">bitchat - location chats</string>
<string name="notification_geohash_summary_title">bitchat - Location chats</string>
<string name="notification_geohash_summary_text">%1$d messages from %2$d locations</string>
<string name="notification_mesh_mention_title_singular">Mentioned in Mesh Chat</string>
<string name="notification_mesh_mention_title_plural">%1$d mentions in Mesh Chat</string>
@ -72,8 +72,8 @@
<string name="cd_add_bookmark">Add bookmark</string>
<!-- Chat header &amp; accessibility -->
<string name="chat_back">back</string>
<string name="chat_leave">leave</string>
<string name="chat_back">Back</string>
<string name="chat_leave">Leave</string>
<string name="cd_nostr_reachable">Nostr reachable</string>
<string name="cd_unread_private_messages">Unread private messages</string>
<string name="cd_location_notes">Location notes</string>
@ -152,34 +152,34 @@
<string name="about_online_geohash_desc">Geohash channels connect you with people nearby, extending the mesh over public relays.</string>
<string name="about_e2e_title">End-to-End Encryption</string>
<string name="about_e2e_desc">Private messages are encrypted. Channel messages are public.</string>
<string name="about_system">system</string>
<string name="about_light">light</string>
<string name="about_dark">dark</string>
<string name="about_pow">proof of work</string>
<string name="about_pow_off">pow off</string>
<string name="about_pow_on">pow on</string>
<string name="about_pow_tip">add proof of work to geohash messages for spam deterrence.</string>
<string name="about_pow_difficulty">difficulty: %1$d bits (~%2$s)</string>
<string name="about_pow_difficulty_attempts">difficulty %1$d requires ~%2$s hash attempts</string>
<string name="about_pow_desc_none">no proof of work required</string>
<string name="about_pow_desc_very_low">very low - minimal spam protection</string>
<string name="about_pow_desc_low">low - basic spam protection</string>
<string name="about_pow_desc_medium">medium - good spam protection</string>
<string name="about_pow_desc_high">high - strong spam protection</string>
<string name="about_pow_desc_very_high">very high - may cause delays</string>
<string name="about_pow_desc_extreme">extreme - significant computation required</string>
<string name="about_network">network</string>
<string name="about_tor_off">tor off</string>
<string name="about_tor_on">tor on</string>
<string name="about_tor_route">route internet over tor for enhanced privacy.</string>
<string name="about_tor_status">tor Status: %1$s, bootstrap %2$d%%</string>
<string name="about_system">System</string>
<string name="about_light">Light</string>
<string name="about_dark">Dark</string>
<string name="about_pow">Proof of Work</string>
<string name="about_pow_off">PoW Off</string>
<string name="about_pow_on">PoW On</string>
<string name="about_pow_tip">Add proof of work to geohash messages for spam deterrence.</string>
<string name="about_pow_difficulty">Difficulty: %1$d bits (~%2$s)</string>
<string name="about_pow_difficulty_attempts">Difficulty %1$d requires ~%2$s hash attempts</string>
<string name="about_pow_desc_none">No proof of work required</string>
<string name="about_pow_desc_very_low">Very low minimal spam protection</string>
<string name="about_pow_desc_low">Low basic spam protection</string>
<string name="about_pow_desc_medium">Medium good spam protection</string>
<string name="about_pow_desc_high">High strong spam protection</string>
<string name="about_pow_desc_very_high">Very high may cause delays</string>
<string name="about_pow_desc_extreme">Extreme significant computation required</string>
<string name="about_network">Network</string>
<string name="about_tor_off">Tor Off</string>
<string name="about_tor_on">Tor On</string>
<string name="about_tor_route">Route internet over Tor for enhanced privacy.</string>
<string name="about_tor_status">Tor Status: %1$s, bootstrap %2$d%%</string>
<string name="about_last">Last: %1$s</string>
<string name="about_emergency_title">Panic Mode</string>
<string name="about_debug_settings">Debug Settings</string>
<string name="about_footer">Open Source • Privacy First • Decentralized</string>
<string name="close_plain">Close</string>
<string name="cd_privacy_protected">Privacy Protected</string>
<string name="cancel_lower">cancel</string>
<string name="cancel_lower">Cancel</string>
<!-- Generic content descriptions -->
<string name="cd_warning">Warning</string>
@ -196,8 +196,8 @@
<string name="cd_remove_bookmark">Remove bookmark</string>
<string name="cd_teleport">Teleport</string>
<string name="notification_action_quit_bitchat">Quit bitchat</string>
<string name="about_background_title">run in background</string>
<string name="about_background_desc">keep mesh active when app is closed (foreground service)</string>
<string name="about_background_title">Run in Background</string>
<string name="about_background_desc">Keep mesh active when app is closed (foreground service)</string>
<string name="cd_leave_channel">Leave channel</string>
<string name="cd_reachable_via_nostr">Reachable via Nostr</string>
<string name="cd_offline_favorite">Offline favorite</string>
@ -214,8 +214,8 @@
<string name="cd_mining_pow">Mining PoW</string>
<string name="cd_pow_enabled">PoW Enabled</string>
<string name="cd_proof_of_work">Proof of Work</string>
<string name="pow_mining_ellipsis">mining...</string>
<string name="pow_label_format">pow: %1$dbit</string>
<string name="pow_mining_ellipsis">Mining…</string>
<string name="pow_label_format">PoW: %1$dbit</string>
<string name="cd_offline_mesh_chat">Offline Mesh Chat</string>
<string name="cd_online_geohash_channels">Online Geohash Channels</string>
<string name="cd_end_to_end_encryption">End-to-End Encryption</string>
@ -227,27 +227,27 @@
<string name="image_save_failed">Failed to save image</string>
<string name="pick_file">Pick file</string>
<string name="file_unavailable">[file unavailable]</string>
<string name="unknown">unknown</string>
<string name="unknown">Unknown</string>
<!-- Chat user sheet actions -->
<string name="choose_action_message_or_user">choose an action for this message or user</string>
<string name="choose_action_user">choose an action for this user</string>
<string name="action_copy_message_title">copy message</string>
<string name="action_copy_message_subtitle">copy this message to clipboard</string>
<string name="action_slap_title">slap %1$s</string>
<string name="action_slap_subtitle">send a playful slap message</string>
<string name="action_hug_title">hug %1$s</string>
<string name="action_hug_subtitle">send a friendly hug message</string>
<string name="action_block_title">block %1$s</string>
<string name="action_block_subtitle">block all messages from this user</string>
<string name="action_private_message_title">message %1$s</string>
<string name="action_private_message_subtitle">send a private message</string>
<string name="choose_action_message_or_user">Choose an action for this message or user</string>
<string name="choose_action_user">Choose an action for this user</string>
<string name="action_copy_message_title">Copy message</string>
<string name="action_copy_message_subtitle">Copy this message to clipboard</string>
<string name="action_slap_title">Slap %1$s</string>
<string name="action_slap_subtitle">Send a playful slap message</string>
<string name="action_hug_title">Hug %1$s</string>
<string name="action_hug_subtitle">Send a friendly hug message</string>
<string name="action_block_title">Block %1$s</string>
<string name="action_block_subtitle">Block all messages from this user</string>
<string name="action_private_message_title">Message %1$s</string>
<string name="action_private_message_subtitle">Send a private message</string>
<!-- Location channels sheet -->
<string name="location_channels_title">#location channels</string>
<string name="location_channels_title">#Location Channels</string>
<string name="location_channels_heading">Location Channels</string>
<string name="location_channels_desc">chat with people near you using geohash channels. only a coarse geohash is shared, never exact gps. do not screenshot or share this screen to protect your privacy.</string>
<string name="location_channels_desc">Chat with people near you using geohash channels. Only a coarse geohash is shared, never exact GPS. Do not screenshot or share this screen to protect your privacy.</string>
<!-- Location channels sheet: sections and Tor routing -->
<string name="section_nearby">Nearby</string>
@ -260,113 +260,113 @@
<string name="section_on_location">On location</string>
<string name="section_teleported_in">Teleported in</string>
<string name="grant_location_permission">grant location permission</string>
<string name="location_permission_denied">location permission denied. enable in settings to use location channels.</string>
<string name="grant_location_permission">Grant location permission</string>
<string name="location_permission_denied">Location permission denied. Enable in settings to use location channels.</string>
<string name="location_permission_granted">\u2713 location permission granted</string>
<string name="checking_permissions">checking permissions...</string>
<string name="finding_nearby_channels">finding nearby channels…</string>
<string name="bookmarked">bookmarked</string>
<string name="location_permission_granted">\u2713 Location permission granted</string>
<string name="checking_permissions">Checking permissions…</string>
<string name="finding_nearby_channels">Finding nearby channels…</string>
<string name="bookmarked">Bookmarked</string>
<string name="geohash_placeholder">geohash</string>
<string name="invalid_geohash">invalid geohash</string>
<string name="teleport">teleport</string>
<string name="invalid_geohash">Invalid geohash</string>
<string name="teleport">Teleport</string>
<string name="disable_location_services">Remove location access</string>
<string name="enable_location_services">enable location services</string>
<string name="enable_location_services">Enable location services</string>
<string name="mesh_label">mesh</string>
<string name="location_level_block">block</string>
<string name="location_level_neighborhood">neighborhood</string>
<string name="location_level_city">city</string>
<string name="location_level_province">province</string>
<string name="location_level_region">region</string>
<string name="location_level_block">Block</string>
<string name="location_level_neighborhood">Neighborhood</string>
<string name="location_level_city">City</string>
<string name="location_level_province">Province</string>
<string name="location_level_region">Region</string>
<!-- Location notes sheet -->
<plurals name="location_notes_title">
<item quantity="one">#%1$s ± 1 • %2$d note</item>
<item quantity="other">#%1$s ± 1 • %2$d notes</item>
</plurals>
<string name="location_notes_description">add short permanent notes to this location for other visitors to find.</string>
<string name="location_notes_relays_unavailable">geo relays unavailable; notes paused</string>
<string name="location_notes_no_relays_title">no geo relays nearby</string>
<string name="location_notes_no_relays_desc">notes rely on geo relays. check connection and try again.</string>
<string name="loading_location_notes">loading notes…</string>
<string name="location_notes_empty_title">no notes yet</string>
<string name="location_notes_empty_desc">be the first to add one for this spot.</string>
<string name="dismiss">dismiss</string>
<string name="location_notes_input_placeholder">add a note for this place</string>
<string name="location_notes_description">Add short permanent notes to this location for other visitors to find.</string>
<string name="location_notes_relays_unavailable">Geo relays unavailable; notes paused</string>
<string name="location_notes_no_relays_title">No geo relays nearby</string>
<string name="location_notes_no_relays_desc">Notes rely on geo relays. Check connection and try again.</string>
<string name="loading_location_notes">Loading notes…</string>
<string name="location_notes_empty_title">No notes yet</string>
<string name="location_notes_empty_desc">Be the first to add one for this spot.</string>
<string name="dismiss">Dismiss</string>
<string name="location_notes_input_placeholder">Add a note for this place</string>
<!-- Debug / Diagnostics -->
<string name="debug_tools">debug tools</string>
<string name="debug_tools_desc">developer utilities for diagnostics and control</string>
<string name="debug_verbose_logging">verbose logging</string>
<string name="debug_verbose_hint">logs peer joins/leaves, connection direction, packet routing and relays</string>
<string name="debug_bluetooth_roles">bluetooth roles</string>
<string name="debug_gatt_server">gatt server</string>
<string name="debug_connections_fmt">connections: %1$d / %2$d</string>
<string name="debug_max_server">max server</string>
<string name="debug_gatt_client">gatt client</string>
<string name="debug_max_client">max client</string>
<string name="debug_overall_connections_fmt">connections: %1$d / %2$d</string>
<string name="debug_max_overall">max overall</string>
<string name="debug_packet_relay">packet relay</string>
<string name="debug_since_start_fmt">since start: %1$d</string>
<string name="debug_roles_hint">turn roles on/off and close all connections when disabled</string>
<string name="debug_sync_settings">sync settings</string>
<string name="debug_max_packets_per_sync_fmt">max packets per sync: %1$d</string>
<string name="debug_max_gcs_filter_size_fmt">max GCS filter size: %1$d bytes (1281024)</string>
<string name="debug_target_fpr_fmt">target FPR: %1$.2f%%</string>
<string name="debug_connected_devices">connected devices</string>
<string name="debug_our_device_id_fmt">our device id: %1$s</string>
<string name="debug_none">none</string>
<string name="debug_disconnect">disconnect</string>
<string name="debug_recent_scan_results">recent scan results</string>
<string name="debug_tools">Debug Tools</string>
<string name="debug_tools_desc">Developer utilities for diagnostics and control</string>
<string name="debug_verbose_logging">Verbose logging</string>
<string name="debug_verbose_hint">Logs peer joins/leaves, connection direction, packet routing and relays</string>
<string name="debug_bluetooth_roles">Bluetooth roles</string>
<string name="debug_gatt_server">GATT server</string>
<string name="debug_connections_fmt">Connections: %1$d / %2$d</string>
<string name="debug_max_server">Max server</string>
<string name="debug_gatt_client">GATT client</string>
<string name="debug_max_client">Max client</string>
<string name="debug_overall_connections_fmt">Connections: %1$d / %2$d</string>
<string name="debug_max_overall">Max overall</string>
<string name="debug_packet_relay">Packet relay</string>
<string name="debug_since_start_fmt">Since start: %1$d</string>
<string name="debug_roles_hint">Turn roles on/off and close all connections when disabled</string>
<string name="debug_sync_settings">Sync settings</string>
<string name="debug_max_packets_per_sync_fmt">Max packets per sync: %1$d</string>
<string name="debug_max_gcs_filter_size_fmt">Max GCS filter size: %1$d bytes (1281024)</string>
<string name="debug_target_fpr_fmt">Target FPR: %1$.2f%%</string>
<string name="debug_connected_devices">Connected devices</string>
<string name="debug_our_device_id_fmt">Our device ID: %1$s</string>
<string name="debug_none">None</string>
<string name="debug_disconnect">Disconnect</string>
<string name="debug_recent_scan_results">Recent scan results</string>
<string name="verify_title">verify</string>
<string name="verify_my_qr_title">scan to verify me</string>
<string name="verify_scan_prompt_friend">scan someone elses qr</string>
<string name="verify_scan_someone">scan someone elses qr</string>
<string name="verify_show_my_qr">show my qr</string>
<string name="verify_remove">remove verification</string>
<string name="verify_qr_unavailable">qr unavailable</string>
<string name="verify_camera_permission">camera permission is needed to scan qr codes</string>
<string name="verify_request_camera">enable camera</string>
<string name="verify_paste_label">paste verification url</string>
<string name="verify_validate">validate</string>
<string name="verify_scanned">verification requested</string>
<string name="security_verification_title">security verification</string>
<string name="fingerprint_their">their fingerprint</string>
<string name="fingerprint_yours">your fingerprint</string>
<string name="fingerprint_pending">handshake pending</string>
<string name="fingerprint_no_peer">open a private chat to view fingerprints</string>
<string name="fingerprint_status_verified">encrypted &amp; verified</string>
<string name="fingerprint_status_encrypted">encrypted</string>
<string name="fingerprint_status_handshaking">handshaking</string>
<string name="fingerprint_status_failed">handshake failed</string>
<string name="fingerprint_status_uninitialized">not encrypted</string>
<string name="fingerprint_verified_label">verified</string>
<string name="fingerprint_verified_message">you have verified this persons identity.</string>
<string name="fingerprint_not_verified_label">not verified</string>
<string name="fingerprint_not_verified_message_fmt">compare these fingerprints with %1$s using a secure channel.</string>
<string name="fingerprint_mark_verified">mark as verified</string>
<string name="fingerprint_start_handshake">start handshake</string>
<string name="fingerprint_copy">copy</string>
<string name="verify_title">Verify</string>
<string name="verify_my_qr_title">Scan to verify me</string>
<string name="verify_scan_prompt_friend">Scan someone else\'s QR</string>
<string name="verify_scan_someone">Scan someone else\'s QR</string>
<string name="verify_show_my_qr">Show my QR</string>
<string name="verify_remove">Remove verification</string>
<string name="verify_qr_unavailable">QR unavailable</string>
<string name="verify_camera_permission">Camera permission is needed to scan QR codes</string>
<string name="verify_request_camera">Enable camera</string>
<string name="verify_paste_label">Paste verification URL</string>
<string name="verify_validate">Validate</string>
<string name="verify_scanned">Verification requested</string>
<string name="security_verification_title">Security verification</string>
<string name="fingerprint_their">Their fingerprint</string>
<string name="fingerprint_yours">Your fingerprint</string>
<string name="fingerprint_pending">Handshake pending</string>
<string name="fingerprint_no_peer">Open a private chat to view fingerprints</string>
<string name="fingerprint_status_verified">Encrypted &amp; verified</string>
<string name="fingerprint_status_encrypted">Encrypted</string>
<string name="fingerprint_status_handshaking">Handshaking</string>
<string name="fingerprint_status_failed">Handshake failed</string>
<string name="fingerprint_status_uninitialized">Not encrypted</string>
<string name="fingerprint_verified_label">Verified</string>
<string name="fingerprint_verified_message">You have verified this person\'s identity.</string>
<string name="fingerprint_not_verified_label">Not verified</string>
<string name="fingerprint_not_verified_message_fmt">Compare these fingerprints with %1$s using a secure channel.</string>
<string name="fingerprint_mark_verified">Mark as verified</string>
<string name="fingerprint_start_handshake">Start handshake</string>
<string name="fingerprint_copy">Copy</string>
<string name="verify_mutual_match_title">Mutual verification</string>
<string name="verify_mutual_match_body">You and %1$s verified each other</string>
<string name="verify_mutual_system_message">mutual verification with %1$s</string>
<string name="verify_mutual_system_message">Mutual verification with %1$s</string>
<string name="verify_success_title">Verified</string>
<string name="verify_success_body">You verified %1$s</string>
<string name="verify_success_system_message">verified %1$s</string>
<string name="verify_success_system_message">Verified %1$s</string>
<string name="debug_connect">connect</string>
<string name="debug_debug_console">debug console</string>
<string name="debug_clear">clear</string>
<string name="debug_relays_window_fmt">last 10s: %1$d • 1m: %2$d • 15m: %3$d</string>
<string name="debug_derived_p_fmt">derived P: %1$s • est. max elements: %2$s</string>
<string name="debug_connect">Connect</string>
<string name="debug_debug_console">Debug console</string>
<string name="debug_clear">Clear</string>
<string name="debug_relays_window_fmt">Last 10s: %1$d • 1m: %2$d • 15m: %3$d</string>
<string name="debug_derived_p_fmt">Derived P: %1$s • est. max elements: %2$s</string>
<string name="debug_direct_suffix"> • direct</string>
<string name="debug_rssi_fmt">RSSI: %1$s</string>
<string name="debug_question_mark">?</string>
<string name="debug_role_server">as server (we host)</string>
<string name="debug_role_client">as client (we connect)</string>
<string name="debug_role_server">As server (we host)</string>
<string name="debug_role_client">As client (we connect)</string>
<!-- Onboarding screens -->
<string name="location_services_required">Location Services Required</string>
@ -375,11 +375,11 @@
<string name="location_needs_for">bitchat needs location services for:</string>
<string name="location_needs_bullets">• Bluetooth device scanning\n• Discovering nearby users on mesh network\n• Geohash chat feature\n• No tracking or location collection</string>
<string name="background_location_required_title">Background Location Recommended</string>
<string name="background_location_required_subtitle">optional, improves mesh reliability</string>
<string name="background_location_required_subtitle">Optional, improves mesh reliability</string>
<string name="background_location_explanation">Android recommends background location so bitchat can scan for nearby devices while the app is not open. This keeps the mesh alive after reboot.</string>
<string name="background_location_settings_tip">When settings opens, choose "Allow all the time".</string>
<string name="background_location_needs_for">bitchat uses background location for:</string>
<string name="background_location_needs_bullets">- scan for nearby devices while the app is closed\n- reconnect after reboot\n- keep the mesh running in the background</string>
<string name="background_location_needs_bullets">- Scan for nearby devices while the app is closed\n- Reconnect after reboot\n- Keep the mesh running in the background</string>
<string name="background_location_privacy_note">We NEVER collect or store your location. Your privacy is safe.</string>
<string name="grant_background_location">Allow Background Location</string>
<string name="skip_background_location">Continue without background location</string>
@ -395,13 +395,13 @@
<string name="bluetooth_not_supported">Bluetooth Not Supported</string>
<string name="bluetooth_unsupported_explanation">This device doesn\'t support Bluetooth Low Energy (BLE), which is required for bitchat to function.\n\nbitchat needs BLE to create mesh networks and communicate with nearby devices without internet.</string>
<string name="checking_bluetooth_status">Checking Bluetooth status...</string>
<string name="battery_optimization_detected_title">battery optimization detected</string>
<string name="battery_optimization_detected_title">Battery optimization detected</string>
<string name="battery_optimization_enabled_title">Battery Optimization Enabled</string>
<string name="battery_optimization_explanation_short">bitchat needs to run in the background to maintain mesh connections. battery optimization can interrupt these connections.</string>
<string name="battery_optimization_explanation_short">bitchat needs to run in the background to maintain mesh connections. Battery optimization can interrupt these connections.</string>
<string name="benefits_of_disabling">Benefits of Disabling</string>
<string name="battery_benefits_short">reliable message delivery\n• maintains mesh connectivity\n• prevents connection drops</string>
<string name="battery_benefits_short">Reliable message delivery\n• Maintains mesh connectivity\n• Prevents connection drops</string>
<string name="disable_battery_optimization">Disable Battery Optimization</string>
<string name="battery_optimization_disabled_title">battery optimization disabled</string>
<string name="battery_optimization_disabled_title">Battery optimization disabled</string>
<string name="continue_btn">Continue</string>
<string name="initializing_mesh_network">Initializing mesh network</string>
<string name="dot">.</string>
@ -412,20 +412,20 @@
<string name="try_again">Try Again</string>
<string name="open_settings">Open Settings</string>
<string name="privacy_protected">Your Privacy is Protected</string>
<string name="privacy_bullets">no tracking or data collection\n• Bluetooth mesh chats are fully offline\n• Geohash chats use the internet</string>
<string name="permissions_header">permissions</string>
<string name="privacy_bullets">No tracking or data collection\n• Bluetooth mesh chats are fully offline\n• Geohash chats use the internet</string>
<string name="permissions_header">Permissions</string>
<string name="grant_permissions">Grant Permissions</string>
<string name="location_tracking_warning">bitchat does NOT track your location</string>
<string name="at_symbol">@</string>
<string name="cd_open_about">Open About</string>
<string name="channel_count_prefix"> · ⧉ </string>
<string name="nobody_around">nobody around...</string>
<string name="nobody_around">Nobody around…</string>
<string name="you_suffix"> (you)</string>
<string name="pan_zoom_instruction">pan and zoom to select a geohash</string>
<string name="select">select</string>
<string name="pan_zoom_instruction">Pan and zoom to select a geohash</string>
<string name="select">Select</string>
<string name="type_a_message_placeholder">Type a message…</string>
<string name="mention_suggestion_at">@%1$s</string>
<string name="mention">mention</string>
<string name="mention">Mention</string>
<string name="image_counter">%1$d / %2$d</string>
<string name="pow_time_estimate">(~%1$s)</string>
<string name="at_nickname">@%1$s</string>