/** Space management: creation, members, roles, invites, settings. */ export const space = { 'space.create': 'New space', 'space.create.name': 'Space name', 'space.create.slug': 'URL slug', 'space.create.description': 'Space description', 'space.settings.title': 'Space settings', 'space.settings.general': 'General', 'space.settings.members': 'Members', 'space.settings.roles': 'Roles', 'space.settings.invites': 'Invites', 'space.settings.channelPermissions': 'Channel permissions', 'space.settings.name': 'Space name', 'space.settings.description': 'Space description', 'space.settings.avatar': 'Space avatar', 'space.settings.saved': 'Space settings saved.', 'space.settings.danger': 'Danger zone', 'space.settings.deleteSpace': 'Delete space', 'space.settings.deleteConfirm': 'Deletion cannot be undone. Type the space name to confirm: {name}', 'space.settings.deleted': 'Space deleted.', 'space.members.title': 'Members', 'space.members.sub': 'Browse and search the people in this community.', 'space.members.recent': 'Recently joined', 'space.members.shown': 'Showing {shown} of {total} members', 'space.members.sort': 'Sort', 'space.members.sortJoined': 'Recently joined', 'space.members.sortName': 'By name', 'space.members.rowsPerPage': 'Rows per page', 'space.members.col.name': 'Name', 'space.members.col.joined': 'Joined', 'space.members.col.method': 'Join method', 'space.members.col.status': 'Status', 'space.members.owner': 'Community owner', 'space.members.invitedBy': 'Invited by {name}', 'space.members.joinedSelf': 'Joined directly', 'space.members.noMatch': 'No members match', 'space.members.refresh': 'Refresh members', 'space.members.open': 'Open the member list', 'space.members.invite': 'Invite members', 'space.members.remove': 'Remove member', 'space.members.removed': 'Member removed.', 'space.members.empty': 'No members yet', 'space.members.role': 'Role', 'space.members.joinedAt': 'Joined', 'space.roles.title': 'Roles', 'space.roles.groupCaption': 'Roles', 'space.roles.back': 'Back', 'space.roles.editorSub': 'Configure this role and its permissions — saved changes apply right away.', 'space.roles.settingsGroup': 'Display', 'space.roles.editTitle': 'Edit "{name}"', 'space.roles.permissionSearch': 'Search permissions', 'space.roles.scopeCommunity': 'Community scope', 'space.roles.clearPermissions': 'Clear permissions', 'space.roles.colorHint': 'Free-form colour: hex, rgb, hsl or a colour name.', 'space.roles.emptyHint': 'No roles yet — create one with “Create role” above.', 'space.roles.cancel': 'Cancel', 'space.roles.noPermissionMatch': 'No permissions match', 'space.roles.create': 'New role', 'space.roles.name': 'Role name', 'space.roles.permissions': 'Permissions', 'space.roles.created': 'Role created.', 'space.roles.deleted': 'Role deleted.', 'space.invites.title': 'Invites', 'space.invites.create': 'Create invite link', 'space.invites.expiresAt': 'Expires at', 'space.invites.maxUses': 'Maximum uses', 'space.invites.created': 'Invite link created.', 'space.invites.revoked': 'Invite link revoked.', 'space.invites.empty': 'No invite links yet', 'space.invites.copyLink': 'Copy invite link', 'space.invites.used': 'Used {used}/{max}', 'space.channelPermissions.title': 'Channel permissions', 'space.channelPermissions.sub': 'Override channel-level read and write access per member or role.', 'space.channelPermissions.saved': 'Channel permissions saved.', 'space.leave': 'Leave space', 'space.leave.confirm': 'Leave the space {name}?', 'space.left': 'Left the space.', 'space.join': 'Join space', 'space.joined': 'Joined the space.', 'space.create.nameRequired': 'Space name · Required', 'space.create.nameHint': 'Lowercase letters, digits and hyphens, up to 64 characters', 'space.create.nameInvalid': 'The name may contain only lowercase letters, digits and hyphens, 1-64 characters.', 'space.create.failed': 'Could not create the space. Please try again later.', 'space.create.descriptionPlaceholder': 'What is this space for?', 'space.create.private': 'Private space', 'space.create.creating': 'Creating…', 'space.menu.invite': 'Invite friends', 'space.menu.createRepo': 'Create repository', 'space.menu.createBoard': 'Create issue board', 'space.menu.createRoom': 'Create channel', 'space.menu.createDir': 'Create folder', 'space.menu.settings': 'Space settings', 'space.menu.privacy': 'Privacy settings', 'space.menu.leave': 'Leave space', 'space.invite.title': 'Invite friends', 'space.invite.sub': 'Invite new members to {space}. They receive the selected roles once they accept.', 'space.invite.submit': 'Send invite', 'space.invite.email': 'Email', 'space.invite.emailHint': 'For people outside the platform — they receive an invite email', 'space.invite.username': 'Or username', 'space.invite.usernameHint': 'For registered users — they also get an in-app notification', 'space.invite.expires': 'Expires at', 'space.invite.expiresHint': 'Leave empty for no expiry', 'space.invite.groups': 'Grant roles on join', 'space.invite.groupsEmpty': 'This space has no roles yet. Create one under Space settings → Roles first.', 'space.invite.groupsHint': 'Pick at least one role', 'space.invite.missingTarget': 'Provide an email or a username.', 'space.invite.sent': 'Invite sent: {target} can join after accepting.', 'space.invite.accept.crumb': 'INVITE', 'space.invite.accept.hint': 'PRIVATE LINK FROM AN INVITE EMAIL', 'space.invite.accept.heading': 'Accept invitation', 'space.invite.accept.headingSpace': 'Join {space}', 'space.invite.accept.sub': 'Accepting makes you a member with the roles chosen for this invitation.', 'space.invite.accept.joining': 'Joining…', 'space.invite.accept.signInNote': 'This invitation was addressed to a specific account: sign in (or sign up) first, then open the link from the email again.', 'space.invite.accept.login': 'Sign in', 'space.invite.accept.signup': 'Create an account', 'space.invite.accept.invalid': 'The link is missing its invite code — reopen it from the email.', 'space.invite.accept.notFound': 'This invitation does not exist or was revoked.', 'space.invite.accept.mismatch': 'The signed-in account is not the invitee. Sign in as the invited address and try again.', 'space.invite.accept.used': 'This invitation was already used or has expired.', 'space.invite.accept.failed': 'Could not join. Try again in a moment.', 'space.invite.accept.retry': 'Retry', 'space.invite.accept.home': 'Back to home', 'space.repo.title': 'Create repository', 'space.repo.name': 'Repository name', 'space.repo.nameHint': 'Lowercase letters, digits and hyphens', 'space.repo.description': 'Description · Optional', 'space.repo.dir': 'Parent folder', 'space.repo.defaultBranch': 'Default branch · Optional', 'space.repo.license': 'License · Optional', 'space.repo.initMessage': 'Initial commit message · Optional', 'space.repo.enableLfs': 'Enable Git LFS', 'space.repo.private': 'Private repository', 'space.board.create.title': 'Create issue board', 'space.board.nameField': 'Name', 'space.board.description': 'Description · Optional', 'space.board.icon': 'Icon · Optional', 'space.board.dir': 'Parent folder', 'space.room.title': 'Create channel', 'space.room.name': 'Channel name', 'space.room.nameHint': 'Lowercase letters, digits and hyphens', 'space.room.kind': 'Type', 'space.room.kind.text': 'Text channel', 'space.room.kind.voice': 'Voice channel', 'space.room.kind.stage': 'Stage channel', 'space.room.dir': 'Parent folder', 'space.room.topic': 'Topic · Optional', 'space.room.userLimit': 'Voice user limit · Optional', 'space.room.rateLimit': 'Slowmode in seconds · Optional', 'space.room.noLimit': '0 = no limit', 'space.room.private': 'Private channel (invite only)', 'space.dir.title': 'Create folder', 'space.dir.description': 'Folders group repositories and issue boards in the space tree.', 'space.dir.name': 'Folder name', 'space.dir.parent': 'Parent folder', 'space.dir.root': 'Root', 'space.privacy.title': 'Privacy settings', 'space.privacy.description': 'Direct message and mention permissions for your account, across every space.', 'space.privacy.dms': 'Allow direct messages', 'space.privacy.dmsHint': 'Let others send you direct messages', 'space.privacy.mentions': 'Allow mentions', 'space.privacy.mentionsHint': 'Let others mention you in messages', 'space.privacy.online': 'Show online status', 'space.privacy.onlineHint': 'Show your online status in member lists', 'space.privacy.saved': 'Privacy settings saved.', 'space.leave.title': 'Leave space', 'space.leave.sub': 'You will need a new invite to come back to {space}.', 'space.userLabel': '{name} (@{username})', 'space.permission.viewSpace': 'View space', 'space.permission.read': 'Read content', 'space.permission.message': 'Send messages', 'space.permission.manageMembers': 'Manage members', 'space.permission.manageRoles': 'Manage roles', 'space.permission.manageInvites': 'Manage invites', 'space.permission.manageBans': 'Manage bans', 'space.permission.manageChannels': 'Manage channels', 'space.permission.manageOverwrites': 'Manage permission overrides', 'space.discover.title': 'Discover spaces', 'space.discover.sub': 'Browse public spaces, their intro and member count, then ask to join.', 'space.discover.search': 'Search space names or descriptions', 'space.discover.sort.members': 'Recommended', 'space.discover.sort.newest': 'Newest', 'space.discover.cardSize': 'Card size', 'space.discover.cardSize.large': 'Large', 'space.discover.cardSize.medium': 'Medium', 'space.discover.cardSize.small': 'Small', 'space.discover.resultCount': '{count} public spaces', 'space.discover.loading': 'Loading spaces…', 'space.discover.empty': 'No matching spaces', 'space.discover.emptyHint': 'Try another keyword, or come back later.', 'space.discover.loadFailed': 'Failed to load spaces', 'space.discover.loadMore': 'Load more', 'space.discover.members': '{count} members', 'space.discover.joinLevel': 'Join requirement: {level}', 'space.discover.joinLevel.none': 'No extra requirement', 'space.discover.enter': 'Enter space', 'space.discover.requested': 'Request submitted', 'space.discover.pending': 'Pending review', 'space.discover.withdraw': 'Withdraw request', 'space.discover.withdrawn': 'Request withdrawn.', 'space.discover.cooldown': 'Cooling down', 'space.discover.cooldownUntil': 'You can apply again {time}', 'space.discover.apply': 'Ask to join', 'space.discover.closed': 'Not accepting requests', 'space.discover.rejected': 'Last request was declined', 'space.discover.dialogTitle': 'Ask to join {space}', 'space.discover.note': 'Message (optional)', 'space.discover.noteHint': 'Briefly say why you want to join, up to 512 characters.', 'space.discover.notePlaceholder': 'I would like to join because…', 'space.discover.submit': 'Submit request', 'space.discover.submitted': 'Request submitted; an admin will review it.', 'space.discover.submitFailed': 'Failed to submit request', 'space.discover.withdrawFailed': 'Failed to withdraw request', 'space.discover.cooldownError': 'Your last request was just declined; try again later.', 'space.discover.requirementError': "You do not meet this space's join requirement yet.", 'space.discover.notAllowedError': 'This space is not accepting join requests.', 'space.discover.docTitle': 'Discover spaces · GitDataAI', 'space.joinRequests.title': 'Join requests', 'space.joinRequests.sub': 'Review people asking to join; approving adds them as members.', 'space.joinRequests.filter.pending': 'Pending', 'space.joinRequests.filter.approved': 'Approved', 'space.joinRequests.filter.rejected': 'Declined', 'space.joinRequests.filter.all': 'All', 'space.joinRequests.empty': 'No join requests yet', 'space.joinRequests.emptyHint': 'Requests appear here, with a notification, as soon as someone applies.', 'space.joinRequests.loadFailed': 'Failed to load join requests', 'space.joinRequests.note': 'Message', 'space.joinRequests.noNote': 'No message provided', 'space.joinRequests.approve': 'Approve', 'space.joinRequests.reject': 'Decline', 'space.joinRequests.approved': 'Approved {name}.', 'space.joinRequests.rejected': 'Declined {name}.', 'space.joinRequests.status.pending': 'Pending', 'space.joinRequests.status.approved': 'Approved', 'space.joinRequests.status.rejected': 'Declined', 'space.joinRequests.status.withdrawn': 'Withdrawn', 'space.joinRequests.decidedBy': 'Decided by {name}', 'space.joinRequests.requestedAt': 'Requested {time}', 'space.joinRequests.loadMore': 'Load more', 'space.joinRequests.count': '{count} total', 'space.joinLevel.none': 'No extra requirement', 'space.joinLevel.mail': 'Verified email required', 'space.joinLevel.mailDay': 'Verified email and one-day-old account required', 'space.joinLevel.mailHour': 'Verified email and one-hour-old account required', 'space.joinLevel.mailPhone': 'Verified email and phone required', 'space.notify.all': 'All messages', 'space.notify.mentions': 'Mentions only', 'space.notify.nothing': 'Nothing', 'space.memberStatus.active': 'Active', 'space.memberStatus.inactive': 'Inactive', 'space.memberStatus.left': 'Left', 'space.memberStatus.removed': 'Removed', 'space.joinTrigger.issueReaction': 'Issue reaction', 'space.joinTrigger.commentReaction': 'Comment reaction', 'space.image.avatar': 'Space icon', 'space.image.avatarHint': 'Square recommended, at least 128×128', 'space.image.banner': 'Space banner', 'space.image.bannerHint': 'Shown atop lists and the space page', 'space.image.inviteBanner': 'Invite card image', 'space.image.inviteBannerHint': 'Used as the preview when sharing an invite', 'space.image.embedSplash': 'Embed background', 'space.image.embedSplashHint': 'Used by external embed pages', 'space.settings.sections.mine': 'My membership', 'space.settings.group.community': 'Community', 'space.settings.group.members': 'Members & permissions', 'space.settings.sections.general': 'Space profile', 'space.settings.sections.images': 'Icons and banners', 'space.settings.sections.join': 'Join rules', 'space.settings.sections.joinRequests': 'Join requests', 'space.settings.sections.bans': 'Bans', 'space.settings.sections.cleanup': 'Object cleanup', 'space.cleanup.ownerSub': 'Bulk-clean directories and objects in the space. Space owners only.', 'space.cleanup.notOwner': 'Object cleanup is available to the space owner only.', 'space.cleanup.sub': 'Delete or adjust visibility quickly: repositories can toggle public/private and be archived, channels can toggle public/private or be deleted, boards can be deleted, empty directories can be deleted, and nodes with visibility overwrites can be reset to the default.', 'space.cleanup.filterPlaceholder': 'Filter by name / path / type', 'space.cleanup.empty': 'No matching objects.', 'space.cleanup.children': '{count} child node(s)', 'space.cleanup.overwrites': '{count} visibility overwrite(s)', 'space.cleanup.archived': 'Archived', 'space.cleanup.makePrivate': 'Make private', 'space.cleanup.makePublic': 'Make public', 'space.cleanup.archive': 'Archive', 'space.cleanup.unarchive': 'Unarchive', 'space.cleanup.clearOverwrites': 'Clear visibility overwrites', 'space.cleanup.deleteBlocked': 'This node still has children; empty it first.', 'space.cleanup.confirmDelete': 'Delete "{name}"? This cannot be undone.', 'space.cleanup.confirmClearOverwrites': 'Clear every visibility overwrite on "{name}" and restore the default?', 'space.cleanup.updated': 'Updated.', 'space.cleanup.deleted': 'Deleted.', 'space.cleanup.overwritesCleared': 'Visibility overwrites cleared.', 'space.cleanup.kind.dir': 'Directory', 'space.cleanup.kind.object': 'Object', 'space.cleanup.kind.repo': 'Repository', 'space.cleanup.kind.board': 'Board', 'space.cleanup.kind.text': 'Text channel', 'space.cleanup.kind.voice': 'Voice channel', 'space.cleanup.kind.stage': 'Stage channel', 'space.cleanup.kind.category': 'Category', 'space.cleanup.kind.news': 'News channel', 'space.cleanup.kind.guildRoom': 'Channel', 'space.cleanup.kind.thread': 'Thread', 'space.settings.fullLoadFailed': 'Could not load the full space record; these forms fall back to the cached list row and some fields may be stale.', 'space.general.title': 'Space profile', 'space.general.sub': 'Name, description and how people join.', 'space.general.ownerOnly': 'Only the space owner can change this; you have read-only access.', 'space.general.name': 'Space name', 'space.general.nameHint': 'Lowercase letters, digits and hyphens only, up to 64 characters', 'space.general.description': 'Description', 'space.general.descriptionHint': 'Shown on the space card and directory page, up to 512 characters', 'space.general.welcome': 'Welcome message', 'space.general.welcomeHint': 'A note posted in the channel when someone joins', 'space.general.welcomePlaceholder': 'Welcome back — please read the channel topic before posting.', 'space.general.access': 'Access and joining', 'space.general.private': 'Private space (members only)', 'space.general.allowJoin': 'Allow join requests', 'space.general.joinLevel': 'Join requirement', 'space.general.allowInvite': 'Allow members to send invites', 'space.general.require2fa': 'Require two-factor authentication', 'space.general.save': 'Save profile', 'space.general.saved': 'Space profile saved.', 'space.general.readonly': 'Read-only information', 'space.general.id': 'Space ID', 'space.general.owner': 'Owner', 'space.general.members': 'Members', 'space.general.status': 'Status', 'space.general.createdUpdated': 'Created / updated', 'space.general.active': 'Active', 'space.general.inactive': 'Disabled', 'space.danger.ownerSub': 'Irreversible operations such as deleting the space are owner-only.', 'space.danger.notOwner': 'You are not the owner of this space, so you cannot delete it.', 'space.danger.sub': 'The space disappears immediately; restoring it requires the platform administrators.', 'space.danger.deleteName': 'Delete {name}', 'space.danger.description': 'Repositories, issue boards and channels go offline with this address. Members: {count}.', 'space.danger.confirmLabel': 'Type the space name {name} to confirm', 'space.danger.deleting': 'Deleting…', 'space.danger.confirm': 'Delete space', 'space.images.sub': 'Images are uploaded as raw bytes straight to object storage; each file must stay under 5 MB.', 'space.images.loadFailed': 'Could not load the images — you may lack the manage-channels permission.', 'space.images.tooLarge': 'The image exceeds 5 MB. Compress it and try again.', 'space.images.updated': '{label} updated.', 'space.images.deleted': '{label} deleted.', 'space.images.loading': 'Loading', 'space.images.unset': 'Not set', 'space.images.replace': 'Replace', 'space.membership.sub': 'These settings only affect your experience in this space.', 'space.membership.subJoined': 'Joined {date}. These settings only affect your experience in this space.', 'space.membership.save': 'Save my settings', 'space.membership.saved': 'Your space settings were saved.', 'space.alias.label': 'Space nickname', 'space.alias.hint': 'Leave empty to use your global name, up to 64 characters', 'space.alerts.label': 'Message alerts', 'space.alerts.mobilePush': 'Receive mobile push', 'space.alerts.suppressEveryone': 'Ignore @everyone mentions', 'space.alerts.suppressRoles': 'Ignore role mentions', 'space.alerts.hideMuted': 'Hide muted channels', 'space.members.count': '{count} members. Nicknames and alerts apply in this space only.', 'space.members.searchPlaceholder': 'Search members…', 'space.members.searchAria': 'Search members', 'space.members.usernamePlaceholder': 'Username', 'space.members.usernameAria': 'Username to add', 'space.members.add': 'Add member', 'space.members.added': 'Member added.', 'space.members.loading': 'Loading members…', 'space.members.emptyFiltered': 'No members match.', 'space.members.muted': 'Muted', 'space.members.collapse': 'Collapse', 'space.members.expand': 'Edit', 'space.members.mute': 'Mute this member', 'space.members.muteUntil': 'Muted until', 'space.members.muteForever': 'Leave empty for permanent', 'space.members.allowPush': 'Allow mobile push', 'space.members.save': 'Save member settings', 'space.members.saved': 'Member settings saved.', 'space.members.missingUser': 'This member has no user id', 'space.roles.sub': 'Roles group members and grant permissions in bulk. Their order sets how members are listed.', 'space.roles.namePlaceholder': 'Role name', 'space.roles.nameAria': 'New role name', 'space.roles.color': 'Colour', 'space.roles.colorAria': 'New role colour', 'space.roles.colorAria2': 'Role colour', 'space.roles.emojiAria': 'New role emoji', 'space.roles.loading': 'Loading roles…', 'space.roles.empty': 'No roles yet. Create one, then tick its permissions on the member row to grant them.', 'space.roles.noPermissions': 'No permissions yet', 'space.roles.createdAt': 'Created {date}', 'space.roles.permissionCount': '{count} permissions', 'space.roles.emoji': 'Emoji', 'space.roles.emojiHint': 'Optional, shown before the role name', 'space.roles.position': 'Order', 'space.roles.positionHint': 'Lower numbers come first', 'space.roles.save': 'Save role', 'space.roles.saved': 'Role updated.', 'space.roles.dirty': 'Unsaved changes', 'space.roles.selectMember': 'Select a member', 'space.roles.selectMemberPlaceholder': 'Select a member…', 'space.roles.granted': 'Role granted.', 'space.roles.grant': 'Grant', 'space.roles.revoked': 'Role revoked.', 'space.roles.revoke': 'Revoke', 'space.roles.joined': 'You joined the role.', 'space.roles.join': 'Join', 'space.roles.left': 'You left the role.', 'space.roles.leave': 'Leave', 'space.roles.noReadback': 'The server only exposes role writes — there is no read endpoint for which roles a member holds, so granted members cannot be listed here.', 'space.roles.delete': 'Delete role', 'space.invites.sub': 'Accepting makes someone a member with the selected roles; at least one role is required.', 'space.invites.missingTarget': 'Provide an email or a username.', 'space.invites.missingRole': 'Pick at least one role to grant.', 'space.invites.mode': 'Invite method', 'space.invites.byEmail': 'By email', 'space.invites.byUsername': 'By username', 'space.invites.email': 'Email address', 'space.invites.username': 'Username', 'space.invites.oneOf': 'Fill in either one', 'space.invites.expiresHint': 'Leave empty for no expiry', 'space.invites.grantLabel': 'Roles granted on accept · Required', 'space.invites.send': 'Send invite', 'space.invites.activeTitle': 'Outstanding invites', 'space.invites.loading': 'Loading invites…', 'space.invites.historyTitle': 'Past invites', 'space.invites.noEmail': 'No email recorded', 'space.invites.expiresOn': 'expires {date}', 'space.invites.acceptedOn': 'accepted {date}', 'space.invites.revoke': 'Revoke', 'space.invites.redeemTitle': 'Redeem an invite code', 'space.invites.redeemNote': 'The accept code only appears in the invite email — the API never returns it. If the recipient has no verified email they cannot open the link; invite them by username instead and they will see it in their notifications.', 'space.invites.code': 'Invite code', 'space.invites.redeemed': 'Invite code redeemed.', 'space.invites.state.pending': 'Pending', 'space.invites.state.accepted': 'Accepted', 'space.invites.state.revoked': 'Revoked', 'space.invites.state.expired': 'Expired', 'space.invites.nonePending': 'No pending invites.', 'space.joinRules.sub': 'People who meet the condition gain a role automatically — a way to promote keen issue-board contributors to members.', 'space.joinRules.deletedRole': 'Deleted role', 'space.joinRules.needRole': 'Create a role under Roles before configuring a rule.', 'space.joinRules.grantRole': 'Grant role', 'space.joinRules.selectRole': 'Select a role…', 'space.joinRules.trigger': 'Trigger', 'space.joinRules.matcher': 'Match', 'space.joinRules.matcherHint': 'Emoji name, for example thumbs_up', 'space.joinRules.created': 'Rule created.', 'space.joinRules.create': 'New rule', 'space.joinRules.loading': 'Loading rules…', 'space.joinRules.empty': 'No join rules yet.', 'space.joinRules.enabled': 'Active', 'space.joinRules.disabled': 'Disabled', 'space.joinRules.enable': 'Enable this rule', 'space.joinRules.updated': 'Rule updated.', 'space.joinRules.save': 'Save rule', 'space.joinRules.deleted': 'Rule deleted.', 'space.invites.expires': 'Expires at', 'space.bans.sub': 'Banned users cannot join unless a rule re-allows an individual capability.', 'space.bans.expires': 'Expires at', 'space.bans.expiresHint': 'Leave empty to ban permanently', 'space.bans.reason': 'Reason', 'space.bans.reasonHint': 'Admins only; recorded on the ban row', 'space.bans.banned': 'User banned.', 'space.bans.banUser': 'Ban user', 'space.bans.loading': 'Loading bans…', 'space.bans.empty': 'No bans recorded.', 'space.bans.unbanAt': 'lifts {date}', 'space.bans.permanent': 'permanent', 'space.bans.by': 'by {by} on {date}', 'space.bans.unbanned': 'Ban lifted.', 'space.bans.unban': 'Lift ban', 'space.bans.missingUser': 'This ban row has no user id', 'space.bans.saved': 'Ban settings updated.', 'space.bans.saveExceptions': 'Save exceptions', 'space.bans.allowSpeak': 'Allow speaking in voice channels', 'space.bans.allowPushRepo': 'Allow pushing to repositories', 'space.bans.allowCommentAny': 'Allow commenting on any issue', 'space.bans.allowAgentJoin': 'Allow agents to join the space', 'space.channelPermissions.sub2': 'Hide a folder or channel from specific roles and members, or force it visible.', 'space.channelPermissions.stance.deny': 'Hidden', 'space.channelPermissions.stance.inherit': 'Inherit', 'space.channelPermissions.stance.allow': 'Visible', 'space.channelPermissions.selectNode': 'Select a node', 'space.channelPermissions.emptyTree': 'The tree is empty', 'space.channelPermissions.repaired': 'Directory checked: {scanned} nodes scanned, {fixed} fixed.', 'space.channelPermissions.repair': 'Repair directory tree', 'space.channelPermissions.emptyNote': 'This space has no folders or channels yet.', 'space.channelPermissions.folder': 'Folder', 'space.channelPermissions.entry': 'Entry', 'space.channelPermissions.position': 'Order {position}', 'space.channelPermissions.archived': 'Archived', 'space.channelPermissions.noTopic': 'No topic', 'space.channelPermissions.byRole': 'By role', 'space.channelPermissions.byMember': 'By member', 'space.channelPermissions.defaultAlias': 'Default nickname', 'space.channelPermissions.rename': 'Rename', 'space.channelPermissions.renameHint': 'The server only allows changing the name', 'space.channelPermissions.renamed': 'Node renamed.', 'space.channelPermissions.saveName': 'Save name', 'space.channelPermissions.visibility': '{title} visibility', 'space.channelPermissions.addByUsername': 'Add an exception by username', 'space.channelPermissions.addByUsernameHint': 'Type a username directly when the member list is unavailable', 'space.channelPermissions.alreadyExceptional': 'That member is already in the exception list.', 'space.channelPermissions.exceptionAdded': 'Member exception added.', 'space.channelPermissions.addVisible': 'Add as visible', 'space.roles.emptyShort': 'No roles yet.', 'space.members.count_one': '{count} member. Nicknames and alerts apply in this space only.', 'space.members.count_other': '{count} members. Nicknames and alerts apply in this space only.', 'space.roles.permissionCount_one': '{count} permission', 'space.roles.permissionCount_other': '{count} permissions', } as const