Upgrade mobile UX to Oasis 0.9.0

Rebase onto upstream 0.9.0. Mobile topbar (logo->home, avatar->profile),
hexagon category nav (hive) and bottom bar; remove the six top-bar
buttons (inbox/pm/publish/search/graphos/peers) that cluttered the header.
Theme OasisMobileUX carries topbar/hexagon/bottombar styles.
This commit is contained in:
s1to 2026-08-01 13:41:09 +02:00
parent de36b38851
commit 8d21216362
69 changed files with 8974 additions and 820 deletions

View file

@ -1,26 +1,6 @@
const { a, em, strong } = require('../../../server/node_modules/hyperaxe');
module.exports = {
ru: {
bbAdd: "Добавить",
bbQuickActions: "Быстрые действия",
bbPickTitle: "Закрепить модуль",
bbPickDesc: "Выберите модуль для слота + в нижней панели.",
bbPickNone: "Нет",
bbManage: "Изменить",
bbYourBar: "Ваша панель",
bbRemove: "Убрать",
bbFull: "Достигнут максимум",
bbDone: "Готово",
activityChangeFilter: "Сменить фильтр",
emptyConnectHint: "Подключитесь к пабу для синхронизации с сетью.",
emptyConnectCta: "Подключиться к пабу",
menuCommunity: "Сообщество",
activityGroupCommunity: "Сообщество и управление",
activityGroupOrg: "Организация",
activityGroupComm: "Коммуникация",
activityGroupEconomy: "Экономика",
activityGroupMedia: "Контент и медиа",
activityGroupOther: "Другое",
languageName: "Русский",
shopOrderStatusPaid: "Оплата получена",
shopOrderStatusReceived: "Получено",
@ -433,7 +413,8 @@ module.exports = {
publish: "Написать",
contentWarningPlaceholder: "Добавьте тему к записи (необязательно)",
privateWarningPlaceholder: "Добавьте жителей для отправки приватной записи (необязательно)",
publishWarningPlaceholder: "...",
publishWarningPlaceholder: "Текст ограничен 7000 символами.",
publishTooLong: "Ваш пост слишком длинный. Пожалуйста, сократите его.",
publishCustomDescription: [
"ПОМНИТЕ: Благодаря технологии блокчейн, после публикации запись невозможно отредактировать или удалить.",
],
@ -498,7 +479,89 @@ module.exports = {
passwordLengthInfo: "Пароль должен содержать минимум 32 символа.",
passwordImport: "Введите пароль для расшифровки данных, которые будут сохранены в домашней директории системы (имя файла: secret)",
exportPasswordPlaceholder: "Используйте строчные, заглавные буквы, цифры и символы",
fileInfo: "Ваш зашифрованный секретный ключ будет сохранён в домашней директории системы (имя файла: oasis.enc)",
fileInfo: "Ваш зашифрованный секретный ключ будет скачан на ваше устройство (имя файла: oasis.enc)",
developer: "Разработка",
devTitle: "Разработка",
welcomeBannerText: "Добро пожаловать в OASIS. Выполните эти быстрые шаги, чтобы настроить свой аватар.",
welcomeBannerAction: "Начать!",
welcomeTitle: "Добро пожаловать",
welcomeStepGreetingAction: "Отправить",
welcomeJoinPubButton: "Войти в паб",
welcomeStepLarpAction: "Вступить в «Академию»",
welcomeStepLarpText: "Присоединяйтесь к нашей ролевой игре живого действия.",
welcomeStepLarpTitle: "Присоединиться к L.A.R.P.",
welcomeStepGreetingTitle: "Отправьте «Привет, мир!»",
welcomeStepGreetingText: "Отправьте сообщение, чтобы другие жители могли вас найти.",
welcomeJoinPub: "Присоединиться:",
welcomeDescription: "Несколько вещей, которые стоит сделать перед началом.",
welcomeProgress: "Выполнено",
welcomeStepDone: "готово",
welcomeStepPending: "не сделано",
welcomeSkip: "Не сейчас",
welcomeStepLanguageTitle: "Выберите язык",
welcomeStepLanguageText: "Oasis говорит на нескольких языках. Изменить можно в любой момент.",
welcomeStepProfileTitle: "Заполните профиль",
welcomeStepProfileText: "Выберите имя, добавьте описание и поставьте изображение, чтобы другие жители вас узнавали.",
welcomeStepProfileAction: "Сохранить профиль",
welcomeStepFederationTitle: "Присоединитесь к основной сети",
welcomeStepFederationText: "Подключитесь к нашему пабу, чтобы встретить других жителей и начать репликацию.",
welcomeStepFederationAction: "К приглашениям",
welcomeStepBackupTitle: "Сохраните свой ID",
welcomeStepBackupText: "Ваша личность — это файл ключа на этом устройстве.",
welcomeStepBackupWarning: "ЕСЛИ ВЫ ЕГО ПОТЕРЯЕТЕ, НИКТО НЕ СМОЖЕТ ЕГО ВОССТАНОВИТЬ.",
welcomeStepBackupAction: "Резервная копия!",
welcomeCompleteTitle: "Всё готово.",
welcomeCompleteText: "Ваш узел готов. Дальше сеть растёт вместе с теми, на кого вы подписаны.",
welcomeFindPeople: "Найти жителей",
devFilterFiles: "ФАЙЛЫ",
devFilterSearch: "ПОИСК",
devFilterModules: "МОДУЛИ",
devFilterTranslations: "ПЕРЕВОДЫ",
devFilterStyles: "СТИЛИ",
devFilterTests: "ТЕСТЫ",
devVersion: "Версия",
devNodeVersion: "Node",
devStatsTests: "Наборы тестов",
devParentFolder: "Родительская папка",
devOpenFolder: "открыть",
devDescription: "Изучайте исходный код, работающий на этом узле.",
devTreeTitle: "Файлы",
devSearchTitle: "Поиск по коду",
devMapTitle: "Модули",
devRoot: "корень",
devRootButton: "КОРЕНЬ",
devSearchPlaceholder: "Текст для поиска в коде",
devAnyExtension: "Любой файл",
devSearchButton: "Искать",
devStatsFiles: "Файлы",
devStatsLines: "Строки",
devStatsModules: "Модули",
devStatsLanguages: "Языки",
devNotViewable: "нельзя открыть",
devEmptyFolder: "Эта папка пуста.",
devSize: "Размер",
devShowing: "Показано",
devLine: "строка",
devReportBug: "Сообщить об Ошибке",
devCreateTask: "Создать Задачу",
devRaw: "RAW",
devReportContext: "Найдено при чтении исходного кода Oasis",
devTaskPrefix: "Проверить",
devPrevPage: "Предыдущие строки",
devNextPage: "Следующие строки",
devMatches: "совпадений",
devFilesScanned: "файлов проверено",
devNoResults: "Совпадений пока нет.",
devColModule: "Модуль",
devColState: "Состояние",
devColModel: "Модель",
devColView: "Представление",
devColRoutes: "Маршруты",
devColTests: "Тесты",
devOn: "вкл",
devOff: "выкл",
modulesDevLabel: "Разработка",
modulesDevDescription: "Модуль для управления исходным кодом Oasis.",
themeIntro:
"Выберите тему.",
setTheme: "Установить тему",
@ -700,7 +763,7 @@ module.exports = {
spreadLabel: "Распространить",
spreadHint: "Распространить вашим сторонникам (через ваш feed).",
welcomePmSubject: "Hello World!",
welcomePmBody: "Добро пожаловать в Oasis — свободная, одноранговая, федеративная и зашифрованная социальная сеть с распределённой архитектурой только по приглашениям.\n\nНесколько интересных мест, с которых можно начать:\n\n- /profile — Отредактируй аватар, имя, описание и какие модули видны на твоей публичной стороне.\n- /invites — Добавь pub, чтобы федерироваться с остальной сетью.\n- /peers — Посмотри, кто на связи, пересканируй LAN, экспортируй или импортируй списки пиров.\n- /inhabitants — Открывай и заходи к аватарам других людей.\n- /tribes — Создавай или вступай в приватные группы со сквозным шифрованием.\n- /inbox — Читай и отправляй приватные сообщения.\n- /activity — Смотри свежую активность — свою и твоей сети.\n- /publish — Напиши пост или поделись изображением, аудио, видео или документом.\n\nНесколько интересных мест для подключения:\n\n- /fediverse — Управляйте своими другими аккаунтами федиверса, включая отправку и получение контента.\n\nЭто сообщение было отправлено приватно от тебя самому себе, поэтому для его получения не требовалось соединение.",
welcomePmBody: "Добро пожаловать в Oasis — свободная, одноранговая, федеративная и зашифрованная социальная сеть с распределённой архитектурой только по приглашениям.\n\nНесколько интересных мест, с которых можно начать:\n\n- /profile — Отредактируй аватар, имя, описание и какие модули видны на твоей публичной стороне.\n- /invites — Добавь pub, чтобы федерироваться с остальной сетью.\n- /peers — Посмотри, кто на связи, пересканируй LAN, экспортируй или импортируй списки пиров.\n- /inhabitants — Открывай и заходи к аватарам других людей.\n- /tribes — Создавай или вступай в приватные группы со сквозным шифрованием.\n- /inbox — Читай и отправляй приватные сообщения.\n- /activity — Смотри свежую активность — свою и твоей сети.\n- /publish — Напиши пост или поделись изображением, аудио, видео или документом.\n- /search — Ищите содержимое сети по типу.\n\nНесколько интересных мест для подключения:\n\n- /fediverse — Управляйте своими другими аккаунтами федиверса, включая отправку и получение контента.\n\nЭто сообщение было отправлено приватно от тебя самому себе, поэтому для его получения не требовалось соединение.",
profileVisibilityTitle: "Видимость публичного профиля",
profileVisibilityHint: "Выберите поля, видимые другим жителям. По умолчанию показана только Карма.",
profileSensorsSectionTitle: "Сенсоры",
@ -1231,6 +1294,9 @@ module.exports = {
eventButton: "СОБЫТИЯ",
taskButton: "ЗАДАЧИ",
votesButton: "ГОЛОСОВАНИЯ",
industryButton: "ПРОМЫШЛЕННОСТЬ",
projectButton: "ПРОЕКТЫ",
shopProductButton: "ТОВАРЫ",
reportButton: "ОТЧЁТЫ",
feedButton: "ЛЕНТА",
marketButton: "РЫНОК",
@ -1259,7 +1325,7 @@ module.exports = {
trendingItemStatus: "Статус элемента",
trendingTotalVotes: "Всего голосов",
trendingTotalOpinions: "Всего мнений",
trendingNoContentMessage: "Трендового контента пока нет.",
trendingNoContentMessage: "Трендов пока нет.",
trendingAuthor: "Автор",
trendingCreatedAtLabel: "Создано",
trendingTotalCount: "Всего",
@ -1448,7 +1514,7 @@ module.exports = {
transfersCreatedAt: "Создано",
transfersConfirmations: "ПОДТВЕРЖДЕНИЯ",
transfersContainingBlock: "Содержащий блок",
transfersExportContract: "Создать контракт",
transfersExportContract: "Смарт-контракт",
transfersConfirmButton: "Подтвердить перевод",
transfersNoItems: "Переводы не найдены.",
transfersMineSectionTitle: "Ваши переводы",
@ -1574,7 +1640,7 @@ module.exports = {
cvDeleteButton: "Удалить",
cvNoCV: "Резюме не найдено.",
blogSubject: "Тема",
blogMessage: "Текст ограничен 8096 символами.",
blogMessage: "Сообщение",
blogImage: "Загрузить медиа (макс: 50MB)",
blogPublish: "Предварительный просмотр",
noPopularMessages: "Популярных сообщений пока нет",
@ -2214,6 +2280,7 @@ module.exports = {
agendaFilterReports: "ОТЧЁТЫ",
agendaFilterTransfers: "ПЕРЕВОДЫ",
agendaFilterJobs: "ВАКАНСИИ",
agendaFilterIndustry: "ПРОМЫШЛЕННОСТЬ",
agendaFilterProjects: "ПРОЕКТЫ",
agendaFilterCalendars: "КАЛЕНДАРИ",
agendaNoItems: "Назначений не найдено.",
@ -2331,16 +2398,31 @@ module.exports = {
privateMessage: "ЛС",
pmSendTitle: "Личные сообщения",
pmSend: "Отправить!",
pmDescription: "Используйте эту форму для отправки зашифрованного сообщения другим жителям.",
pmCancel: "Отмена",
pmReset: "Сбросить",
pmSharedKeyHint: "Передайте этот ключ получателю по другому каналу. Он нужен для расшифровки.",
pmDescription: "Используйте эту форму, чтобы отправить зашифрованное сообщение/файл другим жителям.",
pmComposeTitle: "Отправить сообщение",
pmRecipients: "Получатели",
pmRecipientsHint: "Введите Oasis ID через запятую",
pmLevelOfExposition: "Level of exposition",
pmLimitsHint: "Up to 7 recipients per message. Body capped at 8096 characters.",
pmLimitsHint: "До 7 получателей на сообщение.",
pmTextPlaceholder: "Текст ограничен 7000 символами.",
pmSubject: "Тема",
pmSubjectHint: "Введите тему сообщения",
pmText: "Сообщение",
pmCrypterChip: "2xE2E",
pmCrypterDecryptButton: "Расшифровать",
fileShareTitle: "Поделиться файлом",
fileShareRecipientPlaceholder: "@...=.ed25519",
fileShareFileLabel: "Файл",
fileShareDownload: "Скачать",
fileShareMutualError: "Вы можете делиться файлами только с жителями при взаимной поддержке.",
fileShareNoFile: "Файл не выбран.",
fileShareTooLarge: "Файл превышает допустимый размер.",
fileShareFailed: "Не удалось подготовить файл.",
fileShareSendError: "Не удалось отправить файл.",
fileShareUnavailable: "Этот файл сейчас недоступен. Попробуйте позже.",
pmCrypterBadKey: "Общий ключ неверный!",
pmCrypterTooLong: "Сообщение слишком длинное для шифрования с помощью Crypter. Сократите его и попробуйте снова.",
pmCrypterCipherLabel: "Повторно зашифрованное сообщение",
@ -2352,15 +2434,27 @@ module.exports = {
pmNoSubject: "(без темы)",
pmSubjectLabel: "Тема:",
pmBodyLabel: "Тело",
pmBotJobs: "42-JobsBOT",
pmBotProjects: "42-ProjectsBOT",
pmBotMarket: "42-MarketBOT",
pmBotJobs: "JobsBot",
pmBotProjects: "ProjectsBot",
pmBotMarket: "MarketBot",
pmBotShops: "ShopsBot",
pmBotPolitical: "PoliticalBot",
politicalBotLarpTitle: "Правящий дом L.A.R.P сменился.",
politicalBotParliamentTitle: "В Парламенте начался новый цикл правления.",
politicalBotTribeTitle: "В одном из ваших племён начался новый цикл правления.",
politicalBotLarpIntro: "Теперь в этом цикле правит {house}: {cycle}",
politicalBotParliamentIntro: "Текущее правление — {gov}",
politicalBotParliamentIntroLeader: "Текущее правление — {gov}, осуществляет {leader}",
politicalBotTribeIntro: "Текущее правление в племени {tribe} — {gov}",
politicalBotTribeIntroLeader: "Текущее правление в племени {tribe} — {gov}, осуществляет {leader}",
politicalBotLeaderLabel: "Лидер",
inboxJobSubscribedTitle: "Новая подписка на вашу вакансию",
pmInhabitantWithId: "Житель с OASIS ID:",
pmHasSubscribedToYourJobOffer: "подписался на вашу вакансию",
inboxProjectCreatedTitle: "Создан новый проект",
pmHasCreatedAProject: "создал проект",
inboxMarketItemSoldTitle: "Товар продан",
inboxShopSoldTitle: "Товар продан",
pmYourItem: "Ваш товар",
pmHasBeenSoldTo: "был продан",
pmFor: "за",
@ -2395,7 +2489,7 @@ module.exports = {
visitContent: "Посетить контент",
banking: "Банкинг",
bankingTitle: "Банкинг",
bankingDescription: "Исследуйте текущую стоимость ECOin и соответствующее распределение UBI, распределяемое за эпоху на основе участия и доверия.",
bankingDescription: "Экономика ECOin: баланс, базовый доход, налоги и ценность промышленности.",
bankOverview: "Обзор",
bankEpochs: "Эпохи",
bankRules: "Правила",
@ -2428,6 +2522,10 @@ module.exports = {
bankEpochId: "ID эпохи",
bankRuleHash: "Хэш снимка правил",
bankViewEpoch: "Просмотр эпохи",
bankYourIndustryBalance: "Ваша доля в промышленности",
bankYourUbiMonth: "Ваш БОД (в этом месяце)",
bankYourFundsMonth: "Ваши средства (в этом месяце)",
bankIndustryBalance: "Промышленное производство (оценка)",
bankUserBalance: "Ваш баланс",
ecoWalletNotConfigured: "Кошелёк ECOin не настроен",
editWallet: "Редактировать кошелёк",
@ -2466,7 +2564,7 @@ module.exports = {
pubIdPlaceholder: "@PUB_ID.ed25519",
bankUbiAvailableNo: "НЕТ СРЕДСТВ!",
bankUbiAvailableOk: "ДОСТУПНО!",
bankUbiAvailability: "Доступность UBI",
bankUbiAvailability: "БОД (сеть)",
bankAlreadyClaimedThisMonth: "Уже получено в этом месяце",
bankUbiThisMonth: "БОД (этот месяц)",
bankUbiLastClaimed: "БОД (последнее получение)",
@ -2892,6 +2990,208 @@ module.exports = {
jobsTagsLabel: "Теги",
jobsTagsPlaceholder: "тег1, тег2, тег3",
noJobsMatch: "Вакансий не найдено.",
industrySearchPlaceholder: "Поиск фабрик…",
industryAllSectors: "Все секторы",
industryVisitButton: "Открыть промышленность",
industryAdvanceTo: "Перевести в",
industryAmount: "Сумма",
industryApproveBuild: "Одобрить",
industryBackToFacility: "← Фабрика",
industryBlueprint: "Чертёж",
industryBlueprintLabel: "Промышленный чертёж",
industryBlueprints: "Чертежи",
industryBuild: "Сборка",
industryBuildNotes: "Заметки",
industryBuildStart: "Дата начала",
industryVoteUpdateButton: "Голос за обновление",
industryVoteDeleteButton: "Голос за удаление",
industryRevokeVote: "Отозвать",
industryTimeLeft: "Осталось времени",
industryBuildEnd: "Дата окончания",
industryBuilds: "Сборки",
industryBuildTitle: "Название",
industryContribute: "Внести вклад",
industryContributeEco: "Внести ECO",
industryContributeLabor: "Внести труд",
industryContributeButton: "Внести вклад",
industryContributeMaterial: "Внести материал",
industryContributions: "Вклады",
industryContributors: "участники",
industryCreateBlueprintButton: "Создать чертёж",
industryDistribute: "Распределить",
industryDistributeButton: "Распределить по долям",
industryDistribution: "Распределение",
industryEcoAmount: "Сумма (ECO)",
industryEcoContribHint: "Вклады в ECO передаются управляющему как хранителю казны сборки.",
industryEditBlueprint: "Редактировать чертёж",
industryFacility: "Фабрика",
industryKindLabel: "Тип",
industryKind_labor: "Труд",
industryKind_material: "Материал",
industryKind_eco: "Средства",
industryLaborHours: "Труд (часы)",
industryHours: "Часы",
industryLicense: "Лицензия",
industryMaterialItem: "Материал",
industryMaterials: "Материалы",
industryMaterialsHint: "Один материал в строке в формате название:количество:цена.",
industryEstMaterials: "Итого материалы",
industryEstLabor: "Итого труд",
industryEstTaxes: "Налоги",
industryEstTotal: "Оценочная цена",
industryBuildingPrice: "Цена изготовления",
industryFinalPrice: "Итоговая цена",
industryBlueprintDescPlaceholder: "Характеристики, размеры, вес, документация…",
industryMaterialValue: "Стоимость (ECO)",
industryMember: "Участник",
industryNewBlueprint: "Новый чертёж",
industryNewBuild: "Предложить сборку",
industryEditBuild: "Редактировать производство",
industryNoBlueprint: "— нет —",
industryNeedBlueprint: "Сначала создайте чертёж: каждое производство изготавливает его.",
industryNoBlueprints: "Пока нет чертежей.",
industryNoBuilds: "Пока нет сборок.",
industryNote: "Заметка",
industryOutput: "Выход",
industryOutputItem: "Название продукта",
industryOutputKind: "Тип продукта",
industryOutputQty: "Единиц за производство",
industryOutputUnit: "Единица измерения",
industryOutputValue: "Стоимость выхода (ECO, напр. от продажи)",
industryPayout: "Выплата",
industryPoints: "Karma",
industryPostJob: "Создать вакансию",
industryPot: "Банк",
industryProposeBuildButton: "Предложить сборку",
industryProposer: "Инициатор",
industryAuthor: "Автор",
industrySellOnMarket: "Отправить на рынок",
industrySendToProjects: "Создать проект",
industryShare: "Доля",
industryShares: "Доли",
industrySkills: "Навыки",
industryTreasury: "Казна",
industryKind_physical: "Физический",
industryKind_digital: "Цифровой",
industryBuildStatus_PROPOSED: "ПРЕДЛОЖЕНО",
industryBuildStatus_REJECTED: "ОТКЛОНЁН",
industryBuildStatus_APPROVED: "ОДОБРЕНО",
industryBuildStatus_STOCKING: "СНАБЖЕНИЕ",
industryBuildStatus_IN_PRODUCTION: "В ПРОИЗВОДСТВЕ",
industryBuildStatus_COMPLETED: "ЗАВЕРШЕНО",
industryBuildStatus_FAILED: "ПРОВАЛЕНО",
pmBotIndustry: "IndustryBot",
industryBotAdmittedTitle: "Вас приняли на фабрику.",
industryBotApplicationTitle: "Новая заявка на вступление в вашу фабрику.",
industryBotInvitedTitle: "Вас пригласили на фабрику.",
industryBotDissolvedTitle: "Фабрика, к которой вы принадлежите, была распущена.",
industryBotBuildApprovedTitle: "Сборка одобрена.",
industryBotDistributedTitle: "Выход сборки распределён.",
industryFilterRules: "ПРАВИЛА",
industryRulesTitle: "Правила",
industryRulesIntro: "Industry позволяет жителям коллективно владеть средствами производства: Фабрика — это принадлежащая сети мастерская, которой никто не владеет частно.",
industryRulesSteward: "Основатель — управляющий, хранитель, а не владелец: он не может в одиночку продать, приватизировать или распустить Фабрику.",
industryRulesMembership: "Политика членства задаёт способ вступления: Открытая (сразу), Голосованием (принимают голосом участников) или Только по приглашению (сначала должен пригласить участник).",
industryRulesQuorum: "Кворум — минимальное число участников, которые должны проголосовать, чтобы решение засчиталось, чтобы маленькую Фабрику не решал один человек.",
industryRulesMajority: "Большинство — доля голосов для принятия (0,5 = половина, 1 = единогласие); решение проходит, когда голоса ЗА достигают хотя бы max(кворум, участники × большинство).",
industryRulesDecisions: "Участники голосуют за приём новых, одобрение сборок и роспуск Фабрики; управляющий не может обойти эти коллективные решения.",
industryRulesBlueprints: "Чертежи — свободные (COPYLEFT) рецепты: входы (материалы, часы труда, навыки) и выход (физический или цифровой продукт), и любой может их форкнуть.",
industryRulesBuilds: "Сборка — производственный заказ: ПРЕДЛОЖЕНО → ОДОБРЕНО (голосованием) → СНАБЖЕНИЕ → В ПРОИЗВОДСТВЕ → ЗАВЕРШЕНО, и принимает вклады только после одобрения.",
industryRulesContributions: "Участники вносят труд (часы), материалы (заявленная стоимость в ECO) или ECO в сборку; каждый вклад даёт карму.",
industryRulesLaborRate: "Ставка труда — стоимость в ECO одного рабочего часа на этой Фабрике; она переводит часы в карму, чтобы справедливо сравнивать труд и капитал: карма = часы × ставка + стоимость материалов + ECO.",
industryRulesShares: "Ваша доля в сборке — это ваша карма ÷ общая карма, и она определяет, сколько стоимости выхода вы получите.",
industryRulesDistribution: "После завершения производства стюард распределяет банк (средства производства плюс стоимость продажи) между участниками пропорционально их долям.",
industryRulesTreasury: "Вклады в ECO хранит управляющий как хранитель казны сборки до распределения; все движения записываются в сети, а споры могут идти в Courts.",
industryJobs: "Вакансии",
industryNoJobs: "Пока нет вакансий.",
industryCreatePosition: "Создать вакансию",
industryViewCV: "Резюме",
industryReportButton: "Пожаловаться",
industryCreateTask: "Создать задачу",
industryOpenDispute: "Открыть спор",
industryMaterialsPlaceholder: "solar-panel:2:120\nbattery:1:80\nkit:1:15",
industryOutputUnitPlaceholder: "напр. шт., кг, лицензия",
industryOutputItemPlaceholder: "напр. робот",
industryOutputQtyPlaceholder: "напр. 5",
industrySkillsPlaceholder: "напр. пайка, сети, солнечная-установка",
industryCreateInvite: "Создать приглашение",
industryPauseVotes: "Голоса за статус",
industryTitle: "Промышленность",
industryDescription: "Модуль для коллективного управления средствами производства.",
industryLabel: "Промышленность",
typeIndustryBuild: "СБОРКА",
typeIndustryBlueprint: "ЧЕРТЁЖ",
typeIndustryAllocation: "РАСПРЕДЕЛЕНИЕ",
typeIndustry: "ПРОМЫШЛЕННОСТЬ",
modulesIndustryLabel: "Промышленность",
modulesIndustryDescription: "Модуль для коллективного управления средствами производства.",
industryFilterAll: "ВСЕ",
industryFilterMember: "УЧАСТНИК",
industryFilterBlueprints: "ЧЕРТЕЖИ",
industryFilterBuilds: "ПРОИЗВОДСТВА",
industryFilterMine: "МОИ",
industryFilterActive: "РАБОТАЕТ",
industryFilterPaused: "НА ПАУЗЕ",
industryFilterDissolved: "РАСПУЩЕННЫЕ",
industryAllTitle: "Промышленность",
industryMemberTitle: "Фабрики, где я состою",
industryMineTitle: "Мои фабрики",
industryActiveTitle: "Работает",
industryPausedTitle: "Фабрики на паузе",
industryDissolvedTitle: "Распущенные фабрики",
industryNoFacilitiesFound: "Фабрики не найдены.",
industryCreateFacility: "Создать фабрику",
industryMembers: "Участники",
industryMemberBadge: "УЧАСТНИК",
industryName: "Название",
industryNamePlaceholder: "Название фабрики",
industryDescriptionLabel: "Описание",
industryDescriptionPlaceholder: "Что производит эта фабрика?",
industrySector: "Сектор",
industryMembershipPolicy: "Политика членства",
industryQuorum: "Кворум",
industryMajority: "Большинство",
industryLaborRate: "Ставка труда",
industryCreateButton: "Создать фабрику",
industryUpdateButton: "Обновить",
industrySteward: "Управляющий",
industryStatusActive: "РАБОТАЕТ",
industryStatusPaused: "НА ПАУЗЕ",
industryStatusDissolved: "РАСПУЩЕНА",
industryStatusLabel: "Статус",
industryJoinButton: "Присоединиться",
industryApplyButton: "Подать заявку",
industryLeaveButton: "Покинуть",
industryInviteButton: "Пригласить",
industryInvitePlaceholder: "@...=.ed25519",
industryInviteNeeded: "Для вступления нужно приглашение.",
industryPauseButton: "Голосовать за паузу",
industryResumeButton: "Голосовать за возобновление",
industryEditButton: "Редактировать",
industryDeleteButton: "Удалить",
industryBackToList: "← Промышленность",
industryPendingApplicants: "Ожидающие заявки",
industryVotesYes: "да",
industryVotesNo: "нет",
industryAlreadyVoted: "проголосовал",
industryAdmit: "Принять",
industryReject: "Отклонить",
industryDissolveTitle: "Распустить фабрику",
industryDissolveHint: "Роспуск требует коллективного голосования; управляющий не может распустить её в одиночку.",
industryDissolveVote: "Голосовать за роспуск",
industrySector_software: "ПО",
industrySector_hardware: "Оборудование",
industrySector_agriculture: "Сельское хозяйство",
industrySector_textile: "Текстиль",
industrySector_energy: "Энергетика",
industrySector_food: "Продукты",
industrySector_construction: "Строительство",
industrySector_media: "Медиа",
industrySector_services: "Услуги",
industrySector_other: "Другое",
industryPolicy_open: "Открытая",
industryPolicy_vote: "Голосованием",
industryPolicy_invite: "Только по приглашению",
projectsTitle: "Проекты",
projectsDescription: "Создавайте, финансируйте и следите за проектами сообщества в вашей сети.",
projectCreateProject: "Создать проект",
@ -3260,6 +3560,8 @@ module.exports = {
chatOpenTitle: "Open Chats",
chatClosedTitle: "Closed Chats",
chatDescription: "Описание",
chatMessageReply: "Ответ",
chatMessageLabel: "Сообщение",
chatCategory: "Категория",
chatStatus: "СТАТУС",
chatFilterAll: "ВСЕ",