Task architecture

Read Books Offline with Translation and Dictionary Lookup

Separate document import, local lookup, sentence translation, selection, annotations, storage, export, and deletion.

Review status: Fact and editorial QA complete; owner review pending · 2026-10-07 · Fact IDs: PRIVACY-01, ARCH-01

Direct answer

A .epub filename or an already-open page does not establish offline availability. EPUB 3.3 defines a publication container and structured content, but publications may reference external resources. After a fresh reader start with networking disabled, test the exact file and required resources. Android's Storage Access Framework can grant access to a user-selected document URI; that does not prove the provider cached all bytes or that the reader keeps a local copy. Treat word lookup and sentence translation as separate tasks. A dictionary returns an entry or sense for a selected word; translation transforms a span in context. Freeze a fixture with punctuation, inflection, neighboring text, and a sentence containing a name or negation. Record the exact selection and request, then compare each result with its own reference before saving a note. Returning to a passage is another contract. EPUB Canonical Fragment Identifiers locate content within an EPUB publication, but do not guarantee reader support, selection restoration, or stability after arbitrary edits. For a pinned EPUB identity and reader version, create an annotation, close and reopen, change layout, then return to the span. Record whether the reader uses a page, offset, CFI, or proprietary anchor; mark unsupported or approximate states instead of claiming portability. Keep data handling separate. ARCH-01 defines on-device AI as endpoint inference; PRIVACY-01 says local inference does not prove that an app makes no other network requests. Distinguish the book, extracted selection, dictionary entry, translation, and annotation. Check storage, export, backup, and deletion for each. Do not send an entire book for a one-sentence task or call the whole workflow private because one stage ran locally. Limit the report to the EPUB identity, reader and OS versions, selected task, URI/provider path, network condition, locator, and observed retention or deletion. Start with a public or synthetic book. A passing run applies to that setup, not every EPUB, reader, language, engine, annotation format, or future edition. This is a verification method, not a Cove feature claim.

A reader wants to save a translated passage

A reader opens a selected EPUB on an Android phone before a flight. They want to look up one inflected word, translate a full sentence, and reopen an annotation at the same passage after changing text size. The book may come from a document provider, and the reader and language resources have not been tested offline.

Decision

Test the selected EPUB and exact reader as a small, reversible workflow. Keep word lookup, contextual translation, locator restoration, and annotation retention as separate checks; prepare only resources the actual reader documents and offers.

Expected outcome

The reader learns which stages work for this book and device, what remains unavailable, and whether the note returns as expected. The result does not imply another EPUB or app behaves the same way.

Evidence to collect

The claim becomes reviewable only when the following evidence is attached to the same artifact and test run:

  • EPUB or document fixtures
  • Lookup and translation task contracts
  • Offline, selection, and deletion outcomes

Task quality needs a versioned corpus and acceptance rules. Fluent sample output is not an accuracy result.

Implementation workflow

  1. Identify the publication and access route. Record EPUB identity, reader and Android versions, and whether access uses a Storage Access Framework provider or local copy. Fresh-start offline and confirm exact bytes and resources are present; a title or rendered chapter proves neither.
  2. Prepare a safe, known selection. Use a public-domain or synthetic chapter with an inflected word, context, punctuation, name, and negated sentence. Write expected selection and meaning first. Avoid private, account-specific, or copyrighted samples that should not enter logs.
  3. Test word lookup independently. Select only the target word; record whether the reader sends its surface form, normalized form, or context. Check the entry against the sentence and mark missing or ambiguous senses unresolved. An entry does not prove sentence translation.
  4. Test contextual sentence translation separately. Select a full sentence as a separate task, preserve punctuation and context by a fixed rule, and record the input. Prepare required resources, disconnect, reopen, and test a cache hit separately from a new uncached selection. Compare names, negation, tense, and omissions with a reviewed reference; a cache hit alone cannot establish fresh local translation.
  5. Exercise the locator through layout changes. Create an annotation, close and reopen the book, change font or layout, then follow the note. Record the actual locator: CFI, quote, offset, page, or proprietary scheme. Verify the same EPUB revision; a stale or approximate position is not portability evidence.
  6. Inventory retention, export, and deletion. Inventory whether the app stores selected text, lookup, translation, annotation, or a full copy, and where. With a disposable fixture, check export and deletion. Remove or revoke the URI if relevant and record what remains; the inference route does not determine backup behavior.

Keep each transition observable. A failure should identify the stage, artifact, runtime, and recovery action without logging private user content.

Acceptance criteria

  • The exact EPUB and provider path are identified; with networking disabled, record cache-hit behavior separately and test a new uncached translation selection. Existing local dictionary entries remain valid lookup results.
  • Word lookup and sentence translation use separately recorded selections and acceptance checks, including an inflection, punctuation, names, and negation where applicable.
  • A note is reopened after a layout change and checked against the same EPUB identity; its locator type and any failure or approximation are recorded.
  • The report distinguishes source book, selection, generated result, annotation, export, and deletion behavior without claiming an unverified reader capability or whole-app privacy.

Decision table

DimensionChoice or evidenceHow to interpret it
Dictionary lookupOne selected word plus enough local context to disambiguate its senseChecks entry coverage and inflection; it is not sentence translation or proof of contextual fluency.
Sentence translationA bounded sentence selection with a reviewed referenceChecks meaning in context; it does not establish dictionary coverage for isolated words.
Passage locatorReader-reported CFI, quote, offset, or page locatorCan support return to a span in the tested publication; must be rechecked after reflow and content changes.
Offline availabilityFresh source open, then separately record cache hits and an uncached translation selectionTests the selected file and required resource path; cached content may be a valid feature but alone does not prove new local translation.

Failure patterns to prevent

  • Uploading whole books by default
  • Calling dictionary lookup sentence translation

Also prevent silent fallback, unpinned artifacts, missing cancellation, and conclusions that combine unlike configurations. Store unsuccessful runs alongside successful ones.

Minimum reproducibility record

LayerRecord
DeviceManufacturer, model, chipset, RAM class, operating-system build
SoftwareApplication version and git commit
ModelFamily, variant, revision, format, file length, hash, quantization
RuntimeName, revision, requested backend, observed backend evidence
WorkloadFixture revision, input hash, prompt hash, output policy
OutcomeCompleted, failed, cancelled, fallback, and privacy-safe diagnostics

Release checklist

  • ☐ The primary query is answered without an unsupported number.
  • ☐ Every artifact and runtime is pinned.
  • ☐ The representative task and failure policy are explicit.
  • ☐ Lifecycle, cancellation, cleanup, and fallback are tested.
  • ☐ User-content and network boundaries are documented.
  • ☐ Result wording applies only to the recorded configuration.
  • ☐ The page links to raw method or evidence when results are added.

Sources and related evidence

Chinese deployment and troubleshooting content is organized in the .奇连 AI 端侧专题.

Frequently asked questions

Does an EPUB file always work offline once it opens?

No. EPUB 3.3 allows publication resources to be located outside the container. Test the exact book and resources after a fresh reader start without networking. A cached translation may be a valid feature, but record cache hits separately and use a new uncached selection to test fresh local translation.

Is looking up one word the same as translating a sentence?

No. A dictionary lookup asks for an entry or sense, often for a selected headword; sentence translation evaluates meaning across a span and context. Record them as different tasks with separate expected results.

Will a CFI keep an annotation in the same place after any book edit?

Do not assume so. CFI identifies a location within an EPUB publication, but support and restoration are reader-specific and content changes can affect locations. Reopen the note after reflow and against the exact publication revision.

Does local inference mean the whole reading workflow has no network activity?

No. ARCH-01 describes where inference runs, while PRIVACY-01 warns that an app may make other requests. Check the file provider, reader, language resources, account or sync features, export, and observed network behavior separately.