Skip to content
Clone
98e06cb
586 lines 33.1 KB
/** Repository surfaces: browse, history, branches, releases, settings. */
export const repo = {
'repo.tabs.code': 'Code',
'repo.tabs.commits': 'Commits',
'repo.tabs.branches': 'Branches',
'repo.tabs.tags': 'Tags',
'repo.tabs.releases': 'Releases',
'repo.tabs.settings': 'Settings',
'repo.tabs.pulls': 'Pull requests',
'repo.unknownPath': '(unknown path)',
'repo.empty': 'This repository has no files',
'repo.loading': 'Loading repository…',
'repo.notFound': 'That repository does not exist or has been deleted.',
'repo.branch.default': 'Default branch',
'repo.branch.switch': 'Switch branch',
'repo.branch.create': 'New branch',
'repo.branch.name': 'Branch name',
'repo.branch.created': 'Branch created.',
'repo.branch.deleted': 'Branch deleted.',
'repo.branch.deleteConfirm': 'Delete branch {branch}?',
'repo.branch.empty': 'No branches',
'repo.tag.create': 'New tag',
'repo.tag.name': 'Tag name',
'repo.tag.created': 'Tag created.',
'repo.tag.deleted': 'Tag deleted.',
'repo.tag.empty': 'No tags',
'repo.file.history': 'File history',
'repo.file.download': 'Download file',
'repo.file.raw': 'Raw view',
'repo.file.blame': 'Blame',
'repo.file.copyPath': 'Copy path',
'repo.file.tooLarge': 'This file is too large to preview.',
'repo.file.binary': 'Binary files cannot be previewed.',
'repo.clone.title': 'Clone repository',
'repo.clone.https': 'HTTPS',
'repo.clone.ssh': 'SSH',
'repo.clone.copied': 'Clone URL copied.',
'repo.clone.button': 'Clone / Code',
'repo.clone.withSsh': 'Clone with SSH',
'repo.clone.withHttps': 'Clone with HTTPS',
'repo.clone.download': 'Download source code',
'repo.clone.downloadFailed': 'Could not build the archive — try again.',
'repo.commit.message': 'Commit message',
'repo.commit.author': 'Author',
'repo.commit.date': 'Date',
'repo.commit.sha': 'Commit hash',
'repo.commit.parent': 'Parent',
'repo.commit.empty': 'No commits',
'repo.commit.diffEmpty': 'No differences to display',
'repo.commit.unified': 'Unified view',
'repo.commit.split': 'Split view',
'repo.commit.whitespace': 'Ignore whitespace',
'repo.commit.filesChanged': '{count} files changed',
'repo.commit.insights': 'Commit insights',
'repo.release.create': 'New release',
'repo.release.title': 'Release title',
'repo.release.tag': 'Tag',
'repo.release.notes': 'Release notes',
'repo.release.draft': 'Draft',
'repo.release.prerelease': 'Pre-release',
'repo.release.published': 'Release published.',
'repo.release.deleted': 'Release deleted.',
'repo.release.empty': 'No releases yet',
'repo.release.downloads': 'Downloads',
'repo.settings.general': 'General',
'repo.settings.name': 'Repository name',
'repo.settings.description': 'Description',
'repo.settings.visibility': 'Visibility',
'repo.settings.defaultBranch': 'Default branch',
'repo.settings.saved': 'Repository settings saved.',
'repo.settings.danger': 'Danger zone',
'repo.settings.deleteRepo': 'Delete repository',
'repo.settings.deleteConfirm': 'Deletion cannot be undone. Type the repository name to confirm: {name}',
'repo.settings.deleted': 'Repository deleted.',
'repo.settings.sections.protection': 'Branch protection',
'repo.settings.sections.archives': 'Archives',
'repo.settings.sections.remotes': 'Remote mirrors',
'repo.settings.sections.locks': 'File locks',
'repo.settings.sections.lfs': 'LFS',
'repo.settings.sections.ci': 'CI configuration',
'repo.settings.sections.webhooks': 'Webhooks',
'repo.settings.sections.collaborators': 'Collaborators',
'repo.lfs.enabled': 'LFS enabled',
'repo.lfs.patterns': 'Tracked patterns',
'repo.lfs.objects': 'LFS objects',
'repo.action.add': 'Add',
'repo.action.browseCode': 'Browse code',
'repo.action.confirmDelete': 'Confirm delete',
'repo.action.details': 'Details',
'repo.action.refreshing': 'Refreshing…',
'repo.action.rename': 'Rename',
'repo.action.saving': 'Saving…',
'repo.action.setDefault': 'Set as default',
'repo.action.viewChanges': 'View changes',
'repo.error.actionFailed': 'The operation failed. Please try again later.',
'repo.error.actionFailedShort': 'The operation failed',
'repo.error.loadFailed': 'Failed to load',
'repo.error.saveFailed': 'Failed to save',
'repo.view.loadFailed': 'Failed to load the repository',
'repo.view.notFound': 'This repository does not exist or you do not have access to it',
'repo.view.archived': 'This repository is archived (read-only). Restore it in Settings.',
'repo.clone.notConfigured': 'Clone URL not configured',
'repo.clone.notConfiguredHint':
'The backend has no [git].base_url / http_clone_base_url, so clone URLs cannot be generated',
'repo.clone.sshHint': 'SSH clones require a public key registered under User settings → SSH keys',
'repo.clone.copiedLabel': 'Clone URL copied',
'repo.clone.copy': 'Copy clone URL',
'repo.clone.copyFailedHint': 'Copy failed — select the address on the left and copy it manually',
'repo.clone.copyManually': 'Copy manually',
'repo.clone.copiedStatus': 'Clone URL copied to the clipboard',
'repo.clone.copyFailedStatus': 'Copy failed — select the clone URL and copy it manually',
'repo.branch.defaultBadge': 'Default',
'repo.branch.current': 'Viewing',
'repo.branch.protected': 'Protected',
'repo.branch.protectedNote': 'Protected branches cannot be deleted, and renaming requires an administrator',
'repo.branch.protectedRenameBlocked': 'Protected branches cannot be renamed',
'repo.branch.deleteBlocked': 'The default branch and protected branches cannot be deleted',
'repo.branch.alreadyDefault': 'Already the default branch',
'repo.branch.makeDefaultHint': 'Make this the repository default branch',
'repo.branch.defaultSet': '“{name}” is now the default branch.',
'repo.branch.deletedName': 'Deleted branch “{name}”.',
'repo.branch.updated': 'Updated {time}',
'repo.branch.createHint':
'Branch names may contain letters, digits and . - _ / (no .., //, spaces, etc.) and must be at most 250 characters.',
'repo.branch.createSubmit': 'Create branch',
'repo.branch.startPoint': 'Start point',
'repo.branch.startPointHint': 'A branch name, tag or commit; defaults to the current revision.',
'repo.branch.createdName': 'Created branch “{name}”.',
'repo.branch.rename': 'Rename branch',
'repo.branch.renameHint': 'Renaming only affects this repository branch reference; local clones need to fetch again.',
'repo.branch.renameSubmit': 'Rename',
'repo.branch.newName': 'New branch name',
'repo.branch.sameName': 'The new name is the same as the current name.',
'repo.branch.renamed': 'Renamed branch “{from}” to “{next}”.',
'repo.branch.validate.empty': 'Enter a branch name.',
'repo.branch.validate.tooLong': 'A branch name can be at most {count} characters.',
'repo.branch.validate.startsWithDash': 'A branch name cannot start with a dash.',
'repo.branch.validate.endsWithSlash': 'A branch name cannot end with a slash.',
'repo.branch.validate.endsWithLock': 'A branch name cannot end with .lock.',
'repo.branch.validate.doubleDot': 'A branch name cannot contain two consecutive dots.',
'repo.branch.validate.atBrace': 'A branch name cannot contain the sequence @{.',
'repo.branch.validate.doubleSlash': 'A branch name cannot contain two consecutive slashes.',
'repo.branch.validate.backslash': 'A branch name cannot contain a backslash.',
'repo.branch.validate.whitespace': 'A branch name cannot contain spaces or control characters.',
'repo.branches.title': 'Branches',
'repo.branches.total': '{count} total',
'repo.branches.filter': 'Filter branches',
'repo.branches.filterPlaceholder': 'Filter branches…',
'repo.branches.listName': 'Branch list',
'repo.branches.loading': 'Loading branches…',
'repo.branches.noMatch': 'No matching branches.',
'repo.branches.none': 'This repository has no branches yet.',
'repo.branches.limitNote': 'Showing the first {count} branches; filtering only applies to the loaded branches.',
'repo.tags.title': 'Tags',
'repo.tags.total': '{count} total',
'repo.tags.listName': 'Tag list',
'repo.tags.loading': 'Loading tags…',
'repo.tags.none': 'This repository has no tags yet.',
'repo.tags.filterPlaceholder': 'Filter tags…',
'repo.tag.switch': 'Switch tag',
'repo.tag.annotated': 'Annotated tag',
'repo.tag.lightweight': 'Lightweight tag',
'repo.tag.deletedName': 'Deleted tag “{name}”.',
'repo.tag.createdName': 'Created tag “{name}”.',
'repo.tag.createHint':
'An annotated tag records the tagger and a message; a lightweight tag only points at the revision.',
'repo.tag.createSubmit': 'Create tag',
'repo.tag.target': 'Target revision',
'repo.tag.targetHint': 'A branch name, commit sha or another tag.',
'repo.tag.message': 'Message',
'repo.tag.messageLabel': 'Message (annotated tags)',
'repo.tag.messagePlaceholder': 'Highlights of this release…',
'repo.tag.nameRequired': 'The tag name is required.',
'repo.tag.detailTitle': 'Tag details · {name}',
'repo.tag.type': 'Type',
'repo.tag.targetCommit': 'Points at commit',
'repo.tag.tagger': 'Tagger',
'repo.tag.createdAt': 'Created at',
'repo.submodules.title': 'Submodules',
'repo.submodules.resolve': 'Resolve repository',
'repo.submodules.unresolved': 'Cannot resolve (the submodule may not exist or may not be visible)',
'repo.submodules.loadFailed': 'Failed to load the submodule list.',
'repo.breadcrumb.label': 'Repository path',
'repo.breadcrumb.root': 'Repository root',
'repo.commit.history': 'Commit history',
'repo.commit.backToHistory': 'Back to commit history',
'repo.commit.browseRevision': 'Browse this revision',
'repo.commit.loading': 'Loading commit…',
'repo.commit.what': 'commit',
'repo.commit.missing': 'This commit does not exist or has been rewritten.',
'repo.commit.noMessage': '(no commit message)',
'repo.commit.unknownAuthor': 'Unknown author',
'repo.commit.committer': 'Committer',
'repo.commit.root': 'First commit (no parent)',
'repo.commit.rootNoDiff': 'The first commit has no parent and the server cannot diff against the empty tree, so no patch is shown.',
'repo.commit.compareTo': 'Compared to {sha}',
'repo.commit.parentChip': 'Parent {sha}',
'repo.commit.parents': '{count} parent commits',
'repo.commit.parents_one': '{count} parent commit',
'repo.commit.parents_other': '{count} parent commits',
'repo.commit.latest': 'Latest commit',
'repo.commit.collapsedHint': 'Many changes — collapsed by default; click a file to expand it.',
'repo.commit.noFiles': 'This commit has no file changes (it may be empty or a merge commit).',
'repo.commit.status.added': 'Added',
'repo.commit.status.deleted': 'Deleted',
'repo.commit.status.renamed': 'Renamed',
'repo.commit.status.copied': 'Copied',
'repo.commit.status.modified': 'Modified',
'repo.commit.status.binary': 'Binary',
'repo.commit.filesChanged_one': '{count} file changed',
'repo.commit.filesChanged_other': '{count} files changed',
'repo.commits.total': '{count} total',
'repo.commits.viewAll': 'View all history',
'repo.commits.firstParent': 'First-parent only',
'repo.commits.loading': 'Loading commit history…',
'repo.commits.missing': 'This revision may have been deleted or rewritten.',
'repo.commits.none': 'This revision has no commits.',
'repo.commits.pageEmpty': 'This page is empty; go back to the previous page.',
'repo.diff.followAppearance': 'Currently following User settings · Appearance',
'repo.diff.unified': 'Unified',
'repo.diff.split': 'Split',
'repo.diff.binary': 'Binary file — no diff content is shown.',
'repo.diff.metaOnly': 'Only permission or metadata changes.',
'repo.diff.lineComments': '{count} comments on this line',
'repo.diff.lineComments_one': '{count} comment on this line',
'repo.diff.lineComments_other': '{count} comments on this line',
'repo.diff.commentOnLine': 'Comment on this line',
'repo.diff.truncated': 'The diff is long — truncated to the first {count} lines.',
'repo.pager.prev': 'Previous',
'repo.pager.next': 'Next',
'repo.pager.page': 'Page {current} / {pages}',
'repo.tree.loading': 'Loading directory…',
'repo.tree.what': 'directory',
'repo.tree.empty': 'This directory is empty.',
'repo.tree.tableLabel': 'Repository files',
'repo.tree.name': 'Name',
'repo.tree.size': 'Size',
'repo.tree.parent': 'Up to parent directory',
'repo.file.backToList': 'Back to file list',
'repo.file.loading': 'Loading file…',
'repo.file.what': 'file',
'repo.file.blameHint': 'Show the last commit that changed each line (blame)',
'repo.file.blameJsonHint': 'Available in JSON mode for private repositories',
'repo.file.missingOid': 'Missing file identifier; cannot preview in private-repository mode.',
'repo.file.binaryDetail': 'Binary file · {size} · Preview not supported',
'repo.file.truncated': 'The file is large; the server truncated the response.',
'repo.file.markdownView': 'Markdown display mode',
'repo.file.preview': 'Preview',
'repo.file.source': 'Source',
'repo.file.unavailable': 'This file cannot be previewed.',
'repo.file.truncatedDetail': 'Too large to preview ({size}); the server truncated the response.',
'repo.file.pdfLoading': 'Rasterising the first page…',
'repo.file.pdfStreaming': 'Rendered {done}/{total} pages; the rest are still arriving…',
'repo.file.pdfTruncated': 'This document exceeds 400 pages; only the first 400 are shown.',
'repo.file.pdfPageAlt': 'Page {page}',
'repo.file.pdfPageFailed': 'Page {page} failed to render.',
'repo.file.pdfCounter': '{page} / {total}',
'repo.file.pdfPrev': 'Previous page',
'repo.file.pdfNext': 'Next page',
'repo.file.pdfZoomIn': 'Zoom in',
'repo.file.pdfZoomOut': 'Zoom out',
'repo.file.pdfFailed': 'This PDF could not be loaded.',
'repo.file.pdfUnreadable': 'This PDF could not be parsed; it may be encrypted or corrupt.',
'repo.empty.startTitle': 'Start with the first commit',
'repo.empty.startNote': 'The repository is ready. Add your project files and let the idea take shape here.',
'repo.empty.addFiles': '# add files',
'repo.empty.cloneNotConfigured':
'No clone URL is configured yet. Once it is, the push instructions will appear here.',
'repo.blame.loading': 'Computing line attribution…',
'repo.blame.unsupported': 'Blame is not available for this file (binary or currently unreadable).',
'repo.blame.empty':
'The server returned no attribution data (the file may be empty or not present at this revision).',
'repo.blame.what': 'Blame',
'repo.blame.hint': 'Click the attribution on the left to open the commit.',
'repo.revision': 'Revision {rev}',
'repo.release.loading': 'Loading releases…',
'repo.release.what': 'releases',
'repo.release.backToList': 'Back to list',
'repo.release.savedDraft': 'Draft saved.',
'repo.release.publishedNow': 'Published.',
'repo.release.prereleaseUpdated': 'Pre-release flag updated.',
'repo.release.deletedNow': 'Release deleted.',
'repo.release.notFound': 'That release does not exist.',
'repo.release.created': 'Release created.',
'repo.release.none': 'No releases yet. Pushing a tag creates a draft automatically, or you can create one manually.',
'repo.release.publishedBadge': 'Published',
'repo.release.commitCount': '{count} commits',
'repo.release.commitCount_one': '{count} commit',
'repo.release.commitCount_other': '{count} commits',
'repo.release.system': 'System',
'repo.release.body': 'Body',
'repo.release.saveDraft': 'Save draft',
'repo.release.publish': 'Publish',
'repo.release.markPrerelease': 'Mark pre-release',
'repo.release.unmarkPrerelease': 'Unmark pre-release',
'repo.release.noBody': '(no content)',
'repo.release.publishedImmutable': 'A published release’s content can no longer be edited.',
'repo.release.new': 'New release',
'repo.release.pickTagNote': 'Pick an existing tag; the release will point at that tag’s commit.',
'repo.release.tagsFailed': 'Failed to load tags. Please try again later.',
'repo.release.noTags': 'No tags available. Create one under Branches & tags first, or push a new tag.',
'repo.release.selectTag': 'Select a tag…',
'repo.release.tagAge': '({age})',
'repo.release.titleOptional': 'Title (optional)',
'repo.release.saveAsDraft': 'Save as a draft first',
'repo.comment.unknownUser': 'Unknown user',
'repo.comment.resolved': 'Resolved',
'repo.comment.outdated': 'Outdated',
'repo.comment.resolve': 'Resolve',
'repo.comment.unresolve': 'Unresolve',
'repo.comment.updateFailed': 'Failed to update the comment status',
'repo.comment.deleteFailed': 'Failed to delete the comment',
'repo.comment.delete': 'Delete comment',
'repo.comment.createFailed': 'Failed to post the comment',
'repo.comment.placeholder': 'Comment on this line…',
'repo.comment.submit': 'Post comment',
'repo.refs.selectBranch': 'Select branch',
'repo.refs.commit': '{sha} (commit)',
'repo.refs.current': 'Current revision {rev}; select a branch',
'repo.refs.branchLabel': 'Branches',
'repo.refs.tagLabel': 'Tags',
'repo.refs.commitLabel': 'Commits',
'repo.refs.searchBranches': 'Search branches',
'repo.refs.searchTags': 'Search tags',
'repo.refs.noMatch': 'No matches — try a different keyword.',
'repo.refs.noBranches': 'No branches yet',
'repo.refs.noTags': 'No tags yet',
'repo.aside.starFailed': 'Cannot update the star right now. Please try again later.',
'repo.aside.overview': 'Repository overview',
'repo.aside.noDescription': 'This repository’s story starts with its code.',
'repo.aside.website': 'Website',
'repo.aside.openWebsite': 'Open {url} in a new window',
'repo.aside.size': 'Repository size',
'repo.aside.license': 'License',
'repo.aside.starBusy': 'Updating…',
'repo.aside.starred': 'Starred · {count}',
'repo.aside.star': 'Star repository · {count}',
'repo.aside.languages': 'Languages',
'repo.aside.primaryLanguage': 'Primary language: {language}',
'repo.settings.nav.general': 'General',
'repo.settings.nav.features': 'Tabs',
'repo.featuresSettings.sub': 'Control which tabs the repository strip shows and in what order. Space owners only.',
'repo.featuresSettings.allowPr': 'Allow pull requests',
'repo.featuresSettings.allowPrHint':
'When off, the Pull requests tab is hidden for everyone and creating pull requests is rejected.',
'repo.featuresSettings.orderTitle': 'Tab order',
'repo.featuresSettings.orderHint':
'Reorder Commits / Pull requests / Branches / Pipelines / Releases. Code and Settings stay pinned.',
'repo.featuresSettings.moveUp': 'Move {name} up',
'repo.featuresSettings.moveDown': 'Move {name} down',
'repo.featuresSettings.saved': 'Tab settings saved.',
'repo.settings.nav.topics': 'Topics',
'repo.settings.nav.remotes': 'Remotes',
'repo.settings.nav.import': 'Import',
'repo.settings.nav.archives': 'Archives & downloads',
'repo.settings.nav.insights': 'Insights & maintenance',
'repo.settings.nav.locks': 'LFS locks',
'repo.settings.nav.protection': 'Protection rules',
'repo.settings.nav.ci': 'CI/CD',
'repo.settings.navLabel': 'Repository settings sections',
'repo.settings.generalSub': 'Description, homepage, visibility, Git LFS and the default branch. Space owners only.',
'repo.settings.field.description': 'Description',
'repo.settings.field.website': 'Website',
'repo.settings.field.websiteHint': 'Public homepage; leave blank when unset.',
'repo.settings.field.defaultBranchLoadFailed': 'Failed to load branches; only the saved default branch is shown.',
'repo.settings.field.privateLabel': 'Private repository',
'repo.settings.field.private': 'Private (visible to members only)',
'repo.settings.field.enableLfs': 'Enable Git LFS',
'repo.settings.generalSaved': 'General settings saved.',
'repo.settings.saveSettings': 'Save settings',
'repo.settings.unsaved': 'Unsaved changes',
'repo.settings.readonlyInfo': 'Repository info (read-only)',
'repo.settings.fact.id': 'Repository ID',
'repo.settings.fact.objectFormat': 'Object format',
'repo.settings.fact.createdAt': 'Created',
'repo.settings.fact.updatedAt': 'Last updated',
'repo.settings.fact.lastPushed': 'Last push',
'repo.settings.fact.never': 'Never',
'repo.settings.fact.sizes': 'Git / LFS size',
'repo.settings.fact.storageLimit': 'Storage limit',
'repo.settings.fact.unlimited': 'Unlimited',
'repo.settings.fact.counts': 'Branches / tags / commits',
'repo.settings.fact.social': 'PRs / stars / watchers',
'repo.settings.fact.license': 'License',
'repo.settings.fact.licenseUnknown': 'Not detected',
'repo.settings.fact.primaryLanguage': 'Primary language',
'repo.settings.fact.languageUnknown': 'Not analyzed',
'repo.settings.topicAdded': 'Added topic “{name}”.',
'repo.settings.topicRemoved': 'Removed topic “{name}”.',
'repo.settings.topicPlaceholder': 'e.g. devops, cli-tool',
'repo.settings.topicWillSavePrefix': 'Will be saved as',
'repo.settings.topicsSub':
'Topics make a repository discoverable. Only lowercase letters, digits and hyphens are allowed; the server creates missing topics automatically.',
'repo.settings.topicsLoading': 'Loading topics…',
'repo.settings.topicsEmpty': 'This repository has no topics yet.',
'repo.protection.sub':
'Branch protection policies gate pushes, force pushes and merges; whitelisted members can bypass the matching restriction.',
'repo.protection.orderNote':
'Matching order: when several policies match a branch, the server picks the more specific pattern.',
'repo.protection.create': 'New branch protection policy',
'repo.protection.loading': 'Loading protection policies…',
'repo.protection.what': 'protection policies',
'repo.protection.empty': 'No protection rules yet. At least one is recommended for the default branch.',
'repo.protection.deleteConfirm': 'Delete the protection for “{pattern}”?',
'repo.protection.deleteLabel': 'Delete policy',
'repo.protection.doneSuffix': ' completed.',
'repo.protection.failedSuffix': ' failed: ',
'repo.protection.unknownError': 'unknown error',
'repo.protection.chip.approvals': 'Needs {count} approvals',
'repo.protection.chip.noApprovals': 'No approvals required',
'repo.protection.chip.restrictPush': 'Restrict pushes',
'repo.protection.chip.noForcePush': 'Block force pushes',
'repo.protection.chip.pushWhitelist': 'Push whitelist',
'repo.protection.chip.mergeWhitelist': 'Merge whitelist',
'repo.protection.chip.approvalWhitelist': 'Approval whitelist',
'repo.protection.chip.dismissStale': 'Dismiss stale approvals',
'repo.protection.chip.blockRejected': 'Block merges on rejected reviews',
'repo.protection.chip.blockChangeRequested': 'Block merges on change requests',
'repo.protection.chip.blockOutdated': 'Block merges when the branch is behind',
'repo.protection.chip.signedCommits': 'Require signed commits',
'repo.protection.chip.protectedFiles': 'Protected files: {patterns}',
'repo.protection.chip.unprotectedFiles': 'Unprotected files: {patterns}',
'repo.protection.edit': 'Edit policy',
'repo.protection.deleteTitle': 'Delete policy',
'repo.protection.hideWhitelist': 'Hide whitelist',
'repo.protection.manageWhitelist': 'Manage whitelist',
'repo.protection.kind.push': 'Push',
'repo.protection.kind.merge': 'Merge',
'repo.protection.kind.approval': 'Approval bypass',
'repo.protection.addFailed': 'Failed to add',
'repo.protection.removeFailed': 'Failed to remove',
'repo.protection.selectUser': 'Select a user…',
'repo.protection.userOption': '{name} (@{username})',
'repo.protection.groupLabel': '(group)',
'repo.protection.whitelistEmpty': 'This policy has no whitelisted members.',
'repo.protection.whitelistDisabledNote':
'The matching whitelist switch is off in this policy; entries will have no effect.',
'repo.protection.tagWhitelistTitle': 'Tag protection whitelist',
'repo.protection.tagWhitelistNote':
'A tag push is rejected when it matches a policy and the pusher is not whitelisted.',
'repo.protection.tagPolicyNamePlaceholder': 'Tag pattern, e.g. release/*',
'repo.protection.tagPolicyCreate': 'New tag policy',
'repo.protection.tagPolicyEmpty': 'No tag protection policies yet.',
'repo.protection.createFailed': 'Could not create.',
'repo.protection.deleteFailed': 'Could not delete.',
'repo.protection.branchRequired': 'The branch pattern is required.',
'repo.protection.updated': 'Policy updated.',
'repo.protection.created': 'Policy created.',
'repo.protection.editTitle': 'Edit protection policy',
'repo.protection.formDesc': 'Branch patterns support globs (for example main, release/*, *).',
'repo.protection.branchPattern': 'Branch pattern',
'repo.protection.requiredApprovals': 'Required approvals (0–10)',
'repo.protection.field.enablePush': 'Restrict pushes (allowed by default)',
'repo.protection.field.enableForcePush': 'Block force pushes',
'repo.protection.field.enablePushWhitelist': 'Enable the push whitelist',
'repo.protection.field.enableMergeWhitelist': 'Enable the merge whitelist',
'repo.protection.field.enableApprovalsWhitelist': 'Enable the approval whitelist',
'repo.protection.field.blockOnRejected': 'Block merges on rejected reviews',
'repo.protection.field.blockOnChangeRequested': 'Block merges on change-requested reviews',
'repo.protection.field.blockOnOutdated': 'Block merges when the source branch is behind',
'repo.protection.field.dismissStale': 'Dismiss stale approvals after new commits',
'repo.protection.field.requireSigned': 'Require signed commits',
'repo.protection.protectedPatterns': 'Protected file patterns (comma-separated globs, optional)',
'repo.protection.unprotectedPatterns': 'Unprotected file patterns (comma-separated globs, optional)',
'repo.locks.sub':
'Lock large-file paths to avoid concurrent overwrites. Locks held by others need an administrator to force-release.',
'repo.locks.disabledNote':
'Git LFS is not enabled, so the server rejects every lock request. Enable it to create and release locks.',
'repo.locks.enabled': 'Git LFS enabled — you can now create locks.',
'repo.locks.summary': 'You hold {ours} locks; others hold {theirs}.',
'repo.locks.pathPlaceholder': 'Path to lock, e.g. assets/video.mp4',
'repo.locks.pickFile': 'Choose file',
'repo.locks.submitting': 'Submitting…',
'repo.locks.create': 'New lock',
'repo.locks.unlocked': 'Released {path} (the request fails when it was not locked).',
'repo.locks.pathHint':
'Paths are relative to the repository root; press Enter or click “New lock” to submit. Locks are unique per path.',
'repo.locks.loading': 'Loading locks…',
'repo.locks.empty': 'No LFS locks right now.',
'repo.locks.locked': 'Locked {path}.',
'repo.locks.released': 'Released {path}.',
'repo.locks.forceReleased': 'Force-released {path}.',
'repo.locks.confirmRelease': 'Confirm release',
'repo.locks.forceRelease': 'Force release',
'repo.locks.release': 'Release',
'repo.locks.releasePath': 'Release this path',
'repo.locks.loadMore': 'Load more',
'repo.locks.firstPage': 'Back to the first page',
'repo.locks.treeFailed': 'Failed to read the repository tree: {reason} You can also type the path directly.',
'repo.locks.parentDir': 'Parent directory',
'repo.locks.validate.required': 'Specify the file path to lock first (relative to the repository root).',
'repo.locks.validate.nul': 'The path cannot contain null characters.',
'repo.locks.validate.tooLong': 'A path can be at most {count} characters.',
'repo.locks.validate.trailingSlash': 'Locks target a single file, so the path must not end with a slash.',
'repo.locks.validate.dotdot': 'The path cannot contain a .. segment.',
'repo.locks.validate.empty': 'The path cannot be empty.',
'repo.locks.validate.tooLongDetail': 'The path is too long: {detail}.',
'repo.locks.validate.badOid': 'The oid must be `sha256:<64 hex digits>`.',
'repo.locks.explanation.401': 'Your session has expired; sign in again and retry.',
'repo.locks.explanation.403':
'Your account cannot write to this repository (Write/Admin or a space owner is required).',
'repo.locks.explanation.404': 'The repository does not exist, or Git LFS is not enabled. Locks require it.',
'repo.locks.explanation.409': 'This path already has a lock, or conflicts with another lock.',
'repo.locks.explanation.500': 'The backend failed; retry later or try another path.',
'repo.locks.rejected': 'The server rejected this path: {detail}',
'repo.locks.invalid': 'The submitted value failed server validation.',
'repo.locks.explainedWithDetail': '{explanation} ({detail})',
'repo.locks.failedWithCode': 'The operation failed ({code}).',
'repo.archives.formatTar': 'tar (uncompressed)',
'repo.archives.archivedNote': 'The repository is archived; writes will be rejected.',
'repo.archives.restored': 'The repository is writable again.',
'repo.archives.sub': 'Archive state, on-demand snapshot archives and full-reference bundle packaging.',
'repo.archives.status': 'Archive state: {state}',
'repo.archives.statusArchived': 'Archived (read-only)',
'repo.archives.statusWritable': 'Active (writable)',
'repo.archives.archiveNote':
'Once archived, the repository is no longer a regular write target and pushes are rejected; you can restore it at any time.',
'repo.archives.restore': 'Restore repository',
'repo.archives.confirmArchive': 'Confirm archive',
'repo.archives.archive': 'Archive repository',
'repo.archives.snapshotTitle': 'Create a snapshot archive',
'repo.archives.revision': 'Revision',
'repo.archives.format': 'Format',
'repo.archives.pathPrefix': 'Path prefix (optional)',
'repo.archives.pathPrefixHint': 'Package only the contents of this directory, e.g. app/.',
'repo.archives.created': 'Archive created.',
'repo.archives.createAndLink': 'Create and get the download link',
'repo.archives.reuseHint':
'Do not repackage; just issue a fresh short-lived link for an existing archive. It fails when that revision has no archive yet — use “Create and get the download link” instead.',
'repo.archives.linkRefreshed': 'A fresh download link was issued.',
'repo.archives.reuse': 'Reuse an existing archive',
'repo.archives.bundleLabel': 'git bundle (all refs)',
'repo.archives.bundleCreated': 'Bundle packaged.',
'repo.archives.bundle': 'Package all refs as a bundle',
'repo.archives.factContent': 'Content',
'repo.archives.factSize': 'Size',
'repo.archives.openDownload': 'Download in a new tab',
'repo.archives.linkNote': 'Links are short-lived; click “Reuse an existing archive” to get a new one.',
'repo.remotes.sub':
'Git remotes configured for this repository. URLs must use https://, ssh:// or git:// and must not point at localhost or private addresses.',
'repo.remotes.loading': 'Loading remotes…',
'repo.remotes.empty': 'No remotes configured yet.',
'repo.remotes.fetchResult': 'Fetch: {added} new refs, {updated} updated.',
'repo.remotes.fetched': 'Fetched from “{name}”.',
'repo.remotes.fetch': 'Fetch',
'repo.remotes.pushResult': 'Push: {pushed} succeeded, {rejected} rejected.',
'repo.remotes.pushed': 'Pushed to “{name}”.',
'repo.remotes.push': 'Push',
'repo.remotes.deleted': 'Deleted remote “{name}”.',
'repo.remotes.upsertTitle': 'Add or update a remote',
'repo.remotes.name': 'Name',
'repo.remotes.nameHint': 'Cannot start with a dash, cannot contain spaces, at most 255 characters.',
'repo.remotes.url': 'URL',
'repo.remotes.tokenPlaceholder': 'Token (optional, this request only)',
'repo.remotes.refspecPlaceholder': 'refspec (for pushes; blank uses the default)',
'repo.remotes.saved': 'Saved remote “{name}”.',
'repo.remotes.save': 'Save remote',
'repo.remotes.mirrorResult': 'Mirror import: {commits} commits, default branch {branch}.',
'repo.remotes.mirrorDone': 'Mirror import complete.',
'repo.remotes.mirrorHint': 'Import every ref of an external repository into this one in mirror mode',
'repo.remotes.mirror': 'Mirror-import this URL',
'repo.remotes.note':
'The token is used for this request only and is never stored; a mirror import overwrites refs with the same name, so double-check the URL. To create and migrate a repository from GitHub / GitLab / Gitea, use the community menu’s “Import repository”; job progress shows under Settings → Import.',
'repo.insights.sub':
'Language stats, contributor rankings and commit activity. Stats are a persisted cache and need a rescan after changes.',
'repo.insights.rescanned': 'Language stats rescanned.',
'repo.insights.scanning': 'Scanning…',
'repo.insights.rescan': 'Rescan languages',
'repo.insights.rescanNote':
'The scan walks the directory tree of the current revision and takes longer for large repositories.',
'repo.insights.languages': 'Languages ({count})',
'repo.insights.languagesEmpty': 'No language stats yet — click “Rescan languages” above.',
'repo.insights.primary': 'Primary',
'repo.insights.total': 'Total {size}',
'repo.insights.contributors': 'Contributors ({count})',
'repo.insights.contributorsEmpty': 'No contributor stats yet.',
'repo.insights.commits': '{count} commits',
'repo.insights.commits_one': '{count} commit',
'repo.insights.commits_other': '{count} commits',
'repo.insights.activity': 'Commit activity',
'repo.insights.branchPlaceholder': 'Branch; blank uses the default',
'repo.insights.activityTotal': 'Total {count} commits',
'repo.insights.activityEmpty': 'No activity stats for this branch.',
'repo.release.titleField': 'Title',
'repo.branch.updatedAt': 'Updated {time}',
} as const