feat: localize api keys page
This commit is contained in:
+110
-2
@@ -92,12 +92,66 @@ var TRANSLATIONS = {
|
||||
|
||||
// API Keys page
|
||||
'apikeys.title': 'API Keys',
|
||||
'apikeys.subtitle': 'Manage access tokens for external integrations',
|
||||
'apikeys.subtitle': 'Keys authenticate external MCP clients and workspace automation against Crank.',
|
||||
'apikeys.new': 'Create key',
|
||||
'apikeys.th.name': 'NAME',
|
||||
'apikeys.th.scope': 'SCOPE',
|
||||
'apikeys.th.created':'CREATED',
|
||||
'apikeys.th.last': 'LAST USED',
|
||||
'apikeys.callout.title': 'Keys are only shown once.',
|
||||
'apikeys.callout.body': 'Copy and store them securely immediately after creation — Crank stores only a hash. `Last used` updates after successful MCP authentication.',
|
||||
'apikeys.active.title': 'Active keys',
|
||||
'apikeys.active.subtitle': '{active} active · {revoked} revoked',
|
||||
'apikeys.search': 'Filter keys…',
|
||||
'apikeys.th.prefix': 'KEY PREFIX',
|
||||
'apikeys.th.scopes': 'SCOPES',
|
||||
'apikeys.th.status': 'STATUS',
|
||||
'apikeys.scope_ref': 'Scope reference',
|
||||
'apikeys.scope.read': 'Initialize MCP sessions, ping the server, and list tools for a workspace agent.',
|
||||
'apikeys.scope.write': 'Execute `tools/call` requests against published agent toolsets.',
|
||||
'apikeys.scope.deploy': 'Reserved for deploy-scoped automation. Today it also permits MCP read/write flows.',
|
||||
'apikeys.modal.title': 'Create API key',
|
||||
'apikeys.modal.name': 'Key name',
|
||||
'apikeys.modal.name_hint': 'A descriptive label to identify the key. Only visible to admins.',
|
||||
'apikeys.modal.name_placeholder': 'e.g. Production, CI pipeline',
|
||||
'apikeys.modal.scopes': 'Scopes',
|
||||
'apikeys.modal.reveal_title': 'Copy this key now.',
|
||||
'apikeys.modal.reveal_body': "It won't be shown again.",
|
||||
'apikeys.modal.copy': 'Copy to clipboard',
|
||||
'apikeys.modal.cancel': 'Cancel',
|
||||
'apikeys.modal.create': 'Create key',
|
||||
'apikeys.modal.done': "Done — I've copied the key",
|
||||
'apikeys.status.active': 'Active',
|
||||
'apikeys.status.revoked': 'Revoked',
|
||||
'apikeys.last_used.never': 'Never',
|
||||
'apikeys.empty.none': 'No API keys yet',
|
||||
'apikeys.empty.search': 'No keys match your search',
|
||||
'apikeys.loading': 'Loading…',
|
||||
'apikeys.error.api': 'Workspace or API is unavailable',
|
||||
'apikeys.error.load': 'Failed to load API keys',
|
||||
'apikeys.confirm.revoke': 'Revoke this key? All requests using it will fail immediately.',
|
||||
'apikeys.confirm.delete': 'Delete this key? This cannot be undone.',
|
||||
'apikeys.toast.revoke_title': 'Key revoked',
|
||||
'apikeys.toast.revoke_message': '{name} was revoked.',
|
||||
'apikeys.toast.revoke_error_title': 'Revoke failed',
|
||||
'apikeys.toast.revoke_error_message': 'Failed to revoke key',
|
||||
'apikeys.toast.delete_title': 'Key deleted',
|
||||
'apikeys.toast.delete_message': '{name} was deleted.',
|
||||
'apikeys.toast.delete_error_title': 'Delete failed',
|
||||
'apikeys.toast.delete_error_message': 'Failed to delete key',
|
||||
'apikeys.toast.scope_missing_title': 'Missing scope',
|
||||
'apikeys.toast.scope_missing_message': 'Select at least one scope before creating a key.',
|
||||
'apikeys.toast.create_title': 'API key created',
|
||||
'apikeys.toast.create_message': 'Copy the key now. It will not be shown again.',
|
||||
'apikeys.toast.create_error_title': 'Key creation failed',
|
||||
'apikeys.toast.create_error_message': 'Failed to create key',
|
||||
'apikeys.toast.copy_title': 'API key copied',
|
||||
'apikeys.toast.copy_message': 'Store the raw key securely. It cannot be revealed again.',
|
||||
'apikeys.toast.prefix_title': 'Key prefix copied',
|
||||
'apikeys.action.copy_prefix': 'Copy key prefix',
|
||||
'apikeys.action.revoke': 'Revoke key',
|
||||
'apikeys.action.delete': 'Delete',
|
||||
'apikeys.creating': 'Creating…',
|
||||
|
||||
// Logs page
|
||||
'logs.title': 'Logs',
|
||||
@@ -329,12 +383,66 @@ var TRANSLATIONS = {
|
||||
|
||||
// API Keys page
|
||||
'apikeys.title': 'API Ключи',
|
||||
'apikeys.subtitle': 'Управление токенами доступа для внешних интеграций',
|
||||
'apikeys.subtitle': 'Ключи аутентифицируют внешние MCP-клиенты и автоматизацию воркспейса в Crank.',
|
||||
'apikeys.new': 'Создать ключ',
|
||||
'apikeys.th.name': 'НАЗВАНИЕ',
|
||||
'apikeys.th.scope': 'ОБЛАСТЬ',
|
||||
'apikeys.th.created':'СОЗДАН',
|
||||
'apikeys.th.last': 'ПОСЛЕДНЕЕ ИСПОЛЬЗОВАНИЕ',
|
||||
'apikeys.callout.title': 'Ключ показывается только один раз.',
|
||||
'apikeys.callout.body': 'Скопируйте и сохраните его сразу после создания — Crank хранит только хэш. `Последнее использование` обновляется после успешной MCP-аутентификации.',
|
||||
'apikeys.active.title': 'Активные ключи',
|
||||
'apikeys.active.subtitle': '{active} активных · {revoked} отозванных',
|
||||
'apikeys.search': 'Фильтр ключей…',
|
||||
'apikeys.th.prefix': 'ПРЕФИКС КЛЮЧА',
|
||||
'apikeys.th.scopes': 'ОБЛАСТИ',
|
||||
'apikeys.th.status': 'СТАТУС',
|
||||
'apikeys.scope_ref': 'Справка по областям',
|
||||
'apikeys.scope.read': 'Инициализация MCP-сессий, ping сервера и получение списка инструментов для агента воркспейса.',
|
||||
'apikeys.scope.write': 'Выполнение `tools/call` для опубликованных наборов инструментов агента.',
|
||||
'apikeys.scope.deploy': 'Зарезервировано для deploy-автоматизации. Сейчас также разрешает MCP read/write сценарии.',
|
||||
'apikeys.modal.title': 'Создать API-ключ',
|
||||
'apikeys.modal.name': 'Имя ключа',
|
||||
'apikeys.modal.name_hint': 'Понятная метка для идентификации ключа. Видна только администраторам.',
|
||||
'apikeys.modal.name_placeholder': 'например, Production, CI pipeline',
|
||||
'apikeys.modal.scopes': 'Области',
|
||||
'apikeys.modal.reveal_title': 'Скопируйте ключ сейчас.',
|
||||
'apikeys.modal.reveal_body': 'Повторно он не будет показан.',
|
||||
'apikeys.modal.copy': 'Скопировать',
|
||||
'apikeys.modal.cancel': 'Отмена',
|
||||
'apikeys.modal.create': 'Создать ключ',
|
||||
'apikeys.modal.done': 'Готово — ключ скопирован',
|
||||
'apikeys.status.active': 'Активен',
|
||||
'apikeys.status.revoked': 'Отозван',
|
||||
'apikeys.last_used.never': 'Никогда',
|
||||
'apikeys.empty.none': 'API-ключей пока нет',
|
||||
'apikeys.empty.search': 'Нет ключей по текущему поиску',
|
||||
'apikeys.loading': 'Загрузка…',
|
||||
'apikeys.error.api': 'Воркспейс или API недоступен',
|
||||
'apikeys.error.load': 'Не удалось загрузить API-ключи',
|
||||
'apikeys.confirm.revoke': 'Отозвать этот ключ? Все запросы с ним сразу начнут падать.',
|
||||
'apikeys.confirm.delete': 'Удалить этот ключ? Действие нельзя отменить.',
|
||||
'apikeys.toast.revoke_title': 'Ключ отозван',
|
||||
'apikeys.toast.revoke_message': 'Ключ {name} отозван.',
|
||||
'apikeys.toast.revoke_error_title': 'Не удалось отозвать',
|
||||
'apikeys.toast.revoke_error_message': 'Не удалось отозвать ключ',
|
||||
'apikeys.toast.delete_title': 'Ключ удален',
|
||||
'apikeys.toast.delete_message': 'Ключ {name} удален.',
|
||||
'apikeys.toast.delete_error_title': 'Не удалось удалить',
|
||||
'apikeys.toast.delete_error_message': 'Не удалось удалить ключ',
|
||||
'apikeys.toast.scope_missing_title': 'Не выбрана область',
|
||||
'apikeys.toast.scope_missing_message': 'Выберите хотя бы одну область перед созданием ключа.',
|
||||
'apikeys.toast.create_title': 'API-ключ создан',
|
||||
'apikeys.toast.create_message': 'Скопируйте ключ сейчас. Повторно он не будет показан.',
|
||||
'apikeys.toast.create_error_title': 'Не удалось создать ключ',
|
||||
'apikeys.toast.create_error_message': 'Не удалось создать ключ',
|
||||
'apikeys.toast.copy_title': 'API-ключ скопирован',
|
||||
'apikeys.toast.copy_message': 'Сохраните исходный ключ в надежном месте. Повторно показать его нельзя.',
|
||||
'apikeys.toast.prefix_title': 'Префикс ключа скопирован',
|
||||
'apikeys.action.copy_prefix': 'Скопировать префикс ключа',
|
||||
'apikeys.action.revoke': 'Отозвать ключ',
|
||||
'apikeys.action.delete': 'Удалить',
|
||||
'apikeys.creating': 'Создание…',
|
||||
|
||||
// Logs page
|
||||
'logs.title': 'Логи',
|
||||
|
||||
Reference in New Issue
Block a user