feat(phase1): rebrand to TTRPG Player and drop Git updates feed
Rename product to TTRPG Player (TTRPGPlayer / com.ttrpgplayer.app), use .ttrpg.zip for new saves while keeping .dnd.zip import, accept TTRPG- and DND- license keys on client, and remove sync-update-feed plus CI push to DndGamePlayerUpdates. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -113,7 +113,7 @@
|
||||
<div class="wrap">
|
||||
<div class="card">
|
||||
<img class="logo" src="./app-window-icon.png" width="72" height="72" alt="" />
|
||||
<h1 class="title" data-boot-title>DNDGamePlayer</h1>
|
||||
<h1 class="title" data-boot-title>TTRPG Player</h1>
|
||||
<p class="subtitle">редактор и проигрыватель</p>
|
||||
<p class="version" data-boot-version></p>
|
||||
<p class="status" id="boot-status">Запуск…</p>
|
||||
|
||||
@@ -4,6 +4,7 @@ import { createPortal } from 'react-dom';
|
||||
import { ipcChannels, type UpdaterCheckResponse } from '../../shared/ipc/contracts';
|
||||
import { EULA_CURRENT_VERSION } from '../../shared/license/eulaVersion';
|
||||
import type { LicenseSnapshot } from '../../shared/license/licenseSnapshot';
|
||||
import { PROJECT_ZIP_EXTENSION } from '../../shared/project/projectZipExtension';
|
||||
import type { AssetId, MediaAsset, Project, ProjectId, SceneAudioRef, SceneId } from '../../shared/types';
|
||||
import { AppLogo } from '../shared/branding/AppLogo';
|
||||
import { getDndApi } from '../shared/dndApi';
|
||||
@@ -377,7 +378,7 @@ export function EditorApp() {
|
||||
title={t('top.backToProjects')}
|
||||
>
|
||||
<AppLogo className={styles.brandLogo} size={26} />
|
||||
<div className={styles.brandTitle}>DNDGamePlayer</div>
|
||||
<div className={styles.brandTitle}>{t('app.brandTitle')}</div>
|
||||
</button>
|
||||
<div className={styles.fileToolbar}>
|
||||
<button
|
||||
@@ -1319,7 +1320,7 @@ function RenameProjectModal({
|
||||
<div className={styles.flex1}>
|
||||
<Input value={fileBaseName} onChange={setFileBaseName} placeholder="my_campaign" />
|
||||
</div>
|
||||
<div className={styles.fileSuffix}>.dnd.zip</div>
|
||||
<div className={styles.fileSuffix}>{PROJECT_ZIP_EXTENSION}</div>
|
||||
</div>
|
||||
{!fileNameOk ? <div className={styles.fieldError}>{t('rename.fileInvalid')}</div> : null}
|
||||
{fileNameDup ? <div className={styles.fieldError}>{t('rename.fileDup')}</div> : null}
|
||||
|
||||
@@ -60,6 +60,8 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'common.delete': 'Удалить',
|
||||
'common.closeMenu': 'Закрыть меню',
|
||||
|
||||
'app.brandTitle': 'НРИ Плеер',
|
||||
|
||||
'notice.campaignAudioEmpty': 'Аудио не добавлено. Проверьте формат файла.',
|
||||
|
||||
'license.checkingTitle': 'Проверка лицензии…',
|
||||
@@ -69,7 +71,7 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'Укажите ключ в меню «Настройки» → «Указать ключ». До активации доступно только меню «Настройки».',
|
||||
'license.tokenTitle': 'Указать ключ',
|
||||
'license.tokenKey': 'КЛЮЧ',
|
||||
'license.tokenPlaceholder': 'Продуктовый ключ DND-...',
|
||||
'license.tokenPlaceholder': 'Продуктовый ключ TTRPG-... или DND-...',
|
||||
'license.tokenSaving': 'Сохранение…',
|
||||
'license.eulaTitle': 'Лицензионное соглашение',
|
||||
'license.eulaReject': 'Не принимаю',
|
||||
@@ -156,7 +158,7 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'export.title': 'Экспорт проекта',
|
||||
'export.project': 'ПРОЕКТ',
|
||||
'export.hint':
|
||||
'Далее откроется окно сохранения: укажите имя и папку для файла .dnd.zip — будет создана копия архива проекта.',
|
||||
'Далее откроется окно сохранения: укажите имя и папку для файла .ttrpg.zip — будет создана копия архива проекта.',
|
||||
'export.exporting': 'Экспорт…',
|
||||
'export.saveAs': 'Сохранить как…',
|
||||
|
||||
@@ -288,6 +290,8 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'common.delete': 'Delete',
|
||||
'common.closeMenu': 'Close menu',
|
||||
|
||||
'app.brandTitle': 'TTRPG Player',
|
||||
|
||||
'notice.campaignAudioEmpty': 'No audio was added. Check the file format.',
|
||||
|
||||
'license.checkingTitle': 'Checking license…',
|
||||
@@ -297,7 +301,7 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'Enter your key via Settings → Enter license key. Until activation, only Settings is available.',
|
||||
'license.tokenTitle': 'Enter license key',
|
||||
'license.tokenKey': 'KEY',
|
||||
'license.tokenPlaceholder': 'DND product key…',
|
||||
'license.tokenPlaceholder': 'TTRPG- or DND- product key…',
|
||||
'license.tokenSaving': 'Saving…',
|
||||
'license.eulaTitle': 'End User License Agreement',
|
||||
'license.eulaReject': 'Decline',
|
||||
@@ -383,7 +387,7 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'export.title': 'Export project',
|
||||
'export.project': 'PROJECT',
|
||||
'export.hint':
|
||||
'A save dialog will open: choose a name and folder for the .dnd.zip file — a copy of the project archive will be created.',
|
||||
'A save dialog will open: choose a name and folder for the .ttrpg.zip file — a copy of the project archive will be created.',
|
||||
'export.exporting': 'Exporting…',
|
||||
'export.saveAs': 'Save as…',
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
export const EULA_RU_MARKDOWN = `
|
||||
# Лицензионное соглашение с конечным пользователем (EULA)
|
||||
|
||||
Используя DNDGamePlayer («Программу»), вы соглашаетесь с условиями ниже.
|
||||
Используя НРИ Плеер («Программу»), вы соглашаетесь с условиями ниже.
|
||||
|
||||
## 1. Предоставление прав
|
||||
Правообладатель предоставляет вам неисключическую, непередаваемую лицензию на использование Программы в пределах приобретённой лицензии (активации).
|
||||
|
||||
Reference in New Issue
Block a user