A web application to help you choose which English translation of literary classics best fits your personal reading preference.
Deployed at: https://comparetranslations.com/
Navigating the many translations of works like The Iliad or The Odyssey can be challenging. This tool aims to simplify that decision by allowing users to:
Currently Featuring:
localStorage
(for user votes and preferences)The site utilizes different SvelteKit features for page rendering and data loading:
src/routes/
+page.svelte
: Homepage.<title>
and <meta name="description">
set directly in the component.about/+page.svelte
& about/+page.ts
: About Page.+page.ts
provides title
and description
for SSR via the root layout.contact/+page.svelte
& contact/+page.ts
: Contact Page.+page.ts
provides title
and description
for SSR via the root layout.+layout.svelte
: Root Layout.<title>
and <meta name="description">
based on data from +page.ts
files or page-level defaults.src/routes/books/[book]/
+layout.svelte
: Book-Specific Layout.+page.svelte
& +page.ts
: Book Overview Page.+page.ts
provides title
, description
, and book name for SSR.vote/+page.svelte
& vote/+page.ts
: Passage Comparison (Vote) Page.+page.ts
has export const ssr = false;
- its load
function runs client-side to fetch passage and translator data.<title>
and <meta name="description">
are set dynamically within vote/+page.svelte
due to client-side data loading.results/+page.svelte
& results/+page.ts
: Results Page.localStorage
).+page.ts
provides title
, description
, and book name for SSR. Main data is client-side.translators/+page.svelte
& translators/+page.ts
: Translators List Page.+page.ts
loads translator data (from local JSON files) and provides title
and description
for SSR.src/lib/
components/
: Reusable Svelte components (e.g., LinkButton.svelte
, ComparisonPassageCard.svelte
).data/
:books.ts
: Defines available books.duelHistory.svelte.ts
: Utilities for localStorage
interaction.[book_slug]/meta.json
: Lists sample passage IDs for a book.[book_slug]/translators.json
: Contains metadata for translators of a book.[book_slug]/samples/
: Contains JSON files with text excerpts for comparison. (Note: Most of these are kept private locally and only a few are in the public repository for demonstration).stores/
: Client-side stores/caches (e.g., translatorsStore.ts
).types.ts
: TypeScript type definitions.utils/
: Utility functions (e.g., getRandomDuel.ts
).static/
: Favicons, default Open Graph image.