Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
2935565
feat(reader): add chapter time-remaining status bar estimate
kinland Jul 28, 2026
c9da62e
feat(reader): combine chapter page and time into Chapter Progress
kinland Jul 28, 2026
bd6de0c
fix(reader): harden chapter ETA word-rate accounting
kinland Jul 28, 2026
786b8a9
refactor(reader): simplify chapter ETA helpers and migration
kinland Jul 28, 2026
ec6defa
fix(stats): pair chapter ETA rate with dwell-sampled words
kinland Jul 28, 2026
4c5addd
fix(reader): correct EPUB chapter ETA credit and remaining words
kinland Jul 28, 2026
117d6ae
feat(reader): add chapter time-remaining ETA for TXT
kinland Jul 28, 2026
13d75a7
fix(ui): ease status-bar crowding
kinland Jul 28, 2026
7095570
fix(reader): harden chapter ETA dwell, counting, and formatter
kinland Jul 28, 2026
c3a7350
fix(reader): finish chapter ETA audit fixes
kinland Jul 28, 2026
c8629fe
fix(reader): finish remaining chapter ETA audit findings
kinland Jul 28, 2026
7935ff3
fix(reader): address remaining chapter ETA audit findings
kinland Jul 28, 2026
5ab1595
fix(reader): simplify chapter ETA after audit pass
kinland Jul 28, 2026
13e1c15
fix(reader): harden chapter ETA I/O, labels, and remaining-word math
kinland Jul 28, 2026
f61d70a
refactor(reader): simplify TXT chapter ETA to pro-rata words
kinland Jul 28, 2026
bf888da
refactor(reader): slim PageDwell API without changing gates
kinland Jul 28, 2026
c787918
refactor(reader): dissolve ChapterTimeEstimate into owners
kinland Jul 28, 2026
4da3297
refactor(reader): switch chapter ETA from word-rate to page-rate
kinland Jul 28, 2026
faa99d6
fix(reader): tidy chapter ETA naming, cache version, and helpers
kinland Jul 28, 2026
298d0ae
Change "Pages+Time" to "Pages + Time" for consistency w/ similar sett…
kinland Jul 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions agent-docs/reading-stats.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,21 @@ metrics.
- When changing export/import schema, preserve backward compatibility or add a
clear migration path.

## Chapter time remaining (status bar)

- Rate is live-session only (`getEffectivePagesPerMs`): no active session ⇒ no ETA.
- Credits 1 page per qualified dwell sample (EPUB and TXT); ETA = remaining pages ÷ pages/ms.
- Gate: ≥3 paired pages and ≥60s paired dwell ms.
- Remaining pages use the same page-count model as the status bar (EPUB
`estimatedTotalPages`, TXT `totalPages`), inclusive of the current page.
- `STR_ETA_UNIT_MINUTE` / `_HOUR` / `_DAY` / `_YEAR` exist in EN+ES only; other
locales fall back to English.
- The Pages + Time setting label is composed via `CrossPointSettings::formatChapterProgressLabel`
(`STR_PAGES + ' + ' + STR_TIME`); always use that helper for enum display.
- XTC has no chapter ETA (bitmap pages, no status-bar chapter-time slot).
- Older `totalWordsRead` / `totalWordsReadingMs` samples are ignored; page-rate
fields start fresh.

## Design Rules

- Do not save stats on every tiny interaction. Debounce or save on activity exit
Expand Down
43 changes: 40 additions & 3 deletions docs/reading-stats-editor/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -736,6 +736,13 @@
grid-column: 1 / -1;
}

.field .hint {
margin: 0;
color: var(--muted);
font-size: 12px;
line-height: 1.45;
}

.field label {
display: block;
margin-bottom: 5px;
Expand Down Expand Up @@ -1384,6 +1391,9 @@ <h1 data-i18n="appTitle">CPR-vCodex Reading Stats Editor</h1>
coverBmpPath: "Cover BMP path",
chapterTitle: "Chapter title",
totalReadingMinutes: "Total reading minutes",
totalPagesRead: "Pages read (ETA samples)",
pagesReadingMinutes: "Minutes paired with pages (ETA)",
pagesRateHint: "ETA rate uses pages ÷ paired minutes (fractional minutes OK). Unpaired pages are cleared on import when paired minutes are truly zero. Recalculate from days only updates total reading minutes.",
lastSessionMinutes: "Last session minutes",
bookProgress: "Book progress %",
chapterProgress: "Chapter progress %",
Expand Down Expand Up @@ -1458,6 +1468,9 @@ <h1 data-i18n="appTitle">CPR-vCodex Reading Stats Editor</h1>
coverBmpPath: "Ruta de portada BMP",
chapterTitle: "Título de capítulo",
totalReadingMinutes: "Minutos totales de lectura",
totalPagesRead: "Páginas leídas (muestras ETA)",
pagesReadingMinutes: "Minutos emparejados con páginas (ETA)",
pagesRateHint: "La tasa ETA usa páginas ÷ minutos emparejados (se permiten fracciones). Las páginas sin emparejar se borran al importar si los minutos emparejados son realmente cero. Recalcular desde días solo actualiza los minutos totales de lectura.",
lastSessionMinutes: "Minutos de la última sesión",
bookProgress: "Progreso del libro %",
chapterProgress: "Progreso del capítulo %",
Expand Down Expand Up @@ -3237,8 +3250,16 @@ <h1 data-i18n="appTitle">CPR-vCodex Reading Stats Editor</h1>
return Math.round(toUInt(ms) / MS_PER_MINUTE);
}

// Fractional minutes for ETA paired-ms editing (avoids wiping sub-30s samples via round-to-0).
function msToExactMinutes(ms) {
const value = toUInt(ms) / MS_PER_MINUTE;
return Number(value.toFixed(4));
}

function minutesToMs(minutes) {
return toUInt(minutes) * MS_PER_MINUTE;
const value = Number(minutes);
if (!Number.isFinite(value) || value <= 0) return 0;
return Math.round(value * MS_PER_MINUTE);
}

function formatDuration(ms) {
Expand Down Expand Up @@ -3366,6 +3387,8 @@ <h1 data-i18n="appTitle">CPR-vCodex Reading Stats Editor</h1>
chapterTitle: String(book.chapterTitle || ""),
readingDays: readingDays.map(normalizeDay).filter(day => day.dayOrdinal && day.readingMs),
totalReadingMs: toUInt(book.totalReadingMs),
totalPagesReadingMs: toUInt(book.totalPagesReadingMs),
totalPagesRead: toUInt(book.totalPagesRead),
sessions: toUInt(book.sessions),
lastSessionMs: toUInt(book.lastSessionMs),
firstReadAt: toUInt(book.firstReadAt),
Expand All @@ -3375,6 +3398,10 @@ <h1 data-i18n="appTitle">CPR-vCodex Reading Stats Editor</h1>
chapterProgressPercent: clampPercent(book.chapterProgressPercent),
completed: Boolean(book.completed)
};
// Match firmware: unpaired page samples must not skew ETA rate.
if (!normalized.totalPagesReadingMs && normalized.totalPagesRead) {
normalized.totalPagesRead = 0;
}
if (!normalized.bookId) normalized.bookId = normalized.path;
if (!normalized.knownPaths.includes(normalized.path) && normalized.path) {
normalized.knownPaths.unshift(normalized.path);
Expand Down Expand Up @@ -3492,6 +3519,8 @@ <h1 data-i18n="appTitle">CPR-vCodex Reading Stats Editor</h1>
chapterTitle: "",
readingDays: [],
totalReadingMs: 0,
totalPagesReadingMs: 0,
totalPagesRead: 0,
sessions: 0,
lastSessionMs: 0,
firstReadAt: 0,
Expand Down Expand Up @@ -3829,6 +3858,9 @@ <h2>${escapeHtml(t("monthlyReading"))}</h2>
${textField("coverBmpPath", t("coverBmpPath"), book.coverBmpPath)}
${textField("chapterTitle", t("chapterTitle"), book.chapterTitle)}
${numberField("totalReadingMinutes", t("totalReadingMinutes"), msToMinutes(book.totalReadingMs))}
${numberField("totalPagesRead", t("totalPagesRead"), book.totalPagesRead)}
${numberField("pagesReadingMinutes", t("pagesReadingMinutes"), msToExactMinutes(book.totalPagesReadingMs), "0.01")}
<div class="field full"><p class="hint">${escapeHtml(t("pagesRateHint"))}</p></div>
${numberField("sessions", t("sessions"), book.sessions)}
${numberField("lastSessionMinutes", t("lastSessionMinutes"), msToMinutes(book.lastSessionMs))}
${numberField("lastProgressPercent", t("bookProgress"), book.lastProgressPercent)}
Expand Down Expand Up @@ -3877,6 +3909,11 @@ <h2>${escapeHtml(t("monthlyReading"))}</h2>
book.coverBmpPath = value("coverBmpPath");
book.chapterTitle = value("chapterTitle");
book.totalReadingMs = minutesToMs(value("totalReadingMinutes"));
book.totalPagesRead = toUInt(value("totalPagesRead"));
book.totalPagesReadingMs = minutesToMs(value("pagesReadingMinutes"));
if (!book.totalPagesReadingMs && book.totalPagesRead) {
book.totalPagesRead = 0;
}
book.sessions = toUInt(value("sessions"));
book.lastSessionMs = minutesToMs(value("lastSessionMinutes"));
book.lastProgressPercent = clampPercent(value("lastProgressPercent"));
Expand Down Expand Up @@ -3994,11 +4031,11 @@ <h2>${escapeHtml(t("monthlyReading"))}</h2>
`;
}

function numberField(id, label, currentValue) {
function numberField(id, label, currentValue, step = "1") {
return `
<div class="field">
<label for="field-${id}">${label}</label>
<input id="field-${id}" type="number" min="0" step="1" value="${escapeAttr(currentValue)}">
<input id="field-${id}" type="number" min="0" step="${escapeAttr(step)}" value="${escapeAttr(currentValue)}">
</div>
`;
}
Expand Down
12 changes: 9 additions & 3 deletions lib/Epub/Epub/Section.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ namespace {
// first render).
// v40: progressive/partial cache, with vCodex ruby blocks, paragraph/list
// mapping and XHTML byte offsets retained.
// (A transient v41 word-count LUT was explored for chapter ETA then abandoned;
// page-rate ETA needs no section format change, so the on-disk layout stays v40.)
constexpr uint8_t SECTION_FILE_VERSION = 40;
// Written into the version field while a build is in progress; patched to
// SECTION_FILE_VERSION only when the build is finalized. An abandoned /
Expand Down Expand Up @@ -171,12 +173,16 @@ bool Section::loadSectionFile(const ReaderRenderSpec& spec) {

serialization::readPod(file, pageCount);

// One seek for the li LUT offset (also locates the partial watermark trailer).
uint32_t liLutOffset = 0;
if (pageCount > 0 || filePartial) {
file.seek(HEADER_SIZE - sizeof(uint32_t));
serialization::readPod(file, liLutOffset);
}

if (filePartial) {
// A partial's pageCount is the watermark of a suspended build. Read the watermark
// trailer (appended after the li LUT) so estimatedTotalPages can extrapolate.
uint32_t liLutOffset = 0;
file.seek(HEADER_SIZE - sizeof(uint32_t));
serialization::readPod(file, liLutOffset);
const uint32_t trailerOffset = liLutOffset + static_cast<uint32_t>(pageCount) * sizeof(uint16_t);
const bool trailerValid =
pageCount > 0 && liLutOffset >= HEADER_SIZE && trailerOffset + 2 * sizeof(uint32_t) <= file.size();
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/belarusian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Фільтр экрана сну"
STR_SET_SLEEP_COVER: "Усталяваць вокладку"
STR_FILTER_CONTRAST: "Кантраст"
STR_CUSTOMISE_STATUS_BAR: "Наладзіць радок стану"
STR_CHAPTER_PAGE_COUNT: "Колькасць старонак раздзела"
STR_BOOK_PROGRESS_PERCENTAGE: "Працэнт прагрэсу кнігі"
STR_PROGRESS_BAR: "Паласа прагрэсу"
STR_PROGRESS_BAR_THICKNESS: "Таўшчыня паласы прагрэсу"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/catalan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Filtre de pantalla de repòs"
STR_SET_SLEEP_COVER: "Estableix portada"
STR_FILTER_CONTRAST: "Contrast"
STR_CUSTOMISE_STATUS_BAR: "Personalitza la barra d'estat"
STR_CHAPTER_PAGE_COUNT: "Comptador de pàgines del capítol"
STR_BOOK_PROGRESS_PERCENTAGE: "Percentatge de progrés del llibre"
STR_PROGRESS_BAR: "Barra de progrés"
STR_PROGRESS_BAR_THICKNESS: "Gruix de la barra de progrés"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/czech.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Filtr obrazovky spánku"
STR_SET_SLEEP_COVER: "Nastavit obálku"
STR_FILTER_CONTRAST: "Kontrast"
STR_CUSTOMISE_STATUS_BAR: "Přizpůsobit stavový řádek"
STR_CHAPTER_PAGE_COUNT: "Počet stránek kapitoly"
STR_BOOK_PROGRESS_PERCENTAGE: "Procento průběhu knihy"
STR_PROGRESS_BAR: "Ukazatel průběhu"
STR_PROGRESS_BAR_THICKNESS: "Tloušťka ukazatele průběhu"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/danish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Hvile-skærm omslag-filter"
STR_SET_SLEEP_COVER: "Angiv omslag"
STR_FILTER_CONTRAST: "Kontrast"
STR_CUSTOMISE_STATUS_BAR: "Tilpas statuslinje"
STR_CHAPTER_PAGE_COUNT: "Kapitelsidetæller"
STR_BOOK_PROGRESS_PERCENTAGE: "Bogfremskridtsprocent"
STR_PROGRESS_BAR: "Fremskridtslinje"
STR_PROGRESS_BAR_THICKNESS: "Fremskridtslinjens tykkelse"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/dutch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Slaapscherm omslag-filter"
STR_SET_SLEEP_COVER: "Omslag instellen"
STR_FILTER_CONTRAST: "Contrast"
STR_CUSTOMISE_STATUS_BAR: "Statusbalk aanpassen"
STR_CHAPTER_PAGE_COUNT: "Paginanummering hoofdstuk"
STR_BOOK_PROGRESS_PERCENTAGE: "Percentage voortgang boek"
STR_PROGRESS_BAR: "Voortgangsbalk"
STR_PROGRESS_BAR_THICKNESS: "Dikte voortgangsbalk"
Expand Down
8 changes: 7 additions & 1 deletion lib/I18n/translations/english.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,13 @@ STR_SLEEP_COVER_FILTER: "Sleep Screen Cover Filter"
STR_SET_SLEEP_COVER: "Set Cover"
STR_FILTER_CONTRAST: "Contrast"
STR_CUSTOMISE_STATUS_BAR: "Customise Status Bar"
STR_CHAPTER_PAGE_COUNT: "Chapter Page Count"
STR_STATUS_BAR_CHAPTER_PROGRESS: "Chapter Progress"
STR_PAGES: "Pages"
STR_TIME: "Time"
STR_ETA_UNIT_MINUTE: "m"
STR_ETA_UNIT_HOUR: "h"
STR_ETA_UNIT_DAY: "d"
STR_ETA_UNIT_YEAR: "y"
STR_BOOK_PROGRESS_PERCENTAGE: "Book Progress Percentage"
STR_PROGRESS_BAR: "Progress Bar"
STR_PROGRESS_BAR_THICKNESS: "Progress Bar Thickness"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/finnish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Lepotilanäytön kansisuodatin"
STR_SET_SLEEP_COVER: "Aseta kansi"
STR_FILTER_CONTRAST: "Kontrasti"
STR_CUSTOMISE_STATUS_BAR: "Mukauta tilapalkkia"
STR_CHAPTER_PAGE_COUNT: "Luvun sivumäärä"
STR_BOOK_PROGRESS_PERCENTAGE: "Kirjan edistymisprosentti"
STR_PROGRESS_BAR: "Edistymispalkki"
STR_PROGRESS_BAR_THICKNESS: "Edistymispalkin paksuus"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/french.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Filtre écran de veille"
STR_SET_SLEEP_COVER: "Définir la couverture"
STR_FILTER_CONTRAST: "Contraste"
STR_CUSTOMISE_STATUS_BAR: "Personnaliser la barre d'état"
STR_CHAPTER_PAGE_COUNT: "Nombre de pages du chapitre"
STR_BOOK_PROGRESS_PERCENTAGE: "Pourcentage de progression"
STR_PROGRESS_BAR: "Barre de progression"
STR_PROGRESS_BAR_THICKNESS: "Épaisseur de la barre"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/german.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Standby-Coverfilter"
STR_SET_SLEEP_COVER: "Cover festlegen"
STR_FILTER_CONTRAST: "Kontrast"
STR_CUSTOMISE_STATUS_BAR: "Statusleiste anpassen"
STR_CHAPTER_PAGE_COUNT: "Kapitel-Seitenanzahl"
STR_BOOK_PROGRESS_PERCENTAGE: "Buchfortschritt in %"
STR_PROGRESS_BAR: "Fortschrittsbalken"
STR_PROGRESS_BAR_THICKNESS: "Balkenstärke"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/hungarian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Alvásképernyő borítószűrő"
STR_SET_SLEEP_COVER: "Borító beállítása"
STR_FILTER_CONTRAST: "Kontraszt"
STR_CUSTOMISE_STATUS_BAR: "Állapotsáv testreszabása"
STR_CHAPTER_PAGE_COUNT: "Fejezet oldalszám"
STR_BOOK_PROGRESS_PERCENTAGE: "Könyv haladás százaléka"
STR_PROGRESS_BAR: "Haladássáv"
STR_PROGRESS_BAR_THICKNESS: "Haladássáv vastagsága"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/italian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_OK_BUTTON: "OK"
STR_SLEEP_COVER_FILTER: "Filtro copertina"
STR_FILTER_CONTRAST: "Contrasto"
STR_CUSTOMISE_STATUS_BAR: "Personalizza la barra di stato"
STR_CHAPTER_PAGE_COUNT: "Conteggio pagine capitolo"
STR_BOOK_PROGRESS_PERCENTAGE: "Percentuale di avanzamento del libro"
STR_PROGRESS_BAR: "Barra di avanzamento"
STR_PROGRESS_BAR_THICKNESS: "Spessore della barra di avanzamento"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/kazakh.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Ұйқы экраны мұқаба сүзгісі"
STR_SET_SLEEP_COVER: "Мұқабаны орнату"
STR_FILTER_CONTRAST: "Контраст"
STR_CUSTOMISE_STATUS_BAR: "Күй жолағын баптау"
STR_CHAPTER_PAGE_COUNT: "Тараудың бет саны"
STR_BOOK_PROGRESS_PERCENTAGE: "Кітап үлгерімі пайызы"
STR_PROGRESS_BAR: "Үлгерім жолағы"
STR_PROGRESS_BAR_THICKNESS: "Үлгерім жолағының қалыңдығы"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/lithuanian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Viršelio filtras"
STR_SET_SLEEP_COVER: "Nustatyti viršelį"
STR_FILTER_CONTRAST: "Kontrastas"
STR_CUSTOMISE_STATUS_BAR: "Būsenos juosta"
STR_CHAPTER_PAGE_COUNT: "Skyriaus psl."
STR_BOOK_PROGRESS_PERCENTAGE: "Progresas %"
STR_PROGRESS_BAR: "Progreso juosta"
STR_PROGRESS_BAR_THICKNESS: "Juostos storis"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/polish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Filtr okładek wygaszacza"
STR_SET_SLEEP_COVER: "Ustaw okładkę"
STR_FILTER_CONTRAST: "Kontrast"
STR_CUSTOMISE_STATUS_BAR: "Dostosowanie paska statusu"
STR_CHAPTER_PAGE_COUNT: "Strona rozdziału"
STR_BOOK_PROGRESS_PERCENTAGE: "Postęp książki"
STR_PROGRESS_BAR: "Pasek postępu"
STR_PROGRESS_BAR_THICKNESS: "Grubość paska postępu"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/portuguese.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Filtro capa tela repouso"
STR_SET_SLEEP_COVER: "Definir capa"
STR_FILTER_CONTRAST: "Contraste"
STR_CUSTOMISE_STATUS_BAR: "Personalizar barra de status"
STR_CHAPTER_PAGE_COUNT: "Contagem de páginas do capítulo"
STR_BOOK_PROGRESS_PERCENTAGE: "Porcentagem de progresso do livro"
STR_PROGRESS_BAR: "Barra de progresso"
STR_PROGRESS_BAR_THICKNESS: "Espessura da barra de progresso"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/romanian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Filtru ecran de repaus"
STR_SET_SLEEP_COVER: "Setează coperta"
STR_FILTER_CONTRAST: "Contrast"
STR_CUSTOMISE_STATUS_BAR: "Customizaţi bara de stare"
STR_CHAPTER_PAGE_COUNT: "Număr de pagini în capitol"
STR_BOOK_PROGRESS_PERCENTAGE: "Progres carte procentual"
STR_PROGRESS_BAR: "Bară de progres"
STR_PROGRESS_BAR_THICKNESS: "Grosime bară de progres"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/russian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Фильтр экрана сна"
STR_SET_SLEEP_COVER: "Установить обложку"
STR_FILTER_CONTRAST: "Контраст"
STR_CUSTOMISE_STATUS_BAR: "Настройка строки состояния"
STR_CHAPTER_PAGE_COUNT: "Количество страниц главы"
STR_BOOK_PROGRESS_PERCENTAGE: "% прочтения книги"
STR_PROGRESS_BAR: "Полоса прогресса"
STR_PROGRESS_BAR_THICKNESS: "Толщина индикатора прогресса"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/slovenian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Filter naslovnice v spanju"
STR_SET_SLEEP_COVER: "Nastavi naslovnico"
STR_FILTER_CONTRAST: "Kontrast"
STR_CUSTOMISE_STATUS_BAR: "Prilagodi vrstico stanja"
STR_CHAPTER_PAGE_COUNT: "Število strani v poglavju"
STR_BOOK_PROGRESS_PERCENTAGE: "Odstotek napredka v knjigi"
STR_PROGRESS_BAR: "Vrstica napredka"
STR_PROGRESS_BAR_THICKNESS: "Debelina vrstice napredka"
Expand Down
8 changes: 7 additions & 1 deletion lib/I18n/translations/spanish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,13 @@ STR_SLEEP_COVER_FILTER: "Filtro de pantalla de suspensión"
STR_SET_SLEEP_COVER: "Establecer portada"
STR_FILTER_CONTRAST: "Contraste"
STR_CUSTOMISE_STATUS_BAR: "Personalizar barra de estado"
STR_CHAPTER_PAGE_COUNT: "Contador de pág. por cap."
STR_STATUS_BAR_CHAPTER_PROGRESS: "Progreso del capítulo"
STR_PAGES: "Páginas"
STR_TIME: "Tiempo"
STR_ETA_UNIT_MINUTE: "m"
STR_ETA_UNIT_HOUR: "h"
STR_ETA_UNIT_DAY: "d"
STR_ETA_UNIT_YEAR: "y"
STR_BOOK_PROGRESS_PERCENTAGE: "Porcentaje progreso libro"
STR_PROGRESS_BAR: "Barra de progreso"
STR_PROGRESS_BAR_THICKNESS: "Grosor de barra de progreso"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/swedish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Viloskärmens omslagsfilter"
STR_SET_SLEEP_COVER: "Ange omslag"
STR_FILTER_CONTRAST: "Kontrast"
STR_CUSTOMISE_STATUS_BAR: "Anpassa statusfält"
STR_CHAPTER_PAGE_COUNT: "Antal sidor i kapitel"
STR_BOOK_PROGRESS_PERCENTAGE: "Procentuellt bokframsteg"
STR_PROGRESS_BAR: "Framstegsindikator"
STR_PROGRESS_BAR_THICKNESS: "Tjocklek på framstegsindikator"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/turkish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Uyku Ekranı Kapak Filtresi"
STR_SET_SLEEP_COVER: "Kapağı ayarla"
STR_FILTER_CONTRAST: "Kontrast"
STR_CUSTOMISE_STATUS_BAR: "Durum Çubuğunu Özelleştir"
STR_CHAPTER_PAGE_COUNT: "Bölüm Sayfa Sayısı"
STR_BOOK_PROGRESS_PERCENTAGE: "Kitap İlerleme Yüzdesi"
STR_PROGRESS_BAR: "İlerleme Çubuğu"
STR_PROGRESS_BAR_THICKNESS: "İlerleme Çubuğu Kalınlığı"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/ukrainian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "????? ????????"
STR_SET_SLEEP_COVER: "Встановити обкладинку"
STR_FILTER_CONTRAST: "Контраст"
STR_CUSTOMISE_STATUS_BAR: "Налаштувати рядок стану"
STR_CHAPTER_PAGE_COUNT: "????????? ???????? ? ???????"
STR_BOOK_PROGRESS_PERCENTAGE: "Відсоток прочитаного"
STR_PROGRESS_BAR: "Рядок прогресу"
STR_PROGRESS_BAR_THICKNESS: "Товщина рядку прогресу"
Expand Down
1 change: 0 additions & 1 deletion lib/I18n/translations/vietnamese.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,6 @@ STR_SLEEP_COVER_FILTER: "Bộ lọc bìa khi ngủ"
STR_SET_SLEEP_COVER: "Đặt bìa"
STR_FILTER_CONTRAST: "Tương phản"
STR_CUSTOMISE_STATUS_BAR: "Tùy chỉnh thanh trạng thái"
STR_CHAPTER_PAGE_COUNT: "Số trang chương"
STR_BOOK_PROGRESS_PERCENTAGE: "Phần trăm tiến trình sách"
STR_PROGRESS_BAR: "Thanh tiến trình"
STR_PROGRESS_BAR_THICKNESS: "Độ dày thanh tiến trình"
Expand Down
Loading
Loading