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.